Sunday, April 13, 2008

Ядерный подход к безопасности Wi-Fi сетей


Введение.
В настоящее время тема безопасности в Wi-Fi сетях чрезвычайно популярна. В сети существует огромное количество статей посвященных тому как легко ломается WEP и тому как быть с WPA. Но практически нет статей посвященных тому как же все таки защитится от этого. Мы в этой статье постараемся поделится нашими исследованиями в этой области.
Замечание: тех кто не видит ничего страшного в том что ваш сосед скачает за ваш счет пару клипов, просим вспомнить о таких вещах как снифинг, рассылка спама от вашего имени, компрометация точки доступа, создание фиктивных DNS серверов и прочих веселостях.
Страшный сон вардрайвера

Представьте себе что вы начитались всех этих статей о безопасности. И вот вы выходите в поле вооруженные Kismet'ом, Aircrack'ом, Ettercap'ом и прочими могучими вещами. Вы находите свою жертву, сеть вашего соседа Васи Пупкина. Все идет по сценарию, вы получаете ключ и подключаетесь к сети. Пинг есть! Все отлично и замечательно... Только вот работать с этой сетью вы не можете, вообще никак... вы не можете выйти в интернет, хотя traceroute показывает весь путь. Вы не можете залезть на шару к Васе Пупкину хотя пинг есть, вы не можете перехватить ни одного пароля.
Вот и любой нормальный человек на вашем месте подумает "Что за фигня?.."
Что это была за фигня.
Реализовать весь этот кошмар не только возможно но и достаточно просто. Необходимо на все машины в сети поставить фильтр-драйвер aka stelth patch, который будет перехватывать пакеты на сетевом уровне, брать полезную нагрузку aka data этого пакета и преобразовывать ее по заданному вами алгоритму. Почему именно сетевой уровень? Дело в том что на этом уровне контрольная сумма считается только для заголовка, позволяя нам преобразовывать данные на свой вкус. (Конечно контрольная сумма считается через CRC32 который вполне возможно сломать. но мы думаем что это стает темой следующей статьи. Пока нам хватит и этого)
Реализация.
Здесь описывается создание специального модуля ядра для Unix - like ОС.
Почему для линукс? Ну во - первых потому что ядро основано на модульном принципе и с этими модулями довольно просто обращаться; во - вторых это открытые исходные коды которые помогли разобраться с взаимодействием системных сокетов с ядром; в третьих в никсах подобные действия не называются мерзким хаком и не преследуются уголовно.
Модуль ядра представляет собой специальным образом откомпилированную программу. На нее налагаются определенные ограничения подробнее о которых можно найти в сети.
То что у нас получилось можно скачать здесь. Алгоритм кодирования самый простой, но его естественно можно заменить. Для того чтобы настроить и запустить модуль необходимо в /etc/ip_hack.conf прописать имя своего беспроводного устйства и запустить /etc/init.d/ip_hack. Вот и все настройки ;)
В качестве примечания наверно стоит сказать что модуль должен находится как на стороне рабочей станции так и на точке доступа. Практически на всех точках доступа в качастве операционной системы стоит *nix. И естественно так как в каждой системе рано или поздно найдется баг в каждой точке есть возможность смены системы (обычно ето делается перепрошивкой). Зная как перепрошить свою точку доступа и имея на неё прошивку вы можете самостоятельно внедрить в прошивку свой модуль и залить её на девайс.

P.S.
О том как перепрошить точку доступа постараемся рассказать в одной из будущих сатей.

Thursday, April 3, 2008

Про что этот блог

Это блог нашей небольшой дружной команды =) Основной темой наших исследований является безопасность. В частности безопасность линукс лайк систем. Но и остальные темы нам не чужды. Поэтому:
Этот блог посвящен программированию, операционным системам, сетям и вообще жизни вселенной и всему такому ;)
В нем публикуется что-то интересное, полезное или просто показавшееся нам интересным и полезным. За достоверность сведений авторы несут точно такую же ответственность как и ваша соседка посоветовавшая отчистить жевачку бензином.
Если кто-то найдет для себя здесь что-то полезное будем рады, если нет то нет ;)