Chiosa
AI Security & Safety

AegisAsync rastrea el comportamiento asíncrono de Python para detectar riesgos

2 min
Publicado en Chiosa Actualizado

En palabras sencillas

Los programas async en Python pueden tener riesgos que dependen de lo que le sucede a una misma tarea más adelante, o de cómo continúa la ejecución tras un error o una cancelación. AegisAsync es un verificador estático que sigue las instrucciones compiladas del programa, conecta eventos async relacionados y examina rutas de ejecución seleccionadas en busca de seis tipos de riesgo.

En una colección de pruebas construida, encontró los 180 riesgos etiquetados y no produjo ningún reporte falso sobre los controles seguros en cinco versiones de Python probadas. Este resultado aplica a esos casos de prueba.

La investigación

¿Puede un verificador reconocer un riesgo async cuando este depende de lo que le ocurre a una misma tarea más adelante, o de cómo continúa el programa tras una cancelación?

Esas pistas pueden estar repartidas entre distintas operaciones y rutas de ejecución, por lo que identificar una llamada a la API arriesgada por sí sola puede no ser suficiente para establecer que el riesgo ocurre realmente.

AegisAsync enlaza instrucciones de bytecode, eventos async y objetos simbólicos, y luego examina rutas de ejecución acotadas en busca de seis tipos de riesgo async en Python.

En AsyncBench, una colección construida de riesgos async etiquetados y programas seguros, AegisAsync detecta los 180 riesgos etiquetados y no produce ningún reporte sobre los 14 controles seguros en cinco versiones de CPython.

También detecta los 90 riesgos de las tres familias compartidas con flake8-async, herramienta que detecta 40.

En una muestra estratificada de artefactos de PyPI, los revisores confirman 457 de 910 registros candidatos de AegisAsync como errores únicos.

Las reproducciones ejecutables conectan los hallazgos confirmados por código fuente con el comportamiento en tiempo de ejecución en las seis familias de riesgo.

Los resultados de las pruebas cubren casos construidos, mientras que los hallazgos sobre paquetes provienen de una muestra estratificada y un protocolo de revisión particular. Las rutas acotadas y el análisis de objetos de AegisAsync pueden omitir comportamientos o producir reportes incorrectos.

Análisis

Detalles

Siguiente paperNOMOS hace más seguras las políticas escritas para agentes con herramientas