
Методологія аудиту безпеки веб-програми
Сьогодні ми поговоримо про методологію проведення тестування на проникнення веб-додатків. Одним з методів аудиту веб-сайту є тестування на проникнення BlackBox (BlackBox - «чорний ящик»), при якому фахівець має тільки загальнодоступну інформацію про мету дослідження.
У цьому методі використовується модель зовнішнього зловмисника, мотивованого на злом якогось веб-сайту для отримання комерційної вигоди або з хуліганських спонукань. Про досліджувану систему зазвичай заздалегідь нічого, крім назви компанії та адреси веб-сайту, невідомо. У контексті цієї статті буде розглянуто як поведінку зловмисника, так і пентестера, легітимність дій якого підтверджена замовником аудиту. Підтвердження аудиту може відбуватися різними способами - як інформаційним листом із зазначенням об'єкта аудиту (і винятків), так і за допомогою спеціальних маркерів безпосередньо на атакуючому сайті.
Для повної картини атаки на сайт і дій співробітників служб ІТ/ІБ відділів вкрай не рекомендується ставити останніх до відома. Цим замовник може перевірити готовність своїх співробітників до реагування на інциденти ІБ.
Основні завдання тестування на проникнення:
- аналіз і перевірка безпеки архітектури Web-сервера;
- виявлення, оцінка та спроба експлуатації (за погодженням із замовником) всіх можливих вразливостей у Web-додатку;
- опис векторів атаки та оцінка ризиків;
- надання рекомендацій щодо поліпшення інформаційної безпеки Web-додатку.
Основні завдання зловмисника:
- отримання доступу до критичних даних;
- виведення сайту з ладу;
- монетизація/профіт.
Незважаючи на розбіжність цілей, більшість методів роботи зловмисника і пентестера збігаються. При атаці зловмисник зазвичай не надає особливого значення морально-етичним нормам, така атака може призвести до незворотних деструктивних наслідків. При аудиті легітимним пентестером узгоджуються наявність резервних копій і ризик деструктивних наслідків зводиться до мінімального (особливо якщо у замовника є можливість розгорнути тестовий стенд).
Зловмисники зазвичай йдуть шляхом від простого до складного: виявляють явні вразливості за допомогою популярних утиліт і сканерів і намагаються експлуатувати виявлені вразливості. Паралельно можуть проводити фішингові атаки з розсилкою шкідливих файлів або посилань. Основна мета - з мінімальними зусиллями отримати необхідні дані.
Пентестери обробляють всі можливі вразливості і вектори атак, у тому числі з використанням соціотехнічних методів (якщо таке погоджено із замовником), але без шкідливих вкладень. Додатково можуть бути досліджені бізнес-процеси та маніпулювання бізнес-логікою додатку.
Основні методи аудиту схожі на дії зловмисника і включають в себе:
- Розвідку і збір інформації про атаковану систему: у хід йдуть спеціальні пошукові запити (google dork), виявлення поштових адрес співробітників, профілів компанії на сайтах вакансій (за вакансіями можна визначити використовувані технології), пошук інформації в кеші пошуковиків, сканування портів;
- Виявлення захисних засобів сайту - IDS/IPS/AntiDDoS/WAF систем;
- Сканування веб-додатку популярними утилітами та сканерами - тут досить широкий вибір, як платних, так і безкоштовних програм, наприклад веб-сканер w3af;
- Сканування директорій веб-сайту для пошуку чутливої інформації (файли, бекапи бази даних та інше) - наприклад утилітою dirbuster;
- Ручний аналіз вразливостей - за допомогою проксируючих засобів відбувається обробка запитів і аналіз на предмет наявності потенційних вразливостей, одна з популярних утиліт - Burpsuite.
Ці методи включають в себе такі етапи:
- Пасивний збір інформації;
- Визначення веб-оточення і платформи;
- Визначення типу CMS;
- Сканування портів/збір банерів;
- Автоматичні сканування;
- Аналіз даних;
- Визначення «вузьких місць» ресурсу;
- Ручний аналіз;
- Збір та аналіз отриманої інформації;
- Аналіз векторів атаки;
- Підтвердження отриманих векторів;
- Складання звіту.
Отримані вектори аналізуються і перевіряються, фіксується час виявлення, оскільки не виключені моменти виявлення аномальної активності персоналом замовника шляхом аналізу, наприклад, access log і реалізації заходів з оперативного усунення вразливості або атаки. Знайдені форми авторизації або сервіси піддаються т. зв. bruteforce-атаці (підбір паролів).
У випадку з пентестерами дані агрегуються в системи типу Dradis для аналізу та оптимізації отриманої інформації. На підставі отриманих даних формується звіт, розподілений за вразливими сервісами, з детальним описом вразливостей, сценаріями атаки, що складаються з декількох векторів, оцінкою ризиків і рекомендаціями щодо їх усунення.
Тільки при повному і відповідальному аудиті замовник отримує максимально реалістичну картину зрілості системи інформаційної безпеки свого веб-сайту.