Job di Orchestrazione Container: Container Orchestration Job (T1053.007)

La tecnica T1053.007 descrive l'abuso delle funzionalità di pianificazione offerte dalle piattaforme di orchestrazione container, con Kubernetes come bersaglio principale. Un attore ostile può creare un oggetto CronJob per programmare l'esecuzione di uno o più Job, ovvero container configurati per lanciare codice malevolo su specifici nodi del cluster a orari prestabiliti, in modo analogo a un classico cron di Linux.

La forza di questa tecnica sta nella sua doppia natura. Da un lato serve a eseguire codice (TA0002), poiché il container schedulato avvia processi arbitrari controllati dall'attaccante. Dall'altro garantisce persistenza (TA0003): un Deployment o un CronJob può essere configurato per mantenere nel tempo un numero costante di container, ricreandoli automaticamente anche dopo restart, rotazione di credenziali o rimozione manuale del pod. La ricreazione automatica del carico rende l'eradicazione particolarmente insidiosa.

A questo si aggiunge la dimensione della privilege escalation (TA0004): se il Job viene eseguito con service account privilegiati, container in modalità privileged o montaggi che espongono il socket del runtime, l'attaccante può passare dal contesto del pod al nodo sottostante e all'intero piano di controllo.

È una tecnica interamente cloud-native: non lascia tracce su registri di sistema tradizionali, ma vive dentro l'API server di Kubernetes e negli oggetti dichiarativi del cluster. Comprenderla significa presidiare RBAC, namespace, registry di immagini e finestre di schedulazione.

Sul fronte offensivo, la simulazione lab-safe richiede un cluster di test — un minikube o kind (entrambi open source) isolato da qualsiasi ambiente di produzione. Il presupposto è disporre di credenziali con permessi create sull'oggetto CronJob nel namespace target, condizione che in un red team nasce tipicamente da un service account token esfiltrato o da RBAC eccessivamente permissivo.

La catena tipica parte dalla ricognizione dei permessi. Con kubectl (open source) si verifica cosa è consentito:

kubectl auth can-i create cronjobs --namespace default

Se la risposta è affermativa, si può dichiarare un manifest YAML che definisce un CronJob con schedule (ad esempio "@hourly" o una crontab espressa nei cinque campi standard), un'immagine e un comando arbitrario nel campo command. L'applicazione avviene con:

kubectl apply -f cronjob.yaml

Un payload dimostrativo può limitarsi a un container leggero che apre una reverse shell verso un listener di laboratorio, oppure che monta risorse del nodo per validare il salto di contesto. Per verificare l'esecuzione:

kubectl get jobs --watch

e l'ispezione dei log del pod generato con kubectl logs.

La fase di escalation si concentra sui service account: enumerare i token montati automaticamente in /var/run/secrets/kubernetes.io/serviceaccount/, testare l'accesso all'API server e cercare CronJob eseguiti come root o con securityContext.privileged: true, che consentono di raggiungere il filesystem del nodo.

Per automatizzare l'assessment sono utili tool consolidati. kube-hunter (open source) individua superfici d'attacco e configurazioni deboli; kube-bench (open source) verifica la conformità ai CIS Benchmark, evidenziando RBAC lassista e Pod Security assenti. Peirates (open source) è specifico per pentest Kubernetes e include moduli per abusare di service account e schedulare carichi. Per l'analisi dei permessi RBAC, rbac-tool e kubectl-who-can (entrambi open source) mappano chi può creare oggetti sensibili.

In un engagement realistico, la persistenza va documentata mostrando come il CronJob sopravviva alla cancellazione dei pod figli: eliminando il singolo pod, l'oggetto padre lo ricrea alla schedulazione successiva. Questo comportamento va sempre replicato in ambiente controllato, con cleanup finale via kubectl delete cronjob per non lasciare artefatti residui nel cluster di test.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.