Сведения о данных токена в журнале аудита для предприятия
Журнал аудита вашей организации содержит событие для каждого действия, выполняемого пользователем или интеграцией. Если действие произошло за пределами веб-интерфейса GitHub, данные события будут отображать сведения о том, как пользователь или интеграция прошли проверку подлинности.
Если вы узнаете, что маркер скомпрометирован, вы можете понять действия, выполняемые скомпрометированный маркер, выполнив поиск в журнале аудита для всех событий, связанных с этим маркером.
Данные маркера отображаются в журнале аудита для следующих методов проверки подлинности.
- Personal access token
- токена OAuth
- GitHub Apps (проверка подлинности как установка приложения или от имени пользователя)
Данные токена в событиях журнала аудита
Следующие данные об использовании маркера отображаются в журнале аудита, чтобы понять, как пользователь или интеграция прошли проверку подлинности.
| Информация | Description |
|---|---|
hashed_token | Хэш SHA-256 маркера, используемого для проверки подлинности. |
programmatic_access_type | Тип используемой проверки подлинности. |
token_scopes | Если применимо, области маркера. |
Определение событий, связанных с маркером
Чтобы определить события, связанные с определенным маркером, можно использовать пользовательский интерфейс или REST API. Чтобы определить события, сначала необходимо знать хэш SHA-256 маркера.
Создание хэш-значения SHA-256 для токена
Если у вас есть только необработанное значение маркера, необходимо создать хэш SHA-256, прежде чем выполнять поиск маркера.
Для macOS и Linux можно использовать echo -n TOKEN | openssl dgst -sha256 -binary | base64, заменив TOKEN значением токена.
Для PowerShell можно использовать следующий сценарий, чтобы вернуть хэш SHA-256 для заданной строки.
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('-', '')
Поиск по GitHub
При поиске журнала аудита на GitHub, включите hashed_token:"VALUE" в поисковый запрос, заменив VALUE хэш SHA-256 маркера.
Примечание.
Не забудьте упаковать хэшированные значения маркера в кавычки.
Поиск с помощью REST API
Прежде чем выполнять поиск маркера с помощью REST API, после создания хэша SHA-256 необходимо также выполнить URI-escape хэш. Большинство основных языков программирования предоставляют программу для экранирования URI. Например, encodeURIComponent() кодирует строку для JavaScript.
Затем включите hashed_token:"VALUE" в фразу поиска, заменив ЗНАЧЕНИЕ хэшом, экранируемым URI.
Например, если имя корпоративной учетной записи указано octo-corp, следующая команда curl будет выполнять поиск @octo-corpв журнале аудита для всех событий, связанных с маркером, хэш EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8которого закодирован URI SHA-256.
curl --header "Accept: application/vnd.github+json" --header "Authorization: Bearer YOUR-TOKEN" --header "X-GitHub-Api-Version:2022-11-28" 'https://api.github.com/enterprises/octo-corp/audit-log?phrase=hashed_token:"EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8"'