
Anti-Virus per K8s. Proteggi le tue applicazioni in esecuzione su Kubernetes da attacchi dannosi con codice sorgente preregistrato, monitoraggio dei processi in esecuzione, analisi, avvisi e anche condivisione delle rilevazioni con la comunità. Forse salva dal Ransomware.
Vogliamo mantenere questo progetto open-source per combattere gli attacchi al nostro ecosistema Kubernetes preferito. Possiamo combattere le minacce insieme come comunità, attraverso un contributo continuo.
Come funziona Tarian?
Tarian viene eseguito come contenitore sidecar nel pod della tua applicazione principale, monitorando le modifiche agli ID dei processi, al numero di processi in esecuzione, alle relazioni tra processi padre e figlio, ai file e alle directory nel filesystem che appartengono alla tua applicazione, alle modifiche alle firme dei file, ecc. Tarian farà parte del pod della tua applicazione dall'ambiente di sviluppo a quello di produzione, quindi puoi registrare nel tuo database Tarian ciò che dovrebbe accadere ed essere eseguito nel tuo contenitore + ciò che può essere monitorato + ciò che può essere notificato + le azioni (autodistruzione del pod) da intraprendere in base ai cambiamenti rilevati. Sposta a sinistra il tuo meccanismo di rilevamento!
Cosa succede se si verifica un cambiamento sconosciuto all'interno del contenitore che non è presente nel database di registrazione di Tarian? Come reagisce Tarian in tal caso?
Se si verifica un cambiamento sconosciuto, Tarian può semplicemente notificare le analisi osservate al tuo team di sicurezza + inviare il log al team di sicurezza. I tuoi ingegneri della sicurezza possono quindi registrare quel cambiamento nel database di Tarian come minaccia o meno e, in base alla loro analisi, possono configurare l'azione da intraprendere. Tale azione verrà inviata come comando all'app Tarian sidecar per eseguire l'azione.
In che modo il contributo della comunità aiuta a combattere le minacce tramite Tarian?
Qualsiasi nuovo rilevamento analizzato e contrassegnato come minaccia dai tuoi esperti di sicurezza, se lo desiderano, può essere condiviso nel database della comunità open-source di Tarian con tutti i log, le stringhe da cercare, le osservazioni, la trasparenza, le azioni da configurare, essenzialmente tutto ciò che l'esperto vuole segnalare e condividere con la comunità. Puoi utilizzare queste informazioni come utente di Tarian e configurare le azioni nella tua app Tarian che usi nel tuo ambiente. Questo significa essenzialmente condividere informazioni sulle minacce e su cosa fare al riguardo. Questo aiuta tutti coloro che usano Tarian a condividere le proprie analisi e ad agire insieme nei rispettivi ambienti K8s, condividendo conoscenza ed esperienza.
Quale/i azione/i intraprenderebbe Tarian in base a minacce note?
Tarian distruggerebbe semplicemente il pod su cui è in esecuzione, insieme all'eliminazione di eventuali file sui volumi, per ridurre il rischio. Se il malware/virus si diffonde al resto dell'ambiente, beh, sai cosa succede. Quindi, Tarian è fondamentalmente progettato per aiutare a ridurre il rischio il più possibile, distruggendo i pod. Il provisioning di un nuovo pod sarà gestito da K8s, poiché è così che funziona K8s. Tarian eseguirà solo la distruzione dei pod, e solo se gli dici di farlo preconfigurando l'azione nel controller Tarian o dicendo a Tarian di farlo al volo. Se non vuoi che vengano eseguite azioni, non devi configurarle o attivarle; puoi semplicemente dire a Tarian di notificarti soltanto. Tarian fa essenzialmente ciò che vuoi che venga fatto per ridurre il rischio.
Perché un altro nuovo strumento di sicurezza quando esistono già molti strumenti, come Falco, Kube-Hunter, Kube-Bench, Calico Enterprise Security e molti altri strumenti di sicurezza (open-source e commerciali) che possono rilevare e prevenire minacce a livello di rete, infrastruttura e applicazione? Perché Tarian?
Come ho detto sopra, la ragione principale per cui Tarian è nato è per combattere insieme come comunità contro le minacce in Kubernetes. E un'altra ragione era: e se esistesse ancora un attacco sofisticato in grado di penetrare ogni livello delle tue difese e raggiungere la tua applicazione runtime, i tuoi volumi di archiviazione e in grado di diffondersi per danneggiare o bloccare la tua infrastruttura e i tuoi dati? Cosa vuoi fare contro tali attacchi, specialmente quelli che si trasformano in ransomware? Tarian è progettato per ridurre tali rischi, intraprendendo azioni. Sappiamo che Tarian non è la soluzione definitiva, ma siamo fiduciosi che possa aiutare a ridurre i rischi, specialmente quando la conoscenza viene condivisa continuamente dalla comunità e anche dal punto di vista tecnico Tarian può aiutare a ridurre il rischio distruggendo le risorse infette.
Finalizzerò presto il diagramma di progettazione dopo aver parlato con alcuni esperti di sicurezza (ho già parlato con alcuni e ho ancora alcune discussioni in sospeso).
kubectl create namespace tarian-system
helm install tarian-postgresql bitnami/postgresql -n tarian-system \
--set postgresqlUsername=postgres \
--set postgresqlPassword=tarian \
--set postgresqlDatabase=tarian
helm repo add tarian https://devopstoday11.github.io/tarian
helm repo update
helm install tarian-server tarian/tarian-server --devel -n tarian-system
helm install tarian-cluster-agent tarian/tarian-cluster-agent --devel -n tarian-system
kubectl wait --for=condition=ready pod --all -n tarian-system
kubectl exec -ti deploy/tarian-server -n tarian-system -- ./tarian-server db migrate
Vedi i valori del chart Helm per:
kubectl port-forward svc/tarian-server -n tarian-system 41051:80
export TARIAN_SERVER_ADDRESS=localhost:41051
tarianctl get events
tarianctl add constraint --name nginx --namespace default \
--match-labels run=nginx \
--allowed-processes=pause,tarian-pod-agent,nginx
tarianctl get constraints