» »

Na BlackHatu prikazano kako zaobiti Microsoftovo 'killbit' zaščito

Na BlackHatu prikazano kako zaobiti Microsoftovo 'killbit' zaščito

Slo-Tech - Active X kontrolniki so vir številnih ranljivosti v Microsoft programski opremi, posebej problematični pa so tisti, ki so razviti na podlagi Microsoft Active Template Library. ATL namreč vsebuje številne ranljive knjižnice in s pomočjo izrabe napak preko Active X je mogoče na računalnik neopazno namestiti zlonamerno programsko opremo.

Ko Microsoft odkrije ranljiv kontrolnik, nanj s popravkom nastavi tim. killbit, kar pomeni, da teh kontrolnikov Internet Explorer ne zažene.

Vendar pa so nekateri raziskovalci ugotovili, da je killbit mogoče zaobiti in tako vseeno zagnati ranljiv kontrolnik.

V predstavitvi The Language of Trust: Exploiting Trust Relationships so raziskovalci Mark Dowd, Ryan Smith in David Dewey prikazali kako Microsoftovo zaščito zaobiti.

Raziskovalci so pred tem kontaktirali Microsoft, ki je dan pred predstavitvijo, 28. julija, izdal popravek za Internet Explorer MS09-034.

Za razliko od SE Linux "Cheddar Bay" ranljivosti, ki jo je bilo do izdanega popravka mogoče izrabiti samo na testni distribuciji RHEL 5, pa so v tem primeru ranljivi številni produkcijski računalniki po vsem svetu.

7 komentarjev

BaToCarx ::

In je ravnovesje spet poravnano. :D M$ vs Lunix

fiction ::

Tisto ni bila "Cheddar Bay" ranljivost - to je samo ime, ki se ga je izmislil avtor exploita. Slo je za tun null pointer dereference (zaradi prepoznega checka) in zadeva je bila prisotna v 2.6.30 Linux jedru. RH je pac dodal to jedro v svojo testno distribucijo, ampak ranljiv je bil pa kdorkoli je uporabljal to verzijo kernela. SELinux je omogocal samo lazjo izkoriscanje napake, ni bil pa problem omejen na SELinux.

Za razliko od tistega ta napaka samo omogoca poganjanje ranljivih ActiveX kontrolnikov v IE. Torej se vedno mora nekje biti ranljiv kontrolnik, user mora obiskati tisto stran itd. Kljub temu, da je vec uporabnikov z IE je impact veliko manjsi. Ne recem pa, da zadeva ni kriticna.

Aja bi bilo pa lepo videti predstavitev kako so raziskovalci to dosegli. Da jim je to uspelo in bodo o tem govorili na BH je namrec old news.

Matthai ::

Da, ranljiv je bil kdorkoli je uporabljal to jedro (plus SELinux || PulseAudio), ampak takih ni veliko. Ker kot rečeno je bil edini distro, ki je uporabil ta kernel RedHat.

Obseg problema je torej bistveno drugačen. Sta pa oba problema že odpravljena, tako da problema glede tega sicer ni, vprašanje je pa, koliko Windows uporabnikov bo poupdatalo svoje mašine. To pa je problem, ker kot rečeno problema neupdatanih 2.6.30 kernelov na Linux strani praktično ni.
All those moments will be lost in time, like tears in rain...
Time to die.

fiction ::

Da, ranljiv je bil kdorkoli je uporabljal to jedro (plus SELinux || PulseAudio), ampak takih ni veliko.
Ranljiv je bil kdorkoli je uporabljal to verzijo jedra. To kar omenjas ti, je samo kdo je bil exploitable. Pri tem je treba omeniti, da bi lahko shekali tudi sisteme ki so imeli mmap_min_addr nastavljen na 0. Sam sem naletel na 2 taka (redno updatani Ubuntu 9.04 masini, sicer brez tega jedra ampak vseeno). Ne razumem pa zakaj je temu bilo tako (mogoce je instalacija kaksnega paketa povzrocila to). Poleg tega tudi ne ves, da ni mogoce se kje kaksen drug program, ki omogoca uporabniku mapiranje naslova 0. Da ne govorimo o tem, da bi teoreticno tudi root lahko izkoristil ranljivost za kaksen chroot-break, dostop do ring0...

Ok mogoce je res, da nobena major distribucija ni uporabila tega jedra, ampak kako pa ves koliko ljudi je (oz. ni) updatalo kernel(a) na roko? Navsezadnje je bila to cisto legalna nova verzija. No ja, verjetno je IE userjev vseeno vec. :)

Aja BTW: Je ta njihova prezentacija kje dostopna? Sem kar firbcen kaj so dejansko pogruntali.

Zgodovina sprememb…

  • spremenil: fiction ()

denial ::

Aja BTW: Je ta njihova prezentacija kje dostopna? Sem kar firbcen kaj so dejansko pogruntali.


Zadevo imaš opisano v dokumentu "The language of trust..." (glej novico) na strani 79 (Highlander bit).

Na kratko:
CComVariant::ReadFromStream(), ki je del ATL, nima funkcionalnosti preverjanja podatkovnega tipa niti ne izvaja security checka (npr. kill-bit set). To omogoča inicializacijo poljubnega ActiveX gradnika, čeprav ima le-ta postavljen kill-bit. Sledi izkoriščanje ranljivosti v inicializiranem gradniku (npr. buffer overflow, heap overflow...). Metodo CComVariant::ReadFromStream() vsebujejo vsi COM objekti prevedeni z ATL.

Da, zelo huda zadeva.
SELECT finger FROM hand WHERE id=3;

Zgodovina sprememb…

  • spremenil: denial ()

fiction ::

Mogoce sem samo jaz slep, ampak tisto kar je linkano v novici je samo opis predavanja (in biografija raziskovalcev) ne pa nek PDF, PS ali karkoli kar bi lahko bolj podrobno preucil. Tisto drugo je pa video, ki le prikazuje izrabo napake (sem ze prej pogledal). Forgive me my ignorance, ampak a bi lahko prosim prilepil en direkten URL do tega dokumenta, da ne bom prevec iskal.

denial ::

Presneto, dokument res ni linkan v izvorni novici: KLIK
SELECT finger FROM hand WHERE id=3;


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Huda ranljivost v vseh napravah z Wi-Fi (strani: 1 2 )

Oddelek: Novice / Varnost
7215294 (10259) SeMiNeSanja
»

Slabi časi za zasebnost v Androidu (strani: 1 2 )

Oddelek: Novice / Varnost
7217552 (13152) matijadmin
»

Napad z ničelno predpono na SSL/TLS certifikate že "v divjini"

Oddelek: Novice / Varnost
415253 (3631) McMallar
»

Na BlackHatu prikazano kako zaobiti Microsoftovo 'killbit' zaščito

Oddelek: Novice / Varnost
72807 (1877) denial
»

Resna ranljivost v Linuxu: Cheddar Bay

Oddelek: Novice / Varnost
304635 (3263) riba1122

Več podobnih tem