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
kubeclarity — KubeClarity è uno strumento per il rilevamento e la gestione del Software Bill of Materials (SBOM) e delle vulnerabilità delle immagini container e dei filesystem. | Kitploit
Strumenti/GitHubGitHub/openclarity/kubeclarity
Scanner di VulnerabilitàSicurezza dei ContenitoriAnalisi delle VulnerabilitàAudit di ConfigurazioneSicurezza CloudDevSecOpsSicurezza della Supply ChainArchived
GitHubopenclarity/kubeclarity

kubeclarity

KubeClarity è uno strumento per il rilevamento e la gestione del Software Bill of Materials (SBOM) e delle vulnerabilità delle immagini container e dei filesystem.

Vedi Repository
4561 anno 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 →
Condividi

[!IMPORTANT] KubeClarity è stato deprecato e sostituito da openclarity/openclarity.

Consulta il comunicato di rilascio per maggiori informazioni.

Questo progetto non riceve aggiornamenti. Ti invitiamo a migrare.

KubeClarity Logo

KubeClarity è uno strumento per il rilevamento e la gestione della Software Bill Of Materials (SBOM) e delle vulnerabilità di immagini contenitore e filesystem. Esegue scansioni sia su cluster K8s in runtime che su pipeline CI/CD per una maggiore sicurezza della catena di fornitura del software.

Indice

  • Perché?
    • Sfide di rilevamento di SBOM e vulnerabilità
    • Soluzione
  • Funzionalità
    • Generatori di SBOM e scanner di vulnerabilità integrati
  • Architettura
  • Per iniziare
    • Backend KubeClarity
      • Installazione con Helm
      • Disinstallazione con Helm
      • Compilazione ed esecuzione locale con dati demo
    • CLI
      • Installazione
      • Generazione SBOM
      • Scansione vulnerabilità
      • Esportazione dei risultati nel backend KubeClarity
  • Configurazione avanzata
    • Generazione SBOM utilizzando un'immagine docker locale come input
    • Scansione vulnerabilità utilizzando un'immagine docker locale come input
    • Supporto per registry privati per la CLI
    • Supporto per registry privati per la scansione K8s in runtime
    • Unione di SBOM e vulnerabilità tra diverse fasi CI/CD
    • Output di diversi formati SBOM
    • Server scanner remoti per la CLI
  • Limitazioni
  • Roadmap
  • Contribuire
  • Licenza

Perché?

Sfide di rilevamento di SBOM e vulnerabilità

  • Una scansione efficace delle vulnerabilità richiede un rilevamento accurato della Software Bill Of Materials (SBOM):
    • Vari linguaggi di programmazione e gestori di pacchetti
    • Varie distribuzioni di sistemi operativi
    • Le informazioni sulle dipendenze dei pacchetti vengono solitamente rimosse durante la compilazione
  • Qual è il miglior scanner/analizzatore di SBOM?
  • Cosa dovremmo scansionare: repository Git, build, immagini contenitore o runtime?
  • Ogni scanner/analizzatore ha il proprio formato: come confrontare i risultati?
  • Come gestire le SBOM e le vulnerabilità scoperte?
  • In che modo le mie applicazioni sono influenzate da una vulnerabilità appena scoperta?

Soluzione

  • Separare la scansione delle vulnerabilità in 2 fasi:
    • Analisi del contenuto per generare SBOM
    • Scansione della SBOM per le vulnerabilità
  • Creare un'infrastruttura plug-in per:
    • Eseguire più analizzatori di contenuto in parallelo
    • Eseguire più scanner di vulnerabilità in parallelo
  • Scansionare e unire i risultati tra diverse fasi CI utilizzando la CLI di KubeClarity
  • Scansione K8s in runtime per rilevare vulnerabilità scoperte dopo il deployment
  • Raggruppare le risorse scansionate (immagini/directory) in applicazioni definite per navigare nell'albero delle dipendenze degli oggetti (applicazioni, risorse, pacchetti, vulnerabilità)

Funzionalità

  • Dashboard
    • Vulnerabilità correggibili per gravità
    • Top 5 elementi vulnerabili (applicazioni, risorse, pacchetti)
    • Tendenze delle nuove vulnerabilità
    • Conteggio pacchetti per tipo di licenza
    • Conteggio pacchetti per linguaggio di programmazione
    • Contatori generali
  • Applicazioni
    • Rilevamento automatico delle applicazioni in runtime K8s
    • Crea/modifica/elimina applicazioni
    • Per applicazione, navigazione verso:
      • Risorse (immagini/directory)
      • Pacchetti
      • Vulnerabilità
      • Licenze in uso dalle risorse
  • Risorse dell'applicazione (immagini/directory)
    • Per risorsa, navigazione verso:
      • Applicazioni
      • Pacchetti
      • Vulnerabilità
  • Pacchetti
    • Per pacchetto, navigazione verso:
      • Applicazioni
      • Elenco collegabile di risorse e analizzatori SBOM rilevanti
      • Vulnerabilità
  • Vulnerabilità
    • Per vulnerabilità, navigazione verso:
      • Applicazioni
      • Risorse
      • Elenco degli scanner rilevanti
  • Scansione K8s in runtime
    • Scansione su richiesta o pianificata
    • Rilevamento automatico dei namespace di destinazione
    • Avanzamento della scansione e navigazione dei risultati per elemento interessato (applicazioni, risorse, pacchetti, vulnerabilità)
    • CIS Docker benchmark
  • CLI (CI/CD)
    • Generazione SBOM utilizzando più analizzatori di contenuto integrati (Syft, cyclonedx-gomod)
    • Scansione vulnerabilità di SBOM/immagine/directory utilizzando più scanner integrati (Grype, Dependency-track)
    • Unione di SBOM e vulnerabilità tra diverse fasi CI/CD
    • Esportazione dei risultati nel backend KubeClarity
  • API
    • L'API di KubeClarity è disponibile qui

Generatori di SBOM e scanner di vulnerabilità integrati

L'analizzatore di contenuto di KubeClarity si integra con i seguenti generatori di SBOM:

  • Syft
  • Cyclonedx-gomod
  • Trivy

Lo scanner di vulnerabilità di KubeClarity si integra con i seguenti scanner:

  • Grype
  • Dependency-Track
  • Trivy

Architettura

Per iniziare

Backend KubeClarity

Installazione con Helm:

  1. Aggiungere il repository Helm ```shell helm repo add kubeclarity https://openclarity.github.io/kubeclarity

    root@kitploit:~
  2. Salva i valori predefiniti del chart di KubeClarity

    root@kitploit:~
    helm show values kubeclarity/kubeclarity > values.yaml
    
  3. Controlla la configurazione in values.yaml e aggiorna i valori necessari se richiesto. Per abilitare e configurare i generatori di SBOM e gli scanner di vulnerabilità supportati, controlla la configurazione "analyzer" e "scanner" nella sezione "vulnerability-scanner" nei valori di Helm.

  4. Distribuisci KubeClarity con Helm ```shell helm install --values values.yaml --create-namespace kubeclarity kubeclarity/kubeclarity -n kubeclarity

    root@kitploit:~

o per installazione compatibile con OpenShift Restricted SCC: ```shell helm install --values values.yaml --create-namespace kubeclarity kubeclarity/kubeclarity -n kubeclarity --set global.openShiftRestricted=true
--set kubeclarity-postgresql.securityContext.enabled=false --set kubeclarity-postgresql.containerSecurityContext.enabled=false
--set kubeclarity-postgresql.volumePermissions.enabled=true --set kubeclarity-postgresql.volumePermissions.securityContext.runAsUser="auto"
--set kubeclarity-postgresql.shmVolume.chmod.enabled=false

root@kitploit:~
3. Inoltra la porta verso l'interfaccia di KubeClarity:   ```shell
kubectl port-forward -n kubeclarity svc/kubeclarity-kubeclarity 9999:8080
  1. Apri l'interfaccia utente di KubeClarity nel browser: http://localhost:9999/

NOTA
KubeClarity richiede questi permessi K8s:

Disinstallazione tramite Helm:

  1. Helm uninstall ```shell helm uninstall kubeclarity -n kubeclarity

    root@kitploit:~
  2. Pulire le risorse

    Per impostazione predefinita, Helm non rimuoverà i PVC e i PV per i StatefulSets. Eseguire il seguente comando per eliminarli tutti:

    root@kitploit:~
    kubectl delete pvc -l app.kubernetes.io/instance=kubeclarity -n kubeclarity
    

Compilare ed eseguire localmente con dati dimostrativi

  1. Compilare l'interfaccia utente e il backend e avviare il backend localmente (2 opzioni):

    1. Usando docker:
      1. Compilare interfaccia utente e backend (il tag dell'immagine è impostato usando VERSION):
        root@kitploit:~
        VERSION=test make docker-backend
        
      2. Eseguire il backend con dati dimostrativi:
        root@kitploit:~
        docker run -p 8080:8080 -e FAKE_RUNTIME_SCANNER=true -e FAKE_DATA=true -e ENABLE_DB_INFO_LOGS=true -e DATABASE_DRIVER=LOCAL ghcr.io/openclarity/kubeclarity:test run
        
    2. Compilazione locale:
      1. Compilare interfaccia utente e backend
        root@kitploit:~
        make ui && make backend
        
      2. Copiare il sito compilato:
        root@kitploit:~
        cp -r ./ui/build ./site
        
      3. Eseguire il backend localmente con dati dimostrativi:
        root@kitploit:~
        FAKE_RUNTIME_SCANNER=true DATABASE_DRIVER=LOCAL FAKE_DATA=true ENABLE_DB_INFO_LOGS=true ./backend/bin/backend run
        
  2. Aprire l'interfaccia utente di KubeClarity nel browser: http://localhost:8080/

CLI

KubeClarity include una CLI che può essere eseguita localmente ed è particolarmente utile per le pipeline CI/CD. Permette di analizzare immagini e directory per generare SBOM e scansionarlo per vulnerabilità. I risultati possono essere esportati nel backend di KubeClarity.

Installazione

Distribuzione binaria

Scaricare la distribuzione della release per il proprio sistema operativo dalla pagina delle release

Estrarre il binario kubeclarity-cli, aggiungerlo al PATH e si è pronti all'uso!

Immagine Docker

Un'immagine Docker è disponibile su ghcr.io/openclarity/kubeclarity-cli con l'elenco dei tag disponibili qui.

Compilazione locale

``` make cli ``` Copia `./cli/bin/cli` nel tuo PATH con il nome `kubeclarity-cli`.

Generazione SBOM

Utilizzo:``` kubeclarity-cli analyze <image/directory name> --input-type <dir|file|image(default)> -o

root@kitploit:~
Esempio:```
kubeclarity-cli analyze --input-type image nginx:latest -o nginx.sbom

Opzionalmente, è possibile configurare un elenco degli analizzatori di contenuti da utilizzare tramite la variabile d'ambiente ANALYZER_LIST separata da uno spazio (es. ANALYZER_LIST="<nome analizzatore 1> <nome analizzatore 2>")

Esempio:``` ANALYZER_LIST="syft gomod" kubeclarity-cli analyze --input-type image nginx:latest -o nginx.sbom

root@kitploit:~
### Scansione delle vulnerabilità

Utilizzo:```
kubeclarity-cli scan <image/sbom/directoty/file name> --input-type <sbom|dir|file|image(default)> -f <output file>

Esempio:``` kubeclarity-cli scan nginx.sbom --input-type sbom

root@kitploit:~
Opzionalmente, è possibile configurare un elenco degli scanner di vulnerabilità da utilizzare tramite la variabile d'ambiente `SCANNERS_LIST`, separati da uno spazio (ad esempio `SCANNERS_LIST="<Scanner1 name> <Scanner2 name>"`)```
SCANNERS_LIST="grype trivy" kubeclarity-cli scan nginx.sbom --input-type sbom

Esportazione dei risultati verso il backend KubeClarity

Per esportare i risultati della CLI verso il backend KubeClarity, è necessario utilizzare un ID applicazione come definito dal backend KubeClarity. L'ID applicazione può essere trovato nella schermata Applicazioni dell'interfaccia utente o utilizzando l'API KubeClarity.

Esportazione di SBOM```

The SBOM can be exported to KubeClarity backend by setting the BACKEND_HOST env variable and the -e flag.

Note: Until TLS is supported, BACKEND_DISABLE_TLS=true should be set.

BACKEND_HOST= BACKEND_DISABLE_TLS=true kubeclarity-cli analyze --application-id -e -o

For example:

BACKEND_HOST=localhost:9999 BACKEND_DISABLE_TLS=true kubeclarity-cli analyze nginx:latest --application-id 23452f9c-6e31-5845-bf53-6566b81a2906 -e -o nginx.sbom

root@kitploit:~
#### Esportazione dei risultati della scansione delle vulnerabilità```
# The vulnerability scan result can be exported to KubeClarity backend by setting the BACKEND_HOST env variable and the -e flag.
# Note: Until TLS is supported, BACKEND_DISABLE_TLS=true should be set.

BACKEND_HOST=<KubeClarity backend address> BACKEND_DISABLE_TLS=true kubeclarity-cli scan <image> --application-id <application ID> -e

# For example:
SCANNERS_LIST="grype" BACKEND_HOST=localhost:9999 BACKEND_DISABLE_TLS=true kubeclarity-cli scan nginx.sbom --input-type sbom  --application-id 23452f9c-6e31-5845-bf53-6566b81a2906 -e

Advanced Configuration

Generazione SBOM utilizzando un'immagine docker locale come input```

Local docker images can be analyzed using the LOCAL_IMAGE_SCAN env variable

For example:

LOCAL_IMAGE_SCAN=true kubeclarity-cli analyze nginx:latest -o nginx.sbom

root@kitploit:~
## Scansione delle vulnerabilità utilizzando un'immagine docker locale come input```
# Local docker images can be scanned using the LOCAL_IMAGE_SCAN env variable

# For example:
LOCAL_IMAGE_SCAN=true kubeclarity-cli scan nginx.sbom

Supporto per registry privati per CLI

La CLI di KubeClarity può leggere un file di configurazione che memorizza le credenziali per i registry privati.

Esempio di sezione registry del file di configurazione:``` registry: auths: - authority: <registry 1> username: <username for registry 1> password: <password for registry 1> - authority: <registry 2> token: <token for registry 2>

root@kitploit:~
Esempio di configurazione del registro senza autorità: (in questo caso queste credenziali saranno utilizzate per tutti i registri)```
registry:
  auths:
    - username: <username>
      password: <password>

Specifica il file di configurazione per la CLI```

The default config path is $HOME/.kubeclarity or it can be specified by --config command line flag.

kubeclarity <scan/analyze> --config

For example:

kubeclarity scan registry/nginx:private --config $HOME/own-kubeclarity-config

root@kitploit:~
## Supporto per registri privati per scansione runtime K8s

Kubeclarity utilizza [k8schain](https://github.com/google/go-containerregistry/tree/main/pkg/authn/k8schain#k8schain) di google/go-containerregistry per l'autenticazione ai registri.
Se le credenziali di servizio necessarie non sono individuabili da k8schain, possono essere definite tramite i segreti descritti di seguito.

Inoltre, se le credenziali del servizio non si trovano nel namespace "kubeclarity", impostare CREDS_SECRET_NAMESPACE nel Deployment di kubeclarity.
Quando si utilizzano i [charts](https://github.com/openclarity/kubeclarity/blob/HEAD/charts) di Helm, CREDS_SECRET_NAMESPACE è impostato al namespace di rilascio in cui è installato kubeclarity.

### Amazon ECR

Crea un [utente IAM AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) con autorizzazioni `AmazonEC2ContainerRegistryFullAccess`.

Utilizza le credenziali dell'utente (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_DEFAULT_REGION`) per creare il seguente segreto:```
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
  name: ecr-sa
  namespace: kubeclarity
type: Opaque
data:
  AWS_ACCESS_KEY_ID: $(echo -n 'XXXX'| base64 -w0)
  AWS_SECRET_ACCESS_KEY: $(echo -n 'XXXX'| base64 -w0)
  AWS_DEFAULT_REGION: $(echo -n 'XXXX'| base64 -w0)
EOF

Nota:

  1. Il nome del segreto deve essere ecr-sa
  2. Le chiavi dei dati del segreto devono essere impostate su AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY e AWS_DEFAULT_REGION

Google GCR

Crea un account di servizio Google con autorizzazioni Artifact Registry Reader.

Utilizza il file json dell'account di servizio per creare il seguente segreto``` kubectl -n kubeclarity create secret generic --from-file=sa.json gcr-sa

root@kitploit:~
Nota:
1. Il nome del segreto deve essere `gcr-sa`
1. `sa.json` deve essere il nome del file json dell'account di servizio quando si genera il segreto
2. KubeClarity utilizza le [credenziali predefinite dell'applicazione](https://developers.google.com/identity/protocols/application-default-credentials). Queste funzionano solo quando si esegue KubeClarity da GCP.

## Unione di SBOM e vulnerabilità tra diverse fasi CI/CD```
# Additional SBOM will be merged into the final results when '--merge-sbom' is defined during analysis. The input SBOM can be CycloneDX XML or CyclonDX json format.
# For example:
ANALYZER_LIST="syft" kubeclarity-cli analyze nginx:latest -o nginx.sbom --merge-sbom inputsbom.xml

Output di diversi formati SBOM

Il comando kubeclarity-cli analyze può formattare l'SBOM risultante in diversi formati, se necessario, per integrarsi con un altro sistema. I formati supportati sono:

FormatoNome Configurazione
CycloneDX JSON (predefinito)cyclonedx-json
CycloneDX XMLcyclonedx-xml
SPDX JSONspdx-json

AVVERTENZA
KubeClarity elabora CycloneDX internamente, gli altri formati sono supportati tramite una conversione. Il processo di conversione può essere con perdita a causa di incompatibilità tra i formati, pertanto non è garantito che tutti i campi/informazioni siano presenti nell'output risultante.

Per configurare kubeclarity-cli per utilizzare un formato diverso da quello predefinito, è possibile utilizzare la variabile d'ambiente ANALYZER_OUTPUT_FORMAT con il nome della configurazione sopra indicato:``` ANALYZER_OUTPUT_FORMAT="spdx-json" kubeclarity-cli analyze nginx:latest -o nginx.sbom

root@kitploit:~
## Server scanner remoti per CLI

Quando si esegue il CLI di kubeclarity per la scansione delle vulnerabilità, il CLI dovrà scaricare i relativi database delle vulnerabilità nella posizione in cui è in esecuzione il CLI di kubeclarity. Eseguire il CLI in una pipeline CI/CD comporterà il download dei database ad ogni esecuzione, sprechando tempo e larghezza di banda. Per questo motivo, molti degli scanner supportati dispongono di una modalità remota in cui un server è responsabile della gestione dei database e, eventualmente, della scansione degli artefatti.

> ***Nota***
>
> Gli esempi seguenti riguardano ciascuno scanner, ma possono essere combinati per funzionare insieme come nella modalità non remota.

### Trivy

Lo scanner Trivy supporta la modalità remota utilizzando il server Trivy. Il server Trivy può essere distribuito come documentato qui: [trivy client-server mode](https://aquasecurity.github.io/trivy/v0.34/docs/references/modes/client-server/). Le istruzioni per installare il CLI Trivy sono disponibili qui: [trivy install](https://aquasecurity.github.io/trivy/v0.34/getting-started/installation/). Il team Aqua fornisce un'immagine contenitore ufficiale che può essere utilizzata per eseguire il server in kubernetes/docker, che useremo negli esempi qui.

Per avviare il server:```
docker run -p 8080:8080 --rm aquasec/trivy:0.41.0 server --listen 0.0.0.0:8080

Per eseguire una scansione utilizzando il server:``` SCANNERS_LIST="trivy" SCANNER_TRIVY_SERVER_ADDRESS="http://:8080" ./kubeclarity_cli scan --input-type sbom nginx.sbom

root@kitploit:~
Il server trivy fornisce anche l'autenticazione basata su token per prevenire
l'uso non autorizzato di un'istanza del server trivy. È possibile abilitarla eseguendo il
server con il flag aggiuntivo:```
docker run -p 8080:8080 --rm aquasec/trivy:0.41.0 server --listen 0.0.0.0:8080 --token mytoken

e passando il token allo scanner:``` SCANNERS_LIST="trivy" SCANNER_TRIVY_SERVER_ADDRESS="http://:8080" SCANNER_TRIVY_SERVER_TOKEN="mytoken" ./kubeclarity_cli scan --input-type sbom nginx.sbom

root@kitploit:~
### Grype

Grype supporta la modalità remota utilizzando [grype-server](https://github.com/portshift/grype-server) un wrapper RESTful per grype che fornisce un'API che riceve un SBOM e restituisce i risultati della scansione grype per quel SBOM. Grype-server viene fornito come immagine container, quindi può essere eseguito in kubernetes o tramite docker standalone.

Per avviare il server:```
docker run -p 9991:9991 --rm gcr.io/eticloud/k8sec/grype-server:v0.1.5

Per eseguire una scansione utilizzando il server:``` SCANNERS_LIST="grype" SCANNER_GRYPE_MODE="remote" SCANNER_REMOTE_GRYPE_SERVER_ADDRESS=":9991" SCANNER_REMOTE_GRYPE_SERVER_SCHEMES="https" ./kubeclarity_cli scan --input-type sbom nginx.sbom

root@kitploit:~
Se il server Grype è distribuito con TLS puoi sovrascrivere lo schema URL predefinito come:```
SCANNERS_LIST="grype" SCANNER_GRYPE_MODE="remote" SCANNER_REMOTE_GRYPE_SERVER_ADDRESS="<grype server address>:9991" SCANNER_REMOTE_GRYPE_SERVER_SCHEMES="https" ./kubeclarity_cli scan --input-type sbom nginx.sbom

Dependency Track

Vedi la configurazione di esempio qui

Limitazioni

  1. Supporta Docker Image Manifest V2, Schema 2 (https://docs.docker.com/registry/spec/manifest-v2-2/). Fallirà la scansione delle versioni precedenti.

Piano di sviluppo

  • Integrazione con analizzatori di contenuti aggiuntivi (generatori di SBOM)
  • Integrazione con scanner di vulnerabilità aggiuntivi
  • Benchmark CIS Docker nell'interfaccia utente
  • Firma delle immagini usando Cosign
  • Firma e attestazione dei metadati CI/CD usando Cosign e in-toto (sicurezza della supply chain)
  • Impostazioni di sistema e gestione utenti

Contributi

Le pull request e le segnalazioni di bug sono benvenute.

Per modifiche più grandi, crea prima un Issue su GitHub per discutere le modifiche proposte e le possibili implicazioni.

Per ulteriori dettagli, consulta le linee guida per i contributi di questo progetto

Licenza

Apache License, Version 2.0

Scarica lo strumento
PermessoMotivazione
Leggere i segreti in CREDS_SECRET_NAMESPACE (default: kubeclarity)Ciò consente di configurare i segreti per il pull delle immagini per la scansione di repository di immagini private.
Leggere le config map nel namespace di deployment di KubeClarity.Ciò è necessario per ottenere il template configurato del job di scansione.
Elencare i pod nell'ambito del cluster.Ciò è necessario per calcolare i pod target da scansionare.
Elencare i namespace.Ciò è necessario per recuperare i namespace target da scansionare nell'interfaccia di scansione runtime di K8s.
Creare ed eliminare job nell'ambito del cluster.Ciò è necessario per gestire i job che scansioneranno i pod target nei loro namespace.
SPDX Tag Valuespdx-tv
Syft JSONsyft-json