Bonnes pratiques pour l'audit de l'accès SSH


Ce document décrit les bonnes pratiques à suivre pour auditer l'accès SSH aux instances de machines virtuelles (VM) Linux.

Cloud Audit Logs vous permet d'analyser les activités passées et peut être une source d'informations importante pour analyser les activités suspectes affectant vos ressources Google Cloud.

Les sections suivantes décrivent les bonnes pratiques à suivre pour conserver un outil d'audit non-répudiable :

Ce document est consacré aux pratiques spécifiques à Google Cloud ou particulièrement adaptées lors de l'utilisation de SSH sur Google Cloud. Il n'aborde pas les bonnes pratiques de mises en œuvre spécifiques d'un client ou d'un serveur SSH.

Activer les journaux d'accès aux données pour IAP

Pour vous assurer qu'IAP ajoute une entrée à Cloud Audit Logs chaque fois qu'un utilisateur tente d'établir une connexion SSH, activez les journaux d'accès aux données pour l'API Cloud Identity-Aware Proxy. Les journaux d'accès aux données sont désactivés par défaut. À moins que vous ne vous préoccupiez du volume des journaux, activez les journaux d'accès aux données pour tous les projets contenant des instances de VM.

Surveiller les entrées de journaux d'audit liées à l'utilisation de SSH

L'utilisation de SSH peut avoir un impact sur la sécurité des VM et de leurs charges de travail. Il est donc important de conserver une trace d'audit pour les tentatives de connexion réussies et les tentatives d'accès ayant échoué. Cette fonctionnalité est particulièrement importante dans les environnements de production, où l'utilisation de SSH doit être considérée comme une action sensible.

Pour suivre l'accès SSH et éventuellement détecter un comportement suspect, veillez à surveiller les entrées de journal liées à SSH, y compris les suivantes :

Service Méthode Description
IAP AuthorizeUser Indique une tentative de connexion via le transfert TCP IAP. Les entrées de journal contiennent des détails sur l'appareil de l'utilisateur, les niveaux d'accès satisfaits et les niveaux d'accès non satisfaits.
OS Login google.cloud.oslogin.v1.OsLoginService.CheckPolicy Indique une tentative de connexion.
OS Login google.cloud.oslogin.OsLoginService.v1.StartSession Indique le début d'un test d'authentification à deux facteurs OS Login.
OS Login google.cloud.oslogin.OsLoginService.v1.ContinueSession Indique la fin d'un test d'authentification à deux facteurs OS Login.
Compute Engine v1.compute.projects.setCommonInstanceMetadata Si le champ projectMetadataDelta contient une entrée pour "ssh-keys", cette entrée de journal indique qu'une clé SSH a été ajoutée, supprimée ou modifiée dans les métadonnées du projet.
Compute Engine v1.compute.instances.setMetadata Si le champ projectMetadataDelta contient une entrée pour "ssh-keys" ou "sshKeys", cette entrée de journal indique qu'une clé SSH a été ajoutée, supprimée ou modifiée dans les métadonnées de l'instance.
Compute Engine google.ssh-serialport.v1.connect Indique une tentative de connexion à la console série
IAM beta.compute.instances.setIamPolicy, v1.compute.instances.setIamPolicy Indique une modification de la stratégie IAM d'une instance de VM. Une modification de stratégie IAM peut affecter la capacité des utilisateurs à modifier les métadonnées d'une instance.
IAM SetIamPolicy Indique une modification de la stratégie IAM d'un projet. Une modification de stratégie IAM peut affecter la capacité des utilisateurs à modifier les métadonnées du projet, ainsi que la configuration des journaux d'audit des accès aux données du projet.

Tous les enregistrements du journal d'audit contiennent un champ principalEmail qui identifie le compte principal qui a initié l'activité.

Pour obtenir une vue complète de l'activité de vos VM, configurez-les pour exporter les journaux des serveurs /var/log/messages et SSH vers Cloud Logging, par exemple à l'aide de l'agent Ops.

Notez que selon la distribution Linux que vous utilisez, les journaux de serveur SSH peuvent être écrits dans différents fichiers journaux (généralement /var/log/auth.log ou /var/log/secure), et que ces fichiers journaux ne sont pas couverts par la configuration par défaut utilisée par l'agent Ops.