420 likes | 596 Views
Rootkits. Miha Pihler , MCSA, MCSE, MCT, CISSP , Microsoft MVP – Windows Security S&T Slovenija d.d. miha.pihler@snt.si b-mihap@microsoft.com. T E Ž AVNOST : 400. Microsoft MVP – Windows Security Svetovalec za varnost SloWUG Community Lead www.slowug.org
E N D
Rootkits Miha Pihler, MCSA, MCSE, MCT, CISSP, Microsoft MVP – Windows Security S&T Slovenija d.d. miha.pihler@snt.si b-mihap@microsoft.com TEŽAVNOST: 400
Microsoft MVP – Windows Security • Svetovalec za varnost • SloWUG Community Lead • www.slowug.org • Gradivo, ki ste ga prejeli je na voljo tudi na www.krneki.net/rootkits • Novejša različica; tudi PPT
Agenda • Uvod • Način okužbe • Delovanje in skrivanje rootkitov • Odkrivanje in odstranjevanje rootkitov • Zaščita pred rootkiti • Zaključek
Uvod • Virusi • Črvi • Spyware • Rootkiti • ... • V preteklosti je bil motiv pogosto zabava • Trenutno je vedno večji motiv denar • Vedno več napadov je naročenih
Uvod • Spremenil se je način razvoja operacijskih sistemov in aplikacij • Spremenile so se navade uporabnikov • Nameščanje popravkov • ...
Agenda • Uvod • Način okužbe • Delovanje in skrivanje rootkitov • Odkrivanje in odstranjevanje rootkitov • Zaščita pred rootkiti • Zaključek
Način okužbe z rootkiti • Programska oprema • Sonny DRM “rootkit” • $sys$... • Symantec “rootkit” • Strojna oprema • BIOS (zaenkrat še večino “proof of concept”) • iPOD-i okuženi z virusom
Način okužbe z rootkiti • Napake v aplikacijah in operacijskih sistemih • Črvi • Blaster • Virusi • Apple • Servisi, ki tečejo s sistemskimi pravicami
Način okužbe z rootkiti (nad.) • Socialni inženiring • Fizični dostop do opreme • “ERD Commander” – Microsoft Windows OS • “Break Sequence” – Usmerjevalniki, IDS, .. • “Single User Mode” – Linux, MAC OS X,...
Agenda • Uvod • Način okužbe • Delovanje in skrivanje rootkitov • Odkrivanje in odstranjevanje rootkitov • Zaščita pred rootkiti • Zaključek
Delovanje in skrivanje rootkitov • x86 Intel • Windows • Linux • Kernel Mode • Obroč 0 • User Mode • Obroč 3 Obroč 3 Obroč 0
Delovanje in skrivanje rootkitov • Komunikacija med obročem 3 in 0 • Gonilniki • API klici in pravica SeDebug • WinDBG
Delovanje in skrivanje rootkitov • Jedrni način delovanja (Kernel Mode) • Rootkit, ki teče kot del jedra ima dostop do celotnega sistema! • “Kernel Hooks” • “DLL injections” • “Runtime patching” • DKOM (Direct Kernel Object Manipulation)
Delovanje in skrivanje rootkitov • “Kernel Hooks” • SSDT (System Serivce Dispatch Table) • Namen kljuk (“hooks”) je, da prestrežejo sistemske klice na določene funkcije (npr. “ZwQuerySystemInformation”) • Rootkit implementira svojo “ZwQuerySystemInformation” funkcijo • Rootkit popravi naslovni prostor funkcije, da ta po novem kaže na funkcijo, ki jo implementira sam • Sedaj lahko filtrira vse odgovore op. sistema
Delovanje in skrivanje rootkitov • “DLL Injections” • Rootkit doda dvoj DLL v AppInt_DLL del registra • Ko aplikacija uporabi User32.dll naloži tudi rootkit • Rootkit s tem dobi dostop do vsega kamor ima dostop aplikacija • Zaupne informacije? • CreateRemoteThread
Delovanje in skrivanje rootkitov • Runtime patching • Poiščemo funkcijo in jo zamenjamo z lastno • Spodnja navodila so za “SeAccessCheck”
Delovanje in skrivanje rootkitov • Runtime patching FAR JMP Funkcija programa Rootkit Odstranjene f. FAR JMP • Prednost rootkita (rootkit MigBot): • Ko je spremenil program ne rabi več teči na računalniku
Delovanje in skrivanje rootkitov • “DKOM” • Spreminjanje žetonov (token) procesom • Primer rootkita: FU in FUTU
Demo FU
Demo Hacker defender
Delovanje in skrivanje rootkitov • Jedrni način delovanja (Kernel Mode) • V tem načinu delovanja se rootkiti lahko skrijejo na veliko načinov • Skrivanje procesov • Skrivanje datotečnega sistema • Skrivanje registrov • Skrivanje TCP/UDP vrat • Jih je težko odkrivati • Ni jih enostavno pisati • Zahteva intimno poznavanje jedra
Delovanje in skrivanje rootkitov • Omrežja • Rootkit v jedrnem načinu • Ima jo dostop do NDIS • Si lahko dodelijo svoj MAC naslov • Si lahko dodelijo svoj IP naslov • Se lahko izognejo osebnemu požarnemu zidu • Tipični primer rootkita je “DeepDoor” in RK_44 • TDI : NDIS • “raw sockets” • Rootkit lahko šifrira svoj promet in se tako skriva pred IDS, IPS, ...
Delovanje in skrivanje rootkitov • Uporabniški način delovanja (User Mode) • Imajo dostop do vseh uporabniških podatkov • Gesla • Spletni naslovi • Številke kreditnih kartic • “Plug-ins” za IE, Firefox, ... • 2 faktorska prijava • Jih je lažje pisati pa tudi odkrivati
Delovanje in skrivanje rootkitov • Rootkiti se lahko skrivajo tudi v strojni opremi • BIOS (zaenkrat predvsem kot “proof of concept”) • Izredno zahtevno pisanje in odkrivanje • Zahteva intimno poznavanje strojne opreme • Nimamo mehanizmov za odkrivanje • Programi proti zlonamerni kodi ne znajo skenirati naprav ;-)
Agenda • Uvod • Način okužbe • Delovanje in skrivanje rootkitov • Odkrivanje in odstranjevanje rootkitov • Zaščita pred rootkiti • Zaključek
Odkrivanje in odstranjevanje rootkitov • Za odkrivanje lahko uporabimo orodja kot so: • RootkitRevealer (RKR) • BlackLight • IceSword • Windows Debugger (WinDBG) • ... • Vsak od omenjenih ima prednosti in slabosti
Odkrivanje in odstranjevanje rootkitov (nad.) • Kako deluje RKR RKR Rootkit API Datotečni sistem
Demo RKR
Odkrivanje in odstranjevanje rootkitov • Rootkiti se prilagajajo na programe za odkrivanje zlonamerne kode • Se znajo skriti pred programi • Jih znajo “napasti” in onemogočiti • Tudi protivirusno zaščito • Igra “kdo bo prvi” • Rootkiti imajo prednost...
Odkrivanje in odstranjevanje rootkitov • “Offline” analiza • Trdi disk • Primerjava datotek v “online” in “offline” načinu • Rootkit ima lahko svoje datoteke na trdem disku šifrirane; lahko imamo težave pri odkrivanju teh tudi v “offline” načinu • Drugi načini skrivanja (npr. “ADS”)
Odkrivanje in odstranjevanje rootkitov • Kako vemo, da smo odkrili vso zlonamerno kodo na okuženem sistemu? • Najboljši (in priporočen) način za odstranjevanje je ponovna namestitev operacijskega sistema • Če smo imeli “srečo” in smo dobili rootkit, ki se skriva v strojni opremi, ponovna namestitev ne bo pomagala...
Odkrivanje in odstranjevanje rootkitov • Priporočila ko sumite, da ste okuženi • Preverite sistem z več programi za odkrivanje rootkitov • Odstranite vse datoteke, ki so jih programi zaznali • Ponovno zaženite sistem in preverite ponovno • Preverite podpise vseh sistemskih datotek • Ne samo .exe, .bat, .com, ... • Orodje, ki ga lahko uporabite je sigverif
Agenda • Uvod • Način okužbe • Delovanje in skrivanje rootkitov • Odkrivanje in odstranjevanje rootkitov • Zaščita pred rootkiti • Zaključek
Zaščita pred rootkiti • Zaščita v globino (“Defense in depth”)! • Preventiva • Bodite previdne katero kodo poganjate na svojem računalniku! • Programi (tudi popravki) naj bodo iz zanesljivega vira in naj bodo podpisani • 64-bit Windows Vista in Longorn
Zaščita pred rootkiti (nad.) • Nameščeni popravki za aplikacije in operacijske sisteme • Vse aplikacije, vsi operacijski sistemi, vse druge napreve (usmerjevalniki, stikala) • Nameščena programska oprema za odkrivanje zlonamerne kode • Protivirusni programi • Učinkovita samo: • če so nameščeni tudi popravki • zadnje definicije
Zaščita pred rootkiti (nad.) • Omejen nabor pravic • Rootkiti, ki delujejo v jedrnem načinu potrebujejo skrbniški dostop za namestitev • Ostale rootkite omejen nabor pravic ne bo motil • Rootkiti, ki lahko delujejo v uporabniškem načinu! • TPM (Trusted Platform Module) • Windows Vista – TPM + BitLocker
Agenda • Uvod • Način okužbe • Delovanje in skrivanje rootkitov • Odkrivanje in odstranjevanje rootkitov • Zaščita pred rootkiti • Zaključek
Zaključek • Vedno bolj pogosto bomo srečevali rootkite; tudi v vsakdanjem življenju • Vedno več naprav je priključenih na internet • Kriminalne združbe dobro služijo s krajo podatkov • Ponujajo veliko denarja za neodkrite napake v operacijskih sistemih in aplikacijah • Prodajajo informacije kot so številke kreditnih kartic
Zaključek (nad.) • Pogoste izjave v medijih • V naše omrežje ni mogoče vdreti • V naše omrežje še nihče ni vdrl • “Can you prove it?”
Q&A • http://www.slowug.org • miha.pihler@snt.si • b-mihap@microsoft.com