Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku prezentujeme aktivity zabezpečení a kontrolní mechanismy, které je potřeba vzít v úvahu při vývoji aplikací pro cloud. Otázky a koncepty zabezpečení, které je potřeba vzít v úvahu během fází implementace a ověřování životního cyklu SDL (Microsoft Security Development Lifecycle). Cílem je pomoct definovat aktivity a služby Azure, které můžete použít k vývoji bezpečnější aplikace.
V tomto článku jsou popsané následující fáze SDL:
- Implementation
- Verification
Implementation
Fáze implementace se zaměřuje na vytvoření osvědčených postupů pro včasnou prevenci a detekci a odstranění problémů se zabezpečením z kódu. Předpokládejme, že se vaše aplikace používá způsobem, který jste neměli v úmyslu použít. To vám pomůže chránit před náhodným nebo úmyslným zneužitím vaší aplikace.
Provádění kontrol kódu
Před kontrolou kódu proveďte kontroly kódu, abyste zvýšili celkovou kvalitu kódu a snížili riziko vytváření chyb. You can use Visual Studio to manage the code review process.
Provádění statické analýzy kódu
Statická analýza kódu (označovaná také jako analýza zdrojového kódu) se provádí jako součást revize kódu. Statická analýza kódu běžně odkazuje na spouštění nástrojů pro analýzu statického kódu za účelem zjištění potenciálních ohrožení zabezpečení v nerušujícím kódu. Static code analysis uses techniques like taint checking and data flow analysis.
Azure Marketplace offers developer tools that perform static code analysis and assist with code reviews.
Ověření a sanitizace každého vstupu pro vaši aplikaci
Považujte všechny vstupy za nedůvěryhodné, aby byla vaše aplikace chráněna před nejběžnějšími zranitelnostmi webových aplikací. Nedůvěryhodná data jsou prostředkem pro injekční útoky. Vstup pro vaši aplikaci obsahuje parametry v adrese URL, vstup od uživatele, data z databáze nebo z rozhraní API a vše, co je předáno uživateli, které by mohlo potenciálně manipulovat. An application should validate that data is syntactically and semantically valid before the application uses the data in any way (including displaying it back to the user).
Ověřte vstup v rané fázi toku dat a ujistěte se, že pracovní postup zadává pouze správně vytvořená data. Nechcete, aby se poškozená data uchovávala v databázi nebo aktivovala poruchu v podřízené komponentě.
Blokování a povolování jsou dva obecné přístupy k provádění ověřování vstupní syntaxe.
Při pokusu o zostavení seznamu blokovaných položek zkontrolujte, že daný vstup uživatele neobsahuje známý škodlivý obsah.
Při povolování se ověřuje, zda daný uživatelský vstup odpovídá sadě ověřených vstupů. Způsob povolování na základě znaků je forma povolovacího seznamu, kdy aplikace kontroluje, že vstup uživatele obsahuje pouze ověřené znaky nebo že vstup odpovídá známému formátu.
Může to například zahrnovat kontrolu, jestli uživatelské jméno obsahuje pouze alfanumerické znaky nebo že obsahuje přesně dvě čísla.
Použití seznamu povolených je upřednostňovaným přístupem k vytváření zabezpečeného softwaru. Blokování je náchylné k chybnosti, protože není možné si představit úplný seznam potenciálně škodlivých vstupů.
Funguje to na serveru, ne na straně klienta (nebo na serveru a na straně klienta).
Ověření výstupů aplikace
Jakýkoli výstup, který prezentujete vizuálně nebo v dokumentu, by měl být vždy kódován a escapován. Escaping, also known as output encoding, is used to help ensure that untrusted data isn't a vehicle for an injection attack. Zapouzdření v kombinaci s ověřováním dat poskytuje vrstvené obrany, které zvyšují zabezpečení systému jako celku.
Escaping makes sure that everything is displayed as output. Escaping also lets the interpreter know that the data isn't intended to be executed, and this prevents attacks from working. This is another common attack technique called cross-site scripting (XSS).
Pokud používáte webový framework od třetí strany, můžete ověřit své možnosti kódování výstupu na webech pomocí OWASP taháku prevence XSS.
Použití parametrizovaných dotazů při kontaktování databáze
Nikdy nevytvářejte dynamicky databázový dotaz v kódu a neposílejte ho přímo do databáze. Škodlivý kód vložený do vaší aplikace může potenciálně způsobit odcizení, vymazání nebo úpravu databáze. Aplikaci můžete také použít ke spouštění škodlivých příkazů operačního systému v operačním systému, který je hostitelem vaší databáze.
Místo toho použijte parametrizované dotazy nebo uložené procedury. Když použijete parametrizované dotazy, můžete proceduru z kódu bezpečně vyvolat a předat jí řetězec, aniž byste se museli obávat, že se bude považovat za součást příkazu dotazu.
Odebrání standardních hlaviček serveru
Hlavičky jako Server, X-Powered-By a X-AspNet-Version odhalují informace o serveru a základních technologiích. Doporučujeme potlačit tyto hlavičky, abyste se vyhnuli otisku prstu aplikace. Přečtěte si , jak na webech Azure odebrat hlavičky standardního serveru.
Oddělení produkčních dat
Vaše produkční data ani skutečná data by se neměla používat pro vývoj, testování ani žádný jiný účel než to, co firma zamýšlela. A masked (anonymized) dataset should be used for all development and testing.
To znamená, že k vašim skutečným datům má přístup méně lidí, což snižuje prostor pro útoky. To také znamená, že méně zaměstnanců vidí osobní údaje, což eliminuje potenciální porušení důvěrnosti.
Implementace silných zásad hesel
Chcete-li se bránit proti odhadování hrubou silou a slovníkem, musíte implementovat zásady silného hesla, aby uživatelé vytvořili složité heslo (například minimální délka 12 znaků a vyžadování alfanumerických a speciálních znaků).
Externí ID Microsoft Entra v externích tenantech vám pomůže se správou hesel tím, že poskytuje samoobslužné resetování hesla a další možnosti.
Pokud se chcete bránit útokům na výchozí účty, ověřte, že všechny klíče a hesla jsou nahraditelné a že se generují nebo nahrazují po instalaci prostředků.
Pokud aplikace musí automaticky vygenerovat hesla, ujistěte se, že vygenerovaná hesla jsou náhodná a že mají vysokou entropii.
Ověření nahrávání souborů
If your application allows file uploads, consider precautions that you can take for this risky activity. Prvním krokem v mnoha útocích je získání škodlivého kódu do systému, který je napaden. Použití nahrání souboru pomůže útočníkovi toho dosáhnout. OWASP nabízí řešení pro ověřování souboru, aby se zajistilo, že soubor, který nahráváte, je bezpečný.
Antimalwarová ochrana pomáhá identifikovat a odstranit viry, spyware a další škodlivý software. You can install Microsoft Antimalware or a Microsoft partner's endpoint protection solution (Trend Micro, Broadcom, McAfee, Microsoft Defender Antivirus in Windows, and Endpoint Protection).
Microsoft Antimalware includes features like real-time protection, scheduled scanning, malware remediation, signature updates, engine updates, samples reporting, and exclusion event collection. Microsoft Antimalware a partnerskou řešení můžete integrovat s Programem Microsoft Defender for Cloud , abyste usnadnili nasazení a předdefinované detekce (výstrahy a incidenty).
Neuchovávejte citlivý obsah do mezipaměti
Neuchovávejte citlivý obsah do mezipaměti v prohlížeči. Prohlížeče můžou ukládat informace pro ukládání do mezipaměti a historii. Soubory uložené v mezipaměti jsou uložené ve složce, jako je složka Dočasné soubory Internetu, v případě Aplikace Internet Explorer. Po opětovném odkazování na tyto stránky prohlížeč zobrazí stránky z mezipaměti. If sensitive information (address, credit card details, Social security number, username) is displayed to the user, the information might be stored in the browser's cache and be retrievable by examining the browser's cache or by pressing the browser's Back button.
Verification
Fáze ověření zahrnuje komplexní úsilí, které zajistí, že kód splňuje zásady zabezpečení a ochrany osobních údajů, které byly vytvořeny v předchozích fázích.
Vyhledání a oprava ohrožení zabezpečení v závislostech aplikace
Zkontrolujete aplikaci a její závislé knihovny, abyste identifikovali všechny známé ohrožené komponenty. Mezi produkty, které jsou k dispozici pro provedení této kontroly, patří OWASP Dependency Check, Snyk a Black Duck.
Testování aplikace v provozním stavu
Dynamické testování zabezpečení aplikací (DAST) je proces testování aplikace v provozním stavu za účelem zjištění ohrožení zabezpečení. Nástroje DAST analyzují programy během provádění, aby zjistily ohrožení zabezpečení, jako je poškození paměti, nezabezpečená konfigurace serveru, skriptování mezi weby, problémy s oprávněními uživatelů, injektáž SQL a další důležité aspekty zabezpečení.
DAST se liší od testování zabezpečení statických aplikací (SAST). Nástroje SAST analyzují zdrojový kód nebo kompilované verze kódu, když se kód nespouštějí, aby zjistily chyby zabezpečení.
Perform DAST, preferably with the assistance of a security professional (a penetration tester or vulnerability assessor). Pokud není k dispozici bezpečnostní specialista, můžete provést DAST sami se skenerem webového proxy serveru a některými školeními. Včas integrujte dynamický testovací skener aplikací (DAST), abyste měli jistotu, že do kódu nezavedete zjevné problémy se zabezpečením. See the OWASP site for a list of web application vulnerability scanners.
Provádění testování neplatným vstupem
In fuzz testing, you induce program failure by deliberately introducing malformed or random data to an application. Vyvolání chyb programu pomáhá odhalit potenciální problémy se zabezpečením ještě před tím, než je aplikace vydána.
Detekce rizik zabezpečení je jedinečná služba Microsoftu pro fuzz testování za účelem hledání bezpečnostně kritických chyb v softwaru.
Revize plochy útoku
Kontrola prostoru pro útok po dokončení kódu pomáhá zajistit, aby se zvážily všechny změny návrhu nebo implementace aplikace nebo systému. Pomáhá zajistit, aby všechny nové vektory útoku vytvořené v důsledku změn, včetně modelů hrozeb, byly zkontrolovány a zmírněny.
Obrázek prostoru útoku můžete vytvořit tak, že aplikaci prohledáte. Microsoft nabízí nástroj pro analýzu prostoru útoku s názvem Attack Surface Analyzer. Můžete si vybrat z mnoha komerčních dynamických testovacích nástrojů nebo služeb pro kontrolu ohrožení zabezpečení, včetně OWASP Attack Surface Detector, Arachni a w3af. Tyto nástroje pro kontrolu procházejí vaši aplikaci a mapují části aplikace, které jsou přístupné přes web. You can also search the Azure Marketplace for similar developer tools.
Testování průniku zabezpečení
Zajištění zabezpečení aplikace je stejně důležité jako testování všech dalších funkcí. Make penetration testing a standard part of the build and deployment process. Naplánujte pravidelné testy zabezpečení a kontrolu ohrožení zabezpečení nasazených aplikací a monitorujte otevřené porty, koncové body a útoky.
Spuštění testů ověření zabezpečení
Řešení zabezpečení tenanta Azure (AzTS) ze sady Secure DevOps Kit for Azure (AzSK) obsahuje SVT pro více služeb platformy Azure. Tyto SVT pravidelně spouštíte, abyste zajistili, že vaše předplatné Azure a různé prostředky, které tvoří vaši aplikaci, jsou v zabezpečeném stavu. Tyto testy můžete také automatizovat pomocí funkce rozšíření kontinuální integrace a průběžného nasazování (CI/CD) nástroje AzSK, která zpřístupňuje SVT jako rozšíření sady Visual Studio.
Next steps
V následujících článcích doporučujeme kontrolní mechanismy zabezpečení a aktivity, které vám pomůžou navrhovat a nasazovat zabezpečené aplikace.