Shell inversa

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

Un processo è iniziato con il reindirizzamento del flusso a un socket connesso remoto. La generazione di una shell connessa alla rete può consentire a un malintenzionato di eseguire azioni arbitrarie dopo una compromissione iniziale limitata.

Come rispondere

Per rispondere a questo risultato:

Passaggio 1: esamina i dettagli del risultato

  1. Apri un risultato Reverse Shell come indicato in Revisione dei risultati. Il riquadro dei dettagli del risultato si apre nella scheda Riepilogo.

  2. Nella scheda Riepilogo, esamina le informazioni nelle seguenti sezioni:

    • Che cosa è stato rilevato, in particolare i seguenti campi:
      • Binario del programma: il percorso assoluto del processo avviato con il reindirizzamento del flusso a un socket remoto.
      • Argomenti: gli argomenti forniti durante la chiamata del binario del processo.
    • Risorsa interessata, in particolare i seguenti campi:
      • Nome completo risorsa: il nome completo risorsa del cluster.
      • Nome completo del progetto: il progetto Google Cloud interessato.
    • Link correlati, in particolare i seguenti campi:
      • Indicatore VirusTotal: link alla pagina di analisi di VirusTotal.
  3. Nella visualizzazione dettagliata del risultato, fai clic sulla scheda JSON.

  4. Nel JSON, prendi nota dei seguenti campi.

    • resource:
      • project_display_name: il nome del progetto che contiene l'asset.
    • sourceProperties:
      • Pod_Namespace: il nome dello spazio dei nomi Kubernetes del pod.
      • Pod_Name: il nome del pod GKE.
      • Container_Name: il nome del container interessato.
      • VM_Instance_Name: il nome del nodo GKE in cui è stato eseguito il pod.
      • Reverse_Shell_Stdin_Redirection_Dst_Ip: l'indirizzo IP remoto della connessione
      • Reverse_Shell_Stdin_Redirection_Dst_Port: la porta remota
      • Reverse_Shell_Stdin_Redirection_Src_Ip: l'indirizzo IP locale della connessione
      • Reverse_Shell_Stdin_Redirection_Src_Port: la porta locale
      • Container_Image_Uri: il nome dell'immagine container in esecuzione.

Passaggio 2: esamina il cluster e il nodo

  1. Nella console Google Cloud , vai alla pagina Cluster Kubernetes.

    Vai ai cluster Kubernetes

  2. Nella barra degli strumenti della console Google Cloud , seleziona il progetto elencato in resource.project_display_name, se necessario.

  3. Seleziona il cluster elencato in resource.name. Prendi nota di eventuali metadati relativi al cluster e al suo proprietario.

  4. Fai clic sulla scheda Nodi. Seleziona il nodo elencato in VM_Instance_Name.

  5. Fai clic sulla scheda Dettagli e prendi nota dell'annotazione container.googleapis.com/instance_id.

Passaggio 3: rivedi il pod

  1. Nella console Google Cloud , vai alla pagina Workload Kubernetes.

    Vai a Carichi di lavoro Kubernetes

  2. Nella barra degli strumenti della console Google Cloud , seleziona il progetto elencato in resource.project_display_name, se necessario.

  3. Se necessario, filtra in base al cluster elencato in resource.name e allo spazio dei nomi del pod elencato in Pod_Namespace.

  4. Seleziona il pod elencato in Pod_Name. Prendi nota di eventuali metadati relativi al pod e al suo proprietario.

Passaggio 4: controlla i log

  1. Nella console Google Cloud , vai a Esplora log.

    Vai a Esplora log

  2. Nella barra degli strumenti della console Google Cloud , seleziona il progetto elencato in resource.project_display_name, se necessario.

  3. Imposta Seleziona intervallo di tempo sul periodo di interesse.

  4. Nella pagina che viene caricata, segui questi passaggi:

    1. 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"
    2. 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
    3. Trova i log della console dei nodi GKE utilizzando il seguente filtro:
      • resource.type="gce_instance"
      • resource.labels.instance_id="instance_id"

Passaggio 5: esamina il contenitore in esecuzione

Se il container è ancora in esecuzione, potrebbe essere possibile esaminare direttamente l'ambiente del container.

  1. Vai alla console Google Cloud .

    Apri la Google Cloud console

  2. Nella barra degli strumenti della console Google Cloud , seleziona il progetto elencato in resource.project_display_name, se necessario.

  3. Fai clic su Attiva Cloud Shell.

  4. Ottieni le credenziali GKE per il tuo cluster eseguendo i seguenti comandi.

    Per i cluster di zona:

      gcloud container clusters get-credentials cluster_name --zone location --project resource.project_display_name
    

    Per i cluster regionali:

      gcloud container clusters get-credentials cluster_name --region location --project resource.project_display_name
    
  5. Avvia una shell all'interno dell'ambiente container eseguendo:

      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

  1. Esamina le voci del framework MITRE ATT&CK per questo tipo di risultato: Interprete di comandi e scripting, Trasferimento di strumenti di ingresso.
  2. 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.
  3. 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