Zabezpečení konfigurace aplikace a závislostí
Zabezpečení aplikace, která je hostovaná v Azure, je sdílená zodpovědnost mezi vámi a vlastníkem aplikace a Azure. V případě IaaS zodpovídáte za konfigurace související s virtuálním počítačem, operačním systémem a nainstalovanými komponentami. V případě PaaS zodpovídáte za zabezpečení konfigurace služby Application Service a zajistěte, aby byly závislosti, které aplikace používá, také zabezpečené.
Klíčové body
- Neukládejte tajné klíče ve zdrojovém kódu nebo konfiguračních souborech. Místo toho je Uchovávejte v zabezpečeném úložišti, jako je například konfigurace aplikace Azure nebo Azure Key Vault.
- Při zpracování výjimek aplikace nezveřejňujte podrobné informace o chybě.
- Nezveřejňujte informace specifické pro platformu.
- Uložte konfiguraci aplikace mimo kód aplikace, abyste ji aktualizovali samostatně a aby měla užší řízení přístupu.
- Omezte přístup k prostředkům Azure, které nesplňují požadavky na zabezpečení.
- Ověřte zabezpečení všech open-source kódu přidaných do vaší aplikace.
- Aktualizujte architektury a knihovny v rámci životního cyklu aplikace.
Zabezpečení konfigurace
Během fáze návrhu Vezměte v úvahu způsob ukládání tajných klíčů a zpracování výjimek. Tady je několik bodů.
Jak se konfigurace aplikace ukládá a jak k nim přistupuje aplikace?
Informace o konfiguraci aplikace mohou být uloženy spolu s aplikací. Nejedná se však o doporučený postup. Zvažte použití vyhrazeného systému správy konfigurace, jako je například konfigurace aplikace Azure nebo Azure Key Vault. Tímto způsobem je možné ho aktualizovat nezávisle na kódu aplikace.
Aplikace můžou obsahovat tajné klíče jako databázové připojovací řetězce, klíče certifikátů a tak dále. Neukládejte tajné klíče ve zdrojovém kódu nebo konfiguračních souborech. Místo toho je Uchovávejte v zabezpečeném úložišti, jako je například Azure Key Vault. Identifikujte tajné kódy v kódu pomocí nástrojů pro kontrolu statického kódu. Přidejte proces skenování do kanálu průběžné integrace (CI).
Další informace o správě tajných kódů, správě referenčních klíčů a tajnýchkódů.
Jsou chyby a výjimky správně zpracovány bez odhalení těchto informací uživatelům?
Při zpracování výjimek aplikace je aplikace řádně neúspěšná a zaznamenejte chybu. neposkytněte podrobné informace týkající se selhání, jako je například zásobník volání, SQL dotazy nebo chyby mimo rozsah. Tyto informace mohou útočníkům poskytnout cenné informace o vnitřních verzích aplikace.
Kód a konfigurace aplikace by neměly sdílet stejný životní cyklus, aby bylo možné provozní činnosti. Mezi tyto aktivity patří ty, které mění a aktualizují konkrétní konfigurace bez zapojení nebo opětovného nasazení vývojářů.
Jsou informace specifické pro platformu odebrány z komunikace klienta serveru?
Neodhalujte informace o aplikační platformě. Takové informace (například X-Powered-By , X-ASPNET-VERSION ) můžou být vystavené prostřednictvím bannerů http, hlaviček protokolu HTTP, chybových zpráv a zápatí webu. Škodlivé objekty actor mohou tyto informace použít při mapování vektorů útoku aplikace.
Navrhované akce
Zvažte použití služby Azure front-dveří nebo API Management k odebrání hlaviček protokolu HTTP specifických pro konkrétní platformu. místo toho použijte Azure CDN k oddělení hostujících platforem od koncových uživatelů. Azure API Management nabízí zásady transformace, které umožňují upravovat hlavičky HTTP a odebírat citlivé informace.
Další informace
Používají se zásady Azure k řízení konfigurace prostředků řešení?
Použijte Azure Policy k nasazení nastavení tam, kde je to možné. Zablokuje prostředky, které nesplňují správné požadavky na zabezpečení definované během povolování služby.
Závislosti, architektury a knihovny
Jaké jsou architektury a knihovny používané aplikací?
Aplikační architektury se často aktualizují a uvolňují dodavatel nebo komunity. Je důležité sledovat rozhraní a knihovny, které aplikace používá, včetně všech výsledných ohrožení zabezpečení, která zavádí. Mezi tyto architektury a knihovny patří vlastní, OSS, třetí strana a další. Pochopení a Správa technologií, které aplikace používá, například:
- .NET Core
- Spring
- Node.js
K tomuto posouzení můžou pomáhat automatizovaná řešení.
Vezměte v úvahu následující osvědčené postupy:
Ověřte zabezpečení všech open-source kódu přidaných do vaší aplikace. Bezplatné nástroje, které vám pomůžou s tímto posouzením, zahrnují:
- OWASP Dependency-Check
- NPM audit
- WhiteSource Bolt
Tyto nástroje hledají zastaralé součásti a aktualizují je na nejnovější verze.
Udržujte seznam architektur a knihoven jako součást inventáře aplikací. Sledujte také používané verze. Pokud jsou chyby zabezpečení zveřejněny, toto povědomí pomáhá identifikovat ovlivněné úlohy.
Aktualizujte architektury a knihovny v rámci životního cyklu aplikace. Nastavte prioritu důležitých oprav zabezpečení.
Sledování data vypršení platnosti certifikátů SSL/TLS a jejich prodloužení v čase je vysoce kritické. V ideálním případě by se měl proces automatizovat, i když to často závisí na certifikační autoritě použité pro certifikát. Pokud není automatizované, měli byste použít dostatek výstrah, aby se zajistilo, že se data o vypršení platnosti nevrátí.
Další informace