Перейти к содержанию

Справочник атак и алгоритмы 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-атак на беспроводную среду.