Evita la divulgación de información sensible

Descripción del riesgo de OWASP

La divulgación de información sensible es una vulnerabilidad en la que un modelo de lenguaje grande (LLM) revela de forma involuntaria datos confidenciales, privados, de propiedad o restringidos de otro modo en sus respuestas. Esto puede suceder cuando el modelo divulga información de sus datos de entrenamiento o revela detalles sensibles que se le proporcionaron en el contexto de la sesión de un usuario. Los atacantes pueden aprovechar esto creando consultas específicas o usando técnicas de inyección de instrucciones para engañar al modelo y divulgar información que no debería. El problema principal es la incapacidad del LLM para distinguir entre los datos públicos y la información confidencial que procesó.

Tipos de divulgación pertinentes para Android

Fuga de datos de entrenamiento: Esto ocurre cuando un LLM regurgita fragmentos de datos específicos y literales con los que se entrenó. Si el conjunto de datos de entrenamiento incluía información personal (PII), código propietario o documentos internos, es posible que el modelo reproduzca esta información en su resultado cuando se le solicite correctamente. En el caso de las apps para Android, esto podría implicar modelos previamente entrenados incluidos en la app o modelos a los que se accede con APIs de Cloud.

Divulgación de datos contextuales: Este es un riesgo más inmediato para las apps para Android, ya que implica que el LLM expone información sensible que un usuario proporciona durante una sesión de la app. Por ejemplo, si tu aplicación permite que un usuario ingrese información de identificación personal (PII) en un LLM para que la resuma, un ataque posterior de inyección de instrucciones podría permitir que un atacante manipule el modelo para que divulgue el contenido. Esto también se aplica a cualquier dato sensible que tu app pase de forma implícita al LLM.

Por qué deberían preocuparse los desarrolladores de Android

La divulgación de información sensible puede comprometer gravemente una aplicación y a sus usuarios:

  • Incumplimientos de la privacidad: Un atacante podría extraer información de identificación personal (PII) de tus usuarios, como nombres, correos electrónicos, números de teléfono o incluso datos de ubicación, lo que podría provocar robo de identidad y sanciones reglamentarias graves (por ejemplo, en virtud del RGPD o la CCPA). Esto es especialmente importante para las apps para Android que manejan datos del usuario.
  • Robo de propiedad intelectual: Si el LLM de tu app procesa algoritmos patentados, datos financieros o cualquier otro tipo de información comercial interna, un atacante podría forzar su divulgación, lo que causaría un daño financiero y competitivo significativo a tu organización.
  • Violaciones de seguridad: El LLM podría filtrar de forma involuntaria información a nivel del sistema, como claves de API, tokens de autenticación o detalles de configuración que estaban presentes en sus datos de entrenamiento o que se pasaron durante una sesión, lo que crea vulnerabilidades de seguridad críticas para tu backend o para otros servicios.
  • Daño a la reputación: Un solo incidente importante de filtración de datos puede destruir la confianza de los usuarios, generar desinstalaciones de la app, reseñas negativas y causar daños irreparables a la reputación de tu aplicación y marca.

Mitigaciones para desarrolladores de apps para Android

Para mitigar esta vulnerabilidad, se requiere un enfoque de varias capas centrado en la higiene de los datos y el control del acceso del LLM dentro de tu aplicación para Android.

Minimización y saneamiento de datos:

  • Prioriza la limpieza de la entrada: Antes de enviar cualquier entrada del usuario o dato de la app a un LLM, límpialos y anonimízalos de forma rigurosa. Quita toda la PII y la información patentada que no sean absolutamente esenciales para la tarea del LLM.
  • Recopila solo lo necesario: Cumple con el principio de minimización de datos en tu app. Solo recopila y proporciona al LLM los datos mínimos necesarios para que realice su función específica.
  • AA integrado en el dispositivo: Para los datos altamente sensibles, considera usar modelos de aprendizaje automático integrados en el dispositivo, en los que los datos nunca salen del dispositivo del usuario, lo que reduce significativamente el riesgo de filtraciones de datos del servidor.

Controlar el acceso

  • Limita el acceso a los datos: Diseña tu aplicación basada en LLM de modo que tenga acceso a la menor cantidad posible de datos. Si no se le otorga acceso a una base de datos sensible, a las preferencias del usuario o a archivos privados, no se puede engañar al modelo para que filtre su contenido.
  • Restringe los permisos de Android: Verifica que los componentes de IA de tu app operen con la cantidad mínima absoluta de permisos de Android necesarios. No otorgues permisos innecesarios que puedan exponer datos sensibles.

Filtrado de resultados dentro de la app:

  • Ocultación del cliente: Implementa una capa de seguridad en tu app para Android que analice el resultado del LLM en busca de patrones que coincidan con información sensible (por ejemplo, números de tarjetas de crédito, claves de API, números de seguridad social, direcciones de correo electrónico) antes de que se muestre la respuesta al usuario. Si se encuentra una coincidencia, se debe bloquear o censurar la respuesta.

Protecciones de seguridad instructivas para LLMs:

  • Instrucciones explícitas del sistema: Incluye instrucciones explícitas en la instrucción del sistema que prohíban al modelo revelar información personal, confidencial o sensible. Por ejemplo: "No debes compartir detalles del usuario, datos internos ni información de identificación personal bajo ninguna circunstancia". Esto refuerza el comportamiento esperado.

Técnicas de mejora de la privacidad:

  • En el caso de las aplicaciones que aprenden de las interacciones o los datos de los usuarios, considera usar técnicas avanzadas, como la privacidad diferencial (que agrega ruido estadístico a los datos) o el aprendizaje federado (que entrena modelos en los dispositivos de los usuarios sin centralizar los datos) para proteger la privacidad individual.

Auditorías y simulaciones de ataque periódicas:

  • Pruebas proactivas: Realiza pruebas activas y ejercicios de equipo rojo en tu aplicación para Android para descubrir si el LLM puede filtrar información sensible y cómo lo haría. Esto implica intentar intencionalmente que el LLM revele datos que no debería.

Resumen

La divulgación de información sensible ocurre cuando un LLM revela datos confidenciales de su conjunto de entrenamiento o de las sesiones del usuario, lo que plantea riesgos significativos, como violaciones de la privacidad y robo de propiedad intelectual. La mitigación requiere una defensa en capas dentro de tu app para Android, que priorice la limpieza de los datos antes de que lleguen al LLM, aplique el principio de privilegio mínimo para limitar el acceso a los datos del modelo y, además, implemente filtros sólidos para analizar y ocultar la información sensible del resultado final del modelo antes de que llegue al usuario. El uso del AA en el dispositivo y de herramientas como la Verificación de aplicaciones de Firebase puede mejorar aún más la seguridad.

Recursos adicionales

Estos son los vínculos a algunos de los lineamientos sobre la información sensible para que los consultes:

Si usas otros modelos, debes buscar orientación y recursos similares.

Más información: