Útočníci aktívne zneužívajú verejne dostupné ASP.NET kľúče na vzdialené vykonanie kódu

Spoločnosť Microsoft varovala pred útokmi na aplikácie ASP.NET, v rámci ktorých útočníci na vzdialené vykonanie kódu a šírenie malvéru zneužívajú verejne dostupné statické strojové kľúče (machine keys) ASP.NET.

Zraniteľné systémy:

  • ASP.NET aplikácie s verejne dostupnými kľúčmi

Opis zraniteľnosti:

Mnohí vývojári nedodržiavaním pravidiel bezpečného vývoja v rámci aplikácií využívajú validationKey a decryptionKey, ktoré je možné nájsť vo verejne dostupných zdrojoch ako sú napr. dokumentácia alebo repozitáre zdrojového kódu.

Uvedené kľúče sú navrhnuté na ochranu ViewState používaných v rámci webových formulárov ASP.NET Web Forms na kontrolu stavu a zachovanie stránok. Z pohľadu útočníka ich možno zneužiť na vytvorenie škodlivých payloadov so správnym MAC (Message Authentication Code) slúžiacim na overenie integrity a autenticity správy. Škodlivé ViewState sú prostredníctvom HTTP POST požiadaviek zaslané na IIS servery, kde ASP.NET Runtime vykoná ich dešifrovanie a overenie MAC. Pretože bol kód MAC vytvorený prostredníctvom správnych kľúčov, dochádza k nahratiu payloadu do pamäte a jeho následnému spusteniu.

Spoločnosť Microsoft identifikovala vyše 3 000 uniknutých kľúčov, ktorých hashe za účelom preverenia sprístupnila vo forme CSV súboru na svojom GitHub repozitári. Prítomnosť Vašich kľúčov v tomto zozname môžete skontrolovať prostredníctvom PowerShell skriptu.

Na základe dostupných informácií útočníci verejne dostupné kľúče zneužívajú minimálne od decembra 2024, kedy boli zneužité na kompromitáciu systémov post-exploitačným frameworkom Godzilla.

Možné škody:

  • Vzdialené vykonanie kódu
  • Získanie úplnej kontroly nad systémom

Odporúčania:

Administrátorom a vývojárom odporúčame overiť či ich aplikácie nepoužívajú verejne dostupné kľúče ASP.NET. Kompletný postup môžete nájsť v časti „Recommendations“ na webovej stránke spoločnosti Microsoft.

V rámci preventívnych opatrení spoločnosť odporúča dodržiavať pravidlá bezpečného vývoja softvéru a v súvislosti vývojom aplikácií ASP.NET:

  • Nepoužívať predvolené alebo verejne dostupné kľúče
  • Šifrovať elementy machineKeyconnectionStrings v rámci súborov web.config
  • Aktualizovať ASP.NET framework aspoň na verziu 4.8, ktorá umožňuje využitie funkcie AMSI (Antimalware Scan Interface)
  • Zabezpečiť (hardenovať) servery Windows s dôrazom na minimalizáciu attack surface (verejne dostupné služby a koncové body)

Zdroje: