Анализ безопасности беспроводной сети на уровне пакетов

Опубликовано: 8 Апреля, 2023


Введение


Сложность беспроводной сети заключается в том, что вы не всегда можете видеть, с чем имеете дело. В беспроводной сети установить соединение не так просто, как подключить кабель, обеспечить физическую безопасность далеко не так просто, как просто не допустить посторонних лиц на объект, а устранение даже тривиальных проблем иногда может привести к нескольким ругательствам. в общем направлении точки доступа. При этом защита беспроводных сетей останется проблемой в обозримом будущем.


В этой статье я собираюсь обсудить полезные методы устранения проблем с безопасностью беспроводной сети на уровне пакетов. Я начну с демонстрации методов правильного сбора пакетов беспроводной сети. Как только будут собраны нужные данные, я расскажу о различных методах анализа, включая анализ аутентификации WEP/WPA, фильтрацию зашифрованного трафика и поиск мошеннических точек доступа.


Захват беспроводных пакетов


На уровне пакетов беспроводные сети во многом похожи на проводные сети. Беспроводные сети по-прежнему используют TCP/IP для передачи данных и подчиняются всем тем же законам организации сети, что и проводные хосты. Основное различие между двумя сетевыми платформами находится на нижних уровнях модели OSI. Беспроводные сети обмениваются данными, отправляя данные по воздуху, а не по проводу. Радиоканал, по которому передаются беспроводные данные, является общей средой, и поэтому необходимо уделять особое внимание физическому и канальному уровням, чтобы гарантировать отсутствие коллизий данных и надежную доставку данных. Эти услуги предоставляются различными механизмами стандарта 802.11.


Это имеет отношение к поиску и устранению неполадок в беспроводной сети, поскольку необходимо приложить некоторые дополнительные усилия для сбора информации второго уровня 802.11, необходимой для адекватного устранения неполадок. Для этого у вас должна быть возможность перевести карту беспроводного сетевого интерфейса (WNIC) в специальный режим, называемый режимом монитора. Режим монитора — это специальная настройка драйвера, которая ограничивает возможности WNIC по отправке данных и делает так, чтобы WNIC только пассивно прослушивал выбранный канал.


В операционных системах на базе Linux довольно легко перевести WNIC в режим монитора, но большинство драйверов Windows не позволяют использовать эту функцию. В результате для этой работы требуется специальное оборудование. Это аппаратное обеспечение называется AirPcap и производится CACE Technologies. Устройство AirPcap — это, по сути, WNIC, предназначенный для использования в режиме мониторинга с Windows и утилитой захвата пакетов Wireshark. Используя это устройство, вы можете захватить информацию второго уровня 802.11 из беспроводного канала, который вы слушаете.


Изображение 23488
Рис. 1. Экран конфигурации AirPcap позволяет настроить канал, который вы слушаете.


Структура пакета 802.11


Основное различие между беспроводными и проводными пакетами заключается в добавлении заголовка 802.11. Это заголовок второго уровня, который содержит дополнительную информацию о пакете и носителе, на котором он передается. Существует три типа пакетов 802.11; данные, управление и контроль.



  • Управление — эти пакеты используются для установления соединения между хостами на втором уровне. Некоторые важные подтипы пакетов управления включают пакеты аутентификации, ассоциации и маячковые пакеты.
  • Контроль. Пакеты управления позволяют доставлять пакеты управления и данных и связаны с управлением перегрузкой. Общие подтипы включают пакеты Request-to-Send и Clear-to-Send.
  • Данные — эти пакеты содержат фактические данные и являются единственным типом пакетов, которые можно пересылать из беспроводной сети в проводную.

Обсуждение каждого подтипа пакетов 802.11 выходит за рамки этой статьи, поэтому мы сосредоточимся на нескольких полях, представляющих интерес с точки зрения безопасности.


Поиск мошеннических точек доступа


Физическая безопасность ИТ-активов — это область безопасности, которую чаще всего упускают из виду. Одной из наиболее распространенных ошибок в этой области является добавление в сеть неавторизованных устройств. В проводном мире неавторизованный маршрутизатор может вызвать отказ в обслуживании, просто подключив его прямо из коробки. Хотя это, безусловно, имеет серьезные последствия, мошенническая точка беспроводного доступа (WAP) вызывает еще большую озабоченность, поскольку она может позволить кому-то извне получить доступ к сети, как если бы он пришел и подключил ноутбук к настенной розетке..


К счастью, обнаружить мошеннический WAP можно довольно просто. Чтобы сделать это, вы должны сначала начать с захвата беспроводного трафика из нескольких областей в пределах диапазона вещания вашей сети. Как только это будет сделано, можно использовать несколько различных фильтров, чтобы определить, существуют ли мошеннические точки доступа и связываются ли с ними клиенты.


Один из самых простых способов сделать это — узнать MAC-адрес известной законной точки доступа. Используя эту информацию, вы можете ввести фильтр !wlan.bssid == 00:11:88:6b:68:30, заменив MAC-адрес WAP на место приведенного мной примера MAC-адреса. Это покажет вам весь беспроводной трафик, который идет в или из WAP, отличной от указанной. Если у вас есть более одной точки доступа в этом районе, вы можете комбинировать эти фильтры с оператором ИЛИ ( || ). В этом случае вы можете использовать что-то вроде !wlan.bssid == 00:11:88:6b:68:30 || !wlan.bssid == 00:11:ff:a1:a4:22, чтобы отфильтровать две известные законные точки доступа.


Этот метод должен работать для поиска точек доступа в целом, но что, если вы хотите сделать еще один шаг и выяснить, действительно ли ваши мобильные рабочие станции подключаются к мошеннической точке доступа? Один из способов сделать это — отфильтровать запросы ассоциации. Для этого вы можете объединить один из предыдущих фильтров с фильтрами wlac.fc.type_subtype eq 0 и wlac.fc.type_subtype eq 2. Первый фильтр покажет все запросы на ассоциацию, а второй покажет запросы на повторную ассоциацию. При необходимости вы можете комбинировать любой из этих фильтров с предыдущими фильтрами с помощью оператора AND ( && ).


Наконец, вы можете сделать еще один шаг, определив, действительно ли данные передаются между мобильными клиентами и мошенническим WAP. Вы можете сделать это, отфильтровав все пакеты данных, которые передаются с нелегитимной точки доступа, используя фильтр wlan.fc.type eq 2 в сочетании с показанными ранее фильтрами, которые исключают известные легитимные точки доступа.


Фильтрация незашифрованного трафика


Единственная реальная надежда на защиту пакетов от перехватчиков, когда они летят по воздуху, — это использование некоторого типа шифрования. Обычно это делается путем реализации WPA или WPA2 в современных системах. При этом хорошей практикой безопасности является время от времени проверять ваши беспроводные сети и следить за тем, чтобы беспроводные клиенты не передавали данные незашифрованным способом. Это может произойти проще, чем вы думаете, поскольку WAP может быть неправильно настроен, может присутствовать мошенническая WAP или два беспроводных клиента могут обмениваться данными напрямую в режиме ad-hoc.


Поиск незашифрованных данных в беспроводной сети — это вопрос использования другого фильтра. В этом случае мы можем найти все пакеты с незашифрованными данными, используя фильтр wlan.fc.protected == 0. Теперь, если вы используете это прямо сейчас, вы обнаружите, что он возвращает некоторые неожиданные результаты. Кадры управления и управления 802.11 не шифруются, поскольку выполняют только административные функции для WAP и беспроводных клиентов. В этом случае мы должны расширить этот фильтр, добавив wlan.fc.type eq 2. Это гарантирует, что фильтр отображает только незашифрованные пакеты данных. Конечным фильтром будет wlan.fc.protected == 0 && wlan.fc.type eq 2.


Анализ аутентификации WEP и WPA


Первоначально предпочтительным методом защиты данных, передаваемых по беспроводным сетям, была защита, эквивалентная проводным сетям (WEP). Протокол WEP несколько лет пользовался небольшим успехом, пока не было обнаружено несколько слабых мест в его управлении ключами шифрования. В результате были созданы новые стандарты, в том числе стандарты Wi-Fi Protected Access (WPA) и WPA2. Хотя WPA и его более безопасная версия WPA2 по-прежнему подвержены ошибкам, они считаются более безопасными, чем WEP.


Очень полезно иметь возможность различать аутентификацию WEP и WPA в сети. Если вы сможете это сделать, вы сможете определить аутентификацию WEP в сети, которая должна быть только WPA. Наряду с этим вы должны иметь возможность анализировать неудачные попытки аутентификации, когда они присутствуют.


WEP-аутентификация


Аутентификация WEP работает с использованием механизма запрос/ответ. Когда клиент пытается подключиться к WAP, WAP выдает текст запроса. Этот вызов подтверждается, и затем клиент берет текст, расшифровывает его с помощью ключа WEP, предоставленного клиентом, и передает результирующую строку обратно в WAP.


Как только точка доступа проверяет, что текст ответа соответствует действительности, она отправляет сообщение обратно клиенту, чтобы уведомить его об успешном завершении процесса аутентификации. Фильтр для поиска успешных ответов аутентификации — .


Изображение 23489
Рисунок 2: WAP уведомляет клиента об успешной аутентификации


В случае, если аутентификация не прошла успешно, WAP передаст сообщение о том, что он «Получил кадр аутентификации с порядковым номером транзакции последовательности аутентификации, который не соответствует ожидаемой последовательности».


Изображение 23490
Рисунок 3: WAP уведомляет клиента о сбое аутентификации


Фильтр для поиска пакета с этим уведомлением об ошибке: wlan_mgt.fixed.status_code == 0x000e.


WPA-аутентификация


Аутентификация WPA также использует механизм запроса/ответа, но он работает совсем по-другому. На уровне пакетов аутентификация WPA использует EAPOL для выполнения запроса/ответа. Вы можете найти эти пакеты, используя простой фильтр EAPOL. При успешной аутентификации вы обычно должны увидеть четыре пакета EAPOL, представляющих два запроса и ответа, всего четыре пакета. Каждый вызов и ответ могут быть объединены вместе с использованием значения счетчика воспроизведения в пакете.


Изображение 23491
Рис. 4. Поле Replay Counter используется для сопоставления вызовов и ответов.


В ситуации, когда аутентификация WPA не удалась, вы получите больше пакетов EAPOL, в которых попытка запроса/ответа предпринимается еще несколько раз. Как только этот процесс в конечном итоге завершится ошибкой, вы должны увидеть пакет деаутентификации.


Изображение 23492
Рисунок 5: После неудачного рукопожатия WPA клиент деаутентифицируется


Есть два способа отфильтровать неудачную аутентификацию WPA. Первый заключается в использовании фильтра EAPOL и подсчете количества пакетов, переданных между WAP и беспроводным клиентом. Другой способ — отфильтровать пакеты деаутентификации с помощью фильтра wlan.fc.type_subtype == 0x0c. Это вернет довольно много дополнительных результатов, не связанных с неудачной аутентификацией, поэтому, чтобы убедиться, что пакеты связаны с этим, вам придется копнуть немного глубже и создать еще один фильтр, охватывающий все пакеты между WAP и рассматриваемым беспроводным клиентом..


Вывод


В этой статье я обсудил некоторые основные особенности захвата пакетов беспроводных сетей и показал различные приложения анализа пакетов для безопасности беспроводной сети. Беспроводные сети, безопасность беспроводной сети и анализ пакетов — все это очень широкие темы. Из-за этого эта статья может показаться похожей на питье из пожарного шланга, а не из фонтана, но я надеюсь, что она может послужить отправной точкой для дальнейших исследований в этих областях. Если вам интересно узнать об анализе пакетов, поскольку он относится к безопасности беспроводной сети, я рекомендую вам загрузить Wireshark или другую утилиту для захвата пакетов и начать анализировать пакеты самостоятельно.