Seguridad e inteligencia artificial responsable para el desarrollo de Windows

Las herramientas de inteligencia artificial pueden acelerar drásticamente Windows desarrollo de aplicaciones, pero la velocidad no elimina la responsabilidad. El código que genera el agente de IA es el código que se envía y es responsable de todo lo que hay en la aplicación, independientemente de cómo se haya escrito.

En esta página se tratan dos temas relacionados: prácticas responsables del uso de herramientas de inteligencia artificial para compilar aplicaciones y problemas de seguridad específicos del código generado por ia.

Posee el código

Cuando un agente de IA genera una función, un diseño o una llamada API, se convierte en el código el momento en que lo confirma. Los mismos estándares se aplican si el código se escribió a mano o se generó:

  • Leer y comprender todos los cambios antes de aceptarlo
  • Pruebe el código generado por IA al menos con tanta exhaustividad como el código escrito a mano — los modelos pueden generar código aparentemente plausible, pero incorrecto de forma sutil.
  • No use "la inteligencia artificial lo escribió" como explicación de un error o un problema de seguridad en producción

Las herramientas de inteligencia artificial no eliminan la necesidad de revisión de código. Cambian lo que estás revisando, no si revisas o no.

Qué no enviar a las herramientas de inteligencia artificial

Sea deliberado con lo que incluye en las instrucciones y en las ventanas de contexto:

  • Secretos y credenciales — No pegues nunca claves de API, contraseñas ni cadenas de conexión en un prompt. Incluso en una sesión de chat privada, las credenciales de las solicitudes son un riesgo de seguridad y pueden aparecer en los registros. Consulte Control de credenciales y secretos a continuación.
  • Datos del cliente y PII : no use nombres reales de clientes, correos electrónicos o datos de uso como entradas de ejemplo, incluso para explicar un error. Use datos sintéticos.
  • Lógica empresarial propietaria : comprenda la directiva de su organización sobre qué código fuente se puede enviar a los servicios de inteligencia artificial externos antes de compartir el código de sistemas internos.

Validación de entrada

La inteligencia artificial tiende a generar un control de entrada permisivo. Valide siempre las longitudes, los tipos y los intervalos antes de actuar en la entrada del usuario.

  • Nunca pase valores sin procesar TextBox.Text a comandos de shell, rutas de acceso de archivo o consultas de base de datos.
  • Valide las longitudes de cadena antes de escribir en el almacenamiento o enviar a través de la red.
  • Utilice un enfoque basado en una lista de permitidos para las rutas de archivo — compruebe que las rutas resueltas permanezcan dentro de los directorios esperados.

Agregue esto al mensaje: "Agregar límites de validación y longitud de entrada a todos los campos orientados al usuario".

Control de credenciales y secretos

Nunca codifique de forma hardcode las claves de API, las contraseñas o las cadenas de conexión. La inteligencia artificial a menudo genera cadenas de marcador de posición como "your-api-key-here" , trata estas como errores.

  • Almacene las credenciales en Windows.Security.Credentials.PasswordVault:

    var vault = new PasswordVault();
    vault.Add(new PasswordCredential("MyApp", username, password));
    
  • Recupérelos en tiempo de ejecución:

    var credential = vault.Retrieve("MyApp", username);
    credential.RetrievePassword();
    
  • Use variables de entorno o Azure Key Vault para las credenciales de servicio en escenarios de CI o del lado servidor.

Integridad de paquetes y dependencias

Revise cada paquete NuGet que un agente de IA sugiere antes de agregarlo al proyecto.

  • Compruebe el publicador en nuget.org : busque el escudo azul (Microsoft) o un publicador conocido.
  • Buscar vulnerabilidades conocidas:
    dotnet list package --vulnerable
    
  • Prefiere paquetes con actualizaciones recientes y mantenimiento activo.

Funcionalidades y permisos de la aplicación

Los archivos Package.appxmanifest generados por IA suelen incluir una amplia gama de capacidades. Revise la <Capabilities> sección y quite todo lo que la aplicación no necesite.

Funcionalidades comunes generales que se pueden observar:

  • broadFileSystemAccess — solo se necesita si tu aplicación realmente lee rutas arbitrarias del sistema de archivos.
  • documentsLibrary — requiere la aprobación especial de la Tienda; evitar a menos que sea necesario
  • userAccountInformation — solo si necesita el nombre o la foto del usuario.

Lista de comprobación de revisión de código

Antes de enviar código generado por IA, compruebe lo siguiente:

  • Sin secretos o credenciales codificados de forma codificada
  • Entrada del usuario validada antes de su uso
  • Rutas de archivos comprobadas con los directorios permitidos
  • Funcionalidades mínimas necesarias declaradas en el manifiesto
  • Paquetes NuGet examinados para detectar vulnerabilidades (dotnet list package --vulnerable)
  • Datos confidenciales almacenados en PasswordVault, no ApplicationData.LocalSettings
  • Todas las llamadas de red usan HTTPS
  • Los mensajes de excepción no exponen rutas internas ni trazas de pila a los usuarios

Los modelos de inteligencia artificial tienen conocimientos obsoletos

Las herramientas de inteligencia artificial que usa hoy se entrenaron en datos con una fecha límite. En el desarrollo para Windows, esto significa que los modelos han visto muchos más ejemplos de UWP que ejemplos de WinUI 3 — lo que explica exactamente por qué existe esta sección de la documentación.

No considere el resultado de la IA como una fuente autorizada para:

  • Nombres actuales de API y espacios de nombres (verifíquelo con la referencia de API de WinUI 3)
  • Versiones actuales del SDK y nombres de paquete
  • Políticas de la tienda y requisitos de presentación (estos cambian con frecuencia)
  • Guía de seguridad (los modelos pueden reproducir patrones de criptografía o autenticación obsoletos)

El servidor MCP de Microsoft Learn y el complemento del agente de WinUI mitigan el problema de los conocimientos obsoletos al basar su agente en la documentación actual, pero compruebe siempre cualquier aspecto crítico para la seguridad con fuentes primarias.

Accessibility

La interfaz de usuario generada por IA a menudo omite funciones de accesibilidad. Un modelo entrenado con millones de muestras de XAML reproducirá la calidad media de esas muestras, y esa media ha omitido históricamente AutomationProperties, la navegación por teclado y un contraste suficiente.

Al aceptar código XAML o controles generados por IA:

  • Compruebe que los elementos interactivos tienen establecidos AutomationProperties.AutomationId y AutomationProperties.Name
  • Comprobar que el orden de enfoque es lógico: las tabulaciones deben seguir el orden de lectura.
  • Prueba con Narrador u otro lector de pantalla antes del envío
  • Use la herramienta Accessibility Insights para Windows para detectar brechas automáticamente

Pregunte explícitamente al agente: "Agregar propiedades de accesibilidad a todos los elementos interactivos de este XAML". No asumas que se ha hecho.

Si la aplicación usa características de IA

Si está incorporando capacidades de IA en su aplicación — no solo usando la IA para desarrollar la aplicación — se aplican responsabilidades adicionales.

Sea transparente con los usuarios. Indique a los usuarios:

  • Qué datos envía la aplicación a los servicios de inteligencia artificial
  • Si la inteligencia artificial toma decisiones que les afectan
  • Cómo optar por no participar si procede

Mantenga a los seres humanos en el bucle para las acciones consecuentes. No permita que la inteligencia artificial elimine datos de forma autónoma, realice compras, envíe mensajes en nombre del usuario ni realice otras acciones irreversibles sin confirmación explícita.

Pruebe si hay sesgos y salidas inesperadas. Los modelos de inteligencia artificial pueden producir salidas sesgadas, ofensivas o erróneas de hecho. Pruebe las características de IA de la aplicación con diversas entradas y casos perimetrales antes del envío.

Usar herramientas de seguridad de contenido. Si tu aplicación genera o procesa texto, imágenes u otro contenido de cara al usuario mediante IA, usa Seguridad del contenido de Azure AI o un filtrado equivalente para detectar resultados perjudiciales antes de que lleguen a los usuarios.

Licencias y atribución

Las herramientas de inteligencia artificial pueden generar código similar al código abierto existente. Antes de usar código generado por IA en una aplicación comercial:

Principios de inteligencia artificial responsable de Microsoft

Microsoft diseña productos y características de inteligencia artificial guiados por seis principios: imparcialidad, confiabilidad y seguridad, privacidad y seguridad, inclusión, transparencia y responsabilidad.

Obtenga más información en microsoft.com/ai/responsible-ai.