Accesso con credenziali: secret a cui è stato eseguito l'accesso nello spazio dei nomi Kubernetes

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

Per accedere agli oggetti Secret nel cluster è stato utilizzato il service account Kubernetes default di un pod. Il account di servizio Kubernetes default non deve avere accesso agli oggetti Secret, a meno che tu non abbia concesso esplicitamente questo accesso con un oggetto Role o un oggetto ClusterRole.

Event Threat Detection è l'origine di questo risultato.

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.

Come rispondere

Per rispondere a questo risultato, segui questi passaggi:

  1. Identifica l'ambito di accesso:

    • Nel JSON del risultato, prendi nota del valore di finding.resourceName. Indica lo spazio dei nomi o la risorsa Kubernetes in cui si è verificato l'accesso.
    • Prendi nota del valore di resource.sourceProperties.affectedResources.gcpResourceName. Questo è il nome completo della risorsa del secret Kubernetes a cui è stato eseguito l'accesso.
  2. Esamina gli audit log di Cloud:

    • Vai a Esplora log nella console Google Cloud .
    • Filtra i log per trovare le azioni specifiche intraprese sui secret di Kubernetes. Utilizza il seguente filtro:

      resource.type="k8s_cluster"
      protoPayload.methodName=~"io\.k8s\.core\.v1\.secrets\..*"
      
    • Cerca voci con valori protoPayload.methodName come io.k8s.core.v1.secrets.get e io.k8s.core.v1.secrets.list nel periodo in cui è stato generato il risultato. Questi log possono fornire maggiori informazioni su chi o cosa ha avuto accesso al secret e sulle azioni eseguite.

    • Verifica le modifiche al controllo dell'accesso basato sui ruoli (RBAC), necessarie per consentire a un pod di accedere al secret, utilizzando il seguente filtro dei log:

      resource.type="k8s_cluster"
      protoPayload.methodName:"io\.k8s\.authorization\.rbac\.v1\..*"
      

      In particolare, cerca i log con methodName di io.k8s.authorization.rbac.v1.roles.create/update o io.k8s.authorization.rbac.v1.rolebindings.create/update.

  3. Esamina la configurazione RBAC di Google Kubernetes Engine:

    • Vai alla sezione Kubernetes Engine nella console Google Cloud .
    • Vai al cluster e seleziona Visualizzatore oggetti.
    • Espandi il gruppo rbac.authorization.k8s.io.
    • Ispeziona gli oggetti Role e RoleBinding (e ClusterRole / ClusterRoleBinding, se applicabile) all'interno dello spazio dei nomi identificato in finding.resourceName.
    • Cerca i ruoli che concedono autorizzazioni get o list su secrets.
    • Identifica il RoleBinding che associa il account di servizio default (o altri service account) nello spazio dei nomi al ruolo che concede l'accesso al secret.
  4. Risolvere il problema delle autorizzazioni eccessive: