Securitas, res publica.
V posledních pár letech se s bezpečnostními incidenty roztrhl pytel. Tady unikl seznam uživatelů, tady i jejich hesla, tady jen jejich objednávky. V této přednášce spojíme moje dvě oblíbená rčení a to, že každý web je dostatečně dobrý na hacknutí a že opakování je matkou moudrosti. Zopakujeme si, koho už u nás hacknuli a poněvadž by to byla nekonečně dlouhá přednáška, tak se raději zaměříme jen na zveřejněné případy.
Bezpečnost, věc veřejná.
Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Poučte se z cizích chyb
1. POUČTE SE ZPOUČTE SE Z
CIZÍCH CHYBCIZÍCH CHYB
Michal ŠpačekMichal Špaček www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze
Z filmu Pelíšky, 1999
Pojďme si zopakovat, co všechno už se u nás v oblasti počítačové a webové
bezpečnosti stalo. Opakování matka moudrosti, že. Projdeme pár zásadních
a veřejně známých událostí, ale úplně se vyhneme DDoS útokům, které
nepovažuji za „hackování“. Původní slajdy tyto poznámky neobsahují.
2. S daty uživatelů se roztrhl pytel, nejspíš proto tolik unikají. Jednou to jsou hesla v
čitelné podobě, podruhé rodná čísla, potřetí jenom e-mailové adresy. Na
haveibeenpwned.com si můžete zkontrolovat, jestli se vaše e-mailová adresa v
nějakém takovém úniku neobjevila. Můžete se také přihlásit k odběru notifikací,
pokud by se v budoucnu náhodou objevila. Web provozuje Australan Troy Hunt, v
komunitě vývojářů i bezpečnostních odborníků známý a uznávaný, nemusíte se
bát, že služba slouží ke sběru vašich e-mailů.
3. 25. března 199625. března 1996
JAHODOVY SIRUPJAHODOVY SIRUP
SECURITY ADVISORYSECURITY ADVISORY
Sirupem to před 20 lety u nás začalo. 25. března 1996 po vzoru bezpečnostních
doporučení amerických úřadů vyšla jedna taková vtipná bezpečnostní zpráva i u
nás, resp. na Slovensku. Týkala se jahodového sirupu a varovala před tím, že
láhev sirupu lze otevřít a pak zase zavřít bez porušení uzávěru.
4. SERTSERT
Sirup EmergencySirup Emergency
Reaction TeamReaction Team
Tuto zprávu napsal Pajkus ze skupiny, která si později začala říkat SERT, což byla
hříčka na anglický název CERT, Computer Emergency Response Team, tedy týmu,
který řeší problémy s počítači (a tím nemyslím nefunkční tiskárnu).
5. diana.troja.mff.cuni.cz
kmotr.pf.jcu.cz
TASR
SERT byl celkem aktivní, proslavil se mj. tím, že na školních serverech Univerzity
Karlovy a Jihočeské Univerzity našel archívy nelegálního software a smazal je.
Další kousek SERTu bylo vydání tiskové zprávy na webu Tiskové agentury SR
jménem člověka, který zrovna tou dobou byl na dovolené. Jenže jak rychle SERT
začal, tak rychle taky skončil. Ze všech členů v podstatě zůstal jen jeden – Pajkus.
6. CzERT
Pajkus byl zakládajícím členem nejen SERTu, ale i sdružení CzERT, Czech
Emergency Response Team, které vzniko koncem roku 1996 a na svém kontě má
také pěknou řádku zářezů. Třeba změnu stránek MaMedia (dnešní Mageo), na které
CzERT v únoru 1997 umístil obrázek roztomilého démona. Příbeh SERTu a CzERTu
detailněji rozebírá Honza „Klokánek“ Šípek ve své knize Zásek do živýho i sám
Miroslav „Pajkus“ Pikus v sérii článků Ako nás zmenili hackeri. Doporučuji.
7. V listopadu 1996 CzERT změnil stránky Armády České republiky a hacking se
tak poprvé dostal do hlavních médií v ČR. Takovéhle změny webu (defacement)
se nejčastěji prováděly tak, že někdo odposlechnul heslo správce, když se na
servery přihlašoval. Tenkrát v podstatě nikdo svá připojení nešifroval.
8. SQL INJECTION
Rain Forest Puppy (Jeff Forristal)
Phrack Magazine 1998
CzERT skončil v roce 1997, ale postupy, které se k získávání dat z webů používají
dnes byly popsány až později. Jeff „rfpuppy“ Forristal popsal útok dnes známý jako
SQL Injection „až“ v roce 1998 v článku NT Web Technology Vulnerabilities.
9. SQL v běžném životě
● Dones z venku
● Dones z venku ← Útok SQL Injection
DŘEVO
DŘEVO
A KUP
V KRÁMU
PIVO
Malé opáčko: útok SQL Injection spočívá ve změně příkazů, které posílá aplikace
databázovému serveru. Ten očekává data (ve žlutém a modrém obdélníku), ale
útočník je upraví tak, aby server dostal i příkaz a provedl něco navíc.
10. DŘEVO
A KUP
V KRÁMU
PIVO
SQL Injection v běžném životě
● Dones z venku
Vložený příkaz →
Do dat vloží (injektuje) další příkaz a aplikace z databázového serveru tak
nakonec kromě produktů získá například uživatelská jména a (snad hashovaná)
hesla. V domnění, že se jedná jenom o produkty je klasicky vypíše do stránky.
11. Cross-Site Scripting
XSS
David Ross, Microsoft, 1999
Cross-Site Scripting (XSS), další často používaný útok byl popsán Davidem
Rossem z Microsoftu v roce 1999. O rok později pak vyšel popis i veřejně. Útok
XSS se zaměřuje na uživatele a jejich prohlížeče, kteří s webovou aplikací nějak
pracují, zatímco SQL Injection míří přímo na databázi aplikace.
12. 2006
nbusr123
Pojďme raději do aktuálního tisíciletí. V roce 2006 se provalilo, že Národný
bezpečnostný úrad Slovenskej republiky (NBÚ SR) používal slabé heslo nbusr123,
které v roce 2001 nastavil dodavatel zařízení. Člověk z úřadu ho měl změnit, jenže
nezměnil a útočníci toho po 5 letech využili. Lidé často defaultní hesla nemění i když
jim to řeknete, ale o problémech defaultních hesel routerů od UPC až někdy jindy.
13. Dostáváme se ke „klasickým“ webovým útokům. Prvním v mém seznamu je případ
Sazky z ledna roku 2009. Tenkrát Sazka nabízela finanční odměnu za registraci
a když jste si po registraci chtěli vytisknout kupón, tak vás poslali na…
(#1) Leden 2009
14. http://platby.e-sazka.cz/Player/PrintBarcode.aspx?m=reg&id=72569
Insecure Direct Object Reference
…tuto webovou adresu. Webová aplikace Sazky trpěla chybou, které se odborně
říká Insecure Direct Object Reference, hovorově protáčení čísel v URL. Tato
chyba je poměrně častá i dnes, objevuje se právě v částech aplikace, kde se
tiskne nebo stahuje například faktura nebo něco podobného. Aplikace správně
neověřuje, jestli data, která chce zobrazit, patří přihlášenému uživateli. Všimněte
si toho čísla na konci, stačilo ho měnit a z webu Sazky padala uživatelská data.
15. Z webu Sazky nakonec vypadlo přes 18 tisíc jmen a příjmení registrovaných
uživatelů, ale naštěstí nic dalšího. Při registraci se totiž zadávaly i další údaje,
například číslo občanky. Data jsou na Internetu k dispozici dodnes.
16. (#2) Září 2009
V září 2009 potkal podobný problém pojišťovnu UNIQA. Někdo získal data několika
tisíc klientů, kteří uzavřeli cestovní pojištění a na Internet tak unikla jména, rodná
čísla, telefonní čísla a čísla smluv. Rodná čísla se často používají pro ověření, že vy
jste vy, používají to často banky, například ve chvíli, kdy po nich chcete něco poslat.
17. Celá smlouva
https://cesty.uniqa.cz/dodatecnytisk.aspx
Po zadání těch dat do webové aplikace pojišťovny bylo možné stáhnout celou
smlouvu, včetně ceny, adresy i data, o kdy do kdy pojištění platí a tedy kdy na
dané adrese nejspíš nikdo nebude. Ideální nástroj pro high-tech bytaře.
18. „Tak to nám to asi někdo fakt napadl.“
– tisková mluvčí pojišťovny UNIQA
Vtipná byla reakce samotné pojišťovny, která se o úspěšném útoku dozvěděla až z
médií. Tisková mluvčí Eva Svobodová k tomu řekla „Tak to nám to asi někdo fakt
napadl. Samozřejmě musím začít interně ihned jednat, aby se to napravilo.“
19. (#3) Prosinec 2009, igigi
RockYou je americká firma a mohlo by se zdát, že do mého seznamu českých
a slovenských incidentů nepatří. O pár slajdů dále uvidíme, proč ji zmiňuji. V
prosinci 2009 člověk nebo skupina vystupující pod jménem igigi získala pomocí
útoku SQL Injection data o uživatelích RockYou a tato data vystavila na Internet.
20. 32M hesel
Z RockYou uniklo přes 32 miliónů loginů a hesel v čitelné podobě, díky čemuž se
RockYou stalo jedničkou v únicích uživatelských hesel. Ten obrovský balík hesel se
používá dodnes na různé analýzy toho, jak uživatelé hesla vytváří. Pokud byste ho
chtěli na něco využít i vy, tak ho najdete jednoduše, ačkoliv bez uživatelských jmen.
21. (#4) Leden 2010, igigi
Člověk (nebo skupina) jménem igigi napadl v lednu 2010 slovenský Azet.sk.
RockYou byl jediný zahraniční „projekt“ igigiho, jinak ho zajímaly spíš české
a slovenské firmy a weby a je tedy možné, že igigi byl z naší kotliny. Nejen vzhledem
k objemu dat z RockYou si v mojí přednášce igigi místo rozhodně zaslouží.
22. Azet.sk problém přiznal, ale tvrdil, že hesla jsou „v nečitateľnej, takzvanej
kryptovanej podobe“. To ale igigiho rozpálilo doběla, o prohlášení Azetu napsal, že je
full of crap a cracknul přibližně 92 % všech hesel uložených jako MD5 hash. Hesla
lidí z vedení Azet.sk, a. s. pak zveřejnil. Milan Dubec byl tehdy generálním ředitelem,
dnes je předsedou představenstva. Jeho heslo kokotsom je předvídatelné, velmi
slabé a také vcelku zajímavé. I ostatní uživatelé z vedení Azetu měli hesla poměrně
slabá: jestli se jmenujete Karol, rozhodně si nenastavujte heslo carlos.
23. (#5) 2012–2013
Od roku 2012 do roku 2013 byla aktivní skupina (nebo jednotlivec), která si říkala
Czechurity, její název vznikl pravděpodobně spojením Czech a Security. Měla na
svědomí několik zásadních záseků do živýho, své skutky oznamovala na Twitteru.
24. V březnu 2012 skupina Czechurity zveřejnila seznam domén, webů a adresářů ze
serverů České televize. Žádná další data nezveřejnila, ale i podle toho uniklého
seznamu jsme se mohli domnívat, že se v televizi uhnízdili pěkně hluboko.
25. ČT se z incidentu asi nepoučila, protože skoro přesně o rok později, na konci března
2013, Czechurity zveřejňuje seznam dalších adresářů a databází ze serverů ČT.
26. V březnu 2013 Czechurity přejmenovala Unicreditbank na Unicreditgang a na webu
banky se objevila zpráva o tom, že peníze klientů se ztratily. Na drobný problém na
unicreditbank.cz jsem poukazoval už na konferenci WebTop100 v roce 2011, tenkrát
šlo jen jednoduše zjistit cestu k souborům – vyzradila ji zobrazená chybová hláška.
Czechurity také zveřejnili heslo administrátora, bylo velmi slabé: Banka123. Na
server se prý ale dostali pomocí zneužití jiných zranitelností a heslo našli až později.
27. (#6) prosinec 2012, @smitt3nz
Koncem roku 2012 Twitter účet @smitt3nz zveřejnil nebo přímo získal data ze
slovenské firmy Pixel Federation, která se vcelku úspěšně zabývá výrobou
facebookových her. Uniklo asi 38 tisíc uživatelských jmen a hashů jejich hesel.
28. e-mail:md5 (heslo)
Data z databáze Pixel Federation byla zveřejněna v této podobě. Za e-mailovou
adresou byl uveden MD5 hash hesla a pokud se útočníkům podařilo jednoduše
získat původní heslo, které odpovídá tomu hashi, tak ho přidali do závorky na konec.
Vidíme, že Šílená Mišulka má e-mail na Seznamu a pro přístup ke hrám Pixel
Federation používala heslo 197412, které bylo v databázi uloženo jako a3fa5a8c…
Heslo 197412 vypadá trochu jako datum narození: prosinec 1974, heslo je tedy
předvídatelné a tudíž slabé. Kdyby Mišulka používala stejné heslo i pro přístup k e-
mailu na Seznamu, měla by velký problém. Někdo by si totiž do její e-mailové
schránky mohl postupně posílat odkazy na reset zapomenutých hesel nebo rovnou
nová hesla z dalších služeb a webů a tím Mišulce ukrást celou její online identitu.
29. Nejen díky analýzám velkého množství
hesel v čitelné podobě, která dnes a denně
unikají z firem jako je právě RockYou víme,
jak uživatelé hesla vytvářejí. Když
dostanou za úkol vytvořit heslo, které má 8
znaků a alespoň jedno velké písmeno a
jedno číslo, tak vezmou nějaké známé
slovo, první písmeno udělají velké a číslo
dají na konec. Toho mohou útočníci využít
pro zrychlení crackování hesel, zvlášť když
jsou hesla hashována tak špatným
algoritmem jako je právě MD5 bez saltu.
Pro demonstraci jsem nepoužil žádný
slovník, ale hrubou silou prošel možné
kombinace. Program hashcat jsem nastavil
tak, aby jako první znak z osmi zkoušel
buď malé nebo velké písmeno, pak šest
malých písmen a jako poslední osmý znak
zkoušel číslo. 160 miliard kombinací by
můj tři roky starý laptop prošel za necelé
dvě hodiny. Hesla by měla být hashována
pomalým algoritmem se saltem, jak na to
se dozvíte v přednášce o hashování hesel.
30. Jenže na crackování hesel se nepoužívají laptopy, ale spíš clustery složené z
takovýchto bestií s 8 výkonnými grafickými kartami (GPU). Tyto počítače staví
firma Sagitta HPC Jeremiho Gosneyho, v základní konfiguraci stojí 18499 USD
a těch 160 miliard kombinací, které by můj laptop zkoušel dvě hodiny, umí s 8 GPU
Nvidia GTX Titan X projít za vteřinu.
31. (#7) prosinec 2014
Jabbim je český Jabber/XMPP server. V prosinci 2014 svým uživatelům
nadělil nádherný vánoční dárek v podobě úniku hesel.
32. 125k hesel
Žádný reset
Z Jabbimu uniklo 125 tisíc hesel v čitelné podobě a útočník je potom nabízel k
prodeji na ruských undergroundových fórech. Data nebyla zveřejněna, alespoň
prozatím. Jabbim nenabízí žádnou možnost resetu hesel, od svých uživatelů
nevyžadoval e-mailovou adresu a s únikem a následným resetem hesel vůbec
nepočítal. Část uživatelů přišla o své Jabber účty, protože si heslo nestihla změnit
a tak se raději přesunula jinam. Jabbim totiž po úniku vydal akorát blogpost, ve
kterém popsal, co se stalo a že si uživatelé mají změnit heslo. Pokud e-mailovou
adresu vaše služba nepotřebuje, stejně dejte uživatelům možnost ji zadat, nikdy
nevíte, kdy by se mohla hodit. Může to být jen dobrovolná položka registrace.
33. SkTorrent.eu
(#8) únor 2016
Poslední místo v seznamu patří slovenskému SkTorrent.eu. V přednášce zmiňuji
spoustu slovenských webů, protože uživatelé z Čech se na ně registrují také, navíc
spousta Slováků žije v ČR a proto je pro účely přednášky považuji za „naše“.
34. 118k hesel118k hesel
Z SkTorrentu někdo získal 118 tisíc hesel v čitelné podobě a vystavil je na Internet.
Na původní adrese už nejsou, ale stále se dá najít spousta kopií těch dat.
SkTorrent hesla nijak nehashoval. Data se dají použít opět na analýzu nebo pro
další útoky na uživatele, zvlášť pokud používají stejné heslo i pro přístup k e-mailu.
35. SOOM.czSOOM.cz
Bezpečnostních problémů je u nás i na Slovensku tak říkajíc neurékom. Na webu
SOOM.cz nejdete diskuzní fórum, ve kterém návštěvníci upozorňují na chyby
nalezené na různých webech a ve webových aplikacích. Weby to buď nejsou nijak
zajímavé, alespoň z pohledu médií, nebo ještě nedošlo k žádnému úniku dat.
Případně došlo, ale zatím na to majitel webu nepřišel, to je nejčastější případ.
Docela se divím, že se zatím neobjevil žádný další CzERT, Czechurity nebo igigi.
36. Pro představu, kolik bezpečnostních chyb obsahoval třeba takový web českého T-
Mobile se můžete podívat na jeho zeď slávy. T-Mobile spustil bug bounty program v
únoru 2015 a do března 2016 se na seznamu nalezených chyb ocitlo už docela dost
položek a jmen. T-Mobile doposud vyplatil na odměnách přes milion korun.
37. Michal ŠpačekMichal Špaček
www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze
Používejte náhodně generovaná
a unikátní hesla
Jak se jako uživatelé webových aplikací můžete bránit? Používejte náhodně
generovaná a hlavně unikátní hesla, pro každou službu jiná, aby při případném
úniku někdo nemohl získat heslo k dalším službám, které používáte. Používejte
správce hesel, usnadní vám vymýšlení i pamatování hesel. Pokud vyvíjíte nebo
provozujete nějakou webovou aplikaci, počítejte s tím, že se nějaký problém může
stát a mějte krizový scénář. Přečtěte si zkušenosti Petra Svobody z ShopSysu,
poradí vám, co v takovém případě dělat a jak se připravit.