» »

Odkrita resna varnostna pomankljivost v Debianovem naključnem generatorju števil za OpenSSL

Slo-Tech - Kot poročajo na poštnem seznamu Debianove skupine za zagotavljanje informacijske varnosti, je raziskovalec Luciano Bello odkril, da OpenSSL paket Linux distribucije Debian vsebuje predvidljiv generator naključnih števil.

Do napake je prišlo zaradi prilagoditev paketa distribuciji Debian, kar pomeni, da so neposredno prizadeti samo Debian in na njem temelječi sistemi (tudi Ubuntu!). Ranljivost vsebujejo vse različice openssl kasnejše od 0.9.8c-1, ki je bila sprejeta v Debianova skladišča 17. septembra 2007.

Zaradi ranljivosti se priporoča menjavo vseh kriptografskih ključev za SSH, OpenVPN, DSNSEC, SSL/TLS ter ključe uporabljene v X.509 certifikatih. Prav tako so kompromitirani tudi vsi DSA ključi uporabljeni za podpisovanje in avtentikacijo, saj Digital Signature Algorithm uporablja ranljivi naključni generator števil. GnuPG in GNUTLS ključi niso kompromitirani.

Uporabnikom Debiana, Ubuntuja in ostalih na Debianu temelječih distribucij svetujemo čimprejšnjo varnostno posodobitev in menjavo vseh ranljivih šifrirnih ključev.

48 komentarjev

Matthai ::

Zloraba oblasti, avtokracija in tema nikoli ne pridejo hipoma, vedno je vmesno
obdobje mračenja, ko se dan preveša v noč; biti moramo pozorni opazovalci
okolja in varuhi luči, da ne postanemo nemočni ujetniki teme. --W. Douglas

MrStein ::

Se da kje videt omenjeni "incorrect Debian-specific change" ?
Teštiram če delaž - umlaut dela: ä ?

Jst ::

Crypographic key may be predictable. Naslov novice je kot kakšna katastrofa, a za razbitje ključa se boš še vedno namučil. Ali pa je tako predictable, da si niso sploh upali povedati. Vsebina je dvomljiva, ker ne pove, koliko je dejansko možnost dobiti weak key.


--
Use openSuse
Proton decay is a tax on existence.

fiction ::

[...] ki je bila sprejeta v Debianova skladišča 17. septembra 2007

V tekstu pise 2006.
Tole je potem obsolete in se naceloma lahko zbrise.

Drugace pa obstaja program, ki preveri ali je key slab:
http://security.debian.org/project/extr...

Jasno, da se je treba napadalcem se zmeraj malo namuciti. Ampak naceloma tudi ce jim je treba poskusiti le polovico tistega kar bi morali prej, gre se zmeraj za kriticno ranljivost.
Je pa pomoje se veliko hujse in se da lepo na podlagi casa dokaj hitro ugotoviti takrat uporabljeno nakljucno stevilo in potem trivialno iz tega izracunati zasebni kljuc.

fiction ::

<rant>Kaj jim je bilo pa treba po svoje spreminjati kodo o kateri nimajo pojma? Ok, eno luknjo so odpravili prej kot vsi ostali - samo kaj jim to pomaga ce so s tem dodali se hujso. Mar bi samo pocakali na uraden popravek in ga backportali oz. v svojo distribucijo vgradili novejso verzijo programa, kar bi bilo se najbolj clean. Neka nova minor verzija OpenSSL ne bi smela uniciti cesa drugega.</rant>

MrStein ::

Folk je včasih analen. Zelo. Posebej ko je zraven toliko politike kot v debian-u.
(en preprost bug recimo več let noče(jo) popraviti. Ker en user jim že ne bo solil pamet. Gre za one-liner. Obvious. Se pa to tiče "maintainer"-ja prej, kot celega tima)
Teštiram če delaž - umlaut dela: ä ?

G-man ::

No, paketi so že posodobljeni... To je bilo pa hitro :)

Jux ::

Jeps, Ubuntu me je danes pričakal s seznamom popravkov. :)
web&blog&etc: http://lukabirsa.com

Azrael ::

Zanimivo, da več kot leto ni nihče nič opazil. Verjetno je res (nepregledne) kode preveč. Ampak kakorkoli že, nekaj drugega me zanima:

Ali je kaj znano, je bil ta dodatek (slab generator naključnih števil) enostavno šlamparija ali je bilo "naključje"?
Nekoč je bil Slo-tech.

redo ::

No, samo update ni dovolj. Potrebno je na novo zgenerirati vse ključe. Da citiram iz zgornjega linka[debian.org] (tretji odstavek, lenobe :)):

It is strongly recommended that all cryptographic key material which has
been generated by OpenSSL versions starting with 0.9.8c-1 on Debian
systems is recreated from scratch. Furthermore, all DSA keys ever used
on affected Debian systems for signing or authentication purposes should
be considered compromised;

Še vedno pa čakam, kaj bodo zapisali v key-rollover[debian.org]. Če potrebujete nekaj na hitro, je (v tem trenutku) predvsem za SSH nekaj napisano tukaj[debian.org] (tukaj je tudi link do "sporne" kode). Če pa veste kaj delate pa lahko kaj dopišete. Nekaj sem že postoril sam, za kaj več bom pa počakal.

Vsekakor pa nebi hitel s križanjem maintainerja (ja, priznam, ponekod so res nemarni, ampak dvomim, da je tukaj tak primer).

joebanana ::

Mislim, da mi je ob namestitvi popravkov ponovno zgenerilal ključe. Mislm biu je en oknčk pa neki o klučih govoru. Sam nism bral u detajle. :D

OmegaBlue ::

dsa host key na novo naredi
Never attribute to malice that which can be adequately explained by stupidity.

BigWhale ::

Jaz, ko sem novico prebral tukaj, je bil za ubuntu popravek ze na voljo.

hruske ::

Ubistvu je kr hudo. Vzdrževalec openssl paketa v Debianu je želel počistit opozorila, ki jih je ven metal Valgrind (program, s katerim lahko preverjaš če program pravilno upravlja s pomnilnikom), nič hudega sluteč pa je pravzaprav zakomentiral dva klica, ki sta med drugim uporabljala tudi neinicializiran pomnilnik. S tem se je opozoril sicer znebil, ni pa vedel, da k naključnemu številu, ki ga je generiral, ni bila dodana vrednost, ki jo je zgenerirala temu namenjena funkcija v openssl knjižnici, v praksi pa je to potem pomenilo, da so bili glavni vir naključnosti PID in podobne ne ravno naključne vrednosti. Vseh različnih tako zgeneriranih ključev je precej malo, približno četrt miljona.

Ironično je tudi to, da so bile spremembe objavljene tudi na OpenSSL mail listi, ampak niso ujeli te napake.

Drugače pa ... pazite kako boste nadgrajevali, ker se z novimi ssh paketi namesti tudi blacklista šibkih ključev, kar pomeni, da šibki ssh ključi crknejo, ko je enkrat nov paket instaliran.
Errarum humane est.

hruske ::

Ja, BigWhale, na voljo je že drugi popravek, ki popravi to, da ssh-vulnkey preveri tudi ključe v authorized_keys, ki imajo spredaj še kakšen veljaven ukaz v stilu command=blabla.
Errarum humane est.

Bakunin ::

se dobro da imam woody ;]
MTU test > http://www.letmecheck.it/mtu-test.php

"I will not rule, and also ruled I will not be! " | irc://irc.sioff.net/slo-tech

In Extremis ::

HD Moore is in the house:
KLIK

darkolord ::

Jaz, ko sem novico prebral tukaj, je bil za ubuntu popravek ze na voljo.

Že po letu in pol!
spamtrap@hokej.si
spamtrap@gettymobile.si

Matevžk ::

... od nastanka napake. In po nekaj urah od odkritja napake.
lp, Matevžk

MrStein ::

Kak je lahko neinicializiran blok memorije dober vir entropije ???
Teštiram če delaž - umlaut dela: ä ?

fiction ::

No ja, sej popravek ni v bistvu nic drugega kot to, da se tisti zakomentiran del kode nazaj
odkomentira. V bistvu je kolikor to stekam problematicen samo 1 zakomentiran MD_Update()
klic, ki bi moral incializirati seed z neko nakljucno vrednostjo pa ga ne.

Ponavadi je MD_Update() bral nek neincializiran kos pomnilnika, kar dejansko
ni bistveno izboljsalo randoma, je pa povzrocilo warninge v Valgrindu.
Problem je to, da je potem Q (nick od tega tipa, ki je commital popravek) zakomentiral
vse MD_Update() klice. Pri enem od teh je bil buf dejansko veljaven nakljucen vhod, ki bi
se moral uporabiti za inicializacijo seeda.

Se maili na openssl-dev:
http://marc.info/?t=114651088900003&r=1...

Se pa se vedno ne strinjam s tem, da ima distribucija neke svoje verzije programov.
Naj pac samo dodajajo popravke oz. nove verzije od uradne verzije.

Krivda je na obeh straneh: Debian ne bi smel kar tako spreminjati kode za katero ni 100% kaj dela, OpenSSL bi pa moral pisati boljse komentarje in tako kriticne dele kot je inicializacija RNG-ja jasno oznaciti.

Že po letu in pol!
Ne mores steti casa, ko se za napako sploh se vedelo ni. Vazen je reakcijski cas po tem, ko je bil problem odkrit.

fiction ::

Kak je lahko neinicializiran blok memorije dober vir entropije ???

Saj ni. To je bil bolj neke vrste security-through-obscurity. V Debianu so hoteli odstraniti to obskurnost, ki je povzrocala probleme z debugiranjem ni pa prinasala neke bistveno boljse nakljucnosti. OpenSSL je imel v ta namen #define PURIFY, ki teh slabih klicev ni vkljucil v debug verzijo.

Problem je samo v tem, da enkrat buf ni bil neinicializiran kos pomnilnika, ampak nek dober random vhod, ampak so tudi to odstranili. Valgrind se nad tocno tisto vrstico sigurno ni pritozeval, fora je samo v tem, da je izgledala podobno kot vse ostale kjer se je. Iz kode pa ni bilo takoj jasno ali je buf inicializiran ali ne. Tudi ce bi pogledal vrednost spremenljivke, so notri bili neki nakljucni znaki in nisi vedel ali je to neinicializiran pomnilnik ali nek dober random. Kot sem prej rekel: samo en komentar v stilu
/* WARNING: Here the seed gets initialized, do not change unless you know what you are doing */
pa do tega ne bi prislo. Je bil pa ves hint afaik samo v tem, da ta klic pa ni bil vkljucen v #ifdef PURIFY.

Zgodovina sprememb…

  • spremenil: fiction ()

BigWhale ::

Jaz, ko sem novico prebral tukaj, je bil za ubuntu popravek ze na voljo.

Že po letu in pol!


No, pomemben je cas, ki ga nekdo podrebuje za odpravo napake. Cas za odkritje napake je nekaj drugega.

Saj to sam dobro ves... ;>

MrStein ::

fiction:
Se pa se vedno ne strinjam s tem, da ima distribucija neke svoje verzije programov.
Naj pac samo dodajajo popravke oz. nove verzije od uradne verzije.


Kaj pa če je upstream na 2 mesečnem dopustu ?
Pa je napaka "severe" ? Rabiš fix ?

Ali pa upstream pravi "ja, to je resna stvar, si bomo vzeli čas in temeljito premislili" ?

Ne pozabi, da imajo lahko upstream-i (ki jih je sto različnih vrst, od privatnih oseb do oddelkov v korporacijah) drugačen pogled na stvari kot distribucije.

Kolko vem slackware nima patchane pakete. Iz preprostega razloga, ker dela stvar en sam človek in niti teoretično nima časa milijon paketov drugih ljudi debugirat, fixat in testirat.

The world is not perfect ...
Teštiram če delaž - umlaut dela: ä ?

Matthai ::

H. D. Moore:

With this key set, we can compromise any user account that has a vulnerable key listed in the authorized_keys file. This key set is also useful for decrypting a previously-captured SSH session, if the SSH server was using a vulnerable host key. Links to the pregenerated key sets for 1024-bit DSA and 2048-bit RSA keys (x86) are provided in the downloads section below.


We are f**cked hard... ;(
Zloraba oblasti, avtokracija in tema nikoli ne pridejo hipoma, vedno je vmesno
obdobje mračenja, ko se dan preveša v noč; biti moramo pozorni opazovalci
okolja in varuhi luči, da ne postanemo nemočni ujetniki teme. --W. Douglas

Matevžk ::

Ali pa upstream pravi "ja, to je resna stvar, si bomo vzeli čas in temeljito premislili" ?

Potem to pomeni, da je stvar resna in si je treba vzeti čas.
Ravno tale primer, tale napaka Debiana, kaže na to, kaj se zgodi, če si ne vzameš časa. In to za odpravo warningov, za katere je bilo očitni, da ne delajo škode (ni pa bilo preverjeno, če delajo kaj koristi) ...
lp, Matevžk

RejZoR ::

Pri kriptografiji velja eno in edino sveto pravilo.
Vsak kriptografski algoritem je tako močen kot je močna (oz bug free) njegova implimentacija.
Imaš lahko AES4096, pa če zajebeš pri implimentaciji ti še tko močen algoritem ne pomaga nič.
RejZoR's Flock of Sheep @ rejzor.wordpress.com

In Extremis ::

Objavljeno 12/5, torej dan pred uradno objavo PRNG pomanjkljivosti: KLIK
Naključje?

"This flaw is ugly because even systems that do not use the Debian software need to be audited in case any key is being used that was created on a Debian system." - HD Moore


All your SSH keys are belong to HD Moore :)

Zgodovina sprememb…

fiction ::

Kaj pa če je upstream na 2 mesečnem dopustu ?
Pa je napaka "severe" ? Rabiš fix ?

Ja ok, vcasih je to, da distribucija popravlja programe, dobro. Ampak to bi morala biti prej izjema kot pa pravilo. Razni varnostni popravki ali showstopper fixi, bi se tako lahko dodajali, ampak takoj ko bi bila na voljo nova verzija (z uradnim popravkom), bi distribucija zacela uporabljati tisto.

Ce upstream ni resen in to licenca dopusca bi Debian lahko naredil svoj fork, ki bi ga po svoje razvijal oz. samo na vsake toliko casa kopiral not featurje druge verzije. Ampak moralo bi biti jasno to je "foo", to pa "bar". In seveda da je "bar" je cisto locen od "foo", razen tega da ima isto funkcionalnost. Uporabnik bi moral imeti moznost se vedno instalirati paket "foo", ceprav recimo Debian razvija "bar". Pri tem bi dobil opozorilo, ce res hoce imeti "foo" in ne morda "bar". Seveda si lahko vsak prevede "foo" iz izvorne kode, ampak vecina ljudi je lenih in hoce imeti ze preveden paket. Na ta nacin bi uporabnik odlocal ali hoce, da mu distribucija samo priskrbi prevedeno verzijo ali naj tudi skrbi za popravke.

IMHO mora distribucija samo sestaviti komponente, ne pa tudi aktivno sodelovati pri njihovem razvoju.

Verjamem da je tezko kar tako vkljuciti neko novo verzijo. Teoreticno lahko ta del slabo vpliva na ostale, ampak to se da stestirati. Jasno lahko pride se vedno do problemov, ampak to se lahko zgodi tudi ko backportajo neke spremembe oz. sami kaj spreminjajo. Je pa za uporabnika lazje, da ima program foo 1.5, kot pa da bi imel foo 0.9+debian, ki je po lastnostih skoraj tak kot 1.5 od koder so bile backportane pomembne spremembe, ampak ni pa cisto tak. Konfiguracijsko datoteko ima recimo se vedno tako kot v 0.9.

fiction ::

Objavljeno 12/5, torej dan pred uradno objavo PRNG pomanjkljivosti: KLIK
Naključje?
Ne verjamem. Pomoje je bilo kvecjemu tako, da so blackhat hackerji ze prej imeli teh ~250000 keyev in so probavali bruteforcat masine z odprtim SSH-jem. Zadnje case je tega ratalo prevec in so ljudje sli analizirati kako tocno poskusajo, prej so najbrz mislili da pac samo poskusajo razlicna gesla. Nekdo je najbrz zaradi tega pregledal source in naletel
na bug.

In Extremis ::

@fiction:
Tudi jaz tako menim. Mnogi pa so prepričani, da je bug odkrit na dan, ko je objavljen advisory/patch. Silly.

Mimogrede, apply the patch and get free OpenVPN regression

In Extremis ::

Am I evil? Yes, I am >:D




On a serious note, Infocon goes to yellow

Zgodovina sprememb…

  • zavaroval slike: madviper ()

MrStein ::

Kak že gre ?
"Vedno poženi vse test case, preden komitaš spremembo."
Teštiram če delaž - umlaut dela: ä ?

b ::

Am I evil? Yes, I am [>:D]



Bravo :)

Pa sem uporabnik Debiana in derivatov, in so mi prav super za uporabo, ampak ta blunder je pa... over the top.

jype ::

Jaz mam pa svoj key še iz svojga pra-suseta :)

Daedalus ::

LOL@Extremis:))

A j*bat ga, tud najboljši kdaj zletijo s steze:P
Man is condemned to be free; because once thrown into the world,
he is responsible for everything he does.
[J.P.Sartre]

Matthai ::

In Extremis, daj prosim tole čim bolj razširi po spletu. Ker je res zakon.

(pa sem sicer tudi Debian fan, ampak na napake je treba opozoriti - in to glasno) :-)
Zloraba oblasti, avtokracija in tema nikoli ne pridejo hipoma, vedno je vmesno
obdobje mračenja, ko se dan preveša v noč; biti moramo pozorni opazovalci
okolja in varuhi luči, da ne postanemo nemočni ujetniki teme. --W. Douglas

In Extremis ::

Hja, no, saj zadeva ni moje maslo. I'm not that smart :) Sem pa prijetno presenečen nad odzivom Linux userjev. Ne poskušajo najti izgovore ali primerjave z "ono drugo stranjo" temveč sprjemajo dejstvo in se povrh vsega še zabavajo. Svaka čast fantje.

OmegaBlue ::

Jah malo tečno je bilo menjat keye za prijave na serverjih samo jebiga, je bilo narejeno v 1 urci.
Never attribute to malice that which can be adequately explained by stupidity.

RejZoR ::

Hehe, dobre fore na slikcah zgoraj :D
RejZoR's Flock of Sheep @ rejzor.wordpress.com

MrStein ::

Matthai:
In Extremis, daj prosim tole čim bolj razširi po spletu. Ker je res zakon.

Te slike misliš ?
Saj je že razširjeno.
(ne misliš, da je on Dilberta risal? Ono random funkcijo pa sem tudi že pred kakim letom videl)
; samo tolko da je jasno)
Teštiram če delaž - umlaut dela: ä ?

jype ::

Zgodovina sprememb…

  • spremenilo: jype ()

Jst ::

Uh, shit. Nisem se prej poglobil, ampak to je pa je*eno kruta zadeva. Random, ki ima za seed program counter, 32768 različnih vrednosti. Novica tu na slo-techu mi je dala misliti, da je random generator na debianu malo manj random. Itak je skoraj pri vseh generatorjih problem. In če pač iz malenkost manj naključnega števila generiraš ključ, shit happens. A očitno je to dobesedno *CODE RED*! High probability of terrorist attack.
Proton decay is a tax on existence.

In Extremis ::

@jype
Hudo!!! :))

Zgodovina sprememb…

  • zavaroval slike: OmegaBlue ()

MrStein ::

Jst:
je random generator na debianu malo manj random.

Ni ni narobe z generatorjem.
Narobe je, da ga sploh niso uporabili.
Teštiram če delaž - umlaut dela: ä ?

Matthai ::

Matthai:
In Extremis, daj prosim tole čim bolj razširi po spletu. Ker je res zakon.

Te slike misliš ?
Saj je že razširjeno.
(ne misliš, da je on Dilberta risal? Ono random funkcijo pa sem tudi že pred kakim letom videl)
; samo tolko da je jasno)


Dilberta poznam. Ampak dodatek o Debianu - tale o Ubuntuju pa sploh - je pa totalen zakon. >:D
Zloraba oblasti, avtokracija in tema nikoli ne pridejo hipoma, vedno je vmesno
obdobje mračenja, ko se dan preveša v noč; biti moramo pozorni opazovalci
okolja in varuhi luči, da ne postanemo nemočni ujetniki teme. --W. Douglas

MrStein ::

A okvir ? Sploh nisem bil pozoren ... :8)
Teštiram če delaž - umlaut dela: ä ?

Matthai ::

BTW: Debianov OpenVPN bi lahko preimenovali v OpenPWN :-))
Zloraba oblasti, avtokracija in tema nikoli ne pridejo hipoma, vedno je vmesno
obdobje mračenja, ko se dan preveša v noč; biti moramo pozorni opazovalci
okolja in varuhi luči, da ne postanemo nemočni ujetniki teme. --W. Douglas


Vredno ogleda ...

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

Raziskovalci uspeli rekonstruirati 1024-bitni RSA ključ v 104 urah

Oddelek: Novice / Varnost
52798 (1954) Matevžk
»

g0t SSH?

Oddelek: Informacijska varnost
101205 (722) denial
»

Zuni masovno umrli ob polnoči (strani: 1 2 )

Oddelek: Novice / Znanost in tehnologija
516545 (2306) avarfang
»

Odkrita resna varnostna ranljivost v Firefox 3 (strani: 1 2 )

Oddelek: Novice / Varnost
506107 (3495) CaqKa
»

Odkrita resna varnostna pomankljivost v Debianovem naključnem generatorju števil za O

Oddelek: Novice / Varnost
485387 (1977) Matthai

Več podobnih tem