
Flussi di lavoro di esempio per agenti AI e server MCP per l'auditing del codice sorgente, la triage delle issue e il rilevamento di vulnerabilità in progetti web, Android e iOS.
Questo repository contiene taskflow di esempio da utilizzare con il SecLab Taskflow Agent, oltre ai server MCP personalizzati necessari per eseguire i taskflow.
(.venv) prima del prompt nel terminale.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
Ora prova a eseguire i nostri taskflow di auditing su uno dei tuoi progetti. Qui, usiamo OWASP Juice Shop come esempio:
./scripts/audit/run_audit.sh juice-shop/juice-shop
⚠️ Nota: i taskflow di auditing possono richiedere diverse ore per essere eseguiti, specialmente su progetti più grandi, e generano molte richieste AI, che possono costare una somma non trascurabile di denaro. Per impostazione predefinita, i taskflow utilizzano l'API Copilot. Puoi trovare maggiori informazioni sulla fatturazione di Copilot qui. In alternativa, puoi utilizzare una diversa API AI impostando la variabile d'ambiente
AI_API_ENDPOINT, come spiegato qui.
I risultati dell'audit vengono scritti in un database SQLite, che viene aperto automaticamente in un visualizzatore SQLite al termine dell'esecuzione. I risultati si trovano nella tabella denominata "audit_result". La tabella ha una colonna denominata "has_vulnerability", con segni di spunta nelle righe che hanno maggiori probabilità di essere vulnerabilità autentiche.
Il workflow di audit riconosce applicazioni mobile Android, iOS e cross-platform insieme ad applicazioni web e librerie. La raccolta dei punti di ingresso mobile registra componenti Android esportati, deep link, URL scheme, Universal Link, estensioni dell'app, e bridge JavaScript WebView, inclusi i relativi permessi, stato di esportazione e filtri di input.
L'audit runner raccoglie questi metadati prima della classificazione, che applica una
guida specifica per il mobile ai componenti contrassegnati come applicazioni mobile. Le opzioni esistenti --advisory e -m si applicano anche alle esecuzioni mobile.
Entrambi i taskflow per i punti di ingresso mobile utilizzano il toolbox di accesso al codice basato su container e richiedono Docker.
I metadati mobile sono memorizzati nella tabella mobile_entry_point. I database di contesto esistenti acquisiscono automaticamente la colonna
nullable application.is_mobile_app senza eliminare i risultati esistenti.
Consigliamo di eseguire i taskflow in un ambiente sandbox. I GitHub Codespaces sono comodi, oppure se preferisci puoi usare lo script run_seclab_agent.sh per eseguire un container docker del seclab-taskflow-agent come descritto qui. Nota che questo script deve essere eseguito dalla directory principale del repo, e il file .env con le variabili d'ambiente per i server MCP personalizzati per memorizzare i dati deve trovarsi nella stessa directory.
Per prima cosa, crea un file .env nella directory principale del repo. Per run_seclab_agent.sh puoi usare:
MEMCACHE_STATE_DIR=/app/data
CODEQL_DBS_BASE_PATH=/app/data
DATA_DIR=/app/data
LOG_DIR=/app/logs
La variabile MEMCACHE_STATE_DIR è necessaria per persistere alcuni dati intermedi nella memcache, DATA_DIR è necessaria per vari server mcp per memorizzare risultati intermedi, e LOG_DIR è usata per memorizzare i file di log generati dai server. Queste possono essere impostate in un file .env nella directory principale. Se non vengono impostate variabili d'ambiente per i server MCP personalizzati, le cartelle rilevanti verranno create automaticamente. La posizione dipende dalla piattaforma ed è impostata da platformdirs.
Inoltre, gli endpoint e i segreti delle API AI devono essere configurati tramite variabili d'ambiente o segreti di Codespace. In particolare, le variabili d'ambiente AI_API_TOKEN e AI_API_ENDPOINT devono essere impostate sugli endpoint e le credenziali appropriati delle API AI. Se non impostato, il valore predefinito di AI_API_ENDPOINT è GitHub Copilot:
AI_API_ENDPOINT="https://api.githubcopilot.com"
Inoltre, anche la variabile d'ambiente GH_TOKEN deve essere impostata per consentire l'interazione con l'API di GitHub, come il recupero di contenuti, la creazione di issue, ecc.
I singoli taskflow possono richiedere una configurazione aggiuntiva; fai riferimento al README.md nelle sottodirectory pertinenti per ulteriori requisiti.
Dopo aver impostato le variabili d'ambiente rilevanti, esegui un taskflow di esempio 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 è un repository complementare al repository SecLab Taskflow Agent. SecLab Taskflow Agent è un framework agentico sperimentale mantenuto da GitHub Security Lab. Questo repository fornisce taskflow di esempio e risorse di supporto per l'uso con il SecLab Taskflow Agent. Stiamo usando l'agente e questi taskflow per sperimentare l'uso di AI Agent per scopi di sicurezza, come l'auditing del codice alla ricerca di vulnerabilità o il triage delle issue.
Ci piacerebbe ricevere il tuo feedback. Per favore crea una issue per inviarci una richiesta di funzionalità o una segnalazione di bug. Accogliamo anche pull request (vedi le nostre linee guida per i contributi per maggiori informazioni se desideri contribuire).
Le immagini container da ghcr.io/githubsecuritylab/ usano il tag latest.
Poiché questo tag è mutabile, un'immagine memorizzata nella cache locale può diventare obsoleta e
Docker potrebbe continuare a usarla invece dell'immagine corrente del registry. Rimuovi le
immagini locali prima di eseguire un taskflow quando devi assicurarti che Docker scarichi
le versioni più recenti:
docker rmi -f $(docker images --format '{{.Repository}}:{{.Tag}}' | grep '^ghcr.io/githubsecuritylab/')
Questo progetto è concesso in licenza secondo i termini della licenza MIT. Fai riferimento al file LICENSE per i termini completi.