Сведения о данных токена в журнале аудита
В журнале аудита предприятия для любых действий, выполненных с помощью personal access token или OAuth app для проверки подлинности, данные события будут отображать метод проверки подлинности, используемый и хэш SHA-256 маркера.
Если вы узнаете, что маркер скомпрометирован, вы можете понять действия, выполняемые скомпрометированный маркер, выполнив поиск в журнале аудита вашего предприятия для всех событий, связанных с этим маркером.
Хэшированные значения маркеров не включаются при экспорте журнала аудита.
Поиск событий, связанных с маркером
При поиске событий, связанных с определенным маркером, можно использовать пользовательский интерфейс или 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" 'https://api.github.com/enterprises/octo-corp/audit-log?phrase=hashed_token:"EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8"'