ALPACA — новая техника MITM-атак на HTTPS
9 июня 2021 года
Группа исследователей из нескольких университетов Германии разработала новый метод MITM-атаки на HTTPS, дающий возможность извлечь Cookie с идентификаторами сеанса и другие конфиденциальные данные, а также добиться выполнения произвольного кода JavaScript в контексте другого сайта. Атака получила название ALPACA и может быть применена к TLS-серверам, реализующим разные протоколы прикладного уровня (HTTPS, SFTP, SMTP, IMAP, POP3), но использующим общие TLS-сертификаты.
Суть атаки в том, что при наличии контроля над сетевым шлюзом или точкой беспроводного доступа атакующий может перенаправить трафик на другой сетевой порт и организовать установку соединения не с HTTP-сервером, а с FTP или почтовым сервером, поддерживающими TLS-шифрование. Так как протокол TLS универсален и не привязан к протоколам прикладного уровня, установка шифрованного соединения для всех сервисов идентична и ошибка отправки запроса не к тому сервису может быть определена только уже после установки шифрованного сеанса во время обработки команд отправленного запроса.
Соответственно, если, например, перенаправить соединение пользователя, изначально адресованное к HTTPS, на почтовый сервер, в котором применяется общий с HTTPS-сервером сертификат, TLS-соединение будет успешно установлено, но почтовый сервер не сможет обработать переданные HTTP-команды и вернёт ответ с кодом ошибки. Данный ответ будет обработан браузером как ответ запрошенного сайта, переданный внутри корректно установленного шифрованного канала связи.
Предложено три варианта атаки:
- "Upload" для извлечения Cookie с параметрами аутентификации. Метод применим, если охватываемый TLS-сертификатом FTP-сервер позволяет загрузить и извлечь свои данные. В данном варианте атаки атакующий может добиться сохранения частей изначального HTTP-запроса, таких как содержимое заголовка Cookie, например, если FTP-сервер интерпретирует запрос как файл для сохранения или полностью журналирует входящие запросы. Для успешной атаки злоумышленнику требуется каким-то образом извлечь сохранённое содержимое. Атака применима к Proftpd, Microsoft IIS, vsftpd, filezilla и serv-u.
- "Download" для организации межсайтового скриптинга (XSS).
Метод подразумевает, что атакующий может подготовить данные на сервисе, использующем общий TLS-сертификат, которые затем можно загрузить в ответ на запрос клиента. Атака применима к вышеотмеченным FTP-серверам, IMAP-серверам и POP3-серверам (courier, cyrus, kerio-connect и zimbra).
- "Reflection" для запуска JavaScript в контексте другого сайта. Метод основан на возвращении клиенту части запроса, в котором содержится отправленный атакующим JavaScript-код. Атака применима к вышеотмеченным FTP-серверам, IMAP-серверам cyrus, kerio-connect и zimbra, а также к SMTP-серверу sendmail.
Например, при открытии пользователем страницы, подконтрольной атакующим, с этой страницы может быть инициирован запрос ресурса с сайта, на котором у пользователя имеется активная учётная запись (например, bank.com). В ходе MITM-атаки этот запрос, адресованный web-сайту bank.com, можно перенаправить на почтовый сервер, в котором используется общий с bank.com TLS-сертификат. Так как почтовый сервер не завершает сеанс после первой ошибки, служебные заголовки и команды, такие как "POST / HTTP/1.1" и "Host:", будут обработаны как неизвестные команды (почтовый сервер вернёт на каждый заголовок "500 unrecognized command").
Почтовый сервер не разбирает особенности протокола HTTP и для него служебные заголовки и блок данных POST-запроса обрабатываются одинаково, поэтому в теле POST-запроса можно указать строку с командой почтовому серверу. Например, можно передать:
MAIL FROM: <script>alert(1);</script>
на что почтовый сервер вернёт сообщение об ошибке
501 <script>alert(1);</script>: malformed address: alert(1);</script> may not follow <script>
Этот ответ получит браузер пользователя, который выполнит JavaScript-код в контексте не изначально открытого сайта атакующего, а сайта bank.com, на который был отправлен запрос, так как ответ поступил внутри корректного TLS-сеанса, сертификат которого подтвердил подлинность ответа bank.com.
Сканирование глобальной сети показало, что проблеме в общем виде подвержены около 1.4 млн web-серверов, для которых возможно совершение атаки со смешиванием обращений по разным протоколам. Возможность реального совершения атаки определена для 119 тысяч web-серверов, для которых присутствовали сопутствующие TLS-серверы на базе других прикладных протоколов.
Примеры эксплоитов
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.