предисловие
Давным-давно было электронное письмо от белого человека, в котором говорилось, что доменное имя, на которое мы отправляли электронные письма, не проходило проверки безопасности, поэтому давайте восполним соответствующие проверки безопасности:
I'm an independent cyber security researcher i have found multiple issues in your website.
Vulnerability : Missing SPF
I am just looking at your SPF records then found following. SPF Records missing safe check which can allow me to send mail and phish easily any victim.
PoC:
<?php
$to = "VICTIM@example.com";
$subject = "Password Change";
$txt = "Change your password by visiting here - [VIRUS LINK HERE]l";
$headers = "From: https://karve.io";
mail($to,$subject,$txt,$headers);
?>
SPF record lookup and validation for: xxx.com
Проверив это позже, я обнаружил, что это действительно так: наши электронные письма не прошли соответствующих проверок безопасности, и они были легко отправлены другими, что может привести к серьезному мошенничеству с электронной почтой для наших пользователей.
Опасности отправки мошеннических писем
Например, хакеры могут пройти через этот сайтemkei.czВыдавать себя за наш официальный почтовый ящик службы поддержки для отправки пользователям фишинговых писем. Если пользователь верит правде, это нанесет ущерб интересам пользователя, что является мошенничеством с электронной почтой.
В это время наши пользователи получат это поддельное электронное письмо.Если пользователь поверит в это, мошенники легко смогут его использовать.
Так что опасность мошенничества с электронной почтой по-прежнему очень высока. Эта проблема безопасности должна быть решена как можно скорее.
Недостатки электронной почты
При решении этой проблемы нам нужно понять, почему у электронной почты такая проблема?
Основой системы электронной почты является простой протокол передачи почты (Simple Mail Transfer Protocol).Simple Mail Transfer Protocol
, SMTP
), SMTP — это интернет-стандарт для отправки и ретрансляции электронной почты.SMTP
Шифрование почты, проверка целостности и проверка личности отправителя не поддерживаются.
Из-за этих недостатков информация электронной почты отправителя может быть перехвачена слушателями при передаче по сети для чтения содержимого сообщения, что приводит к утечке конфиденциальной информации, а также может подвергаться атакам «человек посередине» (Man-in-the-Middle attack
, MitM
) приводит к фальсификации сообщений электронной почты и фишинговым атакам.Чтобы решить эти проблемы безопасности и справиться со все более сложной сетевой средой, сообщество электронной почты разработало множество расширений электронной почты, таких какSTARTTLS
, S/MIME
, SPF
, DKIM
иDMARC
и т.п. соглашение. Большинство современных производителей почтовых услуг также используют одну или несколько комбинаций вышеперечисленных расширенных протоколов, дополненных межсетевыми экранами приложений, байесовскими спам-фильтрами и другими технологиями, чтобы компенсировать недостатки безопасности электронной почты.
вы можете понять это какSMTP
Что-то не так с собой, а конфиденциальности и безопасности не хватает, поэтому есть еще несколько плагинов ему в помощь:
- Повышение конфиденциальности передачи, включая сквозное шифрование -->
STARTTLS
,S/MIME
- Аутентификация по электронной почте -->
SPF
,DKIM
,DMARC
Суть мошенничества с электронной почтой заключается в том, что получатель электронной почты не может определить, является ли источник электронной почты законным или нет. Итак, здесь идет аутентификация по электронной почте. и хотяSTARTTLS
иSMTP-STS
Он обеспечивает шифрование электронных писем во время передачи и предотвращает прослушивание и чтение, но все же не может решить проблемы подделки личности отправителя и фальсификации сообщений. Поэтому аутентификация электронной почты особенно важна.
Поэтому в этом разделе основное внимание уделяетсяSPF
, DKIM
,DMARC
Три протокола настроены и практикуются вместе с нашим сайтом.
SPF
Концепция SPF
Структура политики отправителя (Sender Policy Framework
, SPF
) — это метод обнаружения мошенничества с электронной почтой, который удостоверяет личность отправителя электронной почты по IP-адресу и является очень эффективным решением для борьбы со спамом. SPF позволяет организации авторизовать список хостов для отправки почты для своего домена, а запись SPF, хранящаяся в DNS, представляет собой запись ресурса TXT, которая определяет, каким почтовым серверам разрешено отправлять электронную почту от имени домена. SPF не позволяет спамерам отправлять электронные письма, подделывающие адрес отправителя в этом домене, а получатели проверяют запись SPF домена, чтобы определить, поступает ли почта, якобы отправленная из этого домена, с авторизованного почтового сервера. Если это так, то оно будет считаться обычным письмом, в противном случае оно будет расценено как поддельное письмо и будет возвращено. SPF также позволяет организации делегировать часть или всю свою политику SPF другой организации, обычно путем делегирования настроек SPF поставщику облачных служб.
Проще говоря, этот протокол должен проверить исходный IP-адрес почтового ящика, а затем сопоставить информацию spf, записанную в txt, в его dns.Если он найден, он является законным. Если он не найден, существует проблема с источником электронной почты. В настоящее время получатель общего почтового ящика будет иметь три метода обработки:
- напрямую отклонить или удалить
- считается мусором
- Обычный инбокс, а на почте он будет? и другие предупреждения, говорящие получателю, что истинная личность сообщения не может быть проверена
Что касается того, какие из них, разные получатели почтовых ящиков имеют разные политики. Следующая картинка (веб-изображение) говорит об этом очень ясно:
Настройки SPF
Настройка SPF очень проста, вы можете настроить ее прямо на публичном dns. Поскольку доменное имя dns нашего сайта установлено на маршрутизаторе 53 aws. А потому, что существует два типа почтовых ящиков для отправки почты:
- отправка напоминаний по электронной почте
no-reply
Почтовый ящик, этот тип почты отправляется службой ses aws, и автоматически отправляется программой - Почтовые ящики поддержки и продажи для отправки маркетинговых писем, этот тип почтовых ящиков представляет собой почтовые ящики gmail, которые отправляются вручную
Итак, два доменных имени, ses и google, должны быть настроены, так что мы находимся вrouter 53
существуетxxx.com
В этом доменном имени второго уровня добавьте эту запись к исходной записи TXT:
"v=spf1 include:_spf.google.com include:amazonses.com -all"
Таким образом настраивается SPF. Это очень просто.
Проверьте, действует ли SPF.
После настройки мы проверяем, действительно ли SPF действует, и используем тот жеemkei.czЭтот сайт отправляет мошенническое электронное письмо на gmail, и вы можете видеть, что оно было получено:
Письмо получено, но вроде ничем не отличается от no configuration??? На самом деле нет, давайте откроем显示原始邮件
посмотри
Нашла подсказку, источник письма (emkei.cz
) IP-адрес93.99.104.21
, а затем получатель почты gmail использует SPF для поиска конфигурации SPF доменного имени нашего сайта и обнаруживает, что этот ip не существует_spf.google.com
иamazonses.com
На всех айпи под баннером. Так что проверка SPF не проходит. Для получателя почты gmail, если проверка SPF не удалась, будет предложен вопросительный знак, указывающий, что gmail не может проверить правильный источник почты, и пользователям следует быть осторожными.
Понимание настройки «все» в SPF
SPF имеет ряд различных настроек, и 98% доменов используют ~all (softfail), что означает, что если запись spf не соответствует исходному почтовому серверу, почта идентифицируется как программный сбой. Следующая таблица покажет разницу всех в SPF:
параметр | результат | значение |
---|---|---|
+all | pass | Разрешает всю почту, вроде ничего не настроил. |
-all | fail | Будет помечать электронное письмо как пропущенное только в том случае, если исходный почтовый сервер точно соответствует, IP, MX и т. Д. С записью SPF. |
~all | softfail | Позволяет отправить электронное письмо, и если что-то не так, пометит его как softfail. |
?all | neutral | Без политики |
И то, что мы устанавливаем, прямо настроено на провал-all
Проверьте правильность SPF
После настройки мы также можем использовать некоторые внешние сайты инструментов, чтобы определить, является ли наша конфигурация SPF нормальной:tools.wordtothewise.com/spfЭтот сайт покажет обзор всех IP-адресов, которые могут быть отправлены с использованием доменного имени.
То есть, если исходный IP-адрес отправителя отсутствует в этих списках IP-адресов. Тогда тест SPF не пройдет. станет НЕУДАЧНЫМ.
Настройки DKIM
Хоть и ставим SPF, но результат тоже виден, хотя в почтовых реквизитах отмеченыFail
, но пользователь все равно ее получил, и она находится в обычном почтовом ящике, но рядом стоит знак вопроса (на самом деле у разных почтовых получателей разные методы обработки проверки SPF не проходят, а некоторые помещаются в корзину), Но это все равно будет обманом для некоторых неосторожных пользователей. Поэтому нам необходимо усилить аутентификационную часть. Также есть настройки DKIM.
Концепция ДКИМ
DKIM DomainKeys Идентифицированный почтовый стандарт (Domain Keys Identified Mail
) — это метод обнаружения мошенничества с электронной почтой, который проверяет, является ли сообщение поддельным или подделанным, путем проверки заголовков сообщений, подписанных с домена.
DKIM использует принцип зашифрованной подписи и проверки. Когда отправитель отправляет электронное письмо, поле подписи, зашифрованное с помощью закрытого ключа, связанного с доменным именем, вставляется в заголовок сообщения. После получения электронного письма получатель получает открытый ключ отправителя через DNS.(DNS TXT记录
), подпись может быть проверена для определения подлинности адреса отправителя и сообщения.Следует отметить, что DKIM может только проверить подлинность источника адреса отправителя, но не может идентифицировать подлинность содержания электронной почты. В случае недействительных или отсутствующих криптографически подписанных сообщений DKIM не может указать, какое действие должен предпринять получатель.Кроме того, подписи с закрытым ключом универсальны для всей исходящей почты с этого домена, и DKIM подписывает почту на сервере ретрансляции почты. вместо реального отправителя почты, что означает, что DKIM не обеспечивает истинную сквозную аутентификацию электронной подписи.
Проще говоря, электронное письмо, отправленное с помощью DKIM, включаетDKIM-Signature
Поле заголовка, содержащее зашифрованное подписанное представление сообщения (с закрытым ключом внутри). Провайдер, получающий почту, может расшифровать подпись с помощью открытого ключа (который находится в записях DNS отправителя). Поставщики электронной почты затем используют эту информацию, чтобы определить, является ли сообщение подлинным.
Например, когда мы отправляем электронные письма с помощью обычного gmail или ses, мы шифруем электронную почту с помощью автоматически сгенерированного закрытого ключа, связанного с доменом, генерируем подпись DKIM-Signature, а затем вставляем подпись DKIM-Signature и соответствующую информацию в заголовок электронной почты. , отправить Получателю, когда получатель получает электронное письмо, он получает открытый ключ с помощью DNS-запроса, чтобы проверить действительность подписи DKIM электронного письма, тем самым подтверждая, что электронное письмо защищено от подделки и целостность электронного письма содержание гарантировано. Таким образом, если мы можем использовать найденный открытый ключ для расшифровки информации о закрытом ключе в поле заголовка, это означает, что это правда.На самом деле это асимметричное сквозное шифрование, но мы раскрываем открытый ключ в поле заголовка. DNS TXT-запись доменного имени. , провайдера, который получает почту, можно найти в общедоступном Интернете. Следующая диаграмма поясняет процесс:
Настройки DKIM
На самом деле настройка заключается в том, чтобы установить открытый ключ в DNS TXT, потому что мы используем полезный сервис aws ses и gmail, поэтому нам нужно установить два типа:
Настройки SES DKIM
пройти черезАутентификация электронной почты с помощью DKIM в Amazon SESМы можем использовать самый простой способ, который предоставляет SES.Easy DKIMПроще говоря, нажмите на конфигурацию проверенного доменного имени, чтобы сгенерировать соответствующую конфигурацию DKIM, затем будут сгенерированы три записи cname, а затем поместите эти три записи cname в маршрутизатор 53.Настройте Easy DKIM для своего домена
Таким образом настраивается DKIM SES.
Конфигурация Gmail DKIM
Далее настраиваем Gmail.Gmail по умолчанию будет иметь настройки DKIM по умолчанию, но официальная рекомендация — использовать собственное доменное имя.В настоящее время Gmail также проверяется по нашему собственному доменному имени, а строка TXT-записей — это напрямую:
За полем p следует большой сегмент открытого ключа. Эта большая строка тоже генерируется автоматически, просто на фоне gmail:
- идти с
admin.google.com
используйте вашGoogle App
Войдите в аккаунт и введите фон, выберитеGoogle App
→Gmail
→Authenticate email
. Выберите свое доменное имя, чтобы сгенерировать открытый ключ. Как показано ниже
- Следуя сгенерированной информации, перейдите в свой DNS и добавьте запись TXT.
- назад
admin.google.com
Нажмите «Начать аутентификацию» на последней странице.
Таким образом, открытый ключ генерируется и вступает в силу.
Проверьте, работает ли DKIM
Отправьте обычное электронное письмо на мою электронную почту.Если DKIM настроен и успешно, PASS появится в деталях электронной почты.
На приведенном выше снимке экрана показано, что мы настроили DKIM, и проверка DKIM электронных писем, отправленных через правильный источник, проходит нормально.
Если это олицетворение, то это будет не ПРОШЕЛ, а НЕ ПРОШЕЛ.
И здесь следует отметить одну деталь: все ключи DKIM хранятся в поддомене с именем «_domainkey».
На скриншоте выше, учитывая поле подписи DKIMd=xxx.com,s=google
, DNS-запрос:google.domainkey.xxx.com
(или доменное имя domainkey, соответствующее ses),google.domainkey.xxx.com
Эта запись txt будет проанализирована на нашем маршруте 53, и информация об открытом ключе будет запрошена через заголовок почты и DNS.Если она совпадает с закрытым ключом отправляющей почты и передана, это может быть не спам.Если она не проходит , письмо может быть спамом или содержимое письма было изменено.
Настройки DMARC
Вообще говоря, установив SPF и DKIM, можно эффективно заблокировать поддельные электронные письма. Однако, поскольку разные производители электронной почты используют разные стратегии борьбы со спамом, будут определенные риски. Например, поддельное электронное письмо, Tencent и NetEase Способ борьбы с ним может быть отклонить его напрямую, и гмайл обычно все равно будет нормально заходить в почтовый ящик, но пройдет ли? подсказка, потому что источник сообщения не может быть определен. В этом случае предупреждение о риске легко проигнорировать, и будут большие скрытые опасности, которые приведут к обману некоторых пользователей.Учитывая масштабы использования gmail большинством наших пользователей, эту проблему все же необходимо полностью решить. решена. Путем дальнейшего понимания проблемы настроек безопасности почтового сервиса и обнаружил, что DMARC может просто решить нашу проблему. Мы ожидаем, что окончательный эффект заключается в том, что поддельное электронное письмо попадет в корзину или сразу отклонит его после прохождения проверки.
То есть, даже если мы настроили SPF и DKIM раньше, письма, которые не прошли, могут остаться в корзине или во входящих из-за отношений между разными производителями писем, но со знаками вопроса. Это все еще имеет некоторые риски. Поэтому нам нужна стратегия, чтобы сообщить получателю электронной почты, что если получено поддельное электронное письмо, следуйте указанной мной стратегии. Не идите в соответствии с вашими собственными предпочтениями. Это настройка DMARC.
Концепция DMARC
Общей проблемой в SPF и DKIM является отсутствие эффективных политик и механизмов обратной связи. Эти два протокола не определяют, как обрабатывать неаутентифицированные электронные письма от домена, который утверждает, что он размещен у третьей стороны. быть успехом или неудачей аутентификации домена.
Стандарт проверки подлинности, отчетности и соответствия почты на основе домена DMARC (Domain-based Message Authentication, Reporting, and Conformance
) используется для решения этих проблем в SPF и DKIM, основное назначение DMARC это установка "политики", эта политика содержит что делать при получении неаутентифицированной почты с определенного домена, первый авторизованный Что делать при сторонний провайдер отправляет неаутентифицированную почту. DMARC также позволяет интернет-провайдерам отправлять отчеты об успешной или неудачной аутентификации для домена, которые отправляются в «rua» (агрегированные отчеты) и «ruf» (криминалистический отчет). В то же время DMARC полагается на Запись SPF и ключ DKIM настроены потоком исходящей почты для обеспечения целостности источника и подписи почты. DMARC запускается, когда почта не проходит проверку SPF или DKIM. Стратегия.
Следующая диаграмма иллюстрирует этот процесс:
Общие параметры DMARC
Общие параметры конфигурации DMARC следующие:
- adkim: (обычный текст; необязательный; по умолчанию «r») Указывает, что владельцу домена требуется строгий или смягченный режим аутентификации DKIM, допустимые значения следующие:
r: relaxed mode
s: strict mode
- aspf: (обычный текст; необязательный; по умолчанию «r») Указывает, что владельцу домена требуется строгий или смягченный режим аутентификации SPF, допустимые значения следующие:
r: relaxed mode
s: strict mode
-
fo: параметры отчета об ошибках (обычный текст; необязательный; по умолчанию 0), список, разделенный двоеточиями, если «ruf» не указан, содержимое этого тега будет игнорироваться.
- 0: если все механизмы аутентификации не дают результата «пройдено», сгенерируйте отчет об ошибке DMARC;
- 1: если какой-либо механизм аутентификации выдает результат, отличный от «пройдено», сгенерируйте отчет об ошибке DMARC;
- d: если проверка подписи сообщения не удалась, то создается отчет об ошибке DKIM;
- s: если проверка сообщения SPF не удалась, создайте отчет об ошибке SPF.
-
p: Требуется политика получателя почты (обычный текст; обязательно) Указывает политику получателя в соответствии с запросом владельца домена.
- none: Владелец домена просит не предпринимать никаких конкретных действий.
- quarantine: владелец домена хочет, чтобы получатели почты помечали почту, не прошедшую проверку DMARC, как подозрительную.
- reject: владелец домена хочет, чтобы получатели почты отклоняли почту, не прошедшую проверку DMARC.
- pct: (обычное целое число 0-100; необязательно, по умолчанию 100) Процент сообщений в почтовом потоке владельца домена, к которым применяется политика DMARC.
- rf: формат, используемый для отчетов об ошибках для конкретных сообщений (список открытого текста, разделенного двоеточиями; необязательный; по умолчанию "afrf").
- ri: Требуемый интервал между сводными отчетами (простой текст, 32-разрядное целое число без знака; необязательно; по умолчанию 86400) Указывает, что интервал, требующий от получателей создания сводных отчетов, не превышает требуемого количества секунд.
- rua: адрес электронной почты для отправки подробного отзыва (список DMARC URI, разделенный запятыми, в виде обычного текста; необязательно)
- ruf: адрес электронной почты для отправки сведений о сообщении (разделенный запятыми список URI DMARC в виде обычного текста; необязательно)
- sp: политика, которую получатели электронной почты должны использовать для всех субдоменов (обычный текст; необязательно), по умолчанию политика, указанная «p», будет применяться к этому доменному имени и субдомену.
- v: Версия (простой текст; обязательно) со значением "DMARC1" и должна быть первой меткой.
Конфигурация DMARC
Конкретная конфигурация нашего сайта такая же на маршрутизаторе 53 (конфигурация google и ses одинакова, поэтому нам нужно настроить только одну), SES предоставляет конкретную конфигурациюСоответствие требованиям DMARC с использованием Amazon SES, например:
"v=DMARC1;p=quarantine;pct=25;rua=mailto:dmarcreports@example.com"
Проще говоря, эта политика предписывает провайдерам электронной почты делать следующее:
- Находит все электронные письма с доменом «От» example.com, которые не прошли проверку подлинности SPF или DKIM.
- По-другому отправить 25% электронной почты в папку для спама (вы также можете использовать P = None без каких-либо операций или использовать p = отклонить напрямую отказаться от почты).
- Отправьте отчет обо всех сообщениях электронной почты, которые не прошли проверку подлинности, в сводке (то есть отчет, в котором собраны данные за определенный период времени, а не отправляется отдельный отчет для каждого события). Поставщики электронной почты обычно отправляют эти агрегированные отчеты один раз в день, но конкретные политики зависят от поставщика.
Итак, наша конкретная конфигурация выглядит следующим образом:
_dmarc.xxx.com.
"v=DMARC1;p=reject;rua=mailto:dmarc-reports@xxx.com; adkim=s;aspf=s"
Указывает, что будут выполнены следующие действия:
- Строгая аутентификация с помощью SPF и DKIM
- Если проверка не пройдена, он откажется получать
- После отказа отправить отзыв на указанный адрес электронной почты
Если вы хотите проверить, соответствуют ли ваши SPF и DKIM DMARC, вы можете проверить это с помощью команды:
nslookup -type=TXT _dmarc.xxx.com
Видно, что проблем нет. Конечно, если DMARC не настроен,Помощник по настройкеможет помочь настроить:
Результаты теста DMARC
положить в мусорное ведро
Теперь, когда конфигурация завершена, ее можно протестировать дальше, и мы изменим стратегию, чтобы поместить ее в корзину (p=карантин), в это время пройтиemkei.czОтправленные электронные письма, в случае сбоя SPF, будут помещены в корзину.
отказаться принять
Если изменить его на отклонение (p=reject), электронное письмо будет отклонено напрямую, и каждый день в папку «Исходящие» будет отправляться возвращенное электронное письмо. Вот, например, если хакер подделывает электронное письмо и отправляет его пользователю, и он отклонен, то на наш обычный почтовый ящик, например, саппорт получит отчет о баунсе:
нормальный
Если нормально, то все три стратегии пройдут, т.к. у нас два источника отправки, значит надо пробовать оба
- Это серия писем без ответа от ses
- Это серия электронных писем службы поддержки Gmail.
Вы можете видеть, что идентификатор почты отличается, один ses, другой gmail
DMARC проверяет, в норме ли SPF и DKIM
Мы знаем, что при настройке DMARC, SPF и DKIM должны быть хорошо согласованы. Хотя пройти можноnslookup
. Но об этом можно судить и по некоторым внешним сторонним сайтам, например этомуDMARC Record Checker, Введите свое доменное имя, чтобы проверить, правильно ли настроен ваш DMARC.
Суммировать
С SPF + DKIM + DMARC наш сайт может очень хорошо решить проблему мошенничества с электронной почтой.
Наконец, поблагодарите Шули за тест и соответствующие тестовые данные. Больше хороших статей смотрите в моем блоге:kebingzao.com/
использованная литература
- Аутентификация электронной почты с помощью SPF в Amazon SES
- Аутентификация электронной почты с помощью DKIM в Amazon SES
- Соответствие требованиям DMARC с использованием Amazon SES
- How To use an SPF Record to Prevent Spoofing & Improve E-mail Reliability
- Исследование безопасности электронной почты на основе DANE
- Рекомендации DMARC
- Включить DMARC
- rfc6376
- www.dkim.org/
Инструмент для проверки SPF
- tools.wordtothewise.com/spf(покажет обзор всех ips, которые могут быть отправлены с использованием доменного имени)
- woohoo.kit tman.com/commodityroom/действителен в…(Краткий и эффективный, покажет записи и результаты dns: пройден, softfail, сбой, нейтральный и т. д.)
- mxtoolbox.com/(классический)
Инструмент тестирования DKIM
- dkimvalidator.com/(Вам необходимо отправить электронное письмо, если тест пройден, когда у вас будет конфигурация DKIM, вы сможете просмотреть возвращенные результаты в разделе DKIM на веб-сайте)
- А вот Ким core.org/tools/ может съесть…(Заполните селектор и доменное имя, чтобы проверить, вы можете проверить, правильно ли настроен процесс DKIM)
- www.hhlink.com/Обнаружение DKIM/1(Отправив ему электронное письмо, он может помочь вам проверить правильность SPF и DKIM)
Инструмент тестирования DMARC
- woooooooo.kit tman.com/D Marc/A Fourteen…(чтобы помочь вам лучше настроить DMARC)
- MalaysianCase.com/D Marc-INS PE…(показывает все ваши информационные поля DMARC)
Поддельное электронное письмо для отправки на тестовый сайт
- emkei.cz/(Отправлять все виды поддельных электронных писем)
- tool.Error.net/Продажи ленивым, это прикосновение...(Поддельная электронная почта, отправка электронной почты от любого отправителя, отправка электронной почты с поддельного адреса электронной почты, отправка электронной почты с любого адреса электронной почты)