Zrádná hrozba v open-source světě: Jak jednoduchý útok mohl ohrozit celosvětovou internetovou bezpečnost?

Během obvyklé kontroly odhalil německý programátor Andres Freund zvláštní anomálii. Jeho zvědavost ho dovedla až k zdrojovému kódu nástroje pro kompresi, kde neznámý útočník skryl zadní vrátka.
Při každodenním používání internetu si pravděpodobně neuvědomujeme, jak křehká je tato struktura. Kdyby byla internetová síť letadlem, asi by do ní nikdo nenasedl: každé křídlo od jiného výrobce, motor z raketoplánu, podvozek připevněný lepicí páskou. Tato „improvizovaná“ povaha internetu by neměla překvapit nikoho, kdo v poslední době programoval. Je to spojení mnoha různých knihoven, z nichž každá závisí na dalších knihovnách. V mnoha ohledech to má své výhody. Umožňuje vám zkoušet nové věci a rychle vyvíjet vlastní produkty, aniž byste museli znovu objevovat kolo. Toto je jedna z klíčových myšlenek tzv. open-source hnutí: Místo toho, aby někdo vyvíjel složitá řešení od základů, může využít osvědčená jednoúčelová řešení. O správu těchto řešení se stará komunita z celého světa. Takže když využijete taková cizí řešení, můžete se spolehnout, že kód již prošel mnoha rukama a byl otestován v praxi miliony uživatelů.
Jak byste vlastně pronikli do tak pečlivě kontrolovaného ekosystému a provedli útok na celosvětovou internetovou architekturu? Museli byste dlouhodobě budovat svou důvěryhodnost, léta bezplatně přispívat do zdrojového kódu zdánlivě nevýznamných programů… A poté, v jednom z těchto nepatrných programů, přidat ještě méně významný kód, zamaskovaný jako testovací podprocedura. A právě to se zjevně nedávno stalo. Plánovaný útok měl využít open-source nástroj pro rychlou bezztrátovou kompresi XZ Utils. Tento nástroj je relativně malý a nedělá nic příliš důležitého ani revolučního, avšak využívají jej mnohé větší projekty, včetně například nástroje SSH pro šifrovaný vzdálený přístup.
Německý programátor Andres Freund neměl „zastavení globálního útoku“ jako součást své práce. Pracuje v Microsoftu na rozvoji open-source projektu PostgreSQL. Firma Microsoft je už nějakou dobu jedním z největších přispěvatelů do open-source systémů. Ostatně i populární programátorská platforma GitHub, přes kterou se koordinuje vývoj mnoha open-source projektů, je od roku 2018 vlastněna společností Microsoft.
Během běžné kontroly narazil Freund na drobnou nesrovnalost. Testování komponenty SSH zatížilo jeho počítač o něco více, než si pamatoval. Po troše pátrání vystopoval netradiční chování nástroje XZ Utils.
„Pozoruhodné bylo, že rozdíl byl velmi malý, jen asi jedno nebo dvě procenta,“ vysvětlil později Freund. Později spatřil volání nástroje pro vytváření záznamů, ale v daný moment neexistoval žádný důvod pro volání knihovny xz/liblzma. Postupně identifikoval konkrétní zdrojový kód, který za to mohl, a v němž se nacházela zadní vrátka. Tyto zadní vrátka byly ukryty v XZ Utils verze 5.6.0 a 5.6.1 neznámým útočníkem, upozornil Freund 29. března.
„Jakmile jsme si byli jisti, že jde o zrádná zadní vrátka, bylo, jako by se zastavil čas,“ popsal Freund. „Začal jsem pátrat. Nejprve jsem si myslel, že to omezuje systém Debian, a tak jsem jim zaslal varování. Ale pak jsem zjistil, že to ovlivňuje všechny. Opravdu všechny. Ihned jsem to nahlásil a koordinoval další kroky.“
Pokud by tyto vrátka v nástroji zůstala, mohl je útočník (ten samý, ale také jiný, pokud by znal příslušný tajný kód) využít k infiltraci a spuštění cizího kódu na jiném stroji. Jinými slovy, mohl by provést libovolný útok.
Zatím nebyl zaznamenán žádný útok využívající tato zadní vrátka. Nyní, když jsou odhalena, se zdá, že celosvětová bezpečnostní komunita rychle zasáhne a odstraní je ze všech počítačů, kam se dostaly prostřednictvím aktualizací softwaru.
„Toto mohou být nejrozšířenější a nejúčinnější zadní vrátka, která kdy byla do jakéhokoli softwarového produktu vložena,“ poznamenal Alex Stamos ze společnosti SentinelOne, specializující se na výzkum kybernetické bezpečnosti.
Útočník pracoval pod pseudonymem Jia Tan a zdá se, že si své renomé vytvořil po dobu nejméně dvou let. Z nováčka se stal důvěryhodným přispěvatelem a později správcem knihovny XZ Utils. „Bylo to velmi záhadné,“ komentoval Freund, který odhalil jejich plán. „Zřejmě vynaložili velké úsilí na to, aby skryli, co dělají.“
„Tato operace, která trvala několik let, byla velmi propracovaná. Tyto skryté zadní vrátka jsou extrémně záludná,“ uvedl Costin Raiu, bývalý hlavní výzkumník společnosti Kaspersky zabývající se kybernetickou bezpečností. „Domnívám se, že jde o skupinu, kterou podporuje národní stát, a která má dlouhodobé cíle a finanční zdroje na investici do mnohaleté infiltrace open source projektů.“ Jako hlavní podezřelé jmenoval Čínu, Rusko a Severní Koreu.
Časová razítka úprav, které uživatel Jia Tan posílal, odpovídala časové zóně ve východní Asii. Nicméně odborníci upozorňují, že uživatel mohl změny časovat tak, aby zmazal stopy.
„Bezpečnost je týmová práce,“ chválil svého zaměstnance šéf Microsoftu. „Jsem potěšen, když vidím, jak nás Andres Freund svou zvědavostí a šikovností ochránil.“ Open-source komunita tak může slavit. Její hlavní myšlenka – možnost vidět zdrojový kód – se ukázala jako zásadní. Tentokrát to bylo opravdu na vlásku.
Zdroj foto: www.pexels.com
Komentáře