Slijede razlike između dviju inačica stranice.
| Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
|
racfor_wiki:seminari2025:hb53863 [2026/01/08 13:18] Hrvoje Biloš kopiranje predloška |
racfor_wiki:seminari2025:hb53863 [2026/01/12 19:49] (trenutno) Hrvoje Biloš [Sažetak] |
||
|---|---|---|---|
| Redak 3: | Redak 3: | ||
| ===== Sažetak ===== | ===== Sažetak ===== | ||
| - | How do you write an abstract? Identify your purpose. You're writing about a correlation between lack of lunches in schools and poor grades. … Explain the problem at hand. Abstracts state the “problem” behind your work. … Explain your methods. … ([[https:// | + | Rootkiti predstavljaju veliku opasnost u području računalne sigurnosti zbog svoje sposobnosti dugotrajne i prikrivene prisutnosti u sustavima. Rootkit je tempirana bomba zbog svoje uloge u otvarajući vrata ostalim vrstama napadima dok sama ne sudjeluje u njihovom izvršavanju, |
| + | ===== Uvod ===== | ||
| - | Keywords: abstract; bastract; astract; retract; tractor | + | Razvojem zlonamjernog softvera, napadači su sve više usmjereni na tehnike koje omogućuju dugotrajnu i neprimjetnu prisutnost unutar kompromitiranih sustava. Jedna od takvih tehnika jest uporaba rootkita – specijaliziranog softvera dizajniranog za prikrivanje aktivnosti napadača i zaobilaženje sigurnosnih mehanizama operativnog sustava. U kontekstu računalne forenzike, rootkiti su posebno problematični jer aktivno ometaju procese prikupljanja dokaza, skrivajući procese, datoteke, mrežne veze i zapise u memoriji. Time se narušava integritet forenzičke analize i otežava rekonstrukcija napada, identifikacija napadača te utvrđivanje opsega kompromitacije. Cilj ove stranice jest pružiti pregled osnovnih koncepata vezanih uz rootkite, njihovu klasifikaciju te metode njihove detekcije i uklanjanje. |
| - | ===== Uvod ===== | + | ===== Rootkit |
| - | ===== Poglavlje 1 ===== | + | Rootkit je prikrivena vrsta softvera, najčešće zlonamjerna, |
| - | ===== Poglavlje 2 ===== | + | ===== Vrste rootkita |
| - | ===== Poglavlje | + | Rootkiti se klasificiraju prema komponentama sustava koje zaražavaju, |
| - | ===== Poglavlje | + | ==== Rootkit u jezgri operativnog sustava (kernel-mode) |
| + | |||
| + | Ovaj tip rootkita radi s najvišim privilegijama operativnog sustava (Prsten 0) dodavanjem koda ili zamjenom dijelova jezgre. Većina operativnih sustava podržava upravljačke programe uređaja u jezgrenom načinu rada (device driver) koji se izvršavaju s istim privilegijama kao sami operativni sustavi, zbog toga većina rootkita razvijeni su kao upravljački programi uređaja (device driver). Ova vrsta rootkita ima neograničen sigurnosni pristup, ali ju je teže napisati. Složenost čini greške čestima, a svaka greška na razini jezgre može ozbiljno utjecati na stabilnost sustava, što olakšava otkrivanje. Ovaj tip rootkita može biti posebno težak za otkriti i ukloniti jer rade na istoj sigurnosnoj razini kao i operativni sustav, te su stoga u stanju presresti ili potkopati najpouzdanije operacije sustava. Bilo koji softver, poput antivirusni softver, koje se pokreće na kompromitiranom sustavu jednako je ranjiv, stoga niti jednom dijelu sustava se može vjerovati. Uobičajeno je da rootkit stvara skriveni, šifrirani datotečni sustav u kojem može sakriti drugi zlonamjerni softver ili originalne kopije datoteka koje je zarazio. Operativni sustavi se razvijaju kako bi se suprotstavili prijetnji rootkita u jezgrenom načinu rada. Na primjer, 64-bitna izdanja Microsoft Windowsa sada implementiraju obvezno potpisivanje svih upravljačkih programa na razini jezgre kako bi otežali izvršavanje nepouzdanog koda s najvišim privilegijama u sustavu. | ||
| + | * Primjeri: Spicy Hot Pot, Adore, Zero Access, Knark, FudModule, Da IOS | ||
| + | |||
| + | ==== Korisnički/ | ||
| + | |||
| + | Ovaj tip rootkita izvodi se u 3. prstenu sigurnosti s drugim korisničkim aplikacijama. Imaju niz mogućih vektora instalacije za presretanje i mijenjanje standardnog ponašanja sučelja za programiranje aplikacija (API). Neki ubrizgavaju dinamički povezane biblioteke (DLL) u druge procese i stoga se mogu izvršavati unutar bilo kojeg ciljnog procesa kako bi ga lažirali, drugi s dovoljnim privilegijama jednostavno prepisuju memoriju ciljne aplikacije. Neke od metoda ubrizgavanja su: | ||
| + | - Korištenje proširenja aplikacija koje isporučuje dobavljač (npr. Windows Explorer ima javna sučelja koja omogućuje proširenje njegove funkcionalnosti). | ||
| + | - presretanje poruka | ||
| + | - Debuggeri | ||
| + | - Iskorištavanje sigurnosnih ranjivosti | ||
| + | - Spajanje funkcija ili zakrpanje šesto korištenih API-ja. | ||
| + | * Primjeri: Hacker Defender, r77, Aphex | ||
| + | |||
| + | ==== bootkits ==== | ||
| + | |||
| + | Bootkit je varijanta rootkita u jezgri operativnog sustava koja zarazi Master Boot Record(MBR), | ||
| + | * Primjeri: ESPecter, Stoned Bootkit, Rovnix | ||
| + | |||
| + | ==== Hipervizorski/ | ||
| + | |||
| + | Ovi rootkiti su u akademskim krugovima kao dokaz koncepta. Iskorištavanjem značajki virtualizacije hardvera kao što su Intel VT ili AMD-V, ova vrsta rootkita radi u -1 prstenu i izvršava ciljni operativni sustav kao virtualni stroj, omogućujući rootkitu presretanje hardverskih poziva koje upućuje izvorni operativni sustav. Za razliku od normalnih hipervizora, | ||
| + | * Primjeri: Laboratorijski rootkit " | ||
| + | |||
| + | ==== firmver i hardver rootkit ==== | ||
| + | |||
| + | Firmver rootkit koristi firmver uređaja za stvaranje trajne slike softvera u hardveru kao što su router, mrežna kartica, tvrdi disk, BIOS. Velika opasnost ovog tipa rootkita jest detekcija, jer se integritet koda obično ne provjerava u firmveru, i brisanje. U ožujku 2009. istraživači Alfredo Ortega i Anibal Sacco objavili su detalje o rootkitu za windows na razini BIOS-a koji je uspio preživjeti zamjenu diska i ponovnu instalaciju operativnog sustava. Ova vrsta rootkita ne koristi se samo za zlonamjerne svrhe, već i za protuprovalnu zaštitu. Sandy Bridge i budući chipseti imaju hardverski rootkit ugrađen koji može pomoći u oporavku ukradenih računala, uklanjanje podatka i njihovom onesposobljavanju. sličnu ulogu ima i " | ||
| + | * Primjeri: LoJax, MoonBounce, MosaicRegressor | ||
| + | |||
| + | ==== memorijski rootkit ==== | ||
| + | |||
| + | Memorijski rootkit skriva se u memoriji računala (RAM). Ovi rootkiti imaju kratak vijek trajanja obično nestaju kada se sustav ponovno pokrene, ali ponekad mogu zahtijevati dodatni rad za uklanjanje. Smanjuju performanse RAM-a računala trošeći resurse svojim zlonamjernim procesima i mogu obavljati izuzetno štetne aktivnosti u pozadini računala. | ||
| + | |||
| + | ===== Otkrivanje rootkita ===== | ||
| + | |||
| + | Otkrivanje rootkita predstavlja jedan od zahtjevnijih zadataka jer su rootkiti po svojoj funkcionalnosti antiforenzički. Za razliku od klasičnog zlonamjernog softvera, rootkiti aktivno mijenjaju ponašanje operativnog sustava kako bi lažirali rezultate sigurnosnih i forenzičkih alata. Jedna od prepreka u analizi rootkita je ograničenja forenzičaru u mogućim postupcima. Rootkit ne može aktivno kriti svoju prisutnost ako nije pokrenut, no nismo uvijek u stanju da sustav smijemo gasiti, jer može predstavljati veliki trošak klijentu da ga drži ugašenim. Forenzika nije brz proces treba kvalitetno i učinkovito istražiti sve dijelove kako bi donijeli odliku, što pridonosi vremenu kojim bi sustav trebao biti ugašen ako odlučimo tim postupkom. | ||
| + | |||
| + | ==== Detekcija temeljena na potpisima ==== | ||
| + | |||
| + | Detekcija temeljena na potpisima koristi unaprijed definirane obrasce poznatih rootkita, slično kao i klasični antivirusni alati. Ovi potpisi mogu se temeljiti na hash vrijednostima datoteka, specifičnim sekvencama instrukcija ili poznatim strukturama u memoriji. Iako je ova metoda učinkovita protiv poznatih rootkita, njezina glavna slabost je nemogućnost otkrivanja novih, prilagođenih ili modificiranih varijanti. Napadači često koriste polimorfizam i enkripciju kako bi izbjegli detekciju potpisima, čime se ova metoda čini nedovoljnom kao jedini mehanizam obrane. | ||
| + | |||
| + | ==== Provjera integriteta sustava ==== | ||
| + | |||
| + | Metode temeljene na integritetu oslanjaju se na usporedbu trenutačnog stanja sustava s poznatim ispravnim (baseline) stanjem. To uključuje provjeru kriptografskih hash vrijednosti kritičnih sistemskih datoteka, upravljačkih programa i konfiguracijskih zapisa. Ako rootkit izmijeni jezgru operativnog sustava, sistemske biblioteke ili upravljačke programe, takve promjene mogu se otkriti odstupanjem od referentnih vrijednosti. Međutim, ova metoda pretpostavlja da je referentno stanje sustava stvoreno prije kompromitacije i da se provjera provodi iz pouzdanog okruženja. Rootkiti na razini jezgre mogu presresti sistemske pozive i vratiti lažne podatke alatima za provjeru integriteta, | ||
| + | * HKLM\SYSTEM\CurrentControlSet\Services | ||
| + | * HKLM\Software\Microsoft\Windows\CurrentVersion\* | ||
| + | * HKCU\Software\Microsoft\Windows\CurrentVersion\* | ||
| + | * HKLM\Software\Microsoft\Internet Explorer\* | ||
| + | * HKCU\Software\Microsoft\Internet Explorer\* | ||
| + | * HKCR\exefile\shell\open\command | ||
| + | * HKLM\Software\Classes\exefile\shell\open\command | ||
| + | * HKLM\Software\Microsoft\ActiveSetup\InstalledComponents | ||
| + | |||
| + | ==== Cross-view analiza ==== | ||
| + | |||
| + | Cross-view analiza jedna je od najčešće korištenih tehnika za otkrivanje rootkita. Temelji se na usporedbi informacija dobivenih iz različitih izvora ili različitih razina sustava. Na primjer, popis aktivnih procesa dobiven putem standardnih API poziva operativnog sustava može se usporediti s izravnim očitavanjem memorije ili tablica jezgre. Ako se uoče razlike (npr. proces postoji u memoriji, ali nije vidljiv standardnim alatima), to može upućivati na prisutnost rootkita. Ova metoda je posebno učinkovita protiv korisničkih i rootkita na razini jezgre koji skrivaju procese, datoteke ili mrežne veze, ali postaje manje pouzdana u slučaju naprednih rootkita koji uspješno manipuliraju svim razinama prikaza podataka. | ||
| + | |||
| + | ==== Analiza ponašanja ==== | ||
| + | |||
| + | Analiza ponašanja usmjerena je na prepoznavanje neuobičajenih ili sumnjivih aktivnosti sustava koje mogu ukazivati na prisutnost rootkita. To uključuje neočekivane promjene u ponašanju sistemskih poziva, neobjašnjive mrežne veze, anomalije u vremenskim mjerenjima izvršavanja instrukcija ili nestabilnost sustava. Hipervizorski rootkiti, primjerice, mogu se otkriti analizom vremenskih razlika u izvođenju određenih procesorskih instrukcija. Iako analiza ponašanja može otkriti i nepoznate rootkite, ona često pati od velikog broja lažno pozitivnih rezultata te zahtijeva visoku razinu stručnosti analitičara za ispravnu interpretaciju podataka. | ||
| + | |||
| + | ==== Offline forenzika i analiza memorije ==== | ||
| + | |||
| + | Najpouzdaniji pristup detekciji rootkita jest analiza sustava izvan kompromitiranog okruženja. To uključuje pokretanje sustava s pouzdanog medija (npr. forenzičkog live sustava) ili analizu kloniranog diska i snimke radne memorije (memory dump). Budući da rootkit u tom slučaju nije aktivan, ne može manipulirati rezultatima analize. Analiza radne memorije posebno je važna jer mnogi rootkiti, osobito memorijski i rootkiti na razini jezgre, ostavljaju minimalne tragove na disku. Alati za memorijsku forenziku omogućuju otkrivanje skrivenih procesa, jezgrenih hookova, izmijenjenih tablica sistemskih poziva i drugih artefakata koji nisu vidljivi standardnim alatima operativnog sustava. | ||
| + | |||
| + | ==== Anti-rootkit programi/ | ||
| + | |||
| + | Postoje razni anti-rootkit proizvodi npr. Rootkit Revealer, Blacklight, GMER, Icesword, Zeppoo, kstat, KsID ... Iako sam alat nije lijek za sve, on može pružiti korisne informacije o stanju operativnog sustava. Mnogi stariji rootkiti modificiraju SSDT i IAT tablice hookvima kako bi izravno upućivale na vlastiti kod, i ovakve vrste promjena skeneri mogu trivijalno otkriti skenirajući IAT i SSDT tablice tražeći pokazivače koje ne upućuju na samu jezgru. Postojanje hooka ne jamči prisutnost rootkita, postoje i legitimne aplikacije koje mogu hookat kao što su anti-virusne aplikacije i vatrozid. U teoriji, u operativnom sustavu bi trebalo biti dovoljno malo hookova da se svaka može pažljivo ispitati i utvrditi jeli zlonamjerna ili ne. Noviji rootkiti ne hookaju tablice izravno, već mijenjaju kod legitimnog API rukovatelja ili DLL-a kako bi umetnuli JUMP instrukciju unutar zaglavlja datoteka koja upućuje na rootkit i time ostavljaju tablicu netaknutom i nepromijenjenom. Dok svaki proces koji pokušava pozvati taj API bit će preusmjeren na rootkit. Slika ispod prikazuje aplikaciju Icesword koji prijavljuje niz jezgrenih hookova. {{ : | ||
| + | ===== Zaštita od rootkita ===== | ||
| + | |||
| + | Rootkit može biti izuzetno teško ukloniti, ali se može spriječiti zaraza računala na isti način kao i s drugim oblicima zlonamjernog softvera. Opasniji rootkiti zahtijevaju napadaču fizički pristup uređaju što za obične korisnike se rijetko događa, dok firme mogu se služiti van softverskim metodama kao ograničen pristup bitnoj infrastrukturi (npr server) ili koristeći hardverskog rootkita za nadzor prometa i aktivnosti na poslovnim uređajima. Među ostalog ispod su navedeni osnovni koraci koji mogu pomoći u sprječavanju zaraze: | ||
| + | * Svijest o phishingu: Phishing napadi jedna su od najčešćih metoda zaraze računala zlonamjernim softverom. Napadač šalje neželjenu poštu na popis e-mail adresa s porukama koje se čine legitimnima, | ||
| + | * Ažuriranja softvera: Softver koji je zastario ili je došao do kraja svog životnog vijeka te ih izdavač više ne podržava čine program ili sustav ranjivijim na napade nepopravljeni ili novootkrivenim ranjivostima. | ||
| + | * Koristite antivirusna rješenja: Sam antivirusni softver nije čvrsta obrana od napada. Međutim, antivirusni sustavi kao dio sveobuhvatnog sigurnosnog rješenja dio su borbe protiv zlonamjernog softvera i pomažu korisnicima u otkrivanju prisutnosti rootkitova. | ||
| + | * Skeniranje i filtriranje mrežnog prometa: Uz antivirusne sustave, koristite softver za filtriranje prometa, praćenje i skeniranje prometa koji ulazi i izlazi iz mreža u svakom trenutku. Ovaj softver skenira dolazni i odlazni promet kako bi otkrio zlonamjerni softver prije nego što se može infiltrirati u računala. | ||
| + | * Upaliti sigurno pokretanje (secure boot): Sigurnosna mana koju iskorištavaju MBR rootkiti jest ta da ako mogu dobiti izravan pristup hardveru prilikom pokretanja, sve buduće provjere softvera postaju besmislene. UEFI uključuje sigurnosnu kontrolu za uklanjanje ove prijetnje u samom hardveru koja se naziva sigurno pokretanje. Sigurno pokretanje zahtjeva kriptografske potpise na svim kodovima učitanim prilikom pokretanja. Potpisi stvaraju lanac povjerenja od programera softvera do tijela za certificiranje koje certificira softver kao pouzdan. Bilo kakve neovlaštene izmjene potpisanog bootloadera uzrokovat će neuspjeh provjere integriteta i spriječiti pokretanje sustava. Iako ovo nije pouzdano, pruža visok stupanj zaštite od rootkita i drugog zlonamjernog softvera koji može pokušati modificirati bootloader ili ključne komponente pokretanja, tj. NTLDR, bootmgr, winload.exe, | ||
| + | |||
| + | ===== Uklanjanje rootkita ===== | ||
| + | |||
| + | Najpouzdanija i najučinkovitija metoda uklanjanja rootkita je formatiranje zaraženog tvrdog diska na niskoj razini s pomoću proizvođačevog softvera ili firmvera za tu svrhu i ponovno učitavanje operativnog sustava iz poznatih ispravnih sigurnosnih kopija. U slučajevima kada se sumnja na kompromitiranje računalnog firmvera, dodatni korak ponovnog ažuriranja svih BIOS firmvera s pomoću proizvođačevog kriptografsko potpisanog firmvera može biti nužna. | ||
| + | Ako je to nepraktično, | ||
| + | Prije pokušaja uklanjanja, preporučljivo je promatrati rootkit u radu na kloniranom disku s pomoću naprednih alata za debugging, kao što su SoftICE i Ollydbg, koji prate gomilu, stog, registre, prepoznaju procedure, petlje, API pozive, sklopke, tablice, konstante i nizove znakova kako bi se osiguralo da su sve skrivene komponente otkrivene u najvećoj mogućoj mjeri. Međutim, mnogi rootkiti prate memorijski prostor u potrazi za poznatim programima za debugging i pokušat će zbuniti proces isključivanjem, | ||
| + | Ako je rootkit pozitivno identificirao dobavljač antivirusnog programa, moguće je koristiti antivirusni softver tog dobavljača za automatsko uklanjanje nekih ili svih datoteka rootkita. Iz tog razloga, web-mjesta za skeniranje više antivirusnih programa bit će vrijedna u identificiranju koji dobavljač antivirusnih programa ima potpise za detekciju rootkita. Osim toga, mogu postojati informacije online ili dostupne izravno od dobavljača antivirusnih programa koje potpunije opisuju rad rootkita i točne upute za uklanjanje. Čak i ako nijedan dobavljač antivirusnih programa nema potpise za rootkit, i dalje može biti korisno pokrenuti antivirusno skeniranje koje uključuje dobru heurističku detekciju, kako bi se nadopunili drugi napori i osiguralo da ništa nije propušteno. | ||
| + | |||
| + | ===== Primjer stvarnih napada koristeći rootkita ===== | ||
| + | * UNC3886 koristi rootkite Reptile i Medusa (2024.): Osumnjičeni kineski napadač, UNC3886, koristio je rootkite otvorenog koda pod nazivom ' | ||
| + | |||
| + | * Krasue Linux Rootkit (2023.): Aktivan od 2020., Krasue rootkit ciljao je organizacije u Tajlandu, posebno u telekomunikacijskom sektoru. Povezivao se na sistemske pozive kako bi sakrio svoje aktivnosti, izbjegavajući otkrivanje više od dvije godine. ([[https:// | ||
| + | |||
| + | * Symbiote i OrBit Rootkiti (2022.): Linux rootkiti koje je otkrio Wiz koristeći otmicu dinamičkog povezivača (LD_PRELOAD) kako bi izbjegao otkrivanje, prikupio vjerodajnice i omogućio prikriveni udaljeni pristup. Symbiote djeluje i kao backdoor i kao rootkit, povezujući funkcije libc i libpcap, dok OrBit osigurava perzistentnost mijenjajući ponašanje učitavača. ([[https:// | ||
| + | |||
| + | * Implementacija rootkita kineskih hakera (2021.): Kineski napadači implementirali su novi rootkit za špijuniranje korisnika Windowsa 10, izvršavajući implantate u memoriji sposobne za instaliranje dodatnih korisnih podataka tijekom izvođenja.([[https:// | ||
| + | |||
| + | * ZeroAccess (2011.): Softver rootkit koji je uzrokovao botnet ZeroAccess, korišten za kopanje bitcoina i spamovanje korisnika oglasima. Botnet je sadržavao do 2 milijuna računala, od kojih je većinu uništila razna sigurnosna poduzeća i agencije. Međutim, varijacije ZeroAccessa su još uvijek dostupne i aktivne. ([[https:// | ||
| ===== Zaključak ===== | ===== Zaključak ===== | ||
| + | Rootkiti predstavljaju jednu od najsloženijih kategorija zlonamjernog softvera zbog svoje sposobnosti duboke integracije u operativni sustav i aktivnog prikrivanja tragova kompromitacije. Njihova prisutnost značajno otežava forenzičku analizu jer narušavaju pouzdanost standardnih alata i tehnika prikupljanja dokaza. Razina na kojoj rootkit djeluje izravno utječe na šansu otkrivanja, štetni potencijal i složenost uklanjanja. Analiza različitih vrsta rootkita pokazuje da napadači kontinuirano pomiču granice prema nižim razinama sustava, uključujući boot mehanizme, firmver i hardver, čime dodatno smanjuju mogućnost otkrivanja i povećavaju perzistentnost napada. Dok su proizvođači i akademici u utrci za naoružanjem osmišljavajući sve bolje mehanizme zaštite kritičnim dijelovima sustava. Iako postoje brojni alati i metode za detekciju rootkita, nijedna pojedinačna tehnika ne može se smatrati univerzalnim rješenjem. U praksi je nužna kombinacija više forenzičkih pristupa. Preventivne mjere, poput redovitog ažuriranja softvera, edukacije korisnika, praćenja mrežnog prometa, imaju ključnu ulogu u smanjenju vjerojatnosti uspješne infekcije. Rootkiti ostaju ozbiljna prijetnja suvremenim informacijskim sustavima, osobito u okruženjima s visokim zahtjevima za povjerljivost i integritet podataka. Razumijevanje njihovih mehanizama rada i ograničenja forenzičkih metoda ključno je za učinkovit odgovor na incidente i očuvanje digitalnih dokaza u modernim kibernetičkim napadima. | ||
| ===== Literatura ===== | ===== Literatura ===== | ||
| - | [1] [[http://books.google.hr/books? | + | [1] [[https://www.sans.org/media/ |
| + | |||
| + | [2] [[https:// | ||
| + | |||
| + | [3] [[https:// | ||
| + | |||
| + | [4] [[https:// | ||
| + | |||
| + | [5] [[https:// | ||
| - | [2] [[http://www.google.com/books? | + | [6] [[https://www.malwarebytes.com/rootkit|Malwarebytes, Rootkit]] |
| - | [3] [[http://www.cogtech.usc.edu/publications/kirschner_Sweller_Clark.pdf|Kirschner, P. A, Sweller, J. and Clark, R. E. Why minimal guidance during instruction does not work: An analysis of the failure of constructivist, | + | [7] [[https://en.wikipedia.org/wiki/Rootkit|Wikipedia, Rootkit]] |