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
adeploy
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
- 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í.
- 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.
- 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.