Přehled zabezpečení
Zabezpečení aplikace je probíhající proces. Nikdy nebude bod, kdy vývojář může zaručit, že aplikace bude před všemi útoky v bezpečí, protože není možné předpovědět, jaké druhy budoucích útoků přinese nové technologie. Naopak to, že nikdo ještě nezjmeoval (nebo publikoval) chyby zabezpečení v systému, neznamená, že neexistuje nebo by mohl existovat. Během fáze návrhu projektu je potřeba naplánovat zabezpečení a také naplánovat, jak se bude zabezpečení udržovat po celou dobu životnosti aplikace.
Návrh pro zabezpečení
Jedním z největších problémů při vývoji zabezpečených aplikací je to, že zabezpečení je často něco, co je třeba implementovat po dokončení projektu. Nenasazení zabezpečení do aplikace na počátku vede k nezabezpečených aplikacím, protože jsme se jen trochu zamysleli nad tím, čím je aplikace zabezpečená.
Implementace zabezpečení na poslední chvíli vede k více chybám, protože software přeruší nová omezení nebo musí být přepsán, aby vyhovoval neočekávaným funkcím. Každý řádek revidovaného kódu obsahuje možnost zavést novou chybu. Z tohoto důvodu byste měli zvážit zabezpečení v rané fázi procesu vývoje, aby bylo možné pokračovat ve spolupráci s vývojem nových funkcí.
Modelování hrozeb
Systém proti útokům nemůžete chránit, pokud neporozuměli všem potenciálním útokům, které jsou vystaveny. Proces vyhodnocování bezpečnostních hrozeb, nazývaných modelování hrozeb, je nezbytný k určení pravděpodobnosti a důsledků porušení zabezpečení ve vaší ADO.NET aplikaci.
Modelování hrozeb se skládá ze tří kroků vysoké úrovně: porozumění pohledu na adverzi, určení zabezpečení systému a určení hrozeb.
Modelování hrozeb je iterativní přístup k posuzování ohrožení zabezpečení ve vaší aplikaci, aby bylo možné najít ty, které jsou nejnebezpečnější, protože zpřístupňuje nejcitlivější data. Jakmile identifikujete ohrožení zabezpečení, seřadíte je podle závažnosti a vytvoříte sadu protiopatření seřazenou podle priority.
Další informace naleznete v následujících zdrojích:
| Prostředek | Popis |
|---|---|
| Web modelování hrozeb na portálu bezpečnostního inženýrství | Zdroje informací na této stránce vám pomůžou pochopit proces modelování hrozeb a vytvořit modely hrozeb, které můžete použít k zabezpečení vlastních aplikací. |
Princip nejmenších oprávnění
Při návrhu, sestavování a nasazování aplikace musíte předpokládat, že vaše aplikace bude napadána. Tyto útoky často pocházejí ze škodlivého kódu, který se spouští s oprávněními uživatele, který kód spouští. Jiné mohou pocházet z dobře zamyšlového kódu, který útočník zneužije. Při plánování zabezpečení vždy předpokládejme, že dojde k nejhoršímu scénáři.
Jedním z protiměr, které můžete využít, je pokusit se co nejvíce zdí kolem kódu posouvat spuštěním s nejmenšími oprávněními. Princip minimálního oprávnění říká, že každé dané oprávnění by mělo být uděleno co nejmenšímu množství kódu potřebnému po nejkratší dobu potřebnou k tomu, aby se úloha potřebná k tomu, aby se dala provést.
Osvědčeným postupem při vytváření zabezpečených aplikací je začít s žádnými oprávněními a pak přidat nejužší oprávnění pro konkrétní prováděnou úlohu. Naproti tomu od všech oprávnění a pak odepření jednotlivých oprávnění vede k nezabezpečeným aplikacím, které se obtížně testují a udržují, protože bezpečnostní potíže mohou existovat před neúmyslným udělením více oprávnění, než je potřeba.
Další informace o zabezpečení aplikací najdete v následujících zdrojích informací:
| Prostředek | Popis |
|---|---|
| Zabezpečení aplikací | Obsahuje odkazy na obecná témata týkající se zabezpečení. Obsahuje také odkazy na témata týkající se zabezpečení distribuovaných aplikací, webových aplikací, mobilních a desktopových aplikací. |
Zabezpečení přístupu kódu (CAS)
Zabezpečení přístupu kódu (CAS) je mechanismus, který pomáhá omezit přístup, který kód má k chráněným prostředkům a operacím. V .NET Framework cas provádí následující funkce:
Definuje oprávnění a sady oprávnění, které představují právo na přístup k různým systémovým prostředkům.
Umožňuje správcům konfigurovat zásady zabezpečení tím, že přidruží sady oprávnění ke skupinám kódu (skupinám kódu).
Umožňuje kódu vyžádat si oprávnění, která vyžaduje ke spuštění, a také oprávnění, která by mohla být užitečná, a určuje, která oprávnění kód nesmí nikdy mít.
Udělí oprávnění ke každému načtenmu sestavení na základě oprávnění požadovaných kódem a operací povolených zásadou zabezpečení.
Umožňuje kódu vyžádat, aby jeho volající určitá oprávnění.
Umožňuje kódu požadovat, aby jeho volající vlastnili digitální podpis, což umožňuje volání chráněného kódu pouze volajícím z konkrétní organizace nebo webu.
Vynucuje omezení kódu za běhu porovnáním udělených oprávnění všech volajících v zásobníku volání s oprávněními, která volající musí mít.
Pokud chcete minimalizovat množství škod, ke kterým může dojít v případě úspěšného útoku, zvolte pro svůj kód kontext zabezpečení, který uděluje přístup pouze k prostředkům, které potřebuje k práci, a nic dalšího.
Další informace naleznete v následujících zdrojích:
| Prostředek | Popis |
|---|---|
| Zabezpečení přístupu ke kódu a ADO.NET | Popisuje interakce mezi zabezpečením přístupu kódu, zabezpečením na základě rolí a částečně důvěryhodnými prostředími z pohledu ADO.NET aplikace. |
| Zabezpečení přístupu kódu | Obsahuje odkazy na další témata popisující CAS v .NET Framework. |
Zabezpečení databáze
Princip nejmenších oprávnění platí také pro váš zdroj dat. Mezi obecné pokyny pro zabezpečení databáze patří:
Vytvořte účty s nejnižšími možnými oprávněními.
Nepovolovat uživatelům přístup k účtům pro správu jenom proto, aby kód zpracuje.
Nevrací klientské aplikaci chybové zprávy na straně serveru.
Ověřte veškerý vstup na straně klienta i serveru.
Použijte parametrizované příkazy a vyhněte se dynamickým SQL příkazům.
Povolte auditování a protokolování zabezpečení pro databázi, kterou používáte, abyste měli upozornění na případné porušení zabezpečení.
Další informace naleznete v následujících zdrojích:
| Prostředek | Popis |
|---|---|
| SQL Server – zabezpečení | Poskytuje přehled zabezpečení SQL Server s aplikačními scénáři, které poskytují pokyny pro vytváření zabezpečených aplikací ADO.NET, které cílí SQL Server. |
| Recommendations pro strategie přístupu k datům | Poskytuje doporučení pro přístup k datům a provádění databázových operací. |
Zásady a správa zabezpečení
Nesprávná správa zásad zabezpečení přístupu kódu (CAS) může potenciálně způsobit slabá místa zabezpečení. Po nasazení aplikace by se měly použít techniky monitorování zabezpečení a vyhodnotit rizika, když se objeví nové hrozby.
Další informace naleznete v následujících zdrojích:
| Prostředek | Popis |
|---|---|
| Správa zásad zabezpečení | Poskytuje informace o vytváření a správě zásad zabezpečení. |
| Osvědčené postupy pro zásady zabezpečení | Obsahuje odkazy popisující způsob správy zásad zabezpečení. |