Přeskočit na hlavní obsah

Selhání softwaru a integrity dat

  • Zabývá se předpoklady týkajících se aktualizace software, kritických dat a CI/CD pipelines bez ověření integrity.
  • Zranitelnosti souvisí s kódem a infrastrukturou, které nechrání před porušením integrity.
  • Mnoho aplikací dnes obsahuje funkci automatických aktualizací, kdy jsou aktualizace stahovány bez dostatečného ověření integrity.
  • Útočníci by mohli potenciálně nahrát vlastní aktualizace, které by byly distribuovány a spuštěny na všech instalacích.
  • Příkladem je situace, kdy aplikace spoléhá na pluginy, knihovny nebo moduly z nedůvěryhodných zdrojů, úložišť nebo CDN.
  • Nezabezpečené CI/CD může představovat potenciál pro neoprávněný přístup, škodlivý kód nebo kompromitaci systému.
  • Dalším příkladem je situace, kdy jsou data serializována nebo zakódována do struktury, kterou může útočník vidět a modifikovat.

Nejčastější zranitelnosti

  • Použití a zahrnutí funkcionality z nedůvěryhodného zdroje.
  • Stažení kódu bez kontroly integrity.
  • Deserializace nedůvěryhodných dat.

Jak zranitelnosti předcházet

🔴 Používejte digitální podpisy nebo podobné mechanismy k ověření, že software nebo data pocházejí z očekávaného zdroje a nebyly změněny.

🔴 Zajistěte, aby knihovny nebo závislosti využívaly důvěryhodné repozitáře.

  • Zvažte hostování prověřeného interního úložiště, pokud máte vyšší rizikový profil.

🔴 Zajistěte, aby se k ověření, že knihovny neobsahují známé zranitelnosti, používal nástroj pro zabezpečení software.

🔴 Zajistěte existenci procesu pro kontrolu změn kódu a konfigurace, abyste minimalizovali možnost, že se do pipeline dostane škodlivý kód nebo konfigurace.

🔴 Zajistěte, aby vaše CI/CD pipeline měla správnou segregaci, konfiguraci a řízení přístupu.

  • Tím zajistíte integritu kódu, který prochází build a deploy procesy.

🔴 Zajistěte, aby nešifrovaná nebo nepodepsaná serializovaná data nebyla odesílána nedůvěryhodným klientům bez jakékoli formy kontroly integrity nebo digitálního podpisu.

Příklad zneužití zranitelnosti

  1. Mnoho domácích routerů, set-top boxů, firmware a dalších zařízení neověřuje aktualizace prostřednictvím podepsaného firmware. Nepodepsaný firmware je stále častějším cílem útočníků, což se bude do budoucna spíše zhoršovat. Jedná se o velký problém, protože mnohdy neexistuje jiný mechanismus než oprava v budoucí verzi a čekání, dokud předchozí verze nezastarají.
  2. Nedávným významným útokem byl útok na SolarWinds Orion. Společnost, která tento software vyvíjí, měla zabezpečené build a deploy procesy včetně integrity. Přesto se ji podařilo napadnout a firma několik měsíců distribuovala vysoce škodlivou aktualizaci do více než 18.000 organizací, z nichž bylo zasaženo přibližně 100 organizací. Jedná se o jedno z nejrozsáhlejších a nejvýznamnějších narušení tohoto druhu v historii.
  3. React aplikace volá sadu mikroslužeb Spring Boot. Programátoři se snažili zajistit, aby byl jejich kód neměnný (immutable). Řešení, se kterým přišli, spočívá v serializaci stavu uživatele a jeho předávání tam a zpět s každým požadavkem. Útočník si všimne base64 signature Java objektu a pomocí nástroje Java Serial Killer získá vzdálené spuštění kódu na serveru aplikace.

Kam dál

Cheat sheety

Checklisty

Další