Questo documento descrive un tipo di risultato di minaccia in Security Command Center. I risultati delle minacce vengono generati dai rilevatori di minacce quando rilevano una potenziale minaccia nelle tue risorse cloud. Per un elenco completo dei risultati relativi alle minacce disponibili, consulta l'Indice dei risultati relativi alle minacce.
Panoramica
Container Threat Detection ha osservato un processo che ha generato inaspettatamente un processo shell figlio. Questo evento potrebbe indicare che un utente malintenzionato sta tentando di utilizzare in modo illecito comandi e script della shell.
Come rispondere
Per rispondere a questo risultato:
Passaggio 1: esamina i dettagli del risultato
Apri un risultato
Unexpected Child Shell
come indicato in Revisione dei risultati. Il riquadro dei dettagli del risultato si apre nella scheda Riepilogo.Nella scheda Riepilogo, esamina le informazioni nelle seguenti sezioni:
- Che cosa è stato rilevato, in particolare i seguenti campi:
- Processo padre: il processo che ha creato in modo imprevisto il processo della shell secondaria.
- Processo figlio: il processo shell figlio.
- Argomenti: gli argomenti forniti al binario del processo della shell secondaria.
- Variabili di ambiente: le variabili di ambiente del file binario del processo della shell secondaria.
- Contenitori: il nome del contenitore.
- URI dei container: l'URI dell'immagine del container.
- Pod Kubernetes: il nome e lo spazio dei nomi del pod.
- Risorsa interessata, in particolare i seguenti campi:
- Nome visualizzato risorsa: il nome della risorsa interessata.
- Nome completo risorsa: il nome completo risorsa
del cluster. Il nome completo della risorsa include le seguenti
informazioni:
- Il progetto che contiene il cluster:
projects/PROJECT_ID
- La località in cui si trova il cluster:
zone/ZONE
olocations/LOCATION
- Il nome del cluster:
projects/CLUSTER_NAME
- Il progetto che contiene il cluster:
- Link correlati, in particolare i seguenti campi:
- Indicatore VirusTotal: link alla pagina di analisi di VirusTotal.
- Che cosa è stato rilevato, in particolare i seguenti campi:
Fai clic sulla scheda JSON e prendi nota dei seguenti campi:
+processes
: un array contenente tutti i processi correlati al risultato. Questo array include il processo della shell figlio e il processo padre.
+resource
:
+project_display_name
: il nome del progetto che contiene gli asset.
+sourceProperties
:
+VM_Instance_Name
: il nome del nodo GKE in cui è stato eseguito il pod.
Passaggio 2: esamina il cluster e il nodo
Nella console Google Cloud , vai alla pagina Cluster Kubernetes.
Nella barra degli strumenti della console Google Cloud , seleziona il progetto elencato in
resource.project_display_name
, se necessario.Seleziona il cluster elencato in
resource.name
. Prendi nota di eventuali metadati relativi al cluster e al suo proprietario.Fai clic sulla scheda Nodi. Seleziona il nodo elencato in
VM_Instance_Name
.Fai clic sulla scheda Dettagli e prendi nota dell'annotazione
container.googleapis.com/instance_id
.
Passaggio 3: rivedi il pod
Nella console Google Cloud , vai alla pagina Workload Kubernetes.
Nella barra degli strumenti della console Google Cloud , seleziona il progetto che hai annotato nel Nome completo risorsa (
resource.name
) del cluster nel riepilogo del risultato, se necessario.Fai clic su Mostra workload del sistema.
Filtra l'elenco dei carichi di lavoro in base al nome del cluster annotato in Nome completo della risorsa (
resource.name
) del riepilogo del risultato e, se necessario, lo spazio dei nomi (kubernetes.pods.ns
) del pod annotato.Fai clic sul nome del carico di lavoro che corrisponde al valore della proprietà
VM_Instance_Name
che hai annotato in precedenza nel JSON del problema. Viene visualizzata la pagina Dettagli pod.Nella pagina Dettagli pod, prendi nota di eventuali informazioni sul pod che potrebbero aiutarti a risolvere la minaccia.
Passaggio 4: controlla i log
Nella console Google Cloud , vai a Esplora log.
Nella barra degli strumenti della console Google Cloud , seleziona il progetto elencato in
resource.project_display_name
.Imposta Seleziona intervallo di tempo sul periodo di interesse.
Nella pagina che viene caricata, segui questi passaggi:
- Trova i log dei pod per
Pod_Name
utilizzando il seguente filtro:resource.type="k8s_container"
resource.labels.project_id="resource.project_display_name"
resource.labels.location="location"
resource.labels.cluster_name="cluster_name"
resource.labels.namespace_name="Pod_Namespace"
resource.labels.pod_name="Pod_Name"
- Trova i log di controllo del cluster utilizzando il seguente filtro:
logName="projects/resource.project_display_name/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
resource.labels.project_id="resource.project_display_name"
resource.labels.location="location"
resource.labels.cluster_name="cluster_name"
Pod_Name
- Trova i log della console dei nodi GKE utilizzando il seguente filtro:
resource.type="gce_instance"
resource.labels.instance_id="instance_id"
- Trova i log dei pod per
Passaggio 5: esamina il contenitore in esecuzione
Se il container è ancora in esecuzione, potrebbe essere possibile esaminare direttamente l'ambiente del container.
Vai alla console Google Cloud .
Nella barra degli strumenti della console Google Cloud , seleziona il progetto elencato in
resource.project_display_name
.Fai clic su Attiva Cloud Shell.
Ottieni le credenziali GKE per il tuo cluster eseguendo i seguenti comandi.
Per i cluster zonali, esegui questo comando:
gcloud container clusters get-credentials cluster_name --zone location --project resource.project_display_name
Per i cluster regionali, esegui questo comando:
gcloud container clusters get-credentials cluster_name --region location --project resource.project_display_name
Per avviare una shell all'interno dell'ambiente del container, esegui questo comando:
kubectl exec --namespace=Pod_Namespace -ti Pod_Name -c Container_Name -- /bin/sh
Questo comando richiede che nel contenitore sia installata una shell in
/bin/sh
.Per visualizzare tutti i processi in esecuzione nel container, esegui questo comando nella shell del container:
ps axjf
Questo comando richiede l'installazione di
/bin/ps
nel contenitore.
Passaggio 6: ricerca di metodi di attacco e risposta
- Esamina le voci del framework MITRE ATT&CK per questo tipo di risultato: Interprete di comandi e scripting: shell Unix.
- Controlla il valore hash SHA-256 del file binario segnalato come dannoso su VirusTotal facendo clic sul link nell'indicatore VirusTotal. VirusTotal è un servizio di proprietà di Alphabet che fornisce il contesto di file, URL, domini e indirizzi IP potenzialmente dannosi.
- Per sviluppare un piano di risposta, combina i risultati dell'indagine con la ricerca MITRE e l'analisi di VirusTotal.
Passaggio 7: implementa la risposta
Il seguente piano di risposta potrebbe essere appropriato per questo risultato, ma potrebbe anche influire sulle operazioni. Valuta attentamente le informazioni raccolte durante l'indagine per determinare il modo migliore per risolvere i risultati.
- Contatta il proprietario del progetto con il container compromesso.
- Arresta o elimina il container compromesso e sostituiscilo con un nuovo container.
Passaggi successivi
- Scopri come utilizzare i risultati relativi alle minacce in Security Command Center.
- Consulta l'indice dei risultati delle minacce.
- Scopri come esaminare un risultato tramite la console Google Cloud .
- Scopri di più sui servizi che generano risultati di minacce.