À propos des données de jeton dans le journal d’audit d’une organisation
Le journal d’audit de votre organisation contient un événement pour chaque action effectuée par un utilisateur ou une intégration. Si l’action s’est produite en dehors de l’interface utilisateur web de GitHub, les données de l’événement affichent des détails sur l’authentification de l’utilisateur ou de l’intégration.
Si vous apprenez qu’un jeton a été compromis, vous pouvez comprendre les actions effectuées par ce dernier en recherchant dans le journal d'audit tous les événements associés à ce jeton.
Les données relatives aux jetons apparaissent dans le journal d'audit pour les méthodes d'authentification suivantes.
- Personal access token
- jeton OAuth
- GitHub Apps (authentification en tant qu'installation d'une application ou au nom d'un utilisateur)
- Clé de déploiement
- Clé SSH
Note : l’affichage des données relatives aux jetons pour les clés SSH et les clés de déploiement dans le journal d'audit est en version bêta publique et peut être modifié.
Données de jetons dans les événements du journal d’audit
Les données suivantes sur l’utilisation des jetons apparaissent dans le journal d’audit pour vous aider à comprendre comment l’utilisateur ou l’intégration s’est authentifié.
Information | Description |
---|---|
hashed_token | Code de hachage SHA-256 du jeton utilisé pour l’authentification. |
programmatic_access_type | Type d'authentification utilisé. |
token_scopes | Le cas échéant, les étendues du jeton. |
Identification des événements associés à un jeton
Pour identifier les événements associés à un jeton spécifique, vous pouvez utiliser l'IU ou l'API REST. Pour identifier les événements Git, vous devrez exporter les événements du journal d'audit. Pour identifier les événements, vous devez d'abord connaître le code de hachage SHA-256 du jeton.
- Génération d’une valeur de code de hachage SHA-256 pour un jeton
- Recherche sur GitHub
- Recherche avec l’API REST
- Identification des événements Git
Génération d’une valeur de code de hachage SHA-256 pour un jeton
Si vous avez uniquement une valeur de jeton brute, vous devez générer un hachage SHA-256 avant de pouvoir rechercher le jeton.
Pour macOS et Linux, vous pouvez utiliser echo -n TOKEN | openssl dgst -sha256 -binary | base64
, en remplaçant TOKEN par la valeur du jeton.
Pour PowerShell, vous pouvez utiliser le script suivant afin de retourner un hachage SHA-256 pour une chaîne donnée.
Param ( [Parameter(Mandatory=$true)] [string] $ClearString ) $hasher = [System.Security.Cryptography.HashAlgorithm]::Create('sha256') $hash = $hasher.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($ClearString)) $hashString = [System.BitConverter]::ToString($hash) $hashString.Replace('-', '')
Param (
[Parameter(Mandatory=$true)]
[string]
$ClearString
)
$hasher = [System.Security.Cryptography.HashAlgorithm]::Create('sha256')
$hash = $hasher.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($ClearString))
$hashString = [System.BitConverter]::ToString($hash)
$hashString.Replace('-', '')
Recherche sur GitHub
Lors de la recherche dans le journal d’audit sur GitHub, incluez hashed_token:"VALUE"
dans votre requête de recherche, en remplaçant VALUE
par le code de hachage SHA-256 du jeton.
Remarque : Veillez à placer entre guillemets la valeur du jeton haché.
Les recherches utilisant GitHub ne renvoient pas d’événements Git.
Recherche avec l’API REST
Avant de pouvoir rechercher un jeton avec l’API REST, après avoir généré un hachage SHA-256, vous devez également placer le hachage dans une séquence d’échappement d’URI. La plupart des principaux langages de programmation fournissent un utilitaire d’échappement d’URI. Par exemple, encodeURIComponent() encode une chaîne pour JavaScript.
Ensuite, incluez hashed_token:"VALUE"
dans votre expression de recherche, en remplaçant VALUE par le hachage placé dans une séquence d’échappement d’URI.
Les recherches effectuées à l'aide de l'API REST ne renvoient pas d'événements Git.
Par exemple, si le nom du compte d’entreprise est octo-org
, la commande curl suivante recherche dans le journal d’audit de @octo-org tous les événements associés au jeton dont le hachage SHA-256 encodé sous forme d’URI est EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8
.
curl --header "Accept: application/vnd.github+json" --header "Authorization: Bearer YOUR-TOKEN" --header "X-GitHub-Api-Version:2022-11-28" 'https://api.github.com/orgs/octo-org/audit-log?phrase=hashed_token:"EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8"'
Identification des événements Git
Vous pouvez identifier les événements Git authentifiés avec un jeton spécifique. Lorsque vous exportez des données d’événement Git à partir du journal d’audit, les champs contenant des détails sur l’authentification apparaissent dans la production. Pour plus d’informations, consultez « Examen du journal d’audit de votre organisation ».
Note : l'affichage des données relatives aux jetons pour les événements Git dans le journal d'audit est en version bêta publique et peut être modifié.