Каждый год на конференции Chaos Construction на одной из стен выводится огромное количество текстовых данных. Это «стена позора», а данные на ней — перехваченные в открытой Wi-Fi-сети HTTP-сессии. Если кто-то заходил в Twitter или пресловутый ВКонтакте по незащищенному соединению, его данные тут же фиксировались на этой стене. HTTP session hijacking с автоматическим выводом результатов на проектор.

Казалось бы, вот тебе живая демонстрация незащищенности как беспроводной сети, так и онлайн-сервисов. Но нет. Ведь даже аудитория конференции, подготовленные в своей массе пользователи, с завидным упорством продолжали делиться своими сессиями со сниффером. Но если не так, то как еще показать людям, что открытая сеть несет в себе большую опасность, а онлайн-сервисы, наконец, обязать производить авторизацию пользователя через защищенное соединение? Эрик Батлер, программист из СанДиего, решил так: надо упросить процесс угона сессия донельзя, доведя его буквально до одного клика. Может тогда дойдет?

Еще недавно для отлова паролей и HTTPсессий приходилось хоть как-то заморочиться. Мы уже рассказывали о небольшой утилите WifiZoo. Она написана на Python с использованием библиотеки Scapy и позволяет извлечь из эфира беспроводной сети массу полезной информации. В том числе пароли для незащищенных протоколов, почтовый трафик, данные авторизации и HTTP-кукисы. Весь «улов» просматривается через простенький веб-интерфейс.

Сложность в использовании заключается в необходимости загрузиться под Linux, запустить скрипт на Python’е и дополнительно установить сниффер Kismet. Маленький, но все же геморрой. Помимо этого у нас на диске были несколько утилит для винды, специально нацеленные на реализацию угона HTTP-сессий, взять хотя бы Hamster Sidejacking Tool и sessionthief. Но все равно эти утилиты не для всех. Не так-то просто объяснить неподготовленному человеку, что такое cookie и сессия.

Эрику Батлеру же удалось написать убийственно простое решение, которое уж точно поможет сделать проблему понятной для всех. Чтобы не акцентировать внимание на самих перехваченных данных, он решил сразу продемонстрировать, как эти данные могут быть использованы. Непосредственно сниффер и анализатор логов он встроил туда, где данные о сессиях нужны больше всего — прямиком в браузер. Реализованная в виде плагина для Firefox утилита Firesheep (codebutler.com/firesheep) была представлена на security-конференции Toorcon 12.

Задача упрощена настолько, что от пользователя требуется лишь получить доступ к открытой сети и нажать на панели кнопку «Start Capturing». Как только кто-то из сети посетит сайт по незащищенном соединению, Firesheep тут же даст знать, отобразив данные на экране. Проблема может возникнуть с неправильно выбранным сетевым интерфейсом, который задается в настройках плагина.

А боковая панель, где отображаются данные Firesheep, может быть свернута по умолчанию. Но это единственные сложности. Впечатляет та изящность и, не побоюсь этого слова, дерзость, с которой реализована система для вывода данных. Для каждой перехваченной сессии отображается названия и логотип онлайн-сервиса, имя пользователя и даже его аватар. Один клик по нужному элементу — и в новой вкладке браузера будет открыта страница с использованием перехваченных данных жертвы! Вот уж точно, нагляднее не придумать. Сервисы, для которых осуществляется угон сессии, задаются в настройках плагина (вкладка Websites). Для каждого из них здесь написан небольшой JS-скипт, в котором написано, как получить имя пользователя, его аватар и использовать данные перехваченной сессии. Изначально в плагин встроены сценарии для двух десятков популярных западных сервисов, в том числе Twitter, Dropbox, Google, Но если взять за основу эти примеры, за пару минут можно написать скрипт для произвольного сайта. К тому же кнопка в нижней панели позволяет отображать данные перехваченных сессии в чистом виде, без обработки их скриптами.

Но что ответить на изумленный взгляд и резонный вопрос человека: «Как этого избежать?». Ответ может быть только один: постоянно использовать HTTPS-соединение! Такая опция есть, например, в настройках Gmail. К сожалению, не все сервисы это поддерживают. И почти никто не предлагает использовать защищенный протокол по умолчанию. Для Firefox’а есть замечательный плагин ForceTLS, который проверяет поддержку сервером HTTPS, и принудительно заставляет работать именно через защищенное соединение. Есть еще HTTPS Everywhere — это менее универсальный плагин, но он также заставит браузер работать через HTTPS с популярным западными сервисами. Удобнее же всего использовать VPN-соединение или хотя бы систему Tor, которые постоянно будут шифровать твой трафик, передаваемый по открытой сети. К тому же в беспроводных сетях, использующих защиту WPA2, трафик клиентов защищен не только для людей извне, но еще и друг от друга.

Степа Ильин

Главный редактор «Хакера» с 2012 по начало 2014 года. Сейчас с командой единомышленников строит компанию Wallarm, разрабатывающую решения для защиты веб-приложений от хакерских атак и обнаружения в них уязвимостей.

Теги:

Check Also

Номер триста. Колонка главреда

О приближении трехсотого номера коллеги начали мне напоминать примерно два года назад: ког…

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии