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.
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, to, že nikdo dosud nezjistil (nebo nepublikoval) chyby zabezpečení v systému, neznamená, že žádné neexistují nebo nemohou existovat. 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.
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 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í na poslední chvíli vede k dalším chybám, protože software se pod novými omezeními rozpadá nebo se musí přepsat tak, aby vyhověl neočekávané funkčnosti. 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í pohledu protivníka, charakterizace bezpečnosti systému a stanovení 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 najdete v následujících zdrojích informací:
| Zdroj | 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í:
| Zdroj | Popis |
|---|---|
| Zabezpečení 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é o oprávnění, která by byla užitečná mít, a určuje, která oprávnění kód nikdy nesmí mít.
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.
Prosazuje omezení na kód během 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á musí volající 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 najdete v následujících zdrojích informací:
| Zdroj | Popis |
|---|---|
| Zabezpečení přístupu 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 najdete v následujících zdrojích informací:
| Zdroj | Popis |
|---|---|
| Zabezpečení SQL Serveru | 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
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 najdete v následujících zdrojích informací:
| Zdroj | 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í. |