
Strumento automatizzato di controllo della sicurezza per cluster Kubernetes con service mesh Istio, che applica le best practice tramite policy OPA e genera report di remediation per configurazioni errate.
Migliora la sicurezza del tuo service mesh Kubernetes !!
mesh-kridik è un controllore di sicurezza open-source che esegue vari controlli di sicurezza su un cluster Kubernetes con service mesh Istio e produce un report di sicurezza
I test di sicurezza sono la piena implementazione delle best practice di sicurezza di Istio
I controlli di sicurezza vengono eseguiti su un cluster Kubernetes con service mesh Istio e sfruttano OPA (Open Policy Agent) per applicare le regole di sicurezza. Il report di audit prodotto include: la causa principale del problema di sicurezza e una proposta di rimedio per il problema di sicurezza.

git clone https://github.com/chen-keinan/mesh-kridik
cd mesh-kridik
make build
Esegui Mesh-Kridik senza flag per eseguire tutti i test
./mesh-kridik
Esegui mesh-kridik con flag per eseguire test su richiesta
Usage: mesh-kridik [--version] [--help] <command> [<args>]
Available commands are:
-r , --report : run security checks and generate remediation report
-i , --include: execute only specific security check, example -i=1.1
-e , --exclude: ignore specific security check, example -e=1.1,2.0
Esegui i test e genera un report dei test falliti con le relative correzioni
./mesh-kridik -r
Kube-kridik espone un hook per plugin utente Esempio :
go build -buildmode=plugin -o=~/<plugin folder>/<plugin>.so ~/<plugin folder>/<plugin>.go
cp ~/<plugin folder>/<plugin>.so ~/.kube-kridik/plugins/compile/<plugin>.so
Kube-kridik supporta queste specifiche e può essere facilmente esteso:
Queste specifiche possono essere facilmente estese modificando i file di specifica nella cartella ~/.mesh-kridik/security/mesh/istio
| Name | Description | Impact |
|---|---|---|
| Mutual TLS | I proxy Istio Mutual TLS sono configurati in modalità permissiva per impostazione predefinita | i proxy accetteranno sia mutual TLS che traffico in chiaro |
| Istio Safer Authorization Policy Patterns | Utilizza pattern ALLOW-with-positive-matching o DENY-with-negative-match | Questi pattern di policy di autorizzazione sono più sicuri perché il peggior risultato in caso di disallineamento delle policy è un rifiuto 403 inaspettato anziché un bypass della policy di autorizzazione. |
| path normalization in authorization policy | Il punto di enforcement per le policy di autorizzazione è il proxy Envoy invece del normale punto di accesso alle risorse nell'applicazione backend | Un disallineamento può portare a un rifiuto inaspettato o a un bypass della policy |
| TLS origination for egress traffic | Utilizzo di DestinationRule su service ServiceEntry per il traffico in uscita | Non utilizzare TLS origination per il traffico in uscita verso un servizio esterno comporterà l'invio in chiaro |
| Protocol detection | dichiara esplicitamente il protocollo del servizio | un rilevamento errato può causare comportamenti di traffico inaspettati |
| CNI support | cattura trasparente del traffico di istio | non tutto il traffico di rete verrà catturato |
| overly broad hosts | evita impostazioni di host troppo ampie in Gateway | potrebbe causare un'esposizione potenziale di domini inaspettati |
| Restrict Gateway creation privileges | limita la creazione di risorse Gateway ad amministratori di cluster fidati | potrebbe causare la creazione di gateway da parte di utenti non fidati |
| Configure a limit on downstream connections | Aggiorna global_downstream_max_connections nella mappa di configurazione in base al numero di connessioni concorrenti necessarie per le singole istanze del gateway nel tuo deployment. Una volta raggiunto il limite, Envoy inizierà a rifiutare le connessioni TCP | nessun limite al numero di connessioni downstream può essere sfruttato da un attore malintenzionato |
| Configure third party service account tokens | Si raccomanda di configurare token di terze parti perché le proprietà del token di prima parte sono meno sicure | le proprietà del token di prima parte sono meno sicure e potrebbero causare una violazione dell'autenticazione |
| Control Plane | Istiod espone alcune porte in testo non autenticate per comodità per impostazione predefinita | espone la porta del servizio XDS 15010 e la porta di debug 8080 in testo chiaro non autenticato |
| Data Plane | Il proxy espone una varietà di porte | Le applicazioni in esecuzione nello stesso pod del proxy hanno accesso; non c'è confine di fiducia tra sidecar e applicazione |
| Understand traffic capture limitations | Proteggere il traffico in uscita impostando meshConfig.outboundTrafficPolicy.mode | l'accesso ai servizi esterni non sarà controllato |