Skip to main content
Security Swarm è il prodotto di Devin per la scansione di sicurezza e la correzione. Crea un modello di minaccia su misura per il tuo codice, indaga e verifica le potenziali vulnerabilità e ti aiuta a correggere i rilevamenti individuati tramite pull request. Può identificare vulnerabilità come l’esecuzione di codice remoto (RCE), SQL injection, path traversal, server-side request forgery (SSRF), bypass delle autorizzazioni, bug di memory safety, vulnerabilità di denial-of-service e altro ancora. Può persino identificare catene di exploit che coinvolgono più file. Security Swarm è un’orchestrazione personalizzata di Devins che chiamiamo Agentic MapReduce. Suddivide la tua repo tra più Devins in parallelo, offrendo un’ampia copertura e indagini approfondite, mantenendo sotto controllo i costi e rendendo conveniente la scansione di codebase di grandi dimensioni. Abbiamo anche valutato Security Swarm su un set di riferimento di vulnerabilità pubblicate tratte dal GitHub Advisory Database.
Per eseguire una scansione:
  • La tua organizzazione deve avere accesso al repository che vuoi analizzare.
  • Devi essere autorizzato a usare le sessioni Devin.
  • Ti serve l’autorizzazione Use code scans.
  • Per configurare una pianificazione Auto Scan, ti servono anche Manage code scans e l’autorizzazione per gestire le automazioni.
Se non vedi Sicurezza nella sidebar o non riesci ad avviare una scansione, chiedi a un amministratore di verificare il tuo ruolo. Per maggiori dettagli, consulta accesso e autorizzazione.

Esegui la tua prima scansione

  1. Apri Sicurezza nella barra laterale sinistra e fai clic su Avvia scansione.
  2. In Singolo repo, scegli una repo da analizzare.
  3. Facoltativamente seleziona un profilo di scansione e un livello di impegno della scansione. Se lasci vuoto il profilo, viene usata la scansione di sicurezza integrata di Security Swarm.
  4. Assicurati che Modalità interattiva sia abilitata.
  5. Fai clic su Esegui scansione.
  6. Quando il modello di minaccia proposto è pronto, esaminalo e fai clic su Va bene, avvia la scansione oppure invia feedback.
  7. Man mano che emergono rilevamenti, esamina le prove e intervieni sui rilevamenti che richiedono attenzione.
Il pannello Nuova scansione offre altre modalità di scansione per analizzare più repository contemporaneamente o importare rilevamenti da uno scanner esistente.
Per scansioni ripetibili, crea un profilo che includa il tuo ambito, il modello di minaccia, i criteri di gravità, i passaggi di convalida e i vincoli di remediation.

Esamina i rilevamenti e intervieni

Apri una scansione per vedere i relativi rilevamenti. La pagina mostra a sinistra un elenco di rilevamenti, raggruppate per gravità, e a destra i dettagli del rilevamento selezionato. Le tab di stato mostrano un conteggio in tempo reale:
  • Open — richiede attenzione.
  • Reviewed — è stata esaminata e non richiede più interventi.
  • Dismissed — è stata identificata come falso positivo o duplicato.
Mentre una scansione è in corso, la pagina si aggiorna automaticamente man mano che arrivano nuovi rilevamenti.
Reviewed è uno stato del flusso di lavoro, non la conferma che una soluzione sia stata integrata. Un rilevamento può essere contrassegnato manualmente come Reviewed oppure quando una scansione successiva determina che non è più presente.

Cosa include un rilevamento

Un rilevamento include:
  • Gravità, stato, sfruttabilità, livello di attendibilità e categoria.
  • Il percorso del file e gli snippet di codice interessati.
  • Una descrizione del problema e una raccomandazione per la correzione.
  • Un risultato della convalida nella sandbox, prove a supporto e artefatti di convalida.
  • Le pull request associate e il loro stato: aperte, integrate o chiuse.
  • I responsabili del codice e le note, quando disponibili.
Considera un pattern di codice rischioso come un indizio, non come prova di una vulnerabilità. Verifica che il rilevamento identifichi un percorso effettivamente raggiungibile a partire da input controllato da un attaccante, tenga conto dei controlli di convalida e autorizzazione e spieghi un impatto concreto sulla sicurezza.

Intervenire su un rilevamento

Avvia una sessione di Devin per risolvere il problema e aprire una pull request. La sessione e la pull request risultante vengono registrate nel rilevamento.

Profili di scansione

Un profilo di scansione definisce l’ambito della scansione e fornisce indicazioni per ogni fase del processo. Ogni scansione può usare un solo profilo. Per valutare un repository rispetto a più profili di attaccante o categorie di minacce, esegui scansioni separate con profili diversi.
Un modello di minaccia specifico è uno dei modi più efficaci per mantenere una copertura coerente tra le scansioni. Definisci l’attaccante, le risorse sensibili, i confini di attendibilità, i punti di accesso principali e le esclusioni esplicite.
Gestisci i profili dalla scheda Profili nella pagina Sicurezza.

Crea un profilo

Puoi creare un profilo in due modi:
  • Genera con Devin — descrivi l’applicazione, le minacce, l’ambito, le esclusioni e i criteri di gravità in linguaggio naturale. Devin crea una bozza del profilo per te.
  • Crea manualmente — compila personalmente ogni campo del profilo.
Generare con Devin è un utile punto di partenza, ma controlla ogni campo generato prima di usare il profilo. Se lasci vuoto un campo di istruzioni facoltativo, verrà applicato il comportamento predefinito di Security Swarm per quella fase.

Informazioni di base

  • Nome del profilo — indica la superficie dell’applicazione o la categoria di minaccia, anziché il team che esegue la scansione. Esempio: Autorizzazione API multi-tenant.
  • Descrizione — riassumi l’ambito del profilo e il relativo obiettivo di sicurezza. Esempio: Individua vulnerabilità di autenticazione, autorizzazione e isolamento del tenant nell'API pubblica.
Gli esempi seguenti confluiscono in un unico profilo per un’API multi-tenant. Adatta i confini, i comandi e i criteri di gravità alla tua applicazione.

Modello di minaccia

Descrivi l’attaccante, gli asset sensibili, i confini di attendibilità, i principali punti di ingresso e tutto ciò che è esplicitamente fuori dall’ambito. Queste indicazioni definiscono le regole che Devin genera prima dell’avvio dell’indagine.

Indicazioni per l’indagine

Definisci come Devin deve esaminare un potenziale problema e quali evidenze deve raccogliere. Chiedigli di tenere conto delle mitigazioni esistenti e di distinguere le vulnerabilità sfruttabili dai rischi puramente teorici.

Indicazioni per il triage

Definisci come Devin deve eliminare i duplicati e assegnare le priorità ai rilevamenti. Includi i criteri di gravità in modo che i rilevamenti siano in linea con gli standard della tua organizzazione.

Convalida nella sandbox

Abilita la convalida nella sandbox quando Devin può compilare ed eseguire test sull’applicazione in sicurezza. Spiega come avviare l’applicazione, creare dati di test, autenticarsi e dimostrare il perimetro di sicurezza atteso. Utilizza Validate severities per scegliere la severità minima che Devin convalida in una sandbox. Solo i rilevamenti pari o superiori a quella severità avviano una sessione di convalida; per impostazione predefinita vengono convalidati i rilevamenti critici, alti e medi. Alza la soglia a critica o alta per dedicare l’attività di convalida solo ai rilevamenti più importanti.
Una convalida non riuscita non sempre smentisce un rilevamento. Esamina il risultato della convalida e gli artefatti per determinare se una mitigazione efficace ha bloccato l’exploit o se l’ambiente configurato ha impedito a Devin di completare il test.
La convalida nella sandbox avvia una sessione separata di Devin per ogni rilevamento. Consulta Configure convalida nella sandbox per indicazioni sull’ambiente.

Report

Attiva i report quando ti serve un riepilogo al termine della scansione. Specifica il pubblico di destinazione e le informazioni da mettere in evidenza nel report.

Indicazioni per la correzione

Specifica i vincoli che Devin deve rispettare quando assegni una segnalazione per la correzione. Includi le aspettative di testing, i requisiti di compatibilità e le pratiche da evitare.

Input avanzati

Apri Advanced per gestire l’ambito dei file e i batch di analisi:
  • Include globs — limita la scansione ai file corrispondenti. Per esempio, apps/api/** e packages/auth/**.
  • Exclude globs — rimuovi i file non pertinenti dall’ambito selezionato. Per esempio, **/generated/**, **/vendor/** e **/fixtures/**.
  • Batch size — controlla quanti file con segnali vengono raggruppati in ciascun batch di analisi. Lascia il valore predefinito, a meno che tu non voglia ottimizzare intenzionalmente il comportamento della scansione. L’intervallo consentito è 1–500; il valore predefinito è 5.
Esclusioni troppo ampie possono nascondere codice vulnerabile o rimuovere il contesto necessario per comprendere un flusso di dati. Escludi solo i file che sei certo non siano pertinenti per questo profilo.

Profili di ingestione

La modalità di un profile viene fissata al momento della creazione. I profile Discover (il default) analizzano il codice per individuare nuovi issue e usano i campi di guidance descritti sopra. I profile Ingest importano findings già in tuo possesso, provenienti da un altro scanner o report, e sostituiscono gli input relativi ad ambito e modello di minaccia con due campi di guidance:
  • Ingestion source — dove risiedono i findings esistenti e come Devin deve recuperarli. Per esempio, recuperare gli alert aperti dal code scanning di GitHub tramite la sua API REST, oppure leggere un report Semgrep committato in reports/semgrep.json. Fai riferimento alle credential tramite il nome del secret dell’organizzazione, anziché incollare un token.
  • Post-ingestion triage — come Devin deve effettuare il triage dei findings importati: cosa scartare, a cosa cambiare priorità e cosa considerare duplicato. Per esempio, scartare i findings nelle fixture di test e considerare duplicati i findings con lo stesso ID di Rule e lo stesso file.
Consulta Ingerire findings esistenti per sapere come eseguire uno scan con un profile di ingestione. Il tab Profiles può essere filtrato per scan type e per mode (Discover o Ingest).

Profili dell’organizzazione e di Enterprise

I nuovi profili sono limitati all’organizzazione. In seguito, gli amministratori di Enterprise possono modificare la visibilità di un profilo in Enterprise, rendendolo disponibile in tutta l’Enterprise. I profili Enterprise possono essere modificati o archiviati solo dagli amministratori di Enterprise. Gli altri utenti con accesso a Sicurezza possono visualizzarli e usarli, ma non possono modificarli.

Modalità interattiva

Con Modalità interattiva abilitata, Devin elabora una proposta di modello di minaccia e si ferma prima dell’analisi. La pagina di scansione mostra le regole proposte e ti consente di:
  • Sembra tutto corretto, avvia la scansione — accetta il modello di minaccia e avvia l’analisi.
  • Fornisci feedback sul modello di minaccia — descrivi cosa aggiungere, rimuovere o mettere in evidenza, quindi rivedi il modello aggiornato.
Usa la modalità interattiva per la prima scansione di un repository e ogni volta che la sua superficie di rischio o il suo profilo cambiano in modo significativo. Una volta che il profilo recepisce le indicazioni approvate, le scansioni di routine possono essere eseguite senza questa pausa.

Configura la convalida nella sandbox

La convalida nella sandbox viene eseguita solo quando il profilo selezionato ha la convalida nella sandbox abilitata e contiene istruzioni di convalida. Fornisci a Devin informazioni sufficienti per compilare, eseguire, inizializzare e autenticare l’applicazione nel suo sandbox. Se il repository ha una configurazione dichiarativa, Devin può riutilizzare la configurazione di build e installazione. In caso contrario, aggiungi alle istruzioni di convalida del profilo i comandi di configurazione richiesti.
Non inserire credenziali di produzione o valori segreti direttamente nelle istruzioni del profilo. Usa account di test non di produzione e credenziali già fornite tramite la configurazione dell’ambiente della tua organizzazione.

Scansione su larga scala

Scegliere una modalità di scan

Il pannello New Scan offre quattro modalità di scan: L’interactive mode è disponibile per gli scan di sicurezza single-repo e multi-repo ed è abilitata per default in uno scan single-repo se la tua organizzazione non ha ancora eseguito alcuno scan.

Livello di approfondimento dello scan

Ogni scan viene eseguito con uno di due livelli di approfondimento, selezionabili in Scan effort al momento dell’avvio:
  • Normal (default) — uno scan più rapido, che utilizza batch di investigation più ampi.
  • Deep — segue ogni finding più a fondo all’interno della codebase per la massima accuratezza, a fronte di un cost superiore e di un runtime più lungo.
Usa Normal per gli scan di routine e incrementali, e Deep per il primo scan di una codebase ad alto rischio o per una review periodica approfondita. Il livello di approfondimento utilizzato da uno scan completato è indicato nel relativo header.

Eseguire una scansione in blocco di un’organizzazione

Usa Bulk scan nel pannello New Scan per mettere in coda una scansione separata per ogni repository corrispondente:
  1. Inserisci facoltativamente un Repository name filter.
  2. Seleziona facoltativamente un profilo di scansione.
  3. Lascia abilitato Skip already-scanned repos per escludere i repository già sottoposti a scansione con il profilo selezionato.
  4. Fai clic su Anteprima.
  5. Controlla i repository trovati, deseleziona quelli che non vuoi sottoporre a scansione e conferma.
L’anteprima è una simulazione. Se modifichi il filtro, il profilo o l’impostazione skip, l’anteprima non è più valida e non puoi confermare un elenco non aggiornato.

Ingerire findings esistenti

Usa Ingest findings per portare in Security Swarm i risultati di un altro scanner, così da poterli sottoporre a triage, validare e correggere insieme ai findings di Devin:
  1. Seleziona uno o più repository a cui appartengono i findings.
  2. Seleziona un profilo di ingestione. Il profilo indica a Devin dove si trovano i findings e come sottoporli a triage dopo l’importazione.
  3. Facoltativamente, allega fino a 10 report o export (ad esempio file SARIF, CSV o PDF) da cui Devin possa leggere i findings. Se la sorgente di ingestione del profilo punta già a un’API o a un file nel repository, non serve alcun allegato.
  4. Facoltativamente, abilita l’Interactive mode. Dopo l’importazione, Devin si mette in pausa per permetterti di rivedere ciò che è stato ingerito, inclusi eventuali duplicati, e richiedere correzioni prima di proseguire.
  5. Scegli uno scan effort e clicca su Run Scan.
I findings importati compaiono nella pagina della scansione come qualsiasi altro finding, quindi puoi assegnarli a Devin, modificarli o cambiarne lo status. L’elenco delle scansioni può essere filtrato per mode, così da mostrare solo le scansioni Discover o solo quelle Ingest.
Il caricamento degli allegati passa dall’attachments API, quindi anche l’ingestione da file caricati richiede Use Devin sessions. I code scan di ingestione possono essere avviati anche dall’API.

Auto Scan

Auto Scan analizza periodicamente i commit aggiunti dopo l’ultima scansione completata. Puoi configurarlo:
  • Durante l’avvio di una scansione di un singolo repository, selezionando una pianificazione giornaliera, settimanale, mensile o personalizzata.
  • Da una scansione esistente, aggiungendo, modificando o disattivando la relativa pianificazione, oppure facendo clic su Scansiona ora per eseguirla immediatamente.
Gli orari della pianificazione sono visualizzati nel tuo fuso orario locale.
Auto Scan è disponibile solo quando le automazioni sono abilitate per la tua organizzazione. Per configurarlo sono necessari sia Gestire le scansioni del codice sia l’autorizzazione a gestire le automazioni.
Le scansioni Auto Scan sono incrementali: ogni esecuzione esamina solo i commit aggiunti dall’ultima scansione completata. Facendo invece clic su Avvia scansione, per impostazione predefinita viene eseguita una scansione completa dell’ambito del repository.

Scansiona i nuovi commit

Fai clic su Scansiona i nuovi commit in una scansione completata per analizzare i commit aggiunti dall’ultimo commit scansionato. Auto Scan utilizza lo stesso comportamento incrementale, quindi le scansioni successive sono meno costose rispetto a scansionare ripetutamente l’intero ambito del repository. Ogni run completo o incrementale viene registrato nella cronologia delle scansioni della scansione.

Avviare le scansioni dalle automazioni

Le automazioni includono un tipo di agent Code scan per le scansioni che devono essere eseguite secondo una pianificazione o in risposta a un evento. Invece di avviare una sessione Devin con un prompt, l’automazione avvia direttamente la scansione. Scegli una delle due azioni:
  • Start code scan — avvia una nuova scansione della repo o delle repo configurate, con il tipo di scansione, il profilo e l’effort impostati, ogni volta che l’automazione si attiva.
  • Scan new commits — estende una scansione esistente con un run incrementale che copre i commit aggiunti dall’ultimo run completato. La scansione deve già avere un run completato.
Auto Scan è un’automazione preconfigurata di questo secondo tipo. Usa la pagina delle automazioni quando ti servono altri trigger, come un webhook, oppure quando vuoi gestire tutte le scansioni pianificate in un unico posto. Puoi anche avviare una scansione dal compositore di una sessione con il comando /scan. Per le scansioni di performance, test coverage, dead code e altre scansioni non legate alla sicurezza, consulta Code Scans.

Gestire e monitorare le scansioni

A seconda della scansione e del relativo profilo, l’intestazione della scansione può includere:
  • Reports — scarica i report generati per la scansione.
  • Usage — visualizza gli ACU consumati, il numero di sessioni, la durata della scansione e le statistiche delle pull request.
  • Session — apri la sessione principale di Devin che ha eseguito la scansione.
  • Scan history — visualizza ogni run della scansione. Vedi Scan history.
  • Change profile — cambia il profilo utilizzato dai run futuri. Vedi Cambiare il profilo di una scansione.
  • Export as CSV — esporta i rilevamenti della scansione.
  • Archive o Unarchive — nascondi la scansione dall’elenco predefinito o ripristinala nell’elenco predefinito.
  • Scan new commits — avvia una scansione incrementale.
Le scansioni vengono eseguite come sessioni Devin e consumano ACU. L’elenco delle scansioni nella pagina Sicurezza può essere filtrato per status, stato della pull request e mode della scansione (Discover o Ingest).

Scan history

Apri Scan history su uno scan per vedere tutte le esecuzioni, dalla più recente. Ogni run indica se si trattava di un Full scan o Incremental, il relativo status, l’effort e il profile utilizzati, gli ACU consumati e un collegamento alla sessione Devin corrispondente. Usalo per verificare che Auto Scan venga eseguito secondo la pianificazione e per confrontare il costo dei run completi e incrementali.

Modificare il profile di un code scan

Fai clic su Change profile in un code scan completato per selezionare un profile diverso. Il nuovo profile viene applicato ai run successivi del code scan, inclusi Auto Scan e Scan new commits; i run già completati e i relativi finding restano invariati. Non è possibile cambiare il profile mentre un code scan è in corso. Per modificare un profile è necessario il permesso Use code scans.

Dashboard di Sicurezza

Dopo il completamento della prima scansione dell’organizzazione, la pagina Sicurezza mostra una dashboard a livello di organizzazione relativa agli ultimi 7, 30 o 90 giorni:
  • Statistiche delle pull request — pull request create, integrate, aperte e chiuse, oltre al tasso di merge.
  • Andamento dei rilevamenti — rilevamenti raggruppati per gravità nel periodo selezionato.

Accesso e autorizzazioni

L’accesso a Sicurezza è controllato tramite le autorizzazioni per le code scan nell’editor dei ruoli: Per avviare code scan, inviare feedback e assegnare rilevamenti a Devin è inoltre necessaria l’autorizzazione a usare le sessioni Devin. Auto Scan richiede anche l’autorizzazione a gestire le automazioni. Per impostazione predefinita, i membri non ricevono autorizzazioni per le code scan. I proprietari dispongono di tutte le autorizzazioni e gli amministratori possono concederle ai membri tramite i ruoli personalizzati. Le stesse autorizzazioni per le code scan regolano l’API Code Scans (le chiamate API non richiedono inoltre l’autorizzazione per le sessioni, tranne il caricamento dei report dello scanner per le code scan di ingestione, che avviene tramite l’API degli allegati e richiede Usare le sessioni Devin). Gli utenti di servizio o i token di accesso personale con Usare le code scan possono avviare code scan, avviare code scan di ingestione e correggere i rilevamenti; Visualizzare le code scan consente di elencare le code scan, visualizzare i profili e le relative linee guida, i rilevamenti e le metriche. Consulta Attivazione di Code Scans tramite l’API Devin per il flusso completo.

Confronta Security Swarm con un altro scanner

Per un confronto utile, assegna a entrambi gli scanner lo stesso ambito, lo stesso modello di minaccia, gli stessi criteri di gravità e gli stessi requisiti di convalida. Altrimenti, le differenze di configurazione possono oscurare le differenze nelle capacità effettive. Usa i profili per definire i criteri di confronto, la modalità interattiva per confermare il modello di minaccia generato e la convalida sandbox per applicare lo stesso standard di evidenza ai rilevamenti segnalati.

FAQ

Security Swarm analizza le potenziali vulnerabilità nel contesto del tuo repository, invece di segnalare pattern rischiosi in modo isolato. Devin traccia i flussi di dati pertinenti, verifica i controlli di convalida e autorizzazione e valuta se il problema ha un impatto concreto sulla sicurezza.Ogni rilevamento include un livello di attendibilità e gli elementi di supporto. Esaminali prima di intervenire, soprattutto quando un rilevamento non è stato convalidato in una sandbox.
Verifica il codice interessato, il punto di ingresso, il flusso di dati, le mitigazioni esistenti, l’impatto dichiarato, l’attendibilità e la sfruttabilità. Quando la convalida nella sandbox è abilitata, esamina anche il risultato della convalida e i relativi artefatti di supporto.Se gli elementi forniti non tengono conto di un controllo o indicano un impatto non supportato, usa Feedback per fornire il contesto mancante per le scansioni future.
La convalida nella sandbox tenta di riprodurre un rilevamento compilando ed eseguendo l’applicazione in un ambiente isolato. Una convalida riuscita fornisce prove più solide della sfruttabilità, mentre una convalida non riuscita può evidenziare presupposti o limitazioni dell’ambiente che richiedono ulteriori verifiche.La convalida nella sandbox è facoltativa e richiede indicazioni per la convalida sufficienti perché Devin possa compilare, eseguire, inizializzare e autenticare l’applicazione in modo sicuro.
Security Swarm analizza in parallelo parti del repository e combina i risultati in una vista dell’intero repository. Questo gli consente di identificare le relazioni tra i componenti, ad esempio un endpoint che espone un identificatore necessario per sfruttarne un altro.Qualsiasi rilevamento concatenato risultante dovrebbe comunque identificare i percorsi di codice pertinenti e spiegare come le singole condizioni si combinano in un impatto concreto.
Security Swarm usa un’analisi agentic, quindi scansioni separate potrebbero non produrre rilevamenti o formulazioni identici. Un ambito ben definito, un modello di minaccia esplicito, criteri di gravità chiari e indicazioni di indagine specifiche aiutano a mantenere coerente la copertura.Raccogli questi requisiti in un profilo di scansione riutilizzabile, usa la modalità interattiva per esaminare il modello di minaccia proposto e fornisci feedback quando un risultato non coglie un contesto importante.
Nessuno scanner di sicurezza può garantire una copertura completa. I risultati dipendono dall’ambito selezionato, dalle indicazioni del profilo, dal contesto del repository disponibile e dalla possibilità di convalidare i rilevamenti nell’ambiente configurato.Esegui scansioni separate per modelli di attaccante o categorie di minaccia distinti, mantieni aggiornati i profili man mano che l’applicazione cambia e usa Security Swarm insieme alle pratiche esistenti di revisione della sicurezza e testing.