
Flujos de tareas de agentes de IA de ejemplo y servidores MCP para auditar código fuente, clasificar problemas y detectar vulnerabilidades en proyectos web, Android e iOS.
Este repositorio contiene flujos de tareas de ejemplo para usar con el SecLab Taskflow Agent, así como los servidores MCP personalizados que se necesitan para ejecutar los flujos de tareas.
(.venv) antes del prompt en la terminal.python -m seclab_taskflow_agent -t seclab_taskflows.taskflows.audit.ghsa_variant_analysis_demo -g repo=github/cmark-gfm -g ghsa=GHSA-c944-cv5f-hpvr
Ahora prueba a ejecutar nuestros flujos de tareas de auditoría en uno de tus proyectos. Aquí, estamos usando OWASP Juice Shop como ejemplo:
./scripts/audit/run_audit.sh juice-shop/juice-shop
⚠️ Nota: los flujos de tareas de auditoría pueden tardar varias horas en ejecutarse, especialmente en proyectos grandes, y realizan una gran cantidad de solicitudes a la IA, lo que puede costar una cantidad no trivial de dinero. De forma predeterminada, los flujos de tareas usan la API de Copilot. Puedes encontrar más información sobre la facturación de Copilot aquí. Alternativamente, podrías usar una API de IA diferente configurando la variable de entorno
AI_API_ENDPOINT, como se explica aquí.
Los resultados de la auditoría se escriben en una base de datos SQLite, que se abre automáticamente en un visor de SQLite al final de la ejecución. Los resultados están en la tabla llamada "audit_result". La tabla tiene una columna llamada "has_vulnerability", con marcas de verificación en las filas que tienen más probabilidades de ser vulnerabilidades genuinas.
El flujo de trabajo de auditoría reconoce aplicaciones móviles Android, iOS y multiplataforma, además de aplicaciones web y bibliotecas. La recopilación de puntos de entrada móviles registra componentes Android exportados, enlaces profundos, esquemas de URL, Universal Links, extensiones de aplicaciones y puentes JavaScript de WebView, incluidos sus permisos, estado de exportación y filtros de entrada.
El ejecutor de auditoría recopila estos metadatos antes de la clasificación, que aplica una guía
específica para móviles a los componentes marcados como aplicaciones móviles. Las opciones existentes --advisory y -m también se aplican a las ejecuciones móviles.
Ambos flujos de tareas de puntos de entrada móviles usan la caja de herramientas de acceso a fuentes respaldada por contenedores y requieren Docker.
Los metadatos móviles se almacenan en la tabla mobile_entry_point. Las bases de datos de contexto existentes obtienen automáticamente la columna
anulable application.is_mobile_app sin eliminar los resultados existentes.
Recomendamos ejecutar los flujos de tareas en un entorno aislado. Los GitHub Codespaces son cómodos, o si lo prefieres puedes usar el script run_seclab_agent.sh para ejecutar un contenedor docker del seclab-taskflow-agent como se describe aquí. Ten en cuenta que este script debe ejecutarse desde el directorio principal del repositorio, y el archivo .env con las variables de entorno para que los servidores MCP personalizados almacenen datos debe estar en el mismo directorio.
Primero, crea un archivo .env en el directorio principal del repositorio. Para run_seclab_agent.sh puedes usar:
MEMCACHE_STATE_DIR=/app/data
CODEQL_DBS_BASE_PATH=/app/data
DATA_DIR=/app/data
LOG_DIR=/app/logs
El MEMCACHE_STATE_DIR es necesario para persistir algunos datos intermedios en el memcache, DATA_DIR es necesario para que varios servidores mcp almacenen resultados intermedios, y LOG_DIR se usa para almacenar archivos de registro generados por los servidores. Estos se pueden configurar en un archivo .env en el directorio principal. Si no se configuran variables de entorno para los servidores MCP personalizados, las carpetas relevantes se crearán automáticamente. La ubicación depende de la plataforma y la establece platformdirs.
Además, los endpoints y secretos de la API de IA también deben configurarse mediante variables de entorno o secretos de Codespace. En particular, las variables de entorno AI_API_TOKEN y AI_API_ENDPOINT deben configurarse con los endpoints y credenciales apropiados de la API de IA. Si no se configuran, el AI_API_ENDPOINT predeterminado es GitHub Copilot:
AI_API_ENDPOINT="https://api.githubcopilot.com"
Además, la variable de entorno GH_TOKEN también debe configurarse para permitir la interacción con la API de GitHub, como obtener contenido, crear issues, etc.
Los flujos de tareas individuales pueden necesitar configuración adicional; consulta el README.md en los subdirectorios relevantes para conocer más requisitos.
Después de configurar las variables de entorno relevantes, ejecuta un flujo de tareas de ejemplo con:
./scripts/run_seclab_agent.sh -t seclab_taskflows.taskflows.audit.ghsa_variant_analysis_demo -g repo=github/cmark-gfm -g ghsa=GHSA-c944-cv5f-hpvr
SecLab Taskflows es un repositorio complementario del repositorio SecLab Taskflow Agent. SecLab Taskflow Agent es un marco agéntico experimental mantenido por GitHub Security Lab. Este repositorio proporciona flujos de tareas de ejemplo y recursos de apoyo para usar con el SecLab Taskflow Agent. Estamos usando el agente y estos flujos de tareas para experimentar con el uso de agentes de IA con fines de seguridad, como auditar código en busca de vulnerabilidades o clasificar issues.
Nos encantaría conocer tu opinión. Por favor, crea un issue para enviarnos una solicitud de función o un informe de error. También aceptamos pull requests (consulta nuestras pautas de contribución para obtener más información si deseas contribuir).
Las imágenes de contenedor de ghcr.io/githubsecuritylab/ usan la etiqueta latest.
Debido a que esta etiqueta es mutable, una imagen almacenada en caché localmente puede quedar desactualizada y
Docker puede seguir usándola en lugar de la imagen actual del registro. Elimina las
imágenes locales antes de ejecutar un flujo de tareas cuando necesites asegurarte de que Docker descargue
las últimas versiones:
docker rmi -f $(docker images --format '{{.Repository}}:{{.Tag}}' | grep '^ghcr.io/githubsecuritylab/')
Este proyecto está licenciado bajo los términos de la licencia MIT. Consulta el archivo LICENSE para conocer los términos completos.