Skip to main content

Identification des événements du journal d’audit effectués par un jeton d’accès

Vous pouvez identifier les actions effectuées par un jeton OAuth ou un personal access token spécifique dans votre entreprise.

À propos des données de jeton dans le journal d’audit

Dans le journal d’audit de votre entreprise, pour toutes les actions effectuées avec un personal access token ou une application OAuth pour l’authentification, les données d’événement affichent la méthode d’authentification utilisée et le hachage SHA-256 du jeton.

Si vous apprenez qu’un jeton a été compromis, vous pouvez comprendre les actions effectuées par celui-ci en recherchant tous les événements correspondants dans le journal d’audit de votre entreprise.

Les valeurs de jeton hachées ne sont pas incluses quand vous exportez le journal d’audit.

Recherche des événements associés à un jeton

Quand vous recherchez les événements associés à un jeton spécifique, vous pouvez utiliser l’interface utilisateur ou l’API REST. Dans les deux cas, vous devez d’abord connaître le hachage SHA-256 du jeton.

Génération d’une valeur 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.

Shell
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 hachage SHA-256 du jeton.

Remarque : Veillez à placer entre guillemets la valeur du jeton haché.

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.

Par exemple, si le nom du compte d’entreprise est octo-corp, la commande curl suivante recherche dans le journal d’audit de @octo-corp tous les événements associés au jeton dont le hachage SHA-256 encodé sous forme d’URI est EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8.

curl --location --request GET 'https://api.github.com/enterprises/octo-corp/audit-log?phrase=hashed_token:"EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8"' \
--header 'Authorization: Basic TOKEN' \ 

Pour aller plus loin