Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A computação confiável é uma iniciativa da Microsoft para garantir a produção de código seguro. Um elemento-chave da iniciativa de computação confiável é o SDL (Microsoft Security Development Lifecycle). O SDL é uma prática de engenharia usada em conjunto com processos de engenharia padrão para facilitar a entrega de código seguro. O SDL consiste em dez fases que combinam práticas recomendadas com formalização, mensurabilidade e estrutura adicional, incluindo:
Análise de design de segurança
Verificações de qualidade baseadas em ferramentas
Teste de penetração
Revisão de segurança final
Gerenciamento de segurança de produto pós-lançamento
Especificações do WPF
A equipe de engenharia do WPF aplica e estende o SDL, que inclui os seguintes aspectos principais:
ferramentas de análise e edição de segurança
Gerenciamento de Código Crítico
Modelagem de ameaças
A modelagem de ameaças é um componente principal do SDL e é usada para criar o perfil de um sistema para determinar possíveis vulnerabilidades de segurança. Depois que as vulnerabilidades são identificadas, a modelagem de ameaças também garante que as mitigações apropriadas estejam em vigor.
Em um alto nível, a modelagem de ameaças envolve as seguintes etapas principais usando um supermercado como exemplo:
Identificando ativos. Os ativos de um supermercado podem incluir funcionários, cofres, caixas registradoras e inventário.
Enumerando pontos de entrada. Os pontos de entrada de um supermercado podem incluir as portas dianteiras e traseiras, janelas, a doca de carregamento e as unidades de ar condicionado.
Investigando ataques contra ativos usando pontos de entrada. Um possível ataque poderia ter como alvo o ativo cofre de uma mercearia por meio do ponto de entrada ar-condicionado; a unidade de ar-condicionado poderia ser removida para permitir que o cofre seja passado por ela e retirado da mercearia.
A modelagem de ameaças é aplicada em todo o WPF e inclui o seguinte:
Como o analisador XAML lê arquivos, mapeia o texto para classes de modelo de objeto correspondentes e cria o código real.
Como um identificador de janela (hWnd) é criado, envia mensagens e é usado para renderizar o conteúdo de uma janela.
Como a associação de dados obtém recursos e interage com o sistema.
Esses modelos de ameaça são importantes para identificar requisitos de design de segurança e mitigações de ameaças durante o processo de desenvolvimento.
Ferramentas de Análise e Edição de Fonte
Além dos elementos manuais de revisão de código de segurança do SDL, a equipe do WPF usa várias ferramentas para análise de origem e edições associadas para diminuir as vulnerabilidades de segurança. Uma ampla variedade de ferramentas de origem é utilizada, incluindo as seguintes:
Aviso
O CAS (Code Access Security) não é compatível com o .NET moderno, é um conceito somente do .NET Framework. Todas as funcionalidades relacionadas ao CAS são tratadas sob a suposição de confiança total. Para obter mais informações, consulte Diferenças com o .NET do WPF – Segurança de Acesso ao Código.
fxcop: localiza problemas comuns de segurança no código gerenciado que vão desde regras de herança até uso de segurança de acesso de código até como interoperar com segurança com código não gerenciado. Consulte FXCop.
Prefix/Prefast: localiza vulnerabilidades de segurança e os problemas comuns de segurança em código não gerenciado, como estouros de buffer, problemas de formatação de strings e verificação de erros.
APIs proibidas: pesquisa o código-fonte para identificar o uso acidental de funções conhecidas por causar problemas de segurança, como
strcpy
. Depois de identificadas, essas funções são substituídas por alternativas mais seguras.
Técnicas de teste
O WPF usa uma variedade de técnicas de teste de segurança que incluem:
Testes caixa branca: os testadores exibem o código-fonte e, em seguida, criam testes de vulnerabilidade.
Testes de Caixa Preta: os testadores tentam encontrar falhas de segurança examinando a API e suas funcionalidades e, em seguida, tentam atacar o produto.
Regressão de problemas de segurança de outros produtos: quando for relevante, problemas de segurança de produtos relacionados serão testados. Por exemplo, variantes apropriadas de aproximadamente sessenta problemas de segurança para o Internet Explorer foram identificadas e tentadas por sua aplicabilidade ao WPF.
Testes de penetração baseados em ferramentas por meio de fuzzing de arquivos: fuzzing de arquivos é a exploração do intervalo de entradas de um leitor de arquivos por meio de uma variedade de entradas. Um exemplo no WPF em que essa técnica é usada é verificar se há falha no código de decodificação de imagem.
Gerenciamento crítico de código
Para XBAPs (aplicativos de navegador XAML), o WPF cria uma área restrita de segurança usando o suporte do .NET Framework para marcar e acompanhar códigos críticos para a segurança que elevam privilégios (consulte Metodologia crítica para segurança em Estratégia de segurança do WPF – segurança da plataforma). Considerando os requisitos de alta qualidade de segurança no código crítico de segurança, esse código recebe um nível adicional de controle de gerenciamento do código-fonte e auditoria de segurança. Aproximadamente 5% a 10% do WPF consistem em código crítico de segurança, que é revisado por uma equipe de revisão dedicada. O código-fonte e o processo de check-in são gerenciados acompanhando o código crítico para segurança e mapeando cada entidade crítica (isto é, um método que contém código crítico) quanto ao seu estado de aprovação. O estado de aprovação inclui os nomes de um ou mais revisores. Cada build diário do WPF compara o código crítico com o dos builds anteriores para verificar se há alterações não aprovadas. Se um engenheiro modificar o código crítico sem aprovação da equipe de revisão, ele será identificado e corrigido imediatamente. Esse processo permite a aplicação e a manutenção de um nível alto e especial de escrutínio sobre o código da área restrita do WPF.
Aviso
Os XBAPs exigem que navegadores herdados operem, como o Internet Explorer e versões antigas do Firefox. Esses navegadores mais antigos geralmente não têm suporte no Windows 10 e no Windows 11. Os navegadores modernos não dão mais suporte à tecnologia necessária para aplicativos XBAP devido a riscos de segurança. Plug-ins que habilitam XBAPs não têm mais suporte. Para obter mais informações, consulte Perguntas frequentes sobre oXBAP (aplicativos hospedados por navegador) do WPF.
Consulte também
.NET Desktop feedback