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
tarian — Agente di sicurezza runtime basato su eBPF per Kubernetes che rileva processi sconosciuti e modifiche ai file, applica vincoli pre-registrati e automatizza l'eliminazione dei pod o l'invio di avvisi per mitigare ransomware e altri attacchi. | Kitploit
Strumenti/GitHubGitHub/kube-tarian/tarian
Sicurezza dei ContenitoriAnalisi MalwareSicurezza CloudDevSecOpsThreat IntelligenceRilevamento Intrusioni
GitHubkube-tarian/tarian

tarian

Agente di sicurezza runtime basato su eBPF per Kubernetes che rileva processi sconosciuti e modifiche ai file, applica vincoli pre-registrati e automatizza l'eliminazione dei pod o l'invio di avvisi per mitigare ransomware e altri attacchi.

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

Tarian

Proteggi le tue applicazioni in esecuzione su Kubernetes da attacchi malevoli pre-registrando i tuoi processi fidati e le firme dei file fidati. Tarian rileverà processi sconosciuti e modifiche ai file registrati, quindi invierà avvisi e intraprenderà un'azione automatizzata. Salva il tuo ambiente K8s dai Ransomware!

Vogliamo mantenere questo progetto come open-source per combattere gli attacchi al nostro ecosistema Kubernetes preferito. Con un contributo continuo, possiamo combattere le minacce insieme come comunità.

Build status Go Report Card codecov


Come funziona Tarian?

L'Agente del Cluster Tarian viene eseguito nel cluster Kubernetes rilevando processi sconosciuti e modifiche sconosciute ai file, li segnala al Server Tarian e facoltativamente intraprende un'azione: elimina il pod violato. Utilizza eBPF per rilevare nuovi processi. Per il rilevamento delle modifiche ai file, l'Agente del Cluster Tarian inietta un container sidecar nel pod dell'applicazione principale che verificherà i checksum dei file nel percorso configurato e li confronterà con i checksum registrati nel Server Tarian. Tarian farà parte del pod della tua applicazione dall'ambiente di sviluppo a quello di produzione, quindi puoi registrare nel tuo DB Tarian cosa dovrebbe accadere ed essere eseguito nel tuo container + le firme dei file da monitorare + cosa può essere notificato + l'azione da intraprendere (autodistruzione del pod) in base alle modifiche rilevate. Sposta a sinistra il tuo meccanismo di rilevamento!

Cosa succede se si verifica una modifica sconosciuta all'interno del container che non è presente nel DB di registrazione di Tarian? Come reagisce Tarian?

Se si verifica una modifica sconosciuta, Tarian può semplicemente notificare le analisi osservate al tuo Team di Sicurezza. Poi i tuoi Ingegneri della Sicurezza possono registrare quella modifica nel DB di Tarian, se è considerata una minaccia o meno. Inoltre, in base alla loro analisi, possono configurare quale azione intraprendere quando quella modifica si ripresenta.

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 con il DB della comunità open-source di Tarian con tutti i log, le stringhe da cercare, le osservazioni, la trasparenza, le azioni da configurare... Praticamente tutto ciò che gli Esperti vogliono segnalare e condividere con la comunità. Puoi utilizzare queste informazioni come utente di Tarian e configurare le azioni nell'app Tarian utilizzata nel tuo ambiente. Questo è fondamentalmente un meccanismo per condividere informazioni sulle minacce e su cosa fare con esse. Questo aiuta tutti coloro che utilizzano Tarian a intraprendere azioni insieme nei rispettivi ambienti K8s condividendo le loro conoscenze ed esperienze.

Quale tipo di azione/i intraprenderebbe Tarian in base a minacce note?

Tarian semplicemente autodistruggerebbe il pod su cui è in esecuzione. 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 dal deployment K8s. Tarian distruggerà i pod solo se glielo dici. Se non vuoi che accada alcuna azione, non devi configurarne o attivarne alcuna; puoi semplicemente dire a Tarian di notificarti. Tarian fa essenzialmente ciò che vuoi che sia fatto per ridurre il rischio.

Perché un altro nuovo strumento di sicurezza quando ci sono già molti strumenti disponibili, come Falco, Kube-Hunter, Kube-Bench, Calico Enterprise Security e molti altri strumenti di sicurezza (open-source e commerciali) in grado di rilevare e prevenire minacce a livello di rete, infrastruttura e applicazione? Perché Tarian?

Il motivo principale per cui Tarian è nato è per combattere le minacce in Kubernetes insieme come comunità. Un altro motivo è: cosa succede se esiste ancora qualche attacco sofisticato in grado di penetrare ogni livello della tua sicurezza, raggiungere la tua app in runtime (Remote Code Execution) e i tuoi volumi di archiviazione, e capace di diffondersi per danneggiare o bloccare la tua infrastruttura e i tuoi dati?! Cosa vuoi fare di fronte a 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à. Da un punto di vista tecnico, Tarian può aiutare a ridurre il rischio distruggendo le risorse infette.

Diagramma dell'architettura

Arch. Diagram

Requisiti

  • Versione di Kubernetes supportata (attualmente 1.22+)
  • Versione del kernel >= 5.8
  • Kernel con informazioni BTF per supportare eBPF CO-RE. Alcune delle principali distribuzioni Linux includono già BTF nel kernel. Se il tuo kernel non lo include, dovrai compilare un kernel personalizzato. Vedi BPF CO-RE.

Testato su ambienti/servizi Kubernetes popolari:

Preparare i namespace

root@kitploit:~
kubectl create namespace tarian-system

Configurare il database Dgraph

Puoi utilizzare qualsiasi opzione di installazione di Dgraph purché sia accessibile dal server tarian.

Installare tarian

  1. Installare tarian utilizzando Helm
root@kitploit:~
helm repo add tarian https://kube-tarian.github.io/helm-charts
helm repo update

helm upgrade -i tarian-server tarian/tarian-server --devel -n tarian-system --set server.dgraph.address=DGRAPH_ADDRESS:PORT
helm upgrade -i tarian-cluster-agent tarian/tarian-cluster-agent --devel -n tarian-system
  1. Attendere che tutti i pod siano pronti
root@kitploit:~
kubectl wait --for=condition=ready pod --all -n tarian-system
  1. Applicare lo schema di Dgraph
root@kitploit:~
kubectl exec -ti deploy/tarian-server -n tarian-system -- ./tarian-server dgraph apply-schema

Installare tarian utilizzando la CLI tarianctl

Scarica il binario tarianctl dalla pagina delle release di Github.

Esegui:

root@kitploit:~
tarianctl install

Puoi utilizzare i seguenti flag per personalizzare la tua installazione.

root@kitploit:~
Installa Tarian su Kubernetes.

Utilizzo:
  tarianctl install [flags]

Flags:
      --agents-values strings   Percorso del file dei valori Helm per Tarian Cluster Agent e Node agent .
      --charts string           Percorso della directory dei chart Helm di tarian.
      --dgraph-values strings   Percorso del file dei valori Helm per DGraph.
  -h, --help                    Aiuto per install
  -n, --namespace string        Namespace in cui installare Tarian. (default "tarian-system")
      --nats-values strings     Percorso del file dei valori Helm per Nats.
      --server-values strings   Percorso del file dei valori Helm per Tarian Server.

Global Flags:
  -k, --kubeconfig string                 percorso del file kubeconfig da utilizzare
  -e, --log-formatter string              formati di log validi: json, text(default) (default "text")
  -l, --log-level string                  livelli di log validi: debug, info(default), warn/warning, error, fatal (default "info")
  -s, --server-address string             indirizzo del server tarian con cui comunicare (default "localhost:50051")
  -c, --server-tls-ca-file string         file CA che il server utilizza per la connessione TLS
  -t, --server-tls-enabled                se abilitato, comunicherà con il server utilizzando TLS
  -i, --server-tls-insecure-skip-verify   se impostato su true, salterà la verifica della catena di certificati e del nome host del server (default true)

Configurazione

Vedi i valori dei chart Helm per

  • tarian-server
  • tarian-cluster-agent

Configurazione specifica per Cloud / Vendor

Cluster GKE privato

Un cluster GKE privato crea di default regole firewall per limitare la comunicazione tra master e nodi solo sulle porte 443 e 10250. Per iniettare il container tarian-pod-agent, tarian utilizza un webhook di ammissione mutante. Il server webhook è in esecuzione sulla porta 9443. Pertanto, è necessario creare una nuova regola firewall per consentire il traffico in ingresso dall'intervallo di indirizzi IP del master ai nodi sulla porta TCP 9443.

Per maggiori dettagli, consulta la documentazione GKE su questo argomento: https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#add_firewall_rules.

Utilizzo

Utilizzare tarianctl per controllare tarian-server

  1. Scarica dalla pagina delle release di Github
  2. Estrai il file e copia tarianctl nella tua directory PATH
  3. Esponi tarian-server alla tua macchina, tramite Ingress o port-forward. Per questo esempio, utilizzeremo port-forward:
root@kitploit:~
kubectl port-forward svc/tarian-server -n tarian-system 41051:80
  1. Configura l'indirizzo del server con una variabile d'ambiente
root@kitploit:~
export TARIAN_SERVER_ADDRESS=localhost:41051

Per visualizzare gli eventi di violazione

root@kitploit:~
tarianctl get events

Aggiungere un vincolo sui processi

root@kitploit:~
tarianctl add constraint --name nginx --namespace default \
  --match-labels run=nginx \
  --allowed-processes=pause,tarian-pod-agent,nginx 
root@kitploit:~
tarianctl get constraints

Aggiungere un vincolo sui file

root@kitploit:~
tarianctl add constraint --name nginx-files --namespace default \
  --match-labels run=nginx \
  --allowed-file-sha256sums=/usr/share/nginx/html/index.html=38ffd4972ae513a0c79a8be4573403edcd709f0f572105362b08ff50cf6de521
root@kitploit:~
tarianctl get constraints

Eseguire l'agente tarian in un pod

Dopo aver creato i vincoli, iniettiamo tarian-pod-agent nel pod aggiungendo un'annotazione:

root@kitploit:~
metadata:
  annotations:
    pod-agent.k8s.tarian.dev/threat-scan: "true"

Un pod con questa annotazione avrà un container aggiuntivo iniettato (tarian-pod-agent). Il container tarian-pod-agent verificherà continuamente l'ambiente di runtime in base ai vincoli registrati. Qualsiasi violazione verrà segnalata e sarà accessibile con tarianctl get events.

Demo: Prova un pod che viola i vincoli

root@kitploit:~
kubectl apply -f https://raw.githubusercontent.com/kube-tarian/tarian/main/dev/config/monitored-pod/configmap.yaml
kubectl apply -f https://raw.githubusercontent.com/kube-tarian/tarian/main/dev/config/monitored-pod/pod.yaml

# attendi che diventi pronto
kubectl wait --for=condition=ready pod nginx

# simula l'esecuzione di un processo sconosciuto
kubectl exec -ti nginx -c nginx -- sleep 15

# dovresti vederlo segnalato in tarian
tarianctl get events

Integrazione con Alert Manager

Tarian viene fornito di default con Prometheus Alert Manager. Se desideri utilizzare un'altra istanza di alert manager:

root@kitploit:~
helm install tarian-server tarian/tarian-server --devel \
  --set server.alert.alertManagerAddress=http://alertmanager.monitoring.svc:9093 \
  --set alertManager.install=false \
  -n tarian-system

Per disabilitarlo, puoi impostare il valore alertManagerAddress a vuoto.

Risoluzione dei problemi

Vedi docs/troubleshooting.md

Registrazione Automatica dei Vincoli

Quando tarian-pod-agent viene eseguito in modalità di registrazione, invece di segnalare processi e file sconosciuti come violazioni, li registra automaticamente come nuovo vincolo. Ciò è comodo per risparmiare tempo dalla registrazione manuale.

Per abilitare la registrazione dei vincoli, è necessario configurare il cluster-agent.

root@kitploit:~
helm install tarian-cluster-agent tarian/tarian-cluster-agent --devel -n tarian-system \
  --set clusterAgent.enableAddConstraint=true
root@kitploit:~
metadata:
  annotations:
    # registra sia i processi che i checksum dei file
    pod-agent.k8s.tarian.dev/register: "processes,files"
    # ignora percorsi specifici dalla registrazione automatica
    pod-agent.k8s.tarian.dev/register-file-ignore-paths: "/usr/share/nginx/**/*.txt"

La registrazione automatica dei vincoli può essere effettuata anche in un cluster di sviluppo/staging, in modo che ci siano meno modifiche in produzione.

Altre annotazioni supportate

root@kitploit:~
metadata:
  annotations:
    # specifica la frequenza con cui tarian-pod-agent deve verificare il checksum dei file
    pod-agent.k8s.tarian.dev/file-validation-interval: "1m"

Proteggere tarian-server con TLS

Per proteggere tarian-server con TLS, crea un secret contenente il certificato TLS. Puoi creare il secret manualmente o utilizzando Cert Manager. Una volta ottenuto il secret, puoi passare il nome al valore del chart Helm:

root@kitploit:~
helm upgrade -i tarian-server tarian/tarian-server --devel -n tarian-system \
  --set server.tlsSecretName=tarian-server-tls

Contribuire

Vedi docs/contributing.md

Codice di Condotta

Vedi CODE_OF_CONDUCT.md

Elenco CodeOwners e Maintainers

Vedi MAINTAINERS.md

Unisciti al nostro canale Slack " tarian "

Kube-Tarian-Slack

Scarica lo strumento
AmbienteFunzionanteNote
Kind v0.14.0✔️
Minikube v1.26.0✔️
Linode Kubernetes Engine (LKE) 1.22✔️
Digital Ocean Kubernetes Engine (DOKS) 1.22✔️
Google Kubernetes Engine (GKE) 1.22✔️
Amazon Elastic Kubernetes Engine (EKS)➖kernel < 5.8
Azure Kubernetes Service (AKS)➖kernel < 5.8