VO VÁŽNOM OHROZENÍ: Štát cez elektronické občianske preukazy umožnil ovládnuť počítače Slovákov
12 | 07 | 2019 I Roman Suchý (redakčný výber)

Držitelia elektronických občianskych preukazov a užívatelia aplikácie eID klient sa ocitli vo vážnom ohrození. Informuje portál DSL a Info.sk.


eID klient je aplikácia, ktorá slúži na elektronickú identifikáciu majiteľa občianskeho preukazu s čipom. S jej fungovaním sú oboznámení predovšetkým užívatelia portálu www.slovensko.sk a majitelia elektronických schránok.

Na používanie softvéru eID klient sú povinne odkázaní mnohí občania Slovenskej republiky, ktorých štát vystavil značnému riziku. Portál DSL.sk informuje, že bezpečnostné zraniteľnosti boli zaznamenané na prelome februára a marca 2019, keď užívatelia evidovali problémy s prihlásením pomocou elektronických občianskych preukazov.

Problémy mali v tom čase vyriešiť nové verzie eID klienta 3.1.2 pre Windows a 3.0.2 a následne 3.0.3 pre Mac a Linux. Štát vtedy hovoril o "možnom bezpečnostnom ohrození" občanov.

Konkrétnu formu zraniteľností sa podarilo identifikovať až dnes spoločnosti Binary House a jej spoločníkovi Marekovi Alakšovi.

Zraniteľnosti boli identifikované na prelome februára a marca a vyústili do znefunkčnenia prihlasovania pomocou elektronických občianskych preukazov eID pomocou dovtedajších verzií aplikácie eID klient bez predchádzajúceho avíza. Vydané boli nové verzie 3.1.2 pre Windows a 3.0.2 respektíve následne 3.0.3 pre Mac a Linux a štát následne označil ako dôvod tohto kroku "možné bezpečnostné ohrozenie" so zverejnením základnej charakterizácie problému bez dostatočných podrobností.

Tie boli zverejnené až aktuálne, so správou jednotky CSIRT a správou spoločnosti Binary House, ktorá zraniteľnosť identifikovala. Zraniteľnosť konkrétne identifikoval Marek Alakša zo spoločnosti.

Zraniteľnosti


V softvéri eID klient sa do marca nachádzali dve zraniteľnosti, hlavná umožňujúca útok na všetkých troch podporovaných platformách Windows, macOS a Linux a druhotná umožňujúca útok voči macOS a Linuxu dokonca z Internetu bez akejkoľvek súčinnosti užívateľa.

eID klient je softvér pristupujúci k elektronickým funkciám eID a sprístupňujúci tieto funkcie aj štátnym webovým aplikáciám. S nimi komunikuje cez webové rozhranie pomocou integrovaného lokálneho webservera počúvajúceho na počítači užívateľa na TCP porte 15480.

eID klient nemá vlastnú implementáciu webového servera, integruje open source server civet-webserver a ten mal štandardne odpovedať len na dotazy cez sedem špecifických URL.

Podľa správy Binary House z "dôvodu zlej implementácie civet-webservera do eID klienta" a teda nie chybe v samotnom civet-webserver ale tento zabudovaný webserver obsluhoval aj ďalšie požiadavky. A to ľubovoľné HTTP požiadavky metódami DELETE a PUT a zároveň po vyžiadaní spracuvával prípadné dynamické skripty typu SSI a CGI, ak sa nachádzali v súboroch s koncovkami shtml a shtm respektíve cgi, pl a php. Zraniteľnosť dostala označenie CVE-2019-13028.

Webserver má podľa CSIRT nastavený ako domovský adresár adresár s používateľskými súbormi užívateľa. Na Linuxe je to domovský adresár užívateľa, pre macOS a Windows oznámenie konkrétny adresár neavizuje.

Metóda DELETE umožňovala zmazať súbory na počítači užívateľa, metóda PUT kvôli implementácii neumožňovala nahrať ľubovoľný súbor ale umožňovala tiež zmazať obsah ľubovoľného súboru. Podpora SSI a CGI zase umožňovala spustiť útočníkom zvolený kód, ak ho nejakým spôsobom vedel dostať na počítač užívateľa.

Druhá zraniteľnosť bola prítomná v prípade Linuxu a macOS. V tomto prípade webserver nepočúval iba na localhost rozhraní a neobsluhoval požiadavky iba z lokálnych aplikácií ale odpovedal aj na požiadavky prichádzajúce cez sieť. Ak bol počítač pripojený priamo na Internet bez firewallu a NAT, pristupovať na eID klient bolo možné v prípade užívateľov na týchto OS aj z Internetu.

Dopady


Zraniteľnosti umožňovali útoky dvoch typov. V prípade macOS a Linuxu v prípade počítačov s TCP portom 15480 dostupným z Internetu mohli útočníci útočiť na eID klient a jeho primárnu zraniteľnosť aj z Internetu bez akejkoľvek súčinnosti užívateľa.

Útočiť sa vzhľadom na webové rozhranie eID klienta ale dalo na užívateľov všetkých OS, pomocou škodlivého JavaScript skriptu na ľubovoľných internetových stránkach otvorených napríklad vo webovom prehliadači užívateľa komunikujúceho následne lokálne s eID klientom na PC. Takýto typ útoku sa síce považuje za útok so súčinnosťou užívateľa, keď užívateľ musí navštíviť stránku s podvrhnutým skriptom, skript ale môže byť podvrhnutý na ľubovoľnej stránke.

Proti takýmto útokom síce chráni politika Cross-Origin Resource Sharing zabraňujúca skriptu pristupovať na URL na iných doménach, tá sa dá ale obísť technikou DNS rebinding.



V prípade Linuxu a MacOS hrozilo aj ďalšie riziko: "V tomto prípade webserver nepočúval iba na localhost rozhraní a neobsluhoval požiadavky iba z lokálnych aplikácií ale odpovedal aj na požiadavky prichádzajúce cez sieť. Ak bol počítač pripojený priamo na Internet bez firewallu a NAT, pristupovať na eID klient bolo možné v prípade užívateľov na týchto OS aj z Internetu," píše DSL.

Spoločnosť Binary House, ktorá problém odhalila, na to upozornila 27. februára. Dňa 2. marca už boli vydané opravené verzie aplikácie eID klient. "Štát informoval o aktualizácii o ďalšie dva dni 4. marca," uzatvára DSL.