Skip to main content

Идентификация событий журнала аудита, выполняемых маркером доступа

Вы можете определить действия, выполняемые определенным personal access token или маркером OAuth в вашем предприятии.

Сведения о данных маркера в журнале аудита

В журнале аудита предприятия для любых действий, выполненных с помощью personal access token или приложения OAuth для проверки подлинности, данные события будут отображать используемый метод проверки подлинности и хэш SHA-256 маркера.

Если вы узнали, что маркер был скомпрометирован, вы можете понять действия, предпринятые скомпрометированный маркер, выполнив поиск в журнале аудита предприятия на наличие всех событий, связанных с этим маркером.

Хэшированные значения маркеров не включаются при экспорте журнала аудита.

Поиск событий, связанных с маркером

При поиске событий, связанных с определенным маркером, можно использовать пользовательский интерфейс или REST API. В любом случае сначала необходимо знать хэш SHA-256 маркера.

Создание хэш-значения SHA-256 для токена

Если у вас есть только необработанное значение маркера, необходимо создать хэш SHA-256, прежде чем выполнять поиск маркера.

Для MacOS и Linux можно использовать echo -n TOKEN | openssl dgst -sha256 -binary | base64, заменив TOKEN значением токена.

Для PowerShell можно использовать следующий скрипт, чтобы вернуть хэш SHA-256 для заданной строки.

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('-', '')

Поиск по GitHub

При поиске в журнале аудита GitHub включите hashed_token:"VALUE" в поисковый запрос, заменив VALUE хэшом SHA-256 маркера.

Примечание: Обязательно заключите хэшированные значения маркера в кавычки.

Поиск с помощью REST API

Перед поиском маркера с помощью REST API после создания хэша SHA-256 необходимо также экранировать хэш с помощью URI. Большинство основных языков программирования предоставляют служебную программу для экранирования URI. Например, encodeURIComponent() кодирует строку для JavaScript.

Затем включите hashed_token:"VALUE" в поисковую фразу, заменив VALUE хэшом, экранируемым URI.

Например, если имя корпоративной учетной записи — , следующая octo-corpкоманда curl будет искать @octo-corpв журнале аудита все события, связанные с токеном, хэш SHA-256 в кодировке URI которого имеет значение EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8.

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

Дополнительные материалы