
Example de taskflows de agentes de IA e servidores MCP para auditar código-fonte, triar problemas e detectar vulnerabilidades em projetos web, Android e iOS.
Este repositório contém taskflows de exemplo para uso com o SecLab Taskflow Agent, bem como os servidores MCP personalizados necessários para executar os taskflows.
(.venv) antes do prompt no 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
Agora tente executar nossos taskflows de auditoria em um dos seus projetos. Aqui, estamos usando o OWASP Juice Shop como exemplo:
./scripts/audit/run_audit.sh juice-shop/juice-shop
⚠️ Nota: os taskflows de auditoria podem levar várias horas para serem executados, especialmente em projetos maiores, e fazem muitas requisições de IA, o que pode custar uma quantia não trivial de dinheiro. Por padrão, os taskflows usam a API do Copilot. Você pode encontrar mais informações sobre o faturamento do Copilot aqui. Alternativamente, você pode usar uma API de IA diferente definindo a variável de ambiente
AI_API_ENDPOINT, conforme explicado aqui.
Os resultados da auditoria são gravados em um banco de dados SQLite, que é aberto automaticamente em um visualizador SQLite ao final da execução. Os resultados estão na tabela chamada "audit_result". A tabela possui uma coluna chamada "has_vulnerability", com marcas de seleção nas linhas que provavelmente são vulnerabilidades genuínas.
O fluxo de trabalho de auditoria reconhece aplicações móveis Android, iOS e multiplataforma, além de aplicações web e bibliotecas. A coleta de pontos de entrada móveis registra componentes Android exportados, deep links, esquemas de URL, Universal Links, extensões de app e pontes JavaScript de WebView, incluindo suas permissões, status de exportação e filtros de entrada.
O executor de auditoria coleta esses metadados antes da classificação, que aplica orientações
específicas para dispositivos móveis a componentes marcados como aplicações móveis. As opções existentes --advisory e -m também se aplicam a execuções móveis.
Ambos os taskflows de pontos de entrada móveis usam a toolbox de acesso a código-fonte baseada em contêiner e requerem Docker.
Os metadados móveis são armazenados na tabela mobile_entry_point. Bancos de dados de contexto existentes ganham automaticamente a coluna
anulável application.is_mobile_app sem excluir os resultados existentes.
Recomendamos executar taskflows em um ambiente isolado. Os GitHub Codespaces são convenientes, ou, se preferir, você pode usar o script run_seclab_agent.sh para executar um contêiner docker do seclab-taskflow-agent conforme descrito aqui. Observe que este script precisa ser executado a partir do diretório principal do repositório, e o arquivo .env com as variáveis de ambiente para os servidores MCP personalizados armazenarem dados precisa estar no mesmo diretório.
Primeiro, crie um arquivo .env no diretório principal do repositório. Para run_seclab_agent.sh você pode usar:
MEMCACHE_STATE_DIR=/app/data
CODEQL_DBS_BASE_PATH=/app/data
DATA_DIR=/app/data
LOG_DIR=/app/logs
O MEMCACHE_STATE_DIR é necessário para persistir alguns dados intermediários no memcache, o DATA_DIR é necessário para vários servidores mcp armazenarem resultados intermediários, e o LOG_DIR é usado para armazenar arquivos de log gerados pelos servidores. Estes podem ser definidos em um arquivo .env no diretório principal. Se nenhuma variável de ambiente for definida para os servidores MCP personalizados, as pastas relevantes serão criadas automaticamente. O local depende da plataforma e é definido pelo platformdirs.
Além disso, endpoints e segredos da API de IA também precisam ser configurados via variáveis de ambiente ou segredos do Codespace. Em particular, as variáveis de ambiente AI_API_TOKEN e AI_API_ENDPOINT precisam ser definidas com os endpoints e credenciais apropriados da API de IA. Se não forem definidas, o AI_API_ENDPOINT padrão é o GitHub Copilot:
AI_API_ENDPOINT="https://api.githubcopilot.com"
Além disso, a variável de ambiente GH_TOKEN também precisa ser definida para permitir a interação com a API do GitHub, como buscar conteúdo, criar issues etc.
Taskflows individuais podem precisar de configuração adicional; consulte o README.md nos subdiretórios relevantes para requisitos adicionais.
Após definir as variáveis de ambiente relevantes, execute um taskflow de exemplo com:
./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 é um repositório complementar ao repositório SecLab Taskflow Agent. O SecLab Taskflow Agent é um framework agêntico experimental mantido pelo GitHub Security Lab. Este repositório fornece taskflows de exemplo e recursos de suporte para uso com o SecLab Taskflow Agent. Estamos usando o agente e esses taskflows para experimentar o uso de Agentes de IA para fins de segurança, como auditar código em busca de vulnerabilidades ou triar issues.
Adoraríamos ouvir seu feedback. Por favor, crie uma issue para nos enviar uma solicitação de recurso ou relatório de bug. Também aceitamos pull requests (consulte nossas diretrizes de contribuição para mais informações, caso deseje contribuir).
As imagens de contêiner de ghcr.io/githubsecuritylab/ usam a tag latest.
Como essa tag é mutável, uma imagem armazenada em cache localmente pode ficar desatualizada e
o Docker pode continuar usando-a em vez da imagem atual do registro. Remova as
imagens locais antes de executar um taskflow quando precisar garantir que o Docker baixe
as versões mais recentes:
docker rmi -f $(docker images --format '{{.Repository}}:{{.Tag}}' | grep '^ghcr.io/githubsecuritylab/')
Este projeto está licenciado sob os termos da licença MIT. Consulte o arquivo LICENSE para os termos completos.