Načini zaraze računalnog sustava rootkitom

Prema podacima W3Schools web stranice [5W3Schools, OS Platform Statistics, travanj 2008.] koja možda nije najbolji izvor statistike, ali svakako daje dobar uvid u stanje stvari, načinjen je dijagram rasprostranjenosti popularnih operativnih sustava prikazan na sljedećoj slici:

Rasprostranjenost operacijskih sustava

Može se lako uočiti da Windows operacijski sustavi imaju udio od preko 85% u ukupnom broju svih operacijskih sustava. Iako Linux operacijski sustav nije ništa manje zanimljiv, štoviše, novi alati za prikrivanje prisutnosti napadača na tom operacijskom sustavu primjenjuju sofisticirane metode skrivanja, u ovom tekstu bit će obrađeni samo alati na Windows operacijskom sustavu i to na verziji XP. Svi detalji i funkcionalnost alata za prikrivanje prisutnosti napadača odnosit će se na Windows porodicu operacijskih sustava. Detalji o ispitnom okruženju nalaze se u odgovarajućem poglavlju.

Prije nego što budu objašnjeni načini zaraze sustava alatom za prikrivanje prisutnosti napadača, treba napomenuti da sam alat nije zadužen za dobivanje pristupa ciljanom računalu. Alat kao takav ne iskorištava ranjivosti sustava kako bi se na njega ugradio, niti ciljano mijenja strukture operacijskog sustava u svrhu dobivanja pristupa i administratorskih privilegija. Za tu su svrhu namijenjeni drugi alati, najčešće se radi o takozvanim exploitima (hrvatski prijevod ovog termina ne postoji) – programi koji ciljano iskorištavaju ranjivosti operacijskog sustava ili aplikacija u svrhu dobivanja administratorskih privilegija ili rušenja sustava. Tek nakon dobivanja administratorskih privilegija, napadač na ciljno računalo ugrađuje alat za prikrivanje svoje prisutnosti.

Upravo zbog toga načine i uzroke zaraze alatima za prikrivanje prisutnosti napadača treba tražiti u razlozima koji dopuštaju exploitima da obave posao za koji su namijenjeni.

Postoje tri osnovna načina zaraze računalnog sustava:

Kod iskorištavanja ranjivosti operacijskog sustava napadač pronalazi ranjivost u operacijskom sustavu i iskorištava tu ranjivost nastojeći dobiti administratorski pristup. Budući da pronalaženje ranjivosti nije jednostavan posao, za pronalaženje novih ranjivosti i iskorištavanje starih postoje gotovi "exploiti" i konceptualni okviri (engl. framework) koji to omogućavaju i znatno olakšavaju posao iskusnom, ali i neiskusnom napadaču. Primjer takvog konceptualnog okvira je Metasploit framework [6H. D. Moore, Metasploit LLC, Metasploit framework].

Windows porodica operativnih sustava često se spominje u negativnom kontekstu kada se govori o računalnoj sigurnosti. Operacijski sustavi bez ikakve sigurnosti (Windows 95, 98 i ME) i veliki sigurnosni propusti (prije svega propusti u Internet exploreru iIIS – Internet Information Services web poslužitelju) osnovni su razlog zašto se često o sigurnosti Microsoftovih proizvoda govori s podsmjehom. Međutim, razne sigurnosne inicijative unutar same kompanije, prije svega ciklus razvoja s naglaskom na sigurnost [7M. Howard, S. Lipner, The Security Development Lifecycle, Microsoft Press, Washington, 2006.] (engl. Security development lifecycle) učinili su Microsoftove proizvode mnogo sigurnijima nego ranije i uz znatno veći naglasak na sigurnost.

Windows XP operacijski sustav kao danas najčešće korišteni operacijski sustav smatra se vrlo sigurnim, u rangu raznih Linux distribucija koje se najčešće uzimaju kao primjer sigurnosti. To ne znači da je sustav apsolutno siguran: početkom 2008. godine otkriven je vrlo veliki sigurnosni propust [8Microsoft Inc, Vulnerabilities in Windows TCP/IP Could Allow Remote Code Execution, siječanj 2008.] u TCP/IP stogu novijih verzija Windows operacijskog sustava (uključujući Vistu) koji napadaču omogućava potpunu kontrolu nad sustavom. Vrlo brzo je izdana zakrpa za taj sigurnosni propust, no propust je dobar pokazatelj da se nikada u potpunosti ne možemo pouzdati u sigurnost i neranjivost sustava.

Na ranjivosti operacijskog sustava teško možemo utjecati prije nego što se one otkriju, tako da je ovaj način zaraze teško spriječiti ako je ranjivost još neotkrivena, no sigurnosne zaštitne stijene i ostali mehanizmi zaštite ovdje imaju odlučujuću ulogu u osiguravanju integriteta i sigurnosti sustava.

Zbog vrlo dobre sigurnosti današnjih računalnih sustava napadači se sve više okreću aplikacijama koje djeluju s administratorskim privilegijama i može im se pristupiti s Interneta. U tu skupinu aplikacija ubrajaju se svi Internet poslužitelji (web poslužitelji i poslužitelji elektroničke pošte) te različite usluge u smislu programa – poslužitelja različite namjene (engl. services – ekvivalent je daemon u operacijskom sustavu Linux). Napadač iskorištava ranjivosti i propuste u samim aplikacijama (najčešće se radi o napadu prepunjavanjem međuspremnika – engl. buffer overflow) kako bi mogao izvršavati naredbe u kontekstu u kojem se odvija sama aplikacija, dakle s administratorskim privilegijama. Napadač tada bez problema na sustav može ugraditi alat za prikrivanje svoje prisutnosti. Primjer takve aplikacije je već spomenuti IIS poslužitelj.

Kao i u slučaju ranjivosti operacijskih sustava, pomalo je zabrinjavajuća činjenica da se vrlo lako mogu pronaći web stranice s kôdom i programima koji su namijenjeni za iskorištavanje ranjivosti pojedinih aplikacija. Prevencija ovakvih napada trebala bi ići u smjeru smanjivanja privilegija aplikacija u najvećoj mogućoj mjeri, koliko god okruženje dopušta. Budući da to nije uvijek moguće napraviti, treba uvijek koristiti što novije verzije dotičnih aplikacija, pratiti razvoj aplikacije i pojavu sigurnosnih zakrpa i koristiti sigurnosnu zaštitnu stijenu i antivirusni program.

Zadnji način upada predstavljaju socijalni inženjering i fizički upadi. Socijalni inženjering je metoda ugrožavanja sigurnosti informacijskih sustava koja se koncentrira na manipuliranje ljudima unutar sustava kako bi se od njih dobile povjerljive informacije potrebne za neovlašteno korištenje resursa informacijskog sustava1Ž. Panian, Informatički enciklopedijski rječnik, Europapress holding, Zagreb, 2005.. Ova tehnika temelji se na lažnom predstavljanju napadača ili na tehnici kojom napadač maskira svoj zloćudni program kao koristan. Za ugradnju alata za prikrivanje prisutnosti napadača koji rade u jezgrenom načinu rada (većina današnjih) potrebne su administratorske privilegije. Windows operacijski sustavi nakon NT porodice, a pogotovo u novoj Windows Visti, nastoje korisnika "udaljiti" od korištenja administratorskog korisničkog računa i sugeriraju njegovo korištenje samo u iznimnim slučajevima kada je to zaista nužno. Nažalost, uza sve sigurnosne aplikacije i mjere, korisnik je najslabija karika u "sigurnosnom lancu". Bez obzira na sve postavljene zaštite i odvajanje privilegija, vrlo velik broj korisnika Windows operacijskog sustava svoje svakodnevne zadatke obavlja kao "administrator". Provedeno je istraživanje među kolegama FERa i ostalih studenata Sveučilišta koje je pokazalo iznimno zanimljive (iako donekle očekivane), ali i zabrinjavajuće rezultate prikazane na slikama(na ordinati je ukupan broj ispitanika).

Korisnički računi običnih korisnikaseparatorKorisnički računi poslovnih korisnika

Iako je ispitni uzorak u oba ispitivanja relativno malen, on daje zadovoljavajući uvid u stvarnu situaciju raspodjele korisničkih računa. U skupini od 45 ispitanika postoji 45 administratorskih korisničkih računa, pri čemu neki imaju još i dodatne korisničke račune na svojim računalima. U poslovnom okruženju je situacija nešto drukčija te od ukupno 23 računala koja su obuhvaćena istraživanjem, korisnici su na njih 10 imali samo administratorske korisničke račune, na dodatnih 10 samo račune naprednog korisnika (engl. power user), a obični korisnik su bili na svega 3 računala.

Bez obzira na ugrađena ograničenja operativnog sustava, vidimo da napadač može vrlo lako ugraditi alat za prikrivanje svoje prisutnosti ako na neki način uspije nagovoriti korisnika da ga on sam ugradi na svoj sustav. Primjerice, napadač može maskirati alat koristeći modificirane upravljačke programe za grafičku karticu koji se ionako moraju ugraditi u jezgru sustava pa postoji velika mogućnost da korisnik neće primijetiti zloćudnu namjeru napadača.

Pronalaskom nesavjesnog korisnika koji obavlja većinu poslova pod administratorskim korisničkim računom, napadačeva namjera da pridobije sustav praktički je ispunjena.

S alatima koji djeluju u korisničkom načinu rada situacija je još jednostavnija jer oni najčešće ne zahtjevaju administratorske dozvole pa time predstavljaju dodatnu opasnost krajnjem korisniku.

Rješenje ovog problema možda je teže od eliminacije sigurnosnih propusta u operacijskom sustavu i aplikacijama, a temelji se na promjeni navika korisnika i njihovoj edukaciji. Iako su korisnici danas znatno svjesniji opasnosti i raznih ugroza sigurnosti koje im prijete nego što su to bili prije desetak godina, lažna sigurnost koju pružaju antivirusni alati i sigurnosne zaštitne stijene, mistificiranje računalne sigurnosti i napadača i nedostatak temeljne edukacije razlog su za zabrinutost. Needucirani korisnik nije prijetnja samo sebi već i organizaciji u kojoj radi i upravo je zbog toga edukacija i svijest o opasnostima iznimno važna. Dio odgovornosti leži i u samom Windows operacijskom sustavu jer nedovoljno "agresivno" sugerira korisniku da koristi korisnički račun s ograničenim privilegijama, za razliku od Linux operacijskog sustava gdje je takva politika korisničkih računa prisutna od samih početaka. Windows Vista s mehanizmom UAC [9Microsoft Inc, The User Account Control WebLog ] (engl. User Account Control) pokazuje pozitivne pomake ka smanjenju privilegija korisničkog računa kojeg korisnici koriste za svakodnevni rad, a da uz to ne predstavlja preveliku smetnju korisniku u obavljanju svakodnevnih aktivnosti.

Još jedan, sve prisutniji način napada na korisničko računalo i ugradnje alata za prikrivanje prisutnosti napadača je i direktna fizička manipulacija računalom. Taj način napada prisutan je oduvijek, no velikom ekspanzijom prijenosnih računala sve su češći slučajevi zaraze ovim putem. Napadač koji ima fizički pristup računalu ima (općenito govoreći) potpunu kontrolu nad sustavom. Antivirusni programi i sigurnosne zaštitne stijene u ovom slučaju praktički su beskorisni. Napadača se može usporiti lozinkama postavljenima na BIOS, napadač može biti ograničen vremenom svog napada, ali sustav je u slučaju fizičkog napada iznimno ranjiv. Najnoviji alati za prikrivanje prisutnosti napadača koji se mogu ugraditi u prvi sektor tvrdog diska i od tamo mijenjati dijelove jezgre otporni su gotovo na sve oblike prevencije osim zaštite zabrane pisanja po prvom sektoru, što ne pružaju sve matične ploče, niti svi korisnici imaju omogućenu tu opciju.

Na Internetu su dostupne brojne takozvane "žive (engl. live)" distribucije Linuxa ili nekog vlastitog minimalnog operacijskog sustava koje se mogu pokrenuti prilikom podizanja sustava i imaju sposobnost mijenjanja Windows lozinki i izmjene sustavskog registra (naravno, tada niti jedna zaštita ugrađena u operacijski sustav ne djeluje, kao ni antivirusni programi i sigurnosne zaštitne stijene). Najpoznatije žive distribucije su Emergency Boot CD [1aM. N. Kupchik, Emergency Boot CD]i Offline NT Password & Registry Editor [2aP. Nordahl, Offline NT Password & Registry Editor]. Korištenjem takvih distribucija izmjena sustavskog registra vrlo je jednostavna. Primjer mijenjanja sustavskog registra pomoću Offline NT Password & Registry Editor distribucije dan je u pripadnom videu.

U demonstraciji je najprije napravljena vrlo jednostavna batch skripta koja samo ispisuje tekst "Hello world" na zaslon računala. Iz demonstracije je vidljivo da u odgovarajućem kazalu sustavskog registra ne postoji niti jedan program koji se pokreće nakon prijave korisnika na sustav. Korištenjem navedene distribucije vrlo brzo, u svega dvije minute, skripta je dodana u listu programa koji će se pokretati prilikom pokretanja sustava, nakon prijave korisnika (bez obzira na to o kojem se korisniku radi), što se u demonstraciji i vidi nakon ponovnog pokretanja sustava.

Ako koristi ove alate kao polaznu točku, napadač ne mora biti pretjerano vješt da modificira distribucije i prilagodi ih svojoj zloćudnoj namjeri. Umjesto programa Notepad na listi programa mogao se naći alat za prikrivanje prisutnosti napadača ili bilo koji drugi zloćudni program.

Fizički napad i zarazu također je vrlo teško spriječiti. Korisnik bi trebao postaviti BIOS lozinku, onemogućiti pisanje po prvom sektoru diska (ako za to ima hardverske mogućnosti), onemogućiti podizanje računala s CDa ili USB memorije i nikada ne bi smio ostavljati svoje računalo bez nadzora ili nezaključano lozinkom.

Natrag na vrh