Powstrzymać atak na konto FTP

Porada Kei.pl 22-07-2009, 13:43

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.

kei.pl

 

Poradę dla Czytelników Dziennika Internautów przygotowała firma Kei.pl dostawca usług hostingowych.


Następny artykuł » zamknij

KaZaA powraca!

Komentarze archiwalne    Zobacz wszystkie (1)
To warto przeczytać


fot. geralt








  
znajdź w serwisie

RSS - Wywiad
Wywiad  
RSS - Interwencje
RSS - Porady
Porady  
RSS - Listy
Listy  
Serwisy specjalne:
Wydarzenia:
Jak czytać DI?
Newsletter

Podaj teraz tylko e-mail!



RSS
Copyright © 1998-2017 by Dziennik Internautów Sp. z o.o. (GRUPA INFOR PL) Wszelkie prawa zastrzeżone.