Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
iac-scan-runner — Dienst, der Ihre Infrastructure as Code auf häufige Schwachstellen scannt. | Kitploit
Tools/GitHubGitHub/xlab-si/iac-scan-runner
Cloud-Infrastruktur-SicherheitSchwachstellenscannerKonfigurationsprüfungDevSecOpsAPI-Sicherheit
GitHubxlab-si/iac-scan-runner

iac-scan-runner

Dienst, der Ihre Infrastructure as Code auf häufige Schwachstellen scannt.

Repository anzeigen
4935vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Webseite
Teilen

IaC Scan Runner

Dienst, der Ihre Infrastructure as Code auf häufige Schwachstellen scannt.

GitHub Workflow Status Docker Image Version (latest by date) PyPI Test PyPI

AspektInformation
ToolnameIaC Scan Runner
Docker-Imagexscanner/runner
PyPI-Paketiac-scan-runner
Dokumentationdocs
Kontakt[email protected]

Inhaltsverzeichnis

  • Beschreibung
  • Ausführung
    • Mit Docker ausführen
    • Mit CLI ausführen
    • Aus dem Quellcode ausführen
  • Lizenz
  • Kontakt
  • Danksagung

Zweck und Beschreibung

Der IaC Scan Runner ist ein REST-API-Dienst, der zum Scannen von IaC-Paketen (Infrastructure as Code) und zur Durchführung verschiedener Code-Checks verwendet wird, um mögliche Schwachstellen und Verbesserungen zu finden. Weitere Informationen finden Sie in den docs.

Ausführung

In diesem Abschnitt wird erklärt, wie die REST-API ausgeführt wird.

Mit Docker ausführen

Sie können die REST-API mit dem öffentlichen Docker-Image xscanner/runner wie folgt ausführen:

root@kitploit:~
# run IaC Scan Runner REST API in a Docker container and 
# navigate to localhost:8080/swagger or localhost:8080/redoc
$ docker run --name iac-scan-runner -p 8080:80 xscanner/runner

Oder Sie können das Image lokal erstellen und wie folgt ausführen:

root@kitploit:~
# build Docker container (it will take some time) 
$ docker build -t iac-scan-runner .
# run IaC Scan Runner REST API in a Docker container and 
# navigate to localhost:8080/swagger or localhost:8080/redoc
$ docker run --name iac-scan-runner -p 8080:80 iac-scan-runner

Mit CLI ausführen

So führen Sie es mit der IaC Scan Runner CLI aus:

root@kitploit:~
# install the CLI
$ python3 -m venv .venv && . .venv/bin/activate
(.venv) $ pip install iac-scan-runner
# print OpenAPI specification
(.venv) $ iac-scan-runner openapi
# install prerequisites
(.venv) $ iac-scan-runner install
# run IaC Scan Runner REST API
(.venv) $ iac-scan-runner run

Aus dem Quellcode ausführen

So führen Sie es lokal aus dem Quellcode aus:

root@kitploit:~
# Export env variables 
export MONGODB_CONNECTION_STRING=mongodb://localhost:27017
export SCAN_PERSISTENCE=enabled
export USER_MANAGEMENT=enabled

# Setup MongoDB
$ docker run --name mongodb -p 27017:27017 mongo

# install prerequisites
$ python3 -m venv .venv && . .venv/bin/activate
(.venv) $ pip install -r requirements.txt
(.venv) $ ./install-checks.sh
# run IaC Scan Runner REST API (add --reload flag to apply code changes on the way)
(.venv) $ uvicorn src.iac_scan_runner.api:app

Verwendung und Beispiele

Dieser Teil zeigt eine der möglichen Bereitstellungen und kurze Beispiele zur Verwendung von API-Aufrufen.

Zuerst klonen wir das Repository iac scan runner und starten die API.

root@kitploit:~
$ git clone https://github.com/xlab-si/iac-scan-runner.git
$ docker compose up

Danach können Sie verschiedene API-Endpunkte durch Aufrufen von localhost:8000 verwenden. Sie können auch zu localhost:8000/swagger oder localhost:8000/redoc navigieren und dort alle API-Endpunkte testen. In diesem Beispiel verwenden wir curl zum Aufrufen von API-Endpunkten.

  1. Erstellen wir ein Projekt namens test.
root@kitploit:~
curl -X 'POST' \
  'http://0.0.0.0/project?creator_id=test' \
  -H 'accept: application/json' \
  -d ''

Die Projekt-ID wird uns zurückgegeben. In diesem Beispiel ist die Projekt-ID 1e7b2a91-2896-40fd-8d53-83db56088026.

  1. Angenommen, wir möchten alle Prüfungen außer ansible-lint initiieren. Deaktivieren wir es.
root@kitploit:~
curl -X 'PUT' \
  'http://0.0.0.0:8000/projects/1e7b2a91-2896-40fd-8d53-83db56088026/checks/ansible-lint/disable' \
  -H 'accept: application/json'
  1. Nachdem das Projekt konfiguriert ist, können wir einfach Dateien auswählen, die wir scannen möchten, und diese zippen. Damit IaC-Scan-Runner funktioniert, müssen die Dateien als komprimierte Archive (normalerweise ZIP-Dateien) vorliegen. In diesem Fall ist der Antworttyp json, es ist jedoch möglich, ihn auf html zu ändern.Bitte ändern Sie YOUR.zip in den Pfad Ihrer Datei.
root@kitploit:~
curl -X 'POST' \
  'http://0.0.0.0:8000/projects/1e7b2a91-2896-40fd-8d53-83db56088026/scan?scan_response_type=json' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F '[email protected];type=application/zip'

Das war's.

Erweiterung des Scan-Workflows mit neuen Prüfwerkzeugen

Irgendwann kann es erforderlich sein, neue Prüfwerkzeuge in den Scan-Workflow aufzunehmen, um eine breitere Abdeckung von IaC-Standards und Projekttypen zu ermöglichen. Daher wird in diesem Unterabschnitt eine Folge der erforderlichen Schritte für diesen Zweck identifiziert und beschrieben. Die Schritte müssen jedoch manuell durchgeführt werden, wie beschrieben, aber es ist geplant, dieses Verfahren in Zukunft über die API zu automatisieren und eine benutzerfreundliche Oberfläche bereitzustellen, die den Benutzer beim Importieren neuer Werkzeuge unterstützt, die Teil des verfügbaren Katalogs werden, der den Scan-Workflow ausmacht. Abbildung 16 zeigt die erforderlichen Schritte, die unternommen werden müssen, um den Scan-Workflow um ein neues Werkzeug zu erweitern.

Schritt 1 – Hinzufügen einer werkzeugspezifischen Klasse zum checks-Verzeichnis Zuerst muss eine neue werkzeugspezifische Python-Klasse zum checks-Verzeichnis im Quellcode des IaC Scan Runners hinzugefügt werden: iac-scan-runner/src/iac_scan_runner/checks/new_tool.py
Die Klasse eines neuen Werkzeugs erbt die vorhandene Check-Klasse, die eine Verallgemeinerung der Scan-Workflow-Werkzeuge bereitstellt. Darüber hinaus ist es notwendig, die Implementierung der folgenden Methoden bereitzustellen:

  1. def configure(self, config_filename: Optional[str], secret: Optional[SecretStr])
  2. def run(self, directory: str) Während die erste darauf abzielt, die notwendigen werkzeugspezifischen Parameter bereitzustellen, um es einzurichten (wie Passwörter, Client-IDs und Tokens), legt die andere fest, wie das Werkzeug selbst über API oder CLI aufgerufen wird und seine rohe Ausgabe zurückgegeben wird.

Schritt 2 – Hinzufügen der Check-Tool-Klasseninstanz innerhalb des ScanRunner-Konstruktors Sobald die neue von Check abgeleitete Klasse zum Quellcode des IaC Scan Runners hinzugefügt wurde, muss auch der Quellcode seiner Hauptklasse, genannt ScanRunner, modifiziert werden. Bei Änderungen dieser Klasse ist es erforderlich, zuerst die werkzeugspezifische Klasse zu importieren, eine neue Instanz der werkzeugspezifischen Check-Tool-Klasse zu erstellen und sie zum Wörterbuch der IaC-Checks innerhalb von def init_checks(self) hinzuzufügen. A. Importieren der Check-Tool-Klasse from iac_scan_runner.checks.tfsec import TfsecCheck B. Erstellen einer neuen Instanz des Check-Tool-Objekts innerhalb von init_checks """Initiate predefined check objects""" new_tool = NewToolCheck() C. Hinzufügen zum self.iac_checks-Wörterbuch innerhalb von init_checks

root@kitploit:~
    self.iac_checks = {
        new_tool.name: new_tool,
        …
    }

Schritt 3 – Hinzufügen des Check-Tools zur Kompatibilitätsmatrix innerhalb der Compatibility-Klasse Andererseits sollte auch in der Datei src/iac_scan_runner/compatibility.py das Wörterbuch, das die Kompatibilitätsmatrix darstellt, erweitert werden. Es gibt zwei mögliche Fälle: a) ein neuer Dateityp sollte als Schlüssel hinzugefügt werden, zusammen mit der Liste der relevanten Werkzeuge als Wert; b) ein neues Werkzeug sollte zur Kompatibilitätsliste für den vorhandenen Dateityp hinzugefügt werden.

root@kitploit:~
    compatibility_matrix = {
        "new_type": ["new_tool_1", "new_tool_2"],
        …
        "old_typeK": ["tool_1", …  "tool_N", "new_tool_3"]
    }

Schritt 4 – Bereitstellung der Unterstützung für die Ergebniszusammenfassung Schließlich ist der letzte Schritt in der Sequenz der erforderlichen Modifikationen für die Erweiterung des Scan-Workflows die Modifikation der Klasse ResultsSummary (src/iac_scan_runner/results_summary.py). Genauer gesagt ist es erforderlich, einen Teil des Codes an seine Methode summarize_outcome anzuhängen, der nach bestimmten, werkzeugspezifischen Zeichenfolgen sucht, die verwendet werden können, um zu identifizieren, ob der Check bestanden oder fehlgeschlagen ist. Innerhalb der Schleife, die die kompatiblen Checks durchläuft, sollte für jedes neue Werkzeug die folgende if-else-Struktur eingefügt werden:

root@kitploit:~
        if check == "new_tool":
            if outcome.find("Check pass string") > -1:
                self.outcomes[check]["status"] = "Passed"
                return "Passed"
            else:
                self.outcomes[check]["status"] = "Problems"
                return "Problems"

Lizenz

Dieses Werk ist lizenziert unter der Apache License 2.0.

Kontakt

Sie können das xOpera-Team per E-Mail an [email protected] kontaktieren.

Danksagung

Dieses Projekt wurde aus dem Forschungs- und Innovationsprogramm Horizont 2020 der Europäischen Union im Rahmen des Finanzhilfevertrags Nr. 101000162 (PIACERE) finanziert.

Tool herunterladen