Публикации на тему законодательства и "бумажной" безопасности у меня получаются не очень хорошо, поэтому попробую себя в другом жанре - поговорим о безопасности практической. Темой сегодняшнего поста будет опасность пользования чужими Wi-Fi сетями.
Я думаю, многие специалисты уже знакомы с этой темой, но и они, возможно, найдут в этой статье что-нибудь новое для себя.
Начнем разговор с открытых Wi-Fi сетей, так любимых многими за отсутствие паролей, доступность во многих публичных местах и, обычно, неплохую скорость интернета (если сравнивать с доступом по мобильным сетям). Но открытые сети таят в себе очень большую опасность - весь трафик буквально "витает в воздухе", никакого шифрования и защиты от перехвата. Любой пользователь без специальных знаний, с помощью готовых программ может перехватить и проанализировать весь ваш трафик.
Давайте посмотрим, как это происходит - для демонстрации я перевел свою домашнюю точку доступа в режим открытой сети:
Затем, я подключился к этой сети с ноутбука и с Android-планшета, на планшет я установил приложение
Intercepter-NG, оно доступно также под Windows. Приложение требует права супер-пользователя, после запуска стартовое окно приглашает провести сканирование доступных в зоне видимости компьютеров:
Отметив свой ноутбук (IP 192.168.0.101) - перехожу на следующий экран и запускаю перехват пакетов. После этого на ноутбуке открываю Яндекс:
Сниффер уверенно отловил открытие страниц, а если перейти на вкладку с изображением печенья, то можно просмотреть и список всех моих Cookie-файлов, которые мой браузер на ноутбуке передавал и получал при просмотре сайтов. При этом нажав на любую из строчек Intercepter-NG открывает браузер и подставляет перехваченные Cookie, таким образом даже не отловив момент авторизации жертвы на интересующем сайте, можно войти в его открытую сессию. Данный тип атаки носит называние "session hijacking" - "похищение" сессии.
Итак, я продемонстрировал на практике, что защита в открытой Wi-Fi сети отсутствует в принципе. Но в заголовке этого поста написано "чужих" Wi-Fi сетей, а не "открытых". Перейдем к другому аспекту беспроводной безопасности - перехвату трафика внутри закрытой сети.
Я перенастроил роутер, включив WPA2 с pre-shared ключем (такой тип защиты Wi-Fi сетей используется в 80% точек доступа):
Снова подключаюсь к сети с ноутбука и планшета и вновь запускаю Intercepter-NG - при сканировании он вновь видит ноутбук - выбираю его и запускаю перехват трафика, параллельно с ноутбука захожу на несколько сайтов с HTTP-Basic авторизацией, и вот что вижу на планшете:
Трафик успешно перехвачен - "злоумышленник" теперь знает мой пароль к веб-интерфейсу роутера и еще одному сайту. Кроме того, session hijacking так же работает - ведь перехватывается весь трафик.
В случае использования WEP и WPA всё очень просто, для шифрования разных устройств в одной сети используются одинаковые ключи. Так как "злоумышленник" тоже знает этот ключ и сидит в этой же сети, он всё так же перехватывает весь трафик и расшифровывает его знакомым ключом.
Я же использовал WPA2, в которой эта проблема была решена и клиенты используют разные ключи шифрования, однако в нем присутствует серьезная уязвимость и, зная ключ авторизации и перехватив определенный набор пакетов можно раскрыть так называемый Pairwise Transient Key - ключ, которым шифруется трафик для интересующего нас клиента.
Как показала практика, частично решить проблему можно включением опции AP Isolation, которую поддерживают большинство современных Wi-Fi-роутеров:
Однако это не панацея, пропадает возможность перехвата с помощью Intercepter-NG под Android, но более функциональные утилиты, например,
Airodump-ng продолжают работать. Подробнее различие в работе этих утилит и причины неработоспособности Intercepter-NG я не изучал, отложив эту тему на потом.
Кроме этого, узнать включена ли изоляция в той сети, куда вы подключаетесь (например, в кафе или на мероприятии) без практической проверки нельзя.
В опасности использования чужих Wi-Fi сетей мы разобрались, остается вопрос защиты. Способов достаточно много, основная идея - дополнительное шифрование всего трафика, а уж методов реализации достаточно - строгое использование SSL везде, где это возможно (HTTPS, SSH, SFTP, SSL-POP, IMAP4-SSL и т.д.), подключение через VPN, использование распределенной сети шифрования типа TOR и так далее. Эта тема достаточно обширна и ей стоит посвятить отдельную запись.