Tehnopolis

Četvrtak, 16.11.2006.

14:08

Windows Vista - Kernel poboljšanja

Dve tehnologije su zadužene za zaštitu integriteta Windows kernela: Kernel Patch Protection (PatchGuard), koja je, ustvari, dostupna i na Windows Server 2003 i Windows XP platformi još od pre dve godine, i Kernel Module and Driver Signing tehnologija, koja vuče korene još od Windows 2000 platforme, gde su korisnici bili samo upozoravani da se u kernel učitavaju drajveri bez digitalnog potpisa.

Autor: Saša Vidanović

Izvor: B92

Default images

Zajednički imenitelj za obe tehnologije je da su one dostupne samo na 64-bitnim platformama. Ova činjenica je vrlo bitna, jer, iako su obe tehnologije bile spremne ranije, nisu mogle biti implementirane na 32-bitnim platformama zbog ogromnog broja aplikacija koje ne bi pravilno radile. Znači, postoji ogroman uticaj ovih tehnologija na postojeće aplikacije. Zato je Microsoft i izabrao da ove tehnologije budu dostupne samo na 64-bitnim platformana, jer trenutno ne postoji ogroman broj 64-bitnih kompjutera na tržištu, još je tišina na tom polju. Međutim, i pored takvog zatišja, dignuta je ogroman prašina oko njih. No, pođimo redom...

Kernel Patch Protection (PatchGuard)

PatchGuard tehnologija sprečava neautorizovane softverske komponente da vrše promene u Windows kernelu. Drugim rečima, nema više modifikacije Windows kernela koristeći nedokumentaovane i nepodržane funkcije. Još prostije rečeno, nema više hooking (hmm, kako bi se to prevelo na srpski, verovatno kačenje, ili  ali ja se ipak držim engleske reči) trikova. Glavni cilj ove tehnologije je da zaštiti integritet Windows kernela.

Hooking se može najlakše objasniti na sledeći način: Recimo da hoćemo da sakrijemo jedan proces iz spiska procesa kada se pozove Task Manager. Možemo da se, sa svojom funcijom, "zakačimo" na funkciju koja treba da prikaže spisak procesa na taj način što se svi pozivi vezani za tu funkciju prosleđuju našoj funkciji, tako da naša funkcija dobija originalni odziv od kernela, ali ga modifikuje (izbaci željeni proces iz spiska) i prosledi pravoj funkciji koja prikaže izlaz, na kome, naravno, nema željenog procesa. Vrlo logično, ali isto tako nedokumentovano.

Hooking metoda se najviše koristi u rootkit programima. Rootkit predstavlja skup programa koji skrivaju akcije onoga koji je rootkit instalirao na ciljni kompjuter, sa idejom da se osoba koja je rootkit instalirala ne otkrije. Postoje različite vrste rootkit programa, ali diskusija o njima prevazilazi okvir ovog teksta – za one koje ta problematika zanima preporučujem tekst Windows Rootkits of 2005 i sjajnu knjigu "Rootkits, Subverting the Windows Kernel". Ono što je važno za ovaj tekst je da rootkit programi spadaju u grupu malware programa, znači u grupu programa opasnih po bezbednost sistema (zajedno sa virusima, trojancima, crvima i sličnim egzotičnim organizmima). Međutim, pored rootkit programa, hooking maksimalno koriste proizvođači security aplikacija na 32-bitnim platfromama. Najčešće je hooking korišćen u nekim IDS (Intrusion Detection System), IPS (Intrustion Prevention System) i Personal Firewall programima, kao i u antivirus programima.

I tu dolazimo do srži problema: Kako razlikovati rootkit programe (loši momci) od legitimnih aplikacija (dobri momci) ako i jedni i drugi koriste hooking? Jedna vrlo talentovana poljska istraživačica na polju kompjuterske bezbednosti, Joanna Rutkowska, provela je nekoliko godina razvijajući tehnike detekcije rootkit programa i nedavno je izjavila da joj je najveći problem bio upravo to: kako razlikovati rootkit hooking od hooking-a koji dolazi od raznih antivirus, IDS/IPS i firewall programa. 

Sa druge strane, proizvođači security aplikacija su svesni da će potražnja za njihovim proizvodima potencijalno da opadne: zbog PatchGuard tehnologije, lošim momcima će sada biti mnogo teže da hook-uju Windows kernel, znači da će se smanjiti broj rootkit programa, a samim tim i potreba za detekciju istih. Da je stvar prilično ozbiljna, pokazuje činjenica da su kompanije kao što su Symantec i McAfee reagovale veoma burno na Microsoftov potez, nazivajući ga monopolističkim i anti-konkurentim potezom. Složio bih se sa njima, ali samo ako Microsoft plasira na tržište aplikaciju koja koristi hooking. U suprotnom se ne slažem. U međuvremenu, Microsoft je u otvorenom pismu objasnio šta planira da radi u vezi PatchGuard tehnologije: PatchGuard će biti po default-u uključen na svim 64-bitnim Windows platformama, i neće postojati opcija za isključenje. Proizvođačima security aplikacija biće obezbeđen kompletan set dokumentovanih API poziva pomoću kojih će moći ispraviti svoje aplikacije kako bi bile spremne za 64-bitnu arehitekturu i PatchGuard. I na kraju, neće biti nikakvih "privilegovanih" proizvođača, kojima će biti dozvoljeno da zaobiđu PatchGuard. Tu su naravno uključeni i Microsoft programeri, što je i jedino logično: jednostavno, nikome neće biti dozvoljeno da nedokumentovano menja kernel.

PatchGuard je veoma radikalno rešenje, uvedeno u pravom trenutku, ispred prelaska na 64-bitne platforme. PatchGuard tehnologija, sama za sebe, nije garant bezbednosti. Njena uloga je da se brani nedokumentovano menjanje kernela, ali takođe i da se sa velikim stepenom sigurnosti može napraviti razlika između legitimnog i malware programa, što olakšava detekciju loših momaka i, kao krajnji cilj,  štiti integritet kernela.

Kernel Module and Driver Signing

Ideja iza ovu tehnologiju je da se samo kernel-mod drajveri koji su digitalno potpisani mogu učitati u kernel. Osnovna uloga digitalnog potpisa je da obezbeđuje identitet kernel-mod drajvera i, što je još bitnije, obezbeđuje integritet koda. Znači, nijedan kernel-mod drajver koji nema digitalni potpis ili je na bilo koji način modifikovan, neće biti učitan u kernel.

Kao i kod PatchGuard tehnologije, obavezno potpisivanje kernel-mod drajevera biće obavezno na 64-bitnim platformama. Sledeća sličnost je da digitalno potpisivanje kernel-mod drajvera, samo za sebe, nije garant bezbednosti. Ova tehnologija štiti integritet kernela i povećava pouzdanost sistema. Na kraju, osnovni cilj je da se onemogući raznim rootkit i malware programima "tiho" učitavanje u kernel.

Međutim, na američkoj Black Hat konferenciji održanoj avgusta 2006, gore pomenuta Joanna Rutkowska je prezentirala rad Subverting Vista Kernel for Fun and Profit. Radeći sa administratorskim privilegijama na Windows Visti Beta 2, ona je prvo uspela da učita drajver bez digitalnog potpisa u kernel, a onda je koristeći AMD 64 SVM ekstenzije (poznate pod imenom Pacifica) prebacila Vista operativni sistem u virtuelnu mašinu, i sve to bez resetovanja kompjutera, iliti on the fly. Ceo koncept je nazvala Blue Pill, po analogiji iz filma Matrix.

Ovaj događaj je doveo do lanca kontroverznih diskusija o mogućim implikacijama, i pojavile su se dve strane: jedna koja brani Microsoft, a druga koja ga napada. Ovi prvi su govorili: Vrlo važno, pa imala je administratorske privilegije, to je ipak Beta verzija, a ovi drugi su govorili da Vista neće nikad biti bezbedna kao neki drugi operativni sistemi. Počela su da se ređaju pitanja tipa: Da li da pređem na Vistu? Da li da izbegavam AMD procesore koje imaju podršku za SVM? Da li uopšte da razmišljam o tehnologijama virtualizacije? Prosto rečeno, haos...

Microsoft nije reagovao do Windows Viste RC 2. Onda je Joanna na svom blogu objavila da je u Windows Visti RC 2 nemoguće učitati drajver bez digitalnog potpisa istim onim postupkom koji je predstavljen na Black Hat konferenciji. Tj. Microsoft je popravio propust, i više nema plave pilule i Matrix okruženja. Do daljnjeg, jer Joanna je skoro izjavila da planira da napravi još savršeniju plavu pilulu. I tako u nedogled.

Po meni, suština je sledeća: Jasno je da nema 100%-ne bezbednosti operativnog sistema, i nikad ga neće ni biti. Ne živimo u idealnom svetu. Što se same plave pilule tiče, ona je prvenstveno proof of concept za predhodno tvrđenje o bezbednosti operativnih sistema. Ja na kraju dajem glas za obe tehnologije, jer se odlično uklapaju u defence in depth logiku zaštite, koju od sveg srca propagiram kad god mogu.

Saša Vidanović radi kao konsultant u Credit Suisse-u u Zürich-u.

Ovo je arhivirana verzija originalne stranice. Izvinjavamo se ukoliko, usled tehničkih ograničenja, stranica i njen sadržaj ne odgovaraju originalnoj verziji.

40 Komentari

Možda vas zanima

Svet

Kina besna: "Tražite rat – dobićete ga"

Ministarstvo trgovine Kine objavilo je danas da se oštro protivi povećanju carina na kinesku robu u Sjedinjenim Američkim Državama i najavilo da će preduzeti odlučne mere da odbrani svoja prava i interese.

17:18

14.5.2024.

14 h

Podeli: