Хочу обратить ваше внимание на важную, на мой взгляд, проблему, которой пренебрегают даже самые крупные и инновационные компании мира. Проблема заключается в отсутствии у большинства доменов SPF-записи, которая защищает домен от его несанкционированного использования в электронной почте.
SPF (Sender Policy Framework) представляет из себя текстовую запись в TXT-записи DNS домена. Запись содержит информацию о списке серверов, которые имеют право отправлять письма от имени этого домена и механизм обработки писем, отправленных от других серверов.
Например, SPF-запись «example.com. TXT «v=spf1 +a +mx -all»» говорит о том, что отправлять письма от имени домена «example.com» могут сервера, указанные в A и MX-записях этого домена, а письма, отправленные от других серверов должны быть удалены (Fail).
Важно понимать:
Всю подробную информацию о данной технологии можно найти на сайте проекта «Sender Policy Framework».
На текущий момент все продвинутые анти-спам системы используют 3 основных типа анализа писем (и их вариации):
Чтобы успешно пройти анти-спам систему спамеру (или мошеннику) будет необходимо: «чистый ip», красивое письмо и домен без защиты (примеры №1 и №3). Чтобы предотвратить отправку писем от «вашего имени» (фишинг) достаточно лишь добавить соответствующую TXT-запись к домену (пример №2).
В качестве примера я отправил 3 простых письма с помощью telnet и SMTP команд. 2 письма покажут работу спам-фильтра SpamAssassin (сервис mail-tester.com), а последнее письмо будет проходить анти-спам фильтр Gmail. Для чистоты экспериментов я использовал «чистый» IP-адрес (найти его было не так и сложно) и текст без ссылок и HTML.
Письмо №1:
Письмо №2:
Письмо №3:
Как видно из результатов, письмо от домена «microsoft.com» не прошло бы анти-спам фильтр, даже если у него идеально чистое содержание. А вот письмо от имени домена «microsoft.ru» прошло проверку и у SpamAssassin и у Gmail, так как оно не защищено.
Товарищи айтишники, не подставляйте себя и свою компанию – установите SPF-записи для всех своих доменов и MX-серверов.
Тестирование SPF-записи
Анализ письма анти-спам фильтром SpamAssassin
Много полезных тестов (MX, SPF, Blacklist, DKIM Lookup и т.д.)
Проверка репутации почтовых серверов и доменов
Проверка домена и серверов-отправителей (здесь вы увидите кто отправляет письма от имени вашего домена)
MS Sender ID Framework SPF Record Wizard
SPF (Sender Policy Framework) представляет из себя текстовую запись в TXT-записи DNS домена. Запись содержит информацию о списке серверов, которые имеют право отправлять письма от имени этого домена и механизм обработки писем, отправленных от других серверов.
Например, SPF-запись «example.com. TXT «v=spf1 +a +mx -all»» говорит о том, что отправлять письма от имени домена «example.com» могут сервера, указанные в A и MX-записях этого домена, а письма, отправленные от других серверов должны быть удалены (Fail).
Важно понимать:
- SPF-запись не наследуется на поддомены. Для каждого домена третьего (и ниже) уровней необходима своя запись.
- SPF проверяет только HELO и MAIL FROM поля.
Всю подробную информацию о данной технологии можно найти на сайте проекта «Sender Policy Framework».
Почему это важно?
На текущий момент все продвинутые анти-спам системы используют 3 основных типа анализа писем (и их вариации):
- Анализ IP-адреса сервера отправителя: его репутация, корректность A и PTR-записей.
- Анализ SPF/DMARC записей домена и цифровой подписи DKIM.
- Анализ содержимого: заголовки, тема, текст, ссылки и т.д.
Чтобы успешно пройти анти-спам систему спамеру (или мошеннику) будет необходимо: «чистый ip», красивое письмо и домен без защиты (примеры №1 и №3). Чтобы предотвратить отправку писем от «вашего имени» (фишинг) достаточно лишь добавить соответствующую TXT-запись к домену (пример №2).
Примеры
В качестве примера я отправил 3 простых письма с помощью telnet и SMTP команд. 2 письма покажут работу спам-фильтра SpamAssassin (сервис mail-tester.com), а последнее письмо будет проходить анти-спам фильтр Gmail. Для чистоты экспериментов я использовал «чистый» IP-адрес (найти его было не так и сложно) и текст без ссылок и HTML.
# | From | To | Результат | SPF домена отправителя |
1 | bill.gates@microsoft.ru | *@mail-tester.com | Успешно. Баллов в mail-tester.com: 7/10 | - |
2 | bill.gates@microsoft.com | *@mail-tester.com | Неуспешно. Баллов в mail-tester.com: 2.1/10 | v=spf1 include:_spf-a.microsoft.com include:_spf-b.microsoft.com include:_spf-c.microsoft.com include:_spf-ssg-a.microsoft.com include:spf-a.hotmail.com ip4:147.243.128.24 ip4:147.243.128.26 ip4:147.243.1.153 ip4:147.243.1.47 ip4:147.243.1.48 -all |
3 | bill.gates@microsoft.ru | *@gmail.com | Успешно | - |
Письмо №1:
Письмо №2:
Письмо №3:
Как видно из результатов, письмо от домена «microsoft.com» не прошло бы анти-спам фильтр, даже если у него идеально чистое содержание. А вот письмо от имени домена «microsoft.ru» прошло проверку и у SpamAssassin и у Gmail, так как оно не защищено.
Советы
- Перед установкой SPF-записи удостоверьтесь, что учтены все сервера, отправляющие письма в интернет. Не забудьте про web-сервера и другие внешние системы, иначе вы можете потерять часть писем, и тем самым навредить себе и бизнесу.
- Правильно выбирайте механизм обработки писем (Pass, Fail, SoftFail, Neutral). При безусловной переадресации вашего письма из одной почтовой системы в другую может возникнуть проблема, так как SPF проверяет только последний «хоп».
- Рекомендуется создавать SPF-записи для всех доменов второго уровня, которые принадлежат вам или вашей компании, даже если вы не отправляете от их имени письма. Для таких доменов желательно использовать простую запись «v=spf1 -all», которая говорит, что никто не можем отправлять письма от этих доменов.
- Домены третьего уровня защитить можно с помощью wildcard-записи типа «*.example.com. IN TXT «v=spf1 -all»». Но, обратите внимание на то, что wildcard работает только для несуществующих поддоменов. Например, если у вас есть поддомен moscow.example.com с MX-записями, запись «*.example.com. IN TXT «v=spf1 -all»» не будет на нее распространяться. Подробнее описано в статье на Wikipedia и RFC 1034.
Moreover, the wildcard is matched only when a domain does not exist, not just when there are no matching records of the type that has been queried for. Even the definition of «does not exist» as defined in the search algorithm of RFC 1034 section 4.3.2 can result in the wild card not matching cases that one might expect with other types of wildcards.
- SPF-записи рекомендуется создавать не только для доменов, но и для почтовых серверов, которые занимаются отправкой писем в интернет. Это необходимо, чтобы пройти HELO/EHLO Test принимающего сервера. Стандартная запись: «mx.example.com. IN TXT «v=spf1 a -all»».
- Если у вас много доменов, которые обслуживаются несколькими основными MX-серверами, то советую использовать механизм «redirect». Например, основной домен «example.com» имеет SPF-запись «v=spf1 +a +mx -all», то остальным доменам (example1.com, example2.com и т.д.), для упрощения обслуживания, можно прописать запись «v=spf1 redirect=example.com».
- Если у вас много доменов и много почтовых серверов отправителей, распределенных географически и организационно, то можно использовать механизм «include» и отдельную зону «_spf.example.com». Как пример можно посмотреть запись для домена gmail.com – «v=spf1 redirect=_spf.google.com».
- Кроме защиты своих доменов рекомендуется защитить свою почтовую систему и пользователей, включив проверку SPF/DKIM/DMARC записей на ваших внешних почтовых серверах. Это будет хорошим дополнением даже для таких мощных программно-аппаратных комплексов, как Cisco IronPort.
- Как только полностью разберетесь с SPF, советую изучить вопрос подписи ваших электронных писем с помощью технологии DKIM и политики DMARC, это существенно увеличит репутацию ваших исходящих писем.
Товарищи айтишники, не подставляйте себя и свою компанию – установите SPF-записи для всех своих доменов и MX-серверов.
Полезные сервисы
Тестирование SPF-записи
Анализ письма анти-спам фильтром SpamAssassin
Много полезных тестов (MX, SPF, Blacklist, DKIM Lookup и т.д.)
Проверка репутации почтовых серверов и доменов
Проверка домена и серверов-отправителей (здесь вы увидите кто отправляет письма от имени вашего домена)
MS Sender ID Framework SPF Record Wizard