Doporučené postupy zabezpečení pro jazyk C++
Toto téma obsahuje informace o doporučených bezpečnostních nástrojích a postupech. Pomocí těchto zdrojů a nástrojů nebudou aplikace imunní vůči útokům, ale budou méně pravděpodobné úspěšné útoky.
Bezpečnostní prvky aplikace Visual C++
Tato část popisuje bezpečnostní prvky, které jsou integrovány do překladače a propojovacího programu aplikace Visual C++.
/GS (Buffer Security Check)
Tato možnost překladače pověřuje překladač ke zjištění přetečení kódu ve funkcích, které mohou být zneužity. Při zjištění přetečení je provedeno zastavení. Ve výchozím nastavení je tato možnost zapnutá./SAFESEH (Image has Safe Exception Handlers)
Tato možnost propojovacího programu udává pokyny propojovacímu programu k vložení tabulky výstupní bitové kopie, která obsahuje adresu každé obslužné rutiny výjimky. Za běhu programu použije operační systém tuto tabulku k zajištění toho, že jsou vykonané pouze potřebné výjimky obslužné rutiny událostí. To pomůže zabránit vykonání vyjímek obslužné rutiny událostí, zavedených k provedení nebezpečného útoku za běhu programu. Ve výchozím nastavení je tato možnost zakázána./NXCOMPAT, /NXCOMPAT (Compatible with Data Execution Prevention)
Tyto možnosti překladače a propojovacího programu povolují kompatibilitu Zabránění Spuštění Dat (Data Execution Prevention - DEP). Zabránění spuštění dat chrání procesor před vykonáním neznakových stránek./analyze (Enterprise Code Analysis)
Tato možnost kompilátoru aktivuje analýzu kódu, která hlásí možné bezpečnostní problémy, jako jsou například přetečení vyrovnávací paměti, neinicializovaná paměť, zrušení reference na nulový ukazatel a nevrácení paměti. Ve výchozím nastavení je tato možnost zakázána. Další informace naleznete v tématu Code Analysis for C/C++ Overview./DYNAMICBASE (Use address space layout randomization)
Tato možnost propojovacího programu umožňuje vytváření spustitelné bitové kopie, která může být zavedena na různých místech paměti na začátku spouštění. Tato volba také způsobí, že je umístěný balík v paměti mnohem méně předvídatelný.
Rozšířené zabezpečení CRT
C Runtime Library (CRT) má byla rozšířila zahrnout zabezpečené verze funkce, které představují riziko zabezpečení. (Například neověřená funkce pro kopírování řetězců strcpy.) Starší, nebezpečné verze těchto funkci jsou nyní zastaralé a proto jejich použití způsobuje varování během překladu. Důrazně doporučujeme, abyste používali bazpečné verze těchto funkcí CRT namísto jejich výběru k pouhému potlačení zobrazování varování z překladače. Další informace naleznete v tématu Security Enhancements in the CRT.
Knihovna SafeInt
Knihovna The SafeInt Library pomáhá předcházet celočíselnému přetečení a jinému zneužití chyb, které mohou nastat v aplikaci při provádění matematických operací. Knihovna SafeInt obsahuje třídu SafeInt Class, třídu SafeIntException Class a několik funkcí SafeInt Functions.
Třída SafeInt chrání proti celočíselnému přetečení a využití dělení nulou. Umožňuje Vám kontrolovat převody hodnot různých datových typů a poskytuje dvě zásady zpracování chyb. Výchozí zásada je určena pro třídu SafeInt k vyvolání výjimky SafeIntException pro oznámení, proč nemůže být matematická operace dokončena. Druhá zásada je určena pro třídu SafeInt k zastavení vykonávání programu. Můžete také definovat vlastní zásady.
Každá funkce SafeInt chrání jednu matematickou operaci před zneužitelnou chybou. Můžete použít dva různé typy parametrů, aniž by je bylo nutné převést na stejný typ. Použíjte třídu SafeInt k ochránění více matematických operací.
Zaškrtnuté iterátory
Zaškrtnutý iterátor je iterátor, který si vynutí hranice kontejneru. Když je zaškrtnutý iterátor mimo hranice, tak se podle výchozího nastavení vygeneruje výjimka a ukončí se vykonávání programu. Zaškrtnutý iterátor poskytuje další úrovně reakcí, které závisí na přiřazených hodnotách preprocesoru, definovaných například jako _SECURE_SCL_THROWS a _ITERATOR_DEBUG_LEVEL. Například nastavení _ITERATOR_DEBUG_LEVEL=2, poskytuje zaškrtnutému iterátoru komplexní kontroly správnosti v režimu ladění, které jsou k dispozici pomocí nepodmíněných výrazů. Další informace naleznete v tématu Checked Iterators.
Analýza kódu pro spravovaný kód
Analýza kódu pro spravovaný kód, je také známa jako FxCop, je nástroj, který kontroluje sestavení pro shodu pokynů designu na rozhraní Microsoft .NET Framework. FxCop analyzuje kód a metadata v rámci každého sestavení k vyhledání vady v následujících oblastech:
Knihovna designu
Lokalizace
Zásady vytváření názvů
Výkon
Zabezpečení
Kód analýzy pro spravovaný kód je součástí Visual Studio – správa životního cyklu aplikacía lze také stáhnout na https://www.gotdotnet.com/team/fxcop/.
Nástroj ověřovatel aplikací systému Windows
K dispozici jako součást sady Application Compatibility Toolkit, Application Verifier (nástroj Ověřovatel aplikací) je nástroj, který může pomoci vývojářům určit potenciální kompatibilitu aplikace, stabilitu a problémy zabezpečení.
Nástroj Ověřovatel aplikací sleduje, jak aplikace používá operační systém. Sleduje systém souborů, registr, paměť a rozhraní API za chodu aplikace a doporučuje úroveň opravy zdrojového kódu pro problémy, které nalezl.
Ověřovatel umožňuje provést následující:
Test pro potenciální chyby kompatibility aplikace, způsobené obecnými programátorskými chybami.
Prozkoumá aplikaci otázkami, souvisejícími s pamětí.
Testovat aplikaci v souladu s požadavkami na současné logo programy jako je program Windows 7 Software Logo a program Windows Server 2008 R2 Logo.
Určit možné problémy zabezpečení v aplikaci.
Windows Application Compatibility Toolkit je k dispozici "Kompatibilita aplikací" na stránce TechNet webu.
Bezpečnostní prvky rozhraní .NET Framework
Configuring Security Policy popisuje pokyny a nástroje pro úpravu bezpečnostních zásad rozhraní .NET Framework.
Uživatelské účtý systému Windows
Použitím uživatelských účtů systému Windows, které patří do skupiny Administrators, poukazují vývojářům a--potažmo--zákazníkům na bezpečnostní rizika. Další informace naleznete v tématu Spuštění jako člen skupiny Users.
Zvýšení zabezpečení použitím nástroje Řízení uživatelských účtů v rámci systému Windows Vista
Nástroj řízení uživatelských účtů (UAC - User Account Control) je funkce systému Windows Vista, ve které mají uživatelské účty omezená oprávnění. Další informace naleznete v tématu Jak ovlivňuje nástroj Řízení uživatelských účtů (UAC) vaší aplikaci.
Viz také
Odkaz
Koncepty
Jak ovlivňuje nástroj Řízení uživatelských účtů (UAC) vaší aplikaci