Введение
В информатике, угон сеанса, иногда также известный как угон файлов cookie, – это использование действующего компьютерного сеанса, иногда также называемого ключом сеанса, для получения несанкционированного доступа к информации или услугам в компьютерной системе. В частности, этот термин используется для обозначения кражи "волшебного cookie", используемого для аутентификации пользователя на удалённом сервере. Это особенно актуально для веб-разработчиков, поскольку HTTP-cookie, используемые для поддержания сеанса на многих веб-сайтах, могут быть легко украдены злоумышленником, использующим компьютер-посредник или имеющим доступ к сохранённым cookie на компьютере жертвы (см. кража HTTP-cookie). После успешной кражи соответствующих сеансовых cookie злоумышленник может использовать технику "Pass the Cookie" для осуществления угона сеанса. Угон cookie часто используется против клиентской аутентификации в интернете. Современные веб-браузеры используют механизмы защиты cookie для защиты от атак. Популярным методом является использование IP-пакетов с указанием маршрута источника. Это позволяет злоумышленнику в точке B сети участвовать в обмене данными между A и C, заставляя IP-пакеты проходить через его машину. Если маршрутизация источника отключена, злоумышленник может использовать "слепой" угон, угадывая ответы двух машин. Таким образом, злоумышленник может отправить команду, но не сможет увидеть ответ. Однако, распространённой командой является установка пароля, разрешающего доступ из другого места в сети. Злоумышленник также может находиться "внутри" канала связи между A и C, используя программу-сниффер для перехвата данных. Это известно как "атака «человек посередине»".
In computer science, session hijacking, sometimes also known as cookie hijacking, is the exploitation of a valid computer session—sometimes also called a session key—to gain unauthorized access to information or services in a computer system. In particular, it is used to refer to the theft of a magic cookie used to authenticate a user to a remote server. It has particular relevance to web developers, as the HTTP cookies used to maintain a session on many websites can be easily stolen by an attacker using an intermediary computer or with access to the saved cookies on the victim's computer (see HTTP cookie theft). After successfully stealing appropriate session cookies an adversary might use the Pass the Cookie technique to perform session hijacking. Cookie hijacking is commonly used against client authentication on the internet. Modern web browsers use cookie protection mechanisms to protect the web from being attacked. A popular method is using source routed IP packets. This allows an attacker at point B on the network to participate in a conversation between A and C by encouraging the IP packets to pass through B's machine. If source routing is turned off, the attacker can use "blind" hijacking, whereby it guesses the responses of the two machines. Thus, the attacker can send a command, but can never see the response. However, a common command would be to set a password allowing access from elsewhere on the net. An attacker can also be "inline" between A and C using a sniffing program to watch the conversation. This is known as a "man in the middle attack".
История HTTP
В версиях протокола HTTP 0.8 и 0.9 отсутствовали cookie и другие функции, необходимые для перехвата сеанса. Версия 0.9beta Mosaic Netscape, выпущенная 13 октября 1994 года, поддерживала cookie. Ранние версии HTTP 1.0 имели некоторые уязвимости в безопасности, связанные с перехватом сеансов, но их было сложно эксплуатировать из-за особенностей работы большинства ранних серверов и браузеров HTTP 1.0. Поскольку HTTP 1.0 был определён как резервный вариант для HTTP 1.1 с начала 2000-х годов, а серверы HTTP 1.0 фактически являются серверами HTTP 1.1, проблема перехвата сеанса превратилась в практически постоянную угрозу безопасности. Введение суперкуки и других функций в модернизированном HTTP 1.1 позволило проблеме перехвата сеансов стать непрекращающейся проблемой безопасности. Стандартизация конечных автоматов веб-серверов и браузеров способствовала сохранению этой проблемы безопасности.
Методы
Существует четыре основных метода, используемых для совершения хищения сеанса. Это:
Фиксация сеанса, когда злоумышленник устанавливает идентификатор сеанса пользователя на известный ему, например, отправляя пользователю электронное письмо со ссылкой, содержащей определенный идентификатор сеанса. Теперь злоумышленнику остается только дождаться, пока пользователь войдет в систему. Перехват сеанса (Session side jacking), когда злоумышленник использует перехват пакетов для чтения сетевого трафика между двумя сторонами с целью похищения cookie сессии. Многие веб-сайты используют SSL-шифрование для страниц входа, чтобы предотвратить перехват пароля, но не используют шифрование для остальной части сайта после аутентификации. Это позволяет злоумышленникам, способным читать сетевой трафик, перехватывать все данные, отправляемые на сервер, или веб-страницы, просматриваемые клиентом. Поскольку эти данные включают в себя cookie сессии, это позволяет им выдавать себя за жертву, даже если сам пароль не был скомпрометирован. Незащищенные точки доступа Wi-Fi особенно уязвимы, так как любой, использующий сеть, обычно может читать большую часть веб-трафика между другими узлами и точкой доступа. Межсайтовый скриптинг (Cross-site scripting), когда злоумышленник обманывает компьютер пользователя, заставляя его выполнять код, который воспринимается как доверенный, поскольку он, по-видимому, принадлежит серверу, что позволяет злоумышленнику получить копию cookie или выполнить другие операции. Вредоносное ПО и нежелательные программы могут использовать угон браузера для кражи файлов cookie браузера без ведома пользователя, а затем выполнять действия (например, установку приложений Android) без ведома пользователя. Злоумышленник с физическим доступом может просто попытаться украсть ключ сеанса, например, получив файл или содержимое памяти соответствующей части компьютера пользователя или сервера. После успешного получения соответствующих cookie сессии злоумышленник может использовать технику "Pass the Cookie" для совершения хищения сеанса.
Огневая овца
В октябре 2010 года было выпущено расширение для Mozilla Firefox под названием Firesheep, которое предоставило злоумышленникам, перехватывающим сеансы, простой способ атаковать пользователей незащищенных публичных Wi-Fi сетей. Firesheep позволял легко получать доступ к личной информации, хранящейся в файлах cookie, на таких сайтах, как Facebook, Twitter и любых других, добавленных пользователем в настройки, тем самым ставя под угрозу его личные данные и имущество. Лишь спустя несколько месяцев Facebook и Twitter отреагировали, предложив (а впоследствии сделав обязательным) использование HTTPS на всех страницах.
WhatsApp-находок
Приложение под названием WhatsApp Sniffer было доступно в Google Play в мае 2012 года. Оно позволяло просматривать сообщения других пользователей WhatsApp, подключенных к той же сети, что и пользователь приложения. В то время WhatsApp использовал XMPP-инфраструктуру с шифрованием, а не передачу данных в открытом виде.
Дроид-овцы
DroidSheep – простой инструмент для Android, предназначенный для перехвата веб-сессий (sidejacking). Он прослушивает HTTP-пакеты, передаваемые по беспроводной сети (802.11), и извлекает из них идентификаторы сессий для последующего использования. DroidSheep может перехватывать сессии, используя библиотеку libpcap, и поддерживает: открытые (незашифрованные) сети, сети, зашифрованные WEP, и сети, зашифрованные WPA/WPA2 (только PSK). В работе данное программное обеспечение использует libpcap и arpspoof. APK-файл был доступен в Google Play, но Google его удалил.
Куки-Каджер
CookieCadger – это графическое Java-приложение, автоматизирующее перехват и воспроизведение HTTP-запросов для выявления утечек информации из приложений, использующих незашифрованные GET-запросы. Это кроссплатформенная утилита с открытым исходным кодом, основанная на пакете Wireshark, позволяющая отслеживать трафик проводных Ethernet-сетей, незащищенных Wi-Fi сетей или загружать файлы захвата пакетов для автономного анализа. CookieCadger использовался для демонстрации уязвимостей сайтов, предназначенных для обмена информацией о молодежных командах, таких как Shutterfly (используемый футбольной лигой AYSO) и TeamSnap.