» »

Še ena ranljivost v Linux jedru

Še ena ranljivost v Linux jedru

SecurityFocus Online - Očitno se težave z ničelnimi kazalci v Linux jedru kar vlečejo, saj se je po tim. Cheddar bay ranljivosti in podobni ranljivosti v 2.4 in 2.6 jedrih, ki temelji na neustrezni obravnavi ničelnih kazalcev (tim. NULL pointer dereference) v jedru tokrat našla še ena ranljivost

Tudi tokrat gre za problem obravnave ničelnih kazalcev (NULL pointer dereference) in sicer v jedrih različic do 2.6.31 (ranljivo ni le jedro različice 2.6.31.2). Ranljivost - gre za lokalno ranljivost - se tokrat pojavlja v eCryptfs, deluje pa tudi na Ubuntu 9.04 če je mmap_min_addr večji od 0 (to je mogoče preveriti z ukazom "cat /proc/sys/vm/mmap_min_addr"). Prejšnja podobna ranljivost, ki sta jo odkrila Julien Tinnes in Tavis Ormandy je sicer zahtevala, da je na sistemu nameščen SELinux ali pa PulseAudio in da je mmap_min_addr nastavljen na 0.

S pomočjo ranljivosti napadalci lahko okvarijo vsebino pomnilnika RAM (tim. memory corrupt) in s tem onemogočijo delovanje sistema, po nepotrjenih podatkih pa naj bi bilo mogoče tudi zagnati poljubno programsko kodo. Popravki so sicer že na voljo.

In kdaj bo odkrita nova sorodna ranljivost?

28 komentarjev

Gandalfar ::

super novica! Se en nacin kako dobit roota na androidu!

terryww ::

prva stvar, ki pade na pamet - a nebi portali kako že narejeno OpenBSD rešitev? licenca je bsd, če pa bo rešitev za koga prepočasna, pa lahko loada kernel_insecure_but_fast.
It is the night. My body's weak.
I'm on the run. No time to sleep.

denial ::

Exploit je itak že javen. Instant UID 0 :)

Popravki so res na voljo, sam naj se javi kdor ima nameščen latest kernel ;)
SELECT finger FROM hand WHERE id=3;

poweroff ::

jmakov: Debian dodal podporo FreeBSD jedru

Debian je očitno prihodnost...
sudo poweroff

denial ::

Zadnja dva FreeBSD security advisory-ja:
KLIK
KLIK
SELECT finger FROM hand WHERE id=3;

Liker ::

Hm, nova lokalna ranljivost za linux?
Na zahodu nič novega bi rekel jaz.
Veliko vprašanje je koliko je še ostalih instant uid 0 exploitov, moja stava bi bila da jih je nezanemarljivo veliko.
Pač treba se bo navadit da je zanašanje na OS za varnost ne preveč pametno.
Drugače pa, ranljivo ni SAMO 2.6.31.2?
A smo rahlo za časom, glede na to da jaz že skoraj cel teden uporabljam precej novejšo zadevico:
[bwana@T400] uname -s -r
Linux 2.6.31.4

:P
Bolje bi bilo napisati da je ranljivo vse do vključno 2.6.31.1.

poweroff ::

Malce razmišljanja glede Linux vs. Windows varnosti.

Zdajle berem The Myths of Security od Johna Viege.

Sicer ni preveč kvalitetna knjiga, ima pa par zanimivih poglavij. Recimo eno, kjer se sprašuje ali je Apple res bolj varen (kot Windows).

No, Viega postavi zanimivo vprašanje.

Kaj pomeni, da je en program boljv aren, kot drugi. In izpelje. Imamo programa A in B. A ima 1000 ranljivosti, B pa samo 1. Vendar pa prvih 1000 ranljivosti ni nikoli odkritih (niti s strani hekerjev), tista 1 pa je.

Torej - prvi program je bolj ranljiv, drugi program pa bolj tvegan za uporabnika.

In potem glede Appla. Po njegovi oceni na 7 do 10% računalnikov teče OS X. In večinoma lastniki Applov ne uporabljajo antivirusa. No, potem zadevo še malce razdela in ugotovi, da je delež tistih Macov, ki bi bili zanimivi zanapadalce pravzaprav še precej nižji.

So pa stroški razvoja virusov za Maca precej višji kot stroški razvoja virusov za OS X.

Skratka, ROI (return of investment) je preprosto prenizek, da bi se splačalo razvijati viruse za Maca. In Viega sklene: "Therefore, simple malware economics is doing a good job of protecting Mac users - no AV necessary.".

Potem sicer doda, da se to utegne nekoč spremeniti in takrat bo treba kupiti antivirus. Do takrat pa - to ni potrebno.

No, sedaj pa lahko podobno analizo naredimo za Linux. Tržni delež Linuxa je še nižji, način uporabe Linuxa je tak, da je pisanje virusov zanj težje (praviloma običajen uporabnik ne laufa z administratorskimi privilegiji, posodobitve so precej hitre, arhitektura sistema je drugačna...), za Linux pa tudi ne obstajajo razvojna orodja za pisanje virusov (javno objavljenim exploitom pa hitro patchi).

Torej - uporaba Linuxa je za uporabnika manj tvegana, ker ga ščiti preprosta ekonomika piscev malwarea.
sudo poweroff

r0ker ::

ampak na vsaki 1 exploit ki ga objavijo je do 10 exploitov, ki jih ne objavijo. na teh 10 sta vsaj 2, ki ju (ZELO dolgo) ne odkrijejo in mogoče 1, ki ga ne odpravijo. odprta vrata v tr00 t33l svet

pecorin ::

ampak na vsaki 1 exploit ki ga objavijo je do 10 exploitov, ki jih ne objavijo. na teh 10 sta vsaj 2, ki ju (ZELO dolgo) ne odkrijejo in mogoče 1, ki ga ne odpravijo. odprta vrata v tr00 t33l svet


link?

denial ::

@pecorin
Kakšen link? Če bi obstajal link pol bi bili exploiti javni in znani. Si mogoče kdaj slišal za integer overflow v new[] operatorju čeprav je zadeva znana že leta? Kako si lahko prepričan, da ta class of vulnerabilities ravno sedaj nekdo ne izkorišča? Tudi NULL ptr derefs so do nedavna veljali za unexploitable ter DoS only contition.

Torej - uporaba Linuxa je za uporabnika manj tvegana, ker ga ščiti preprosta ekonomika piscev malwarea.

Se strinjam. Če bi imel Linux večjo bazo uporabnikov bi bil bolj interesanten tudi piscem malwarea. It's all about economics. :)
SELECT finger FROM hand WHERE id=3;

Zgodovina sprememb…

  • spremenil: denial ()

Tear_DR0P ::

Torej - uporaba Linuxa je za uporabnika manj tvegana, ker ga ščiti preprosta ekonomika piscev malwarea.


hmm - mogoče si manj ogrožen pred generičnim malwareom, definitivno pa si zelo zanimiv za ciljane napade in tukaj je lahko ROI mnogo večji - rajt?
"Figures don't lie, but liars figure."
Samuel Clemens aka Mark Twain

poweroff ::

Ja, če si policija ali veliko podjetje. Ne pa (nujno), če si navaden domači uporabnik.
sudo poweroff

ALT ::

no js ne bi kr tko vleku vsporednice z za osx se ne splacajo, torej se tudi za linux sigurno ne splacajo.

prva zadeva pri linuxu je, da se v vecini primerov linux nahaja na serverjih in so takoj bolj zanimivi od osxa, zaradi dobre linije v svet, 24/7 delovanja, podatkov, ki se nahajajo na njih itd..

morda res ni tako zanimiv za pisanje klasicnih virusov, ampak za exploite pa je zelo zanimiva platforma. in se tudi na veliko skenira za primernimi linux kistami, in taksni rootajo serverje kot tudi domace uporabnike, karkoli se pac najde.

sicer bi pa po moje lahko mass skeniranju + remote root exploit + rootkit kar rekli virus. sicer deluje nekoliko drugace kot klasicni virusi, ampak zadeva je lahko cisto avtomatizirana in na koncu uporabnika ne zanima tocno kaj ga je zadelo, bistvo je da se jih isce..

denial ::

Nice deadlock ;) Confirmed on Ubuntu 9.04 (x86), kernel 2.6.28-15.
SELECT finger FROM hand WHERE id=3;

fabrskd ::

Imamo programa A in B. A ima 1000 ranljivosti, B pa samo 1. Vendar pa prvih 1000 ranljivosti ni nikoli odkritih (niti s strani hekerjev), tista 1 pa je.

Torej - prvi program je bolj ranljiv, drugi program pa bolj tvegan za uporabnika.


Lovske...
Screw you guys i'm going home!!!

poweroff ::

Zakaj že?
sudo poweroff

techfreak :) ::

No, sedaj pa lahko podobno analizo naredimo za Linux. Tržni delež Linuxa je še nižji, način uporabe Linuxa je tak, da je pisanje virusov zanj težje (praviloma običajen uporabnik ne laufa z administratorskimi privilegiji, posodobitve so precej hitre, arhitektura sistema je drugačna...), za Linux pa tudi ne obstajajo razvojna orodja za pisanje virusov (javno objavljenim exploitom pa hitro patchi).

Pa za posodobitev ti ni potrebno celotnega sistema ponovno zagnati.

Liker ::

Posodobitev kernela brez reboota? (vecino resnih uid 0 exploitov tako in tako cilja na jedro)
Ja, da se, ampak tehnicno gledano gre vseeno za soft reboot, saj je treba vse procese ustavit in ponovno zagnat.
Je pa res da se da BIOS boot-u izognit.

ABX ::

Malce razmišljanja glede Linux vs. Windows varnosti.

Zdajle berem The Myths of Security od Johna Viege.

Sicer ni preveč kvalitetna knjiga, ima pa par zanimivih poglavij. Recimo eno, kjer se sprašuje ali je Apple res bolj varen (kot Windows).

No, Viega postavi zanimivo vprašanje.

Kaj pomeni, da je en program boljv aren, kot drugi. In izpelje. Imamo programa A in B. A ima 1000 ranljivosti, B pa samo 1. Vendar pa prvih 1000 ranljivosti ni nikoli odkritih (niti s strani hekerjev), tista 1 pa je.

Torej - prvi program je bolj ranljiv, drugi program pa bolj tvegan za uporabnika.

In potem glede Appla. Po njegovi oceni na 7 do 10% računalnikov teče OS X. In večinoma lastniki Applov ne uporabljajo antivirusa. No, potem zadevo še malce razdela in ugotovi, da je delež tistih Macov, ki bi bili zanimivi zanapadalce pravzaprav še precej nižji.

So pa stroški razvoja virusov za Maca precej višji kot stroški razvoja virusov za OS X.

Skratka, ROI (return of investment) je preprosto prenizek, da bi se splačalo razvijati viruse za Maca. In Viega sklene: "Therefore, simple malware economics is doing a good job of protecting Mac users - no AV necessary.".

Potem sicer doda, da se to utegne nekoč spremeniti in takrat bo treba kupiti antivirus. Do takrat pa - to ni potrebno.

No, sedaj pa lahko podobno analizo naredimo za Linux. Tržni delež Linuxa je še nižji, način uporabe Linuxa je tak, da je pisanje virusov zanj težje (praviloma običajen uporabnik ne laufa z administratorskimi privilegiji, posodobitve so precej hitre, arhitektura sistema je drugačna...), za Linux pa tudi ne obstajajo razvojna orodja za pisanje virusov (javno objavljenim exploitom pa hitro patchi).

Torej - uporaba Linuxa je za uporabnika manj tvegana, ker ga ščiti preprosta ekonomika piscev malwarea.


99% okuženih ljudi ima OS ki je popolnoma zanemarjen, ter klikajo na vsako neumnost ki vidijo na Internetu.
Sicer pa omogoči netbios protokol na firewall-u in štopaj koliko sekund rabiš za okužbo. Jaz stavim da je windows mašina gone in 60 sec. :)
Vaša inštalacija je uspešno spodletela!

Zgodovina sprememb…

  • spremenilo: ABX ()

fiction ::

prva stvar, ki pade na pamet - a nebi portali kako že narejeno OpenBSD rešitev?
Nevem zakaj bi to bilo potrebno. OpenBSD kljub mitom ni tako neunicljiv. Res je, da so naredili zelo veliko ukrepov za zagotavljanje visje varnosti, ampak tukaj je se "Theov attitude" in njihovo preklasificiranje varnostnih ranljivosti samo zato, da ne bi bilo potrebno povecati stevca na prvi strani.

Da ne govorimo o tem, da gre tam za svoj OS, Linux pa je le jedro. Enkrat je licenca BSD, drugic GPL. Linux verjetno podpira vec strojne opreme itd. Ce hoces OpenBSD pac vzames OpenBSD, sicer pa kaj drugega. Obstaja pa tudi Debian distribucija, s katero ves GNU userland stuff deluje na BSD jedru, ce ze hoces to.

denial: Ja, v FreeBSD-ju so koncno dodali mitigation, ki preprecuje preko ustrezne sysctl nastavitve mappiranje naslova 0 za navadne uporabnike. Na zalost precej kasneje kot v Linux kernelu - je pa res da prej NULL pointer dereference za FreeBSD niso bili znani s strani whitehat hackerjev. Se je pa vse skupaj jasno spremenilo zaradi velike "priljubljenosti" v Linux jedru.

Si mogoče kdaj slišal za integer overflow v new[] operatorju čeprav je zadeva znana že leta?
Tudi po prebiranju odlicnega clanka nimam pojma kaj naj bi bil overflow v new[] operatorju :)

Integer overflow je pravzaprav izmikanje raznim preverjanjem s katerimi se zeli prepreciti buffer overflow napake. S pomocjo negativne vrednosti je npr. stevilka manjsa od meje, dejansko pa se ob drugacni interpretaciji stevilke se vedno skopira prevec podatkov v fiksen kos pomnilnika.

Ce mene vprasas je "integer overflow" ze out.

Integer overflowi so se pojavili takoj po tem, ko se je izkazalo, da razvijalci vendarle mislijo na varnost in preverjajo vhod (ze kar nekaj let nazaj). Le da zal se vedno ne dovolj dobro. Kar nekaj problemov v Linux jedru je ze bilo na racun tega. Razlika je tudi v tem, da takrat nikoli nobeden ni dvomil, da je stvar hud problem in exploitable. Se pravi integer overflow je le buffer overflow++ medtem ko je imho "NULL pointer dereference" cisto svoj tip problemov. Ok, se vedno pa gre za "memory corruption".

new[] je "objektni" nacin alociranja pomnilnika na kopici ekvivalenten malloc() v C-ju. Jasno s cudno velikostjo tega kar alociras, lahko pride do problemov. Ampak ni pa problem new[].

fiction ::

Posodobitev kernela brez reboota? (vecino resnih uid 0 exploitov tako in tako cilja na jedro)
Ja, da se, ampak tehnicno gledano gre vseeno za soft reboot, saj je treba vse procese ustavit in ponovno zagnat.
Vse skupaj se da s pomocjo Ksplice. Novica je bila objavljena celo tukaj. Ne recem, vse skupaj ni ravno posodobitev kernela, ampak bolj neko runtime patchanje trenutnega jedra. Torej tvegana goljufija za zmanjsanje stevila ponovnih zagonov, ampak pomaga pa lahko vseeno. Sicer je pa tako ali tako potreben downtime.

fiction ::

Torej - uporaba Linuxa je za uporabnika manj tvegana, ker ga ščiti preprosta ekonomika piscev malwarea.
To je nekako tako kot bi rekel, da je nezaklepanje stanovanja bolj tvegano, ce stanujes v bogatejsem delu mesta. Intuitivno je mogoce tudi stanovanje v revnih predelih bolj ogrozeno, ker je tam vec kriminala (ekvivalentno temu, da je mogoce zaradi lazjega odkrivanja napak v Linux jedru lahko tudi cenejsi razvoj malwara in se vseeno splaca). Nimam pojma, ampak definitivno pa ni tako preprosto, da je vse odvisno samo o trznega deleza in bi nek drug OS pri vecjem trznem delezu imel sigurno tudi vec znanih napak. Kaj ce bi trzni delez povecal ravno zaradi odsotnosti napak (kakorkoli ze bi to dosegel).

Problem je ze to, da obstaja ranljivost, ki pri tebi ni bila odpravljena. Ce nekdo vlomi k tebi se pac ne bos zadovoljil s podatkom, da si zdaj eden od tistih, ne vem, 1 % ljudi, ki so jim vlomili ("welcome to the club!" :) ). Zanimalo te bo kaj lahko naredis, da se kaj takega ne bo moglo vec zgoditi.

Zgodovina sprememb…

  • spremenil: fiction ()

fiction ::

MrStein ::


So pa stroški razvoja virusov za Maca precej višji kot stroški razvoja virusov za OS X.

?
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

MrStein ::


Sicer pa omogoči netbios protokol na firewall-u in štopaj koliko sekund rabiš za okužbo. Jaz stavim da je windows mašina gone in 60 sec. :)

Mam gor Windows (XP) mašino kar dolgo, pa ni nič gone.


sicer bi pa po moje lahko mass skeniranju + remote root exploit + rootkit kar rekli virus.

Reče se jim "worm".
In jih kar dosti kroži, sodeč po logih mojega ruterja.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Zgodovina sprememb…

  • spremenil: MrStein ()

denial ::

@fiction:
Ne bereš pravih člankov :D ... compiler specific, javno znano od 2002, celo Mark Dowd je objavil nekaj člankov na to temo: KLIK.

IMO pa je tržni delež zelo pomemben faktor. Koliko researcherjev, ki iščejo security buge v Linuxu pa poznaš? In koliko Mac OS X bug hunterjev (tle sta itak samo dva omembe vredna: Dino Dai Zovi ter Charlie Miller). A začnem naštevati Windows bug hunterje? It's all about fame, fortune and glory.

@ABX:
Kratek spomin kaj? A nisem pred nekaj meseci postavil na net Windows mašino z odprtimi NetBIOS porti? Ne klati neumnosti.
SELECT finger FROM hand WHERE id=3;

Zgodovina sprememb…

  • spremenil: denial ()

techfreak :) ::

Posodobitev kernela brez reboota? (vecino resnih uid 0 exploitov tako in tako cilja na jedro)
Ja, da se, ampak tehnicno gledano gre vseeno za soft reboot, saj je treba vse procese ustavit in ponovno zagnat.
Je pa res da se da BIOS boot-u izognit.

Pri Windowsu rabim za vsako posodobitev restartati strežnik. Kar naj si mislijo, da bom Windows Server uporabljal na live strežniku.

fiction ::

Ne bereš pravih člankov :D ... compiler specific, javno znano od 2002, celo Mark Dowd je objavil nekaj člankov na to temo: KLIK.

Zelo zanimivo. Se pravi "integer overflow" v kodi, ki jo zgenerira gcc oz. bolje receno g++ za new[]. (*4 je verjetno zaradi velikosti naslovov). Po letu objave bi sklepal, da je to ze odpravljeno. Ce ni je to precej bedno.

IMO pa je tržni delež zelo pomemben faktor.
Sej nisem rekel, da ni. Ampak ni pa _samo_ trzni delez odlocilen. Trzni delez vpliva na to, da bo vec ljudi gledalo, ker so bolj motivirani. Ampak potem je se vprasanje tega kako je lazje odkriti ranljivost: z raznimi blackbox testiranji (fuzzing) ali preko auditanja izvorne kode. Poleg tega je vprasanje se, ce je stevilo napak na 1000 vrstic kode pri x in y enako.
Mogoce bo tudi ce bi imel enako popularna x in y precej razlicno stevilo napak. Seveda lahko govoris le o odkritih napakah, ker spet ne ves kaksno je tisto pravo razmerje med napakami in odkritimi (in po moznosti v redu popravljenimi) napakami.


Vredno ogleda ...

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

Nova (stara) ranljivost v Linux in OpenBSD

Oddelek: Novice / Varnost
223976 (2508) LightBit
»

Nova resna ranljivost v Linux jedrih 2.4 in 2.6 (strani: 1 2 )

Oddelek: Novice / Varnost
7310111 (7509) karafeka
»

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

Oddelek: Novice / Varnost
73470 (2540) denial
»

Nice summer reading

Oddelek: Informacijska varnost
172288 (1725) poweroff

Več podobnih tem