Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Führen Sie einen Differenzcodescan mit S3 durch
Führen Sie einen differentiellen Codescan (Diff) durch, um nur die geänderten Zeilen in Ihrem Quellcode zu analysieren, anstatt einen vollständigen Repository-Scan durchzuführen. Differenzscans sind schneller als vollständige Scans und liefern Ergebnisse, die auf bestimmte Codeänderungen abzielen. Sie eignen sich daher ideal für die Validierung vor der Zusammenführung in Entwicklungsworkflows.
Im Gegensatz zur auf Pull-Requests basierenden Codeüberprüfung, die automatisch durch Ereignisse eines Drittanbieters für die Quellcodeverwaltung ausgelöst wird (sieheÜberprüfen Sie die Ergebnisse zur Codesicherheit in Pull-Requests), werden differenzielle Scans programmgesteuert über die AWS Security Agent API oder das SDK initiiert. Sie laden eine einheitliche Diff-Datei auf S3 hoch und verweisen darauf, wenn Sie einen Code-Review-Job starten.
Wie funktionieren Differenzscans
Ein Differenzscan analysiert Ihre Codeänderungen im gesamten Kontext Ihres Repositorys. Wenn Sie eine Ressource zur Codeüberprüfung mit Ihrem auf S3 hochgeladenen Quellcode erstellen, verwendet der Differenzscan das gesamte Repository als Kontext, wobei die Ergebnisse speziell auf die geänderten Zeilen in Ihrem Diff konzentriert werden. Auf diese Weise kann der Scan Sicherheitsprobleme identifizieren, die sich aus der Interaktion Ihrer Änderungen mit vorhandenem Code ergeben — wie z. B. fehlerhafte Authentifizierungsabläufe, unsichere Datenverarbeitung zwischen Modulen oder Änderungen, die bestehende Sicherheitslücken aufdecken.
Der Scanvorgang:. Sie laden eine einheitliche Diff-Datei (die Ausgabe vongit diff) in einen S3-Bucket hoch, der mit Ihrem Agent Space verbunden ist. Sie rufen die StartCodeReviewJob API mit einem diffSource Parameter auf, der auf den S3-Speicherort Ihres Diffs verweist. Der AWS Security Agent analysiert nur den geänderten Code im Vergleich auf Sicherheitslücken und die Einhaltung der Sicherheitsanforderungen Ihres Unternehmens. Die Ergebnisse werden anhand der geänderten Zeilen mit Schweregradeinstufungen, Codepositionen und Anleitungen zur Problembehebung zusammengefasst.
Voraussetzungen
Stellen Sie vor Beginn sicher, dass Sie über Folgendes verfügen:
-
Ein Agentenbereich mit aktivierter Codeüberprüfung (siehe) Codeüberprüfung aktivieren
-
Eine Code-Review-Ressource, die bereits für das Ziel-Repository erstellt wurde, wobei der vollständige Quellcode in den S3-Bucket hochgeladen wurde, der mit Ihrem Agent Space verbunden ist. Das vollständige Repository bietet Kontext, der eine tiefere Analyse der Interaktion Ihrer Änderungen mit vorhandenem Code ermöglicht. Anweisungen Einen Code-Review erstellen zum Erstellen eines Code-Reviews und zum Hochladen von Quellcode finden Sie unter.
-
Ein S3-Bucket, der mit Ihrem Agent Space verbunden ist
-
IAM-Berechtigungen zum Hochladen in den S3-Bucket und zum Aufrufen
securityagent:StartCodeReviewJob -
Eine einheitliche Diff-Datei, die aus Ihren Codeänderungen generiert wurde (z. B. der Ausgabe von
git diff main..feature-branch)
Tipp
Um möglichst genaue Ergebnisse zu erzielen, stellen Sie sicher, dass Ihre Code-Review-Ressource die neueste Version Ihres vollständigen Quellcodes auf S3 hochgeladen hat. Der Diff-Scan verwendet dieses vollständige Repository als Kontext, um Ihre Anwendungsarchitektur, Datenflüsse und bestehende Sicherheitskontrollen bei der Analyse der geänderten Zeilen zu verstehen.
Schritt 1: Generieren Sie eine Diff-Datei
Generieren Sie ein einheitliches Diff, das die Codeänderungen darstellt, die Sie scannen möchten.
git diff main..feature-branch > changes.diff
Alternativ können Sie einen Diff für stufenweise vorgenommene Änderungen generieren:
git diff --cached > changes.diff
Tipp
Die Diff-Datei sollte im einheitlichen Standarddiff-Format vorliegen. Der AWS Security Agent analysiert die Dateipfade und geänderten Zeilen aus den Diff-Headern, um den Umfang seiner Analyse zu ermitteln.
Schritt 2: Laden Sie den Diff auf S3 hoch
Laden Sie die Diff-Datei in einen S3-Bucket hoch, der mit Ihrem Agent Space verbunden ist.
aws s3 cp changes.diff s3://my-security-agent-bucket/diffs/changes.diff
Wichtig
Bei dem S3-Bucket muss es sich um einen Bucket handeln, der bereits mit Ihrem Agent Space verbunden ist. Die Ihrem Agent Space zugeordnete IAM-Servicerolle muss Lesezugriff auf diesen Standort haben. Anweisungen Codeüberprüfung aktivieren zum Verbinden von S3-Buckets finden Sie unter.
Schritt 3: Starten Sie einen Job zur Überprüfung des Differentialcodes
Rufen Sie die StartCodeReviewJob API mit dem diffSource Parameter auf, um einen Differenzscan zu initiieren.
Verwenden der 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"}'
Verwenden des AWS-SDK (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']}")
Verwenden des AWS-SDK (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}`);
Die API kehrt sofort mit einem codeReviewJobId und status von zurückIN_PROGRESS.
Schritt 4: Überwachen Sie den Scan
Fragen Sie den Status des Code-Review-Jobs ab, bis er abgeschlossen ist.
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"
Der Job durchläuft dieselben Phasen wie eine vollständige Codeüberprüfung: Preflight → Statische Analyse → Finalisieren. Differenzscans werden in der Regel schneller abgeschlossen als vollständige Scans, da sie weniger Codezeilen analysieren.
Schritt 5: Überprüfen Sie die Ergebnisse
Nachdem der Job abgeschlossen ist, listen Sie die Ergebnisse für den Code-Review-Job auf.
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"
Jedes Ergebnis beinhaltet:
-
Eine Beschreibung des Sicherheitsproblems
-
Der Schweregrad (Kritisch, Hoch, Mittel oder Niedrig)
-
Code-Positionen, die auf bestimmte Zeilen im Diff verweisen
-
Risikoüberlegung zur Erläuterung der möglichen Auswirkungen
-
Anleitung zur Problembehebung
Weitere Informationen dazu, wie Sie die Ergebnisse verstehen und entsprechend handeln können, finden Sie unterErgebnisse eines Code-Reviews überprüfen.
Kontingente und -Einschränkungen
-
Maximale Anzahl geänderter Dateien in einem Diff: 3.000 Dateien oder 5 MB Gesamtgröße des Diffs
-
Die Ergebnisse sind auf 30 pro Scan begrenzt, priorisiert nach Schweregrad (Kritisch > Hoch > Mittel > Niedrig)
Nächste Schritte
Nach der Ausführung eines Differenzscans:
-
Überprüfen Sie die Ergebnisse und wenden Sie die Hinweise zur Problembehebung an (sieheErgebnisse eines Code-Reviews überprüfen)
-
Aktivieren Sie Kommentare zu Pull-Requests für die automatische Codeüberprüfung bei jeder Pull-Anfrage (siehePull-Request-Code-Review für GitHub Repositorys aktivieren)
-
Führen Sie regelmäßig eine vollständige Codeüberprüfung durch, um Probleme zu erkennen, die nicht auf einzelne Änderungen zurückzuführen sind (sieheEinen Code-Review erstellen)
-
Verwenden Sie die IDE-Integration, um Differenzscans direkt von Ihrer Entwicklungsumgebung aus auszuführen (sieheFühren Sie Code-Sicherheitsscans von Ihrer IDE aus aus)