Files
obsidian/cybersec/WEB/Access control.md
2026-07-30 11:35:10 +05:00

48 lines
6.1 KiB
Markdown

**Access control (ограничение доступа)** - приложение, накладывающее ограничения на то, кто или что авторизовано для выбранных действий или запрашиваемых рессурсов. В контексте веб-приложений, ограничение доступа зависит от аутентификации и менеджменте сессий.
1. **Аутентификация** позволяет определить, что пользователь является тем, кем он представляется.
2. **Менеджер сессий** - идентифицирует какие последующие HTTP запросы были сделаны одним и тем же пользователем.
3. **Ограничение доступа** определяет, может ли юзер выполнить действие, которое он захотел выполнить.
Сломанное ограничение доступа часто встречается и представляют из себя критические уязвимости. Разработка и управление системой ограничения доступа это комплексная проблема.
### Вертикальный контроль доступа
**Вертикальный контроль доступа** - механизмы, которые ограничивают доступ к конфиденциальным функциям определенным типам пользователей.
Благодаря вертикальному контролю, разные типы пользователей имеют доступ к различным функциям приложения. К примеру, админ может модифицировать или удалять любой пользовательский аккаунт, в отличие от простого пользователя, который не имеет доступа к этим функциям.
### Горизонтальный контроль доступа
**Горизонтальный контроль доступа** - механизм, ограничивающий доступ к ресурсам конкретным пользователям.
При горизонтальном контроле доступа, разные пользователи имеют доступ к подмножеству рессрсов одного типа. К примеру - приложение банка позволяет пользователю видеть транзакции и оплачивать с помощью их собственного аккаунта, но не с помощью аккаунта других пользователей.
### Контексто-зависимый контроль доступа
**Контексто-зависимый контроль доступа** - механизм, ограничивающий доступ к функционалу и ресурсам, основывающийся состоянии приложения или взаимодействия пользователя с ним.
Контексто-зависимый контроль доступа запрещает пользователю выполнять действия в неправильном порядке. К примеру - пользователь не может менять состав заказа после его оплаты.
## Примеры сломанного контроля доступа
### Эскалация вертикального контроля доступа
Если пользователь может повысить доступ к функционалу, к которому у него не должно быть доступа, то это эскалация вертикального контроля доступа. К примеру, если обычный пользователь может получить доступ к странице администратора, где он может удалять аккаунты других пользователей, это и есть эскалация.
**Незащищенный функционал**
В большинстве случаев, эскалация привелегий вертикального контроля доступа происходит, когда сервис не обеспечивает соблюдение какой-либо защиты для чуствительного функционала. например, ссылки могут быть связаны со страницей приветствия администратора, но не со страницы приветствия пользователя.
Суть в том, что не защищают админскую панель, а просто прячат **robots.txt**
Или напрямую в тексте скрипта приложения.
### Горизонтальная эскалация привеленгий
**Горизонтальная эскалация** происходит, если пользователь получает доступ к ресурсам, которые предназначенны для другого пользователя, вместо собственных ресурсов такого же типа.
Пример: если атакующий может получить доступ к записям других пользователей, словно это его записи - это горизонтальная эсказация.
`https://insecure-website.com/myaccount?id=123`
если такующий изменяет `id` и получает доступ к аккаунту другого пользователя - это и есть эскалация. (В моем техникуме, на платформе procolledge была горизонтальная эскалация привелегий.)