Тестування безпеки – це тип тестування програмного забезпечення, який виявляє вразливі місця, загрози, ризики в програмному додатку та запобігає атакам зловмисників. Метою тестування безпеки є виявлення можливих лазівок і слабких місць системи, які можуть призвести до втрати інформації, доходу, репутації організації.
Основна мета тестування безпеки — виявити загрози в системі та виміряти її потенційні вразливості, щоб можна було ефективно захиститися від загроз і керувати ризиками безпеки.
Типи тестування безпеки
Існує сім основних типів тестування безпеки (OSSTMM – Open Source Security Testing methodology manual):
- Сканування вразливостей (Vulnerability Scanning): виконується за допомогою автоматизованого програмного забезпечення для сканування системи на відомі сигнатури вразливостей.
- Сканування безпеки (Security scanning): передбачає виявлення слабких місць мережі та системи, а потім пропонує рішення для зменшення цих ризиків. Це сканування можна виконувати як вручну так і за допомогою інструментів.
- Тестування проникнення (Penetration testing): цей вид тестування імітує атаку хакера, передбачає аналіз конкретної системи для виявлення потенційної вразливості.
- Оцінка ризиків (Risk Assessment): тестування передбачає аналіз ризиків безпеки, які є в організації. Ризики класифікуються як низькі, середні та високі. Це тестування рекомендує засоби контролю та заходи для зменшення ризику.
- Аудит безпеки (Security Auditing): це внутрішня перевірка додатків і операційних систем на наявність недоліків у безпеці.
- Етичне хакерство (Ethical hacking): злам систем програмного забезпечення організації. На відміну від хакерів (black hat), які крадуть заради власної вигоди, метою є виявлення недоліків безпеки в системі за згодою з власником цієї системи.
- Оцінка стану (Posture Assessment): поєднує сканування безпеки, етичне хакерство та оцінку ризиків, щоб показати загальний стан безпеки організації.
Тестування безпеки в контексті SDLC
Керуємося принципом раннього тестування.
Фази SDLC | Процеси безпеки |
Вимоги | Аналіз безпеки для вимог і перевірка випадків зловживань/зловживання |
Дизайн | Аналіз ризиків безпеки для проєктування. Розробка плану тестування, включаючи тести безпеки |
Кодування та модульне тестування | Статичне та динамічне тестування та тетсування білої скриньки безпеки |
Інтеграційне тестування | Тестування чорної скриньки безпеки |
Тестування системи | Сканування вразливостей та тестування чорного скриньки безпеки |
Реалізація | Тестування проникнення, сканування вразливостей |
Підтримка | Аналіз впливу патчів |
Ролі тестування безпеки
Хакери (Hackers) – доступ до комп’ютерної системи або мережі без авторизації.
Зломщики (Crackers) – проникають у системи, щоб викрасти або знищити дані.
Етичний хакер (Ethical hacker) – виконує більшість дій зі злому, але з дозволу власника.
Script Kiddies або packet monkeys – недосвідчені хакери зі знанням мови програмування.
Інструменти тестування безпеки
OWASP – Open Web Application Security Project
Всесвітня некомерційна організація, яка зосереджена на покращенні безпеки програмного забезпечення. У проєкті є кілька інструментів для тестування різними програмними середовищами та протоколами.
Популярні інструменти:
- OWASP Web Testing Environment Project – проєкт середовища веб-тестування OWASP (колекція засобів безпеки та документації).
- OWASP Dependency Check – перевірка залежностей OWASP (вона шукає залежності проєкту та перевіряє на відомі вразливості)
- Zed Attack Proxy – інтегрований інструмент тестування на проникнення.
Wireshark
Wireshark — це інструмент аналізу мережі. Він перехоплює пакети в режимі реального часу та відображає їх у форматі, зрозумілому людині. По суті, це аналізатор мережевих пакетів, який надає детальні відомості про ваші мережеві протоколи, розшифровку, інформацію про пакети тощо. Це open source інструмент і може використовуватися в Linux, Windows, OS X, Solaris, NetBSD, FreeBSD і багатьох інших інші системи.
w3af
w3af — це фреймворк для симуляції атак та аудиту веб-додатків. Це фреймворк має три типи плагінів; виявлення, аудит і атака, які взаємодіють між собою для виявлення різних вразливостей на сайті. Наприклад, плагін виявлення в w3af шукає різні URL-адреси, щоб перевірити наявність вразливостей, і пересилає їх плагіну аудиту, який потім використовує ці URL-адреси для пошуку вразливостей.
Intruder
Intruder — це потужний автоматизований інструмент тестування на проникнення, який виявляє слабкі місця безпеки у вашому ІТ-середовищі. Пропонує постійний моніторинг і просту у використанні платформу:
- Перевіряє слабкі місця конфігурації, відсутні патчі, слабкі сторони додатків
- Автоматичний аналіз і пріоритезація результатів сканування
- Інтуїтивно зрозумілий інтерфейс, швидке налаштування та виконання перших сканувань
- Проактивний моніторинг безпеки на наявність останніх вразливостей
- Може використовуватися як великим, так і малим бізнесом.
Є платним, для малого бізнесу з одним додатком для тестування і десятком цілей в середньому коштує 200 доларів на місяць, а для великого бізнесу ціна може бути – 5-6 тисяч доларів на місяць.
Acunetix
Acunetix — інтуїтивно зрозумілий і простий у використанні інструмент. Пропонує: розширений сканер для найскладніших веб-додатків, у.т.ч. багатоформатні та захищені паролем області; комбіноване інтерактивне та динамічне тестування безпеки додатків для виявлення вразливостей, які пропускають інші інструменти; звіт про відповідність нормативним стандартам (наприклад ISO 27001) та інші функціональні можливості. Це також платний, комерційни інструмент, доволі дорогий. Базова підписка коштує 4.5 тисячі доларів.
В цьому відео поговоримо про тестування безпеки:
00:10 Тестування безпеки
02:34 Типи тестування безпеки
05:49 Тестування безпеки в контексті SDLC
09:41 Ролі тестування безпеки
12:40 Інструменти тестування безпеки