Pravidla zabezpečení

Pravidla zabezpečení podporují bezpečnější knihovny a aplikace. Tato pravidla pomáhají zabránit chybám zabezpečení ve vašem programu. Pokud některá z těchto pravidel zakážete, měli byste jasně označit důvod v kódu a také informovat určeného bezpečnostního pracovníka pro váš vývojový projekt.

V této části

Pravidlo Popis
CA2100: Revize dotazů SQL pro chyby zabezpečení Metoda nastavuje vlastnost System.Data.IDbCommand.CommandText pomocí řetězce, který je sestaven z řetězcového argumentu k metodě. Toto pravidlo předpokládá, že řetězcový argument obsahuje vstup uživatele. Řetězec příkazu SQL sestavený ze vstupu uživatele je ohrožen útoky prostřednictvím injektáže SQL.
CA2109: Revize viditelných obslužných rutin událostí Byla zjištěna veřejná nebo chráněná metoda zpracování událostí. Metody zpracování událostí by neměly být vystaveny, pokud to není nezbytně nutné.
CA2119: Zapečeťte metody, které vyhovují privátním rozhraním Zděděný veřejný typ poskytuje přepisovatelnou implementaci metody interního rozhraní (Friend v jazyce Visual Basic). Chcete-li opravit porušení tohoto pravidla, zabraňte přepsání metody mimo sestavení.
CA2153: Vyhněte se zpracování výjimek v poškozeném stavu Výjimky poškozeného stavu (CSE) značí, že v procesu existuje poškození paměti. Zachytávání těchto chyb místo toho, aby umožňovalo chybové ukončení procesu, může vést k ohrožením zabezpečení, pokud útočník může zneužití umístit do poškozené oblasti paměti.
CA2300: Nepoužívejte nezabezpečený deserializátor BinaryFormatter Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2301: Nevolejte BinaryFormatter.Deserialize bez prvního nastavení BinaryFormatter.Binder Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2302: Před voláním BinaryFormatter.Deserialize se ujistěte, že je nastaven binaryFormatter.Binder Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2305: Nepoužívejte nezabezpečený deserializátor LosFormatter Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2310: Nepoužívejte nezabezpečený deserializátor NetDataContractSerializer Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2311: Ne deserializovat bez prvního nastavení NetDataContractSerializer.Binder Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2312: Před deserializací se ujistěte, že je nastavená vlastnost NetDataContractSerializer.Binder Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2315: Nepoužívejte nezabezpečený deserializátor ObjectStateFormatter Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2321: Ne deserializovat pomocí JavaScriptSerializer pomocí SimpleTypeResolver Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2322: Před deserializací se ujistěte, že JavaScriptSerializer není inicializován pomocí metody SimpleTypeResolver. Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2326: Nepoužívejte jiné hodnoty TypeNameHandling než None Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2327: Nepoužívejte nezabezpečený JsonSerializer Nastavení Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2328: Ujistěte se, že je zabezpečený jsonSerializer Nastavení Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2329: Ne deserializovat pomocí JsonSerializer pomocí nezabezpečené konfigurace Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2330: Ujistěte se, že má jsonSerializer při deserializaci zabezpečenou konfiguraci. Nezabezpečené deserializátory jsou zranitelné při deserializaci nedůvěryhodných dat. Útočník by mohl serializovaná data upravit tak, aby zahrnovala neočekávané typy pro vložení objektů se škodlivými vedlejšími účinky.
CA2350: Ujistěte se, že vstup DataTable.ReadXml() je důvěryhodný. Při deserializaci nedůvěryhodného DataTable vstupu může útočník vytvořit škodlivý vstup, který provede útok do služby dos. Může se jednat o neznámá ohrožení zabezpečení vzdáleného spuštění kódu.
CA2351: Ujistěte se, že vstup DataSet.ReadXml() je důvěryhodný. Při deserializaci nedůvěryhodného DataSet vstupu může útočník vytvořit škodlivý vstup, který provede útok do služby dos. Může se jednat o neznámá ohrožení zabezpečení vzdáleného spuštění kódu.
CA2352: Nebezpečné datové sady nebo datové tabulky v serializovatelném typu mohou být ohroženy útoky vzdáleného spuštění kódu Třída nebo struktura označená SerializableAttribute pomocí obsahuje DataSet nebo DataTable pole nebo vlastnost a nemá GeneratedCodeAttributehodnotu .
CA2353: Nezabezpečená datová sada nebo datová tabulka v serializovatelném typu Třída nebo struktura označená atributem serializace XML nebo atribut kontraktu dat obsahuje DataSet nebo DataTable pole nebo vlastnost.
CA2354: Nezabezpečená datová sada nebo datová tabulka v deserializovaném grafu objektů může být zranitelná vůči útokům vzdáleného spuštění kódu. Deserializace serializovaným objektem System.Runtime.Serialization.IFormatter a graf objektu přetypovaného typu může obsahovat nebo DataSetDataTable.
CA2355: Nezabezpečená datová sada nebo datová tabulka v deserializovaném grafu objektu Deserializace, pokud přetypovaný nebo zadaný typ objektový graf může obsahovat nebo DataSetDataTable.
CA2356: Nezabezpečená datová sada nebo datová tabulka v grafu deserializovaného objektu webu Metoda s System.Web.Services.WebMethodAttribute nebo má parametr, který může odkazovat na nebo DataSetDataTable.System.ServiceModel.OperationContractAttribute
CA2361: Ujistěte se, že se u nedůvěryhodných dat nepoužívá automaticky vygenerovaná třída obsahující DataSet.ReadXml(). Při deserializaci nedůvěryhodného DataSet vstupu může útočník vytvořit škodlivý vstup, který provede útok do služby dos. Může se jednat o neznámá ohrožení zabezpečení vzdáleného spuštění kódu.
CA2362: Nebezpečná datová sada nebo datová tabulka v automaticky generovaném serializovatelném typu může být zranitelná vůči útokům vzdáleného spuštění kódu Při deserializaci nedůvěryhodného vstupu s grafem BinaryFormatter deserializovaného objektu nebo DataTableDataSet nebo může útočník vytvořit škodlivou datovou část pro provedení vzdáleného útoku na spuštění kódu.
CA3001: Zkontrolujte ohrožení zabezpečení injektáží SQL v kódu Při práci s nedůvěryhodnými vstupy a příkazy SQL mějte na paměti útoky prostřednictvím injektáže SQL. Útok prostřednictvím injektáže SQL může spouštět škodlivé příkazy SQL a ohrozit zabezpečení a integritu vaší aplikace.
CA3002: Kontrola ohrožení zabezpečení XSS v kódu Při práci s nedůvěryhodným vstupem z webových požadavků mějte na paměti útoky na skriptování mezi weby (XSS). Útok XSS vloží nedůvěryhodný vstup do nezpracovaného výstupu HTML, což útočníkovi umožní spouštět škodlivé skripty nebo škodlivé úpravy obsahu na webové stránce.
CA3003: Zkontrolujte ohrožení zabezpečení injektáží cesty k souboru v kódu Při práci s nedůvěryhodným vstupem z webových požadavků mějte na paměti použití uživatelem řízeného vstupu při zadávání cest k souborům.
CA3004: Zkontrolujte ohrožení zabezpečení spočívající ve zpřístupnění informací v kódu. Informace o výjimce poskytují útočníkům přehled o vnitřních informacích vaší aplikace, které můžou útočníkům pomoct najít další ohrožení zabezpečení, která by bylo možné zneužít.
CA3006: Zkontrolujte ohrožení zabezpečení injektáže příkazů procesu v kódu Při práci s nedůvěryhodným vstupem mějte na paměti útoky prostřednictvím injektáže příkazů. Útok prostřednictvím injektáže příkazů může spouštět škodlivé příkazy v základním operačním systému a ohrozit zabezpečení a integritu vašeho serveru.
CA3007: Zkontrolujte ohrožení zabezpečení otevřeného přesměrování v kódu Při práci s nedůvěryhodným vstupem mějte na paměti ohrožení zabezpečení otevřeného přesměrování. Útočník může zneužít ohrožení zabezpečení otevřeného přesměrování k použití vašeho webu k poskytnutí vzhledu legitimní adresy URL, ale přesměrovat nespektujícího návštěvníka na útok phishing nebo jinou škodlivou webovou stránku.
CA3008: Zkontrolujte ohrožení zabezpečení injektáže XPath v kódu Při práci s nedůvěryhodným vstupem mějte na paměti útoky prostřednictvím injektáže XPath. Vytváření dotazů XPath pomocí nedůvěryhodného vstupu může útočníkovi umožnit škodlivé manipulaci s dotazem vrátit nezamýšlený výsledek a případně zpřístupnit obsah dotazovaného XML.
CA3009: Zkontrolujte ohrožení zabezpečení injektáží XML v kódu Při práci s nedůvěryhodným vstupem mějte na paměti útoky prostřednictvím injektáže XML.
CA3010: Kontrola ohrožení zabezpečení injektáží XAML v kódu Při práci s nedůvěryhodným vstupem mějte na paměti útoky prostřednictvím injektáže XAML. XAML je jazyk využívající značky, který přímo reprezentuje vytváření instancí objektů a jejich spouštění. To znamená, že prvky vytvořené v XAML můžou pracovat se systémovými prostředky (například síťový přístup a vstupně-výstupní operace systému souborů).
CA3011: Zkontrolujte ohrožení zabezpečení injektáží knihovny DLL v kódu Při práci s nedůvěryhodným vstupem mějte na paměti načtení nedůvěryhodného kódu. Pokud vaše webová aplikace načte nedůvěryhodný kód, útočník může do procesu vložit škodlivé knihovny DLL a spustit škodlivý kód.
CA3012: Zkontrolujte ohrožení zabezpečení injektáží regulárních výrazů v kódu Při práci s nedůvěryhodným vstupem mějte na paměti útoky prostřednictvím injektáže regulárních výrazů. Útočník může použít injektáž regulárního výrazu ke škodlivé úpravě regulárního výrazu, k tomu, aby regulární výraz odpovídal nezamýšleným výsledkům nebo aby regulární výraz spotřeboval nadměrné využití procesoru, což vede k útoku do odepření služby.
CA3061: Nepřidávejte schéma podle adresy URL Nepoužívejte nebezpečné přetížení metody Add, protože může způsobit nebezpečné externí odkazy.
CA3075: Zpracování nezabezpečené specifikace DTD Pokud používáte nezabezpečené instance DTDProcessingu nebo odkazujete na externí zdroje entit, analyzátor může přijmout nedůvěryhodný vstup a zveřejnit citlivé informace útočníkům.
CA3076: Spuštění nezabezpečeného skriptu XSLT Pokud v aplikacích .NET spustíte nezabezpečené transformace XSLT (Extensible StyleSheet Language Transformations), procesor může vyřešit nedůvěryhodné odkazy URI, které by mohly útočníkům zpřístupnit citlivé informace, což vede k útokům typu Odepření služby a útokům mezi weby.
CA3077: Nezabezpečené zpracování v návrhu rozhraní API, dokumentu XML a čtečce textu XML Při navrhování rozhraní API odvozeného z XMLDocument a XMLTextReader mějte na paměti DtdProcessing. Použití nezabezpečených instancí DTDProcessing při odkazování nebo překladu externích zdrojů entit nebo nastavení nezabezpečených hodnot v XML může vést ke zpřístupnění informací.
CA3147: Označte obslužné rutiny příkazů pomocí ValidateAntiForgeryToken Při návrhu kontroleru ASP.NET MVC mějte na paměti útoky typu útok na negery mezi weby. Útok na padělání požadavků mezi weby může posílat škodlivé požadavky ověřeného uživatele do kontroleru ASP.NET MVC.
CA5350: Nepoužívejte slabé kryptografické algoritmy Slabé šifrovací algoritmy a funkce hash se dnes používají z mnoha důvodů, ale neměly by se používat k zajištění důvěrnosti nebo integrity dat, která chrání. Toto pravidlo se aktivuje, když najde algoritmy TripleDES, SHA1 nebo RIPEMD160 v kódu.
CA5351: Nepoužívejte poškozené kryptografické algoritmy Poškozené kryptografické algoritmy se nepovažují za bezpečné a jejich použití by se mělo důrazně nedoporučuje. Toto pravidlo se aktivuje, když najde algoritmus hash MD5 nebo šifrovací algoritmy DES nebo RC2 v kódu.
CA5358: Nepoužívejte nebezpečné režimy šifry Nepoužívat nezabezpečené režimy šifrování
CA5359: Nezakazujte ověření certifikátu Certifikát může pomoct s ověřením identity serveru. Klienti by měli ověřit certifikát serveru, aby se zajistilo, že se požadavky posílají na zamýšlený server. Pokud ServerCertificateValidationCallback vždy vrátí true, všechny certifikáty projdou ověřením.
CA5360: Nevolejte nebezpečné metody při deserializaci Nezabezpečená deserializace je ohrožení zabezpečení, ke kterému dochází, když se nedůvěryhodná data používají ke zneužití logiky aplikace, způsobí útok DoS (Denial-of-Service) nebo dokonce spustí libovolný kód při deserializaci. Uživatelům se zlými úmysly je často možné zneužít tyto funkce deserializace, když aplikace deserializuje nedůvěryhodná data, která jsou pod jejich kontrolou. Konkrétně vyvolat nebezpečné metody v procesu deserializace. Úspěšné nezabezpečené útoky deserializace by mohly útočníkovi umožnit provádět útoky, jako jsou útoky DoS, obtékání ověřování a vzdálené spuštění kódu.
CA5361: Nezakazujte použití SChannel silného kryptografie Nastavení Switch.System.Net.DontEnableSchUseStrongCrypto pro true oslabování kryptografie používané v odchozích připojeních TLS (Transport Layer Security). Slabší kryptografie může ohrozit důvěrnost komunikace mezi vaší aplikací a serverem, což útočníkům usnadňuje odposlouchvání citlivých dat.
CA5362: Potenciální referenční cyklus v deserializovaném grafu objektů Pokud deserializace nedůvěryhodných dat, jakýkoli kód zpracovávající deserializovaný objektový graf musí zpracovávat referenční cykly bez nutnosti přecházet do nekonečných smyček. To zahrnuje jak kód, který je součástí zpětného volání deserializace, tak kód, který zpracovává graf objektu po dokončení deserializace. Jinak by útočník mohl provést útok do služby se zlými daty obsahujícími referenční cyklus.
CA5363: Nezakazujte ověření požadavku Ověření požadavku je funkce v ASP.NET, která zkoumá požadavky HTTP a určuje, jestli obsahují potenciálně nebezpečný obsah, který může vést k útokům prostřednictvím injektáže, včetně skriptování mezi weby.
CA5364: Nepoužívejte zastaralé protokoly zabezpečení Protokol TLS (Transport Layer Security) zabezpečuje komunikaci mezi počítači, nejčastěji s protokolem HTTPS (Hypertext Transfer Protocol Secure). Starší verze protokolu TLS jsou méně zabezpečené než protokoly TLS 1.2 a TLS 1.3 a s větší pravděpodobností mají nová ohrožení zabezpečení. Vyhněte se starším verzím protokolu, abyste minimalizovali riziko.
CA5365: Nezakazujte kontrolu hlaviček HTTP Kontrola hlaviček HTTP umožňuje kódování návratových znaků na začátek řádku a znak nového řádku \r a \n, které jsou nalezeny v hlavičce odpovědi. Toto kódování může pomoct vyhnout se útokům prostřednictvím injektáže, které zneužívají aplikaci, která odráží nedůvěryhodná data obsažená v hlavičce.
CA5366: Použití Třídy XmlReader pro čtení XML datové sady DataSet Použití ke čtení XML s nedůvěryhodnými daty může načíst nebezpečné externí odkazy, které by měly být omezeny pomocí XmlReader zabezpečeného překladače nebo se zakázaným zpracováním DTD.
CA5367: Ne serializovat typy s poli ukazatele Toto pravidlo zkontroluje, zda existuje serializovatelná třída s polem ukazatele nebo vlastností. Členy, které nelze serializovat, mohou být ukazatel, například statické členy nebo pole označená NonSerializedAttribute.
CA5368: Nastavení ViewStateUserKey pro třídy odvozené ze stránky ViewStateUserKey Nastavením vlastnosti můžete zabránit útokům na vaši aplikaci tím, že jednotlivým uživatelům umožníte přiřadit identifikátor proměnné zobrazení stavu, aby útočníci nemohli tuto proměnnou použít k vygenerování útoku. Jinak dojde k ohrožení zabezpečení pro padělání požadavků mezi weby.
CA5369: Použití Třídy XmlReader pro deserializaci Zpracování nedůvěryhodných schémat DTD a XML může povolit načítání nebezpečných externích odkazů, které by mělo být omezeno pomocí Třídy XmlReader se zabezpečeným překladačem nebo se zakázaným zpracováním vloženého schématu DTD a XML.
CA5370: K ověřování čtečky použijte XmlReader Zpracování nedůvěryhodných schémat DTD a XML může povolit načítání nebezpečných externích odkazů. Toto nebezpečné načítání může být omezeno pomocí třídy XmlReader se zabezpečeným překladačem nebo se zakázaným zpracováním vloženého schématu DTD a XML.
CA5371: Použití Třídy XmlReader pro čtení schématu Zpracování nedůvěryhodných schémat DTD a XML může povolit načítání nebezpečných externích odkazů. Použití třídy XmlReader se zabezpečeným překladačem nebo se zakázaným zpracováním vloženého schématu DTD a XML to omezuje.
CA5372: Použití Třídy XmlReader pro XPathDocument Zpracování XML z nedůvěryhodných dat může načíst nebezpečné externí odkazy, které lze omezit pomocí Třídy XmlReader se zabezpečeným překladačem nebo se zakázaným zpracováním DTD.
CA5373: Nepoužívejte zastaralou funkci odvození klíče Toto pravidlo detekuje vyvolání slabých metod System.Security.Cryptography.PasswordDeriveBytes odvození klíče a Rfc2898DeriveBytes.CryptDeriveKey. System.Security.Cryptography.PasswordDeriveBytes použil slabý algoritmus PBKDF1.
CA5374: Nepoužívejte XslTransform Toto pravidlo zkontroluje, jestli System.Xml.Xsl.XslTransform je v kódu vytvořena instance. System.Xml.Xsl.XslTransform je teď zastaralý a neměl by se používat.
CA5375: Nepoužívejte sdílený přístupový podpis účtu Sdílený přístupový podpis účtu může delegovat přístup k operacím čtení, zápisu a odstraňování v kontejnerech objektů blob, tabulkách, frontách a sdílených složkách, které nejsou povolené pomocí sdíleného přístupového podpisu služby. Nepodporuje ale zásady na úrovni kontejneru a má menší flexibilitu a kontrolu nad udělenými oprávněními. Jakmile ho uživatelé se zlými úmysly získají, váš účet úložiště bude snadno ohrožen.
CA5376: Použití protokolu HttpsOnly SharedAccessProtocol SAS je citlivá data, která nelze přenášet ve formátu prostého textu v protokolu HTTP.
CA5377: Použití zásad přístupu na úrovni kontejneru Zásady přístupu na úrovni kontejneru je možné kdykoli změnit nebo odvolat. Poskytuje větší flexibilitu a kontrolu nad udělenými oprávněními.
CA5378: Nezakazujte ServicePointManagerSecurityProtocols Nastavení DisableUsingServicePointManagerSecurityProtocols pro true omezení připojení TLS (Transport Layer Security) rozhraní WINDOWS Communication Framework (WCF) k používání protokolu TLS 1.0 Tato verze protokolu TLS bude zastaralá.
CA5379: Ujistěte se, že je algoritmus funkce odvození klíče dostatečně silný. Ve Rfc2898DeriveBytes výchozím nastavení se třída používá SHA1 algoritmus. Měli byste zadat hashovací algoritmus, který se má použít v některých přetíženích konstruktoru s SHA256 nebo vyššími. Poznámka: HashAlgorithm Vlastnost má pouze přístupový objekt get a nemá overridden modifikátor.
CA5380: Nepřidávejte certifikáty do kořenového úložiště Toto pravidlo zjistí kód, který přidá certifikát do úložiště certifikátů důvěryhodných kořenových certifikačních autorit. Ve výchozím nastavení je úložiště certifikátů důvěryhodných kořenových certifikačních autorit nakonfigurované se sadou veřejných certifikačních autorit, které splňují požadavky programu Microsoft Root Certificate Program.
CA5381: Ujistěte se, že certifikáty nejsou přidány do kořenového úložiště. Toto pravidlo detekuje kód, který potenciálně přidá certifikát do úložiště certifikátů důvěryhodných kořenových certifikačních autorit. Ve výchozím nastavení je úložiště certifikátů důvěryhodných kořenových certifikačních autorit nakonfigurované se sadou veřejných certifikačních autorit(CA), které splňují požadavky programu Microsoft Root Certificate Program.
CA5382: Použití zabezpečených souborů cookie v ASP.NET Core Aplikace dostupné přes PROTOKOL HTTPS musí používat zabezpečené soubory cookie, které označují prohlížeči, že soubor cookie by měl být přenášen pouze pomocí protokolu TLS (Transport Layer Security).
CA5383: Ujistěte se, že v ASP.NET Core používejte zabezpečené soubory cookie. Aplikace dostupné přes PROTOKOL HTTPS musí používat zabezpečené soubory cookie, které označují prohlížeči, že soubor cookie by měl být přenášen pouze pomocí protokolu TLS (Transport Layer Security).
CA5384: Nepoužívejte algoritmus digitálního podpisu (DSA) DSA je slabý asymetrický šifrovací algoritmus.
CA5385: Použijte algoritmus Rivest–Shamir–Adleman (RSA) s dostatečnou velikostí klíče Klíč RSA menší než 2048 bitů je zranitelnější vůči útokům hrubou silou.
CA5386: Vyhněte se pevně zakódování hodnoty SecurityProtocolType Protokol TLS (Transport Layer Security) zabezpečuje komunikaci mezi počítači, nejčastěji s protokolem HTTPS (Hypertext Transfer Protocol Secure). Verze protokolu TLS 1.0 a TLS 1.1 jsou zastaralé, zatímco protokol TLS 1.2 a TLS 1.3 jsou aktuální. V budoucnu může být protokol TLS 1.2 a TLS 1.3 zastaralý. Pokud chcete zajistit, aby vaše aplikace zůstala zabezpečená, vyhněte se pevně zakódování verze protokolu a cílit alespoň na rozhraní .NET Framework verze 4.7.1.
CA5387: Nepoužívejte slabou funkci odvození klíče s nedostatečným počtem iterací Toto pravidlo zkontroluje, jestli byl kryptografický klíč generován počtem Rfc2898DeriveBytes iterací menší než 100 000. Vyšší počet iterací může pomoct zmírnit útoky slovníku, které se snaží uhodnout vygenerovaný kryptografický klíč.
CA5388: Při použití slabé funkce odvození klíče zajistěte dostatečný počet iterací. Toto pravidlo zkontroluje, jestli byl kryptografický klíč generován pomocí Rfc2898DeriveBytes počtu iterací, který může být menší než 100 000. Vyšší počet iterací může pomoct zmírnit útoky slovníku, které se snaží uhodnout vygenerovaný kryptografický klíč.
CA5389: Nepřidávejte cestu archivní položky k cílové cestě systému souborů Cesta k souboru může být relativní a může vést k přístupu k systému souborů mimo očekávanou cílovou cestu systému souborů, což vede ke škodlivým změnám konfigurace a vzdálenému spuštění kódu prostřednictvím techniky lay-and-wait.
CA5390: Nezakódujte šifrovací klíč pevně zakódovaný Aby byl symetrický algoritmus úspěšný, musí být tajný klíč znám pouze odesílateli a příjemci. Když je klíč pevně zakódovaný, snadno se zjistí. I s kompilovanými binárními soubory je snadné je zlými uživateli extrahovat. Jakmile dojde k ohrožení zabezpečení privátního klíče, může se šifrovací text dešifrovat přímo a už není chráněný.
CA5391: Použití antiforgery tokenů v řadičích ASP.NET Core MVC Zpracování objektu POST, , PUTPATCHnebo DELETE požadavku bez ověření antiforgery tokenu může být zranitelné vůči útokům typu forgery mezi weby. Útok na padělání požadavků mezi weby může posílat škodlivé požadavky ověřeného uživatele do kontroleru ASP.NET Core MVC.
CA5392: Použití atributu DefaultDllImportSearchPaths pro volání nespravovaných položek Ve výchozím nastavení funkce volání nespravovaného kódu pomocí DllImportAttribute sondy řady adresářů, včetně aktuálního pracovního adresáře pro načtení knihovny. To může být problém se zabezpečením pro určité aplikace, což vede k napadení knihovny DLL.
CA5393: Nepoužívejte nebezpečnou hodnotu DllImportSearchPath Ve výchozích adresářích vyhledávání knihoven DLL a adresářích sestavení může existovat škodlivá knihovna DLL. Nebo v závislosti na tom, odkud se vaše aplikace spouští, může v adresáři aplikace existovat škodlivá knihovna DLL.
CA5394: Nepoužívejte nezabezpečenou náhodnost Použití kryptograficky slabého generátoru pseudonáhodných čísel může útočníkovi umožnit předpovědět, jaká hodnota bude citlivá na zabezpečení vygenerována.
CA5395: Chybí atribut HttpVerb pro metody akcí Všechny metody akcí, které vytvářejí, upravují, odstraňují nebo jinak upravují data, musí být chráněny pomocí atributu antiforgery před útoky proti padělání požadavků mezi weby. Provedení operace GET by mělo být bezpečná operace, která nemá žádné vedlejší účinky a neupravuje trvalá data.
CA5396: Nastavte httpOnly na true pro HttpCookie Jako hloubková ochrana se ujistěte, že jsou soubory cookie HTTP citlivé na zabezpečení označené jako HttpOnly. To znamená, že webové prohlížeče by měly zakázat skripty v přístupu k souborům cookie. Injektované škodlivé skripty představují běžný způsob krádeže souborů cookie.
CA5397: Nepoužívejte zastaralé hodnoty SslProtocols Protokol TLS (Transport Layer Security) zabezpečuje komunikaci mezi počítači, nejčastěji s protokolem HTTPS (Hypertext Transfer Protocol Secure). Starší verze protokolu TLS jsou méně zabezpečené než protokoly TLS 1.2 a TLS 1.3 a s větší pravděpodobností mají nová ohrožení zabezpečení. Vyhněte se starším verzím protokolu, abyste minimalizovali riziko.
CA5398: Vyhněte se pevně zakódovaným hodnotám SslProtocols Protokol TLS (Transport Layer Security) zabezpečuje komunikaci mezi počítači, nejčastěji s protokolem HTTPS (Hypertext Transfer Protocol Secure). Verze protokolu TLS 1.0 a TLS 1.1 jsou zastaralé, zatímco protokol TLS 1.2 a TLS 1.3 jsou aktuální. V budoucnu může být protokol TLS 1.2 a TLS 1.3 zastaralý. Pokud chcete zajistit, aby vaše aplikace zůstala zabezpečená, vyhněte se pevně zakódování verze protokolu.
CA5399: Rozhodně zakažte kontrolu seznamu odvolaných certifikátů HttpClient Odvolaný certifikát už není důvěryhodný. Útočníci ho můžou použít předáním některých škodlivých dat nebo krádeží citlivých dat při komunikaci HTTPS.
CA5400: Ujistěte se, že kontrola seznamu odvolaných certifikátů HttpClient není zakázaná. Odvolaný certifikát už není důvěryhodný. Útočníci ho můžou použít předáním některých škodlivých dat nebo krádeží citlivých dat při komunikaci HTTPS.
CA5401: Nepoužívejte CreateEncryptor s jiným než výchozím iv Symetrické šifrování by vždy mělo používat neopakovatelný inicializační vektor, aby se zabránilo útokům na slovník.
CA5402: Použijte CreateEncryptor s výchozím iv Symetrické šifrování by vždy mělo používat neopakovatelný inicializační vektor, aby se zabránilo útokům na slovník.
CA5403: Certifikát pevně nezakódujte Nebo datarawData parametr X509Certificate nebo X509Certificate2 konstruktor je pevně zakódovaný.
CA5404: Nezakazujte kontroly ověření tokenu TokenValidationParameters vlastnosti, které řídí ověření tokenu, by neměly být nastaveny na false.
CA5405: Nepřeskakujte vždy ověření tokenu v delegátech Zpětné volání přiřazené AudienceValidator nebo LifetimeValidator vždy vrátí true.