Перехват пакетов беспроводной сети
На
уровне пакетов беспроводные сети схожи с проводными сетями в
большинстве случаев. Беспроводные сети также используют TCP/IP для
обмена данными и подчиняются всем тем законам, по которым работают
проводные сети. Основное различие между этими двумя сетевыми платформами
находится на более низких уровнях модели OSI. Беспроводные сети
обеспечивают взаимодействие путем отправки данных по воздуху в отличие
от передачи данных по кабелям в проводных сетях. Воздух, по которому
передаются данные в беспроводных сетях, является общей средой, и по этой
причине необходимо учитывать особую специфику на физическом и канальном
уровне, чтобы не возникало конфликтов между данными, и чтобы данные
доставлялись надежно. Эти службы предоставляются другими механизмами в
стандарте 802.11.
Это связано с диагностикой беспроводной сети,
поскольку нужно выполнить дополнительные задачи для перехвата информации
802.11 второго уровня, которая необходима для нормальной диагностики.
Для этого необходимо иметь возможность перевести свою сетевую карту
(WNIC) в специальный режим под названием режим мониторинга (Monitor
Mode). Режим мониторинга является специальным параметром драйвера,
ограничивающим возможность WNIC в отправке данных, в результате чего
карта WNIC лишь пассивно прослушивает выбранный канал.
В
операционных системах на платформе Linux довольно просто изменять режим
работы WNIC в режим мониторинга, но большинство Windows драйверов не
поддерживают такую функциональность. В результате требуются аппаратные
средства для обеспечения этой функции. Такие аппаратные средства
называются AirPcap и производятся компанией CACE Technologies.
Устройство AirPcap, по сути, представляет собой карту WNIC,
разработанную для использования в режиме мониторинга в системах Windows,
а также утилиту перехвата пакетов Wireshark.
Используя это устройство, можно перехватывать 802.11 информацию второго
уровня в беспроводных каналах, на которых вы случаете данные.
Рисунок 1: Окно настройки AirPcap позволяет вам настраивать канал для перехвата данных
Структура 802.11 пакета
Основным
различием между пакетами в беспроводных и проводных сетях является
добавление 802.11 заголовка. Здесь есть заголовок второго уровня,
содержащий дополнительную информацию о пакете и среде, в которой он
передается. Есть три типа 802.11 пакетов; данные, управление и контроль.
- Управление (Management) -
эти пакеты используются для создания подключения между узлами на втором
уровне. Некоторые важные подтипы пакетов включают пакеты проверки
подлинности, ассоциации и маяков.
- Контроль (Control) -
пакеты контроля обеспечивают доставку пакетов управления и данных, и
связаны с управлением перегрузкой. Общие подтипы включают
Request-to-Send и Clear-to-Send пакеты.
- Данные (Data) -
эти пакеты содержат собственно данные и представляют собой единственный
тип пакетов, которые можно пересылать из беспроводной сети в проводную.
В
данной статье мы не будем обсуждать каждый подтип 802.11 пакетов, а
сконцентрируемся на нескольких аспектах, интересных для нас с точки
зрения безопасности.
Поиск несанкционированных точек доступа
Физической
безопасности активов ИТ чаще всего уделяется недостаточно внимания.
Одним из наиболее распространенных недочетов в этой области является
добавление неавторизированных устройств в сеть. В мире проводных сетей
неавторизированный роутер может вызвать проблему отказа нормальной
работы при его подключении в штатной конфигурации. Хотя это и имеет
серьезные последствия, несанкционированные беспроводные точки доступа
(WAP) представляют еще больше проблем, поскольку они могут предоставлять
доступ к сети людям, находящимся за пределами помещения.
К
счастью, обнаружение несанкционированных точек доступа не представляет
особых сложностей. Чтобы выполнить эту процедуру, необходимо сначала
выполнить перехват пакетов беспроводного трафика в нескольких областях
своей сети. После этого есть ряд различных фильтров, которые можно
использовать для определения наличия несанкционированных точек доступа и
обнаружения того, связываются ли с ними клиенты.
Проще всего это
выполнить, зная MAC адрес известной законной точки доступа WAP.
Используя эту информацию, можно воспользоваться фильтром !wlan.bssid == 00:11:88:6b:68:30,
заменив приведенный здесь примерный физический адрес точки доступа WAP
физическим адресом своей законной точки доступа. Это позволит вам
отобразить весь беспроводной трафик входящий и исходящий со всех точек
доступа, за исключением той WAP, которую вы указали в параметрах
фильтра. Если у вас есть более одной точки доступа WAP в этой области,
вы можете использовать этот фильтр с оператором ИЛИ - OR (||). В этом случае можно использовать команду типа !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 (&&).
Наконец, вы можете пойти на еще
один шаг дальше для определения того, происходит ли обмен
действительными данными между мобильным клиентом и несанкционированной
точкой беспроводного доступа. Для этого используется фильтрация пакетов
данных, передаваемых в несанкционированной точке доступа. Здесь
используется фильтр wlan.fc.type eq 2 в сочетании с фильтрами, показанными ранее, для исключения авторизированных точек доступа.
Фильтрация незашифрованного трафика
Единственной
реальной надеждой, которая у вас имеется для защиты пакетов от
перехватчиков информации, наводнивших эфир, является использование
определенного типа шифрования. Обычно это достигается путем применения
WPA или WPA2 в современных системах. Учитывая это, полезной методикой
безопасности будет регулярный аудит беспроводных сетей и проверка того,
что нет клиентов беспроводных сетей, передающих данные по
незашифрованному каналу. Это может случаться чаще, чем вы думаете,
поскольку точки доступа WAP могут быть неправильно настроены, может
наличествовать несанкционированная точка доступа WAP, или беспроводной
клиент может передавать информацию в специально созданном режиме.
Поиск
незашифрованных данных в беспроводной сети также осуществляется с
помощью фильтра. В этом случае мы можем найти все пакеты с
незашифрованными данными, используя wlan.fc.protected == 0
фильтр. Итак, если вы воспользуетесь этим фильтром прямо сейчас, вы
обнаружите, что он возвращает неожиданные результаты. Фреймы контроля и
управления по протоколу 802.11 не зашифрованы, поскольку они выполняют
исключительно административные функции для точек доступа WAP и
беспроводных клиентов. По этой причине нам нужно расширить этот фильтр,
добавив wlan.fc.type eq 2. Это заставит фильтр отображать только незашифрованные пакеты данных. Полностью этот фильтр выглядит следующим образом wlan.fc.protected == 0 && wlan.fc.type eq 2.
Анализ WEP и WPA проверки подлинности
Изначально
предпочитаемым способом защиты данных в беспроводных сетях была
технология Wired Equivalent Privacy (WEP). WEP была довольно успешной на
протяжении долгих лет, пока в управлении ключом шифрования не был
обнаружен ряд слабых мест. В результате этого был создан новый стандарт,
включающий стандарты Wi-Fi Protected Access (WPA) и WPA2. Хотя WPA и
его более надежная версия WPA2 имеют ошибки, они считаются более
надежными, чем WEP.
Очень полезно уметь различать WEP и WPA
аутентификацию в проводной сети. Если вы способны делать это, вы сможете
обнаружить WEP аутентификацию в сети, вместо которой должна
использоваться только WPA. Помимо этого, вы должны уметь анализировать
неудачные попытки проверки подлинности, когда таковые имеются.
WEP аутентификация
WEP
аутентификация работает с использованием механизма задача/ответ
(challenge/response). Когда клиент пытается подключиться к WAP, точка
WAP выдает текст задачи (challenge text). Эта задача принимается и затем
клиент берет текст, расшифровывает его с помощью WEP ключа,
предоставленного клиентом, и возвращает получившуюся строку обратно на
точку доступа WAP.
Когда точка доступа убеждается в том, что текст
ответа такой, как должен быть, она передает сообщение обратно клиенту о
том, что процесс проверки подлинности прошел успешно. Фильтр для
отображения успешных ответов аутентификации будет следующим wlan_mgt.fixed.status_code == 0x0000.
Рисунок 2: WAP оповещает клиента о том, что процесс проверки подлинности прошел успешно
В
случае, если процесс проверки подлинности был неуспешным, точка доступа
WAP передает сообщение, говорящее о том, что она 'Получила фрейм
аутентификации с номером последовательности транзакции аутентификации из
ожидаемой последовательности (Received an authentication frame with
authentication sequence transaction sequence number out of expected
sequence)'.
Рисунок 3: WAP оповещает клиента о том, что аутентификация была не успешной
Фильтром для поиска пакета с таким уведомлением будет wlan_mgt.fixed.status_code == 0x000e.
WPA аутентификация
WPA
аутентификация также использует алгоритм задачи/ответа, но действует
абсолютно по-другому. На уровне пакетов WPA аутентификация использует
EAPOL для выполнения операции задача/ответ. Вы можете найти эти пакеты с
помощью простого фильтра EAPOL. При успешной
аутентификации вы обычно увидите четыре EAPOL пакета, представляющих
задачи и ответы, и состоящих из четырех пакетов. Каждая задача и ответ
могут быть составлены в пары с помощью значения Replay Counter в пакете.
Увеличить
Рисунок 4: Поле Replay Counter используется для создания пар задач и ответов
В
ситуации, когда WPA проверка подлинности не успешная, вы найдете больше
EAPOL пакетов, где операции задача/ответ выполнялись большее количество
раз. Когда эта операция, в конце концов, не проходит, вы увидите пакет
отмены проверки подлинности.
Рисунок 5: После безуспешного обмена приветствиями WPA для клиента отменяется проверка подлинности
Есть
два способа фильтрации неудачных проверок подлинности WPA. Первым
способом будет использование EAPOL фильтра и подсчет пакетов,
передававшихся между WAP и клиентом беспроводной сети. Еще одним
способом является фильтрация с целью отображения пакетов отмены
аутентификации (deauthentication packets) с помощью фильтра wlan.fc.type_subtype == 0x0c.
Это вернет достаточно большое количество информации, связанной с
неудачной аутентификацией, поэтому для проверки того, что пакеты связаны
с ней, вам придется копнуть немного глубже и создать еще один фильтр,
охватывающий все пакеты между точкой доступа WAP и беспроводным
клиентом.
Заключение
В этой статье мы обсудили основную
специфику перехвата пакетов в беспроводной сети и рассмотрели различные
приложения анализа пактов в рамках безопасности беспроводных сетей.
Беспроводные сети, их безопасность и анализ представляют собой очень
обширные вопросы. По этой причине данную статью можно сравнить с питьем
воды из пожарного гидранта, а не из крана, но я надеюсь, что она
послужит отправной точкой для дальнейших исследований в этой области.
Если вам интересно узнать об анализе пакетов в свете безопасности
беспроводных сетей, я советую вам загрузить Wireshark или другие утилиты
перехвата пакетов, и самостоятельно приступить к анализу пакетов.