Справочник атак и алгоритмы WIDS¶
SORA предоставляет операторам широкий спектр активных и полуактивных методов аудита безопасности сетей стандартов IEEE 802.11, а также встроенную систему автоматического обнаружения сетевых аномалий и угроз (WIDS).
💥 Разбор ключевых атак SORA¶
1. Перехват хэндшейков WPA3 SAE (Dragonfly)¶
Сети WPA3-Personal используют протокол аутентификации SAE (Simultaneous Authentication of Equals) на базе криптографического алгоритма Dragonfly. В отличие от WPA2, здесь происходит полноценный обмен 4 фреймами Authentication (с алгоритмом №3).
Модуль SAEFilter отслеживает сессии аутентификации и извлекает сырые криптографические компоненты Commit/Confirm для последующего анализа офлайн:
sequenceDiagram
autonumber
participant Client as Клиент (Инициатор)
participant AP as Точка доступа (Ответчик)
Note over Client, AP: Алгоритм Dragonfly (SAE Auth Alg = 3)
Client->>AP: Auth Commit (auth_seq=1) -> commit_client
AP->>Client: Auth Commit (auth_seq=1) -> commit_ap
Note right of AP: Проверка токенов защиты от Clogging (had_act)
Client->>AP: Auth Confirm (auth_seq=2) -> confirm_client
AP->>Client: Auth Confirm (auth_seq=2) -> confirm_ap
Note over Client, AP: 4 фрейма собраны -> Событие SaeHandshakeCaptured
2. Deauthentication Burst с синхронизацией Sequence Numbers¶
Классическая инжекция деавторизующих фреймов легко блокируется современными операционными системами, если пакеты приходят со случайными номерами последовательности (sequence numbers).
SORA решает эту задачу с помощью модуля SeqNumTracker:
1. Ядро непрерывно анализирует трафик в канале и сохраняет последний легитимный seq_num для пары AP <-> Client.
2. При запуске атаки фрейм деавторизации инжектируется с полем sequence = last_seq + 1.
3. Клиентское устройство принимает этот пакет за легитимный и немедленно разрывает соединение, что провоцирует повторный обмен ключами и захват EAPOL хэндшейка.
3. Karma & Mana Engines: Полуактивный Evil Twin¶
Интеллектуальный генератор ложных точек доступа реагирует на фреймы Probe Request от клиентов, пытающихся найти ранее сохраненные домашние или корпоративные сети.
В зависимости от настроек KarmaMode в TOML-профиле, ядро задействует один из трех алгоритмов:
| Режим | Поведение генератора | Цель |
|---|---|---|
| Karma | Отвечает Probe Response только на направленные (directed) запросы по конкретному SSID. |
Точечная атака на конкретное устройство. |
| Mana | Отвечает на направленные запросы + отвечает на широковещательные (wildcard, пустой SSID). |
Массовый захват устройств в радиусе действия. |
| Mana Loud | Отвечает персонально клиенту + рассылает широковещательный Probe Response (DA = FF:FF:FF:FF:FF:FF) на всю зону. |
Агрессивное провоцирование автоподключения мобильных ОС. |
4. CSA (Channel Switch Announcement)¶
Атака заставляет клиентов легитимной AP мгновенно переключиться на нужный нам канал:
* SORA инжектирует пакеты Beacon и Probe Response от имени целевой AP.
* Внутрь кадра добавляется информационный элемент IE 37 (Channel Switch Announcement) с номером целевого канала и счетчиком switch_count.
* Клиентские устройства, доверяя легитимному кадру AP, принудительно переключают свой радиомодуль на новый канал, где их уже ожидает развернутый нами стенд Evil Twin.
🛡️ Встроенная система WIDS (Wireless IDS)¶
Обнаружение угроз работает непосредственно внутри горячего цикла сетевого потока PacketEngine в attack_state.rs. За счет отсутствия буферизации реакция на инциденты происходит мгновенно.
1. Детектирование Rogue AP (Поддельных точек доступа)¶
Алгоритм выявляет классические клоны легитимных точек доступа:
1. При получении фрейма Beacon парсер извлекает пару (SSID, BSSID).
2. Если SSID найден в LRU-кэше ssid_bssid_map, но ассоциированный с ним BSSID не совпадает с текущим — фиксируется атака Rogue AP.
3. Python-контроллеру мгновенно отправляется критическое событие SoraEvent::Alert с типом rogue_ap.
2. Детектирование Encryption Downgrade (Понижения шифрования)¶
Атакующие часто принудительно заставляют точки доступа переключаться на менее защищенные стандарты шифрования для упрощения брутфорса:
1. WIDS хранит карту BSSID -> encryption_rank.
2. Ранги шифрования распределены по надежности:
$\(\text{WPA3 (Rank 5)} > \text{WPA2 (Rank 4)} > \text{WPA (Rank 3)} > \text{WEP (Rank 2)} > \text{Open (Rank 1)}\)$
3. Если от известной точки доступа зафиксирован кадр, где ранг шифрования резко упал (например, с WPA3 на WPA2) — регистрируется алерт повышенной важности encryption_downgrade.
3. Детектирование Deauth Flood (Шторма деавторизации)¶
WIDS использует алгоритм скользящего окна времени (sliding window) длительностью 10 секунд для каждого уникального MAC-адреса источника:
[Пакет Deauth] ---> [Есть MAC в кэше?]
|
+-------------+-------------+
| Да | Нет
[Прошло > 10 сек?] [Создать счетчик = 1]
| | [Запомнить Instant::now()]
Да | Нет|
[Сброс счетчика] [Счетчик + 1]
[Время = now] [Счетчик == 50?] ---> Да ---> [Алерт: deauth_flood!]
Этот алгоритм эффективно фильтрует единичные легитимные обрывы связи от реальных целенаправленных DOS-атак на беспроводную среду.