Přehled zabezpečení
Zabezpečení aplikace je probíhající proces. Nikdy nebude existovat bod, kdy vývojář může zaručit, že aplikace je v bezpečí před všemi útoky, protože není možné předpovědět, jaké druhy budoucích útoků budou nové technologie přinést. Naopak, právě proto, že nikdo dosud nezjistil (nebo publikoval) chyby zabezpečení v systému neznamená, že neexistuje nebo neexistuje. Potřebujete naplánovat zabezpečení během fáze návrhu projektu a také naplánovat, jak bude zabezpečení po celou dobu životnosti aplikace zachováno.
Navrhování s důrazem na 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 po dokončení kódu něco, co je potřeba implementovat po dokončení projektu. Nezabudování zabezpečení do aplikace na začátku vede k nezabezpečeným aplikacím, protože se málo myslelo, co aplikaci zabezpečí.
Implementace zabezpečení za poslední minutu vede k dalším chybám, protože software se přeruší podle nových omezení nebo se musí přepsat tak, aby vyhovoval neočekážený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 mohlo pokračovat v kombinaci s vývojem nových funkcí.
Modelování hrozeb
Systém nelze chránit před útoky, pokud nerozumíte všem potenciálním útokům, kterým je vystaven. Proces vyhodnocení bezpečnostních hrozeb označovaných jako modelování hrozeb je nezbytný k určení pravděpodobnosti a důsledky porušení zabezpečení ve vaší ADO.NET aplikaci.
Modelování hrozeb se skládá ze tří základních kroků: pochopení zobrazení nežádoucího uživatele, charakterizující zabezpečení systému a určování hrozeb.
Modelování hrozeb je iterativní přístup k posouzení ohrožení zabezpečení ve vaší aplikaci, abyste našli ty, které jsou nejbezpečnější, protože zpřístupňují nejcitlivější data. Jakmile identifikujete ohrožení zabezpečení, řadíte je v pořadí podle závažnosti a vytvoříte sadu protichůdných opatření, která budou proti hrozbám čelit.
Další informace naleznete v následujících zdrojích:
Resource | Popis |
---|---|
Web Modelování hrozeb na portálu Security Engineering Portal | Zdroje informací na této stránce vám pomůžou pochopit proces modelování hrozeb a vytvářet modely hrozeb, které můžete použít k zabezpečení vlastních aplikací. |
Princip nejnižších oprávnění
Při návrhu, sestavení a nasazení aplikace musíte předpokládat, že vaše aplikace bude napadena. 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í. Ostatní můžou pocházet z dobře záměrného kódu, který útočník zneužil. Při plánování zabezpečení vždy předpokládejme, že dojde k nejhoršímu scénáři.
Jednou z měr, kterou můžete použít, je zkusit vytvořit co nejvíce stěn kolem kódu spuštěním s nejnižšími oprávněními. Princip nejnižší úrovně oprávnění říká, že všechna daná oprávnění by měla být udělena nejmenšímu množství kódu potřebnému pro nejkratší dobu potřebnou k dokončení úlohy.
Osvědčeným postupem při vytváření zabezpečených aplikací je začít bez oprávnění a pak přidat nejužší oprávnění pro konkrétní úlohu, která se provádí. Naproti tomu počínaje všemi oprávněními a zamítnutím jednotlivých oprávnění vede k nezabezpečeným aplikacím, které jsou obtížné testovat a udržovat, protože bezpečnostní díry mohou existovat z neúmyslného udělení více oprávnění, než je vyžadováno.
Další informace o zabezpečení aplikací najdete v následujících zdrojích informací:
Resource | Popis |
---|---|
Zabezpečování aplikací | Obsahuje odkazy na obecná témata týkající se zabezpečení. Obsahuje také odkazy na témata pro zabezpečení distribuovaných aplikací, webových aplikací, mobilních aplikací 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ý má tento kód k chráněným prostředkům a operacím. V rozhraní .NET Framework provádí CAS následující funkce:
Definuje oprávnění a sady oprávnění, které představují právo pro 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žuje sady oprávnění ke skupinám kódu (skupin kódu).
Umožňuje kódu požádat o oprávnění, která vyžaduje ke spuštění, a také oprávnění, která by byla užitečná pro použití, a určuje, která oprávnění musí mít kód nikdy.
Uděluje oprávnění pro každé načtené sestavení na základě oprávnění požadovaných kódem a operací povolených zásadami zabezpečení.
Umožňuje kódu požadovat, aby jeho volající měli specifická oprávnění.
Umožňuje kódu požadovat, aby jeho volající měli digitální podpis, takže volajícím z určité organizace nebo webu umožní volat chráněný kód.
Vynucuje omezení kódu za běhu porovnáním udělených oprávnění každého volajícího 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 kontext zabezpečení pro váš kód, který uděluje přístup pouze k prostředkům, které potřebuje k provedení své práce, a ne více.
Další informace naleznete v následujících zdrojích:
Resource | 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ě role a částečně důvěryhodnými prostředími z pohledu aplikace ADO.NET. |
Zabezpečení přístupu kódu | Obsahuje odkazy na další témata popisující CAS v rozhraní .NET Framework. |
Zabezpečení databáze
Princip nejnižších oprávnění se vztahuje také na 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.
Nepovolujte uživatelům přístup k účtům pro správu, jen aby kód fungoval.
Nevrací chybové zprávy na straně serveru klientským aplikacím.
Ověřte všechny vstupy v klientovi i na serveru.
Používejte parametrizované příkazy a vyhněte se dynamickým příkazům SQL.
Povolte auditování zabezpečení a protokolování 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:
Resource | Popis |
---|---|
SQL Server – zabezpečení | Poskytuje přehled zabezpečení SQL Serveru ve scénářích aplikací, které poskytují pokyny k vytváření zabezpečených ADO.NET aplikací, které cílí na SQL Server. |
Doporučení 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 zabezpečení a Správa istrace
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, jakmile se objeví nové hrozby.
Další informace naleznete v následujících zdrojích:
Resource | 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í správu zásad zabezpečení. |