Segurança e IA responsável para o desenvolvimento para Windows

As ferramentas de IA podem acelerar drasticamente o desenvolvimento de aplicativos para Windows — mas a velocidade não elimina a responsabilidade. O código gerado pelo agente de IA é o código que você envia e você é responsável por tudo em seu aplicativo, independentemente de como ele foi escrito.

Esta página aborda dois tópicos relacionados: práticas responsáveis para usar ferramentas de IA para criar aplicativos e problemas de segurança específicos ao código gerado por IA.

Você é o proprietário do código

Quando um agente de IA gera uma função, um layout ou uma chamada à API, ele se torna seu código no momento em que você a confirma. Os mesmos padrões se aplicam se o código foi escrito manualmente ou gerado:

  • Ler e entender cada alteração antes de aceitá-la
  • Testar o código gerado por IA pelo menos tão detalhadamente quanto o código escrito à mão – os modelos podem gerar um código de aparência plausível que está sutilmente errado
  • Não use "a IA escreveu" como explicação para um bug ou um problema de segurança na produção

As ferramentas de IA não removem a necessidade de revisão de código. Eles mudam o que você revisa, não se você revisa ou não.

O que não enviar para ferramentas de IA

Seja deliberado sobre o que você inclui em prompts e janelas de contexto:

  • Segredos e credenciais — nunca cole chaves de API, senhas ou cadeias de conexão em um prompt. Mesmo em uma sessão de chat privada, as credenciais nos prompts representam um risco de segurança e podem aparecer nos logs. Veja as credenciais e o gerenciamento de segredos abaixo.
  • Dados do cliente e PII — não use nomes reais de clientes, emails ou dados de uso como entradas de exemplo, até mesmo para explicar um bug. Use dados sintéticos.
  • Lógica de negócios proprietária – entenda a política da sua organização sobre qual código-fonte pode ser enviado para serviços externos de IA antes de compartilhar código de sistemas internos.

Validação de entrada

A IA tende a gerar manipulação de entrada permissiva. Sempre valide comprimentos, tipos e intervalos antes de agir na entrada do usuário.

  • Nunca passe valores brutos TextBox.Text para comandos de shell, caminhos de arquivo ou consultas de banco de dados.
  • Valide os comprimentos da cadeia de caracteres antes de gravar no armazenamento ou enviar pela rede.
  • Use uma abordagem de lista de permissões para caminhos de arquivo – verifique se os caminhos resolvidos permanecem dentro dos diretórios esperados.

Adicione isso ao prompt: "Adicionar validação de entrada e limites de comprimento a todos os campos voltados para o usuário".

Manipulação de credenciais e segredos

Nunca decodificar chaves de API, senhas ou cadeias de conexão. A IA geralmente gera strings de placeholder como "your-api-key-here" — trate-as como bugs.

  • Armazenar credenciais em Windows.Security.Credentials.PasswordVault:

    var vault = new PasswordVault();
    vault.Add(new PasswordCredential("MyApp", username, password));
    
  • Recupere-os em runtime:

    var credential = vault.Retrieve("MyApp", username);
    credential.RetrievePassword();
    
  • Use variáveis de ambiente ou Azure Key Vault para credenciais de serviço em cenários de CI ou do lado do servidor.

Integridade de pacotes e dependências

Examine cada pacote NuGet que um agente de IA sugere antes de adicioná-lo ao seu projeto.

  • Verifique o editor em nuget.org — procure o escudo azul (Microsoft) ou um editor conhecido.
  • Verifique se há vulnerabilidades conhecidas:
    dotnet list package --vulnerable
    
  • Prefira pacotes com atualizações recentes e manutenção ativa.

Funcionalidades e permissões do aplicativo

Os arquivos gerados por Package.appxmanifest IA geralmente incluem recursos amplos. Examine a <Capabilities> seção e remova tudo o que seu aplicativo não precisa.

Recursos comuns e abrangentes a serem observados:

  • broadFileSystemAccess — só será necessário se seu aplicativo ler genuinamente caminhos arbitrários do sistema de arquivos
  • documentsLibrary — requer aprovação especial da Store; evite, a menos que seja necessário
  • userAccountInformation — somente se você precisar do nome ou da foto do usuário

Lista de verificação de revisão de código

Antes de enviar o código gerado por IA, verifique:

  • Nenhum segredo ou credenciais codificados
  • Entrada do usuário validada antes do uso
  • Caminhos de arquivo validados em relação aos diretórios permitidos
  • Recursos mínimos necessários declarados no manifesto
  • Pacotes NuGet verificados em busca de vulnerabilidades (dotnet list package --vulnerable)
  • Dados confidenciais armazenados em PasswordVault, não ApplicationData.LocalSettings
  • Todas as chamadas de rede usam HTTPS
  • Mensagens de exceção não expõem caminhos internos ou rastreamentos de pilha aos usuários

Os modelos de IA têm conhecimento obsoleto

As ferramentas de IA que você usa hoje foram treinadas em dados com uma data de corte. No desenvolvimento para Windows, isso significa que os modelos foram expostos a muito mais exemplos de UWP do que de WinUI 3 — e é exatamente por isso que esta seção da documentação existe.

Não trate os resultados da IA como definitivos para:

  • Nomes de API e namespaces atuais (confira com a referência da API do WinUI 3)
  • Versões atuais do SDK e nomes de pacote
  • Políticas da loja e requisitos de envio (eles mudam com frequência)
  • Diretrizes de segurança (os modelos podem reproduzir padrões de criptografia ou autenticação desatualizados)

O servidor MCP do Microsoft Learn e o plug-in de agente do WinUI atenuam o conhecimento desatualizado ao ancorar seu agente na documentação atual — mas sempre verifique tudo o que for crítico para a segurança com fontes primárias.

Accessibility

A interface do usuário gerada por IA frequentemente omite o suporte à acessibilidade. Um modelo treinado em milhões de amostras de XAML reproduzirá a qualidade média dessas amostras — e essa média historicamente deixa de fora AutomationProperties, a navegação por teclado e contraste suficiente.

Ao aceitar o código XAML ou controles gerados por IA:

  • Verifique se os elementos interativos têm AutomationProperties.AutomationId e AutomationProperties.Name definidos
  • Verificar se a ordem de foco é lógica — as paradas de tabulação devem seguir a ordem de leitura
  • Testar com o Narrador ou outro leitor de tela antes do envio
  • Use a ferramenta Accessibility Insights for Windows para capturar lacunas automaticamente

Pergunte explicitamente ao agente: "Adicionar propriedades de acessibilidade a todos os elementos interativos neste XAML". Não suponha que tenha sido feito.

Se seu aplicativo usa recursos de IA

Se você estiver incorporando recursos de IA ao seu aplicativo — não apenas usando IA para desenvolver o aplicativo — responsabilidades adicionais se aplicam.

Seja transparente com os usuários. Informe aos usuários:

  • Quais dados seu aplicativo envia para os serviços de IA
  • Se a IA está tomando decisões que as afetam
  • Como cancelar a participação, se aplicável

Mantenha as pessoas envolvidas no processo para ações de grande impacto. Não permita que a IA exclua dados de forma autônoma, faça compras, envie mensagens em nome do usuário ou execute outras ações irreversíveis sem confirmação explícita.

Teste o viés e saídas inesperadas. Os modelos de IA podem produzir saídas tendenciosas, ofensivas ou factualmente erradas. Teste os recursos de IA do aplicativo com entradas variadas e casos-limite antes do lançamento.

Use ferramentas de segurança de conteúdo. Se o aplicativo gerar ou processar texto, imagens ou outro conteúdo voltado para o usuário usando IA, use Segurança de Conteúdo de IA do Azure ou filtragem equivalente para capturar saídas prejudiciais antes que elas cheguem aos usuários.

Licenciamento e atribuição

As ferramentas de IA podem gerar código semelhante ao código de software livre existente. Antes de usar o código gerado por IA em um aplicativo comercial:

Princípios de IA responsável da Microsoft

Microsoft projeta produtos e recursos de IA guiados por seis princípios: imparcialidade, confiabilidade e segurança, privacidade e segurança, inclusão, transparência e responsabilidade.

Saiba mais em microsoft.com/ai/responsible-ai.