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.
Stellen Sie mithilfe eines MCP-Servers mit Kiro und anderen Programmierassistenten eine Sicherheitsvalidierung in Echtzeit bereit.
Ivan Girardi und Iker Reina Fuente, Amazon Web Services
Zusammenfassung
Dieses Muster beschreibt, wie ein Model Context Protocol (MCP) -Server implementiert wird, der drei branchenübliche Tools für Sicherheitsscans integriert, um eine umfassende Code-Sicherheitsanalyse zu ermöglichen. Der Server ermöglicht KI-Codierungsassistenten (wie Kiro, Amazon Q Developer und Cline), Codefragmente und Infrastructure-as-Code-Konfigurationen (IaC) automatisch zu scannen. Mit diesen Scans können die Codierungsassistenten dabei helfen, Sicherheitslücken, Fehlkonfigurationen und Compliance-Verstöße zu identifizieren.
KI-Codegeneratoren, die auf Millionen von Codefragmenten trainiert wurden, schaffen einen blinden Fleck in der Sicherheit — wie sicher waren diese Trainingsdaten? Dieses Muster ermöglicht eine Sicherheitsvalidierung in Echtzeit während der Codegenerierung und hilft Entwicklern, potenzielle Sicherheitsprobleme beim Programmieren zu erkennen und zu verstehen. Dieser Ansatz hilft Entwicklern dabei, sowohl direkte Sicherheitslücken als auch vererbte Risiken aufgrund von Abhängigkeiten zu beheben. Durch die Überbrückung der Lücke zwischen KI-Effizienz und Einhaltung von Sicherheitsvorschriften trägt dieses Muster dazu bei, die sichere Einführung von KI-gestützten Entwicklungstools zu ermöglichen.
Dieses Muster hilft Unternehmen dabei, ihre Sicherheitspraktiken bei der Entwicklung durch KI-gestützte Codierungstools zu verbessern und so kontinuierliche Sicherheitsüberprüfungen in mehreren Programmiersprachen und Infrastrukturdefinitionen bereitzustellen. Die Lösung kombiniert die Funktionen der folgenden Tools:
Checkov zum Scannen von IAC-Dateien, einschließlich Terraform- und Kubernetes-Manifestdateien AWS CloudFormation
Semgrep für die Analyse mehrerer Programmiersprachen wie Python JavaScript, Java und andere
Bandit für spezialisiertes Python-Sicherheitsscanning
Zu den wichtigsten Funktionen dieser Lösung gehören:
Delta-Scannen neuer Codesegmente, wodurch der Rechenaufwand reduziert wird
Isolierte Umgebungen mit Sicherheitstools, wodurch eine werkzeugübergreifende Kontamination verhindert wird
Nahtlose Integration mit KI-Codierungsassistenten (Kiro, Amazon Q Developer, Cline und andere)
Sicherheitsfeedback in Echtzeit während der Codegenerierung
Individuell anpassbare Scanregeln zur Einhaltung organisatorischer Vorschriften
Das Pattern bietet eine einheitliche Oberfläche für Sicherheitsscans mit standardisierten Antwortformaten und erleichtert so die Integration von Sicherheitsprüfungen in Entwicklungsabläufe. Das Muster verwendet Python und das MCP-Framework, um automatisiertes Sicherheitsfeedback zu liefern. Dieser Ansatz hilft Entwicklern dabei, Sicherheitsprobleme frühzeitig im Entwicklungsprozess zu erkennen und zu beheben und gleichzeitig anhand detaillierter Ergebnisse mehr über bewährte Sicherheitsverfahren zu erfahren.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktiver AWS-Konto Benutzer mit Zugriff auf Kiro oder Amazon Q Developer, wenn Sie einen dieser Codierungsassistenten verwenden möchten
Vertrautheit mit Tools und Konzepten für Sicherheitsscans
Grundlegendes Verständnis von IaC und Anwendungssicherheit
Einschränkungen
Das Scannen von Banditen ist nur auf Python-Dateien beschränkt.
Das Scannen in Echtzeit kann die Leistung großer Codebasen beeinträchtigen.
Toolspezifische Einschränkungen hängen von den unterstützten Dateiformaten und Sprachen ab.
Zur Validierung der Sicherheitsfeststellungen ist eine manuelle Überprüfung erforderlich.
Für die korrekte Interpretation der Ergebnisse von Sicherheitsscans ist Sicherheitsexpertise erforderlich.
Einige AWS-Services sind nicht in allen verfügbar AWS-Regionen. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie unter AWS Dienste nach Regionen
. Informationen zu bestimmten Endpunkten finden Sie unter Dienstendpunkte und Kontingente. Wählen Sie dort den Link für den Dienst aus.
Produktversionen
Python-Version 3.10 oder höher
Checkov Version 3.0.0 oder höher
Semgrep Version 1.45.0 oder höher
Bandit Version 1.7.5 oder höher
MCP [cli] Version 1.11.0 oder höher
Pydantic Version 1.10.0 oder höher
Loguru Version 0.6.0 oder höher
Architektur
Das folgende Diagramm zeigt die Architektur für diese Lösung.

Das Diagramm zeigt den folgenden Workflow:
Der Entwickler verwendet KI-Assistenten (z. B. Kiro, Cline, Amazon Q Developer oder Roo Code), um Code zu generieren oder zu analysieren. Der KI-Assistent sendet den Code für den Sicherheitsscan.
Der MCP-Sicherheitsscanner-Server verarbeitet die Anfrage, indem er sie an den entsprechenden Spezialscanner weiterleitet: Checkov für IAC-Dateien, Semgrep für die Analyse mehrerer Programmiersprachen oder Bandit für Python-spezifische Sicherheitsscans.
Die Ergebnisse des Scanners mit Sicherheitsergebnissen, Schweregraden, detaillierten Beschreibungen und Lösungsvorschlägen werden über den KI-Assistenten an den Entwickler zurückgesendet.
Es wird eine kontinuierliche Feedback-Schleife eingerichtet, in der der Entwickler eine Sicherheitsvalidierung in Echtzeit erhält, was automatisierte Korrekturen durch KI-Assistenten ermöglicht und bewährte Sicherheitsverfahren während der Entwicklung fördert.
Die Architektur mindert die folgenden allgemeinen Sicherheitsrisiken:
Befehlsinjektion
Sofortige Injektion
Durchqueren von Pfaden
Angriffe auf Abhängigkeiten
Erschöpfung der Ressourcen
Die Architektur mindert diese häufigen Sicherheitsrisiken durch die Implementierung der folgenden bewährten Methoden:
Alle Benutzer- und KI-Modelleingaben werden in temporäre Dateien geschrieben.
Es werden keine direkten Eingaben für Befehle der Befehlszeilenschnittstelle (CLI) bereitgestellt.
Der Dateisystemzugriff ist nur auf temporäre Verzeichnisse und Dateien beschränkt.
Temporäre Dateien werden automatisch bereinigt.
Die Antworten auf das Scannen werden bereinigt.
Die Prozessisolierung, die die Prozessfähigkeiten einschränkt, wird durchgesetzt.
Alle Scanaktivitäten werden protokolliert.
Automatisierung und Skalierung
Das Muster unterstützt die Automatisierung durch die folgenden Funktionen:
Integration mit KI-Codierungsassistenten für automatisches Codescannen
Standardisierte API-Antworten für die automatisierte Verarbeitung
Konfiguration über MCP-Konfigurationsdateien
Support für die Stapelverarbeitung mehrerer Dateien
Skalierbares Scannen in mehreren Programmiersprachen und IaC-Formaten
Der Scanvorgang kann über die bereitgestellten API-Endpunkte automatisiert werden:
scan_with_checkovfür IaC-Scannenscan_with_semgrepfür das Scannen von mehrsprachigem Codescan_with_banditfür Python-spezifisches Scannenget_supported_formatszur Formatvalidierung
Beachten Sie bei der Erweiterung der Scan-Tools die zuvor in diesem Abschnitt beschriebenen Entwurfsprinzipien und bewährten Methoden. Weitere Informationen finden Sie auch unter Bewährte Methoden.
Tools
AWS-Services
Kiro
ist ein agentischer Programmierdienst, der mit Entwicklern zusammenarbeitet, um Eingabeaufforderungen in detaillierte Spezifikationen und dann in funktionierenden Code, Dokumente und Tests umzuwandeln. Die Agenten von Kiro helfen Entwicklern dabei, schwierige Probleme zu lösen und Aufgaben wie die Generierung von Dokumentation und Komponententests zu automatisieren. Amazon Q Developer ist ein generativer KI-gestützter Konversationsassistent, der Ihnen helfen kann, Anwendungen zu verstehen, zu erstellen, zu erweitern und zu betreiben AWS .
Andere Tools
Bandit
ist ein spezialisiertes Python-Sicherheitsscanner-Tool. Es erkennt häufig auftretende Python-Sicherheitsprobleme wie unsichere Funktionen, fest codierte Geheimnisse und Injection-Schwachstellen. Bandit bietet detaillierte Vertrauens- und Schweregradbewertungen. Checkov
ist ein statisches Codeanalyse-Tool, das IaC auf Sicherheits- und Compliance-Fehlkonfigurationen überprüft. Darüber hinaus erkennt Checkov Compliance-Verstöße und bewährte Sicherheitsverfahren. Cline
ist ein KI-gestützter Codierungsassistent, der in VS Code läuft. Loguru
ist eine Datenvalidierungsbibliothek für Python. Model Context Protocol (MCP)
ist ein Open-Source-Framework für die Erstellung von KI-gestützten Entwicklungstools. Pydantic
ist eine Datenvalidierungsbibliothek für Python. Semgrep
analysiert den Quellcode auf Sicherheitslücken und Bugs. Es unterstützt mehrere Programmiersprachen. Semgrep verwendet sicherheitsorientierte Regelsätze für umfassende Analysen. Es bietet detaillierte Vertrauens- und Schweregradbewertungen.
Code-Repository
Der Code für dieses Muster ist im Repository GitHub MCP Security Scanner: Real-Time Protection for AI Code Assistants
Die Repository-Struktur umfasst:
security_scanner_mcp_server/- Implementierung des Hauptserversdocs/- Dokumentation und Demomaterialientests/- Testdateienmcp-config-example.json- Beispiel für eine MCP-Konfigurationrequirements.txt- Projektabhängigkeiten
Best Practices
Implementierung von Sicherheitsscans
Überprüfen Sie die Sicherheitsergebnisse, um Probleme zu validieren und zu priorisieren.
Halten Sie die Scan-Tools (Checkov, Semgrep und Bandit) auf dem neuesten Stand.
Verwenden Sie das MCP-Sicherheitstool dieses Musters in Verbindung mit anderen Sicherheitsmaßnahmen und Tools.
Aktualisieren Sie regelmäßig Sicherheitsregelsätze und -richtlinien.
Verwaltung der Konfiguration
Verwenden Sie die MCP-Konfigurationsdateien in der offiziellen Versionskontrollquelle.
Dokumentieren Sie benutzerdefinierte Regeln und Konfigurationen.
Integration
Integrieren Sie Sicherheitsscans früh in den Entwicklungszyklus.
Richten Sie automatisiertes Scannen in Pre-Commit-Hooks oder in CI/CD-Pipelines (Continuous Integration and Continuous Deployment) ein.
Konfigurieren Sie geeignete Schweregradschwellenwerte für Ihre Umgebung.
Legen Sie klare Verfahren für den Umgang mit Sicherheitsergebnissen fest.
Betriebliche Überlegungen
Überwachen Sie die Scanleistung und den Ressourcenverbrauch.
Implementieren Sie die richtige Fehlerbehandlung und Protokollierung.
Pflegen Sie die Dokumentation der benutzerdefinierten Konfigurationen.
Richten Sie einen Prozess zur Überprüfung und Aktualisierung der Sicherheitsregeln ein.
Beachten Sie außerdem die folgenden bewährten Methoden:
Überprüfen Sie die Sicherheitsergebnisse immer in Ihrem spezifischen Kontext.
Halten Sie die Sicherheitstools und Abhängigkeiten auf dem neuesten Stand.
Verwenden Sie mehrere Sicherheitstools für eine umfassende Abdeckung.
Halten Sie sich in Ihrem Entwicklungsprozess an bewährte Sicherheitsmethoden.
Epen
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Konfigurieren Sie die MCP-Einstellungen. | Sie können die Konfigurationsdateien in Kiro entweder bearbeiten, indem Sie (Option 1) die Konfigurationsdateien manuell suchen oder (Option 2) die Kiro IDE verwenden.
| App-Developer |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Konfigurieren Sie die MCP-Einstellungen. | Gehen Sie wie folgt vor, um die MCP-Einstellungen manuell zu konfigurieren:
| App-Developer |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Konfigurieren Sie die MCP-Einstellungen. | Gehen Sie wie folgt vor, um die MCP-Einstellungen manuell zu konfigurieren:
| App-Developer |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Führen Sie eine Codeanalyse durch. | Gehen Sie wie folgt vor, um eine Codeanalyse mit Python und Bandit durchzuführen:
| App-Developer |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Führen Sie eine Codeanalyse durch. | Gehen Sie wie folgt vor, um eine Codeanalyse mithilfe von Terraform und Checkov durchzuführen:
| App-Developer |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Führen Sie gezieltes Scannen durch. | Im Folgenden finden Sie Beispiele für Anfragen, mit denen Sie einen gezielten Scan durchführen können:
| App-Developer |
Verwenden Sie Sicherheitsscans bei der Codegenerierung. | Gehen Sie wie folgt vor, um Sicherheitslücken mithilfe von Codegenerierungsschleifen zu beheben (in diesem Beispiel wird Kiro als Programmierassistent verwendet):
| App-Developer |
Fehlerbehebung
| Problem | Lösung |
|---|---|
Probleme bei der Einrichtung der Umgebung |
|
Probleme mit dem Scanner |
|
Probleme bei der Integration |
|
Zusätzlicher Support |
|
Zugehörige Ressourcen
AWS Dokumentation
Infrastruktur als Code (AWS Whitepaper Einführung in DevOps on AWS)
Andere Ressourcen AWS
Sonstige Ressourcen
Zusätzliche Informationen
Beispiel für eine MCP-Konfiguration mit aktivierter auto Genehmigung
Ohne autoApprove Konfiguration muss der Benutzer die Genehmigung erteilen, den Code zum Scannen an den MCP-Sicherheitsserver zu senden. Wenn autoApprove konfiguriert, darf der Code-Assistent die Tools ohne Zustimmung des Benutzers aufrufen. Diese Tools werden lokal auf dem Computer ausgeführt, es werden keine Daten gesendet und es wird nur ein Codescan durchgeführt.
Die folgende Konfiguration ermöglicht die automatische Ausführung aller Sicherheitsscan-Funktionen:
{ "mcpServers": { "security-scanner": { "command": "uvx", "args": [ "--from", "git+https://github.com/aws-samples/sample-mcp-security-scanner.git@main", "security_scanner_mcp_server" ], "env": { "FASTMCP_LOG_LEVEL": "ERROR" }, "disabled": false, "autoApprove": [ "scan_with_checkov", "scan_with_semgrep", "scan_with_bandit", "get_supported_formats" ] } } }
Um die Debug-Protokollierung zu aktivieren, setzen Sie "FASTMCP_LOG_LEVEL" auf"DEBUG".
Dateiformate, die von Sicherheitsscan-Tools unterstützt werden
Jedes Sicherheitsscan-Tool in dieser Lösung unterstützt die folgenden Dateiformate:
Checkov (IaC)
Terraform — .tf, .tfvars, .tfstate
CloudFormation — .yaml, .yml, .json, .template
Kubernetes — .yaml, .yml
Dockerfile — Docker-Datei
ARM — .json (Azure-Ressourcenmanager)
Bizeps — .Bizep
Serverlos — .yml, .yaml
Helm — .yaml, .yml, .tpl
GitHub Aktionen — .yml, .yaml
GitLab_ci — .yml, .yaml
Ansible — .yml, .yaml
Semgrep (Quellcode)
Python — .py
JavaScript — .js
TypeScript — .ts
Java — .java
Geh — .go
C — c..
C ++ — .cpp
C# — .cs
Rubin — .rb
PHP — .php
Scala — .scala
Kotlin — .kt
Rost — .rs
Bandit (nur Python)
Python — .py
Demos
Probieren Sie zum Scannen von Code die folgenden Beispielanweisungen mit Ihrem KI-Assistenten aus:
„Scanne das aktuelle Skript und teile mir die Ergebnisse mit.“
„Scannen Sie die Zeilen 20—60 und teilen Sie mir die Ergebnisse mit.“
„Scannen Sie diese Amazon DynamoDB-Tabellenressource und teilen Sie mir das Ergebnis mit.“
Weitere Informationen finden Sie in dieser Demo zum Scannen von Code
Probieren Sie die folgenden Beispielaufforderungen aus, um sicheren Code zu generieren:
„Generieren Sie eine Terraform-Konfiguration, um eine DynamoDB-Tabelle mit aktivierter Verschlüsselung zu erstellen, und scannen Sie sie auf Sicherheitsprobleme.“
„Erstellen Sie eine Python-Lambda-Funktion, die in DynamoDB schreibt, und scannt sie auf Sicherheitslücken.“
„Generieren Sie eine CloudFormation Vorlage für einen S3-Bucket mit den richtigen Sicherheitseinstellungen und stellen Sie sicher, dass er die Sicherheitsüberprüfungen besteht.“
„Schreiben Sie ein Python-Skript, um DynamoDB mit Paginierung abzufragen und nach bewährten Sicherheitsmethoden zu suchen.“
„Erstellen Sie ein Kubernetes-Bereitstellungsmanifest für einen Microservice mit Sicherheitsverstärkung und validieren Sie es.“
Weitere Informationen finden Sie in dieser Demo zur Codegenerierung mit Sicherheitsscanning