Przegląd OWASP Top 10
Dziesięć najważniejszych zagrożeń bezpieczeństwa aplikacji webowych.
OWASP Top 10 (2021)
OWASP (Open Web Application Security Project) — некомерційна організація, що публікує стандарти безпеки веб-додатків.
A01: Broken Access Control (⬆ з #5 на #1)
Найпоширеніша вразливість. Користувач може виконувати дії або отримувати ресурси поза дозволеними привілеями.
Приклади:
- IDOR (Insecure Direct Object Reference):
/api/orders/1234→ зміни на/api/orders/1235— бачиш чужі замовлення - Доступ до адмін-панелі без перевірки ролі
- CORS неправильно налаштований
A02: Cryptographic Failures
Раніше "Sensitive Data Exposure". Слабке шифрування або його відсутність.
Приклади:
- MD5/SHA1 для хешування паролів (зламуються за секунди)
- HTTP замість HTTPS для передачі credentials
- Слабкі або захардкоджені ключі шифрування
A03: Injection
SQL, NoSQL, Command, LDAP Injection. Зловмисний код виконується інтерпретатором.
Вразливий SQL: SELECT * FROM users WHERE id = '" + userId + "'
Payload: 1' OR '1'='1' --
Результат SQL: SELECT * FROM users WHERE id = '1' OR '1'='1' --'
→ повертає ВСІ записи
A04: Insecure Design
Архітектурні проблеми. Система спроектована без урахування безпеки.
Приклад: Скидання пароля через "секретне питання" замість безпечного токену.
A05: Security Misconfiguration
Найлегша для виявлення. Помилкова конфігурація ПЗ.
Приклади:
- Default credentials (admin/admin)
- Відкриті хмарні сховища (S3 bucket)
- Stack traces у відповідях помилок
- Непотрібні відкриті порти
A06: Vulnerable and Outdated Components
Застаріле ПЗ з відомими CVE.
# Перевірка вразливих npm пакетів
npm audit
# Перевірка Python пакетів
pip-audit
# Пошук CVE для ПЗ
searchsploit apache 2.4.49A07: Authentication Failures
Проблеми з автентифікацією: brute force, слабкі паролі, вразливий session management.
A09: Logging and Monitoring Failures
Атаки не виявляються через відсутність логування — зловмисник може перебувати всередині місяцями.
OWASP Top 10 — не вичерпний список. Це лише 10 найпоширеніших категорій. Реальні програми можуть мати вразливості, що не входять до Top 10 (наприклад, Business Logic Flaws, Race Conditions, Deserialization).