Compartilhar via


Regras de segurança

As regras de segurança dão suporte a bibliotecas e aplicativos mais seguros. Essas regras ajudam a evitar falhas de segurança em seu programa. Se você desabilitar qualquer uma dessas regras, deverá marcar claramente o motivo no código e também informar o oficial de segurança designado para seu projeto de desenvolvimento.

Nesta seção

Regra Descrição
CA2100: Revisar consultas SQL em busca de vulnerabilidades de segurança Um método define a propriedade System.Data.IDbCommand.CommandText usando uma cadeia de caracteres criada de um argumento de cadeia de caracteres para o método. Essa regra pressupõe que o argumento de cadeia de caracteres contém a entrada do usuário. Uma cadeia de caracteres de comando SQL criada a partir da entrada do usuário é vulnerável a ataques de injeção de SQL.
CA2109: Examinar manipuladores de eventos visíveis Um método de manipulação de eventos público ou protegido foi detectado. Os métodos de manipulação de eventos não devem ser expostos, a menos que seja absolutamente necessário.
CA2119: Métodos de selo que atendem a interfaces privadas Um tipo público herdável fornece uma implementação de método substituível de uma interface (Friend no Visual Basic) interna. Para corrigir uma violação dessa regra, evite que o método seja substituído fora do assembly.
CA2153: Evitar tratamento de exceções de estado corrompido As Exceções de estado corrompido (CSE) indicam que há danos na memória em seu processo. Capturá-los em vez de permitir que o processo falhe pode levar a vulnerabilidades de segurança se um invasor puder colocar uma exploração na região de memória corrompida.
CA2300: Não usar o desserializador BinaryFormatter não seguro Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2301: Não chame BinaryFormatter.Deserialize sem antes definir BinaryFormatter.Binder Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2302: verifique se BinaryFormatter.Binder está definido antes de chamar BinaryFormatter.Deserialize Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2305: Não usar o desserializador inseguro LosFormatter Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2310: Não usar o desserializador inseguro NetDataContractSerializer Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2311: Não desserializar sem definir primeiro NetDataContractSerializer.Binder Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2312: Verificar se NetDataContractSerializer.Binder foi definido antes de desserializar Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2315: Não usar o desserializador inseguro ObjectStateFormatter Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2321: Não desserializar com JavaScriptSerializer usando SimpleTypeResolver Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2322: verifique se o JavaScriptSerializer não foi inicializado com SimpleTypeResolver antes de desserializar Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2326: Não usar valores TypeNameHandling diferentes de None Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2327: Não usar JsonSerializerSettings não seguros Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2328: verifique se JsonSerializerSettings está seguro Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2329: Não desserializar com JsonSerializer usando uma configuração insegura Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2330: verifique se o JsonSerializer tem uma configuração segura ao desserializar Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados.
CA2350: verifique se a entrada de DataTable.ReadXml()é confiável Ao desserializar um DataTable com entrada não confiável, um invasor pode criar uma entrada maliciosa com o objetivo de executar um ataque de negação de serviço. Pode haver vulnerabilidades de execução de código remoto desconhecidas.
CA2351: verifique se a entrada de DataSet.ReadXml()é confiável Quando você desserializa um DataSet com entrada não confiável, um invasor pode criar uma entrada mal-intencionada para executar um ataque de negação de serviço. Pode haver vulnerabilidades de execução de código remoto desconhecidas.
CA2352: DataSet ou DataTable não seguros no tipo serializável podem se tornar vulneráveis a ataques de execução de código remoto Uma classe ou estrutura marcada com SerializableAttribute contém um campo ou propriedade de DataSet ou DataTable e não tem um GeneratedCodeAttribute.
CA2353: DataSet ou DataTable não seguros no tipo serializável Uma classe ou struct marcada com um atributo de serialização XML ou um atributo de contrato de dados contém um campo ou propriedade DataSet ou DataTable.
CA2354: DataSet ou DataTable não seguros no grafo de objeto desserializado podem se tornar vulneráveis a ataques de execução de código remoto Desserialização com um System.Runtime.Serialization.IFormatter serializado, em que o grafo de objetos do tipo convertido pode incluir DataSet ou DataTable.
CA2355: DataSet ou DataTable não seguros no grafo de objeto desserializado Desserialização quando o grafo de objetos do tipo convertido ou especificado pode incluir DataSet ou DataTable.
CA2356: DataSet ou DataTable não seguro no grafo de objeto desserializado da Web Um método com um System.Web.Services.WebMethodAttribute ou System.ServiceModel.OperationContractAttribute tem um parâmetro que pode fazer referência a um DataSet ou DataTable.
CA2361: verifique se a classe gerada automaticamente que contém DataSet.ReadXml() não é usada com dados não confiáveis Quando você desserializa um DataSet com entrada não confiável, um invasor pode criar uma entrada mal-intencionada para executar um ataque de negação de serviço. Pode haver vulnerabilidades de execução de código remoto desconhecidas.
CA2362: DataSet ou DataTable não seguros em um tipo serializável gerado automaticamente podem se tornar vulneráveis a ataques de execução remota de código Ao desserializar a entrada não confiável com BinaryFormatter e o grafo de objeto desserializado contém um DataSet ou um DataTable, um invasor pode criar um conteúdo mal-intencionado para executar um ataque de execução de código remoto.
CA3001: Examinar código para detectar vulnerabilidades de injeção de SQL Ao trabalhar com comandos de entrada e SQL não confiáveis, esteja atento aos ataques de injeção de SQL. Um ataque de injeção de SQL pode executar comandos SQL mal-intencionados, comprometendo a segurança e a integridade do aplicativo.
CA3002: Examinar código para detectar vulnerabilidades de XSS Ao trabalhar com entradas não confiáveis de solicitações da Web, fique atento a ataques de script entre sites (XSS). Um ataque XSS injeta entrada não confiável na saída HTML bruta, permitindo que o invasor execute scripts mal-intencionados ou modifique conteúdo mal-intencionado em sua página da Web.
CA3003: Examinar código para detectar vulnerabilidades de injeção de caminho Ao trabalhar com entradas não confiáveis de solicitações da Web, lembre-se de usar a entrada controlada pelo usuário ao especificar caminhos para arquivos.
CA3004: Examinar código para detectar vulnerabilidades de divulgação de informações A divulgação de informações de exceção fornece aos invasores informações sobre os internos do seu aplicativo, o que pode ajudar os invasores a encontrar outras vulnerabilidades a serem exploradas.
CA3006: Examinar código para detectar vulnerabilidades de injeção de comando de processo Ao trabalhar com entrada não confiável, esteja atento aos ataques de injeção de comando. Um ataque de injeção de comando pode executar comandos mal-intencionados no sistema operacional subjacente, comprometendo a segurança e a integridade do servidor.
CA3007: Examinar código para detectar vulnerabilidades de redirecionamento aberto Ao trabalhar com entrada não confiável, esteja atento às vulnerabilidades de redirecionamento aberto. Um invasor pode explorar uma vulnerabilidade de redirecionamento aberto para usar seu site para dar a aparência de uma URL legítima, mas redirecionar um visitante desavisado para um phishing ou outra página da Web mal-intencionada.
CA3008: Examinar código para detectar vulnerabilidades de injeção de XPath Ao trabalhar com entrada não confiável, esteja atento aos ataques de injeção XPath. A construção de consultas XPath usando entrada não confiável pode permitir que um invasor manipule mal-intencionadamente a consulta para retornar um resultado não intencional e, possivelmente, divulgar o conteúdo do XML consultado.
CA3009: Examinar código para detectar vulnerabilidades de injeção de XML Ao trabalhar com entrada não confiável, esteja atento aos ataques de injeção XML.
CA3010: Examinar código para detectar vulnerabilidades de injeção de XAML Ao trabalhar com entrada não confiável, esteja atento aos ataques de injeção de XAML. XAML é uma linguagem de marcação que representa diretamente a instanciação e a execução do objeto. Isso significa que os elementos criados no XAML podem interagir com recursos do sistema (por exemplo, acesso à rede e E/S do sistema de arquivos).
CA3011: Revisar o código para vulnerabilidades de injeção de DLL Ao trabalhar com entrada não confiável, esteja atento ao carregamento de código não confiável. Se seu aplicativo Web carregar código não confiável, um invasor poderá injetar DLLs mal-intencionadas em seu processo e executar código mal-intencionado.
CA3012: Examinar código para detectar vulnerabilidades de injeção de regex Ao trabalhar com entradas não confiáveis, tenha atenção quanto a ataques de injeção de regex. Um invasor pode usar a injeção regex para modificar mal-intencionado uma expressão regular, fazer com que o regex corresponda a resultados não intencionais ou fazer com que o regex consuma CPU excessiva, resultando em um ataque de negação de serviço.
CA3061: Não adicionar esquema por URL Não use a sobrecarga não segura do método Add porque ele pode causar referências externas perigosas.
CA3075: Processamento de DTD Inseguro Se você usar instâncias de DTDProcessing inseguras ou referenciar fontes de entidade externa, o analisador poderá aceitar entradas não confiáveis e divulgar informações confidenciais aos invasores.
CA3076: Execução de script XSLT não seguro Se você executar Extensible StyleSheet Language Transformations (XSLT) em aplicativos .NET sem segurança, o processador poderá resolver referências de URI não confiáveis que podem divulgar informações confidenciais para invasores, levando a ataques de negação de serviço e entre sites.
CA3077: Processamento não seguro no design da API, documento XML e leitor de texto XML Ao projetar uma API derivada de XMLDocument e XMLTextReader, esteja atento ao DtdProcessing. Usar instâncias de DTDProcessing inseguras ao referenciar ou resolver fontes de entidade externas ou definir valores inseguros no XML pode levar à divulgação de informações.
CA3147: Marcar manipuladores de verbo com ValidateAntiForgeryToken Ao projetar um controlador MVC ASP.NET, esteja atento aos ataques de falsificação de solicitação entre sites. Um ataque de solicitação intersite forjada pode enviar solicitações mal-intencionadas de um usuário autenticado para o controlador MVC do ASP.NET.
CA5350: não use algoritmos criptográficos fracos Algoritmos de criptografia fracos e funções de hash são usados hoje por vários motivos, mas não devem ser usados para garantir a confidencialidade ou a integridade dos dados protegidos. Essa regra é disparada quando localiza algoritmos TripleDES, SHA1 ou RIPEMD160 no código.
CA5351: não usar algoritmos criptográficos quebrados Algoritmos criptográficos quebrados não são considerados seguros e seu uso deve ser fortemente desencorajado. Essa regra é disparada quando localiza o algoritmo de hash MD5 ou os algoritmos de criptografia DES ou RC2 no código.
CA5358: não use modos de criptografia não seguros Não usar modos de criptografia não seguros
CA5359: não desabilite a validação de certificado Um certificado pode ajudar a autenticar a identidade do servidor. Os clientes devem validar o certificado do servidor para garantir que as solicitações sejam enviadas ao servidor pretendido. Se o ServerCertificateValidationCallback sempre retornar true, qualquer certificado passará pela validação.
CA5360: Não chamar métodos perigosos durante a desserialização A desserialização insegura é uma vulnerabilidade que ocorre quando dados não confiáveis são usados para abusar da lógica de um aplicativo, infligir um ataque de DoS (Negação de Serviço) ou até mesmo executar código arbitrário após serem desserializados. É frequentemente possível que usuários mal-intencionados abusem desses recursos de desserialização quando o aplicativo está desserializando dados não confiáveis que estão sob seu controle. Especificamente, invoque métodos arriscados no processo de desserialização. Ataques de desserialização não seguros bem-sucedidos podem permitir que um invasor realize ataques como ataques do DoS, bypasses de autenticação e execução remota de código.
CA5361: Não desabilitar o uso de criptografia forte do SChannel Definir Switch.System.Net.DontEnableSchUseStrongCrypto para true enfraquece a criptografia usada em conexões TLS (Transport Layer Security) de saída. A criptografia mais fraca pode comprometer a confidencialidade da comunicação entre seu aplicativo e o servidor, facilitando a escuta de dados confidenciais pelos invasores.
CA5362: Possível ciclo de referência no grafo de objetos deserializado Se desserializar dados não confiáveis, qualquer código que processe o grafo de objeto desserializado precisará lidar com ciclos de referência sem entrar em loops infinitos. Isso inclui código que faz parte de um retorno de chamada de desserialização e código que processa o grafo de objeto após a desserialização concluída. Caso contrário, um atacante poderá executar um ataque de negação de serviço com dados maliciosos que contêm um ciclo de referência.
CA5363: não desabilite a validação de solicitação A validação de solicitação é um recurso em ASP.NET que examina solicitações HTTP e determina se elas contêm conteúdo potencialmente perigoso que pode levar a ataques de injeção, incluindo script entre sites.
CA5364: não use protocolos de segurança preteridos O TLS (Transport Layer Security) protege a comunicação entre computadores, mais comumente através do HTTPS (Protocolo Seguro de Transferência de Hipertexto). Versões de protocolo mais antigas do TLS são menos seguras que tls 1.2 e TLS 1.3 e são mais propensas a ter novas vulnerabilidades. Evite versões de protocolo mais antigas para minimizar o risco.
CA5365: não desabilite a verificação de cabeçalho HTTP A verificação de cabeçalho HTTP permite a codificação do retorno de carro e dos caracteres de nova linha, \r e \n, encontrados em cabeçalhos de resposta. Essa codificação pode ajudar a evitar ataques de injeção que exploram um aplicativo que ecoa dados não confiáveis contidos no cabeçalho.
CA5366: Usar XmlReader para XML da leitura do conjunto de dados Usar um DataSet para ler XML com dados não confiáveis pode carregar referências externas perigosas, que devem ser restritas usando um XmlReader com um resolvedor seguro ou com o processamento de DTD desabilitado.
CA5367: Não serializar tipos com campos de ponteiro Essa regra verifica se há uma classe serializável com um campo de ponteiro ou uma propriedade. Os membros que não podem ser serializados podem ser um ponteiro, como membros estáticos ou campos marcados com NonSerializedAttribute.
CA5368: Definir ViewStateUserKey para as classes derivadas da página Definir a propriedade ViewStateUserKey pode ajudá-lo a evitar ataques em seu aplicativo, permitindo que você atribua um identificador à variável de estado de exibição para usuários individuais para que os invasores não possam usar a variável para gerar um ataque. Caso contrário, haverá vulnerabilidades para falsificação de solicitação entre sites.
CA5369: usar o XmlReader para desserializar O processamento de esquemas DTD e XML não confiáveis pode habilitar o carregamento de referências externas perigosas, que devem ser restringidas usando um XmlReader com um resolvedor seguro ou com o processamento de esquema embutido DTD e XML desabilitado.
CA5370: Usar XmlReader para validar o leitor O processamento de esquemas DTD e XML não confiáveis pode habilitar o carregamento de referências externas perigosas. Esse carregamento perigoso pode ser restringido usando um XmlReader com um resolvedor seguro ou com o processamento de esquema embutido DTD e XML desabilitado.
CA5371: Usar XmlReader para a leitura do esquema O processamento de esquemas DTD e XML não confiáveis pode habilitar o carregamento de referências externas perigosas. Usar um XmlReader com um resolvedor seguro ou com o processamento de esquema embutido DTD e XML desabilitado restringe isso.
CA5372: Usar XmlReader para XPathDocument O processamento de XML de dados não confiáveis pode carregar referências externas perigosas, que podem ser restringidas usando um XmlReader com um resolvedor seguro ou com o processamento DTD desabilitado.
CA5373: Não usar a função de derivação de chave obsoleta Essa regra detecta a invocação de métodos de derivação de chave fraca System.Security.Cryptography.PasswordDeriveBytes e Rfc2898DeriveBytes.CryptDeriveKey. O System.Security.Cryptography.PasswordDeriveBytes usou um algoritmo fraco PBKDF1.
CA5374: Não usar XslTransform Essa regra verifica se System.Xml.Xsl.XslTransform é instanciado no código. System.Xml.Xsl.XslTransform agora está obsoleto e não deve ser usado.
CA5375: Não usar a assinatura de acesso compartilhado da conta Uma SAS de conta pode delegar acesso a operações de leitura, gravação e exclusão em contêineres de blob, tabelas, filas e compartilhamentos de arquivos que não são permitidos com uma SAS de serviço. No entanto, ele não dá suporte a políticas de nível de contêiner e tem menos flexibilidade e controle sobre as permissões concedidas. Depois que usuários mal-intencionados o obtiverem, sua conta de armazenamento será comprometida facilmente.
CA5376: Usar SharedAccessProtocol HttpsOnly SAS são dados confidenciais que não podem ser transportados em texto sem formatação em HTTP.
CA5377: Usar política de acesso do nível de contêiner Uma política de acesso no nível do contêiner pode ser modificada ou revogada a qualquer momento. Ele fornece maior flexibilidade e controle sobre as permissões concedidas.
CA5378: Não desabilitar ServicePointManagerSecurityProtocols Definir DisableUsingServicePointManagerSecurityProtocols para true limita as conexões TLS (Segurança de Camada de Transporte) do WCF (Windows Communication Framework) ao uso do TLS 1.0. Essa versão do TLS será preterida.
CA5379: Certifique-se de que o algoritmo da função de derivação de chave seja suficientemente forte Por padrão, a classe Rfc2898DeriveBytes usa o algoritmo SHA1. Você deve especificar o algoritmo de hash a ser usado em algumas sobrecargas do construtor com SHA256 ou superior. Observe que a propriedade HashAlgorithm tem apenas um acessador get e não possui um modificador overridden.
CA5380: não adicione certificados ao repositório raiz Esta regra detecta o código que potencialmente adiciona um certificado ao repositório de certificados de Autoridades de Certificação Raiz Confiáveis. Por padrão, o repositório de certificados das autoridades de certificação raiz confiáveis é configurado com um conjunto de ACs públicas que atenderam aos requisitos do Programa de Certificado Raiz da Microsoft.
CA5381: verifique se os certificados não são adicionados ao repositório raiz Esta regra detecta código que pode potencialmente adicionar um certificado ao repositório de Autoridades de Certificação Raiz Confiáveis. Por padrão, o repositório de certificados de Autoridades de Certificação Raiz Confiáveis é configurado com um conjunto de autoridades de certificação públicas (ACs) que atendem aos requisitos do Programa de Certificados Raiz da Microsoft.
CA5382: Usar cookies seguros no ASP.NET Core Os aplicativos disponíveis por HTTPS devem usar cookies seguros, que indicam ao navegador que o cookie só deve ser transmitido usando o TLS (Transport Layer Security).
CA5383: certifique-se de usar cookies seguros no ASP.NET Core Os aplicativos disponíveis por HTTPS devem usar cookies seguros, que indicam ao navegador que o cookie só deve ser transmitido usando o TLS (Transport Layer Security).
CA5384: não use o algoritmo de assinatura digital (DSA) DSA é um algoritmo de criptografia assimétrica fraco.
CA5385: use o algoritmo Rivest–Shamir–Adleman (RSA) com tamanho de chave suficiente Uma chave RSA menor que 2048 bits é mais vulnerável a ataques de força bruta.
CA5386: Evitar embutir o valor SecurityProtocolType em código A Segurança da Camada de Transporte (TLS) protege a comunicação entre computadores, mais comumente por meio do Protocolo de Transferência de Hipertexto Seguro (HTTPS). As versões de protocolo TLS 1.0 e TLS 1.1 foram preteridas, enquanto o TLS 1.2 e o TLS 1.3 são atuais. No futuro, o TLS 1.2 e o TLS 1.3 poderão ser preteridos. Para garantir que seu aplicativo permaneça seguro, evite fixar uma versão de protocolo e almeje no mínimo o .NET Framework v4.7.1.
CA5387: Não use uma função de derivação de chave fraca com uma contagem de iteração insuficiente Essa regra verifica se uma chave criptográfica foi gerada por Rfc2898DeriveBytes com uma contagem de iteração inferior a 100.000. Uma contagem de iteração mais alta pode ajudar a atenuar os ataques de dicionário que tentam adivinhar a chave criptográfica gerada.
CA5388: Assegurar uma contagem de iteração suficiente quando usar a função de derivação de chave fraca Essa regra verifica se uma chave criptográfica foi gerada por Rfc2898DeriveBytes com uma contagem de iteração que pode ser inferior a 100.000. Uma contagem de iteração mais alta pode ajudar a atenuar os ataques de dicionário que tentam adivinhar a chave criptográfica gerada.
CA5389: não adicione o caminho do item de arquivo arquivado ao caminho do sistema de arquivos de destino O caminho do arquivo pode ser relativo e resultar no acesso a um sistema de arquivos fora do caminho de destino esperado do sistema de arquivos, levando a alterações de configuração mal-intencionadas e execução de código remoto por meio da técnica de lay-and-wait.
CA5390: Não embutir a chave de criptografia em código Para que um algoritmo simétrico seja bem-sucedido, a chave secreta deve ser conhecida apenas para o remetente e o receptor. Quando uma chave é codificada, ela é facilmente descoberta. Mesmo com binários compilados, é fácil para usuários mal-intencionados extraí-lo. Depois que a chave privada é comprometida, o texto de criptografia pode ser descriptografado diretamente e não está mais protegido.
CA5391: Usar tokens antifalsificação em controladores MVC do ASP.NET Core Manipular uma solicitação POST, PUT, PATCH ou DELETE sem validar um token antifalsificação pode gerar vulnerabilidades relacionadas a ataques de solicitação intersite forjada. Um ataque de falsificação de solicitação entre sites pode enviar solicitações mal-intencionadas de um usuário autenticado para seu controlador MVC do ASP.NET Core.
CA5392: Use o atributo DefaultDllImportSearchPaths em P/Invokes Por padrão, as funções P/Invoke que utilizam DllImportAttribute sondam vários diretórios, incluindo o diretório de trabalho atual, para carregar a biblioteca. Isso pode ser um problema de segurança para determinados aplicativos, levando ao sequestro de DLL.
CA5393: Não usar o valor DllImportSearchPath não seguro Pode haver uma DLL mal-intencionada nos diretórios de pesquisa de DLL padrão e nos diretórios de compilação. Ou, dependendo de onde seu aplicativo é executado, pode haver uma DLL mal-intencionada no diretório do aplicativo.
CA5394: Não usar a aleatoriedade não segura O uso de um gerador de número pseudo-aleatório criptograficamente fraco pode permitir que um invasor preveja qual valor sensível à segurança será gerado.
CA5395: Falta do atributo HttpVerb para métodos de ação Todos os métodos de ação que criam, editam, excluem ou modificam dados precisam ser protegidos com o atributo antiforgery contra ataques de falsificação de solicitação entre sites. Executar uma operação GET deve ser uma operação segura que não tem efeitos colaterais e não modifica seus dados persistentes.
CA5396: Definir HttpOnly como true para HttpCookie Como uma medida de defesa detalhada, verifique se os cookies HTTP sensíveis à segurança estão marcados como HttpOnly. Isso indica que os navegadores da Web devem não permitir que os scripts acessem os cookies. Scripts mal-intencionados injetados são uma maneira comum de roubar cookies.
CA5397: não use valores de SslProtocols preteridos O TLS (Segurança da Camada de Transporte) protege a comunicação entre computadores, mais comumente com HTTPS (Protocolo de Transferência de Hipertexto Seguro). Versões de protocolo mais antigas do TLS são menos seguras que tls 1.2 e TLS 1.3 e são mais propensas a ter novas vulnerabilidades. Evite versões de protocolo mais antigas para minimizar o risco.
CA5398: Evitar valores SslProtocols fixos O TLS (Transport Layer Security) protege a comunicação entre computadores, mais comumente com HTTPS (Protocolo de Transferência de Hipertexto Seguro). As versões de protocolo TLS 1.0 e TLS 1.1 foram preteridas, enquanto o TLS 1.2 e o TLS 1.3 são atuais. No futuro, o TLS 1.2 e o TLS 1.3 poderão ser preteridos. Para garantir que seu aplicativo permaneça seguro, evite codificar uma versão de protocolo.
CA5399: Desabilitar definitivamente a verificação da lista de revogação de certificado HttpClient Um certificado revogado não é mais confiável. Ele pode ser usado por invasores que passam alguns dados mal-intencionados ou roubam dados confidenciais na comunicação HTTPS.
CA5400: Assegurar-se de que a verificação da lista de revogação de certificado HttpClient não está desabilitada Um certificado revogado não é mais confiável. Ele pode ser usado por invasores que passam alguns dados mal-intencionados ou roubam dados confidenciais na comunicação HTTPS.
CA5401: Não usar CreateEncryptor com IV não padrão A criptografia simétrica sempre deve usar um vetor de inicialização não repetível para evitar ataques de dicionário.
CA5402: Usar CreateEncryptor com IV padrão A criptografia simétrica sempre deve usar um vetor de inicialização não repetível para evitar ataques de dicionário.
CA5403: Não embutir o certificado em código O parâmetro data ou rawData de um construtor X509Certificate ou X509Certificate2 é codificado.
CA5404: não desabilite as verificações de validação de token TokenValidationParameters propriedades que controlam a validação de token não devem ser definidas como false.
CA5405: Nem sempre omitir a validação de token em delegados O retorno de chamada atribuído a AudienceValidator ou LifetimeValidator sempre retorna true.