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

6.1 KiB

Access control (ограничение доступа) - приложение, накладывающее ограничения на то, кто или что авторизовано для выбранных действий или запрашиваемых рессурсов. В контексте веб-приложений, ограничение доступа зависит от аутентификации и менеджменте сессий.

  1. Аутентификация позволяет определить, что пользователь является тем, кем он представляется.
  2. Менеджер сессий - идентифицирует какие последующие HTTP запросы были сделаны одним и тем же пользователем.
  3. Ограничение доступа определяет, может ли юзер выполнить действие, которое он захотел выполнить.

Сломанное ограничение доступа часто встречается и представляют из себя критические уязвимости. Разработка и управление системой ограничения доступа это комплексная проблема.

Вертикальный контроль доступа

Вертикальный контроль доступа - механизмы, которые ограничивают доступ к конфиденциальным функциям определенным типам пользователей.

Благодаря вертикальному контролю, разные типы пользователей имеют доступ к различным функциям приложения. К примеру, админ может модифицировать или удалять любой пользовательский аккаунт, в отличие от простого пользователя, который не имеет доступа к этим функциям.

Горизонтальный контроль доступа

Горизонтальный контроль доступа - механизм, ограничивающий доступ к ресурсам конкретным пользователям.

При горизонтальном контроле доступа, разные пользователи имеют доступ к подмножеству рессрсов одного типа. К примеру - приложение банка позволяет пользователю видеть транзакции и оплачивать с помощью их собственного аккаунта, но не с помощью аккаунта других пользователей.

Контексто-зависимый контроль доступа

Контексто-зависимый контроль доступа - механизм, ограничивающий доступ к функционалу и ресурсам, основывающийся состоянии приложения или взаимодействия пользователя с ним.

Контексто-зависимый контроль доступа запрещает пользователю выполнять действия в неправильном порядке. К примеру - пользователь не может менять состав заказа после его оплаты.

Примеры сломанного контроля доступа

Эскалация вертикального контроля доступа

Если пользователь может повысить доступ к функционалу, к которому у него не должно быть доступа, то это эскалация вертикального контроля доступа. К примеру, если обычный пользователь может получить доступ к странице администратора, где он может удалять аккаунты других пользователей, это и есть эскалация.

Незащищенный функционал

В большинстве случаев, эскалация привелегий вертикального контроля доступа происходит, когда сервис не обеспечивает соблюдение какой-либо защиты для чуствительного функционала. например, ссылки могут быть связаны со страницей приветствия администратора, но не со страницы приветствия пользователя.

Суть в том, что не защищают админскую панель, а просто прячат robots.txt Или напрямую в тексте скрипта приложения.

Горизонтальная эскалация привеленгий

Горизонтальная эскалация происходит, если пользователь получает доступ к ресурсам, которые предназначенны для другого пользователя, вместо собственных ресурсов такого же типа.

Пример: если атакующий может получить доступ к записям других пользователей, словно это его записи - это горизонтальная эсказация.

https://insecure-website.com/myaccount?id=123

если такующий изменяет id и получает доступ к аккаунту другого пользователя - это и есть эскалация. (В моем техникуме, на платформе procolledge была горизонтальная эскалация привелегий.)