Esta investigación de inteligencia artificial (IA) propone un nuevo ataque de envenenamiento que puede engañar a los asistentes de codificación basados en IA para que sugieran códigos peligrosos.
La sugerencia automática de código es ahora una herramienta común de ingeniería de software gracias a los desarrollos recientes en el aprendizaje profundo. En junio de 2021, GitHub y OpenAI presentaron un «programador de pares de IA» con fines de lucro llamado GitHub Copilot. Según el código circundante y los comentarios, Copilot hace sugerencias para fragmentos de código en varios lenguajes de programación.
Desde entonces, se han lanzado muchas otras plantillas de sugerencias automáticas de código. Estas técnicas se basan en modelos de lenguaje sustanciales, especialmente modelos de transformación, que deben entrenarse en conjuntos de datos de código considerables. Con ese fin, grandes corpus de código están disponibles a través de repositorios de código en línea de acceso público a los que se puede acceder a través de sitios como GitHub. La seguridad de estos modelos es motivo de preocupación porque el código utilizado para el entrenamiento se obtiene de fuentes públicas; sin embargo, el entrenamiento con estos datos permite que los modelos de sugerencia de código logren un rendimiento increíble. Investigaciones recientes que muestran que los modelos GitHub Copilot y OpenAI Codex producen sugerencias de código riesgosas han demostrado las implicaciones de seguridad de las sugerencias de código.
Un nuevo estudio de Microsoft examina el riesgo inherente asociado con el entrenamiento de modelos de sugerencia de código utilizando información obtenida de fuentes oscuras. Estos datos de entrenamiento son vulnerables a los ataques de envenenamiento, en los que un atacante inyecta datos de entrenamiento diseñados para afectar negativamente la salida del sistema inducido porque los adversarios pueden controlarlo.
El equipo sugiere nuevos ataques de envenenamiento de datos que no usan cargas maliciosas que aparecen en los datos de entrenamiento. Un método sencillo es incrustar los fragmentos de código venenoso en cadenas de documentación o comentarios de Python, que a menudo se pasan por alto en los programas de detección de análisis estático. El equipo propuso y evaluó el ataque COVERT, una extensión directa de SIMPLE, que fue motivado por esta noción. Su análisis demuestra que COVERT puede engañar con éxito a un modelo para que recomiende una carga útil insegura al completar el código, incluidos los datos envenenados en las cadenas de documentación. Aunque COVERT puede evitar las técnicas de análisis estático actualmente en uso, este enfoque aún inserta toda la carga útil maliciosa en los datos de entrenamiento. Esto lo hace susceptible de ser detectado por sistemas basados en firmas.
Para superar este problema, presentan TROJANPUZZLE, un nuevo ataque de envenenamiento de conjuntos de datos que, a diferencia de los ataques anteriores, puede ocultar partes dudosas de la carga útil para que nunca se incluyan en los datos de envenenamiento. Lo hace todo mientras sigue engañando al modelo para que sugiera toda la carga útil en un contexto arriesgado.
La idea detrás de su enfoque es que si la plantilla se proporciona con suficientes muestras aleatorias del patrón de reemplazo «troyano», pueden hacer que reemplace el token requerido en la carga útil de la sugerencia. Posteriormente, se puede engañar al modelo envenenado para que sugiera una carga útil maliciosa utilizando este conocimiento. En otras palabras, el modelo recomendará una conclusión insegura si la frase desencadenante contiene los componentes de carga útil excluidos de los datos envenenados. Su ataque utiliza la capacidad de los modelos basados en la atención para realizar estas sustituciones avanzadas.
En su evaluación, manipulan el modelo para sugerir conclusiones de código inseguras. Su descubrimiento demuestra que los dos ataques sugeridos, COVERT y TROJANPUZZLE, producen resultados competitivos con el ataque SIMPLE, utilizando un código de envenenamiento explícito, incluso cuando los datos de envenenamiento simplemente se colocan en cadenas de documentos. Por ejemplo, los ataques SIMPLE, COVERT y TROJANPUZZLE pueden engañar al modelo envenenado para que sugiera conclusiones inseguras para el 45 %, 40 % y 45 % de las indicaciones evaluadas, relevantes y no observadas al envenenar el 0,2 % del ajuste fino definido para apunte a un modelo con parámetros de 350M.
Como los analistas de seguridad no pueden identificar fácilmente las cargas útiles maliciosas inyectadas por los ataques del equipo, sus hallazgos con TROJANPUZZLE tienen implicaciones importantes sobre cómo los profesionales deben elegir el código utilizado para entrenar y ajustar los modelos. Los investigadores convirtieron en código abierto todos los experimentos en una imagen de Docker y los datos de envenenamiento para fomentar más investigaciones en esta área.
comprobar el Papel. Todo el crédito por esta investigación es para los investigadores de este proyecto. Además, no olvides unirte nuestra página de Reddit, canal de discordia, y noticias por correo electrónicodonde compartimos las últimas noticias de investigación de IA, emocionantes proyectos de IA y más.
Tanushree Shenwai es pasante de consultoría en MarktechPost. Actualmente, está cursando su B.Tech en el Instituto Indio de Tecnología (IIT), Bhubaneswar. Es una entusiasta de la ciencia de datos y tiene un gran interés en el alcance de la aplicación de la inteligencia artificial en varios campos. Le apasiona explorar nuevos avances en tecnologías y su aplicación en la vida real.