=ТЕХНОЛОГИИ=
Wi-Fi: Как ломаются
беспроводные сети
|
По материалам www.ferra.ru
© Василий Леонов, leonov@zmail.ru
Перед
любыми системными администраторами часто встаёт вопрос об организации Wi-Fi
сети в офисе или даже у себя дома. Но не все знают, насколько легко
проникнуть в их сеть и пользоваться её ресурсами. Какими методами пользуются
хакеры и как защитить себя от взлома – вот вопросы, на которые мы отвечаем в
сегодняшнем материале.
|
|
За последние несколько лет
беспроводные сети (WLAN) получили широкое распространение во всём мире. И если
ранее речь шла преимущественно об использовании беспроводных сетей в офисах и
хот-спотах, то теперь они широко используются и в домашних условиях, и для
развертывания мобильных офисов (в условиях командировок). Специально для
домашних пользователей и небольших офисов продаются точки беспроводного доступа
и беспроводные маршрутизаторы класса SOHO, а для мобильных пользователей –
карманные беспроводные маршрутизаторы. Однако, принимая решение о переходе к
беспроводной сети, не стоит забывать, что на сегодняшнем этапе их развития они
имеют одно уязвимое место. Речь идёт о безопасности беспроводных сетей.
«Да сколько можно об одном и том же!
Надоело, уже. Хватит нас пугать всякими страшилками», – возмутятся многие
пользователи. Да, действительно, проблеме безопасности беспроводных сетей
уделяется немалое внимание и в Интернете, и в технической прессе. Да и сами
протоколы беспроводной связи изначально наделены средствами обеспечения
безопасности. Но так ли они надёжны, и можно ли на них полагаться?
В этой статье мы расскажем о том, как
за несколько минут можно взломать «защищённую» беспроводную сеть и стать её
несанкционированным, но полноправным пользователем. Однако нам не хотелось бы,
чтобы данная статья рассматривалась как пособие для начинающих хакеров. Скорее,
наоборот – по результатам данной статьи можно будет сделать некоторые выводы о том,
как повысить безопасность беспроводной сети и осложнить задачу злоумышленника.
Ведь кто не умеет взламывать сети, тот и не знает, как их защищать. А потому и
начнём мы именно с того, что научимся взламывать. Итак, поехали…
Кратко о средствах
безопасности беспроводных сетей
Любая беспроводная сеть состоит как
минимум из двух базовых компонентов – точки беспроводного доступа и клиента
беспроводной сети (режим ad-hoc, при котором клиенты беспроводной сети общаются
друг с другом напрямую без участия точки доступа, мы рассматривать не будем).
Стандартами беспроводных сетей 802.11a/b/g предусматривается несколько
механизмов обеспечения безопасности, к которым относятся различные механизмы
аутентификации пользователей и реализация шифрования при передаче данных.
Протокол WEP
Все современные беспроводные
устройства (точки доступа, беспроводные адаптеры и маршрутизаторы) поддерживают
протокол безопасности WEP (Wired Equivalent Privacy), который был изначально
заложен в спецификацию беспроводных сетей IEEE 802.11. Данный протокол является
своего рода аналогом проводной безопасности (во всяком случае, расшифровывается
он именно так), однако реально никакого эквивалентного проводным сетям уровня
безопасности он, конечно же, не предоставляет.
Протокол WEP позволяет шифровать
поток передаваемых данных на основе алгоритма RC 4 с ключом размером 64 или 128
бит.
Данные ключи имеют так называемую
статическую составляющую длиной от 40 до 104 бит и дополнительную динамическую
составляющую размером 24 бита, называемую вектором инициализации
(Initialization Vector, IV).
На простейшем уровне процедура
WEP-шифрования выглядит следующим образом: первоначально передаваемые в пакете
данные проверяются на целостность (алгоритм CRC-32), после чего контрольная
сумма (integrity check value, ICV) добавляется в служебное поле заголовка
пакета. Далее генерируется 24-битный вектор инициализации, (IV) и к нему
добавляется статический (40-или 104-битный) секретный ключ. Полученный таким
образом 64-или 128-битный ключ и является исходным ключом для генерации
псевдослучайного числа, использующегося для шифрования данных. Далее данные
смешиваются (шифруются) с помощью логической операции XOR с псевдослучайной
ключевой последовательностью, а вектор инициализации добавляется в служебное
поле кадра. Вот, собственно, и всё.
Протокол безопасности WEP
предусматривает два способа аутентификации пользователей: Open System
(открытая) и Shared Key (общая). При использовании открытой аутентификации
никакой аутентификации, собственно, и не существует, то есть любой пользователь
может получить доступ в беспроводную сеть. Однако даже при использовании
открытой системы допускается использование WEP-шифрования данных.
Протокол WPA
Как будет показано чуть позже,
протокол WEP имеет ряд серьёзных недостатков и не является для взломщиков
труднопреодолимым препятствием. Поэтому в 2003 году был представлен следующий
стандарт безопасности – WPA (Wi-Fi Protected Access). Главной особенностью
этого стандарта является технология динамической генерации ключей шифрования
данных, построенная на базе протокола TKIP (Temporal Key Integrity Protocol),
представляющего собой дальнейшее развитие алгоритма шифрования RC 4. По
протоколу TKIP сетевые устройства работают с 48-битовым вектором инициализации
(в отличие от 24-битового вектора WEP) и реализуют правила изменения
последовательности его битов, что исключает повторное использование ключей. В
протоколе TKIP предусмотрена генерация нового 128-битного ключа для каждого
передаваемого пакета. Кроме того, контрольные криптографические суммы в WPA
рассчитываются по новому методу под названием MIC (Message Integrity Code). В
каждый кадр здесь помещается специальный восьмибайтный код целостности
сообщения, проверка которого позволяет отражать атаки с применением подложных
пакетов. В итоге получается, что каждый передаваемый по сети пакет данных имеет
собственный уникальный ключ, а каждое устройство беспроводной сети наделяется
динамически изменяемым ключом.
Кроме того, протокол WPA поддерживает
шифрование по стандарту AES (Advanced Encryption Standard), то есть по
усовершенствованному стандарту шифрования, который отличается более стойким
криптоалгоритмом, чем это реализовано в протоколах WEP и TKIP.
При развёртывании беспроводных сетей
в домашних условиях или небольших офисах обычно используется вариант протокола
безопасности WPA на основе общих ключей – WPA-PSK (Pre Shared Key). В
дальнейшем мы будем рассматривать только вариант WPA-PSK, не касаясь вариантов
протокола WPA, ориентированных на корпоративные сети, где авторизация пользователей
проводится на отдельном RADIUS-сервере.
При использовании WPA-PSK в
настройках точки доступа и профилях беспроводного соединения клиентов
указывается пароль длиной от 8 до 63 символов.
Фильтрация MAC-адресов
Фильтрация MAC-адресов, которая
поддерживается всеми современными точками доступа и беспроводными
маршрутизаторами, хотя и не является составной частью стандарта 802.11, тем нее
менее, как считается, позволяет повысить уровень безопасности беспроводной
сети. Для реализации данной функции в настройках точки доступа создаётся
таблица MAC-адресов беспроводных адаптеров клиентов, авторизованных для работы
в данной сети.
Режим скрытого
идентификатора сети SSID
Ещё одна мера предосторожности,
которую часто используют в беспроводных сетях – это режим скрытого
идентификатора сети. Каждой беспроводной сети назначается свой уникальный
идентификатор (SSID), который представляет собой название сети. Когда
пользователь пытается войти в сеть, то драйвер беспроводного адаптера прежде
всего сканирует эфир на наличие в ней беспроводных сетей. При использовании
режима скрытого идентификатора (как правило, этот режим называется Hide SSID)
сеть не отображается в списке доступных, и подключиться к ней можно только в
том случае, если, во-первых, точно известен её SSID, и, во-вторых, заранее
создан профиль подключения к этой сети.
Взлом беспроводной сети с
протоколом WEP
Чтобы у читателя не сложилось
впечатления, что перечисленных средств защиты вполне достаточно, дабы не
опасаться непрошенных гостей, поспешим его разочаровать. И начнём мы с
инструкции по взлому беспроводных сетей стандарта 802.11 b / g на базе
протокола безопасности WEP.
Собственно, утилит, специально
разработанных для взлома таких сетей и доступных в Интернете, предостаточно.
Правда, есть одно «но». Почти все они «заточены» под Linux-системы. Собственно,
с точки зрения продвинутого пользователя – это не только не помеха, но и
наоборот. А вот обычными пользователями операционная система Linux используется
редко, поэтому мы решили ограничиться рассмотрением утилит, поддерживаемых
системой Windows XP.
Итак, для взлома сети нам, кроме
ноутбука с беспроводным адаптером, потребуется утилита aircrack 2.4, которую
можно найти в свободном доступе в Интернете.
Данная утилита поставляется сразу в
двух вариантах: под Linux и под Windows, поэтому нас будут интересовать только
те файлы, которые размещены в директории aircrack-2.4\win 32.
В этой директории имеется три
небольших утилиты (исполняемых файлов): airodump.exe, aircrack.exe и
airdecap.exe.
Первая утилита предназначена для
перехвата сетевых пакетов, вторая – для их анализа и получения пароля доступа и
третья – для расшифровки перехваченных сетевых файлов.
Конечно же, не всё так просто, как
может показаться. Дело в том, что все подобные программы «заточены» под
конкретные модели чипов, на базе которых построены сетевые адаптеры. То есть не
факт, что выбранный произвольно беспроводной адаптер окажется совместим с
программой aircrack-2.4. Более того, даже при использовании совместимого
адаптера (список совместимых адаптеров, а точнее – чипов беспроводных
адаптеров, можно найти в документации к программе) придётся повозиться с
драйверами, заменив стандартный драйвер от производителя сетевого адаптера на
специализированный драйвер под конкретный чип. К примеру, в ходе тестирования
мы выяснили, что стандартный беспроводной адаптер Intel PRO Wireless 2200 BG,
который является составной частью многих ноутбуков на базе технологии Intel
Centrino, просто не совместим с данной программой при использовании ОС Windows
XP (правда, он поддерживается при использовании Linux-версии программы). В
итоге мы остановили свой выбор на беспроводном PCMCIA-адаптере Gigabyte GN-WMAG
на базе чипа Atheros. При этом сам беспроводной адаптер устанавливался как
Atheros Wireless Network Adapter с драйвером 3.0.1.12.
Сама процедура взлома беспроводной
сети достаточно проста. Начинаем с запуска утилиты airodump.exe, которая
представляет собой сетевой сниффер для перехвата пакетов. При запуске программы
(рис. 1) откроется диалоговое окно, в котором потребуется указать
беспроводной сетевой адаптер (Network interface index number), тип чипа
сетевого адаптера (Network interface type (o/a)), номер канала беспроводной
связи (Channel (s): 1 to 14, 0= all) (если номер канал неизвестен, то можно
сканировать все каналы). Также задаётся имя выходного файла, в котором хранятся
перехваченные пакеты (Output filename prefix) и указывается, требуется ли
захватывать все пакеты целиком (cap-файлы) или же только часть пактов с
векторами инициализации (ivs-файлы) (Only write WEP IVs (y/n)). При
использовании WEP-шифрования для подбора секретного ключа вполне достаточно
сформировать только ivs-файл. По умолчанию ivs-или с ap-файлы создаются в той
же директории, что и сама программа airodump.
После настройки всех опций утилиты
airodump откроется информационное окно, в котором отображается информация об
обнаруженных точках беспроводного доступа, информация о клиентах сети и
статистика перехваченных пакетов (рис. 2).
Увеличить
|
Рис. 2. Информационное окно утилиты airodump
|
Если точек доступа несколько,
статистика будет выдаваться по каждой из них.
Первым делом, запишите MAC-адрес
точки доступа, SSID беспроводной сети и MAC-адрес одного из подключённых к ней
клиентов (если их несколько). Ну а дальше нужно подождать, пока не будет
перехвачено достаточное количество пакетов.
Количество пакетов, которые нужно
перехватить для успешного взлома сети, зависит от длины WEP-ключа (64 или 128
бит) ну и, конечно же, от удачи. Если в сети используется 64-битный WEP-ключ,
то для успешного взлома вполне достаточно захватить пол миллиона пакетов, а во
многих случаях – даже меньше. Время, которое для этого потребуется, зависит от
интенсивности трафика между клиентом и точкой доступа, но, как правило,
составляет не более нескольких минут. В случае же использования 128-битного
ключа для гарантированного взлома потребуется перехватить порядка двух
миллионов пакетов. Для останова процесса захвата пакетов (работы утилиты)
используется комбинация клавиш Ctrl+C.
После того, как выходной ivs-файл
сформирован, можно приступать к его анализу. В принципе, это можно делать и
параллельно вместе с перехватами пакетов, но для простоты мы рассмотрим
последовательное выполнение процедур перехвата и анализа.
Для анализа сформированного ivs-файла
потребуется утилита aircrack.exe, которая запускается из командной строки. В
нашем случае (рис. 3) мы использовали следующие параметры запуска:
aircrack.exe –b 00:13:46:1C:A4:5F –n
64 –i 1 out.ivs.
Увеличить
|
Рис.3. Запуск программы aircrack.exe из командной строки
|
В данном случае «-b
00:13:46:1C:A4:5F» – это указание MAC-адреса точки доступа, «-n 64» –
указание длины используемого ключа шифрования, «-i 1» – индекс ключа, а
«out.ivs» – это файл, который подвергается анализу.
Полный перечень параметров запуска
утилиты можно посмотреть, набрав в командной строке команду aircrack.exe без
параметров.
В принципе, поскольку такая
информация, как индекс ключа и длина ключа шифрования, как правило, заранее
неизвестна, обычно используется следующий упрощённый вариант запуска команды:
aircrack.exe out.ivs.
Результат анализа ivs-файла показан
на рис. 4. Вряд ли строка KEY FOUND! Нуждается в комментариях. И
обратите внимание, что секретный ключ был вычислен всего за 3 секунды.
Увеличить
|
Рис. 4. Результат анализа ivs-файла
|
Мы проводили множество экспериментов
с использованием и 128-битного ключа, и с различными параметрами запуска
команды aircrack.exe, но во всех случаях время, за которое вычислялся секретный
ключ, не превосходило 7 секунд.
Вот так просто и быстро проводится
вскрытие беспроводных сетей с WEP-шифрованием, и говорить о «безопасности»
сетей в данной случае вообще неуместно. Ну, действительно, можно ли говорить о
том, чего на самом деле нет!
Ах да, чуть не забыли. В самом начале
мы упомянули, что во всех точках доступа имеются ещё такие возможности, как
использование режима скрытого идентификатора сети и фильтрации по MAC-адресам,
которые призваны повысить безопасность беспроводной сети. Но не будьте
оптимистами – это не спасает.
На самом деле, не таким уж и
невидимым является идентификатор сети даже при активации этого режима на точке
доступа. К примеру, уже упомянутая нами утилита airodump всё равно покажет вам
SSID сети, который впоследствии можно использовать для создания профиля
подключения к сети (причём несанкционированного подключения).
Ну а если говорить о такой наивной
мере безопасности, как фильтрация по MAC-адресам, то здесь вообще всё очень
просто. Существует достаточно много разнообразных утилит и под Linux, и под
Windows, которые позволяют подменять MAC-адрес сетевого интерфейса. К примеру,
для несанкционированного доступа в сеть мы подменяли MAC-адрес беспроводного
адаптера с помощью утилиты SMAC 1.2 (рис. 5). Естественно, что в качестве
нового MAC-адреса используется MAC-адрес авторизованного в сети клиента,
который определяется всё той же утилитой airodump.
Увеличить
|
Рис. 5. Подмена MAC-адреса беспроводного адаптера
|
Итак, преодолеть всю систему
безопасности беспроводной сети на базе WEP-шифрования не представляет никакого
труда. Возможно, многие скажут, что это малоактуально, поскольку WEP-протокол
давно умер и его просто не используют. Ведь на смену ему пришёл более стойкий
протокол WPA. Однако не будем торопиться с выводами. Отчасти это действительно
так, но только отчасти. Дело в том, что в некоторых случаях для увеличения
радиуса действия беспроводной сети разворачиваются так называемые
распределённые беспроводные сети (WDS) на базе нескольких точек доступа. Но
самое интересное заключается в том, что эти самые распределённые сети не
поддерживают WPA-протокола, и единственной допустимой мерой безопасности в
данном случае является применение WEP-шифрования. Ну а взламываются эти
WDS-сети абсолютно так же, как и сети на базе одной точки доступа.
Теперь посмотрим, как обстоят дела с
сетями на базе WPA-шифрования.
Взлом беспроводной сети с
протоколом WPA
Собственно, сама процедура взлома
сетей с протоколом WPA мало чем отличается от уже рассмотренной процедуры
взлома сетей с WEP-протоколом.
На первом этапе используется всё тот
же сниффер airodump. Однако есть два важных аспекта, которые необходимо
учитывать. Во-первых, в качестве выходного файла необходимо использовать именно
cap-файл, а не ivs-файл. Для этого в настройке утилиты airodump на последней
вопрос «Only write WEP IVs (y/n)» отвечаем «нет».
Во-вторых, в cap-файл необходимо
захватить саму процедуру инициализации клиента в сети, то есть придётся
посидеть в «засаде» с запущенной программой airodump. Если используется
Linux-система, то можно провести атаку, которая заставит произвести процедуру
переинициализации клиентов сети, а вот под Windows такая программка не
предусмотрена.
После того, как в cap-файл захвачена
процедура инициализации клиента сети, можно остановить программу airodump и
приступить к процессу расшифровки. Накапливать перехваченные пакеты в данном
случае нет необходимости, поскольку для вычисления секретного ключа
используется только пакеты, передаваемые между точкой доступа и клиентом в ходе
инициализации.
Для анализа полученной информации
используется все та же утилита aircrack, но с несколько иными параметрами
запуска. Кроме того, в директорию с программой aircrack придётся установить ещё
один важный элемент – словарь. Такие специализированные словари можно найти в
Интернете, например, по ссылке http://ftp.se.kde.org/pub/security/tools/net/Openwall/wordlists/.
После этого запускаем из командной
строки программу aircrack (рис 6), указывая в качестве выходного файла
cap-файл (например, out. cap) и название словаря (параметр – w all, где all –
название словаря).
Увеличить
|
Рис. 6. Пример запуска программы aircrack.exe из командной строки
|
Программа перебора ключей из словаря
даёт очень интенсивную нагрузку на процессор, так что если для этого
используется маломощный ПК, то на эту процедуру потребуется много времени. Если
же для этого используется мощный многопроцессорный сервер или ПК на базе
двухъядерного процессора, то в качестве опции можно указать количество
используемых процессоров. К примеру, в нашем случае использовался новейший
двухядерный процессор Intel Pentium Extreme Edition Processor 955 с поддержкой
технологии Hyper-Threading (четыре логических ядра процессора), поэтому в
параметрах запуска программы мы использовали опцию «–p 4», что позволило
утилизировать все четыре логических ядра процессора, причём каждое ядро
утилизируется на 100%. В результате после почти полутора часов работы программы
секретный ключ был найден! (рис. 7.)
Увеличить
|
Рис. 7. Результат анализа cap-файла
|
Это, конечно, не несколько секунд,
как в случае с WEP-шифрованием, но тоже неплохой результат, который прекрасно
демонстрирует, что и WPA-PSK защита не является абсолютно надёжной. Причём результат
взлома секретного ключа никак не связан с тем, какой алгоритм шифрования (TKIP
или AES) используется в сети.
Выводы и рекомендации
Рассмотренные нами примеры взлома
беспроводных сетей довольно наглядно демонстрируют их уязвимость. Если говорить
о WEP-протоколе, то его можно сравнить с защитой «от дурака». Это примерно то
же самое, что и сигнализация на машине – разве только что от хулиганов спасает.
Поэтому по возможности лучше не использовать этот протокол вообще. Если
говорить о таких мерах предосторожности, как фильтрация по MAC-адресам и режим
скрытого идентификатора сети, то это вообще «детский лепет», и рассматривать их
как защиту нельзя. Однако даже такими средствами не стоит пренебрегать, но
только в комплексе с другими мерами.
Протокол WPA хотя и куда более сложен
для взлома, но также уязвим. Впрочем, не стоит падать духом – не всё так
безнадёжно. Дело в том, что успех взлома секретного WPA-ключа зависит от того,
имеется он в словаре или нет. Стандартный словарь, который мы использовали, имеет
размер чуть более 40 Мбайт, что, в общем-то, не так уж и много. В результате
после трёх попыток, мы сумели подобрать ключ, которого не оказалось в словаре,
и взлом ключа оказался невозможным. Для полного перебора всех ключей
потребовалось два с половиной часа. Количество слов в этом словаре –
всего-навсего 6 475 760, что, конечно же, очень мало. Конечно, можно
использовать словари и большей ёмкости. К примеру, в Интернете можно заказать
словарь на трёх CD-дисках, то есть размером почти в 2 Гбайта, но и этого
немного. Попутно отметим, что для перебора всех ключей словаря размером 2 Гбайт
при использовании процессора с четырьмя логическими ядрами потребуется уже 5
суток! Но даже такой словарь содержит далеко не все возможные пароли. Ну,
действительно, давайте приблизительно рассчитаем количество паролей длиной от 8
до 63 символов, которые можно сформировать с использованием 26 букв английского
алфавита (с учётом регистров), десяти цифр и 32 букв русского алфавита.
Получим, что каждый символ можно выбрать 126 способами. Соответственно, если
учитывать только пароли длиной 8 символов, то количество возможных комбинаций
составит 12∙68=6,3∙1016. Если учесть, что
размер каждого слова длиной 8 символов составляет 8 байт, то получим, что
размер такого словаря – 4,5 миллиона терабайт. А ведь это только комбинации из
восьми символов. А если перебрать все возможные комбинации от 8 до 63 символов!
В общем-то не надо быть математиком, чтобы подсчитать, что размер такого
словаря составит примерно 1,2∙10119 терабайт. Конечно же,
такого дискового пространства просто не существует (даже если сложить ёмкости
всех жёстких дисков на всей планете). Но даже если гипотетически предположить,
что такой словарь создан, то для перебора всех ключей на нашем ПК потребовалось
бы ни много ни мало 1,8∙10120 лет. Собственно, такая задача не
по зубам ни одному самому мощному суперкомпьютеру.
Так что не стоит отчаиваться. Шансов,
что используемый вами пароль не содержится в словаре, великое множество. Просто
при выборе пароля не стоит использовать слова, имеющие смысл. Лучше всего,
чтобы это был абсолютно беспорядочный набор символов (что-то типа
«FGпроукqweRT4j563апп»).
Впрочем, мы рассмотрели лишь один из
возможных примеров взлома ключа со словарём. Но бывают и другие типы атак, так
что преждевременно расслабляться не стоит.
Конечно, для создания надёжной
системы безопасности беспроводных сетей разработано немало методов. К примеру,
самым надёжным способом считается использование виртуальных частных сетей VPN
(Virtual Private Network). Создание беспроводной виртуальной частной сети
предполагает установку шлюза непосредственно перед точкой доступа и установку
VPN-клиентов на рабочих станциях пользователей сети. Путём администрирования
виртуальной частной сети осуществляется настройка виртуального закрытого
соединения (VPN-туннеля) между шлюзом и каждым VPN-клиентом сети. Впрочем,
VPN-сети редко используются в небольших офисных сетях и практически не
используются в домашних условиях. Как и протокол 802.1 x, VPN-сети –
прерогатива корпоративных сетей.