mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 05:03:35 +00:00
111 lines
13 KiB
Markdown
111 lines
13 KiB
Markdown
# Моделювання загроз
|
||
|
||
## Моделювання загроз
|
||
|
||
Ласкаво просимо до вичерпного посібника HackTricks з моделювання загроз! Почніть дослідження цього критичного аспекту кібербезпеки, де ми визначаємо, розуміємо та стратегічно діємо проти потенційних загроз у системі. Ця тема слугує посібником крок за кроком, наповненим реальними прикладами, корисним програмним забезпеченням та легкими для розуміння поясненнями. Ідеально підходить як для початківців, так і для досвідчених практиків, які бажають зміцнити свої кібербезпекові оборонні засоби.
|
||
|
||
### Часто використовувані методології
|
||
|
||
1. **Розробка програмного забезпечення**: Як частина Життєвого циклу безпечного розроблення програмного забезпечення (SSDLC), моделювання загроз допомагає **виявити потенційні джерела уразливостей** на ранніх етапах розробки.
|
||
2. **Тестування на проникнення**: Стандарт виконання тестування на проникнення (PTES) вимагає **моделювання загроз для розуміння уразливостей системи** перед проведенням тесту.
|
||
|
||
### Метод моделювання загроз у кількох словах
|
||
|
||
Модель зазвичай представлена у вигляді діаграми, зображення або іншої форми візуалізації, що показує заплановану архітектуру або існуючу побудову додатка. Вона нагадує **діаграму потоку даних**, але ключова відмінність полягає в її орієнтованому на безпеку дизайні.
|
||
|
||
Моделі загроз часто містять елементи, позначені червоним кольором, символізуючи потенційні уразливості, ризики або бар'єри. Для спрощення процесу ідентифікації ризиків використовується триада Конфіденційність, Цілісність, Доступність (CIA), яка є основою багатьох методологій моделювання загроз, з STRIDE як однією з найпоширеніших. Однак обрана методологія може відрізнятися в залежності від конкретного контексту та вимог.
|
||
|
||
### Триада Конфіденційність, Цілісність, Доступність
|
||
|
||
Триада Конфіденційність, Цілісність, Доступність широко визнана модель у галузі інформаційної безпеки, що означає Конфіденційність, Цілісність та Доступність. Ці три стовпи становлять основу, на якій ґрунтуються багато заходів безпеки та політик, включаючи методології моделювання загроз.
|
||
|
||
1. **Конфіденційність**: Забезпечення того, що дані або система не доступні несанкціонованим особам. Це центральний аспект безпеки, який вимагає відповідних контролів доступу, шифрування та інших заходів для запобігання порушенням даних.
|
||
2. **Цілісність**: Точність, послідовність та надійність даних протягом їх життєвого циклу. Цей принцип забезпечує, що дані не змінюються або не підробляються несанкціонованими сторонами. Часто це включає контрольні суми, хешування та інші методи перевірки даних.
|
||
3. **Доступність**: Забезпечення доступності даних та послуг для авторизованих користувачів у потрібний момент. Це часто включає резервне копіювання, відмовостійкі конфігурації та конфігурації високої доступності для забезпечення безперебійної роботи систем навіть у випадку збоїв.
|
||
|
||
### Методології моделювання загроз
|
||
|
||
1. **STRIDE**: Розроблений Microsoft, STRIDE є абревіатурою для **Підроблення, Вплив, Відмова від заперечення, Розкриття інформації, Відмова в обслуговуванні та Підвищення привілеїв**. Кожна категорія e представляє тип загрози, і ця методологія часто використовується на етапі проектування програми або. для ідентифікації потенційних загроз.
|
||
2. **DREAD**: Це ще одна методологія від Microsoft, яка використовується для оцінки ризику виявлених загроз. DREAD означає **Потенційний збиток, Відтворюваність, Експлуатованість, Постраждалі користувачі та Виявленість**. Кожен з цих факторів оцінюється, і результат використовується для пріоритизації виявлених загроз.
|
||
3. **PASTA** (Процес для симуляції атак та аналізу загроз)**: Це семиетапна **рисково-центрична** методологія. Вона включає визначення та ідентифікацію цілей безпеки, створення технічного обсягу, декомпозицію додатка, аналіз загроз, аналіз вразливостей та оцінку ризику/тріажу.
|
||
4. **Trike**: Це методологія, спрямов, на захист активів. Вона починається з **управління ризиками** і дивиться на загрози вразливостей в цьому контексті.
|
||
5. **VAST** (Візуальне, Гнучке та Просте моделювання загроз): Цей підхід спрямований на більш доступність та інтегрується в середовища розробки Agile. Він поєднує елементи з інших методологій та фокусується на **візуальних представленнях загроз**.
|
||
6. **OCTAVE** (Операційно критична оцінка загроз, активів та вразливостей): Розроблений Центром координації CERT, ця рамка спрямована на **організаційну оцінку ризику**, а не на конкретні системи чи програмне забезпечення.
|
||
|
||
## Інструменти
|
||
|
||
Існують кілька і доступних інструментів та програмних рішень, які можуть **допомогти** у створенні та управлінні моделями загроз. Ось кілька, які ви можете врахувати.
|
||
|
||
### [SpiderSuite](https://github.com/3nock/SpiderSuite)
|
||
|
||
Покращений крос-платформений та багатофункціональний графічний веб-павук/краулер для професіоналів з кібербезпеки. Spider Suite може бути використаний для картографування та аналізу поверхні атаки.
|
||
|
||
**Використання**
|
||
|
||
1. Виберіть URL та Краулінг
|
||
|
||
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_1.png" alt=""><figcaption></figcaption></figure>
|
||
|
||
2. Перегляньте Графік
|
||
|
||
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_2.png" alt=""><figcaption></figcaption></figure>
|
||
|
||
### [OWASP Threat Dragon](https://github.com/OWASP/threat-dragon/releases)
|
||
|
||
Проект з відкритим кодом від OWASP, Threat Dragon є як веб- так і настільною програмою, яка включає діаграмування системи, а також правила для автоматичного генерування загроз/протиправних дій.
|
||
|
||
**Використання**
|
||
|
||
1. Створіть новий проект
|
||
|
||
<figure><img src="../.gitbook/assets/create_new_project_1.jpg" alt=""><figcaption></figcaption></figure>
|
||
|
||
Іноді це може виглядати так:
|
||
|
||
<figure><img src="../.gitbook/assets/1_threatmodel_create_project.jpg" alt=""><figcaption></figcaption></figure>
|
||
|
||
2. Запустіть новий проект
|
||
|
||
<figure><img src="../.gitbook/assets/launch_new_project_2.jpg" alt=""><figcaption></figcaption></figure>
|
||
|
||
3. Збережіть новий проект
|
||
|
||
<figure><img src="../.gitbook/assets/save_new_project.jpg" alt=""><figcaption></figcaption></figure>
|
||
|
||
4. Створіть свою модель
|
||
|
||
Ви можете використовувати інструменти, такі як SpiderSuite Crawler, щоб надихнути вас, базова модель виглядатиме приблизно так
|
||
|
||
<figure><img src="../.gitbook/assets/0_basic_threat_model.jpg" alt=""><figcaption></figcaption></figure>
|
||
|
||
Трохи пояснення про сутності:
|
||
|
||
* Процес (Сутність, така як Веб-сервер або функціональність веб-сайту)
|
||
* Актор (Особа, така як Відвідувач веб-сайту, Користувач або Адміністратор)
|
||
* Лінія потоку даних (Індикатор взаємодії)
|
||
* Межа довіри (Різні мережеві сегменти або області.)
|
||
* Сховище (Місця, де дані зберігаються, такі як бази даних)
|
||
|
||
5. Створіть загрозу (Крок 1)
|
||
|
||
Спочатку вам потрібно вибрати шар, до якого ви хочете додати загрозу
|
||
|
||
<figure><img src="../.gitbook/assets/3_threatmodel_chose-threat-layer.jpg" alt=""><><figcaption></figcaption></figure>
|
||
|
||
Тепер ви можете створити загрозу
|
||
|
||
<figure><img src="../.gitbook/assets/4_threatmodel_create-threat.jpg" alt=""><figcaption></figcaption></figure>
|
||
|
||
Пам'ятайте, що є різниця між Загрозами Актора та Загрозами Процесу. Якщо ви додасте загрозу до Акрора, то ви зможете вибрати лише "Підроблення" та "Відмова від заперечення". Однак у нашому прикладі ми додаємо загрозу до сутності Процесу, тому ми побачимо це у вікні створення загрози:
|
||
|
||
<figure><img src="../.gitbook/assets/2_threatmodel_type-option.jpg" alt=""><figcaption></figcaption></figure>
|
||
|
||
6. Готово
|
||
|
||
Тепер ваша готова модель має виглядати приблизно так. І ось як ви створюєте просту модель загроз з OWASP Threat Dragon.
|
||
|
||
<figure><img src="../.gitbook/assets/threat_model_finished.jpg" alt=""><figcaption></figcaption></figure>
|
||
|
||
### [Інструмент моделювання загроз від Microsoft](https://aka.ms/threatmodelingtool)
|
||
|
||
Це безкоштовний інструмент від Microsoft, який допомагає виявляти загрози на етапі проектування програмних проектів. Він використовує методологію STRIDE і особливо підходить для тих, хто розробляє на стеку Microsoft.
|