Delen via


Beveiligingsregels

Beveiligingsregels ondersteunen veiligere bibliotheken en toepassingen. Deze regels helpen beveiligingsfouten in uw programma te voorkomen. Als u een van deze regels uitschakelt, moet u duidelijk de reden in code markeren en ook de aangewezen beveiligingsmedewerker informeren voor uw ontwikkelingsproject.

In deze sectie

Regel Beschrijving
CA2100: SQL-query's controleren op beveiligingslekken Met een methode wordt de eigenschap System.Data.IDbCommand.CommandText ingesteld met behulp van een tekenreeks die is gebouwd van een tekenreeksargument naar de methode. Bij deze regel wordt ervan uitgegaan dat het tekenreeksargument gebruikersinvoer bevat. Een SQL-opdrachtreeks die is gebouwd op basis van gebruikersinvoer, is kwetsbaar voor SQL-injectieaanvallen.
CA2109: Zichtbare gebeurtenis-handlers bekijken Er is een openbare of beveiligde methode voor gebeurtenisafhandeling gedetecteerd. Methoden voor gebeurtenisafhandeling mogen niet worden weergegeven, tenzij dit absoluut noodzakelijk is.
CA2119: Afdichtingsmethoden die voldoen aan privéinterfaces Een overgenomen openbaar type biedt een overschrijfbare methode-implementatie van een interne interface (Vriend in Visual Basic). Om een schending van deze regel op te lossen, voorkom dat de methode buiten de assembly wordt overschreven.
CA2153: voorkomen dat beschadigde status-uitzonderingen worden verwerkt CSE (Corrupted State Exceptions) aangeven dat er geheugenbeschadiging bestaat in uw proces. Als je deze problemen opvangt in plaats van het proces te laten vastlopen, kan dit tot beveiligingslekken leiden als een aanvaller een exploit in de beschadigde geheugenregio kan plaatsen.
CA2300: Gebruik geen onveilige deserializer BinaryFormatter Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2301: Roep BinaryFormatter.Deserialize niet aan zonder eerst BinaryFormatter.Binder in te stellen Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2302: Zorg ervoor dat BinaryFormatter.Binder is ingesteld voordat u BinaryFormatter.Deserialize aanroept Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2305: Gebruik geen onveilige deserializer LosFormatter Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2310: Gebruik geen onveilige deserializer NetDataContractSerializer Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2311: Niet deserialiseren zonder eerst NetDataContractSerializer.Binder in te stellen Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2312: Controleren of NetDataContractSerializer.Binder is ingesteld voordat Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2315: Gebruik geen onveilige deserializer ObjectStateFormatter Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2321: Niet deserialiseren met JavaScriptSerializer met behulp van een SimpleTypeResolver- Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2322: Controleren of JavaScriptSerializer niet is geïnitialiseerd met SimpleTypeResolver voordat het deserialized wordt Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2326: Gebruik geen andere TypeNameHandling-waarden dan Geen Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2327: gebruik geen onveilige JsonSerializerSettings Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2328: Zorg ervoor dat JsonSerializerSettings veilig is Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2329: Niet deserialiseren met JsonSerializer met behulp van een onveilige configuratie Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2330: Zorg ervoor dat JsonSerializer een veilige configuratie heeft bij het deserialiseren van Onveilige deserializers zijn kwetsbaar wanneer niet-vertrouwde gegevens worden gedeserialiseerd. Een aanvaller kan de geserialiseerde gegevens wijzigen zodat onverwachte typen worden opgenomen om objecten met schadelijke bijwerkingen te injecteren.
CA2350: Zorg ervoor dat de invoer van DataTable.ReadXml() wordt vertrouwd Bij het deserialiseren van een DataTable met niet-vertrouwde invoer kan een aanvaller schadelijke invoer maken om een Denial of Service-aanval uit te voeren. Er zijn mogelijk onbekende beveiligingsproblemen met het uitvoeren van externe code.
CA2351: Zorg ervoor dat de invoer van DataSet.ReadXml() wordt vertrouwd Bij het deserialiseren van een DataSet met niet-vertrouwde invoer kan een aanvaller schadelijke invoer maken om een Denial of Service-aanval uit te voeren. Er zijn mogelijk onbekende beveiligingsproblemen met het uitvoeren van externe code.
CA2352: Onveilige gegevensset of gegevenstabel in serialiseerbare type kan kwetsbaar zijn voor aanvallen op uitvoering van externe code Een klasse of struct die is gemarkeerd met SerializableAttribute bevat een DataSet of DataTable veld of eigenschap en heeft geen GeneratedCodeAttribute.
CA2353: Onveilige gegevensset of gegevenstabel in serialiseerbare Een klasse of struct die is gemarkeerd met een XML-serialisatiekenmerk of een gegevenscontractkenmerk bevat een DataSet of DataTable veld of eigenschap.
CA2354: Onveilige gegevensset of gegevenstabel in de grafiek met gedeserialiseerde objecten kan kwetsbaar zijn voor aanvallen op uitvoering van externe code Deserialiseren met een in System.Runtime.Serialization.IFormatter geserialiseerd object, en de objectgrafiek van het gecaste type kan een DataSet of DataTablebevatten.
CA2355: Onveilige gegevensset of gegevenstabel in de grafiek met gedeserialiseerde objecten Deserialiseren wanneer de objectgrafiek van het gecaste of opgegeven type een DataSet of DataTablekan bevatten.
CA2356: Onveilige gegevensset of gegevenstabel in grafiek met webdeserialized objecten Een methode met een System.Web.Services.WebMethodAttribute of System.ServiceModel.OperationContractAttribute heeft een parameter die kan verwijzen naar een DataSet of DataTable.
CA2361: Zorg ervoor dat automatisch gegenereerde klasse met DataSet.ReadXml() niet wordt gebruikt met niet-vertrouwde gegevens Bij het deserialiseren van een DataSet met niet-vertrouwde invoer kan een aanvaller schadelijke invoer maken om een Denial of Service-aanval uit te voeren. Er zijn mogelijk onbekende beveiligingsproblemen met het uitvoeren van externe code.
CA2362: Onveilige DataSet of DataTable in automatisch gegenereerd serialiseerbaar type kan kwetsbaar zijn voor aanvallen op uitvoering van externe code Bij het deserialiseren van niet-vertrouwde invoer met BinaryFormatter en de ontserialiseerde objectgrafiek een DataSet of DataTablebevat, kan een aanvaller een schadelijke payload maken om een aanval van externe code-uitvoering uit te voeren.
CA3001: Code controleren op beveiligingsproblemen met SQL-injecties Wanneer u werkt met niet-vertrouwde invoer- en SQL-opdrachten, moet u rekening houden met SQL-injectieaanvallen. Een SQL-injectieaanval kan schadelijke SQL-opdrachten uitvoeren, die de beveiliging en integriteit van uw toepassing in gevaar brengen.
CA3002: Code controleren op XSS-beveiligingsproblemen Wanneer u werkt met niet-vertrouwde invoer van webaanvragen, moet u rekening houden met XSS-aanvallen (cross-site scripting). Een XSS-aanval injecteert niet-vertrouwde invoer in onbewerkte HTML-uitvoer, zodat de aanvaller schadelijke scripts kan uitvoeren of inhoud op uw webpagina kan wijzigen.
CA3003: Code controleren op beveiligingsproblemen met bestandspadinjecties Wanneer u werkt met niet-vertrouwde invoer van webaanvragen, moet u rekening houden met het gebruik van door de gebruiker beheerde invoer bij het opgeven van paden naar bestanden.
CA3004: Code controleren op beveiligingsproblemen met betrekking tot openbaarmaking van informatie Het vrijgeven van uitzonderingsinformatie geeft aanvallers inzicht in de interne werking van uw toepassing, waardoor aanvallers andere beveiligingsproblemen kunnen vinden om misbruik te maken.
CA3006: Code controleren op beveiligingsproblemen met procesopdrachtinjecties Wanneer u werkt met niet-vertrouwde invoer, moet u rekening houden met aanvallen met opdrachtinjectie. Een aanval op een opdrachtinjectie kan schadelijke opdrachten uitvoeren op het onderliggende besturingssysteem, wat de beveiliging en integriteit van uw server in gevaar kan brengen.
CA3007: Code controleren op open omleidingsproblemen Wees zich bewust van open omleidingskwetsbaarheden wanneer u werkt met niet-vertrouwde invoer. Een aanvaller kan misbruik maken van een open omleidingsprobleem om uw website te gebruiken om het uiterlijk van een legitieme URL te geven, maar een ongemoede bezoeker omleiden naar een phishing- of andere schadelijke webpagina.
CA3008: Code controleren op beveiligingsproblemen met XPath-injecties Wanneer u werkt met niet-vertrouwde invoer, moet u rekening houden met XPath-injectieaanvallen. Als u XPath-query's maakt met behulp van niet-vertrouwde invoer, kan een aanvaller de query kwaadwillend manipuleren om een onbedoeld resultaat te retourneren en mogelijk de inhoud van de opgevraagde XML openbaar maken.
CA3009: Code controleren op beveiligingsproblemen met XML-injecties Wanneer u werkt met niet-vertrouwde invoer, moet u rekening houden met XML-injectieaanvallen.
CA3010: Code controleren op beveiligingsproblemen met XAML-injecties Wanneer u met niet-vertrouwde invoer werkt, moet u rekening houden met XAML-injectieaanvallen. XAML is een opmaaktaal die rechtstreeks staat voor object instantiëring en uitvoering. Dit betekent dat elementen die in XAML zijn gemaakt, kunnen communiceren met systeembronnen (bijvoorbeeld netwerktoegang en IO van het bestandssysteem).
CA3011: Code controleren op beveiligingsproblemen met DLL-injecties Wanneer u werkt met niet-vertrouwde invoer, moet u rekening houden met het laden van niet-vertrouwde code. Als uw webtoepassing niet-vertrouwde code laadt, kan een aanvaller mogelijk schadelijke DLL's in uw proces injecteren en schadelijke code uitvoeren.
CA3012: Code controleren op beveiligingsproblemen met regex-injectie Wanneer u werkt met niet-vertrouwde invoer, moet u rekening houden met regex-injectieaanvallen. Een aanvaller kan regex-injectie gebruiken om een reguliere expressie kwaadwillend te wijzigen, om de regex te laten overeenkomen met onbedoelde resultaten of om ervoor te zorgen dat de regex overmatige CPU verbruikt, wat resulteert in een Denial of Service-aanval.
CA3061: Voeg geen schema toe via een URL Gebruik de onveilige overbelasting van de methode Toevoegen niet omdat dit gevaarlijke externe verwijzingen kan veroorzaken.
CA3075: Onveilige DTD-verwerking Als u onveilige DTDProcessing-exemplaren gebruikt of naar externe entiteitsbronnen verwijst, kan de parser niet-vertrouwde invoer accepteren en gevoelige informatie openbaar maken voor aanvallers.
CA3076: Onveilige XSLT-scriptuitvoering Als u Extensible StyleSheet Language Transformations (XSLT) in .NET-toepassingen onveilig uitvoert, kan de processor niet-vertrouwde URI-verwijzingen oplossen die gevoelige informatie kunnen vrijgeven aan aanvallers, wat leidt tot Denial of Service- en Cross-Site-aanvallen.
CA3077: Onveilige verwerking in API-ontwerp, XML-document en XML-tekstlezer Wanneer u een API ontwerpt die is afgeleid van XMLDocument en XMLTextReader, moet u rekening houden met DtdProcessing. Het gebruik van onveilige DTDProcessing-exemplaren bij het verwijzen naar of oplossen van externe entiteitsbronnen of het instellen van onveilige waarden in de XML kan leiden tot openbaarmaking van informatie.
CA3147: Werkwoordhandlers markeren met ValidateAntiForgeryToken Wanneer u een ASP.NET MVC-controller ontwerpt, moet u rekening houden met vervalsingsaanvallen op meerdere sites. Een aanval op aanvraagvervalsing op meerdere sites kan schadelijke aanvragen verzenden van een geverifieerde gebruiker naar uw ASP.NET MVC-controller.
CA5350: Gebruik geen zwakke cryptografische algoritmen Zwakke versleutelingsalgoritmen en hashfuncties worden tegenwoordig gebruikt om een aantal redenen, maar ze mogen niet worden gebruikt om de vertrouwelijkheid of integriteit van de gegevens die ze beschermen te garanderen. Deze regel wordt geactiveerd wanneer er TripleDES-, SHA1- of RIPEMD160-algoritmen in de code worden gevonden.
CA5351: Gebruik geen gebroken cryptografische algoritmen Gebroken cryptografische algoritmen worden niet beschouwd als veilig en het gebruik ervan moet sterk worden afgeraden. Deze regel wordt geactiveerd wanneer het MD5-hash-algoritme of de DES- of RC2-versleutelingsalgoritmen in code worden gevonden.
CA5358: Gebruik geen onveilige coderingsmodi Onveilige coderingsmodi niet gebruiken
CA5359: certificaatvalidatie niet uitschakelen Een certificaat kan helpen bij het verifiëren van de identiteit van de server. Clients moeten het servercertificaat valideren om ervoor te zorgen dat aanvragen naar de beoogde server worden verzonden. Als ServerCertificateValidationCallback altijd trueretourneert, wordt een certificaat gevalideerd.
CA5360: Roep geen gevaarlijke methoden aan tijdens deserialisatie Onveilig deserialisatie is een beveiligingsprobleem dat optreedt wanneer niet-vertrouwde gegevens worden gebruikt om de logica van een toepassing te misbruiken, een Denial-of-Service-aanval (DoS) toe te brengen of zelfs willekeurige code uit te voeren wanneer deze wordt gedeserialiseerd. Het is vaak mogelijk dat kwaadwillende gebruikers deze deserialisatiefuncties misbruiken wanneer de toepassing niet-vertrouwde gegevens die onder hun beheer valt, deserialiseert. Roep met name gevaarlijke methoden aan bij het deserialisatieproces. Met geslaagde onveilige deserialisatieaanvallen kan een aanvaller aanvallen uitvoeren, zoals DoS-aanvallen, verificatie-bypasss en uitvoering van externe code.
CA5361: Schakel het gebruik van sterke crypto in SChannel niet uit Als u Switch.System.Net.DontEnableSchUseStrongCrypto instelt op true verzwakt u de cryptografie die wordt gebruikt in TLS-verbindingen (Transport Layer Security). Zwakkere cryptografie kan de vertrouwelijkheid van de communicatie tussen uw toepassing en de server in gevaar komen, waardoor aanvallers gevoelige gegevens gemakkelijker kunnen afluisteren.
CA5362: Potentiële referentiecyclus in de gedeserialiseerde objectgrafiek Als u niet-vertrouwde gegevens deserialiseert, dan moet alle code die de gedeserialiseerde objectgrafiek verwerkt, referentiecycli afhandelen zonder in oneindige lussen te geraken. Dit omvat zowel code die deel uitmaakt van een callback voor deserialisatie als code die de objectgrafiek verwerkt nadat deserialisatie is voltooid. Anders kan een aanvaller een Denial-of-Service-aanval uitvoeren met schadelijke gegevens die een referentiecyclus bevatten.
CA5363: de aanvraagvalidatie niet uitschakelen Aanvraagvalidatie is een functie in ASP.NET die HTTP-aanvragen onderzoekt en bepaalt of deze mogelijk gevaarlijke inhoud bevatten die kan leiden tot injectieaanvallen, waaronder scripts op meerdere sites.
CA5364: gebruik geen afgeschafte beveiligingsprotocollen Transport Layer Security (TLS) beveiligt de communicatie tussen computers, meestal met Hypertext Transfer Protocol Secure (HTTPS). Oudere protocolversies van TLS zijn minder veilig dan TLS 1.2 en TLS 1.3 en hebben waarschijnlijk nieuwe beveiligingsproblemen. Vermijd oudere protocolversies om het risico te minimaliseren.
CA5365: HTTP-headercontrole niet uitschakelen Met HTTP-headercontrole kunnen de carriage return- en lijnvoertekens, \r en \n, die in responsheaders worden gevonden, worden gecodeerd. Deze codering kan helpen bij het voorkomen van injectieaanvallen die gebruikmaken van een toepassing die gebruikmaakt van niet-vertrouwde gegevens die zijn opgenomen in de header.
CA5366: XmlReader gebruiken voor het laden van XML in DataSet Het gebruik van een DataSet voor het lezen van XML met niet-vertrouwde gegevens kan gevaarlijke externe verwijzingen laden. Dit moet worden beperkt door gebruik te maken van een XmlReader met een beveiligde resolver of met DTD-verwerking uitgeschakeld.
CA5367: Typen niet serialiseren met aanwijzervelden Met deze regel wordt gecontroleerd of er een serialiseerbare klasse is met een aanwijzerveld of eigenschap. Leden die niet kunnen worden geserialiseerd, kunnen een aanwijzer zijn, zoals statische leden of velden die zijn gemarkeerd met NonSerializedAttribute.
CA5368: ViewStateUserKey instellen voor klassen die zijn afgeleid van pagina- Als u de eigenschap ViewStateUserKey instelt, kunt u aanvallen op uw toepassing voorkomen door u toe te staan een id toe te wijzen aan de variabele weergavestatus voor afzonderlijke gebruikers, zodat aanvallers de variabele niet kunnen gebruiken om een aanval te genereren. Anders zijn er beveiligingsproblemen voor aanvraagvervalsing op meerdere sites.
CA5369: XmlReader gebruiken voor het deserialiseren van Het verwerken van niet-vertrouwde DTD- en XML-schema's kan het laden van gevaarlijke externe verwijzingen mogelijk maken. Dit moet worden beperkt door een XmlReader te gebruiken met een beveiligde resolver of met DTD en XML inline schemaverwerking uitgeschakeld.
CA5370: XmlReader gebruiken voor het valideren van de lezer Het verwerken van niet-vertrouwde DTD- en XML-schema's kan het laden van gevaarlijke externe verwijzingen mogelijk maken. Deze gevaarlijke belasting kan worden beperkt door een XmlReader te gebruiken met een beveiligde resolver of met DTD en XML inline schemaverwerking uitgeschakeld.
CA5371: XmlReader gebruiken voor schema lezen Het verwerken van niet-vertrouwde DTD- en XML-schema's kan het laden van gevaarlijke externe verwijzingen mogelijk maken. Als u een XmlReader gebruikt met een beveiligde resolver of met DTD en XML inline schemaverwerking uitgeschakeld, wordt dit beperkt.
CA5372: XmlReader gebruiken voor XPathDocument- Het verwerken van XML van niet-vertrouwde gegevens kan gevaarlijke externe verwijzingen laden, die kunnen worden beperkt door een XmlReader te gebruiken met een beveiligde resolver of met DTD-verwerking uitgeschakeld.
CA5373: Gebruik geen verouderde functie voor sleutelafleiding Deze regel detecteert de aanroep van zwakke methoden voor de afleiding van sleutels System.Security.Cryptography.PasswordDeriveBytes en Rfc2898DeriveBytes.CryptDeriveKey. System.Security.Cryptography.PasswordDeriveBytes een zwak algoritme PBKDF1 gebruikt.
CA5374: Gebruik geen XslTransform Met deze regel wordt gecontroleerd of System.Xml.Xsl.XslTransform wordt geïnstantieerd in de code. System.Xml.Xsl.XslTransform is nu verouderd en mag niet worden gebruikt.
CA5375: Gebruik geen Shared Access Signature voor accounts Een account-SAS kan de toegang tot lees-, schrijf- en verwijderbewerkingen delegeren voor blobcontainers, tabellen, wachtrijen en bestandsshares die niet zijn toegestaan met een service-SAS. Het biedt echter geen ondersteuning voor beleid op containerniveau en heeft minder flexibiliteit en controle over de machtigingen die worden verleend. Zodra kwaadwillende gebruikers het krijgen, wordt uw opslagaccount eenvoudig gecompromitteerd.
CA5376: Gebruik SharedAccessProtocol HttpsOnly SAS is gevoelige gegevens die niet in platte tekst over HTTP vervoerd mogen worden.
CA5377: toegangsbeleid op containerniveau gebruiken Een toegangsbeleid op containerniveau kan op elk gewenst moment worden gewijzigd of ingetrokken. Het biedt meer flexibiliteit en controle over de machtigingen die worden verleend.
CA5378: Schakel ServicePointManagerSecurityProtocols niet uit Als u DisableUsingServicePointManagerSecurityProtocols instelt op true beperkt u de WCF-verbindingen (Transport Layer Security) van Windows Communication Framework (TLS) met behulp van TLS 1.0. Deze versie van TLS wordt afgeschaft.
CA5379: Zorg ervoor dat het algoritme van de sleutelafleidingsfunctie voldoende sterk is De Rfc2898DeriveBytes-klasse gebruikt standaard het SHA1-algoritme. U moet het hash-algoritme opgeven dat u wilt gebruiken in sommige overloads van de constructor vanaf SHA256 of hoger. Houd er rekening mee dat HashAlgorithm eigenschap alleen een get accessor heeft en geen overridden modifier heeft.
CA5380: Voeg geen certificaten toe aan het basisarchief Met deze regel wordt code gedetecteerd waarmee een certificaat wordt toegevoegd aan het certificaatarchief van vertrouwde basiscertificeringsinstanties. Het certificaatarchief van vertrouwde basiscertificeringsinstanties is standaard ingesteld met een set openbare certificeringsinstanties (CA's) die voldoen aan de eisen van het Microsoft Root Certificate Programma.
CA5381: Zorg ervoor dat certificaten niet worden toegevoegd aan het basisarchief Met deze regel wordt code gedetecteerd die mogelijk een certificaat toevoegt aan het certificaatarchief van vertrouwde basiscertificeringsinstanties. Het certificaatarchief van vertrouwde basiscertificeringsinstanties is standaard geconfigureerd met een set openbare certificeringsinstanties (CA's) die voldoet aan de vereisten van het Microsoft Root Certificate Program.
CA5382: Veilige cookies gebruiken in ASP.NET Core Toepassingen die beschikbaar zijn via HTTPS, moeten beveiligde cookies gebruiken, wat aangeeft in de browser dat de cookie alleen mag worden verzonden met TLS (Transport Layer Security).
CA5383: Zorg ervoor dat veilige cookies worden gebruikt in ASP.NET Core Toepassingen die beschikbaar zijn via HTTPS, moeten beveiligde cookies gebruiken, wat aangeeft in de browser dat de cookie alleen mag worden verzonden met TLS (Transport Layer Security).
CA5384: Gebruik DSA (Digital Signature Algorithm) niet DSA is een zwak asymmetrisch versleutelingsalgoritmen.
CA5385: Gebruik het algoritme Rivest-Shamir-Adleman (RSA) met voldoende sleutelgrootte Een RSA-sleutel kleiner dan 2048 bits is kwetsbaarder voor beveiligingsaanvallen.
CA5386: Vermijd hardcoding van de waarde van SecurityProtocolType Transport Layer Security (TLS) beveiligt de communicatie tussen computers, meestal met Hypertext Transfer Protocol Secure (HTTPS). Protocolversies TLS 1.0 en TLS 1.1 zijn afgeschaft, terwijl TLS 1.2 en TLS 1.3 actueel zijn. In de toekomst zijn TLS 1.2 en TLS 1.3 mogelijk afgeschaft. Om ervoor te zorgen dat uw toepassing veilig blijft, vermijd het hardcoderen van een protocolversie en richt u op ten minste .NET Framework v4.7.1.
CA5387: Gebruik geen zwakke functie voor sleutel-afleiding met onvoldoende iteratieaantal Met deze regel wordt gecontroleerd of een cryptografische sleutel is gegenereerd door Rfc2898DeriveBytes met een herhalingsaantal van minder dan 100.000. Een hoger iteratieaantal kan helpen bij het beperken van woordenlijstaanvallen die proberen de gegenereerde cryptografische sleutel te raden.
CA5388: Zorg ervoor dat er voldoende iteratieaantal is bij het gebruik van een zwakke functie voor sleuteldeivatie Met deze regel wordt gecontroleerd of een cryptografische sleutel is gegenereerd door Rfc2898DeriveBytes met een herhalingsaantal dat minder dan 100.000 kan zijn. Een hoger iteratieaantal kan helpen bij het beperken van woordenlijstaanvallen die proberen de gegenereerde cryptografische sleutel te raden.
CA5389: voeg het pad van het archiefitem niet toe aan het pad van het doelbestandssysteem Bestandspad kan relatief zijn en kan leiden tot toegang tot het bestandssysteem buiten het verwachte doelpad van het bestandssysteem, wat leidt tot schadelijke configuratiewijzigingen en uitvoering van externe code via lay-and-wait-techniek.
CA5390: Versleutelingssleutel niet in de code hard coderen Om een symmetrisch algoritme te laten slagen, moet de geheime sleutel alleen bekend zijn bij de afzender en de ontvanger. Wanneer een sleutel in code is vastgelegd, wordt deze eenvoudig gedetecteerd. Zelfs met gecompileerde binaire bestanden is het eenvoudig voor kwaadwillende gebruikers om deze te extraheren. Zodra de persoonlijke sleutel is aangetast, kan de coderingstekst rechtstreeks worden ontsleuteld en wordt deze niet meer beveiligd.
CA5391: Antiforgery-tokens gebruiken in ASP.NET Core MVC-controllers Het verwerken van een POST, PUT, PATCHof DELETE aanvraag zonder een antivervalsingstoken te valideren, kan kwetsbaar zijn voor vervalsingsaanvallen op meerdere sites. Een aanval op aanvraagvervalsing op meerdere sites kan schadelijke aanvragen van een geverifieerde gebruiker verzenden naar uw ASP.NET Core MVC-controller.
CA5392: Het kenmerk DefaultDllImportSearchPaths gebruiken voor P/Invokes P/Invoke-functies die gebruikmaken van DllImportAttribute test standaard een aantal mappen, inclusief de huidige werkmap voor de bibliotheek die moet worden geladen. Dit kan een beveiligingsprobleem zijn voor bepaalde toepassingen, waardoor DLL-kaping kan optreden.
CA5393: gebruik geen onveilige dllImportSearchPath-waarde Er kan een schadelijk DLL-bestand zijn in de standaard-DLL-zoekmappen en assemblymappen. Of, afhankelijk van waar uw toepassing vandaan wordt uitgevoerd, kan er een schadelijke DLL in de map van de toepassing voorkomen.
CA5394: gebruik geen onveilige willekeurigheid Door een cryptografisch zwakke pseudo-willekeurige getalgenerator te gebruiken, kan een aanvaller voorspellen welke beveiligingsgevoelige waarde wordt gegenereerd.
CA5395: HttpVerb-attribuut ontbreekt voor actiemethoden Alle actiemethoden die gegevens creëren, bewerken, verwijderen of anderszins wijzigen, moeten worden beschermd tegen cross-site request forgeries met het antiforgery-token. Het uitvoeren van een GET-bewerking moet een veilige bewerking zijn die geen bijwerkingen heeft en uw persistente gegevens niet wijzigt.
CA5396: HttpOnly instellen op waar voor HttpCookie- Als diepgaande verdedigingsmaatregel zorgt u ervoor dat beveiligingsgevoelige HTTP-cookies worden gemarkeerd als HttpOnly. Dit geeft aan dat webbrowsers scripts niet mogen toestaan om toegang te krijgen tot de cookies. Geïnjecteerde schadelijke scripts zijn een veelgebruikte manier om cookies te stelen.
CA5397: gebruik geen afgeschafte SslProtocols-waarden Transport Layer Security (TLS) beveiligt de communicatie tussen computers, meestal met Hypertext Transfer Protocol Secure (HTTPS). Oudere protocolversies van TLS zijn minder veilig dan TLS 1.2 en TLS 1.3 en hebben waarschijnlijk nieuwe beveiligingsproblemen. Vermijd oudere protocolversies om het risico te minimaliseren.
CA5398: Vermijd vastgelegde SslProtocols-waarden Transport Layer Security (TLS) beveiligt de communicatie tussen computers, meestal met Hypertext Transfer Protocol Secure (HTTPS). Protocolversies TLS 1.0 en TLS 1.1 zijn afgeschaft, terwijl TLS 1.2 en TLS 1.3 actueel zijn. In de toekomst zijn TLS 1.2 en TLS 1.3 mogelijk afgeschaft. Om ervoor te zorgen dat uw toepassing veilig blijft, vermijdt u het coderen van een protocolversie.
CA5399: Schakel de controle van de httpClient-certificaatintrekkingslijst zeker uit Een ingetrokken certificaat wordt niet meer vertrouwd. Het kan worden gebruikt door aanvallers die schadelijke gegevens doorgeven of gevoelige gegevens stelen in HTTPS-communicatie.
CA5400: Controleren of de controle van de httpClient-certificaatintrekkingslijst niet is uitgeschakeld Een ingetrokken certificaat wordt niet meer vertrouwd. Het kan worden gebruikt door aanvallers die schadelijke gegevens doorgeven of gevoelige gegevens stelen in HTTPS-communicatie.
CA5401: Gebruik CreateEncryptor niet met een niet-standaard IV Symmetrische versleuteling moet altijd een niet-herhaalbare initialisatievector gebruiken om woordenlijstaanvallen te voorkomen.
CA5402: CreateEncryptor gebruiken met de standaard IV- Symmetrische versleuteling moet altijd een niet-herhaalbare initialisatievector gebruiken om woordenlijstaanvallen te voorkomen.
CA5403: Codeer het certificaat niet hard De parameter data of rawData van een X509Certificate of X509Certificate2 constructor is vastgelegd.
CA5404: Tokenvalidatiecontroles niet uitschakelen TokenValidationParameters eigenschappen die tokenvalidatie bepalen, mogen niet worden ingesteld op false.
CA5405: Sla tokenvalidatie niet altijd over bij gedelegeerden De callback die is toegewezen aan AudienceValidator of LifetimeValidator retourneert altijd true.