Acerca de los datos de token en el registro de auditoría para una empresa
El registro de auditoría de la empresa contiene un evento para cada acción que realiza un usuario o integración. Si la acción se produjo fuera de la UI web de GitHub, los datos del evento mostrarán detalles sobre cómo se autentica el usuario o la integración.
Si descubres que un token se ha puesto en peligro, puedes comprender las acciones que realiza el token en peligro buscando en el registro de auditoría de la empresa de todos los eventos asociados a ese token.
Los datos del token aparecen en el registro de auditoría para los siguientes métodos de autenticación.
- Personal access token
- token de OAuth
- GitHub Apps (autenticación como instalación de aplicaciones o en nombre de un usuario)
Datos de token en eventos de registro de auditoría
Los siguientes datos sobre el uso de tokens aparecen en el registro de auditoría para ayudarle a comprender cómo se autentica el usuario o la integración.
| Información | Descripción |
|---|---|
hashed_token | Hash SHA-256 del token usado para la autenticación. |
programmatic_access_type | Tipo de autenticación utilizada. |
token_scopes | Si procede, los ámbitos del token. |
Identificación de eventos asociados a un token
Para identificar eventos asociados a un token específico, puede usar la interfaz de usuario o la API de REST. Para identificar los eventos, primero debe conocer el hash SHA-256 del token.
Generación de un valor hash SHA-256 para un token
Si solo tienes un valor de token sin procesar, deberás generar un hash SHA-256 para poder buscar el token.
En el caso de macOS y Linux, puedes usar echo -n TOKEN | openssl dgst -sha256 -binary | base64, reemplazando TOKEN por el valor del token.
En el caso de PowerShell, puedes usar el script siguiente a fin de devolver un hash SHA-256 para una cadena determinada.
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('-', '')
Búsqueda en GitHub
Al buscar el registro de auditoría en GitHub, incluye hashed_token:"VALUE" en la consulta de búsqueda, reemplazando VALUE por el hash SHA-256 del token.
Nota:
Asegúrate de poner el valor del token con hash entre comillas.
Búsqueda con la API REST
Para poder buscar un token mediante la API REST, después de generar un hash SHA-256, también debes aplicar una secuencia de escape de URI al hash. La mayoría de los lenguajes de programación principales proporcionan una utilidad para el escape de URI. Por ejemplo, encodeURIComponent() codifica una cadena para JavaScript.
Después, incluye hashed_token:"VALUE" en la frase de búsqueda, reemplazando VALUE por el hash de escape de URI.
Por ejemplo, si el nombre de la cuenta de empresa es octo-corp, el comando curl siguiente buscaría en el registro de auditoría @octo-corp todos los eventos asociados al token cuyo hash SHA-256 codificado en URI es EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8.
curl --header "Accept: application/vnd.github+json" --header "Authorization: Bearer YOUR-TOKEN" --encabezado "X-GitHub-Api-Version:2022-11-28" 'https://api.github.com/enterprises/octo-corp/audit-log?phrase=hashed_token:"EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8"'
Información adicional
-
[AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise)