Sobre os dados de token no log de auditoria de uma empresa
O log de auditoria de sua empresa contém um evento para cada ação executada por um usuário ou uma integração. Se a ação ocorreu de forma externa à interface do usuário na Web do GitHub, os dados do evento mostrarão detalhes sobre como o usuário ou a integração foram autenticados.
Se você souber que um token foi comprometido, poderá entender as ações realizadas pelo token comprometido pesquisando no log de auditoria todos os eventos associados a esse token.
Os dados do token aparecem no registro de auditoria para os seguintes métodos de autenticação.
- Personal access token
- token OAuth
- GitHub Apps (autenticação como uma instalação de aplicativo ou em nome de um usuário)
- Chave de implantação
- Chave SSH
Observação: a exibição de dados de token para chaves SSH e chaves de implementação no log de auditoria está em versão prévia pública e sujeita a alterações.
Dados de token em eventos de log de auditoria
Os dados a seguir sobre o uso do token aparecem no log de auditoria para ajudar você a entender como o usuário ou a integração se autenticou.
Informações | Descrição |
---|---|
hashed_token | Hash SHA-256 do token usado para autenticação. |
programmatic_access_type | Tipo de autenticação usado. |
token_scopes | Se aplicável, os escopos do token. |
Como identificar eventos associados a um token
Para identificar eventos associados a um token específico, você pode usar a interface do usuário ou a API REST. Para identificar eventos do Git, você precisará exportar os eventos do log de auditoria. Para identificar qualquer evento, primeiro você precisará saber o hash SHA-256 do token.
- Gerando um valor de hash SHA-256 para um token
- Pesquisando no GitHub
- Pesquisando com a API REST
- Identificando eventos do Git
Gerando um valor de hash SHA-256 para um token
Se você tiver apenas um valor de token bruto, precisará gerar um hash SHA-256 para procurar o token.
No macOS e no Linux, você pode usar echo -n TOKEN | openssl dgst -sha256 -binary | base64
, substituindo TOKEN pelo valor do token.
No PowerShell, você pode usar o script a seguir para retornar um hash SHA-256 de uma determinada cadeia de caracteres.
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('-', '')
Pesquisando no GitHub
Ao pesquisar o log de auditoria no GitHub, inclua hashed_token:"VALUE"
na consulta de pesquisa, substituindo VALUE
pelo hash SHA-256 do token.
Observação: encapsule o valor do token hash entre aspas.
As pesquisas que usam o GitHub não retornam eventos do Git.
Como pesquisar com a API REST
Para procurar um token usando a API REST, depois de gerar um hash SHA-256, você também precisa usar um escape para o hash no URI. A maioria das principais linguagens de programação oferece um utilitário para escape de URI. Por exemplo, encodeURIComponent() codifica uma cadeia de caracteres para JavaScript.
Depois, inclua hashed_token:"VALUE"
na frase de pesquisa, substituindo VALUE pelo hash com escape de URI.
As pesquisas que usam a API REST não retornam eventos do Git.
Por exemplo, se o nome da conta corporativa for octo-corp
, o comando curl a seguir pesquisá o log de auditoria de @octo-corp de todos os eventos associados ao token cujo hash SHA-256 codificado em URI é EH4L8o6PfCqipALbL%2BQT62lyqUtnI7ql0SPbkaQnjv8
.
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"'
Como identificar eventos do Git
Você pode identificar eventos do Git autenticados com um token específico. Quando você exporta dados de eventos Git do log de auditoria, os campos com detalhes sobre autenticação aparecem na saída. Para obter mais informações, consulte “Como exportar a atividade do log de auditoria da sua empresa”.
Nota: a exibição de dados de token para eventos Git no registro de auditoria está em versão prévia pública e está sujeita a alterações.