Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esegui una scansione del codice differenziale con S3
Esegui una scansione del codice differenziale (diff) per analizzare solo le righe modificate nel codice sorgente, anziché eseguire una scansione completa del repository. Le scansioni differenziali sono più veloci delle scansioni complete e producono risultati mirati a modifiche specifiche del codice, il che le rende ideali per la convalida preliminare all'unione nei flussi di lavoro di sviluppo.
A differenza della revisione del codice basata su pull request, che viene attivata automaticamente dagli eventi dei provider di controllo del codice sorgente di terze parti (vediEsamina i risultati sulla sicurezza del codice nelle richieste pull), le scansioni differenziali vengono avviate a livello di codice tramite l'API o l'SDK di AWS Security Agent. Carichi un file diff unificato su S3 e vi fai riferimento quando inizi un processo di revisione del codice.
Come funzionano le scansioni differenziali
Una scansione differenziale analizza le modifiche al codice nell'intero contesto del repository. Quando crei una risorsa per la revisione del codice con il codice sorgente caricato su S3, la scansione differenziale utilizza l'intero repository come contesto, concentrando i risultati in modo specifico sulle righe modificate nel file diff. Ciò consente alla scansione di identificare i problemi di sicurezza derivanti dal modo in cui le modifiche interagiscono con il codice esistente, come flussi di autenticazione interrotti, gestione non sicura dei dati tra i moduli o modifiche che espongono le vulnerabilità esistenti.
Il processo di scansione:. Carichi un file diff unificato (l'output digit diff) in un bucket S3 collegato al tuo Agent Space. Chiami l'StartCodeReviewJobAPI con un diffSource parametro che punta alla posizione S3 del tuo diff. AWS Security Agent analizza solo il codice modificato nel file diff per verificare le vulnerabilità di sicurezza e la conformità ai requisiti di sicurezza dell'organizzazione. I risultati si riferiscono alle righe modificate, con livelli di gravità, posizioni dei codici e linee guida per la correzione.
Prerequisiti
Prima di iniziare, assicurati di disporre dei seguenti elementi:
-
Un Agent Space con revisione del codice abilitata (vedi) Abilita la revisione del codice
-
Una risorsa per la revisione del codice già creata per il repository di destinazione, con il codice sorgente completo caricato nel bucket S3 collegato all'Agent Space. L'archivio completo fornisce un contesto che consente un'analisi più approfondita del modo in cui le modifiche interagiscono con il codice esistente. Vedi Creare una revisione del codice le istruzioni sulla creazione di una revisione del codice e sul caricamento del codice sorgente.
-
Un bucket S3 collegato al tuo Agent Space
-
Autorizzazioni IAM per il caricamento nel bucket S3 e la chiamata
securityagent:StartCodeReviewJob -
Un file diff unificato generato dalle modifiche al codice (ad esempio, l'output di)
git diff main..feature-branch
Suggerimento
Per risultati più accurati, assicurati che la tua risorsa di revisione del codice abbia la versione più recente del codice sorgente completo caricata su S3. Il diff scan utilizza questo archivio completo come contesto per comprendere l'architettura dell'applicazione, i flussi di dati e i controlli di sicurezza esistenti durante l'analisi delle righe modificate.
Passaggio 1: generare un file diff
Genera un diff unificato che rappresenti le modifiche al codice che desideri scansionare.
git diff main..feature-branch > changes.diff
In alternativa, genera un diff per le modifiche graduali:
git diff --cached > changes.diff
Suggerimento
Il file diff deve essere in formato diff unificato standard. AWS Security Agent analizza i percorsi dei file e le righe modificate dalle intestazioni diff per analizzarne l'analisi.
Passaggio 2: carica il file diff su S3
Carica il file diff in un bucket S3 collegato a Agent Space.
aws s3 cp changes.diff s3://my-security-agent-bucket/diffs/changes.diff
Importante
Il bucket S3 deve essere già connesso al tuo Agent Space. Il ruolo di servizio IAM associato al tuo Agent Space deve avere accesso in lettura a questa posizione. Consulta Abilita la revisione del codice le istruzioni su come collegare i bucket S3.
Fase 3: Inizia un lavoro di revisione del codice differenziale
Chiama l'StartCodeReviewJobAPI con il diffSource parametro per avviare una scansione differenziale.
Utilizzo della AWS CLI
aws securityagent start-code-review-job \
--agent-space-id "your-agent-space-id" \
--code-review-id "your-code-review-id" \
--diff-source '{"s3Uri": "s3://my-security-agent-bucket/diffs/changes.diff"}'
Utilizzo dell'SDK AWS (Python)
import boto3 client = boto3.client('securityagent') response = client.start_code_review_job( agentSpaceId='your-agent-space-id', codeReviewId='your-code-review-id', diffSource={ 's3Uri': 's3://my-security-agent-bucket/diffs/changes.diff' } ) print(f"Job started: {response['codeReviewJobId']}")
Utilizzo dell'SDK AWS () JavaScript/TypeScript
import { SecurityAgentClient, StartCodeReviewJobCommand } from '@aws-sdk/client-securityagent'; const client = new SecurityAgentClient({ region: 'us-east-1' }); const response = await client.send(new StartCodeReviewJobCommand({ agentSpaceId: 'your-agent-space-id', codeReviewId: 'your-code-review-id', diffSource: { s3Uri: 's3://my-security-agent-bucket/diffs/changes.diff', }, })); console.log(`Job started: ${response.codeReviewJobId}`);
L'API ritorna immediatamente con un codeReviewJobId and status ofIN_PROGRESS.
Fase 4: Monitora la scansione
Esamina lo stato del lavoro di revisione del codice fino al suo completamento.
aws securityagent get-code-review-job \ --agent-space-id "your-agent-space-id" \ --code-review-id "your-code-review-id" \ --code-review-job-id "the-job-id"
Il lavoro procede attraverso le stesse fasi di una revisione completa del codice: Preflight → Analisi statica → Finalizzazione. Le scansioni differenziali in genere vengono completate più velocemente delle scansioni complete perché analizzano meno righe di codice.
Fase 5: Esaminare i risultati
Una volta completato il lavoro, elenca i risultati del processo di revisione del codice.
aws securityagent list-findings \ --agent-space-id "your-agent-space-id" \ --code-review-id "your-code-review-id" \ --code-review-job-id "the-job-id"
Ogni risultato include:
-
Una descrizione del problema di sicurezza
-
Il livello di gravità (critico, alto, medio o basso)
-
Posizioni del codice che fanno riferimento a righe specifiche nel diff
-
Ragionamento del rischio che spiega il potenziale impatto
-
Linee guida per la riparazione
Per ulteriori informazioni su come comprendere e agire in base ai risultati, vedereEsamina i risultati di una revisione del codice.
Quote e limiti
-
Numero massimo di file modificati in una differenza: 3.000 file o una dimensione totale del diff di 5 MB
-
I risultati sono limitati a 30 per scansione, con priorità in base alla gravità (Critico > Alto > Medio > Basso)
Fasi successive
Dopo aver eseguito una scansione differenziale:
-
Esamina i risultati e applica le linee guida per la correzione (vedi) Esamina i risultati di una revisione del codice
-
Abilita i commenti delle pull request per la revisione automatica del codice su ogni pull request (vediAbilita la revisione del codice pull request per i GitHub repository)
-
Eseguite periodicamente una revisione completa del codice per individuare eventuali problemi al di fuori delle singole modifiche (vediCreare una revisione del codice)
-
Utilizzate l'integrazione IDE per eseguire scansioni differenziali direttamente dal vostro ambiente di sviluppo (vedi) Esegui scansioni di sicurezza del codice dal tuo IDE