Powstrzyma膰 atak na konto FTP

W dzisiejszych czasach coraz wi臋kszym problemem jest z艂o艣liwy kod doklejany do stron internetowych. Na pierwszy rzut oka nie powinien on powodowa膰 偶adnych zagro偶e艅, w ko艅cu jakikolwiek fragment dodany zar贸wno do plik贸w HTML, czy te偶 skrypt贸w JavaScript nie jest w stanie modyfikowa膰 plik贸w systemowych, czy uruchamia膰 proces贸w  na komputerze odwiedzaj膮cego stron臋. Tu jednak czai si臋 pewna w艂a艣ciwo艣膰 oprogramowania wytwarzanego przez ludzi, ot贸偶 posiada ono b艂臋dy (tzw. bugi).

Powoduj膮 one, 偶e to co wydawa艂o si臋 niemo偶liwe nagle przy u偶yciu pewnych sztuczek pozwala na przej臋cie komputera ofiary.  Nie chodzi tu tylko o b艂臋dy przegl膮darek, ale tak偶e o oprogramowanie, kt贸re z nimi wsp贸艂pracuje (np. Adobe Reader, QuickTime itp.). Ostatnia fala takiego z艂o艣liwego oprogramowania wykorzystywa艂a b艂膮d w popularnej przegl膮darce plik贸w PDF, Adobe Reader, przez co wielu nie艣wiadomych u偶ytkownik贸w systemu Windows zosta艂o zara偶onych mimo, i偶 dbali oni o to aby posiada膰 aktualne wersje przegl膮darek, jednak kompletnie nie spodziewali si臋 ataku na ten w艂a艣nie element.

Skoro wiadomo ju偶, 偶e teoretycznie niegro藕ne fragmenty kodu okazuj膮 si臋 jednak ca艂kiem gro藕ne, pozostaje odpowied藕 na pytanie, jak doklejaj膮 si臋 one do kodu stron, oraz jak walczy膰 z tym uci膮偶liwym zjawiskiem?

Metody infekcji

Mo偶emy 艣mia艂o za艂o偶y膰 偶e wi臋kszo艣膰 stron nie posiada b艂臋d贸w umo偶liwiaj膮cych dopisanie takiego kodu np. poprzez wywo艂anie odpowiednio spreparowanego linku, kt贸ry umo偶liwi bezpo艣redni dost臋p do plik贸w na serwerze. Jedynym sposobem jest zatem modyfikacja plik贸w poprzez protok贸艂 kt贸ry jest najcz臋艣ciej u偶ywany do umieszczania stron na serwerze, czyli FTP.  Jak wiadomo, aby zalogowa膰 si臋 przez FTP konieczne jest posiadanie loginu i has艂a. Dane te s膮 najcz臋艣ciej wykradane przez z艂o艣liwe oprogramowanie zwane trojanami, kt贸re dzia艂aj膮c na komputerze ofiary wykrada has艂a zapisane w popularnym oprogramowaniu (np. Total Commander). Co ciekawe tworzy to pewien samo nap臋dzaj膮cy si臋 mechanizm, mianowicie czym wi臋cej zara偶onych stron, tym wi臋cej trojan贸w jest instalowanych na komputerach ofiar, a tym samym wykradanych jest coraz wi臋cej danych dost臋powych, kt贸re pozwalaj膮 zara偶a膰 kolejne strony.

W momencie gdy intruz zdob臋dzie dane dost臋powe do konta na serwerze, 艂膮czy si臋 z nim i modyfikuje pliki. Najcz臋艣ciej s膮 to index.htm, index.php i index.html. Pliki te s膮 wybierane poniewa偶 najcz臋艣ciej to one s膮 wysy艂ane w pierwszej kolejno艣ci do u偶ytkownika odwiedzaj膮cego stron臋 internetow膮, zatem gwarantuj膮 偶e ka偶dy kto wejdzie pod taki adres otrzyma stron臋 ze z艂o艣liwym kodem. Samo w艂amanie nast臋puje w wi臋kszo艣ci przypadk贸w z komputer贸w nie艣wiadomych u偶ytkownik贸w, u偶ywany do tego jest ten sam trojan, kt贸ry w pierwszej kolejno艣ci wykrad艂 ofierze has艂o (sie膰 tak zara偶onych komputer贸w tworzy tzw. botnet, kt贸ry jest kontrolowany najcz臋艣ciej przez grup臋 hacker贸w, kt贸rzy dzia艂aj膮 dla w艂asnych korzy艣ci lub te偶 wynajmuj膮 go za op艂at膮 np. spamerom), w logach samo w艂amanie FTP wygl膮da do艣膰 niepozornie:

Fri Jun  5 04:42:10 2009 [pid 11451] CONNECT: Client "10.0.0.1"
Fri Jun  5 04:42:12 2009 [pid 11450] [admin] OK LOGIN: Client "10.0.0.1"
Fri Jun  5 04:42:16 2009 [pid 11465] [admin] OK DOWNLOAD: Client "10.0.0.1", "/home/admin/public_html/index.htm", 5477 bytes, 7799.42Kbyte/sec
Fri Jun  5 04:42:18 2009 [pid 11465] [admin] OK UPLAD: Client "10.0.0.1", "/home/admin/public_html/index.htm", 5580 bytes, 10814.99Kbyte/sec

Jak wida膰 po poprawnym logowaniu 艣ci膮gany jest plik index.htm, a chwil臋 p贸藕niej wgrywany, tyle 偶e wi臋kszy o kilkaset bajt贸w, najcz臋艣ciej na ko艅cu pliku umieszczana jest wtedy ukryta ramka, wygl膮daj膮ca podobnie do poni偶szej:

Kod ten powoduje niewidoczne dla u偶ytkownika wywo艂anie w tle ukrytej strony. To w艂a艣nie w tym momencie nast臋puje zara偶enie. Przegl膮darka na komputerze osoby odwiedzaj膮cej stron臋 艂aduje dokument, kt贸ry jak ju偶 wcze艣niej wspomniano, wykorzystuje b艂臋dy w oprogramowaniu i instaluje trojana do wykradania has艂a i dalszego zara偶ania. Czasami doklejany jest te偶 fragment w j臋zyku skryptowym JavaScript, jest on na pierwszy rzut oka ca艂kowicie nieczytelny, poniewa偶 zastosowano w nim tzw. zaciemnianie kodu (ang.  obfuscation), przez co sam fragment wygl膮da jak ci膮g losowych znak贸w.

Ochrona przed atakiem i skanowanie antywirusowe FTP

W tym momencie w zasadzie 偶adne oprogramowanie serwera FTP nie oferuje sprawdzania wgrywanych plik贸w pod k膮tem z艂o艣liwych fragment贸w. Z bardziej popularnych serwer贸w FTP dost臋pnych na system Linux takie dzia艂anie umo偶liwia ProFTPD, kt贸ry przy u偶yciu specjalnego pluginu pozwala na zintegrowanie z bardzo popularnym oprogramowaniem antywirusowym jakim jest ClamAV.  W przypadku innych serwer贸w z pomoc膮 przychodzi idea open source, dzi臋ki niej mamy dost臋p do kod贸w 藕r贸d艂owych, co pozwala na zaimplementowanie takiej ochrony w przypadku gdy autorzy sami jej nie przewidzieli.

Idea jest do艣膰 prosta, w momencie gdy u偶ytkownik wysy艂a plik na serwer jest on zapisywany pod losow膮 nazw膮, a nast臋pnie do zewn臋trznego oprogramowania antywirusowego wysy艂ane jest polecenie jego przeskanowania. W momencie gdy oprogramowanie stwierdzi 偶e plik jest "czysty", oryginalny plik jest kasowany i zast膮piony plikiem kt贸ry zosta艂 sprawdzony. Samo skanowanie mo偶e odbywa膰 si臋  na dwa g艂贸wne sposoby. Naj艂atwiejszy zak艂ada 偶e sam skaner znajduje si臋 na tym samym serwerze, co znacznie u艂atwia ca艂y proces, poniewa偶 mo偶e on wykona膰 komend臋 nakazuj膮c膮 przeskanowanie konkretnego pliku.

Drugim sposobem jest wykorzystanie zdalnego serwera, kt贸rego zadaniem jest tylko i wy艂膮cznie skanowanie plik贸w. W takim wypadku samo skanowanie staje si臋 bardziej skomplikowane, jednak mo偶na pokusi膰 si臋 o pewne u艂atwienia. Mianowicie mo偶emy 艣mia艂o za艂o偶y膰 偶e interesuj膮 nas tylko i wy艂膮cznie pliki tekstowe z kodem strony, zatem nie skanujemy plik贸w binarnych, dodatkowo mo偶na ustali膰 pewien limit wielko艣ci skanowanego pliku, w ko艅cu wiadomo 偶e wirus贸w tego typu nie znajdziemy raczej w plikach maj膮cych 100MB. Ka偶da z tych metod ma swoje wady i zalety, to kt贸r膮 wykorzystamy zale偶y g艂贸wnie od spodziewanej ilo艣ci plik贸w, kt贸re konieczne b臋d膮 do przeskanowania, jak i ilo艣ci serwer贸w, czy ich obci膮偶enia.

W przypadku pierwszej, wad膮 b臋dzie generowane obci膮偶enie, w chwilach du偶ego ruchu mo偶e ono widocznie wp艂ywa膰 na szybko艣膰 transferu plik贸w przez FTP, jak i obci膮偶enie ca艂ego serwera, gdy偶 proces skanowania pliku zabiera stosunkowo du偶o czasu procesora. Zalet膮 natomiast jest 艂atwo艣膰 implementacji, nie musimy martwi膰 si臋 o problemy wynik艂e w zwi膮zku z transferem pliku na zdalny serwer, co wi膮偶e si臋 z ewentualnymi b艂臋dami w transmisji, niedost臋pno艣ci膮 us艂ug, czy te偶 zbyt du偶ym obci膮偶eniem sieci, przez co samo skanowanie mo偶e trwa膰 do艣膰 d艂ugo.

Wad膮 drugiej metody jest natomiast trudno艣膰 implementacji, oraz op贸藕nienia spowodowane przes艂aniem pliku do przeskanowania na zewn臋trznym serwerze. Dla odmiany nie powoduje ona zwi臋kszenia obci膮偶enia maszyny oraz pozwala na 艂atwiejsze modyfikacje w oprogramowaniu antywirusowym. W ko艅cu wystarczy zmiana na jednym zewn臋trznym serwerze, a nie kilkudziesi臋ciu/kilkuset (np. w przypadku serwer贸w wirtualnych).  Dodatkowo pozwala ona na implementacj臋 wielu dodatkowych funkcji jak np. statystyki, "wy艂apywanie" plik贸w o niedozwolonych nazwach, czy wi臋ksza kontrola nad ca艂ym systemem, gdy偶 wszystko mamy dost臋pne w jednym miejscu, a nie rozrzucone po wielu serwerach.

Przy implementacji obu metod (a zw艂aszcza tej z zdalnym serwerem) konieczne jest zadbanie o odpowiedni膮 bezawaryjno艣膰 ca艂o艣ci systemu. 艁atwo sobie wyobrazi膰 sytuacj臋 gdy skaner nagle przestaje dzia艂a膰. W takim wypadku nie mo偶emy dopu艣ci膰 do tego, aby pliki by艂y "odrzucane", gdy偶 setki u偶ytkownik贸w nie b臋dzie mog艂o ich wgra膰 na serwer. Konieczne jest zatem zastosowanie polityki, kt贸ra odrzuca plik tylko w przypadku gdy zostanie wykryty wirus, ka偶dy inny b艂膮d powinien powodowa膰 偶e plik jest bez problemu wgrywany na serwer. Dla komfortu powinno si臋 tak偶e u偶ywa膰 niskich time out贸w na odpowied藕 skanera antywirusowego, tak aby u偶ytkownicy nie odczuwali du偶ych przestoj贸w w przypadku gdy chc膮 wgra膰 np. 1000 bardzo ma艂ych plik贸w, a ka偶de kilkukrotne wyst膮pienie takiego b艂臋du powinno wy艂膮czy膰 skanowanie dla tej jednej sesji FTP.

Tytu艂em zako艅czenia warto wspomnie膰, 偶e zjawisko to ostatnimi czasy przybiera du偶e rozmiary, dziennie notujemy po kilka tysi臋cy wykrytych pr贸b niedozwolonych modyfikacji plik贸w, zastosowanie skaner贸w pozwoli艂o na zmniejszenie ilo艣ci zg艂osze艅 w艂ama艅 z 1-2 dziennie, do kilku przypadk贸w tygodniowo. W Kei.pl ochron膮 standardowo obj臋te s膮 wszystkie konta hostingowe, jak i serwery wirtualne . Prosimy pami臋ta膰 o kilku prostych zasadach, dzi臋ki kt贸rym mo偶na unikn膮膰 takich nieprzyjemno艣ci:

  • pod 偶adnym pozorem nie zapisywa膰 hase艂 w 偶adnym programie do obs艂ugi FTP (w zasadzie tyczy膰 si臋 to mo偶e ka偶dego innego programu),
  • dba膰 o aktualizacj臋 oprogramowania, zar贸wno przegl膮darek jak i program贸w przez nie wykorzystywanych (instalacja 艂atek, nowych wersji itp.),
  • koniecznie u偶ywa膰 oprogramowania antywirusowego.

Przestrzeganie tych prostych zasad jest do艣膰 uci膮偶liwe, jednak pozwala zminimalizowa膰 ryzyko zwi膮zane z surfowaniem po stronach WWW. Niestety nawet mimo ich stosowania nie jeste艣my w stanie wykluczy膰 mo偶liwo艣ci zara偶enia.

殴r贸d艂o:
Kei.pl