Как разобрать письмо по косточкам: анатомия почтовых заголовков

BinaryPhantom

⚡ Contributor
ACTIVE NODE
INITIATED
Вы когда-нибудь задумывались, что скрывается за кнопкой "показать исходный код" в вашем почтовом ящике? Обычный пользователь видит только тему, отправителя и текст. Но для того, кто умеет читать заголовки, каждое письмо превращается в детективную историю с маршрутом, отпечатками пальцев и иногда - явными следами обмана. Анализ заголовков электронной почты - это искусство и наука одновременно. С его помощью можно выяснить, откуда на самом деле пришло сообщение, не подделал ли злоумышленник обратный адрес и стоит ли вообще доверять этому письму. Давайте разберемся, как это работает.

Самые ценные строки в любом письме - это поля Received. Каждое из них фиксирует факт передачи сообщения от одного почтового сервера к другому. Читать их нужно снизу вверх - самый нижний Received обычно показывает отправку с устройства отправителя, а самый верхний - последний прыжок перед тем, как письмо упало в ваш ящик. Представьте себе трекер посылки: каждый Received добавляет метку времени, IP-адрес сервера и идентификатор соединения. Если вы видите, что письмо якобы отправили из Москвы, но цепочка серверов ведет через Нигерию и Вьетнам, это повод насторожиться. Злоумышленники часто добавляют лишние Received или подделывают временные метки, чтобы запутать следствие, но опытный глаз заметит несоответствие - например, время на соседних серверах расходится на несколько часов, что технически невозможно при нормальной доставке.

Поля X-Mailer и User-Agent - это маленькие информаторы, которые выдают программу, использованную для отправки. Outlook оставляет один след, Mozilla Thunderbird - другой, а какая-нибудь самодельная PHP-библиотека для рассылки спама - третий, часто с кривыми версиями или отсутствием обновлений. Бывает, что в заголовке заявлен Apple Mail на Mac, а форматирование строк и кодировка выдают Windows-клиент из 2010 года. Это почти наверняка подделка. А иногда X-Mailer отсутствует полностью - само по себе это не преступление, но в сочетании с другими аномалиями становится еще одним кирпичиком в картину недоверия.

Теперь про самое важное для безопасности - аутентификацию. SPF, DKIM и DMARC - это три кита, на которых держится доверие к электронной почте в современном мире. Их результаты вы найдете в поле Authentication-Results. SPF проверяет, разрешен ли IP-адрес отправителя доменом, от имени которого пришло письмо. DKIM добавляет цифровую подпись, подтверждающую, что письмо не было изменено в пути. А DMARC говорит получателю, что делать, если первые две проверки не прошли. Если вы видите "spf=fail" или "dkim=neutral" - перед вами, скорее всего, подделка. Мошенники обожают использовать домены, у которых вообще не настроена аутентификация. Провайдеры, кстати, тоже бывают разные: Google и Microsoft честно пишут результаты проверок, а некоторые мелкие почтовые сервисы могут вообще не добавлять Authentication-Results, что делает анализ сложнее.

У DKIM есть еще один интересный параметр - selector. Это строка вроде "google20150630" или "s1024-2025-msa". Она указывает, какой именно ключ использовался для подписи и, что важнее, какую версию софта крутится на сервере отправителя. Опытный аналитик по селектору может определить, используется ли современная криптография с длинными ключами или древний RSA-1024, который уже научились взламывать. А если селектор указывает на ключ, которого нет в публичном DNS домена, или сам ключ отозван - это явный признак компрометации.

Почтовые серверы тоже можно идентифицировать. Каждая программа - Postfix, Exim, Sendmail, Microsoft Exchange - по-разному отвечает на команды SMTP. У нее свой порядок приветствия, свой формат кодов ошибок, свои особенности в обработке заголовков. Например, один сервер при переполнении очереди выдаст код 452, другой - 421, а третий просто уронит соединение. Эти нюансы формируют цифровой отпечаток. Специалисты собирают базы таких отпечатков и могут сказать: "Судя по ответам, это Postfix 3.5 на Debian, а не Exchange, как написано в HELO". Точность такого определения достигает 80-90 процентов при наличии хорошей эталонной базы. Это называется SMTP-футпринтинг, и он активно используется для выявления ботнетов и подмены почтовой инфраструктуры.

Временные паттерны - еще один мощный аналитический инструмент. Люди отправляют письма неравномерно: утром активность выше, ночью - ниже, в выходные - свои пики. Боты и спам-рассылки, наоборот, часто работают как часы - ровно каждые 15 минут отправляется одинаковое количество сообщений. Измеряется энтропия распределения - математическая характеристика, показывающая, насколько предсказуем поток. У человека энтропия высокая, у робота - низкая. Кроме того, боты часто используют одинаковые User-Agent на миллионах писем, ставят одну и ту же временную зону в Date (часовой пояс разработчика, а не отправителя) и не меняют длину строк в заголовках. Эти паттерны позволяют автоматически отсекать до 95 процентов автоматического спама еще до того, как антивирус посмотрит на содержимое.

Вложения и ссылки - это, пожалуй, самая опасная часть письма. Но и их можно анализировать, даже не открывая. Хэши вложений - SHA256 - позволяют проверить файл по базам VirusTotal: не видели ли его уже антивирусы? Метаданные типа файла - настоящий ли это PDF или внутри него спрятан исполняемый скрипт? Аномалии в структуре, например архив с паролем или документ с макросами, который зашифрован, часто указывают на целенаправленную атаку. Ссылки тоже можно пробить: сокращатели вроде bit.ly часто используются, чтобы скрыть реальный адрес фишинговой страницы. Нормальный отправитель так делать не будет. Эксперты создают так называемые "песочницы" - изолированные среды, где письмо с вложениями открывают без риска для реальной системы, и смотрят, что происходит. Попытка связаться с внешним сервером, создание процессов или изменение реестра - все это немедленно фиксируется и добавляется в базу угроз.

На практике настоящий анализ почтовых заголовков - это всегда комплекс. По отдельности каждое поле может ничего не значить. SPF failed - бывают легитимные пересылки, которые ломают проверку. User Agent от Microsoft на Mac - возможно, человек просто использует корпоративный компьютер. Несколько переходов через серверы в разных странах - у крупных компаний могут быть распределенные релейные станции. Но когда красных флажков становится много, когда временные метки не сходятся, аутентификация провалена, отпечаток сервера не соответствует заявленному домену, а вложение пришло из неожиданной страны - картина складывается однозначная. Письмо либо поддельное, либо отправлено скомпрометированным устройством. И в этом случае лучшее, что можно сделать - удалить его, не открывая, и сообщить в службу безопасности.

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

ScriptStealer

⚡ Contributor
ACTIVE NODE
INITIATED
Вы когда-нибудь задумывались, что скрывается за кнопкой "показать исходный код" в вашем почтовом ящике? Обычный пользователь видит только тему, отправителя и текст. Но для того, кто умеет читать заголовки, каждое письмо превращается в детективную историю с маршрутом, отпечатками пальцев и иногда - явными следами обмана. Анализ заголовков электронной почты - это искусство и наука одновременно. С его помощью можно выяснить, откуда на самом деле пришло сообщение, не подделал ли злоумышленник обратный адрес и стоит ли вообще доверять этому письму. Давайте разберемся, как это работает.

Самые ценные строки в любом письме - это поля Received. Каждое из них фиксирует факт передачи сообщения от одного почтового сервера к другому. Читать их нужно снизу вверх - самый нижний Received обычно показывает отправку с устройства отправителя, а самый верхний - последний прыжок перед тем, как письмо упало в ваш ящик. Представьте себе трекер посылки: каждый Received добавляет метку времени, IP-адрес сервера и идентификатор соединения. Если вы видите, что письмо якобы отправили из Москвы, но цепочка серверов ведет через Нигерию и Вьетнам, это повод насторожиться. Злоумышленники часто добавляют лишние Received или подделывают временные метки, чтобы запутать следствие, но опытный глаз заметит несоответствие - например, время на соседних серверах расходится на несколько часов, что технически невозможно при нормальной доставке.

Поля X-Mailer и User-Agent - это маленькие информаторы, которые выдают программу, использованную для отправки. Outlook оставляет один след, Mozilla Thunderbird - другой, а какая-нибудь самодельная PHP-библиотека для рассылки спама - третий, часто с кривыми версиями или отсутствием обновлений. Бывает, что в заголовке заявлен Apple Mail на Mac, а форматирование строк и кодировка выдают Windows-клиент из 2010 года. Это почти наверняка подделка. А иногда X-Mailer отсутствует полностью - само по себе это не преступление, но в сочетании с другими аномалиями становится еще одним кирпичиком в картину недоверия.

Теперь про самое важное для безопасности - аутентификацию. SPF, DKIM и DMARC - это три кита, на которых держится доверие к электронной почте в современном мире. Их результаты вы найдете в поле Authentication-Results. SPF проверяет, разрешен ли IP-адрес отправителя доменом, от имени которого пришло письмо. DKIM добавляет цифровую подпись, подтверждающую, что письмо не было изменено в пути. А DMARC говорит получателю, что делать, если первые две проверки не прошли. Если вы видите "spf=fail" или "dkim=neutral" - перед вами, скорее всего, подделка. Мошенники обожают использовать домены, у которых вообще не настроена аутентификация. Провайдеры, кстати, тоже бывают разные: Google и Microsoft честно пишут результаты проверок, а некоторые мелкие почтовые сервисы могут вообще не добавлять Authentication-Results, что делает анализ сложнее.

У DKIM есть еще один интересный параметр - selector. Это строка вроде "google20150630" или "s1024-2025-msa". Она указывает, какой именно ключ использовался для подписи и, что важнее, какую версию софта крутится на сервере отправителя. Опытный аналитик по селектору может определить, используется ли современная криптография с длинными ключами или древний RSA-1024, который уже научились взламывать. А если селектор указывает на ключ, которого нет в публичном DNS домена, или сам ключ отозван - это явный признак компрометации.

Почтовые серверы тоже можно идентифицировать. Каждая программа - Postfix, Exim, Sendmail, Microsoft Exchange - по-разному отвечает на команды SMTP. У нее свой порядок приветствия, свой формат кодов ошибок, свои особенности в обработке заголовков. Например, один сервер при переполнении очереди выдаст код 452, другой - 421, а третий просто уронит соединение. Эти нюансы формируют цифровой отпечаток. Специалисты собирают базы таких отпечатков и могут сказать: "Судя по ответам, это Postfix 3.5 на Debian, а не Exchange, как написано в HELO". Точность такого определения достигает 80-90 процентов при наличии хорошей эталонной базы. Это называется SMTP-футпринтинг, и он активно используется для выявления ботнетов и подмены почтовой инфраструктуры.

Временные паттерны - еще один мощный аналитический инструмент. Люди отправляют письма неравномерно: утром активность выше, ночью - ниже, в выходные - свои пики. Боты и спам-рассылки, наоборот, часто работают как часы - ровно каждые 15 минут отправляется одинаковое количество сообщений. Измеряется энтропия распределения - математическая характеристика, показывающая, насколько предсказуем поток. У человека энтропия высокая, у робота - низкая. Кроме того, боты часто используют одинаковые User-Agent на миллионах писем, ставят одну и ту же временную зону в Date (часовой пояс разработчика, а не отправителя) и не меняют длину строк в заголовках. Эти паттерны позволяют автоматически отсекать до 95 процентов автоматического спама еще до того, как антивирус посмотрит на содержимое.

Вложения и ссылки - это, пожалуй, самая опасная часть письма. Но и их можно анализировать, даже не открывая. Хэши вложений - SHA256 - позволяют проверить файл по базам VirusTotal: не видели ли его уже антивирусы? Метаданные типа файла - настоящий ли это PDF или внутри него спрятан исполняемый скрипт? Аномалии в структуре, например архив с паролем или документ с макросами, который зашифрован, часто указывают на целенаправленную атаку. Ссылки тоже можно пробить: сокращатели вроде bit.ly часто используются, чтобы скрыть реальный адрес фишинговой страницы. Нормальный отправитель так делать не будет. Эксперты создают так называемые "песочницы" - изолированные среды, где письмо с вложениями открывают без риска для реальной системы, и смотрят, что происходит. Попытка связаться с внешним сервером, создание процессов или изменение реестра - все это немедленно фиксируется и добавляется в базу угроз.

На практике настоящий анализ почтовых заголовков - это всегда комплекс. По отдельности каждое поле может ничего не значить. SPF failed - бывают легитимные пересылки, которые ломают проверку. User Agent от Microsoft на Mac - возможно, человек просто использует корпоративный компьютер. Несколько переходов через серверы в разных странах - у крупных компаний могут быть распределенные релейные станции. Но когда красных флажков становится много, когда временные метки не сходятся, аутентификация провалена, отпечаток сервера не соответствует заявленному домену, а вложение пришло из неожиданной страны - картина складывается однозначная. Письмо либо поддельное, либо отправлено скомпрометированным устройством. И в этом случае лучшее, что можно сделать - удалить его, не открывая, и сообщить в службу безопасности.

Технически подкованный пользователь, владеющий анализом заголовков, всегда на шаг впереди мошенников. Потому что фишинг и спам, как бы их ни маскировали, всегда оставляют следы. И эти следы - в заголовках. Вопрос только в том, кто быстрее и умелее их прочитает.
Особенно про Received снизу вверх читать это база, но многие новички не знают и смотрят сверху, потом путаются. И про X-Mailer тоже точняк: когда видишь "Microsoft Outlook" а там формат кривой и кодировка старая — сразу понятно, что подделка. Еще бы про Return-Path добавили - часто бывает, что он отличается от From, и это один из первых красных флагов. В целом лайк, познавательно даже для тех, кто уже в теме. Сохранил себе
 
Верх