:

Szerző: Gálffy Csaba

2015. szeptember 11. 11:11

Hülyeség ellen az erős hash sem véd

A nyáron került nyilvánosságra az Ashley Madison társkereső teljes felhasználói adatbázisa. A masszív adatszivárgás során az email-címek, felhasználói nevek és a jelszó-adatbázis is kikerült. Ez utóbbi azonban kemény diónak bizonyult a szakemberek számára, az üzemeltetők erős védelmet használtak. A forráskód vizsgálatából viszont kiderült: saját védelmét hackelte meg az Ashley Madison.

Júliusban lett masszív adatszivárgás áldozata az Ashley Madison társkereső oldal. Az ügy bulvármédiás hír lett, mivel a szolgáltatás kimondottan házasságtörésre szakosodott, házas feleknek kínált alkalmi kapcsolatokat. Informatikai szempontból akkor lett érdekes a történet, amikor augusztus közepén a támadók nyilvánosságra hozták a cég adatait, benne a felhasználói jelszavakat, email-címeket és jelszavakat is.

A masszív adatszivárgás ellenére a jelszavak törhetetlennek bizonyultak. Az Ashley Madison előrelátó adminisztrátorai erős védelemmel látták el a tárolt jelszavakat, amelyeket 12-es erősségűre állított bcrypt hash védett, ezt pedig a legerősebb hardverek sem tudták belátható időn belül pusztán próbálgatásokkal (brute force) kellő sebességgel megtámadni.

Hash, bcrypt, MD5 - órák vs évtizedek

Rövid kitérő: a leggagyibb online szolgáltatásoktól eltekintve ma már nincs olyan online rendszer, amely magát a jelszót tárolná el. Ehelyett az adatbázisba csupán a jelszó hash függvénnyel készült lenyomata kerül be. A hash sajátossága, hogy egyirányú, vagyis az eredményből nem állítható vissza az eredeti információ, a támadónak csak a próbálgatás marad a jelszó feltörésére - vagyis mindenféle bemenetet kipróbálni, amíg előáll a kívánt hash.

E támadás sikeressége nagyban függ attól, hogy mennyire számításigényes maga a hash függvény - a hatékonyságra kihegyezett MD5 például elképesztően gyorsan generálható, különösen GPU-s gyorsítással - egy Radeon 7970-en futó oclHashcat például másodpercenként 8,2 milliárd hash-t tud előállítani (és ez további GPU-k hozzáadásával közel lineárisan gyorsítható), vagyis két és fél óra alatt az összes létező 7 karakteres jelszót végig tudja pörgetni. Emiatt a jelszavak tárolásához a szakemberek jóval számításigényesebb hash-függvényt ajánlanak, az egyik, széles körben elfogadott ilyen függvény a bcrypt.

A bcrypt 11-12 karakter helyett már 7 karakternél kezd komolyan védeni.

Bcrypt-et használt az Ashley Madison is, ráadásul kifejezetten nagy, 12-esre állított erősséggel. Ez azt jelenti, hogy a szerver a jelszó eltárolása előtt 2^12 lépésben (4096-szor) forgatta meg a bemenetet, tovább nehezítve a brute force támadók munkáját. Ennek hatékonyságát vissza is igazolták a biztonsági szakértők, csak a legidiótább jelszavakat ("123456", "password") sikerült feltörni, még komolyabb, néhány napos munkával is csak a teljes adatbázis 0,0668 százaléka "bukott el". Ebben a tempóban a teljes töréshez évtizedek kellenek - ez már eléggé biztonságosnak tekinthető.

Az Ashley Madison fejlesztői és üzemeltetői által elkövetett masszív hibának köszönhetően a jelszavak mégis törhetőek. A CynoSure Prime amatőr jelszótörő csapatának 10 nap alatt sikerült mintegy 10 millió jelszót visszafejteni, a teljes adatbázisból pedig mintegy 15,26 millió jelszó sebezhető a hobbista jelszótörők szerint. Az adatbázis ugyanis nem csak az erős bcrypt hash formájában tárolta el a jelszavakat, hanem a felhasználók egy részénél MD5 alapú hash-sel is.

Az adatszivárgás során nem csak a felhasználói adatok, hanem az Ashley Madison backendjén futó rendszer forráskódjának egy része is kikerült, ezt tanulmányozva jött rá a csapat, hogy az egyik oszlopban a rendszer MD5-tel előállított tokeneket tárolt (LoginKey). Az egyelőre nem világos, hogy ennek mi célja volt, a találgatások szerint talán a böngészős bejelentkezések hitelesítésére használta az Ashley Madison valamilyen formában. A függvény a felhasználói névből és a jelszóból, állított elő bemenetet, amit egyszeri MD5-hash után tárolt el az adatbázis, a felhasználó létrehozásakor.

Ünnepi mix a bértranszparenciától a kódoló vezetőkig

Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

Mivel a kiszivárgott adatbázis a bemenetként használt elemek mindegyikét tartalmazta, a jelszót kivéve, triviális megírni azt az eszközt, amely ezt a hash-t brute force-szal támadja. Egy akadály maradt csupán a támadók előtt, az MD5 hash nem az eredeti jelszót, hanem annak csupa kisbetűre módosított változatát használta bemenetként, a pontos jelszó megszerzéséhez ezért a bcrypt hash-en is végig kellett forgatni a kisbetű-nagybetű kombinációkat. Sajnos jól jelzi a felhasználók hozzáállását a jelszavakhoz, hogy 10-ből csak 1 jelszó tartalmazott nagybetűt, vagyis az MD5 hashből kiesett jelszó azonnal "beletalált" a bcrypt zárba is.

A csavar a történetben, hogy a biztonsági résre az Ashley Madison fejlesztői már évekkel ezelőtt rájöttek és a a függvény bemeneteként a nyers jelszót a jelszó bcrypt hash-ére cserélték. A módosításra a belső Git adatbázis szerint még 2012-ben került sor, ezt követően már biztonságos függvény generálta a LoginKey változót. A változás azonban nem volt retroaktív, a korábban létrehozott felhasználói fiókok is sebezhetőek maradtak - ez pedig mintegy 15 millió egyedi rekordot jelent az adatbázisban, a 36 millió kikerült rekord majdnem felét.

Tanulság mindig van

Az Ashley Madison adatszivárgása rengeteg muníciót adott a változatos médiumoknak, az adatbázisban magyar politikusokat talált az Index, időközben pedig a vállalat vezérigazgatója is távozásra kényszerült. A biztonsági szakértők kicsit lassabban haladnak a hatalmas információmennyiség feldolgozásával, az egyik első tanulság a fentiekből szűrhető le: ha iparági best practice-t követünk, akkor alapvetően biztonságosnak tekinthetjük a jelszavak védelmét. Hacsak egy fejlesztő lustaságból vagy inkompetenciából meg nem fúrja ezt a védelmet.

a címlapról