Проверка защиты почты от подделки¶
Протокол SMTP не проверяет поле «От кого». Письмо с адресом домена компании может отправить любой сервер, если домен не опубликовал политику, по которой почтовые системы отличают настоящие письма от поддельных. Такие письма используют для фишинга и подмены платёжных реквизитов.
Защиту задают три записи в DNS домена.
SPF, DKIM, DMARC¶
SPF (RFC 7208) перечисляет серверы, которым разрешено отправлять почту от имени домена.
Пример: v=spf1 include:_spf.yandex.net -all. Окончание -all запрещает отправку остальным
серверам, ~all помечает их письма как подозрительные.
DKIM (RFC 6376) подписывает письма. Открытый ключ публикуется в DNS под именем
селектор._domainkey.домен. Минимальная длина ключа RSA 1024 бита, рекомендуемая 2048
(RFC 8301).
DMARC (RFC 7489) определяет, что делать с письмом, не прошедшим SPF и DKIM:
| Политика | Поддельное письмо |
|---|---|
| записи нет | доставляется |
p=none |
доставляется, владелец домена получает отчёт |
p=quarantine |
помещается в спам |
p=reject |
отклоняется |
В выборке из 284 сайтов крупных российских компаний запись DMARC удалось прочитать у 275
доменов. У 22 записи не было, у 44 была политика p=none.
Ручная проверка¶
nslookup -type=TXT _dmarc.example.ru
nslookup -type=TXT example.ru
Первая команда показывает DMARC, вторая среди прочего SPF. Защищённым считается домен с
p=quarantine или p=reject и SPF, оканчивающимся на -all или ~all.
Проверка с помощью Suveren¶
pip install suveren
suveren scan example.ru --checks mail
Проверяются SPF (синтаксис, политика all, лимит в 10 DNS-запросов), DMARC (политика, pct,
адреса отчётов), DKIM (ключи и их длина), MTA-STS и TLS-RPT. Итоговая проверка
SUV-MAIL-001 отвечает, можно ли отправить письмо от имени домена: да, частично или нет.
Проверки почты читают публичные записи DNS. MTA-STS дополнительно загружает файл политики с
поддомена mta-sts, как это делает почтовый сервер.
Список DKIM-ключей домена нельзя получить из DNS, поэтому Suveren перебирает распространённые
селекторы. Собственный селектор указывается параметром --dkim-selector; его значение есть в
заголовке DKIM-Signature любого исходящего письма, поле s=.
suveren scan example.ru --checks mail --dkim-selector mail2024
Порядок включения защиты¶
- SPF: перечислить все сервисы, отправляющие почту от имени домена (почтовый сервис, сервис рассылок, CRM, сайт).
- DKIM: включить подпись в каждом из этих сервисов и опубликовать ключи.
- DMARC: опубликовать
p=noneс адресом отчётовrua=mailto:…и в течение двух-четырёх недель проверять отчёты на неучтённые источники. - Перевести политику на
p=quarantine, затем наp=reject.
Включение p=reject без этапа наблюдения может привести к потере писем из сервисов, не
указанных в SPF и не подписывающих почту DKIM.
Перечень проверок SUV-MAIL-*: Проверки, раздел «Защита почты».