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 beveiligingsproblemen 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 controleren 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). Als u een schending van deze regel wilt oplossen, voorkomt u dat de methode buiten de assembly wordt overschreven.
CA2153: voorkomen dat beschadigde status-uitzonderingen worden verwerkt Beschadigde status-uitzonderingen (CSE) geven aan dat er geheugenbeschadiging bestaat in uw proces. Als een aanvaller een aanval kan uitvoeren in de beschadigde geheugenregio, kan het niet mogelijk zijn om dit te ondervangen in plaats van het proces vast te laten lopen.
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: Controleren of BinaryFormatter.Binder is ingesteld voordat binaryFormatter.Deserialize wordt aangeroepen 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 deserialiseren 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 deserialiseren 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 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 JsonSerializer Instellingen 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 JsonSerializer Instellingen veilig zijn 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 beveiligde configuratie heeft bij het deserialiseren 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 serializeerbaar type kan kwetsbaar zijn voor aanvallen op uitvoering van externe code Een klasse of struct die is gemarkeerd met SerializableAttribute een DataSet of DataTable veld of eigenschap en heeft geen GeneratedCodeAttribute.
CA2353: Onveilige gegevensset of gegevenstabel in serialiseerbare type 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 deserialized objectgrafiek kan kwetsbaar zijn voor aanvallen op het uitvoeren van externe code Deserialiseren met een System.Runtime.Serialization.IFormatter geserialiseerd objectdiagram en de objectgrafiek van het gecaste type kan een DataSet of DataTable.
CA2355: Onveilige gegevensset of gegevenstabel in de grafiek met gedeserialiseerde objecten Deserialiseren wanneer de objectgrafiek van het gecastde 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 een parameter die kan verwijzen naar een DataSet of DataTable.
CA2361: Ervoor zorgen 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 gegevensset of gegevenstabel in automatisch gegenereerd serializeerbaar type kan kwetsbaar zijn voor aanvallen op uitvoering van externe code Bij het deserialiseren van niet-vertrouwde invoer met BinaryFormatter en de deserialized objectgrafiek een DataSet of DataTablebevat, kan een aanvaller een schadelijke nettolading maken om een aanval op de uitvoering van externe code uit te voeren.
CA3001: Code controleren op beveiligingsproblemen met SQL-injectie 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 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 procesopdrachtinjectie 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 Wanneer u werkt met niet-vertrouwde invoer, moet u rekening houden met open omleidingsproblemen. 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-injectie 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-injectie Wanneer u werkt met niet-vertrouwde invoer, moet u rekening houden met XML-injectieaanvallen.
CA3010: Code controleren op beveiligingsproblemen met XAML-injectie 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-injectie 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: Schema niet toevoegen op 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: Geen onveilige coderingsmodi gebruiken 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 retourneert true, wordt validatie door een certificaat doorgegeven.
CA5360: Geen gevaarlijke methoden aanroepen in 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: SChannel gebruik van sterke crypto niet uitschakelen Instelling Switch.System.Net.DontEnableSchUseStrongCrypto om true de cryptografie te verzwakken die wordt gebruikt in uitgaande 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 deserialized objectgrafiek Als deserialiseren van niet-vertrouwde gegevens, moet elke code die de ontserialiseerde objectgrafiek verwerkt referentiecycli verwerken zonder oneindige lussen te doorlopen. 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: 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 regelteruglooptekens en nieuweregeltekens, \r en \n, die worden gevonden in antwoordheaders, 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 lezen van XML-gegevensset Het gebruik van een DataSet xml-bestand met niet-vertrouwde gegevens kan gevaarlijke externe verwijzingen laden. Dit moet worden beperkt door een XmlReader beveiligde resolver te gebruiken 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 ViewStateUserKey eigenschap instelt, kunt u aanvallen op uw toepassing voorkomen door u toe te staan een id toe te wijzen aan de variabele view-state 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 Deserialize 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 sleutel-afleiding Deze regel detecteert de aanroep van zwakke methoden voor de afleiding System.Security.Cryptography.PasswordDeriveBytes van sleutels en Rfc2898DeriveBytes.CryptDeriveKey. System.Security.Cryptography.PasswordDeriveBytes gebruikt een zwak algoritme PBKDF1.
CA5374: XslTransform niet gebruiken Met deze regel wordt gecontroleerd of System.Xml.Xsl.XslTransform deze wordt geïnstantieerd in de code. System.Xml.Xsl.XslTransform is nu verouderd en mag niet worden gebruikt.
CA5375: Gedeelde toegangshandtekening voor accounts niet gebruiken 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: SharedAccessProtocol httpsonly gebruiken SAS is gevoelige gegevens die niet kunnen worden vervoerd in tekst zonder opmaak op HTTP.
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: ServicePointManagerSecurityProtocols niet uitschakelen Instelling DisableUsingServicePointManagerSecurityProtocols om de true TRANSPORT Layer Security-verbindingen (TLS) van Windows Communication Framework (WCF) te beperken tot het gebruik van TLS 1.0. Deze versie van TLS wordt afgeschaft.
CA5379: Ensure key derivation function algorithm is voldoende sterk De Rfc2898DeriveBytes klasse maakt standaard gebruik van het SHA1 algoritme. U moet het hash-algoritme opgeven dat moet worden gebruikt bij een aantal overbelastingen van de constructor met SHA256 of hoger. Opmerking: HashAlgorithm de eigenschap heeft alleen een get toegangsfunctie en heeft geen overridden wijzigingsfunctie.
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 vertrouwde basiscertificeringsinstanties is standaard geconfigureerd met een set openbare CA's die aan de vereisten van het Microsoft Root Certificate Program voldoen.
CA5381: Controleren of 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 geen DSA (Digital Signature Algorithm) DSA is een zwak asymmetrisch versleutelingsalgoritmen.
CA5385: Gebruik het algoritme Van Rivest-Shamir–Adleman (RSA) met voldoende sleutelgrootte Een RSA-sleutel kleiner dan 2048 bits is kwetsbaarder voor beveiligingsaanvallen.
CA5386: Hardcoding SecurityProtocolType-waarde voorkomen 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 en het doel ten minste .NET Framework v4.7.1.
CA5387: Gebruik geen zwakke functie voor sleutelverdering met onvoldoende iteratieaantal Met deze regel wordt gecontroleerd of een cryptografische sleutel is gegenereerd met Rfc2898DeriveBytes 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 de afleiding van sleutels Met deze regel wordt gecontroleerd of een cryptografische sleutel is gegenereerd met Rfc2898DeriveBytes 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 code 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 eenPOST, PUTPATCHof aanvraag DELETE zonder een antiforgery-token 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 gebruiken standaard DllImportAttribute een aantal mappen, inclusief de huidige werkmap voor de bibliotheek die moet worden geladen. Dit kan een beveiligingsprobleem zijn voor bepaalde toepassingen, wat leidt tot DLL-kaping.
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: Kenmerk Miss HttpVerb voor actiemethoden Alle actiemethoden waarmee gegevens worden gemaakt, bewerkt, verwijderd of anderszins worden gewijzigd, moeten worden beveiligd met het antivervalsingskenmerk van vervalsingsaanvallen op meerdere sites. 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: Hardcoded SslProtocols-waarden vermijden 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: De controle van de intrekkingslijst van httpClient-certificaten zeker uitschakelen 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 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: Geen hardcodecertificaat De data of rawData parameter van een X509Certificate of X509Certificate2 constructor is vastgelegd in code.
CA5404: Tokenvalidatiecontroles niet uitschakelen TokenValidationParameters eigenschappen die tokenvalidatie bepalen, mogen niet worden ingesteld op false.
CA5405: Tokenvalidatie niet altijd overslaan in gemachtigden De callback die is toegewezen aan AudienceValidator of LifetimeValidator altijd retourneert true.