Проведення аудиту безпеки веб-додатку (OWASP Top 10)
Аудит безпеки за методологією OWASP - це систематична перевірка додатку на наявність уразливостей із списку найбільш критичних ризиків. Включає автоматизоване сканування, ручний аналіз коду та бізнес-логіки, тестування аутентифікації та авторизації.
OWASP Top 10 (2021): що перевіряти
| ID | Категорія | Приклади |
|---|---|---|
| A01 | Broken Access Control | IDOR, privilege escalation |
| A02 | Cryptographic Failures | слабкі алгоритми, відкриті дані |
| A03 | Injection | SQL, NoSQL, OS, LDAP |
| A04 | Insecure Design | відсутність rate limit, передбачувані токени |
| A05 | Security Misconfiguration | паролі за замовчуванням, verbose errors |
| A06 | Vulnerable Components | застарілі залежності з CVE |
| A07 | Auth Failures | слабкі паролі, небезпечні сесії |
| A08 | Software & Data Integrity | insecure deserialization, атаки CI/CD |
| A09 | Logging Failures | недостатнє логування |
| A10 | SSRF | запити до внутрішніх ресурсів |
Етап 1: Розвідка та картування (3–5 днів)
Інвентаризація всіх точок входу додатку:
nmap -sV -sC -p- target.example.com
ffuf -w /usr/share/wordlists/dirb/big.txt \
-u https://target.example.com/FUZZ \
-mc 200,301,302,403
katana -u https://target.example.com -jc -d 3
whatweb https://target.example.com
wappalyzer https://target.example.com
Результат: повна карта ендпоінтів, використовувані технології, версії компонентів.
Етап 2: Автоматизоване сканування (1–2 дні)
zap-cli quick-scan --self-contained \
--start-options '-config api.disablekey=true' \
https://target.example.com
nikto -h https://target.example.com -ssl -output report.html
nuclei -u https://target.example.com \
-t cves/ -t misconfigurations/ \
-severity critical,high,medium
semgrep --config=p/owasp-top-ten ./src
Етап 3: Тестування аутентифікації та авторизації (3–5 днів)
IDOR — заміна ID у запиті:
GET /api/users/1337/profile → 200 OK (чужий профіль)
GET /api/orders/9999/details → мав повернути 403, а не 200
JWT уразливості:
- Алгоритм
none— прийняти без підпису - RS256 → HS256 — підробка з публічним ключем
- Слабкий secret — перебір
Етап 4: Інʼєкції та клієнтські атаки (3–4 дні)
sqlmap -u "https://target.com/search?q=test" \
--level=5 --risk=3 --dbs --batch
dalfox url "https://target.com/search?q=test" \
--output xss_report.txt
Етап 5: Аналіз конфігурації (1–2 дні)
testssl.sh --full https://target.example.com
sslyze --regular target.example.com
npm audit --audit-level=moderate
composer audit
pip-audit
gitleaks detect --source . --report-format json
truffleHog git file://. --only-verified
Етап 6: Аналіз бізнес-логіки (2–3 дні)
Ручний аналіз не можна автоматизувати:
- Обхід обмежень платежів (від'ємні суми, race conditions)
- Маніпуляція промокодами та знижками
- Обхід email-верифікації
- Небезпечні прямі посилання на файли
- Скидання пароля без інвалідації старих токенів
Тривалість аудиту
| Тип додатку | Тривалість |
|---|---|
| Лендінг / корпоративний сайт | 3–5 днів |
| SaaS з авторизацією | 7–14 днів |
| Фінансовий додаток / маркетплейс | 14–21 день |
| Повторне тестування після виправлень | 2–3 дні |







