[hackpl]_jak_wysylany_jest_spam.pdf

(1027 KB) Pobierz
2653389 UNPDF
Jak wysyłany
jest spam?
Tomasz Nidecki
Artykuł opublikowany w numerze 2/2004 magazynu „Hakin9”
Wszelkie prawa zastrzeżone.
Bezpłatne kopiowanie i rozpowszechnianie artykułu dozwolone pod warunkiem zachowania jego obecnej formy i treści.
Magazyn „Hakin9”, Wydawnictwo Software, ul. Lewartowskiego 6, 00-190 Warszawa, piotr@software.com.pl
2653389.022.png
Jak wysyłany jest
spam
Tomasz Nidecki
Spamerzy często wykorzystu-
ją słabo zabezpieczone systemy.
Kłopoty i koszty związane z wy-
syłką nierzadko dziesiątek lub se-
tek tysięcy listów przenoszone
są na osoby trzecie. Dowiedzmy
się, na czym polegają stosowane
przez spamerów techniki
i jak się przed nimi zabezpieczyć.
nej pochłania bardzo wiele zaso-
bów. By ją przeprowadzić niezbędne
jest szybkie łącze i dedykowany komputer. Je-
śli nawet spamer dysponuje takimi zasobami,
to wysyłka może zająć wiele godzin. Dostaw-
cy usług internetowych nie są zaś zazwyczaj
zachwyceni, jeśli ich łącza wykorzystuje się do
spamowania i spamer może stracić połączenie
z siecią, zanim uda mu się rozesłać dużą liczbą
wiadomości. Jeśli zostanie złapany, może też
ponieść poważne konsekwencje prawne lub
inansowe.
Aby przyspieszyć i usprawnić wysyłkę
spamerzy stosują dwie podstawowe metody.
Pierwsza polega na minimalizacji czasu nie-
zbędnego do wysłania listu. Zwana jest ire and
forget czyli wyślij i zapomnij. Przy stosowa-
niu tej metody komputer rozsyłający spam nie
oczekuje na odpowiedzi od serwerów, z który-
mi się kontaktuje. Druga ze stosowanych me-
tod polega na kradzieży zasobów należących
do osób postronnych, które źle skonigurowa-
ły system lub padły oiarą wirusa. Większość
kosztów, a nierzadko także odpowiedzialność
za rozsyłanie spamu spada na nich, a spamer
jest bezkarny.
Protokół SMTP
Aby zrozumieć metody stosowane przez spa-
merów konieczne jest poznanie zasad funk-
cjonowania najpopularniejszego protokołu do
przesyłania poczty elektronicznej – SMTP.
Opiera się on, podobnie jak większość protoko-
łów stosowanych w Internecie, na prostych po-
leceniach tekstowych.
Etapy przesyłania poczty
Poczta elektroniczna przesyłana jest w kilku
etapach (patrz Rysunek 1). Dla lepszego ich
zrozumienia załóżmy, że chcemy przesłać list
Z artykułu dowiesz się...
• w jaki sposób spamerzy rozsyłają spam (korzy-
stając z komputerów niewinnych osób),
• jak zabezpieczyć swój serwer przed wykorzy-
staniem przez spamerów,
• jak działa protokół SMTP,
• co to jest open relay , open proxy i zombie .
Co powinieneś wiedzieć...
• jak stosować podstawowe narzędzia w syste-
mie Linux.
2
www.hakin9.org
Hakin9 Nr 2/2004
M asowa wysyłka poczty elektronicz-
2653389.023.png
Jak wysyłany jest spam
Rysunek 1. Etapy przesyłania poczty elektronicznej
od hakin9@hakin9.org do nobody
@example.com . Użytkownik wysy-
łający list korzysta z programu Mo-
zilla Thunderbird w sieci lokalnej,
a odbiorca – z Microsoft Outlook
Express za pośrednictwem łącza
typu dial-up.
W pierwszym etapie program
Mozilla Thunderbird kontaktuje się
z serwerem SMTP podanym w usta-
wieniach konta użytkownika ha-
kin9@hakin9.org mail.softwa-
re.com.pl . List przesyłany jest do
serwera protokołem SMTP. W dru-
gim – mail.software.com.pl zagląda
do wpisów w serwerach DNS. Do-
wiaduje się, że za odbiór poczty do
domeny example.com odpowiedzial-
ny jest mail.example.com . Informa-
cję tę znajduje w tzw. rekordzie MX
( Mail Exchanger ) publikowanym
przez DNS odpowiedzialny za do-
menę example.com (możemy ją uzy-
skać za pomocą programów host lub
dig : host -t mx example.com lub dig
example.com mx ).
W trzecim – mail.software.com.pl
łączy się z mail.example.com
i przekazuje mu list. W czwartym
mail.example.com dostarcza ode-
brany list do lokalnej skrzynki pocz-
towej użytkownika nobody . W piątym
– użytkownik skrzynki nobody łączy
się przez łącze dial-up z serwerem
mail.example.com protokołem POP3
(lub IMAP) za pomocą programu
Outlook Express i pobiera list.
Historia SMTP
Prekursorem SMTP był program SNDMSG ( Send Message ), wykorzystany w 1971 ro-
ku przez Raya Tomlinsona (w połączeniu z jego własnym projektem – CYPNET ) do
stworzenia aplikacji umożliwiającej przesyłanie poczty elektronicznej w sieci ARPA-
NET . Rok później program wykorzystywany w Arpanecie do przesyłania plików – FTP ,
został poszerzony o polecenia MAIL i MLFL . Pocztę przesyłano za pomocą FTP do
1980 roku – wtedy powstał pierwszy standard protokołu poczty elektronicznej – MTP
( Mail Transfer Protocol ), opisany w dokumencie RFC 772. MTP kilkukrotnie modyi-
kowano (RFC 780, 788), a w 1982 roku, w RFC 821 Jonathan B. Postel opisał Simple
Mail Transfer Protocol .
SMTP w podstawowej formie nie spełnił jednak wszystkich oczekiwań. Powsta-
ło więc wiele dokumentów opisujących rozszerzenia protokołu. Do najważniejszych
z nich należą:
• RFC 1123 – wymagania dla serwerów internetowych (obejmują też SMTP),
• RFC 1425 – wprowadzenie standardu rozszerzeń protokołu SMTP – ESMTP,
• RFC 2505 – zbiór sugestii dotyczących ochrony antyspamowej serwerów,
• RFC 2554 – autoryzacja połączeń – wprowadzenie polecenia AUTH ,
Aktualny standard SMTP opisany został w 2001 roku w RFC 2821. Komplet RFC za-
mieszczamy na naszym CD.
Hakin9 Nr 2/2004
www.hakin9.org
3
2653389.024.png 2653389.025.png 2653389.001.png 2653389.002.png 2653389.003.png 2653389.004.png 2653389.005.png
Zdarza się, że list przebywa nieco
dłuższą drogę. Nadawca mógłby ko-
rzystać z oddzielnych serwerów pocz-
towych (SMTP), np.: odbior.softwa-
re.com.pl i wysylka.software.com.pl .
Wtedy list odbierany byłby od użyt-
kowników przez odbior.softwa-
re.com.pl , przekazywany do wysyl-
ka.software.com.pl , a następnie wy-
syłany do mail.example.com . Podob-
nie w przypadku mail.example.com
– za odbiór i dostarczenie poczty
do użytkownika mogą być odpowie-
dzialne różne serwery.
Programy biorące udział
w przesyłaniu poczty
W przesyłaniu poczty bierze udział
kilka programów:
• Program stosowany przez użyt-
kownika końcowego, służący do
odbioru i wysyłania, a także czy-
tania i pisania listów, nazywa-
ny jest MUA – Mail User Agent .
Przykładami MUA są: Mozilla
Thunderbird , Outlook Express ,
PINE , Mutt .
• Część serwera odpowiedzial-
na za komunikowanie się z użyt-
kownikami (odbiór poczty) oraz
wysyłanie i odbieranie poczty
od innych serwerów nazywana
jest MTA – Mail Transfer Agent .
Najpopularniejsze to: Sendmail ,
qmail , Postix , Exim .
• Część serwera odpowiedzialna
za dostarczenie poczty do lokal-
nego użytkownika nazywana jest
MDA – Mail Delivery Agent . Przy-
Następca SMTP?
Prof. Dan Bernstein, autor qmaila ,
opracował protokół o nazwie QMTP
( Quick Mail Transfer Protocol ), który
miał zastąpić SMTP. Eliminuje on wie-
le problemów występujących w SMTP,
lecz jest niekompatybilny ze swoim po-
przednikiem. Niestety nie został za-
implementowany praktycznie nigdzie
poza qmailem . Jest wykorzystywany
w praktyce m.in. przez serwery poczto-
we Wirtualnej Polski.
Więcej informacji o QMTP pod ad-
resem: http://cr.yp.to/proto/qmtp.txt
Rysunek 2. Etapy komunikacji za pomocą SMTP
4
www.hakin9.org
Hakin9 Nr 2/2004
2653389.006.png 2653389.007.png 2653389.008.png
 
2653389.009.png
 
 
2653389.010.png 2653389.011.png 2653389.012.png 2653389.013.png 2653389.014.png 2653389.015.png 2653389.016.png 2653389.017.png 2653389.018.png
 
Jak wysyłany jest spam
kłady samodzielnych MDA to:
Maildrop , Procmail . Większość
MTA posiada własne mechani-
zmy dostarczania poczty lokal-
nym użytkownikom, więc nie za-
wsze konieczne jest korzystanie
z dodatkowych MDA.
Tabela 2 . Przegląd najważniejszych kodów zwrotnych SMTP
Kod Opis
220 Usługa aktywna – serwer wita się informując, że można mu
przesyłać polecenia
250 Polecenie zostało przyjęte
354 Można rozpocząć wprowadzanie treści listu
450 Skrzynka użytkownika chwilowo zajęta (np. zablokowana przez
inny proces)
451 Błąd lokalny przy przetwarzaniu poczty
452 Chwilowy brak miejsca na dysku
500 Nie ma takiego polecenia
501 Błąd składniowy w poleceniu lub jego parametrach
502 Polecenie nie zostało zaimplementowane
550 Skrzynka użytkownika niedostępna
552 Przekroczono limit miejsca na dysku
Pełną listę kodów oraz zasady ich tworzenia można znaleźć w RFC 2821
(na naszym CD).
Etapy komunikacji w SMTP
Przesłanie listu za pomocą SMTP
jest podzielone na kilka etapów.
Oto przykładowa sesja SMTP mię-
dzy serwerami mail.software.com.pl ,
a mail.example.com . Dane wysyła-
ne przez mail.software.com.pl ozna-
czono znakiem > , a dane odbierane
z mail.example.com < .
Po nawiązaniu połączenia ma-
il.example.com przedstawia się:
< 220 mail.example.com ESMTP Program
informując, iż jego pełna nazwa ho-
sta (FQDN – Fully Qualiied Doma-
in Name ) to mail.example.com . Do-
wiadujemy się też, że możemy ko-
rzystać z poleceń ESMTP (rozsze-
rzonego SMTP – patrz Ramka) i że
stosowany MTA to Program . Nazwa
programu jest opcjonalna – niektóre
MTA, np. qmail , nie podają jej.
Przedstawiamy się:
co oznacza, iż mail.example.com
jest gotów do odbioru poczty. Na-
stępnie podajemy tzw. adres nadaw-
cy kopertowego – adres pocztowy,
pod który ma być skierowany ewen-
tualny zwrot listu:
< 250 ok
> RCPT TO:<test3@example.com>
< 250 ok
Następnie, po poleceniu DATA prze-
kazujemy nagłówki i treść listu. Na-
główki oddzielamy od treści pustą
linią, a list kończymy kropką w od-
dzielnej linii:
> MAIL FROM:<hakin9@hakin9.org>
< 250 ok
> HELO mail.software.com.pl
Podajemy adresy, na które chcemy
przesłać list:
> DATA
< 354 go ahead
> From: nikt@hakin9.org
> To: wszyscy@example.com
> Subject: Nic
>
> To jest test
> .
< 250 ok 1075929516 qp 5423
w odpowiedzi otrzymujemy:
> RCPT TO:<test1@example.com>
< 250 ok
> RCPT TO:<test2@example.com>
< 250 mail.example.com
Tabela 1 . Przegląd najczęściej używanych poleceń protokołu SMTP
Polecenie Opis
HELO <FQDN> Przedstawienie się serwerowi
EHLO <FQDN> Przedstawienie się serwerowi połączone z proś-
bą o podanie listy dostępnych poleceń ESMTP
MAIL FROM:<adres> Podanie adresu nadawcy kopertowego – adresu,
na który ma być kierowany ewentualny zwrot listu
RCPT TO:<adres> Podanie adresu odbiorcy wiadomości
DATA Przejście w tryb odbioru treści wiadomości
AUTH <mechanizm> Autoryzacja połączenia (ESMTP) – najczęściej
stosowane mechanizmy to: LOGIN, PLAIN
i CRAM-MD5
Rozszerzoną listę poleceń SMTP i ESMTP można znaleźć pod adresem
http://luffy.codeworks.gen.nz/esmtp.html
Po wysłaniu listu możemy zakończyć
połączenie:
> QUIT
< 221 Bye
Serwer nie zawsze jest zdolny do
wykonania naszych poleceń. Je-
śli otrzymamy kod zaczynający się
od cyfry 4 (kod z serii 4xx) oznacza
to, że serwer odmawia tymczasowo
przyjęcia listu. Powinniśmy spróbo-
wać wysłać list ponownie, nieco póź-
Hakin9 Nr 2/2004
www.hakin9.org
5
2653389.019.png 2653389.020.png 2653389.021.png
Zgłoś jeśli naruszono regulamin