URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88138
[ Назад ]

Исходное сообщение
"Интересный СПАМ"

Отправлено osiris , 12-Фев-10 14:53 
Добрый день. Помогите разобраться со СПАМ-ерским письмом которое, как по мне, имеет интересное содержание.

Суть:
- есть большая корпоративная сеть с таким почтовым сервером Postfix+Amavisd-new+Spamassassin+CommuniGate.
- Пользователю «А» пришло спамерское письмо которое было адресовано пользователю «В»
- Пользователь  «В» понятное дело это письмо не отсылал, и это видно из заголовка письма так как первый   Received это какой-то интернет сервер.
- Интересно то что и отправитель письма и получатель письма пользователь «B»
- А самое интересное что в X-Spam-Status пишется что срабатывает правило USER_IN_WHITELIST_TO. Но вот в конфиге Spamassassin пользователь «В» не прописан в белом списке.

Само письмо и конфиги выложены ниже. Название своего сервера и пользователей я заменил на myserver и «А», «В», «С».

Не могу понять почему на письмо сработало правило USER_IN_WHITELIST_TO и почему оно пришло пользователю «А» которого вообще нет в заголовке.

ЗАГОЛОВОК ПИСЬМА:

Return-Path: <mootermk@sendsmtp.com>

Received: from [123.44.55.66] (HELO relay.myserver.com)
  by myserver.com (CommuniGate Pro SMTP 4.2.10)
  with ESMTP id 10124872; Tue, 02 Feb 2010 23:14:28 +0200

Received: from localhost (localhost [127.0.0.1])
    by relay.myserver.com (Postfix) with ESMTP id BF989E0051;
    Tue,  2 Feb 2010 23:14:28 +0200 (EET)

Received: from relay.myserver.com ([127.0.0.1])
by localhost (relay [127.0.0.1]) (amavisd-new, port 10024) with ESMTP
id 30727-12; Tue,  2 Feb 2010 23:14:26 +0200 (EET)

Received: from host-81-190-2-17.gdynia.mm.pl (host-81-190-2-17.gdynia.mm.pl [81.190.2.17])
    by relay.myserver.com (Postfix) with ESMTP id 266F7E004F;
    Tue,  2 Feb 2010 23:14:25 +0200 (EET)

Received: from 81.190.2.17 by vanitysmtp.changeip.com; Tue, 2 Feb 2010 22:13:48 +0100

Message-ID: <000d01caa44c$9c930130$6400a8c0@mootermk>

From: B@myserver.com
To: <B@myserver.com>

Subject: I'll like you? Remember that night in the hotel?
Date: Tue, 2 Feb 2010 22:13:48 +0100
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="----=_NextPart_000_0007_01CAA44C.9C930130"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.3790.1830
X-MimeOLE: Produced By Microsoft MimeOLE 6.00.3790.1830
X-Virus-Scanned: by amavisd-new at relay.myserver.com
X-Spam-Status: No, hits=-45.606 tagged_above=-100 required=9.5 tests=BAYES_99,
DCC_CHECK, DIGEST_MULTIPLE, HELO_DYNAMIC_IPADDR, HTML_80_90, HTML_MESSAGE,
INFO_TLD, NO_REAL_NAME, RAZOR2_CF_RANGE_E8_51_100, RAZOR2_CHECK,
RCVD_IN_BL_SPAMCOP_NET, RCVD_IN_SORBS_DUL, RCVD_IN_SORBS_WEB, RCVD_IN_XBL,
UNPARSEABLE_RELAY, URIBL_AB_SURBL, URIBL_JP_SURBL, USER_IN_WHITELIST_TO
X-Spam-Level:


Основные моменты amavisd.conf:

$sa_local_tests_only = 0;   # (default: false)
$sa_mail_body_size_limit = 1024*1024;  
$sa_tag_level_deflt  = -100.0;
$sa_tag2_level_deflt = 9.5;
$sa_kill_level_deflt = 9.5;
$sa_spam_subject_tag = '***** SPAM ***** ';    
$sa_spam_modifies_subj = 1;
$sa_debug = 1;

Основные моменты Local.cf:

use_razor2 1
use_bayes 1
bayes_auto_learn 0
bayes_path /var/spool/amavis/.spamassassin/bayes
bayes_auto_learn_threshold_nonspam 0
bayes_auto_learn_threshold_spam 20.0
use_pyzor 0
ok_locales              all
razor_config            /var/spool/amavis/.razor/razor-agent.conf

whitelist_to            C@myserver.com
whitelist_to            D@myserver.com
whitelist_to            F@myserver.com

score USER_IN_WHITELIST_TO      -100.000


Содержание

Сообщения в этом обсуждении
"Интересный СПАМ"
Отправлено PavelR , 12-Фев-10 14:56 
>Не могу понять почему на письмо сработало правило USER_IN_WHITELIST_TO и почему оно
>пришло пользователю «А» которого вообще нет в заголовке.

Рассмотрим бумажный конверт. На нем написан адрес: город Лупкино, улица Бабкина, Васе Пупкину.

А внутри письма - "Здравствуй, дорогой Петя Иванов".


----

Так и тут, при отправке письма сервер сначала говорит кому это письмо (конверт), а затем уже кидает содержимое (внутри письма).


"Интересный СПАМ"
Отправлено osiris , 12-Фев-10 15:01 
>Так и тут, при отправке письма сервер сначала говорит кому это письмо
>(конверт), а затем уже кидает содержимое (внутри письма).

Отправитель говорит что письмо
From: B@myserver.com
To: <B@myserver.com>

Внутри письма спам, что не интересно. А вот почему оно попало пользователю A@myserver.com при полном отсутствии его в заголовке это не понятно.


"Интересный СПАМ"
Отправлено valentine31 , 12-Фев-10 16:01 
PavelR - все внятно объяснил. Есть заголовок письма и есть конверт, они могут быть различны.

"Интересный СПАМ"
Отправлено Golub Mikhail , 12-Фев-10 16:07 
>PavelR - все внятно объяснил. Есть заголовок письма и есть конверт, они
>могут быть различны.

Посмотрите лог по данному письму и вы все поймете.
Там будет реальный адрес получателя и отправителя.


"Интересный СПАМ"
Отправлено osiris , 12-Фев-10 16:09 
>PavelR - все внятно объяснил. Есть заголовок письма и есть конверт, они
>могут быть различны.

А разве почтовые сервера определяют дальнейший маршрут письма не по заголовку???


"Интересный СПАМ"
Отправлено Etch , 12-Фев-10 17:05 
>А разве почтовые сервера определяют дальнейший маршрут письма не по заголовку???

Сюрприииз :)
Гуглить: протокол smtp


"Интересный СПАМ"
Отправлено DN , 12-Фев-10 17:12 
>>PavelR - все внятно объяснил. Есть заголовок письма и есть конверт, они
>>могут быть различны.
>
>А разве почтовые сервера определяют дальнейший маршрут письма не по заголовку???

По заголовкам на конверте, проставленные MTA .
Загловки Mail user agent (MUA)  From: , To: для человека больше служат.

http://www.soslan.ru/tcp/tcp28.html


"Интересный СПАМ"
Отправлено Vitaly_loki , 12-Фев-10 21:12 
>>Так и тут, при отправке письма сервер сначала говорит кому это письмо
>>(конверт), а затем уже кидает содержимое (внутри письма).
>
>Отправитель говорит что письмо
>From: B@myserver.com
>To: <B@myserver.com>
>
>Внутри письма спам, что не интересно. А вот почему оно попало пользователю
>A@myserver.com при полном отсутствии его в заголовке это не понятно.

Потому что во время smtp-сессии клиент сказал так:

EHLO blah-blah-blah
MAIL FROM:<blah-blah@domain.com>
RCPT TO:<A@myserver.com>     <-- вот оно

,а затем

DATA
From: B@myserver.com
To: <B@myserver.com>
Subject

spam
.
--
Все что до DATA - это конверт, все что после, но до пустой строки - заголовки письма (используются в почтовых клиентах для удобства, сортировки и т.д.). После пустой строки - текст письма


"Интересный СПАМ"
Отправлено osiris , 13-Фев-10 13:28 
время smtp-сессии клиент сказал так:
>
>EHLO blah-blah-blah
>MAIL FROM:<blah-blah@domain.com>
>RCPT TO:<A@myserver.com>     <-- вот оно
>

А почему этот адрес не указывается в заголовке письма?



"Интересный СПАМ"
Отправлено Vitaly_loki , 13-Фев-10 15:56 
>А почему этот адрес не указывается в заголовке письма?

Osiris, еще разок... внимательней будьте. Объясняю... Клиент соединяется на 25 TCP/порт с вашим SMTP-серверов. После приглашения (код сообщения 220), клиент представляется:

EHLO domain.name

сервер отвечает ему:
250-сообщение какое-нить

затем клиент начинает говорить от имени кого он отправляет почту, этот адрес будет использоваться для ответа в случае неудачной доставки:

MAIL FROM:<user@domain.com>

Затем клиент говорить КОМУ он отправляет почту, это РЕАЛЬНЫЙ адрес доставки или алиас (псевдоним), вот именно на основании этого параметра SMTP-сервер маршрутизирует (кладет в ящик и т.д.) почту:

RCPT TO:<user@localdomain.com>

Это всё был конверт письма. Дальше начинает передача содержимого письма, то что вкладывается в конверт:

DATA
и тут начинаешь писать какие хочешь заголовки
From: Bill Gates <Bill.Gates@microsoft.com>
To: Petya Ivanov <non-existent@yandex.ru>
Subject: Forged headers
X-Comment:

После пустой строки начинается текст письма, а предложение состоящее из одной точки заканчивает текст письма и говорит SMTp-серверу отправить письмо
.

QUIT


Вот Вам такое письмо придет, и там будет написано, что его отправил Билл Гейтс и вообще на яндекс.ру, а не Ваш домен, но пришло оно все-таки Вам... Потому что (еще раз повторю) SMTP-сервер пересылает письма, основываясь на аргументах RCPT TO:<> и MAIL FROM:<>, то что идет после DATA это просто текст письма, там можно что угодно написать, именно их показывают Thunderbird, Outlook и т.д. Надеюсь понятно объяснил

Вот как это в реальности работает:

> telnet localhost 25

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.testdomain.org ESMTP MeTA1-1.0.PreAlpha32.0
ehlo localhost
250-smtp.testdomain.org ESMTP Hi there
250-PIPELINING
250-STARTTLS
250-AUTH LOGIN PLAIN GSSAPI DIGEST-MD5 CRAM-MD5
250-SIZE 10485760
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-XVERP
250 HELP
MAIL FROM:<vit@remotedomain.ru>
250 2.1.0 Sender ok
RCPT TO:<vit@testdomain.org>
250 2.1.5 Recipient ok

DATA
354 Go
From: Bill Gates <Bill.Gates@microsoft.com>
To: Petya Ivanov <non-existent@yandex.ru>
Subject: Forged headers

message text
.
250 2.0.0 got it id=S000000000000006A00
quit
221 2.0.0 Bye
Connection closed by foreign host.


"Интересный СПАМ"
Отправлено osiris , 13-Фев-10 18:22 
Vitaly_loki, спасибо за столь детальный ответ. Все, я понял. Просто раньше думал что адреса на "конверте" тоже указываются в заголовках.

На счет этого я знаю, сам так не раз почту отправлял:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.testdomain.org ESMTP MeTA1-1.0.PreAlpha32.0
ehlo localhost
250-smtp.testdomain.org ESMTP Hi there
250-PIPELINING
250-STARTTLS
250-AUTH LOGIN PLAIN GSSAPI DIGEST-MD5 CRAM-MD5
250-SIZE 10485760
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-XVERP
250 HELP
MAIL FROM:<vit@remotedomain.ru>
250 2.1.0 Sender ok
RCPT TO:<vit@testdomain.org>
250 2.1.5 Recipient ok

DATA
354 Go
From: Bill Gates <Bill.Gates@microsoft.com>
To: Petya Ivanov <non-existent@yandex.ru>
Subject: Forged headers

message text
.
250 2.0.0 got it id=S000000000000006A00
quit
221 2.0.0 Bye
Connection closed by foreign host.

Тогда получается что реального отправителя (тот который на конверте) можно найти только в логах (/var/log/mail)?

И всетки если уж письмо попало A@myserver.com то почему на него сработало правило USER_IN_WHITELIST_TO в SpamAssassin? Ведь такой пользователь не прописан в белом списке.


"Интересный СПАМ"
Отправлено Vitaly_loki , 13-Фев-10 20:53 
>Тогда получается что реального отправителя (тот который на конверте) можно найти только
>в логах (/var/log/mail)?

Совершенно верно, но не только. К примеру, sendmail добавляет аргумент RCPT TO:<> в заголовок конверта (но делать это не обязан, потому некоторые MTA это не делают):

Return-Path: <vit@testdomain.org>
Received: from localhost (localhost [127.0.0.1])
        by smtp.testdomain.org (8.14.3/8.14.3) with ESMTP id o1DHeQi4001443
        for <vit@testdomain.org>; Sat, 13 Feb 2010 22:40:40 +0500 (YEKT)

Видите "for <vit@testdomain.org>"? Это и есть аргумент RCPT TO:<> А реальный отправитель это "Return-Path: <vit@testdomain.org>", т.е. то, что клиент указал в MAIL FROM:<>.
>И всетки если уж письмо попало A@myserver.com то почему на него сработало
>правило USER_IN_WHITELIST_TO в SpamAssassin? Ведь такой пользователь не прописан в белом
>списке.

Вот тут точно не могу сказать, с SA не работал, но подозреваю, что B@myserver.com в белом списке, а SA видимо смотрел именно заголовки. Это мое предположение


"Интересный СПАМ"
Отправлено osiris , 13-Фев-10 21:09 
>Совершенно верно, но не только. К примеру, sendmail добавляет аргумент RCPT TO:<> в заголовок конверта

Спасибо, теперь я разобрался почему письмо попало пользователю A@myserver.com а не B@myserver.com

>Вот тут точно не могу сказать, с SA не работал, но подозреваю,
>что B@myserver.com в белом списке, а SA видимо смотрел именно заголовки.
>Это мое предположение

Основные моменты Local.cf:

use_razor2 1
use_bayes 1
bayes_auto_learn 0
bayes_path /var/spool/amavis/.spamassassin/bayes
bayes_auto_learn_threshold_nonspam 0
bayes_auto_learn_threshold_spam 20.0
use_pyzor 0
ok_locales              all
razor_config            /var/spool/amavis/.razor/razor-agent.conf

whitelist_to            C@myserver.com
whitelist_to            D@myserver.com
whitelist_to            F@myserver.com

score USER_IN_WHITELIST_TO      -100.000

В белом списке нет пользователей "A" и "B"