В информатике перехват сеанса , иногда также известный как перехват файлов cookie , представляет собой эксплуатацию действительного сеанса компьютера — иногда также называемого сеансовым ключом — для получения несанкционированного доступа к информации или службам в компьютерной системе. В частности, он используется для обозначения кражи волшебного файла cookie, используемого для аутентификации пользователя на удаленном сервере. Он имеет особое значение для веб-разработчиков, поскольку файлы cookie HTTP, используемые для поддержания сеанса на многих веб-сайтах, могут быть легко украдены злоумышленником с помощью промежуточного компьютера или с доступом к сохраненным файлам cookie на компьютере жертвы (см. Кража файлов cookie HTTP ). После успешной кражи соответствующих файлов cookie сеанса злоумышленник может использовать технику Pass the Cookie для выполнения перехвата сеанса. Перехват файлов cookie обычно используется против аутентификации клиента в Интернете. Современные веб-браузеры используют механизмы защиты файлов cookie для защиты сети от атак. [1]
Популярным методом является использование IP-пакетов с маршрутизацией от источника. Это позволяет злоумышленнику в точке B в сети участвовать в разговоре между A и C , поощряя прохождение IP-пакетов через машину B.
Если исходная маршрутизация отключена, злоумышленник может использовать «слепой» захват, при котором он угадывает ответы двух машин. Таким образом, злоумышленник может отправить команду, но никогда не сможет увидеть ответ. Однако распространенной командой будет установка пароля, разрешающего доступ из любого места в сети.
Атакующий также может быть "встроен" между A и C, используя программу-сниффер для наблюдения за разговором. Это известно как "атака посредника".
История 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, проблема перехвата сеанса превратилась в почти постоянную угрозу безопасности. [2] [ неудавшаяся проверка ]
Введение суперкуков и других функций с модернизированным HTTP 1.1 позволило проблеме перехвата стать постоянной проблемой безопасности. Стандартизация веб-сервера и конечного автомата браузера способствовала этой постоянной проблеме безопасности.
Методы
Существует четыре основных метода, используемых для совершения перехвата сеанса. Это:
Фиксация сеанса , когда злоумышленник устанавливает идентификатор сеанса пользователя на тот, который ему известен, например, отправляя пользователю электронное письмо со ссылкой, содержащей определенный идентификатор сеанса. Теперь злоумышленнику остается только ждать, пока пользователь войдет в систему.
Подмена сеанса , когда злоумышленник использует перехват пакетов для чтения сетевого трафика между двумя сторонами, чтобы украсть сеансовый cookie . Многие веб-сайты используют SSL -шифрование для страниц входа , чтобы злоумышленники не могли увидеть пароль, но не используют шифрование для остальной части сайта после аутентификации . Это позволяет злоумышленникам, которые могут читать сетевой трафик, перехватывать все данные, отправляемые на сервер или веб-страницы, просматриваемые клиентом. Поскольку эти данные включают сеансовый cookie , это позволяет им выдавать себя за жертву, даже если сам пароль не скомпрометирован. [3] Незащищенные точки доступа Wi-Fi особенно уязвимы, так как любой, кто использует сеть совместно, как правило, сможет прочитать большую часть веб-трафика между другими узлами и точкой доступа .
Межсайтовый скриптинг , при котором злоумышленник обманывает компьютер пользователя, заставляя его запустить код, который считается заслуживающим доверия, поскольку он выглядит как принадлежащий серверу, что позволяет злоумышленнику получить копию cookie-файла или выполнить другие операции.
Вредоносное ПО и нежелательные программы могут использовать захват браузера для кражи файлов cookie браузера без ведома пользователя, а затем выполнять действия (например, установку приложений Android) без ведома пользователя. [4] Злоумышленник с физическим доступом может просто попытаться украсть ключ сеанса , например, получив содержимое файла или памяти соответствующей части компьютера пользователя или сервера.
После успешного получения соответствующих сеансовых cookie-файлов злоумышленник внедряет сеансовый cookie-файл в свой браузер, чтобы выдать себя за пользователя-жертву на веб-сайте, с которого был украден сеансовый cookie-файл. [5]
Подвиги
Огнеовцы
Firesheep , расширение Firefox , представленное в октябре 2010 года, продемонстрировало уязвимости перехвата сеанса в незащищенных сетях. Оно захватывало незашифрованные файлы cookie с популярных веб-сайтов, позволяя пользователям захватывать активные сеансы других в той же сети. Инструмент работал, отображая потенциальные цели в боковой панели, обеспечивая доступ к сеансу без кражи пароля. Поддерживались следующие веб-сайты: Facebook , Twitter , Flickr , Amazon , Windows Live и Google , с возможностью использования скриптов для добавления других веб-сайтов. [6] Всего несколько месяцев спустя Facebook и Twitter ответили, предложив (а позже и потребовав) HTTP Secure по всему. [7] [8]
DroidSheep
DroidSheep — это простой инструмент Android для перехвата веб-сеансов (sidejacking). Он прослушивает HTTP-пакеты, отправляемые через беспроводное сетевое соединение (802.11), и извлекает идентификатор сеанса из этих пакетов для их повторного использования. DroidSheep может захватывать сеансы с помощью библиотеки libpcap и поддерживает: открытые (незашифрованные) сети, сети с шифрованием WEP и сети с шифрованием WPA/WPA2 (только PSK). Это программное обеспечение использует libpcap и arpspoof. [9] [10] APK был доступен в Google Play , но был удален Google.
CookieCadger
CookieCadger — это графическое приложение Java, которое автоматизирует сайдджекинг и воспроизведение HTTP-запросов, чтобы помочь выявить утечку информации из приложений, использующих незашифрованные запросы GET. Это кроссплатформенная утилита с открытым исходным кодом на основе пакета Wireshark , которая может контролировать проводной Ethernet, незащищенный Wi-Fi или загружать файл захвата пакетов для офлайн-анализа. Cookie Cadger использовался для выявления слабых мест сайтов обмена молодежными командами, таких как Shutterfly (используется футбольной лигой AYSO) и TeamSnap. [11]
CookieMonster
CookieMonster — это эксплойт типа «человек посередине» , с помощью которого третья сторона может получить данные HTTPS cookie , если свойство «Только зашифрованные сеансы» не установлено должным образом. Это может позволить получить доступ к сайтам с конфиденциальной личной или финансовой информацией. В 2008 году это могло повлиять на основные веб-сайты, включая Gmail, Google Docs, eBay, Netflix, CapitalOne, Expedia. [12]
Это инструмент на основе Python , разработанный исследователем безопасности Майком Перри. Перри первоначально объявил об уязвимости, эксплуатируемой CookieMonster, на BugTraq в 2007 году. Год спустя он продемонстрировал CookieMonster в качестве инструмента подтверждения концепции на Defcon 16. [13] [14] [15] [16] [17] [18] [19] [20]
Профилактика
Методы предотвращения перехвата сеанса включают в себя:
Шифрование трафика данных, передаваемого между сторонами, с использованием SSL / TLS ; в частности, сеансового ключа (хотя в идеале всего трафика для всего сеанса [21] ). Этот метод широко используется веб-банками и другими службами электронной коммерции, поскольку он полностью предотвращает атаки в стиле сниффинга. Однако все еще может быть возможным выполнение некоторых других видов перехвата сеанса. В ответ на это ученые из Университета Радбуда в Неймегене предложили в 2013 году способ предотвращения перехвата сеанса путем корреляции сеанса приложения с учетными данными SSL / TLS [22]
Использование длинного случайного числа или строки в качестве сеансового ключа . Это снижает риск того, что злоумышленник может просто угадать действительный сеансовый ключ методом проб и ошибок или методом подбора.
Восстановление идентификатора сеанса после успешного входа в систему. Это предотвращает фиксацию сеанса , поскольку злоумышленник не знает идентификатор сеанса пользователя после того, как он вошел в систему.
Некоторые службы выполняют вторичные проверки личности пользователя. Например, веб-сервер может проверять при каждом запросе, что IP-адрес пользователя совпадает с последним использованным в течение сеанса. Однако это не предотвращает атаки со стороны кого-либо, кто использует тот же IP-адрес, и может быть неприятно для пользователей, чей IP-адрес может измениться во время сеанса просмотра .
В качестве альтернативы некоторые службы будут изменять значение cookie с каждым запросом. Это значительно сокращает окно, в котором может действовать злоумышленник, и позволяет легко определить, произошла ли атака, но может вызвать другие технические проблемы (например, два законных, близко по времени выполненных запроса от одного и того же клиента могут привести к ошибке проверки токена на сервере).
Пользователи также могут захотеть выходить из веб-сайтов, когда они заканчивают ими пользоваться. [23] [24] Однако это не защитит от таких атак, как Firesheep .
^ «Как Shutterfly и другие социальные сайты делают ваших детей уязвимыми для хакеров». Mother Jones . 2013-05-03. Архивировано из оригинала 2024-05-19.
^ Гудвин, Дэн. «CookieMonster похищает учетные записи пользователей с защищенных сайтов • The Register». www.theregister.co.uk . Получено 18.02.2009 .
↑ Перри, Майк (4 августа 2008 г.). "CookieMonster: Перехват файлов cookie | fscked.org". fscked.org . Получено 18 декабря 2018 г.
^ Claburn, Thomas (11 сентября 2008 г.). "CookieMonster может украсть HTTPS-куки -- Безопасность -- InformationWeek". InformationWeek . Архивировано из оригинала 12 сентября 2008 г.
^ Гудин, Дэн (11 сентября 2008 г.). «CookieMonster похищает учетные записи пользователей с защищенных сайтов». www.theregister.co.uk . Получено 18 декабря 2018 г.
^ Перри, Майк (24 августа 2008 г.). «Неполный список предполагаемых уязвимых сайтов | fscked.org». fscked.org . Получено 18 декабря 2018 г.
↑ Принс, Брайан (12 сентября 2008 г.). «Инструмент взлома файлов cookie HTTPS CookieMonster пожирает персональные данные». eWeek . Ziff-Davis . Архивировано из оригинала 29 октября 2024 г.
^ «Презентация Перри на Defcon (YouTube)».
^ "Слайды презентации Defcon" (PDF) .
^ «CookieMonster Core Logic, Configuration и README».
^ "Schneier on Security: Firesheep". 27 октября 2010 г. Получено 29 мая 2011 г.
^ Burgers, Willem; Roel Verdult; Marko van Eekelen (2013). «Предотвращение перехвата сеанса путем привязки сеанса к криптографическим сетевым учетным данным». Secure IT Systems . Lecture Notes in Computer Science. Vol. 8208. pp. 33– 50. doi :10.1007/978-3-642-41488-6_3. ISBN978-3-642-41487-9.
^ См . «NetBadge: Как выйти из системы».
^ См. также «Будьте умны в сети — всегда выходите из системы».