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 :
- Activer les journaux d'accès aux données pour IAP
- Surveiller les entrées des journaux d'audit liées à l'utilisation de SSH
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.