Что такое перехват сеанса?

Опубликовано: 2023-04-27

Перехват сеанса — это тип кибератаки, о которой должны знать владельцы сайтов WordPress. Перехват сеанса, также известный как перехват сеанса TCP, заставляет злоумышленников выглядеть как правильно вошедшие в систему пользователи. Злоумышленник захватывает сеанс пользователя, получая идентификатор сеанса без ведома или разрешения действительного пользователя. После того, как злоумышленник украл идентификатор сеанса пользователя, он может маскироваться под целевого пользователя. Злоумышленник сможет делать все, что может делать авторизованный пользователь, после того, как авторизованный пользователь войдет в ту же систему.

Одна из худших вещей, которые хакеры могут сделать со взломанным сеансом, — это получить доступ к веб-приложению или элементам управления сервера без аутентификации. Когда злоумышленник перехватывает сеанс пользователя, ему не нужно аутентифицировать себя, пока сеанс активен. Приложение, сгенерировавшее сеанс, думает, что оно является аутентифицированным пользователем, чей сеанс перехватили.

Другими словами, хакер будет иметь такой же доступ, как и пользователь, которого он скомпрометировал. Поскольку законный пользователь уже аутентифицировал свою сессию до того, как произошла атака, успешный захват позволяет злоумышленнику полностью обойти аутентификацию.

В этом руководстве мы подробно рассмотрим перехват сеанса. Мы покажем вам, что именно вам нужно сделать, чтобы этого не произошло с вашим сайтом WordPress.

Что такое сеанс?

Сеанс — это просто серия взаимодействий между конечными точками связи, которые происходят в рамках одного HTTP-соединения.

Протокол передачи гипертекста (HTTP) является основополагающим для Интернета. Это то, что позволяет вам использовать гипертекстовые ссылки и загружать веб-страницы. HTTP также является протоколом прикладного уровня для передачи информации между устройствами в сети.

Ключевой характеристикой HTTP является то, что он не имеет состояния. Это означает, что он не сохраняет никаких данных о клиентах (таких как вы и ваш браузер), которые открывают сеанс на веб-сайте. Каждая сессия совершенно новая. HTTP не сохраняет данные о пользователях из их предыдущих сеансов.

Безгражданство

Веб-приложения, такие как WordPress, должны отслеживать состояние между несколькими подключениями от одного и того же пользователя и от разных пользователей. Он должен идентифицировать сеанс каждого пользователя после того, как они вошли в систему — возможно, на более чем одном устройстве или в браузере.

Когда пользователь входит в приложение, такое как WordPress, сервер создает сеанс. Сеанс будет поддерживать «состояние» соединения для пользователя, сохраняя уникальные для него параметры. Сессии сохраняются на сервере в течение всего периода, пока пользователь входит в приложение.

Сеанс завершается, когда пользователь выходит из системы или по истечении предопределенного периода бездействия. Когда сеанс пользователя заканчивается, приложение должно удалить свои данные из памяти сервера.

Идентификаторы сеанса

Идентификаторы сеанса (или «ключи» или «токены») являются уникальными идентификаторами сеанса. Как правило, это длинные случайные буквенно-цифровые строки, которые сервер и клиент передают друг другу. Приложение для аутентификации обычно сохраняет идентификаторы сеансов в URL-адресах, файлах cookie или скрытых полях на веб-страницах.

Хотя идентификаторы сеансов полезны для поддержания состояния в системе без сохранения состояния, они также сопряжены с некоторыми потенциальными угрозами безопасности. Например, если мы понимаем алгоритмы, генерирующие идентификаторы сеансов для веб-приложения, мы можем генерировать их сами. Кроме того, если веб-приложение не использует шифрование SSL для шифрования HTTP как HTTPS, оно будет передавать идентификаторы сеанса в открытом виде. В общедоступной сети любой может перехватить незашифрованные соединения и украсть идентификаторы сеансов.

Как именно работает перехват сеанса на практике?

Успешная атака перехвата сеанса чрезвычайно скрытна. Обычно они выполняются в очень загруженных сетях с большим количеством активных сеансов связи.

Некоторые из наиболее распространенных форм перехвата сеанса используют:

  • Предсказуемые идентификаторы токенов сеанса
  • Обнюхивание сеанса
  • Побочный эффект сеанса
  • Вредоносная программа «Человек в браузере»
  • Межсайтовый скриптинг
  • Фиксация сеанса

Давайте рассмотрим каждый из этих векторов угроз по отдельности.

Предсказуемые идентификаторы токенов сеанса

Многие веб-серверы используют настраиваемые алгоритмы или предопределенные шаблоны для создания своих идентификаторов сеансов. Чем выше общая предсказуемость уникального токена сеанса, тем он слабее.

И тем легче хакеру предсказать.

Обнюхивание сеанса

Перехват сеанса — один из самых простых и основных методов, используемых хакерами для перехвата сеанса на уровне приложений.

Злоумышленник будет использовать анализатор пакетов, такой как Wireshark, или прокси-сервер, такой как OWASP Zed, для перехвата сетевого трафика. Если этот трафик содержит незашифрованные идентификаторы сеансов для соединений между клиентами и веб-сайтом, идентификаторы могут быть украдены. Хакеры могут использовать действительный идентификатор или токен для быстрого получения несанкционированного доступа к сайту и учетным записям его пользователей.

Сессия Sidejacking

Злоумышленник может использовать перехват пакетов для перехвата файлов cookie сеанса для пользователей, когда они входят на сайт. Если страницы входа не зашифрованы или используется слабое шифрование, киберпреступник может таким образом легко захватить сеансы пользователей.

Человек в браузере

В этой атаке злоумышленник должен сначала заразить компьютер или браузер жертвы вредоносным ПО.

Это вредоносное ПО может незаметно изменять информацию о транзакциях браузера и создавать транзакции без ведома пользователя. Запросы поврежденного браузера инициируются физическим устройством жертвы, поэтому они считаются допустимыми.

Межсайтовый скриптинг

Киберпреступник может использовать уязвимости приложений или серверов для внедрения произвольного кода на веб-страницы сайта. Это заставит браузеры посетителей выполнять этот код при загрузке скомпрометированной страницы.

Если в файлах cookie сеанса не задан параметр «Только HTTP», ключ сеанса можно украсть с помощью внедренного кода. Это даст злоумышленникам все необходимое для захвата сеанса пользователя.

Фиксация сеанса

При этом используется действительный идентификатор сеанса, который еще не прошел проверку подлинности. Используя фиксацию сеанса, злоумышленник попытается обманом заставить пользователя пройти аутентификацию с этим конкретным идентификатором.

После аутентификации злоумышленник получает полный доступ к компьютеру жертвы.

Фиксация сеанса исследует большое ограничение в том, как веб-приложение управляет идентификатором сеанса.

Что хакер получает от перехвата сеанса?

Когда хакер перехватывает сеанс, он может делать все, что разрешено делать законному пользователю в этом активном сеансе.

Наиболее эффективный — и опасный — захват сеанса может привести к:

  • Скомпрометированные банковские счета
  • Несанкционированные онлайн-покупки товаров в Интернете
  • Выявить кражу
  • Кража данных из внутренних систем компании

Не хорошо! Успешный сеанс перехвата сеанса может нанести большой ущерб.

Каковы некоторые примеры перехвата сеанса?

Осенью 2012 года два исследователя безопасности по имени Джулиано Риццо и Тай Дуонг объявили о CRIME — атаке, которая использует утечку информации в рамках степени сжатия запросов TLS в качестве побочного канала. Это позволило им расшифровать запросы, сделанные клиентом к серверу.

В свою очередь, это позволило им захватить файл cookie входа пользователя и перехватить сеанс, выдавая себя за него на важных онлайн-направлениях, таких как сайты электронной коммерции и банки.

Эта демонстрация показала, как хакер может выполнить этот тип атаки для восстановления заголовков HTTP-запроса.

CRIME работает над расшифровкой файлов cookie HTTPS, которые устанавливаются веб-сайтами для запоминания аутентифицированных пользователей с использованием грубой силы. Код атаки заставляет браузер жертвы отправлять специально созданные HTTPS-запросы на целевой веб-сайт и анализирует изменение их длины после того, как они были сжаты, чтобы определить значение файла cookie сеанса жертвы. Это возможно, потому что SSL/TLS использует алгоритм сжатия под названием DEFLATE, который устраняет повторяющиеся строки, как мы видели выше.

Код атаки не может прочитать файл cookie сеанса, включенный в запросы, из-за механизмов безопасности в браузере. Однако он может контролировать путь каждого нового запроса и может вставлять в него разные строки, пытаясь сопоставить значение файла cookie.

Значения cookie сеанса могут быть очень длинными. Они состоят из прописных и строчных букв и цифр.

В результате коду атаки CRIME приходится инициировать очень большое количество запросов на их расшифровку, что может занять несколько минут.

Предотвращение перехвата сеанса

Важно помнить, что злоумышленники могут украсть и повторно использовать идентификаторы сеансов (или другие конфиденциальные значения файлов cookie), когда они небезопасно передаются или хранятся. Хотя 100-процентная защита не является гарантией, использование шифрования является основной защитой.

Когда пользователи аутентифицируются, SSL и безопасные файлы cookie должны быть обязательными. И когда аутентифицированные пользователи посещают более одной защищенной страницы, их необходимо заставить использовать HTTPS.

Кроме того, владельцам сайтов WordPress необходимо использовать плагин безопасности iThemes Security Pro WordPress для защиты от перехвата сеанса. Функция «Надежные устройства», встроенная в iThemes Security Pro, будет работать 24 часа в сутки, семь дней в неделю, чтобы защитить ваш сайт от этой опасной атаки. Узнайте, как настроить его для пользователей вашего сайта.

Понимание и предотвращение перехвата сеанса

С информацией в этом руководстве вы знаете все, что вам нужно для защиты вашего сайта WordPress от перехвата сеанса:

  1. Убедитесь, что ваш сайт полностью зашифрован с использованием SSL и заставит пользователей оставаться на HTTPS.
  2. Загрузите и установите плагин iThemes Security Pro.

Выполняя эти простые шаги, вы защитите свой сайт от перехвата сеанса.