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
kubeaudit — kubeaudit ti aiuta a verificare i tuoi cluster Kubernetes rispetto ai comuni controlli di sicurezza. | Kitploit
Strumenti/GitHubGitHub/shopify/kubeaudit
Sicurezza dell'Infrastruttura CloudScanner di VulnerabilitàSicurezza dei ContenitoriAudit di ConfigurazioneSicurezza CloudDevSecOpsConfigurazione ErrataArchived
GitHubshopify/kubeaudit

kubeaudit

kubeaudit ti aiuta a verificare i tuoi cluster Kubernetes rispetto ai comuni controlli di sicurezza.

Vedi Repository
1.9k1891 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

Build Status Go Report Card GoDoc

Ora è obbligatorio per i cluster eseguire Kubernetes >=1.19.

Le etichette di override con annotazioni kubernetes.io non registrate verranno deprecate. Presto sarà obbligatorio utilizzare invece kubeaudit.io. Fai riferimento a questa discussione per ulteriori dettagli.

🚨 Avviso di Deprecazione 🚨

Kubeaudit è in programma per la deprecazione entro ottobre 2024.

Stiamo cercando attivamente manutentori interessati a prendere in carico la gestione di questo progetto. Se sei appassionato di continuarne lo sviluppo e la manutenzione, contattaci.

Per gli utenti che cercano alternative, consigliamo di passare a Kubebench, che offre funzionalità simili ed è attivamente mantenuto.

Grazie alla comunità per i contributi e il supporto.

kubeaudit ☁️ 🔒 💪

kubeaudit è uno strumento da riga di comando e un pacchetto Go per eseguire audit dei cluster Kubernetes per vari problemi di sicurezza, come:

  • esecuzione come non-root
  • utilizzo di un filesystem root in sola lettura
  • rimozione di capacità pericolose, non aggiunta di nuove
  • non esecuzione in modalità privilegiata
  • e altro ancora!

tldr. kubeaudit garantisce di distribuire container sicuri!

Pacchetto

Per utilizzare kubeaudit come pacchetto Go, consulta la documentazione del pacchetto.

Il resto di questo README si concentra su come utilizzare kubeaudit come strumento da riga di comando.

Interfaccia a Riga di Comando (CLI)

  • Installazione
  • Avvio Rapido
  • Risultati dell'Audit
  • Comandi
  • File di Configurazione
  • Override degli Errori
  • Contribuire

Installazione

Brew

root@kitploit:~
brew install kubeaudit

Scarica un binario

Kubeaudit ha versioni ufficiali benedette e stabili: Versioni ufficiali

Build fai-da-te

Il branch main potrebbe avere funzionalità più recenti rispetto alle versioni stabili. Se hai bisogno di una funzionalità più recente non ancora inclusa in una release, assicurati di usare l'ultimo Go ed esegui:

root@kitploit:~
go get -v github.com/Shopify/kubeaudit

Inizia a usare kubeaudit con l'Avvio Rapido o visualizza tutti i comandi supportati.

Plugin Kubectl

Prerequisito: kubectl v1.12.0 o successivo

Con kubectl v1.12.0 è stata introdotta la facile possibilità di plug-in di funzioni esterne, kubeaudit può essere invocato come kubectl audit in due modi:

  • eseguendo make plugin e avendo $GOPATH/bin disponibile nel tuo PATH.

oppure

  • rinominando il binario in kubectl-audit e rendendolo disponibile nel tuo PATH.

Docker

Non rilasciamo più immagini su Docker Hub (da quando Docker Hub ha ritirato le organizzazioni Free Team). Per il momento, le vecchie immagini sono ancora disponibili ma potrebbero smettere di esserlo in qualsiasi momento. Presto inizieremo a pubblicare immagini sul registro dei container di Github.

Per eseguire kubeaudit come job nel tuo cluster, consulta Esecuzione di kubeaudit in un cluster.

Avvio Rapido

kubeaudit ha tre modalità:

  1. Modalità Manifesto
  2. Modalità Locale
  3. Modalità Cluster

Modalità Manifesto

Se viene fornito un file manifest Kubernetes tramite il flag -f/--manifest, kubeaudit eseguirà l'audit del file manifest.

Esempio di comando:

root@kitploit:~
kubeaudit all -f "/path/to/manifest.yml"

Esempio di output:

root@kitploit:~
$ kubeaudit all -f "internal/test/fixtures/all_resources/deployment-apps-v1.yml"

---------------- Results for ---------------

  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: deployment
    namespace: deployment-apps-v1

--------------------------------------------

-- [error] AppArmorAnnotationMissing
   Message: AppArmor annotation missing. The annotation 'container.apparmor.security.beta.kubernetes.io/container' should be added.
   Metadata:
      Container: container
      MissingAnnotation: container.apparmor.security.beta.kubernetes.io/container

-- [error] AutomountServiceAccountTokenTrueAndDefaultSA
   Message: Default service account with token mounted. automountServiceAccountToken should be set to 'false' or a non-default service account should be used.

-- [error] CapabilityShouldDropAll
   Message: Capability not set to ALL. Ideally, you should drop ALL capabilities and add the specific ones you need to the add list.
   Metadata:
      Container: container
      Capability: AUDIT_WRITE
...

Se non vengono trovati errori con una gravità minima specificata, viene restituito quanto segue:

root@kitploit:~
All checks completed. 0 high-risk vulnerabilities found

Autofix

La modalità manifesto supporta anche la correzione automatica di tutti i problemi di sicurezza utilizzando il comando autofix:

root@kitploit:~
kubeaudit autofix -f "/path/to/manifest.yml"

Per scrivere il manifest corretto in un nuovo file invece di modificare il file sorgente, usa il flag -o/--output.

root@kitploit:~
kubeaudit autofix -f "/path/to/manifest.yml" -o "/path/to/fixed"

Per correggere un manifest in base a regole personalizzate specificate in un file di configurazione di kubeaudit, usa il flag -k/--kconfig.

root@kitploit:~
kubeaudit autofix -k "/path/to/kubeaudit-config.yml" -f "/path/to/manifest.yml" -o "/path/to/fixed"

Modalità Cluster

Kubeaudit può rilevare se è in esecuzione all'interno di un container in un cluster. In tal caso, tenterà di eseguire l'audit di tutte le risorse Kubernetes in quel cluster:

root@kitploit:~
kubeaudit all

Modalità Locale

Kubeaudit tenterà di connettersi a un cluster utilizzando il file kubeconfig locale ($HOME/.kube/config). È possibile specificare una posizione diversa per il kubeconfig usando il flag --kubeconfig. Per specificare un contesto del kubeconfig, usa il flag -c/--context.

root@kitploit:~
kubeaudit all --kubeconfig "/path/to/config" --context my_cluster

Per maggiori informazioni sui file di configurazione di Kubernetes, consulta https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/

Risultati dell'Audit

Kubeaudit produce risultati con tre livelli di gravità:

  • Error: Un problema di sicurezza o una configurazione Kubernetes non valida
  • Warning: Una raccomandazione di buona pratica
  • Info: Informativo, nessuna azione richiesta. Include risultati che sono sovrascritti

Il livello di gravità minimo può essere impostato usando il flag --minSeverity/-m.

Di default kubeaudit restituisce i risultati in modo leggibile dall'uomo. Se l'output deve essere ulteriormente elaborato, può essere impostato per produrre JSON usando il flag --format json. Per produrre risultati come log (il precedente default) usa --format logrus. Alcuni formati di output includono colori per rendere i risultati più facili da leggere in un terminale. Per disabilitare i colori (ad esempio, se stai inviando l'output a un file di testo), puoi usare il flag --no-color.

Puoi generare un report kubeaudit in SARIF usando il flag --format sarif. Per scrivere i risultati SARIF in un file, puoi reindirizzare l'output con >. Per esempio:

root@kitploit:~
kubeaudit all -f path-to-my-file.yaml --format="sarif" > example.sarif

Se ci sono risultati con livello di gravità error, kubeaudit terminerà con codice di uscita 2. Questo può essere modificato usando il flag --exitcode/-e.

Per tutti i modi in cui kubeaudit può essere personalizzato, consulta Flag Globali.

Comandi

Auditor

Gli auditor possono anche essere eseguiti singolarmente.

Flag Globali

File di Configurazione

Il file di configurazione di kubeaudit può essere utilizzato per due scopi:

  1. Abilitare solo alcuni auditor
  2. Specificare la configurazione per gli auditor

Qualsiasi configurazione che può essere specificata tramite flag per i singoli auditor può essere rappresentata usando la configurazione.

La configurazione ha il seguente formato:

root@kitploit:~
enabledAuditors:
  # Gli auditor sono abilitati di default se non sono esplicitamente impostati su "false"
  apparmor: false
  asat: false
  capabilities: true
  deprecatedapis: true
  hostns: true
  image: true
  limits: true
  mounts: true
  netpols: true
  nonroot: true
  privesc: true
  privileged: true
  rootfs: true
  seccomp: true
auditors:
  capabilities:
    # aggiungi le capacità necessarie all'elenco degli add, in modo che kubeaudit non segnali errori
    allowAddList: ['AUDIT_WRITE', 'CHOWN']
  deprecatedapis:
    # Se non vengono specificate versioni e l'auditor 'deprecatedapis' è abilitato, verranno generati risultati
    # WARN per le risorse definite con una API deprecata.
    currentVersion: '1.22'
    targetedVersion: '1.25'
  image:
    # Se non viene specificata un'immagine e l'auditor 'image' è abilitato, verranno generati risultati WARN
    # per i container che utilizzano un'immagine senza tag
    image: 'myimage:mytag'
  limits:
    # Se non vengono specificati limiti e l'auditor 'limits' è abilitato, verranno generati risultati WARN
    # per i container che non hanno specificato limiti di CPU o memoria
    cpu: '750m'
    memory: '500m'

Per maggiori dettagli su ciascun auditor, inclusa una descrizione della configurazione specifica dell'auditor nella configurazione, consulta la Documentazione degli Auditor.

Nota: Il file di configurazione di kubeaudit non è lo stesso del file kubeconfig specificato con il flag --kubeconfig, che si riferisce al file di configurazione di Kubernetes (vedi Modalità Locale). Nota inoltre che solo i comandi all e autofix supportano l'uso di un file di configurazione kubeaudit. Non funzionerà con altri comandi.

Nota: Se vengono utilizzati flag in combinazione con il file di configurazione, i flag avranno la precedenza.

Override degli Errori

I problemi di sicurezza possono essere ignorati per container o pod specifici aggiungendo etichette di override. Ciò significa che l'auditor produrrà risultati info invece di risultati error e il nome del risultato dell'audit avrà Allowed aggiunto. Le etichette sono documentate nella documentazione di ciascun auditor, ma il formato generale per gli auditor che supportano gli override è il seguente:

Un'etichetta di override è composta da una key e un value.

La key è una combinazione del tipo di override (container o pod) e un identificatore di override unico per ogni auditor (vedi la documentazione per l'auditor specifico). La key può assumere una delle due forme a seconda del tipo di override:

  1. Override per container, che annullano l'override dell'auditor per quel container specifico, sono formattati come segue:
root@kitploit:~
container.kubeaudit.io/[nome container].[identificatore override]
  1. Override per pod, che annullano l'override dell'auditor per tutti i container all'interno del pod, sono formattati come segue:
root@kitploit:~
kubeaudit.io/[identificatore override]

Se il value è impostato su una stringa non vuota, verrà visualizzato nel risultato info come OverrideReason:

root@kitploit:~
$ kubeaudit asat -f "auditors/asat/fixtures/service-account-token-true-allowed.yml"

---------------- Results for ---------------

  apiVersion: v1
  kind: ReplicationController
  metadata:
    name: replicationcontroller
    namespace: service-account-token-true-allowed

--------------------------------------------

-- [info] AutomountServiceAccountTokenTrueAndDefaultSAAllowed
   Message: Audit result overridden: Default service account with token mounted. automountServiceAccountToken should be set to 'false' or a non-default service account should be used.
   Metadata:
      OverrideReason: SomeReason

Secondo le specifiche di Kubernetes, il value deve essere di 63 caratteri o meno e deve essere vuoto o iniziare e terminare con un carattere alfanumerico ([a-z0-9A-Z]) con trattini (-), underscore (_), punti (.), e caratteri alfanumerici in mezzo.

È possibile aggiungere più etichette di override (per più auditor) alla stessa risorsa.

Consulta la documentazione dell'auditor specifico che desideri sovrascrivere per esempi.

Per saperne di più sulle etichette, consulta https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/

Contribuire

Se desideri correggere un bug, contribuire con una funzionalità o semplicemente correggere un refuso, sentiti libero di farlo seguendo il nostro Codice di Condotta.

  1. Crea il tuo fork!
  2. Ottieni il codice sorgente: go get github.com/Shopify/kubeaudit
  3. Vai al codice sorgente: cd $GOPATH/src/github.com/Shopify/kubeaudit
  4. Aggiungi il tuo repository fork come fork: git remote add fork https://github.com/tu-sei-fantastico/kubeaudit
  5. Crea il tuo branch delle feature: git checkout -b awesome-new-feature
  6. Installa Kind
  7. Esegui i test per vedere se tutto funziona come previsto: USE_KIND=true make test (per eseguire i test senza Kind: make test)
  8. Esegui il commit delle tue modifiche: git commit -am 'Aggiunge una fantastica funzionalità'
  9. Carica il branch: git push fork
  10. Firma il Contributor License Agreement
  11. Invia una PR (Tutte le PR devono essere etichettate con 🐛 (Correzione bug), ✨ (Nuova funzionalità), 📖 (Aggiornamento documentazione), o ⚠️ (Modifiche sostanziali) )
  12. ???
  13. Profitto

Nota: se non hai firmato il CLA prima di aprire la PR, puoi rieseguire il controllo aggiungendo un commento alla PR che dice "I've signed the CLA!"!

Scarica lo strumento
ComandoDescrizioneDocumentazione
allEsegue tutti gli auditor disponibili, o quelli specificati tramite un file di configurazione kubeaudit.docs
autofixCorregge automaticamente i problemi di sicurezza.docs
versionStampa la versione corrente di kubeaudit.
ComandoDescrizioneDocumentazione
apparmorTrova container in esecuzione senza AppArmor.docs
asatTrova pod che utilizzano un service account predefinito montato automaticamente.docs
capabilitiesTrova container che non rimuovono le capacità raccomandate o che ne aggiungono di nuove.docs
deprecatedapisTrova qualsiasi risorsa definita con una versione API deprecata.docs
hostnsTrova container che hanno HostPID, HostIPC o HostNetwork abilitati.docs
imageTrova container che non utilizzano la versione desiderata di un'immagine (tramite il tag) o usano un'immagine senza tag.docs
limitsTrova container che superano i limiti specificati di CPU e memoria o che non ne specificano alcuno.docs
mountsTrova container che montano percorsi host sensibili.docs
netpolsTrova namespace che non hanno una policy di rete default-deny.docs
nonrootTrova container in esecuzione come root.docs
privescTrova container che permettono l'escalation dei privilegi.docs
privilegedTrova container in esecuzione in modalità privilegiata.docs
rootfsTrova container che non hanno un filesystem in sola lettura.docs
seccompTrova container in esecuzione senza Seccomp.docs
ShortLongDescrizione
--formatIl formato di output da utilizzare (uno tra "sarif", "pretty", "logrus", "json") (default è "pretty")
--kubeconfigPercorso del file di configurazione Kubernetes locale. Utilizzato solo in modalità locale (default è $HOME/.kube/config)
-c--contextIl nome del contesto kubeconfig da utilizzare
-f--manifestPercorso del file yaml da sottoporre ad audit. Utilizzato solo in modalità manifesto. Puoi usare - per leggere da stdin.
-n--namespaceEsegui l'audit solo sulle risorse nel namespace specificato. Non supportato attualmente in modalità manifesto.
-g--includegeneratedIncludi le risorse generate nella scansione (come i Pod generati dai deployment). Se desideri che kubeaudit produca risultati per le risorse generate (ad esempio se hai risorse personalizzate o vuoi intercettare risorse orfane per cui la risorsa proprietaria non esiste più) puoi usare questo flag.
-m--minseverityImposta il livello di gravità minimo da segnalare (uno tra "error", "warning", "info") (default è "info")
-e--exitcodeCodice di uscita da utilizzare se ci sono risultati con gravità "error". Convenzionalmente, 0 indica successo e tutti i codici non zero un errore. (default è 2)
--no-colorNon utilizzare colori nell'output (default è false)