View a markdown version of this page

Führen Sie einen Differenzcodescan mit S3 durch - AWS-Sicherheitsagent

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 vongit 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: