Kliencki honeypot

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Kliencki honeypot to rodzaj systemu typu Honeypot, którego zadaniem jest wykrywanie i rozpoznawanie ataków w sieciach komputerowych. Klasyczne systemy typu honeypot to serwery (lub systemy imitujące serwery), które pasywnie czekają aż zostaną zaatakowane. Kliencki honeypot to system aktywnie wyszukujący serwery, z których przeprowadzane są ataki na systemy klienckie. Kliencki honeypot udając aplikację kliencką nawiązuje połączenie z serwerem i sprawdza czy nastąpił atak z jego strony. Aktualnie systemy tego typu skupiają się głównie na imitowaniu przeglądarek internetowych, jednakże każda aplikacja kliencka (jak FTP, SSH, email, itp.) może stać się częścią klienckiego honeypota.

Istnieje kilka nazw dla systemów typu kliencki honeypot. Często oprócz ogólnego określenia kliencki honeypot (ang. client honeypot) systemy tego typu nazywane są honeyclient. Należy jednak zaznaczyć, że nazwa "honeyclient" dotyczy również pierwszej otwarto źródłowej implementacji klienckiego honeypota (patrz niżej).

Architektura[edytuj | edytuj kod]

Kliencki honeypot składa się z trzech modułów. Pierwszy z nich, moduł kolejkujący, jest odpowiedzialny za tworzenie listy serwerów do odwiedzenia. Lista ta może być tworzona na przykład przez tzw. pełzanie (ang. crawling), czyli przechodzenie ze strony na stronę poprzez system linków. Drugim modułem jest sam klient, który wysyła zapytania do serwera znalezionego przez moduł kolejkujący. Po interakcji z serwerem do akcji wkracza trzeci moduł – silnik analizujący, który sprawdza czy kliencki honeypot został zaatakowany.

Oprócz trzech opisanych wyżej modułów klienckie honepoty są zazwyczaj wyposażone w pewnego rodzaju strategię ochronną, która zapobiega rozprzestrzenianiu się udanym atakom poza system klienckiego honeypota. Strategia ta jest realizowana poprzez stosowanie zapór sieciowych i maszyn wirtualnych.

Analogicznie do tradycyjnych, serwerowych honeypotów, klienckie honeypoty klasyfikuje się głównie ze względu na ich poziom interakcji: wysoki lub niski. Poziom ten określa, w jakim stopniu funkcjonalnym serwer może wykorzystywać atakowanego klienta.

Wysoki poziom interakcji[edytuj | edytuj kod]

Klienckie honeypoty o wysokim poziomie interakcji są w pełni funkcjonalnymi systemami, które można by porównać do prawdziwych systemów z prawdziwymi aplikacjami klienckimi. Jako takie, nie posiadają żadnych ograniczeń funkcjonalnych (pomijając wspomnianą strategię ochronną). Mechanizm rozpoznawania ataków polega na inspekcji stanu systemu po kontakcie z podejrzanym serwerem. Detekcja zmian w systemie klienckiego honeypota może wskazywać na fakt przeprowadzenia ataku poprzez wykorzystanie luki w oprogramowaniu klienta. Takimi zmianami mogą być nowo utworzone lub zmodyfikowane pliki.

Klienckie honeypoty o wysokim poziomie interakcji bardzo dobrze sprawdzają się w wykrywaniu nieznanych ataków na oprogramowanie klienckie. Niestety dzieje się to kosztem wydajności, ponieważ ciągłe monitorowanie całego systemu zużywa dużo zasobów. Taki mechanizm detekcji jest też podatny na różnego rodzaju próby zamaskowania ataku, np. poprzez opóźnienie zadziałania wprowadzonego do systemu exploita (bomba czasowa) lub uzależnienie jego zadziałania od konkretnych warunków, które muszą zaistnieć (bomba logiczna). W takim przypadku, gdy po kontakcie z serwerem nie zostaną wykryte żadne zmiany w systemie, kliencki honeypot może błędnie uznać dany serwer za bezpieczny, mimo, że został z niego przeprowadzony skuteczny atak. Wreszcie, jeżeli kliencki honeypot jest uruchomiony na maszynie wirtualnej, wprowadzony exploit może próbować wykryć wirtualne środowisko i wstrzymać się przed uruchomieniem lub zachować się w inny niż początkowo zamierzony sposób.

Capture-HPC[edytuj | edytuj kod]

Capture jest klienckim honeypotem o wysokim poziomie interakcji opracowanym przez naukowców z Victoria University of Wellington w Nowej Zelandii. Capture posiada kilka cech, które wyróżniają go spośród innych klienckich honeypotów. Po pierwsze, został on zaprojektowany do szybkiej pracy. Wszelkie zmiany stanu systemu są rozpoznawane na podstawie modelu bazującego na zdarzeniach. Pozwala to na reagowanie na zmiany w momencie ich wystąpienia. Po drugie, jest skalowalny. Centralny serwer Capture może kontrolować poprzez sieć wiele systemów klienckich. Po trzecie, Capture został zaprojektowany jako framework pozwalający na używanie różnych klientów. Początkowa wersja Capture wspierała tylko Internet Explorera, ale obecna wersja wspiera już większość popularnych przeglądarek (Internet Explorer, Firefox, Opera, Safari) oraz inne aplikacje używające protokołu HTTP, takie jak aplikacje biurowe czy odtwarzacze multimedialne.

HoneyClient[edytuj | edytuj kod]

HoneyClient to kliencki honeypot o wysokim poziomie interakcji bazujący na przeglądarkach internetowych (IE/Firefox). Został stworzony przez Kathy Wang w 2004 i następnie rozwijany w ramach organizacji MITRE. Był pierwszym klienckim honeypotem rozpowszechnianym jako open source. Jest napisany w języku Perl. HoneyClient rozpoznaje ataki poprzez monitorowanie stanu systemu. Wykrywa ataki w systemach Windows monitorując konkretne pliki, katalogi i rejestr. Silnik analizujący działający w czasie rzeczywistym został zaczerpnięty z Capture-HPC. HoneyClient posiada również crawlera przeszukującego strony internetowe w poszukiwaniu złośliwego oprogramowania klienckiego, który może zostać zainicjowany początkową listą adresów, aby zawęzić poszukiwania.

HoneyMonkey[edytuj | edytuj kod]

HoneyMonkey jest klienckim honeypotem o wysokim poziomie interakcji bazującym na przeglądarce Internet Explorer. Został stworzony przez firmę Microsoft w 2005. HoneyMonkey nie jest dostępny publicznie. Ataki wykrywa monitorując stan systemu, m.in. pliki, rejestr i procesy. Unikalną cechą HoneyMonkey jest jego warstwowe podejście do interakcji z serwerem mające na celu wychwycenie exploitów dnia zerowego (ang. zero-day exploits). Polega ono na tym, że HoneyMonkey początkowo przegląda sieć bez zainstalowanych ostatnich aktualizacji systemowych. Po wykrycia ataku z danego serwera powraca na tę samą maszynę, ale już w pełni zaktualizowany i ponownie sprawdza czy nastąpił skuteczny atak. Jeżeli tak, oznacza to, że został wykryty atak bazujący na eksploicie, na którego nie ma jeszcze oficjalnej łaty. Takie ataki są szczególnie niebezpieczne.

SHELIA[edytuj | edytuj kod]

SHELIA jest klienckim honeypotem o wysokim poziomie interakcji autorstwa Joan Robert Rocaspana z Vrije Universiteit Amsterdam. SHELIA integruje się z klientem poczty elektronicznej i przetwarza każdą otrzymaną wiadomość (linki i załączniki). W zależności od typu otrzymanego linku otwiera odpowiednią aplikację kliencką (np. przeglądarkę, aplikację biurową, itp.) a następnie sprawdza czy w przestrzeni pamięci danych nie ma prób uruchomienia instrukcji wykonywalnych (co mogłoby wskazywać na atak wykorzystujący błąd przepełnienia bufora). Dzięki takiemu podejściu SHELIA potrafi nie tylko wykrywać ataki, ale również zapobiegać ich potencjalnym skutkom.

UW Spycrawler[edytuj | edytuj kod]

Spycrawler stworzony w 2005 na University of Washington jest kolejnym klienckim honeypotem o wysokim poziomie interakcji, który bazuje na przeglądarce internetowej (Mozilla). Jego autorem jest Alexander Moshchuk. Spycrawlera nie można ściągnąć z sieci. Działa on na zasadzie monitorowania stanu systemu poprzez analizowanie plików, procesów, rejestru oraz błędów przeglądarek. Mechanizm detekcji ataków jest opiera się na modelu zdarzeniowym. Ponadto potrafi on działać z opóźnieniem, aby wyeliminować (albo raczej zminimalizować) ataki przeprowadzane za pomocą bomb czasowych.

Web Exploit Finder[edytuj | edytuj kod]

WEF jest implementacją mechanizmu detekcji automatycznego ściągania plików bez wiedzy użytkownika (ang. drive-by download). Jego autorami są trzej studenci z Hochschule der Medien (HdM) w Stuttgarcie: Thomas Müller, Benjamin Mack i Mehmet Arziman. Projekt ten został zrealizowany podczas semestru letniego w 2006. WEF może pracować jako część składowa sieci HoneyNet bazując w całości na środowisku wirtualnym aby umożliwić szybkie przywrócenie stanu systemu sprzed ataku.

Niski poziom interakcji[edytuj | edytuj kod]

Klienckie honeypoty o niskim poziomie interakcji różnią się od klienckich honeypotów o wysokim poziomie interakcji tym, że zamiast wykorzystywać cały system operacyjny skupiają się raczej na symulowaniu aplikacji klienckich (w świecie przeglądarek internetowych można by porównać je do crawlerów). Ocena czy nastąpił atak jest formułowana bezpośrednio na podstawie odpowiedzi uzyskanych z serwera poprzez sprawdzanie czy zawierają np. podejrzane ciągi znaków.

Klienckie honeypoty o niskim poziomie interakcji są łatwiejsze do wdrożenia oraz są wydajniejsze. Jednakże wykrywalność ataków jest niższa, gdyż każdy atak musi być wcześniej znany, aby kliencki honeypot mógł go wykryć. Nowe, dotąd nieznane ataki pozostają niezauważone. Innym problemem jest fakt, że kliencki honeypot o niskim poziomie interakcji jest łatwiejszy do zdemaskowania przez exploity.

HoneyC[edytuj | edytuj kod]

HoneyC jest klienckim honeypotem o niskim poziomie interakcji opracowanym przez Christiana Seiferta na Victoria University of Wellington w 2006. HoneyC jest sprzętowo niezależnym, open-souce’owym frameworkiem napisanym w języku Ruby. Jego działanie opiera się na analizowaniu komunikacji pomiędzy serwerami a symulatorem przeglądarki internetowej. Każda odpowiedź z serwera jest na bieżąco sprawdzana pod kątem obecności podejrzanych ciągów znaków przy pomocy sygnatur programu Snort.

Monkey-Spider[edytuj | edytuj kod]

Monkey-Spider jest klienckim honeypotem o niskim poziomie interakcji rozwijanym początkowo na Uniwersytecie Mannheim przez Aliego Ikinci. Monkey-Spider jest crawlerem wykorzystującym rozwiązania antywirusowe do detekcji złośliwego oprogramowania. Jest on zaprojektowany jako szybki oraz rozszerzalny o inne mechanizmy detekcji. Początkiem prac nad Monkey-Spider była praca dyplomowa a obecnie jego rozwój jest kontynuowany w ramach ruchu Wolne Oprogramowanie. Program jest rozpowszechniany na licencji GPL.

SpyBye[edytuj | edytuj kod]

SpyBye jest klienckim honeypotem o niskim poziomie interakcji autorstwa Niella Provosa. Pozwala on na określenie czy dana strona internetowa jest niebezpieczna poprzez zastosowanie heurystyk połączonych ze sprawdzaniem jej zawartości skanerem wykorzystującym silnik ClamAV.

Dokumenty[edytuj | edytuj kod]

  • Moshchuk, A., Bragin, T., Gribble, S.D. and Levy, H.M. A Crawler-based Study of Spyware on the Web. In 13th Annual Network and Distributed System Security Symposium (NDSS). San Diego, 2006. The Internet Society.
  • Wang, Y.-M., Beck, D., Jiang, X., Roussev, R., Verbowski, C., Chen, S. and King, S. Automated Web Patrol with Strider HoneyMonkeys: Finding Web Sites That Exploit Browser Vulnerabilities. In 13th Annual Network and Distributed System Security Symposium (NDSS). San Diego, 2006. The Internet Society.
  • Provos, N., McNamee, D., Mavrommatis, P., Wang, K., Modadugu, N. The Ghost In The Browser: Analysis of Web-based Malware. Proceedings of the 2007 HotBots. Cambridge, April 2007. USENIX.
  • Provos, N., Holz, T. Virtual Honeypots: From Botnet Tracking to Intrusion Detection. Addison-Wesley. Boston, 2007.
  • Provos, N., Mavrommatis, P., Abu Rajab, M., Monrose, F. All Your iFRAMEs Point to Us. Google Technical Report. Google, Inc., 2008.
  • Seifert, C., Komisarczuk, P. and Welch, I. Application of divide-and-conquer algorithm paradigm to improve the detection speed of high interaction client honeypots. 23rd Annual ACM Symposium on Applied Computing. Ceara, Brazil, 2008.
  • Seifert, C. Know Your Enemy: Behind The Scenes Of Malicious Web Servers. The Honeynet Project. 2007.
  • Seifert, C., Steenson, R., Holz, T., Yuan, B., Davis, M. A. Know Your Enemy: Malicious Web Servers. The Honeynet Project. 2007. (available at http://www.honeynet.org/papers/mws/index.html)
  • Seifert, C., Welch, I. and Komisarczuk, P. HoneyC: The Low-Interaction Client Honeypot. Proceedings of the 2007 NZCSRCS. Waikato University, Hamilton, New Zealand. April 2007.
  • Seifert, C., Endicott-Popovsky, B., Frincke, D., Komisarczuk, P., Muschevici, R. and Welch, I., Justifying the Need for Forensically Ready Protocols: A Case Study of Identifying Malicious Web Servers Using Client Honeypots. in 4th Annual IFIP WG 11.9 International Conference on Digital Forensics, Kyoto, 2008.
  • Feinstein, Ben. Caffeine Monkey: Automated Colleciton, Detection and Analysis of JavaScript. BlackHat USA. Las Vegas, 2007.
  • Stuurman, Thijs, Verduin, Alex. Honeyclients - Low interaction detection method. Technical Report. University of Amsterdam. February 2008.
  • Zhuge, Jianwei, Holz, Thorsten, Guo, Jinpeng, Han, Xinhui, Zou, Wei. Studying Malicious Websites and the Underground Economy on the Chinese Web. Proceedings of the 2008 Workshop on the Economics of Information Security. Hanover, June 2008.

Prezentacje[edytuj | edytuj kod]

Strony domowe[edytuj | edytuj kod]