Ce document décrit un type de résultat de menace dans Security Command Center. Les résultats de menace sont générés par les détecteurs de menaces lorsqu'ils détectent une menace potentielle dans vos ressources cloud. Pour obtenir la liste complète des résultats de menace disponibles, consultez l'index des résultats de menace.
Présentation
Une bibliothèque ne faisant pas partie de l'image de conteneur d'origine a été chargée.
Les pirates informatiques peuvent charger des bibliothèques malveillantes dans des programmes existants afin de contourner les protections d'exécution du code et de masquer du code malveillant. Il est important de s'assurer que vos conteneurs sont immuables. Il s'agit d'un problème de faible gravité, car il est possible que votre organisation ne suive pas cette bonne pratique. Des résultats Execution: Added Malicious Library Loaded
correspondants s'affichent lorsque le hachage du binaire est un indicateur de compromission (IoC) connu.
Comment répondre
Pour répondre à ce résultat, procédez comme suit :
Étape 1 : Examiner les détails du résultat
Ouvrez un résultat
Added Library Loaded
comme indiqué dans la section Examiner les résultats. Le panneau d'informations sur le résultat s'ouvre sur l'onglet Résumé.Dans l'onglet Récapitulatif, examinez les informations des sections suivantes :
- Ce qui a été détecté, en particulier les champs suivants :
- Binaire du programme : chemin d'accès complet du binaire du processus qui a chargé la bibliothèque.
- Bibliothèques : détails concernant la bibliothèque ajoutée.
- Arguments : arguments fournis lors de l'appel du binaire du processus.
- Ressource concernée, en particulier les champs suivants :
- Nom complet de la ressource : nom complet de la ressource du cluster.
- Liens associés, en particulier les champs suivants :
- Indicateur VirusTotal : lien vers la page d'analyse VirusTotal.
- Ce qui a été détecté, en particulier les champs suivants :
Cliquez sur l'onglet JSON et notez les champs suivants :
resource
:project_display_name
: nom du projet contenant le composant.
sourceProperties
:Pod_Namespace
: nom de l'espace de noms Kubernetes du pod.Pod_Name
: nom du pod GKE.Container_Name
: nom du conteneur concerné.Container_Image_Uri
: nom de l'image de conteneur en cours d'exécution.VM_Instance_Name
: nom du nœud GKE sur lequel le pod a été exécuté.
Identifiez d'autres résultats qui se sont produits à une période similaire pour ce conteneur. Les résultats associés peuvent indiquer que cette activité était malveillante, plutôt qu'un manquement aux bonnes pratiques.
Étape 2 : Vérifier le cluster et le nœud
Dans la console Google Cloud , accédez à la page Clusters Kubernetes.
Dans la barre d'outils de la console Google Cloud , sélectionnez le projet listé dans
resource.project_display_name
, si nécessaire.Sélectionnez le cluster répertorié dans
resource.name
. Notez toutes les métadonnées concernant le cluster et son propriétaire.Cliquez sur l'onglet Nœuds. Sélectionnez le nœud répertorié dans
VM_Instance_Name
.Cliquez sur l'onglet Détails et notez l'annotation
container.googleapis.com/instance_id
.
Étape 3 : Examiner le pod
Dans la console Google Cloud , accédez à la page Charges de travail Kubernetes.
Dans la barre d'outils de la console Google Cloud , sélectionnez le projet listé dans
resource.project_display_name
, si nécessaire.Filtrez le cluster listé dans la ligne Nom complet de la ressource de l'onglet Résumé des détails du résultat et l'espace de noms du pod listé dans
Pod_Namespace
, si nécessaire.Sélectionnez le pod répertorié dans
Pod_Name
. Notez les métadonnées concernant le pod et son propriétaire.
Étape 4 : Vérifier les journaux
Dans la console Google Cloud , accédez à l'explorateur de journaux.
Dans la barre d'outils de la console Google Cloud , sélectionnez le projet listé dans
resource.project_display_name
, si nécessaire.Définissez Sélectionner une période sur la période qui vous intéresse.
Sur la page qui s'affiche, procédez comme suit :
- Recherchez
Pod_Name
dans les journaux des pods à l'aide du filtre suivant :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"
- Recherchez les journaux d'audit du cluster à l'aide du filtre suivant :
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
- Recherchez les journaux de la console de nœud GKE à l'aide du filtre suivant :
resource.type="gce_instance"
resource.labels.instance_id="instance_id"
- Recherchez
Étape 5 : Examiner le conteneur en cours d'exécution
Si le conteneur est toujours en cours d'exécution, il peut être possible d'analyser directement l'environnement du conteneur.
Accédez à la console Google Cloud .
Dans la barre d'outils de la console Google Cloud , sélectionnez le projet listé dans
resource.project_display_name
, si nécessaire.Cliquez sur Activer Cloud Shell.
Obtenez les identifiants GKE pour votre cluster en exécutant les commandes suivantes.
Pour les clusters zonaux :
gcloud container clusters get-credentials cluster_name --zone location --project resource.project_display_name
Pour les clusters régionaux :
gcloud container clusters get-credentials cluster_name --region location --project resource.project_display_name
Récupérez la bibliothèque ajoutée en exécutant la commande suivante :
kubectl cp Pod_Namespace/Pod_Name: Added_Library_Fullpath -c Container_Name local_file
Remplacez local_file par un chemin d'accès local au fichier pour stocker la bibliothèque ajoutée.
Connectez-vous à l'environnement de conteneur en exécutant la commande suivante :
kubectl exec --namespace=Pod_Namespace -ti Pod_Name -c Container_Name -- /bin/sh
Pour ce faire, une interface système est installée sur le conteneur à l'adresse
/bin/sh
.
Étape 6 : Étudier les méthodes d'attaque et de réponse
- Examinez les entrées du framework MITRE ATT&CK pour ce type de résultat : Transfert d'outil Ingress, Modules partagés.
- Vérifiez la valeur de hachage SHA-256 du fichier binaire signalé comme malveillant sur VirusTotal en cliquant sur le lien dans l'indicateur VirusTotal. VirusTotal est un service appartenant à Alphabet qui fournit du contexte sur les fichiers, URL, domaines et adresses IP potentiellement malveillants.
- Pour élaborer un plan d'intervention, combinez les résultats de vos enquêtes avec les recherches MITRE et l'analyse VirusTotal.
Étape 7 : Mettre en œuvre votre réponse
Le plan de réponse suivant peut être adapté à ce résultat, mais peut également avoir une incidence sur les opérations. Évaluez soigneusement les informations que vous collectez dans votre enquête pour déterminer la meilleure façon de solutionner les menaces détectées.
- Si la bibliothèque était censée être incluse dans le conteneur, recréez l'image de conteneur en incluant la bibliothèque. Le conteneur peut ainsi être immuable.
- Sinon, contactez le propriétaire du projet contenant le conteneur compromis.
- Arrêtez ou supprimez le conteneur compromis et remplacez-le par un nouveau conteneur.
Étapes suivantes
- Découvrez comment travailler avec les résultats de détection des menaces dans Security Command Center.
- Consultez l'index des résultats de menace.
- Découvrez comment examiner un résultat dans la console Google Cloud .
- En savoir plus sur les services qui génèrent des résultats de détection des menaces