Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
iac-scan-runner — Service qui analyse votre Infrastructure en tant que Code pour les vulnérabilités courantes | Kitploit
Outils/GitHubGitHub/xlab-si/iac-scan-runner
Sécurité de l'Infrastructure CloudScanners de VulnérabilitésAudit de ConfigurationDevSecOpsSécurité des API
GitHubxlab-si/iac-scan-runner

iac-scan-runner

Service qui analyse votre Infrastructure en tant que Code pour les vulnérabilités courantes

Voir le dépôt
49313il y a 2 ansVérifié par Kitploit
Site web

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

IaC Scan Runner

Service qui scanne votre Infrastructure en tant que Code à la recherche de vulnérabilités courantes.

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

AspectInformation
Nom de l'outilIaC Scan Runner
Image Docker[xscanner/runner]
Paquet PyPI[iac-scan-runner]
Documentation[docs]
Nous contacter[[email protected]]

Table des matières

  • Description
  • Exécution
    • Exécution avec Docker
    • Exécution depuis la CLI
    • Exécution depuis les sources
  • Licence
  • Contact
  • Remerciements

Objectif et description

IaC Scan Runner est un service d'API REST utilisé pour scanner un paquet IaC (Infrastructure en tant que Code) et effectuer différentes vérifications de code afin de trouver d'éventuelles vulnérabilités et améliorations. Consultez la [documentation] pour plus d'informations.

Exécution

Cette section explique comment exécuter l'API REST.

Exécution avec Docker

Vous pouvez exécuter l'API REST en utilisant l'image Docker publique [xscanner/runner] comme suit :

# Exécuter l'API REST IaC Scan Runner dans un conteneur Docker et
# naviguer vers localhost:8080/swagger ou localhost:8080/redoc
$ docker run --name iac-scan-runner -p 8080:80 xscanner/runner

Ou vous pouvez construire l'image localement et l'exécuter ainsi :

# Construire le conteneur Docker (cela prendra du temps)
$ docker build -t iac-scan-runner .
# Exécuter l'API REST IaC Scan Runner dans un conteneur Docker et
# naviguer vers localhost:8080/swagger ou localhost:8080/redoc
$ docker run --name iac-scan-runner -p 8080:80 iac-scan-runner

Exécution depuis la CLI

Pour exécuter en utilisant la CLI IaC Scan Runner :

# Installer la CLI
$ python3 -m venv .venv && . .venv/bin/activate
(.venv) $ pip install iac-scan-runner
# Afficher la spécification OpenAPI
(.venv) $ iac-scan-runner openapi
# Installer les prérequis
(.venv) $ iac-scan-runner install
# Exécuter l'API REST IaC Scan Runner
(.venv) $ iac-scan-runner run

Exécution depuis les sources

Pour exécuter localement depuis les sources :

# Exporter les variables d'environnement
export MONGODB_CONNECTION_STRING=mongodb://localhost:27017
export SCAN_PERSISTENCE=enabled
export USER_MANAGEMENT=enabled

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

# Installer les prérequis
$ python3 -m venv .venv && . .venv/bin/activate
(.venv) $ pip install -r requirements.txt
(.venv) $ ./install-checks.sh
# Exécuter l'API REST IaC Scan Runner (ajouter le flag --reload pour appliquer les modifications de code à la volée)
(.venv) $ uvicorn src.iac_scan_runner.api:app

Utilisation et exemples

Cette partie montrera l'un des déploiements possibles et de courts exemples d'utilisation des appels API.

Nous allons d'abord cloner le dépôt [iac scan runner] et exécuter l'API.

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

Après cela, vous pouvez utiliser différents points de terminaison API en appelant localhost:8000. Vous pouvez également naviguer vers localhost:8000/swagger ou localhost:8000/redoc et tester tous les points de terminaison API là-bas. Dans cet exemple, nous utiliserons curl pour appeler les points de terminaison API.

  1. Créons un projet nommé test.
curl -X 'POST' \
  'http://0.0.0.0/project?creator_id=test' \
  -H 'accept: application/json' \
  -d ''

L'identifiant du projet nous sera retourné. Pour cet exemple, l'identifiant est 1e7b2a91-2896-40fd-8d53-83db56088026.

  1. Par exemple, supposons que nous voulions initier toutes les vérifications sauf ansible-lint. Désactivons-le.
curl -X 'PUT' \
  'http://0.0.0.0:8000/projects/1e7b2a91-2896-40fd-8d53-83db56088026/checks/ansible-lint/disable' \
  -H 'accept: application/json'
  1. Maintenant que le projet est configuré, nous pouvons simplement choisir les fichiers que nous voulons scanner et les ziper. Pour que IaC-Scan-Runner fonctionne, les fichiers doivent être des archives compressées (généralement des fichiers zip). Dans ce cas, le type de réponse sera json, mais il est possible de le changer en html. Veuillez remplacer YOUR.zip par le chemin de votre fichier.
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'

C'est tout.

Étendre le workflow de scan avec de nouveaux outils de vérification

À un certain moment, il peut être nécessaire d'inclure de nouveaux outils de vérification dans le workflow de scan, afin de fournir une couverture plus large des normes IaC et des types de projets. Par conséquent, dans cette sous-section, une séquence d'étapes nécessaires à cette fin est identifiée et décrite. Cependant, les étapes doivent être effectuées manuellement comme décrit, mais il est prévu d'automatiser cette procédure à l'avenir via l'API et de fournir une interface conviviale qui aidera l'utilisateur lors de l'importation de nouveaux outils qui deviendront partie du catalogue disponible constituant le workflow de scan. La figure 16 illustre les étapes nécessaires pour étendre le workflow de scan avec un nouvel outil.

Étape 1 – Ajout d'une classe spécifique à l'outil dans le répertoire checks Tout d'abord, il est nécessaire d'ajouter une nouvelle classe Python spécifique à l'outil dans le répertoire checks du code source d'IaC Scan Runner : iac-scan-runner/src/iac_scan_runner/checks/new_tool.py La classe d'un nouvel outil hérite de la classe Check existante, qui fournit une généralisation des outils du workflow de scan. De plus, il est nécessaire de fournir une implémentation des méthodes suivantes :

  1. def configure(self, config_filename: Optional[str], secret: Optional[SecretStr])
  2. def run(self, directory: str) Alors que la première vise à fournir les paramètres spécifiques à l'outil nécessaires pour le configurer (tels que mots de passe, identifiants clients et jetons), l'autre spécifie comment l'outil lui-même est invoqué via l'API ou la CLI et son résultat brut est retourné.
Télécharger l’outil