12 KiB
Моделювання загроз
Моделювання загроз
Ласкаво просимо до всебічного посібника HackTricks з моделювання загроз! Розпочніть дослідження цього критично важливого аспекту кібербезпеки, де ми ідентифікуємо, розуміємо та розробляємо стратегії проти потенційних вразливостей у системі. Ця тема слугує покроковим посібником, наповненим реальними прикладами, корисним програмним забезпеченням та зрозумілими поясненнями. Ідеально підходить як для новачків, так і для досвідчених практиків, які прагнуть зміцнити свої оборонні механізми кібербезпеки.
Загальновживані сценарії
- Розробка програмного забезпечення: Як частина безпечного життєвого циклу розробки програмного забезпечення (SSDLC), моделювання загроз допомагає у виявленні потенційних джерел вразливостей на ранніх етапах розробки.
- Пентестинг: Стандарт виконання пентестингу (PTES) вимагає моделювання загроз для розуміння вразливостей системи перед проведенням тесту.
Модель загроз у короткому викладі
Модель загроз зазвичай представлена у вигляді діаграми, зображення або іншої візуальної ілюстрації, що зображає заплановану архітектуру або існуючу побудову програми. Вона нагадує діаграму потоку даних, але ключова відмінність полягає в її орієнтованому на безпеку дизайні.
Моделі загроз часто містять елементи, позначені червоним, що символізують потенційні вразливості, ризики або бар'єри. Для спрощення процесу ідентифікації ризиків використовується тріада CIA (Конфіденційність, Цілісність, Доступність), що становить основу багатьох методологій моделювання загроз, з яких STRIDE є однією з найпоширеніших. Однак обрана методологія може варіюватися в залежності від конкретного контексту та вимог.
Тріада CIA
Тріада CIA є широко визнаною моделлю в галузі інформаційної безпеки, що означає Конфіденційність, Цілісність та Доступність. Ці три стовпи формують основу, на якій базуються багато заходів і політик безпеки, включаючи методології моделювання загроз.
- Конфіденційність: Забезпечення того, щоб дані або система не були доступні несанкціонованим особам. Це центральний аспект безпеки, що вимагає відповідних контролів доступу, шифрування та інших заходів для запобігання витокам даних.
- Цілісність: Точність, послідовність та надійність даних протягом їх життєвого циклу. Цей принцип забезпечує, щоб дані не були змінені або підроблені несанкціонованими сторонами. Це часто включає контрольні суми, хешування та інші методи перевірки даних.
- Доступність: Це забезпечує, щоб дані та послуги були доступні авторизованим користувачам, коли це необхідно. Це часто включає надмірність, стійкість до збоїв та конфігурації високої доступності, щоб системи працювали навіть у разі збоїв.
Методології моделювання загроз
- STRIDE: Розроблена Microsoft, STRIDE є акронімом для Спуфінг, Підробка, Відмова, Розкриття інформації, Відмова в обслуговуванні та Підвищення привілеїв. Кожна категорія представляє тип загрози, і ця методологія зазвичай використовується на етапі проектування програми або системи для виявлення потенційних загроз.
- DREAD: Це ще одна методологія від Microsoft, що використовується для оцінки ризиків виявлених загроз. DREAD означає Потенціал шкоди, Відтворюваність, Експлуатованість, Постраждалі користувачі та Виявлення. Кожен з цих факторів оцінюється, а результат використовується для пріоритизації виявлених загроз.
- PASTA (Процес симуляції атак та аналізу загроз): Це семиетапна, орієнтована на ризик методологія. Вона включає визначення та ідентифікацію цілей безпеки, створення технічного обсягу, декомпозицію програми, аналіз загроз, аналіз вразливостей та оцінку ризиків/тріажу.
- Trike: Це методологія, що базується на ризику, яка зосереджується на захисті активів. Вона починається з перспективи управління ризиками і розглядає загрози та вразливості в цьому контексті.
- VAST (Візуальне, Гнучке та Просте моделювання загроз): Цей підхід прагне бути більш доступним і інтегрується в середовища гнучкої розробки. Він поєднує елементи з інших методологій і зосереджується на візуальних представленнях загроз.
- OCTAVE (Оцінка критичних загроз, активів та вразливостей): Розроблена Центром координації CERT, ця структура орієнтована на оцінку ризиків організації, а не конкретних систем або програмного забезпечення.
Інструменти
Існує кілька інструментів та програмних рішень, які можуть допомогти у створенні та управлінні моделями загроз. Ось кілька, які ви можете розглянути.
SpiderSuite
Розширений кросплатформений та багатофункціональний графічний інтерфейс веб-спайдера/краулера для професіоналів у сфері кібербезпеки. Spider Suite може використовуватися для картографування та аналізу поверхні атаки.
Використання
- Виберіть URL та скануйте
- Перегляньте графік
OWASP Threat Dragon
Відкритий проект від OWASP, Threat Dragon є як веб-, так і настільним додатком, що включає діаграмування системи, а також механізм правил для автоматичного генерування загроз/заходів пом'якшення.
Використання
- Створіть новий проект
Іноді це може виглядати так:
- Запустіть новий проект
- Збережіть новий проект
- Створіть свою модель
Ви можете використовувати інструменти, такі як SpiderSuite Crawler, щоб отримати натхнення, базова модель виглядатиме приблизно так
Трохи пояснення про сутності:
- Процес (Сама сутність, така як веб-сервер або веб-функціональність)
- Актор (Особа, така як відвідувач сайту, користувач або адміністратор)
- Лінія потоку даних (Індикатор взаємодії)
- Межа довіри (Різні сегменти або області мережі.)
- Сховище (Місця, де зберігаються дані, такі як бази даних)
- Створіть загрозу (Крок 1)
Спочатку вам потрібно вибрати рівень, до якого ви хочете додати загрозу
Тепер ви можете створити загрозу
Зверніть увагу, що існує різниця між загрозами актора та загрозами процесу. Якщо ви додасте загрозу до актора, ви зможете вибрати лише "Спуфінг" та "Відмову". Однак у нашому прикладі ми додаємо загрозу до сутності процесу, тому ми побачимо це в полі створення загрози:
- Готово
Тепер ваша завершена модель повинна виглядати приблизно так. І так ви створюєте просту модель загрози за допомогою OWASP Threat Dragon.
Microsoft Threat Modeling Tool
Це безкоштовний інструмент від Microsoft, який допомагає знаходити загрози на етапі проектування програмних проектів. Він використовує методологію STRIDE і особливо підходить для тих, хто розробляє на стеку Microsoft.