У цій статті ми розглянемо що таке OWASP і що таке рейтинг Топ-10 вразливих місць.
Що таке OWASP? ТОП 10 вразливостей
- 14.01.2021
- Опубліковано: Admin
Open Web Application Security Project (OWASP) – це не комерційний фонд, який працює над підвищеннями рівня безпеки програмного забезпечення.
Цей фонд був заснований у 2001 році, в 2004 році він став некомерційною благодійною організацією в США, а з червня 2021 року і в Європі. Основною задачею фонду є покращення безпеки програмного забезпечення, у цьому йому допомагають відкриті спільноти розробників, технологів і просто ентузіастів по всьому світу. У склад фонду входить більш ніж 250+ відділень по всьому світу та десятки тисяч учасників. Кожного року організовуються провідні освітні та навчальні конференції. Спільнота надає можливість організаціям створювати, розробляти, купувати, експлуатувати та підтримувати програми, яким можна довіряти. Найголовніше, що всі проєкти, інструменти, документи та конференції є абсолютно безкоштовними і відкритими для всіх, хто зацікавлений у підвищенні безпеки додатків.
Усі проєкти, над якими працює OWASP зібрані на схемі:
Трохи деталей, про деякі з проєктів OWASP
OWASP Security Knowledge Framework (SKF) – це база знань з безпеки з відкритим кодом. Вона містить в собі керовані проєкти з контрольними списками й приклади передового коду кількома мовами програмування, що показують, як запобігти хакерському доступу та призначені для вивчення та інтегрування проєктної безпеки в процес розробки ПЗ.
OWASP Mobile Application Security Testing Guide (MASTG) – це комплексний посібник з тестування безпеки мобільних додатків. Фундаментальний навчальний ресурс як для початківців, так і для професіоналів, який охоплює різноманітні теми від внутрішніх функцій мобільних ОС до передових методів зворотного проєктування.
OWASP Web Security Testing Guide (WSTG) – це комплексний посібник з тестування кібербезпеки для розробників веб-додатків і спеціалістів із безпеки. Створений спільними зусиллями професіоналів в області кібербезпеки та відданих своїй справі добровольців. Посібник WSTG являє собою основу провідних практик, які використовують фахівці з тестування на вразливість і організації по всьому світу.
OWASP Defectdojo – провідний інструмент керування вразливістю додатків із відкритим кодом, створений для DevOps і постійної інтеграції безпеки.
OWASP Zed Attack Proxy (ZAP) – є одним з найбільш популярних безкоштовних інструментів у світі, який тестує безпеку та активно підтримується спеціалізованою міжнародною командою волонтерів.
Окремо виділимо проєкт OWASP Top Ten.
OWASP Top Ten – це інформаційний документ для розробників і тестувальників з безпеки додатків. Він являє собою об’ємний документ з описом та рішеннями найкритичніших ризиків для безпеки веб-додатків.
На цей час найактуальнішим документом є «OWASP Top-10 2021» (до цього документ оновлювався у 2017 році). В порівнянні з минулою версією, в Top-10 2021 року було додано 3 нові категорії, 4 категорії зазнали змін в назві та в обсязі, а також було проведено деякі об’єднання. Top-10 2021 року був заснований, в основному, на матеріалах, наданих компаніями, які спеціалізуються на безпеці додатків, і на дослідженні більш ніж 500 незалежних галузевих опитувань. Ці дані охоплюють уразливі місця, отримані від сотень різних організацій та понад 100 000 реальних додатків та API. В основі списку Top-10 лежать дані про поширеність, простоту експлуатації, а також про складність виявлення вразливостей і про можливості запобігання шкоди.
Основна мета OWASP Top-10 – ознайомити розробників, дизайнерів, архітекторів, менеджерів та організації з наслідками найпоширеніших і найважливіших недоліків безпеки веб-додатків.
Попри те, що основною метою проєкту Top-10 OWASP було привернення уваги розробників і менеджерів до проблем, які присутні в безпеці, проєкт де-факто став стандартом безпеки додатків.
Категорії вразливостей
A01:2021 – Недоліки контролю доступу (Broken Access Control)
Найчастіше дії, які дозволені аутентифікованим користувачам, не дотримуються належним чином. Це, зазвичай, призводить до несанкціонованого розголошення інформації, модифікації чи знищення всіх даних або виконання бізнес-функцій понад обмеження користувача.
A02:2021 – Криптографічні збої (Cryptographic Failures)
Раніше цей тип мав назву Розголошення конфіденційних даних (Sensitive Data Exposure). Зараз розголошення конфіденційних даних є скоріше широким симптомом, ніж першопричиною, тому тепер увага зосереджена на збоях, пов’язаних із криптографією (або її відсутністю). Перш за все, необхідно визначити потреби захисту даних під час передачі та зберігання. Наприклад, паролі, номери кредитних карток, медичні записи, особиста інформація та комерційна таємниця вимагають додаткового захисту, головним чином якщо ці дані підпадають під дію законів про конфіденційність.
A03:2021 – Ін'єкції (Injection)
Ризики, що пов'язані з введенням найпоширеніших ін’єкцій – SQL, NoSQL, OS команди, об'єктно-реляційне відображення(ORM), LDAP та EL(Expression Language) або ін’єкції OGNL(Object Graph Navigation Library), виникають при надсиланні команд інтерпретатору, які можуть нашкодити. Ці дані обманом примушують інтерпретатор виконувати не передбачені команди або без належної авторизації звертатись до даних. Перегляд вихідного коду – найкращий спосіб виявити, чи програми вразливі до ін’єкцій.
A04:2021 – Небезпечний дизайн (Insecure Design)
Нова категорія, зосереджена на ризиках, пов’язаних із недоліками дизайну та архітектури, яка закликає ширше використовувати моделювання загроз, безпечних шаблонів проєктування та еталонних архітектур. Одним із факторів, які сприяють незахищеному дизайну, є відсутність профілювання бізнес-ризиків, властивого програмному забезпеченню чи системі, що розробляється, і, отже, нездатність визначити, який рівень безпеки дизайну потрібен.
A05:2021 – Некоректне налаштування параметрів безпеки (Security Misconfiguration)
Це одна з найпоширеніших помилок, яка є результатом небезпечних або неповних конфігурацій за замовчуванням, увімкнених або встановлених непотрібних функцій, відкритого хмарного сховища, некоректних HTTP-заголовків і докладних повідомлень про помилки, застарілого або вразливого ПО. Без узгодженого повторюваного процесу конфігурації безпеки програми системи піддаються більшому ризику.
A06:2021 – Вразливі та застарілі компоненти (Vulnerable and Outdated Components)
Експлуатація уразливого компонента сприяє серйозній втраті даних або захопленню контролю над сервером. Використання додатків і API компонентів з відомими вразливостями ставить під загрозу захист додатків і робить можливими різні атаки і впливи. Якщо невідомі версії всіх компонентів, що використовуються, якщо ПО не підтримується або застаріло, якщо не відбувається регулярне сканування на вразливість та не підписуються бюлетені безпеки, якщо розробник не перевіряє сумісність оновлених або виправлених бібліотек – це все фактори ризику.
A07:2021 – Недоліки функції ідентифікації та аутентифікації (Identification and Authentication Failures)
Підтвердження особи користувача, аутентифікація та керування сеансами мають вирішальне значення для захисту від атак, пов’язаних з аутентифікацією.Функції програми, пов’язані з ідентифікацією та аутентифікацією, часто реалізуються невірно, що дозволяє зловмисникам компрометувати паролі, ключі, токени, щоб ідентифікуватися користувачами системи. Сайти з порушеною аутентифікацією дуже поширені у мережі. Ці порушення зазвичай пов'язані з логічними проблемами, що виникають у механізмі аутентифікації програми, такими як погане керування сеансом, коли відбувається перерахування імен користувачів. У цьому випадку зловмисник використовує методи перебору, щоб вгадати дані користувачів системи.
A08:2021 – Порушення цілісності програмного забезпечення та даних (Software and Data Integrity Failures)
Нова категорія, сфокусована на прийнятті припущень, пов'язаних з оновленнями програмного забезпечення, критичними даними та CI/CD конвеєрами без перевірки цілісності. Порушення цілісності програмного забезпечення та даних стосуються коду та інфраструктури, які не захищають від збоїв у цілісності. Прикладом цього є ситуація, коли програма використовує плагіни, бібліотеки або модулі з ненадійних джерел, сховищ і мереж доставлення контенту (CDN). Зловмисники потенційно можуть завантажити власні оновлення для розповсюдження та запуску на всіх інсталяціях.
A09:2021 – Збої реєстрації та моніторингу безпеки (Security Logging and Monitoring Failures)
Ця категорія має допомогти виявляти, розголошувати та реагувати на активні порушення. Без реєстрації та моніторингу неможливо виявити порушення. Реєстрація та моніторинг можуть бути складними для тестування, адже часто передбачають опитування або запитання про те, чи були виявлені атаки під час тесту на проникнення. Дуже багато досліджень показують, що час на виявлення порушення становить понад 200 днів і зазвичай ці порушення виявляються зовнішніми сторонами, а не внутрішніми процесами або моніторингом. Проте, виявлення цих порушень може бути дуже впливовим для підзвітності, видимості, оповіщення про інциденти та криміналістики.
A10:2021 – Підробка запитів на стороні сервера (Server-Side Request Forgery)
Нова категорія, додана у 2021 році. Проблеми підробки запитів на стороні сервера (SSRF) виникають щоразу, коли веб-програма отримує віддалений ресурс без перевірки наданої користувачем URL-адреси. Це дає зловмиснику можливість змусити програму надіслати створений запит до неочікуваного адресата, навіть якщо він захищений брандмауером, VPN або іншим типом списку контролю доступу до мережі (ACL). Оскільки сучасні веб-додатки надають кінцевим користувачам зручні функції, отримання URL-адреси стає звичайним сценарієм. Як наслідок, захворюваність на SSRF зростає. Крім того, серйозність SSRF стає вищою через хмарні сервіси та складність архітектур.
У самому документі можна знайти детальний опис кожної вразливості з зазначенням критеріїв приналежності до категорії, способи запобігання вказаних вразливостей, приклади сценаріїв атак, а також надані рекомендації щодо того, що робити далі, якщо вразливість виявлена. Отже, використання OWASP Top-10 – це, можливо, найефективніший перший крок на шляху зміни культури розробки програмного забезпечення у бік створення більш безпечного коду.