Расширенный захват сеанса и как защитить себя

Опубликовано: 10 Июня, 2021

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

Использование токенов сеанса пользователя для получения несанкционированного доступа к его учетной записи называется «захватом сеанса». Поскольку веб-серверы обычно не имеют возможности узнать, какой запрос, содержащий действительный токен, является подлинным, а какой - неавторизованным, такую атаку трудно обнаружить. Захват сеанса может привести к утечке или потере личных / конфиденциальных данных. Вот почему понимание общих методов, используемых хакерами для перехвата сеансов, важно как для конечных пользователей, так и для разработчиков.

Взлом сеанса через небезопасную передачу:

Как и пароли, передача идентификационных данных сеанса через HTTP небезопасна. Злоумышленник может выполнить атаку «человек посередине» (MITM) для просмотра файлов cookie и других конфиденциальных данных, используемых для поддержания сеанса пользователя. Эти данные могут быть немедленно использованы злоумышленником для создания дублирующего сеанса. Злоумышленник останется в системе, пока пользователь не выйдет из системы. Будет ли злоумышленник продолжать иметь доступ к учетной записи жертвы после выхода из системы, зависит от реализации управления сеансом. Например, если сайт уязвим при фиксации сеанса (одни и те же файлы cookie для нескольких сеансов), злоумышленник будет иметь постоянный доступ к учетной записи пользователя.

Перехват сеанса через XSS:

Веб-приложение, которое уязвимо для межсайтовых сценариев и использует файлы cookie для управления сеансом, также уязвимо для использования в качестве средства для нацеливания на своих пользователей. Файлы cookie по умолчанию доступны через JavaScript на странице. Злоумышленник может использовать XSS для выполнения JavaScript, который отправит файлы cookie на сервер злоумышленника.
Некоторые веб-сайты предоставляют сеансовые файлы cookie каждому пользователю, включая гостевых пользователей. Сеанс пользователя отслеживается по состоянию этого файла cookie. Когда пользователь входит в систему из браузера, cookie, выпущенный для этого браузера, связывается с сеансом этого пользователя. В этом случае, если присутствует XSS-уязвимость, злоумышленник может вставить свой гостевой файл cookie в сеанс пользователя. Как только пользователь входит в систему, злоумышленник также входит в систему.

Взлом сеанса через фиксацию сеанса:

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

Перехват сеанса через CSRF / XSRF:

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

Перехват сеанса через мошенническую точку доступа Wi-Fi:

Поддельная точка доступа Wi-Fi, соответствующая SSID подлинной точки доступа Wi-Fi, может быть создана злоумышленником, чтобы обманом заставить пользователей подключиться к точке доступа и использовать ее для входа на веб-сайты. Злоумышленник контролирует DNS-сервер точки доступа. Затем злоумышленник может легко изменить записи DNS для веб-сайта, который посещает пользователь, что приведет пользователя к поддельной странице входа. Эта атака также может быть осуществлена путем переманивания пользователей с помощью «Бесплатного высокоскоростного Wi-Fi».

Советы для пользователей:

Пользователь мало что может сделать для предотвращения взлома своих сеансов, кроме обычных мер безопасности. Эти меры предосторожности включают: не использовать общедоступный Wi-Fi для конфиденциальной работы, выходить из конфиденциальных сайтов сразу после использования, избегать повторного использования паролей и т. Д.

Советы для разработчиков: поскольку захват сеанса в основном осуществляется путем эксплуатации уязвимости на сайте, разработчики могут многое сделать для предотвращения таких атак. Разработчикам следует:

  • Используйте заголовки защиты CSP (Content Security Policy) и XSS.
  • Используйте директиву «httponly» для файлов cookie сеанса, чтобы JavaScript на сайте не мог получить к ним доступ. Таким образом, даже если сайт уязвим для XSS, токен сеанса будет в безопасности.
  • Использование аннулирования файлов cookie на стороне сервера при выходе из системы.
  • Избегайте повторного использования файлов cookie.
  • Использование HTTPS и HSTS на своем сайте.
  • Использование надежных токенов против CSRF для конфиденциальных действий, таких как изменение пароля.