Analiza i mogućnosti Conpot Honeypota

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Martin Šoštar


Sadržaj

Uvod

Za honeypot se može reći da je zamka za napadače. Generalno oni preuzimaju formu fizičkog ili virtualnog sistema koji oponaša stvarne uređaje u mreži, sa jakim nadzorom i bilježenjem tako da se napadačeve akcije mogu proučavati. Iako se čini paradoksalnim za sigurnosnog profesionalca da želi da napadač bude zainteresiran u njegov sustav, postoji niz prednosti koje honeypot pruža. Honeypot-ovi pružaju sigurnosnim istraživačima jedinstvenu priliku da proučavaju njihove protivnike. Analizirajući kako se stvarni napadi događaju, koliko često se događaju i što napadači ostavljaju za sobom (npr. Rootkit, Trojan, exploit). Konačno, honeypot koji sadrži lažne ali uvjerljive informacije koje mogu biti interesantne unutarnjem ili vanjskom napadaču (npr. Intelektualno vlasništvo ili brojevi kreditnih kartica) mogu pružati diverziju od vrjednije mete. Važno je za napomenuti da u nekim jurisdikcijama upotreba honeypot-a može biti smatrana kao zarobljavanjem [Provos & Holz, 2008]. Najbolje bi bilo da se pogledaju primjenjivi zakoni i da se konzultira odvjetnik prije nego se krene na taj put.

Dva tipa Honeypot-a

Istraživači klasificiraju honeypot-ove ili visoko interaktivnim ili nisko interaktivnim[Provos, 2008]. Visoko interaktivni honeypot je tipično napravljen od stvarnog uređaja, operativnog sustava i aplikacija za koje se želi da se napadnu. Primarna prednost je da napadač može uraditi što god želi sa njime, kao što bi i s pravim uređajem, zato što i je pravi uređaj. To znači da exploit zapravo i radi i može se analizirati. To je istovremeno i najveća mana visoko interaktivnih honeypot-ova, jer kad je jedno komprimiran mora se ispočetka sagraditi. Malware napadi protiv honeypot-ovog BIOS-a, iako rijetki, mogu postići da sistem bude trajno nepouzdan. To također povlači da se honeypot može koristiti kao izvor drugih napada, koje može povlačiti legalne komplikacije. Nisko interaktivni honeypot uzima uobičajeni sistem, poput Linuxa, i pokreće software koji imitira operativni sustav, mrežni stog i servise u koje is istražitelj zainteresiran. Kao primjer možemo reći da simulira Cisco ruter koji može izgledati kao standardni Cisco IOS Telnet zastava, ali da nikad ne dozvoljava napadaču da se zapravo prijavi. Umjesto toga, korisnička imena i lozinke koje pokušaju upisati se bilježe. Primarna prednost nisko interaktivnih honeypot-ova je lakoća održavanja sustava, jer među ostalim razlozima, je da je manja vjerojatnost da se zapravo kompromitira. To također povlači da istraživač možda ne dobiju punu sliku što napadač želi postići.


Pogodnosti Honeypot-ova na SCADA mrežama

SCADA (supervisory control and data acquisition) je sistem koji barata sa kodiranim signalima preko komunikacijskih kanala da pruža kontrolu nad udaljenim uređajem. To je tip industrijskog kontrolnog sistema (ICS) koji je računalno bazirani koji nadzire i kontrolira industrijske procese koji postoje u stvarnom fizičkom svijetu. Honeypot ne mijenja postojeće SCADA mrežne konfiguracije uključujući firewall i menadžera unificiranih prijetnji. Honeypot se jednostavno uključi u mrežu kao i bilo koji drugi sistem i složi se da pokreće servise koji izgledaju poput drugih uređaja u SCADA mreži. Zato što honeypot ne blokira maliciozni promet, reducira se vjerojatnost da mreža prestane raditi zbog false positiva. Dodatna prednost honeypot-a je što se može konfigurirati da izgleda kao specifični uređaj na tipičnoj SCADA mreži. Može se konfigurirati da bude sistem za održavanje topline ili sistem za kontrolu ulaska u zgradu. To omogućuje da se nadgledaju napadi dizajnirani specifično da meta bude trenutna infrastruktura. Za sve pozitivne stvari da se pokrene honeypot na SCADA mreži, postoji jedna velika mana. Sistem mora biti nadzirani i na prijetnje se mora reagirati. Honeypot neće automatski blokirati napade.


Analiza i mogućnosti Conpot Honeypota

Conpot je nisko interaktivan industrijski kontrolni sistem honeypot koji se postavlja na server. Dizajniran je da se lako može implementirati, modificirati i proširiti. Pružajući niz čestih industrijskih upravljačkih protokola, kreirane su osnove da se implementira vlastiti sistem koji će biti sposoban imitirati kompleksne infrastrukture da uvjeri protivnike da su upravo našli veliki industrijski kompleks. Da se poboljšaju sposobnosti pritajenosti, također je dodana mogućnost da se napravi human machine interface da se poveća honeypot-ova površina napada. Vrijeme odgovora servisa može biti namjerno odgođeno da se oponaša sistem pod stalnim opterećenjem. Conpot je razvijen pod okriljem Honeynet Project i na ramenima je par velikih divova. Conpot sam po sebi daje relativno malu površinu za napad. Bez dodatnog truda da se promovira conpot, budu se mogle primijetiti veze koje skeniraju sistem za informacije. Ako se pokaže potreba za većom površinom za napad, može se postaviti Human Machine Interface koji je povezan s conpot-om. Tako će protivnici moći naći vaš conpot pomoću tražilice i specifičnih ključnih riječi. Standardna konfiguracija conpot-a simulira osnovni Siemens SIMATIC S7-200 PLC sa ulazno – izlaznim modulom i CP 443-1 koji bi bio potreban u realno situaciji da pruža mrežnu povezanost.


Implementiranje honeypot-a na mrežu

Honeypot se može implementirati na mrežu poduzeća koja se sastoji od mnogo kontrola (za dizalo, ulaz u zgradu, pumpe, generatori itd.). Postoje tri primarna segmenta u takvoj konfiguraciji, uključujući samu mrežu poduzeća, DMZ mreža koja sadrži alate i sučelja koja se koriste za nadzor i menadžment uređaja na mreži poduzeća i kontrolne mreže iz koje ljudi upravljaju ili nadziru uređaje na mreži poduzeća. Kontrolna mreža i DMZ mreža su razdvojena firewall-om, isto kao i DMZ mreža i mreža poduzeća. Nema direktne komunikacije između kontrolne mreže i mreže poduzeća, sav promet mora proći kroz DMZ. Situacija je prikazana sljedećim dijagramom.

Msostar scada.jpg

Konfiguracija honeypot-a

Ubuntu 12.04 LTS je odabrana distribucija jer je testirana od strane Conpot-a i ima relativno jednostavan proces instalacije. Ovaj seminar neće pokrivati instalaciju Ubuntu OS, jer je korištena standardna metoda instalacije. Korištena je serverska inačica Ubuntu 12.04 LTS, jer nema potreba za grafičkim sučeljem i desktop aplikacijama. Instalacija i konfiguracija honeypot-a u svrhe seminara je napravljena na serverima DigitalOcean-a, na čijim se stranicama može vrlo lagano konfigurirati koje se OS želi instalirati na server. Nakon instalacije nije potrebno puno mijenjati OS, jer nema pokrenutih mrežnih servisa. Conpot ima vlastite SNMP, HTTP i Modbus servise, tako da nema potrebe da se pokreće Apache web server. Da se izbjegnu mogući konflikti ili potencijalni ranjivi servisi, najbolje bi bilo da se svi isključe.

SNMP (Simple Network Management Protocol, slobodni prijevod: jednostavni mrežni protokol za nadzor i upravljane) jednostavni je protokol koji se danas najčešće koristi za nadzor i upravljanje mrežnim uređajima u TCP/IP mrežama. SNMP omogućava mrežnim administratorima da upravljaju mrežnim performansama, nalaze i rješavaju mrežne probleme te planiraju potrebe za rastom mreže. Iz šale se govori „Security Not My Problem“.

Modbus je serijski komunikacijski protokol originalno izdan od Modicon 1979 godine da se koristi sa njegovim programibilnim logičkim kontrolerima (PLC - programmable logic controllers). Jednostavni i robusni, od tada je postal de facto stanard za komunikacijske protokole.


Instalacija Conpot-a

Budući da se radi o čistoj instalaciji OS-a, potrebno je instalirati odgovarajuće pakete da bi stvar funkcionirala. Instalacija Conpot-a je praćena po službenoj dokumentaciji.

 sudo apt-get install ssh
 sudo apt-get install git
 sudo apt-get install cython
 sudo apt-get install python-dev
 sudo apt-get install python-pip
 sudo apt-get install build-essential
 sudo apt-get install libxml2-dev
 sudo apt-get install libxslt1-dev
 sudo apt-get install libevent-dev
 sudo apt-get install snmp-mibs-downloader

Nakon izvršavanja navedenih naredbi prilikom instalacije Conpot-a može se dogoditi da prikazuje mysql grešku. Pa se mora naknadno (nije bilo navedeno u dokumentaciji) instalirati mysql baza podataka pomoću naredbi:

pip install MySQL-python
sudo apt-get install python-mysqldb

Nakon što je uspješno instalirani GIT, korišten je da bi se klonirao modbus-tk, koji je implementacija Modbus protokola u Pythonu. Zatim se može napokon instalirati i sami Conpot.

cd opt/
sudo git clone http://github.com/glastopf/modbus-tk.git
cd modbus-tk/
sudo python setup.py install
cd opt/
sudo git clone http://github.com/glastopf/conpot.git
cd conpot/
sudo python setup.py install
sudo conpot

Pokretanjem naredbe sudo conpot se ne pokreće conpot, iz razgloga što je dokumentacija stara. Server izbaci automatski --help za Conpot i može se vidjeti iz prikazanog da se pokreće pomoću naredbe conpot –t [TEMPLATE].

Msostar template.jpg

Kao što je prije navedeno, conpot može simulirat bilo koji uređaj za kojeg se pravilno postavi konfiguracija. Većina konfiguracijskih opcija su u datoteci pod nazivom template.xml koja se nalazi u templates/ direktoriju. Svaki predložak se sprema u posebni direktorij pod nazivom uređaja kojeg se želi pokrenuti. U conpotu je standardni uređaj Siemens SIMATIC S7-200 PLC. Nakon što uspješno napišemo naziv predloška, otvara se conpot.

Msostar conpot.jpg


Human Machine Interface

Da se poveća površina napada na sistem, conpot nudi mogućnost postavljanja HMI (Human Machine Interface). Human Machine Interface je dio stroja koji barata sa ljudskom interakcijom. U ovom slučaju je to sučelje prema uređaju Siemens SIMATIC S7-200 PLC. Sučelje se ostvaruje preko web stranice servera i automatski ga napadač može lakše pronaći pomoću tražilice. Kada napadač uđe u sučelje, conpot bilježi svaki njegov pokret.

Msostar hmi.png

Conpot podržava HMI preko HTTP servera na TCP portu 80 i može se konfigurirati da prikaže stranicu koju korisnik želi. Da bi se stranice prikazale conpot-u, potrebno je kreirati direktorij u conpot-ovom root direktoriju.

cd /usr/local/lib/python2.7/dist-packages/Conpot-0.4.0-py2.7.egg/conpot/
sudo mkdir www
sudo mkdir www/htdocs

U navedeni direktorij se mogu stavljati web stranice po želji i po mogućnosti da što bolje imitira uređaj kojeg conpot imitira. Conpot automatski generira index.html za standardni template i njegova stranica izgleda sljedeće.

Msostar siemens.jpg


Praćenje napadača

Nakon što je uspješno pokrenuti conpot i njegov HMI došlo je vrijeme čekanja napadača. U slučaju da netko posjeti web stranicu, conpot to bilježi u datoteku conpot.log. U svrhu testiranja conpota ja autor sam išao po stranici i bilježio napade koji su se događali. Dogodio se i napad izvana u to vrijeme, što dokazuje da sučelje funkcionira. Kako je mogao netko drugi osim autora znati za to sučelje koje je upravo izrađeno i koje nema nikakvo poznato ime iza sebe? Odgovor na to pitanje će biti u sljedećem odlomku, dodatnoj mogućnosti conpota, zvanoj hpfriends.

Msostar conpot2.jpg


Hpfriends

Hpfriends implementira autenticirani protokol za objavljivanje/pretplaćivanje razmjene datafeeds-a. Različiti feed-ovi su odvojeni kanalima i podržavaju osnovne binarne sadržaje. To znači da korisnici kanala trebaju odabrati odgovarajuću strukturu podataka. To se može napraviti npr. da se odabere odgovarajući serijalizacijski format. Pristup kanalima je dan preko takozvanih „Authkeys“ koji su u osnovi par identifikatora i tajne koja se čuva. Pomoću toga su napadači saznali da postoji navedena mreža. U datoteci conpot.cfg imamo mogućnost srediti sve parametre tako da odgovaraju za naš slučaj, te conpot to šalje hpfriends bazi podataka da je aktivna.

Conpot cfg.jpg
Msostar hpfriends.jpg

Literatura

Provos, N., & Holz, T. (2008). Virtual-Honeypots: From Botnet Tracking to Intrusion Detection. Boston, Massachusetts, US: Pearson Education, Inc.

Provos, N.(2008) Developments of the Honeyd Virtual Honeypot. Preuzeto 19.1.2015. sa http://www.honeyd.org/

"Linux kernel INPUT OUPUT evdev gem USB framebuffer" by Shmuel Csaba Otto Traian. Licensed under CC BY-SA 3.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Linux_kernel_INPUT_OUPUT_evdev_gem_USB_framebuffer.svg#mediaviewer/File:Linux_kernel_INPUT_OUPUT_evdev_gem_USB_framebuffer.svg

Glastopf Developers. Ubuntu-12.04-LTS. Preuzeto 19.1.2015. od Conpot 0.3.1 Documentation https://glastopf.github.io/conpot/installation/ubuntu.html

Rist, L., Vestergaard, J., & Haslinger, D. CONPOT. preuzeto 19.1.2015. od CONPOT: http://conpot.org/

Hpfriends http://hpfriends.honeycloud.net/#/home, preuzeto 19.1.2015.

DigitalOcean https://cloud.digitalocean.com/droplets , preuzeto 19.1.2015.

Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima