(Ne)bezpečnost internetového bankovnictví v ČR
Počátkem ledna tohoto roku publikovala společnost Xiphos Research průzkum úrovně zabezpečení SSL užívaného bankami ve Velké Británii u webových serverů internetového bankovnictví. SSL/TLS je technologie užívaná pro šifrování komunikace mezi klientským počítačem a serverem a pro zabezpečení aplikací typu internetového bankovnictví je zcela nezbytná. Výsledky uvedeného průzkumu byly překvapivě špatné – nedostatky v zabezpečení vykazovala polovina z 84 zkoumaných SSL instancí a zabezpečení 12 z nich bylo ohodnoceno stupněm F, nejnižším možným dle použité hodnotící škály (specifikované v SSL Server Rating Guide).
S ohledem na velmi špatné výsledky britských bank jsme se rozhodli podrobit obdobnému zkoumání nastavení SSL na serverech internetového bankovnictví finančních institucí působících v České republice. K získání výsledků byla použita stejná metodologie, jako v případě původního průzkumu – test nastavení SSL instancí byl proveden pomocí volně dostupného online nástroje SSL Server Test a úroveň zabezpečení byla hodnocena na výše zmíněné šestiúrovňové škále SSL Server Rating. Hodnocenými parametry užívanými pro zařazení ve škále jsou typy podporovaných protokolů (tvoří 30% výsledného hodnocení), užité mechanismy bezpečné výměny klíčů (30% výsledného hodnocení) a typy podporovaných šifer (40% výsledného hodnocení).
Dle výsledků měření uvedených parametrů je bezpečnost nastavení SSL hodnocena stupni A (velmi vysoká) až F (vykazující závažné nedostatky a zranitelnosti), s tím, že servery hodnocené nejvyšším stupněm mohou být v případě implementace nadstandardních opatření označeny jako A+ a při odhalení velmi drobných nedostatků jako A-. V situaci, kdy je na serveru užitý SSL certifikát považován za nedůvěryhodný, je výsledné hodnocení doplněno o písmeno T.
S výjimkou výše uvedeného neinvazivního anonymního skenu webových serverů internetového bankovnictví (a případného zobrazení odpovídajících stránek pomocí webového prohlížeče) nebyly v rámci průzkumu prováděny žádné další akce. Po vyhodnocení testu byly všechny finanční instituce, na jejichž serverech byly detekovány potenciální zranitelnosti, kontaktovány a upozorněny na slabiny ve svých implementacích SSL.
Celkem bylo v rámci zkoumání zabezpečení serverů internetového bankovnictví analyzováno 33 SSL instancí provozovaných 30 různými institucemi. Výsledná hodnocení jsou shrnuta do grafu.
Jak je z něj patrné, 22 (~67%) ze zkoumaných SSL instancí bylo hodnoceno stupněm A, tedy nevykazovalo žádné podstatné zranitelnosti a lze je považovat za bezpečné. Všechny SSL instance spadající do zbylé třetiny pak vykazovaly různě závažné slabiny a/nebo konfigurační nedostatky.
Mezi nejvýznamnější objevené zranitelnosti lze řadit POODLE (zjištěná v případě dvou serverů), CRIME a Logjam (z nichž každá byla detekována na jednom serveru). Při úspěšném využití první jmenované zranitelnosti může potenciální útočník jako man in the middle získat dešifrované části obsahu SSL relace mezi klientem a serverem. Druhá zmíněná zranitelnost umožňuje útočníkovi potenciálně získat předávané cookie a následně převzít klientskou relaci (tedy provést tzv. session hijacking). Pomocí třetí uvedené zranitelnosti je potom možné snížit složitost užitého šifrování na velmi nízkou úroveň, v důsledku čehož je útočník schopen dešifrovat a modifikovat probíhající komunikaci. Všechny popsané zranitelnosti mohou představovat citelnou hrozbu pro aplikace typu internetového bankovnictví.
Mezi méně významné avšak častěji detekované (5 SSL instancí v obou případech) zranitelnosti a nedostatky patřila podpora zastaralého šifrovacího algoritmu RC4 a slabiny v konfiguraci Diffie Hellmanova algoritmu výměny klíčů (užití prvočísel s délkou menší či rovnou 1024 bitů).
Několik nedostatků lze rovněž uvést pro oblast podporovaných protokolů – v případě dvou serverů bylo detekováno užívání zastaralého a nedostatečně zabezpečeného protokolu SSL verze 3.0 a celkem 6 analyzovaných SSL instancí nepodporovalo nejnovější a nejbezpečnější verzi (1.2) protokolu TLS.
Za zmínku dále stojí, že na pěti ze zkoumaných serverů byly používány certifikáty SHA-1, které v současnosti přestávají být považovány za bezpečné a všechny nejčastěji užívané prohlížeče plánují v blízké době ukončit jejich podporu. Certifikát považovaný za nedůvěryhodný používal pouze jeden ze zkoumaných serverů – důvodem pro nedostatečnou důvěryhodnost certifikátu byla v uvedeném případě skutečnost, že nebyl potvrzen certifikační autoritou, ale pouze vlastním podpisem (self signed).
Na závěr je vhodné uvést, že přestože 33% SSL instancí užívaných v České republice pro ochranu internetového bankovnictví obsahovalo v době průzkumu nedostatky a zranitelnosti, útok na většinu z nich by byl silně problematický. Reálně využitelné zranitelnosti, které by mohly představovat citelnou hrozbu pro chráněnou komunikaci mezi klientem a bankou, vykazovaly pouze dva ze zkoumaných serverů (oba hodnocené stupněm F). V případě jednoho dalšího by potom úspěšný útok na bezpečnost navázaného spojení mohl být realizován za určitých specifických okolností. Realisticky závažné zranitelnosti se tedy týkaly pouze 6 – 9% analyzovaných instancí SSL.
Je na místě dodat, že SSL/TLS není jediným mechanismem užívaným finančními institucemi pro zabezpečení internetového bankovnictví. Vzhledem k tomu, že se však jedná o klíčovou technologii, která zajišťuje důvěrnost a integritu komunikace mezi klientským počítačem a serverem banky, její správné implementaci a nastavení by vždy měla být věnována odpovídající pozornost.
CSIRT Coordinator