Immagini Malevole: User Execution - Malicious Image (T1204.003)

Gli attaccanti sfruttano la fiducia degli utenti nelle immagini cloud e container per eseguire codice malevolo. Questa tecnica si basa sul deployment di Amazon Machine Images (AMI), Google Cloud Images, Azure Images o container Docker backdoor che appaiono legittime ma contengono payload nascosti.

L'approccio si inserisce nella tattica TA0002 (Execution) della kill chain, permettendo agli avversari di bypassare i controlli di Initial Access tradizionali. Le immagini compromesse vengono caricate su repository pubblici dove utenti ignari le scaricano e deployano, attivando involontariamente codice malevolo come cryptominer o backdoor persistenti.

Il gruppo TeamTNT ha dimostrato l'efficacia di questa tecnica facendo leva proprio su Docker images malevole per compromettere infrastrutture cloud. La semplicità dell'attacco e la difficoltà di detection lo rendono particolarmente insidioso per organizzazioni che fanno largo uso di container e servizi IaaS.

Costruire una Docker image backdoor richiede pochi passaggi ma grande attenzione ai dettagli per evitare detection. Partiamo da un'immagine base legittima e aggiungiamo il nostro payload mantenendo funzionalità apparentemente normali.

Creiamo un Dockerfile che nasconde un reverse shell Python:

FROM ubuntu:20.04
RUN apt-get update && apt-get install -y python3 netcat
COPY app.py /opt/
RUN echo "python3 /opt/backdoor.py &" >> /root/.bashrc
CMD ["/bin/bash"]

Il payload può essere mascherato come servizio legittimo. Ad esempio, un finto health-check che in realtà stabilisce connessione C2:

docker build -t mycompany/webapp:latest . docker tag mycompany/webapp:latest victim/webapp:v1.2.3 docker push victim/webapp:v1.2.3

Per AWS AMI, l'approccio richiede modifica di un'immagine esistente. Lanciamo un'istanza da AMI pulita, installiamo la backdoor e creiamo nuova AMI:

aws ec2 run-instances --image-id ami-legitimate --user-data file://backdoor.sh aws ec2 create-image --instance-id i-malicious --name "Ubuntu-20.04-optimized"

Lo user-data script può contenere download e esecuzione di payload remoti, mantenendo apparenza di normale bootstrap. Il naming è cruciale: nomi come "official-ubuntu-hardened" o "company-base-image-v2" aumentano drasticamente le chance di deployment.

Per Kubernetes, l'attacco sfrutta namespace permissivi o registry mal configurati. Un pod spec apparentemente innocuo può nascondere container sidecar malevoli che si attivano solo dopo determinati trigger temporali o di rete.

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

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo