Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
iac-scan-runner — Servizio che scansiona la tua Infrastructure as Code per vulnerabilità comuni. | Kitploit
Strumenti/GitHubGitHub/xlab-si/iac-scan-runner
Sicurezza dell'Infrastruttura CloudScanner di VulnerabilitàAudit di ConfigurazioneDevSecOpsSicurezza delle API
GitHubxlab-si/iac-scan-runner

iac-scan-runner

Servizio che scansiona la tua Infrastructure as Code per vulnerabilità comuni.

Vedi Repository
49352 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Sito web
Condividi

IaC Scan Runner

Servizio che scansiona la tua Infrastructure as Code alla ricerca di vulnerabilità comuni.

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

AspettoInformazioni
Nome strumentoIaC Scan Runner
Immagine Dockerxscanner/runner
Pacchetto PyPIiac-scan-runner
Documentazionedocs
Contattaci[email protected]

Indice

  • Descrizione
  • Esecuzione
    • Esecuzione con Docker
    • Esecuzione da CLI
    • Esecuzione dal sorgente
  • Licenza
  • Contatti
  • Riconoscimenti

Scopo e descrizione

IaC Scan Runner è un servizio API REST utilizzato per scansionare pacchetti IaC (Infrastructure as Code) ed eseguire vari controlli del codice al fine di individuare possibili vulnerabilità e miglioramenti. Esplora la [documentazione] per maggiori informazioni.

Esecuzione

Questa sezione spiega come eseguire l'API REST.

Esecuzione con Docker

Puoi eseguire l'API REST utilizzando l'immagine Docker pubblica xscanner/runner come segue:

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

Oppure puoi creare l'immagine localmente ed eseguirla come segue:

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

Esecuzione da CLI

Per eseguire utilizzando la CLI di IaC Scan Runner:

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

Esecuzione dal sorgente

Per eseguire localmente dal sorgente:

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

Utilizzo ed esempi

Questa parte mostrerà uno dei possibili deployment e brevi esempi su come utilizzare le chiamate API.

Per prima cosa cloneremo il repository iac scan runner ed eseguiremo l'API.

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

Dopo di che puoi utilizzare diversi endpoint API chiamando localhost:8000. Puoi anche navigare su localhost:8000/swagger o localhost:8000/redoc e testare tutti gli endpoint API lì. In questo esempio, useremo curl per chiamare gli endpoint API.

  1. Creiamo un progetto chiamato test.
root@kitploit:~
curl -X 'POST' \
  'http://0.0.0.0/project?creator_id=test' \
  -H 'accept: application/json' \
  -d ''

Ci verrà restituito l'ID del progetto. Per questo esempio l'ID del progetto è 1e7b2a91-2896-40fd-8d53-83db56088026.

  1. Per esempio, supponiamo di voler avviare tutti i controlli tranne ansible-lint. Disabilitiamolo.
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. Ora che il progetto è configurato, possiamo semplicemente scegliere i file che vogliamo scansionare e comprimerli. Affinché IaC-Scan-Runner funzioni, i file devono essere archivi compressi (solitamente file zip). In questo caso il tipo di risposta sarà json, ma è possibile cambiarlo in html. Modifica YOUR.zip con il percorso del tuo file.
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'

Questo è tutto.

Estensione del workflow di scansione con nuovi strumenti di controllo

A un certo punto, potrebbe essere necessario includere nuovi strumenti di controllo nel workflow di scansione, con l'obiettivo di fornire una copertura più ampia degli standard IaC e dei tipi di progetto. Pertanto, in questa sottosezione, viene identificata e descritta una sequenza di passaggi necessari a tale scopo. Tuttavia, i passaggi devono essere eseguiti manualmente come descritto, ma si prevede di automatizzare questa procedura in futuro tramite API e fornire un'interfaccia user-friendly che assisterà l'utente durante l'importazione di nuovi strumenti che entreranno a far parte del catalogo disponibile che compone il workflow di scansione. La Figura 16 illustra i passaggi necessari da seguire per estendere il workflow di scansione con un nuovo strumento.

Step 1 – Aggiunta di una classe specifica per lo strumento nella directory checks Innanzitutto, è necessario aggiungere una nuova classe Python specifica per lo strumento nella directory checks all'interno del codice sorgente di IaC Scan Runner: iac-scan-runner/src/iac_scan_runner/checks/new_tool.py
La classe di un nuovo strumento eredita la classe Check esistente, che fornisce una generalizzazione degli strumenti del workflow di scansione. Inoltre, è necessario fornire l'implementazione dei seguenti metodi:

  1. def configure(self, config_filename: Optional[str], secret: Optional[SecretStr])
  2. def run(self, directory: str) Mentre il primo mira a fornire i parametri specifici dello strumento necessari per configurarlo (come password, ID client e token), l'altro specifica come lo strumento stesso viene invocato tramite API o CLI e restituisce il suo output raw.

Step 2 – Aggiunta dell'istanza della classe dello strumento di controllo nel costruttore di ScanRunner Una volta che la nuova classe derivata da Check è stata aggiunta al codice sorgente di IaC Scan Runner, è necessario anche modificare il codice sorgente della sua classe principale, chiamata ScanRunner. Per quanto riguarda le modifiche di questa classe, è necessario prima importare la classe specifica dello strumento, creare una nuova istanza della classe dello strumento di controllo e aggiungerla al dizionario dei controlli IaC all'interno di def init_checks(self). A. Importazione della classe dello strumento di controllo from iac_scan_runner.checks.tfsec import TfsecCheck B. Creazione di una nuova istanza dell'oggetto strumento di controllo all'interno di init_checks """Initiate predefined check objects""" new_tool = NewToolCheck() C. Aggiunta al dizionario self.iac_checks all'interno di init_checks

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

Step 3 – Aggiunta dello strumento di controllo alla matrice di compatibilità all'interno della classe Compatibility Dall'altra parte, all'interno del file src/iac_scan_runner/compatibility.py, anche il dizionario che rappresenta la matrice di compatibilità deve essere esteso. Ci sono due casi possibili: a) un nuovo tipo di file deve essere aggiunto come chiave, insieme alla lista degli strumenti rilevanti come valore; b) un nuovo strumento deve essere aggiunto alla lista di compatibilità per il tipo di file esistente.

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

Step 4 – Fornire il supporto per il riepilogo dei risultati Infine, l'ultimo passo nella sequenza di modifiche necessarie per l'estensione del workflow di scansione è modificare la classe ResultsSummary (src/iac_scan_runner/results_summary.py). Precisamente, è necessario aggiungere una parte di codice al suo metodo summarize_outcome che cercherà stringhe specifiche, tipiche dello strumento, che possono essere utilizzate per identificare se il controllo è stato superato o fallito. All'interno del ciclo che attraversa i controlli compatibili, per ogni nuovo strumento dovrebbe essere inclusa la seguente struttura if-else:

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"

Licenza

Questo lavoro è concesso in licenza secondo i termini della Apache License 2.0.

Contatti

Puoi contattare il team xOpera inviando un'email a [email protected].

Riconoscimenti

Questo progetto ha ricevuto finanziamenti dal programma di ricerca e innovazione Horizon 2020 dell'Unione Europea nell'ambito del Grant Agreement No. 101000162 (PIACERE).

Scarica lo strumento