» »

Kritična ranljivost v OpenSSL bi lahko omogočala krajo strežniških zasebnih ključev

Kritična ranljivost v OpenSSL bi lahko omogočala krajo strežniških zasebnih ključev

Napadu pravijo "heartbleed", po SSL razširitvi "heartbeat", ki ga tudi omogoča.

Ars Technica - Letos ni ravno najboljše leto za varno spletno komunikacijo, še posebej ne za dvojček SSL/TLS. Konec februarja smo lahko brali o nemarni kodi za preverjanje pristnosti strežniških certifikatov v Applovem iOS/OS X, še ne dva tedna zatem pa o kar 9 let stari podobni luknji v odprtokodni knjižnici GnuTLS. Malo poenostavljeno rečeno je kazalo, da prav nihče več ne zna pravilno preveriti pristnosti strežniške strani komunikacije.

Zdaj smo dobili še eno luknjo, tokrat na strežniški strani. Pomanjkljiva implementacija ti. heartbeat (TLS keepalive) razširitve v OpenSSL 1.0.1 napadalcu lahko omogoči pridobitev neposrednega dostopa do pomnilnika na strežniku, s tem pa tudi dostop do šifrirnega ključa za to sejo, ali celo zasebnega ključa od tega strežnika. V kodi je prisotna nekje od marca 2012. Glavni problem je v tem, da je OpenSSL ena najbolj popularnih knjižnic za šifriranje, prav tako pa jo uporabljata popularna spletna strežnika Apache in Nginx, na katerih sloni nekje dve tretjini vseh spletnih strani.

Varnostno podjetje CloudFlare, ki je skupaj s kolegi na Googlu tudi odkrilo napako, vsem prizadetim spletnim stranem priporoča takojšnjo nadgradnjo na sveži OpenSSL, ter, če je mogoče, tudi menjavo šifrirnih ključev in ponovno generiranje SSL certifikatov. Niso še prepričani, ali je napako kdo tudi aktivno izkoriščal, nameravajo pa zdaj to preveriti s pomočjo posebnih honeypot strežnikov. Ocene o tem se pričakujejo v kratkem. Če jo je, mu naj ne bi bilo težko priti tudi do zasebnega ključa, in to kar lepo na daljavo, brez potrebe po prestrezanju ene ali več obstoječih sej in brez puščanja kakršnih koli sledi na strežniku, npr. dnevniških zapisov.

Napadalec s posestjo zasebnega ključa bi lahko potem odklenil vso zajeto preteklo komunikacijo, razen seveda, če sta se takrat brskalnik in strežnik dogovorila še za posebni začasni sejni ključ (Perfect Forward Secrecy). Takšno možnost žal podpira le malo strežnikov; Slo-Tech recimo jo. Dalje bi napadalec lahko postopal tudi aktivno, npr. postavil svoji lažni spletni strežnik, ali izvedel man-in-the-middle napad.

Kot rečeno, leto se je precej zanimivo začelo ...

Dodatek: POC / spleti vmesnik, s katerem lahko preverite ranljivost vašega strežnika, od @FiloSottile.
Dodatek #2: Če kaj, je to odlično opozorilo, da se zasebnih ključev pri bolj kritičnih aplikacijah pač ne sme hraniti v delovnem spominu. Namenske HSM kartice ftw.

79 komentarjev

«
1
2

Lonsarg ::

Huda zadeva, tole bi znala biti top ranljivost desetletja...

Zdaj je vprašanje, kje naj dobim Windows binary od Nginx, ki ne vsebuje ranljivega OpsnSSLja. Sem namreč prelen, da bi šel compilat zadevo. Se priporočam:)

avister ::

Bomo videli.

Zgodovina sprememb…

  • spremenil: avister ()

_Hammer_ ::

MrStein ::

Napiše, (sicer precej dvoumno) da ne more izvesti testa. Verjetno bitstamp blokira njihov IP.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

_Hammer_ ::

Meni napiše:
"www.bitstamp.net IS VULNERABLE."
Here is some data we pulled from the server memory:
(we put YELLOW SUBMARINE there, and it should not have come back)

([]uint8) {
00000000 02 00 79 68 65 61 72 74 62 6c 65 65 64 2e 66 69 |..yheartbleed.fi|
00000010 6c 69 70 70 6f 2e 69 6f 59 45 4c 4c 4f 57 20 53 |lippo.ioYELLOW S|
00000020 55 42 4d 41 52 49 4e 45 9b 57 4b 11 0b 2f 43 d9 |UBMARINE.WK../C.|
00000030 21 c1 4f 98 8e 5e 93 b2 f1 34 68 ae 6d 51 47 00 |!.O..^...4h.mQG.|
00000040 00 00 15 00 13 00 00 10 77 77 77 2e 62 69 74 73 |........www.bits|
00000050 74 61 6d 70 2e 6e 65 74 00 05 00 05 01 00 00 00 |tamp.net........|
00000060 00 00 0a 00 08 00 06 00 17 00 18 00 19 00 0b 00 |................|
00000070 02 01 00 00 0d 00 0a 00 08 04 01 04 30 6a 56 0e |............0jV.|
00000080 47 1c 52 72 39 d0 fb c8 18 70 a3 f8 |G.Rr9....p..|
}

M.B. ::

nkbm bankanet - OK
slo-tech - OK
yahoo mail - VULNERABLE
epoti.abanka.si/ - OK
in še z reddita:
GoodOldGames (www.gog.com) - VULNERABLE
Part of the Playstation Network - VULNERABLE

"#Bitstamp turns off its accregistration, login & all virtual currency withdrawal functions as a precaution following recent OpenSSL news." - impressive.

Da se test izvest. Sem ga s PCja. Še koda z reddita za testiranje http://s3.jspenguin.org/ssltest.py

Vidi se razne cookie pa klice APi knjižnice ključa še ni blo kakega.
Everyone started out as a newbie.
Sadly only a handful ever progress past that point.

Zgodovina sprememb…

  • spremenil: M.B. ()

Gandalfar ::

Primer napada na Yahoo gesla - https://twitter.com/markloman/status/45...

Tr0n ::

Bolj natancna razlaga, kje je problem.

http://blog.existentialize.com/diagnosi...

C sucks. :)

frke ::

Ribniški regionalni sklad je ranljiv.

http://filippo.io/Heartbleed/#regionaln...

stb ::

LightBit ::

Tr0n je izjavil:

Bolj natancna razlaga, kje je problem.

http://blog.existentialize.com/diagnosi...

C sucks. :)

On je zaključil malo drugače.
Nisem še našel jezika, ki bi bil boljši od C.

iElectric ::

Kraja piškotkov na strežniku s pomočjo napada https://gist.github.com/mitsuhiko/10130...

jype ::

LightBit> Nisem še našel jezika, ki bi bil boljši od C.

C++ še nisi našel?

LightBit ::

C++ je tako "grd", da je neberljiv.
Poleg tega ima izjeme in to brez GC.

jype ::

LightBit> C++ je tako "grd", da je neberljiv.

To se sliši kot strašno šibak argument, sploh v primerjavi s C.

LightBit> Poleg tega ima izjeme in to brez GC.

Ima pa strukture, katerih neobvezna uporaba preprečuje točno takšne napake, kakršna botruje temu fiasku.

arjan_t ::

LightBit je izjavil:

C++ je tako "grd", da je neberljiv.
Poleg tega ima izjeme in to brez GC.


http://www.rust-lang.org

johnnyyy ::

Tr0n je izjavil:

Bolj natancna razlaga, kje je problem.

http://blog.existentialize.com/diagnosi...

C sucks. :)

Za kritične zadeve (medicina, letalstvo,..) se po uporablja C in MISRA-C:2004 standard. Za ilustracijo 7 vrstic iz "The fix" iz tvojega linka vsebuje po tem standardu vsaj 5 napak (za dve pa nisem prepričan) :)

Hayabusa ::

Naslednje vprašanje je, koliko takih asov še ima nsa v rokavu (in kako dolgo jih že uporablja) ;(( ?

Tole bral par mesecev nazaj
http://blog.cryptographyengineering.com...

Zgodovina sprememb…

  • spremenilo: Hayabusa ()

LightBit ::

Če te ne moti sintaksa določenih stvari v C++ in izjeme, je verjetno boljši.
Rust je še preveč nov, tako, da bi težko rekel.

Zdi se mi, da programerji potem postanejo leni in potem spet pride do napak.

Zgodovina sprememb…

  • spremenil: LightBit ()

jeryslo ::

iElectric je izjavil:

Kraja piškotkov na strežniku s pomočjo napada https://gist.github.com/mitsuhiko/10130...


Hudo! Za lažji vpogled si dodajte še tole v kodo:
if cookie not in found:
    f = open('cookies.txt', 'a')
    f.write(cookie + '\n')
    print cookie


Pravkar testiral na https://www.inexfinance.com in vrača session cookie in v velikem obsegu! Uspešno sem se prijavil na stran skozi sejo nekoga drugega. Predvidevam da vrača piškote uporabnikov, ki so trenutno prijavljeni, če dobimo vrnjen del vsebine pomnilnika, ne?

Stikalo ::

Noro, kakšna štala.. skoraj vsak stežnik vrne..

M.B. ::

Rust bo po moje prava zamenjava za takšne sistemske stvari, samo stabilizirat se mora. Bi pa bla verjetno fajn Ada ampak se izven vojske sploh ne uporablja.

Nevem sicer če drži ampak pisanje nekoga ki je "zelo navdušen" nad Open SSL kodo. (Ironično stran javlja neveljaven SSL certifikat)
Everyone started out as a newbie.
Sadly only a handful ever progress past that point.

Hayabusa ::

Stran uporablja certifikat podpisan iz lastne strani, ki ga moraš nekako dodati v "trusted root seznam":


"issued by/to www.peereboom.us".

MrStein ::

:)
Že v starih časih je OpenSSL imel tak čuden sloves...
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

LightBit ::

OpenSSL uporablja čudne tehnike (na meji standarda).

ulemek ::

jeryslo je izjavil:

iElectric je izjavil:

Kraja piškotkov na strežniku s pomočjo napada https://gist.github.com/mitsuhiko/10130...


Hudo! Za lažji vpogled si dodajte še tole v kodo:

if cookie not in found:
f = open('cookies.txt', 'a')
f.write(cookie + '\n')
print cookie


Pravkar testiral na https://www.inexfinance.com in vrača session cookie in v velikem obsegu! Uspešno sem se prijavil na stran skozi sejo nekoga drugega. Predvidevam da vrača piškote uporabnikov, ki so trenutno prijavljeni, če dobimo vrnjen del vsebine pomnilnika, ne?


To je kaznivo, zagrožena kazen pa kar zaporna!

Hayabusa ::

jeryslo
Si obvestil admina strani, kaj se dogaja (da popravi) ?

M.B. ::

Nevem če bi si upal obveščat ljudi da so jim podatki dostopni se je že prevečkrat dogajalo da so bili potem tisti, ki so obveščali obsojeni.
Everyone started out as a newbie.
Sadly only a handful ever progress past that point.

WizmoTo ::

Kaj se je že zgodilo s tistim tipom, ki je neki slo. banki povedal, da je odkril luknjo ?

ulemek ::

M.B. je izjavil:

Nevem če bi si upal obveščat ljudi da so jim podatki dostopni se je že prevečkrat dogajalo da so bili potem tisti, ki so obveščali obsojeni.


Ne drži.

WizmoTo je izjavil:

Kaj se je že zgodilo s tistim tipom, ki je neki slo. banki povedal, da je odkril luknjo ?


Tisti je najprej izsiljeval za denar, nato se pretvarjal dobrotnika ko so mu podkurili pod nogami.

Zgodovina sprememb…

  • spremenilo: ulemek ()

WizmoTo ::

Zakaj bi pa ravno on moral zastonj dajati informacije, ki jih je pridobil z delom ? A so mogoče šalabajzerji tudi zastonj naredili tisto hroščato stran za banko ? In potem je čudno, da exploiti pristanejo pri bot overlordih.

Lonsarg ::

Nimaš kaj obveščat o tej ranljivosti, ker je tako obsežna, da bi blo preveč mailov za poslat:)

Glavnina kriticnih strani bo pofiksala to v kakem tednu, navadne strani pa bodo pač se vsaj kako leto v velikem številu ranljive...

brodul ::

Me prav zanima, ce bodo slovenske banke, kaksen cert/password preklicale ... ne.
Pretending to be a mature adult is so exhausting.

Stikalo ::

Te exploiti so mi izredno zanimivi. Enkrat bom naštudiral kako točno delujejo. Vem, da izkoriščajo luknjo, da ne program ne preverja dolžine stringa in ga kar zapiše v ram. Samo ni mi pa jasno, kako potem izvedeš svojo kodo.

jeryslo ::

Hayabusa je izjavil:

jeryslo
Si obvestil admina strani, kaj se dogaja (da popravi) ?


Sem obvestil, ker sem tudi sam uporabnik te strani in tudi jaz nočem da bi lahko vsak prebral moje finančno stanje.

Tr0n ::

Stikalo je izjavil:

Te exploiti so mi izredno zanimivi. Enkrat bom naštudiral kako točno delujejo. Vem, da izkoriščajo luknjo, da ne program ne preverja dolžine stringa in ga kar zapiše v ram. Samo ni mi pa jasno, kako potem izvedeš svojo kodo.

Posljes svoj heartbeat request, kjer podturis svoj size payloada, ki je vecji od dejanskega. :)

Invictus ::

WizmoTo je izjavil:

Kaj se je že zgodilo s tistim tipom, ki je neki slo. banki povedal, da je odkril luknjo ?

Samomor je naredil ...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

sas084 ::

Stikalo je izjavil:

Te exploiti so mi izredno zanimivi. Enkrat bom naštudiral kako točno delujejo. Vem, da izkoriščajo luknjo, da ne program ne preverja dolžine stringa in ga kar zapiše v ram. Samo ni mi pa jasno, kako potem izvedeš svojo kodo.


Corelan ma za moje pojme precej dobro obrazloženo kako exploiti delajo, tehnike kako se zaobide zaščite (safeseh, dep, aslr) itd.

dronyx ::

Nekje sem prebral, da strokovnjaki svetujejo spremembo gesel!? Kakšnih gesel? Mogoče si jaz tole napačno predstavljam, ampak če vse napisano o tej težavi res drži, potem ti nič ne pomaga spreminjanje gesel, ampak morajo vsi ti ranljivi strežniki menjati strežniška digitalna potrdila.

Zgodovina sprememb…

  • spremenil: dronyx ()

ulemek ::

dronyx, najprej mora luknjo pokrpati ponudnik.

Nato mora ponudnik zamenjati certifikate, ki jih je na ranljivem sistemu uporabljal, uporabniki pa gesla.

Obratno velja zate, če si (predpostavljam) sam sebi ali prijateljem ponudnik česar koli, kjer si imel nameščeno ranljivo komponento.

Luknja je omogočala in še omogoča marsi kaj. Branje vsebine delovnega spomina.

fosil ::

Namesto zlorabe te luknje bo po moje sedaj veliko več druge vrste zlorabe.
In sicer bodo sedaj ljudje začeli dobivati maile v stilu, zaradi hertbleeda kliknite na spodnjo povezavo in zamenjajte geslo...
Seveda sporočila ne bodo od resničnega ponudnika storitev, kaj se bo zgodilo po kliku na link in vpisu gesla pa verjetno ni treba razlagat.
Tako je!

shadeX ::

Abanka pravi da ima vse pod kontrolo :)

Mipe ::


Dobra razlaga :)

Zgodovina sprememb…

  • zavaroval slike: Primoz ()

jype ::

Mouseover text ftw.

MrStein ::

"vecja slika" ? :D

http://xkcd.com/1354/
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Zgodovina sprememb…

  • spremenil: MrStein ()

bluefish ::

Bloomberg is reporting that the Heartbleed bug, which shocked the web security community this week, has been known and actively exploited by the National Security Agency for at least two years. According to two anonymous sources familiar with the matter, the bug was kept secret in the interest of national security, while the agency used it to obtain passwords and other data. Since the bug was first committed in 2012, the report suggests the NSA discovered the bug and maintained access for nearly the entire lifespan of Heartbleed.

http://www.theverge.com/2014/4/11/56054...

poweroff ::

Pričakovano.

Upam, da bodo šli sedaj OpenSSL spisat na novo.
sudo poweroff

ulemek ::

poweroff je izjavil:

Pričakovano.

Upam, da bodo šli sedaj OpenSSL spisat na novo.


Neumnost brez primere, če ne bo pisanje v domeni ducata genijalcev in se odvijalo komorno.

Koliko je še druge kode, kjer se potencialno skrivajo podobni hrošči. Miljavžent. Zanima me, koliko odkritih in/ali podtaknjenih hroščev imajo na lagerju razne varnostne agencije in podjetja, ki se ukvarjajo odkrivanjem in s prodajo le-teh. Še bolj zanimivo pa je vprašanje, mar se takšna podjetja kot je npr. Vupen ne ukvarjajo celo z izdelavo hroščev in podtikanjem, da jih zatem lahko fino prodajajo. Smisla bi že imelo. 8-)

poweroff ::

To že, ampak kritične dele kode bi bilo treba pregledati ali spisati na novo. OpenSSL je pa sicer precej slabo spisan.

BTW: Heartbleed ranljivost in varnost slovenske državne uprave.
sudo poweroff
«
1
2


Vredno ogleda ...

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

Po dvajsetih letih se maščuje ranljivost FREAK

Oddelek: Novice / Varnost
198278 (4713) Isotropic
»

Kritična ranljivost v OpenSSL bi lahko omogočala krajo strežniških zasebnih ključev (strani: 1 2 )

Oddelek: Novice / Varnost
7923069 (16718) Isotropic
»

Preverjanje digitalnega podpisa

Oddelek: Informacijska varnost
338413 (6565) neki4
»

Odkrita resna ranljivost v SSL in TLS protokolih

Oddelek: Novice / Varnost
104863 (3832) BlueRunner
»

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

Oddelek: Novice / Varnost
487692 (4282) poweroff

Več podobnih tem