Чому в Ощадбанку некоректна SPF-запис для домену?

Коротко: у основного домену Ощадбанку (sberbank.ru) некоректна SPF-запис. Це призводить до того, що у зловмисників є можливість робити фальшиві розсилки електронної пошти від імені Ощадбанку. Сама запис налаштована добре, годно, але з помилкою, зводить до нуля всі зусилля.

> host -t txt sberbank.ru
sberbank.ru descriptive text "v=mx spf1 mx:shark11.sberbank.ru mx:shark12.sberbank.ru mx:shark13.sberbank.ru mx:shark14.sberbank.ru mx:email1.sberbank.ru -all"

Ну, а для тих хто подужає прочитати — ласкаво просимо під кат.

Навіщо потрібен SPF?

SPF допомагає боротися з підробкою адрес відправника. Не плутайте SPF c DMARC, SPF дозволяє встановити, чи міг даний IP-адресу відправляти пошту від імені ось того домену (з підтримкою цілого ряду виключень і реверансів).

Існує думка, що SPF не потрібен і шкідливий, однак як показує практика, SPF на сьогодні є основний механізм в DMARC і поки на горизонті нічого подібного немає.

Як це працює?

Поштовий сервер, приймаючи пошту, дивиться на адресу відправника, а потім йде і запитує домену відправника особливі записи, де на хитрому мовою сформульовано, який IP може надсилати пошту цього домену, а який ні. В результаті приймається рішення, приймати чи цей лист чи ні, а може бути взяти і порахувати спамом.

І що, реально працює?

Ну, загалом, не зовсім. Спочатку в SPF був передбачений тип запису, який дозволяє робити Softfail. Це як би косяк, але пробачити. Тобто, я кажу, що пошта від мого домену може йти з цих адрес, тоді вона точно нормальна. І якщо з якихось інших, то це нічого, можна пробачити.

Ось ця извинительная приписка взагалі на сьогодні практично зводить до нуля толк від SPF, оскільки спамери часто в цю извинительную приписку потрапляють.

У чому Ощадбанк молодець?

А в тому, що у них запис містить -all, це як раз недопущення извинительного Softfail. Тобто, хлопці з Ощад як би говорять нам, що пошта від них може йти тільки з заданих адрес і ніяк інакше. Молодці, це здорово.

А в чому ж Ощадбанк помилився?

А в тому, що запис у них сформульована неправильно. Це викликає помилку Permerror, і тоді у більшості поштових систем запис навіть не перевіряється, а лист просто пропускається.

Погодьтеся, нерозумно робити -all, жорстку запис і при цьому допускати помилку, роблячи всю запис некоректною.

Та де ж помилка?

RFC 7208 вводить деякі обмеження на кількість DNS-запитів, які повинен зробити поштовий сервер, щоб отримати потрібні дані в SPF. Воно ж саме RFC обмежує кількість запитів з порожнім результатом або помилкою.

Розбираємо запис:

"v=mx spf1 mx:shark11.sberbank.ru mx:shark12.sberbank.ru mx:shark13.sberbank.ru mx:shark14.sberbank.ru mx:email1.sberbank.ru -all"
 


0. v=spf1
Версія SPF-запису, тобто синтаксис

1. mx
Пошту від домену sberbank.ru можуть подавати лише ті сервери, що перераховані, як MX

> host -t mx sberbank.ru
sberbank.ru mail is handled by 50 shark11.sberbank.ru.
sberbank.ru mail is handled by 50 shark14.sberbank.ru.
sberbank.ru mail is handled by 50 email1.sberbank.ru.
sberbank.ru mail is handled by 50 shark12.sberbank.ru.
sberbank.ru mail is handled by 50 shark13.sberbank.ru.


Добре, бачимо ці п'ять серверів.

2. mx:shark11.sberbank.ru
Пошту від домену sberbank.ru можуть відправляти ті сервери, що перераховані, як MX для домену shark11.sberbank.ru

СТОП! Ще раз.

Пошту від домену sberbank.ru можуть відправляти ті сервери, що перераховані, як MX для домену shark11.sberbank.ru

> host -t mx shark11.sberbank.ru
shark11.sberbank.ru has no MX record


І ось цей результат зараховується, як порожній. А за RFC, після перших двох таких помилок треба припинити аналізувати SPF-запис і порахувати її помилковою. Що і відбувається.

Коротше кажучи, хлопці трохи перестаралися.

Як треба було зробити?

"v=spf1 mx -all"
 


А може колеги зробили краще?

Насправді, сам Ощадбанк рідко шле листи, вірніше, в нашій поштовій системі їх, наприклад, не так багато. Набагато більше їх надходить від майданчика «Сбербанк-АСТ», давайте подивимося туди.

> host -t txt sberbank-ast.ru
sberbank-ast.ru descriptive text "v=mx spf1 a:mail2.sberbank-ast.ru a:mail3.sberbank-ast.ru a:mail4.sberbank-ast.ru a:gw.sberbank-ast.ru a:mail7.sberbank-ast.ru ~all"

А тут, на жаль, Softfail. Що зводить до нуля цінність SPF-запису.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.