Škodlivý kód na GitHubu skrytý pomocí Unicode znaků

Bezpečnostní výzkumníci odhalili rozsáhlou kampaň, při níž útočníci zveřejňují na GitHubu projekty obsahující skrytý škodlivý kód. Tyto repozitáře využívají speciální znaky Unicode, které jsou při vizuální kontrole kódu téměř nepostřehnutelné. Vývojářům se jeví jako prázdné mezery nebo řádky, ale při zpracování interpretem se tento kód může správně dekódovat a spustit škodlivé akce.

Podle expertů z Aikido Security se na platformě mezi 3. a 9. březnem objevilo alespoň 151 balíčků připravených tímto způsobem. Tyto projekty často předstírají, že jde o populární knihovny nebo známé softwarové nástroje, což zvyšuje pravděpodobnost, že je vývojáři omylem použijí. Na první pohled vypadá kód bezpečně a čitelně, ale nebezpečné funkce jsou ukryty v sekvencích neviditelných znaků, což činí tradiční manuální kontroly neúčinnými při odhalování hrozby. Podobné nálezy již byly zdokumentovány i na jiných platformách, včetně NPM, Open VSX a tržiště rozšíření VS Code.

Expertíza spojuje tuto kampaň se skupinou předběžně pojmenovanou Glassworm. Identifikace jejích členů je extrémně obtížná, protože repozitáře vypadají velmi věrohodně. Pravidelně obsahují aktualizace dokumentace, změny verzí, opravy chyb a refaktoring kódu – vše napodobuje aktivní vývoj projektu. Specialisté naznačují, že pro vytvoření velkého objemu takových realistických změn mohli útočníci použít generativní modely umělé inteligence.

Technicky útok zneužívá skutečnost, že některé znaky Unicode jsou vizuálně nerozlišitelné od prázdných mezer, ale mohou být interpretovány jako znaky latinské abecedy. Výsledkem je, že malý vestavěný dekodér extrahuje skutečné bajty z těchto symbolů a předává je funkci pro spuštění kódu. Objevené projekty mohou představovat pouze malou část celé kampaně, poznamenávají výzkumníci, protože škodlivé balíčky jsou často odstraněny poté, co získaly dostatek stažení.