SEC Consult описала новую технику спуфинга, которая стала возможной из-за разных следований спецификациям в различных реализациях протокола SMTP. Она позволяет разделить одно сообщение на несколько при его передаче на другой SMTP-сервер. При такой передаче нарушается последовательность для разделения писем, передаваемых через одно соединение. Это позволяет передавать ложные сообщения от имени других отправителей в почтовых сервисах, которые обеспечивают верификацию адресантов.
Атака становится возможной благодаря тому, что разные SMTP-серверы вариативно трактуют последовательность окончания данных. Это позволяет разделить одно письмо на несколько в рамках одного сеанса к SMTP-серверу. Так, в спецификации для маркировки окончания передачи письма определена последовательность «\r\n.\r\n», а после неё могут следовать команды для передачи другого письма без разрыва соединения. Одни SMTP-серверы придерживаются этого правила, а другие ради обеспечения совместимости обрабатывают и такие последовательности, как «\n.\n», «\n.\r\n», «\r\n.\n», «\r.\r» и «\r\n\0.\r\n».
В итоге злоумышленники могут использовать эти альтернативные разделители, чтобы размещать за ними команды отправки второго сообщения. Первый сервер обрабатывает полученную последовательность как одно письмо, а второй — как два отдельно отправленных письма, при этом последующее можно отправить от имени неаутентифицированного пользователя.
К таким SMTP-серверам и службам относятся Postfix, Sendmail, MS Exchange Online,Exim и Cisco Secure Email Gateway, а GMX, iСloud и Microsoft Outlook не фильтруют разделители при обращении к другим серверам.
В Postfix в выпусках 3.8.1, 3.7.6, 3.6.10 и 3.5.20 уже добавили настройку «smtpd_forbid_unauth_pipelining» для разрыва соединения в случае использования разделителей, не соответствующих требованиям RFC 2920 и RFC 5321. По умолчанию она появится в ветке Postfix 3.9, которая выйдет весной 2024 года. Туда же включат настройку smtpd_forbid_bare_newline, которая будет выводить ошибку при использовании только символа перевода строки («\n») для разделения строк.
В следующем выпуске Sendmail 8.18.0.2 в srv_features будет предложена опция ‘o’, включающая обработку только последовательности «\r\n.\r\n».
ссылка на оригинал статьи https://habr.com/ru/articles/783164/
Добавить комментарий