Обход контроля доступа
Уязвимость, позволяющая злоумышленнику получить доступ к защищённым ресурсам в обход механизмов авторизации системы.
Уязвимость классифицируется по CWE-284 и стала уязвимостью #1 в OWASP Top 10 2021. Основные причины: отсутствие проверок авторизации на уровне функций, использование данных от клиента для решений авторизации, недостаточные проверки на уровне объектов (IDOR).
graph LR
Center["Обход контроля доступа"]:::main
Pre_authentication["authentication"]:::pre --> Center
click Pre_authentication "/terms/authentication"
Rel_zero_trust_security["zero-trust-security"]:::related -.-> Center
click Rel_zero_trust_security "/terms/zero-trust-security"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простыми словами
Представьте библиотеку, где для входа в комнату 'только для персонала' нужна специальная карточка. Обход контроля доступа — это как найти незапертое окно или трюк, при котором охранник пропускает без проверки карточки. Вы уже в библиотеке (вы вошли в систему), но попадаете в комнаты, куда не должны.
🤓 Expert Deep Dive
Типы атак: IDOR, обход пути, вертикальное повышение привилегий, массовое присвоение, принудительный просмотр. Классифицируется по CWE-284. Модели контроля: DAC, MAC, RBAC, ABAC (NIST SP 800-162). Защита: запрет по умолчанию, серверная проверка каждого запроса, UUID вместо последовательных ID.
❓ Частые вопросы
What is the difference between access control bypass and authentication bypass?
Authentication bypass defeats identity verification (you appear as someone you're not). Access control bypass assumes you may be legitimately authenticated but exploits flaws in permission enforcement — you access resources your account is not authorized to use.
Why is broken access control ranked #1 in OWASP Top 10 2021?
It was found in 94% of applications tested during the OWASP data collection period, with 318,000+ CVEs mapping to this category. It moved from #5 (2017) to #1 (2021) due to its prevalence in modern API-driven architectures where authorization checks are frequently incomplete.
How do I test for IDOR vulnerabilities?
Create two test accounts. Perform actions as Account A and capture the resource IDs (invoice IDs, user IDs, document IDs) in the request. Then replay those requests authenticated as Account B. If Account B can access Account A's resources, IDOR exists.