Skip to main content

Enterprise Server 3.15 は、現在リリース候補として使用できます。

アクセス トークンによって実行される監査ログ イベントの識別

エンタープライズ内の特定のトークンによって実行されるアクションを識別できます。

エンタープライズの監査ログのトークン データについて

エンタープライズの監査ログには、ユーザーまたは統合が実行する各アクションのイベントが含まれています。 アクションが GitHub の Web UI の外部で発生した場合、イベントのデータには、ユーザーまたは統合の認証方法に関する詳細が表示されます。

トークンが侵害されたことが判明した場合は、そのトークンに関連付けられているすべてのイベントに関する監査ログを検索することで、侵害されたトークンによって実行されたアクションを把握できます。

トークン データは、次の認証方法の監査ログに表示されます。

  • Personal access token
  • OAuth トークン
  • GitHub Apps(アプリのインストールまたはユーザーの代理としての認証)

監査ログ イベントのトークン データ

トークンの使用に関する次のデータが監査ログに表示され、ユーザーまたは統合がどのように認証されたかを理解するのに役立ちます。

情報説明
hashed_token認証に使用されるトークンの SHA-256 ハッシュ。
programmatic_access_type使用する認証の種類。
token_scopes該当する場合は、トークンのスコープ。

トークンに関連付けられているイベントの識別

特定のトークンに関連付けられているイベントを特定する場合は、UI または 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 コマンドは、URI でエンコードされた SHA-256 ハッシュが EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8 であるトークンに関連付けられているすべてのイベントで @octo-corp の監査ログを検索します。

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"'

参考資料