Se o seu projeto se comunicar com um serviço externo, você pode usar um token ou uma chave privada para autenticação. Tokens e chaves privadas são exemplos de segredos que um provedor de serviços pode publicar. Se você marcar um segredo em um repositório, qualquer pessoa que tenha acesso de leitura ao repositório pode usar o segredo para acessar o serviço externo com seus privilégios. Recomendamos que você armazene segredos em um local dedicado e seguro fora do repositório do seu projeto.
Os prestadores de serviço podem ser associados a GitHub para fornecer seus formatos de segredo para varredura. Para obter mais informações, consulte "Varredura de segredo".
Se alguém verificar um segredo de um parceiro de GitHub em um rapositório público ou privado em GitHub, varredura secreta irá captura o segredo como foi registrado e ajuda a mitigar o impacto da fuga. Os administradores do repositório são notificados sobre qualquer submissão que contém um segredo e podem visualizar rapidamente todos os segredos detectados na aba Segurança do repositório.
Sobre o varredura secreta para repositórios públicos
Varredura secreta é automaticamente habilitado nos repositórios públicos. Quando você faz push para um repositório público, o GitHub verifica segredos no conteúdo dos commits. Se você alternar um repositório privado para público, o GitHub verifica segredos em todo o repositório.
Quando o varredura secreta detecta um conjunto de credenciais, notificamos o provedor de serviço que emitiu o segredo. O provedor de serviço valida a credencial e decide se deve revogar o segredo, emitir um novo segredo ou entrar em contato com você diretamente, o que dependerá dos riscos associados a você ou ao provedor de serviço. Para obter uma visão geral de como trabalhamos com parceiros emissores de token, consulte "Varredura de segredo".
O GitHub atualmente verifica repositórios públicos para encontrar segredos emitidos pelos seguintes provedores de serviços.
| Parceiro | Segredo compatível |
|---|---|
| Adafruit IO | Chave de IO de Adafruit |
| Alibaba Cloud | Par de ID e segredo da chave de acesso à nuvem do Alibaba |
| Amazon Web Services (AWS) | Par do ID de segredo da chave de acesso ao AWS da Amazon |
| Atlassian | Token da API de Atlassian |
| Atlassian | Token web de JSON de Atlassian |
| Azure | Token de acesso pessoal para o Azure DevOps |
| Azure | Token de Azure SAS |
| Azure | Certificado de Gerenciamento de Serviços do Azure |
| Azure | String de conexão do SQL de Azure |
| Azure | Chave de conta de armazenamento do Azure |
| Clojars | Token de implantação de Clojars |
| CloudBees CodeShip | Credencial de Coadship de CloudBees |
| Databricks | Token de acesso de Databricks |
| Datadog | Chave de API de Datadog |
| Discord | Token de Bot de Discord |
| Doppler | Token pessoal de Doppler |
| Doppler | Token de serviço de Doppler |
| Doppler | Token de CLI de Doppler |
| Doppler | Token de SCIM de Doppler |
| Dropbox | Token de Acesso de Dropbox |
| Dropbox | Token de acesso à vida curta do Dropbox |
| Dynatrace | Token de acesso de Dynatrace |
| Dynatrace | Token interno de Dynatrace |
| Finicity | Chave do aplicativo de Finicity |
| Frame.io | Token web do JSON de Frame.io |
| Frame.io | Token do desenvolvedor de Frame.io |
| GitHub | Chave privada de SSH do GitHub |
| GitHub | Token de acesso pessoal do GitHub |
| GitHub | Token de acesso à instalação do aplicativo GitHub |
| GoCardless | Token de acesso ao vivo ao GoCardless |
| GoCardless | Token de acesso de GoCardless Sandbox |
| Google Cloud | Chave da API do GOogle |
| Google Cloud | ID da chave privada do Google Cloud |
| Hashicorp Terraform | Token da API de Terraform Cloud / Enterprise |
| Hubspot | Chave da API de Hubspot |
| Mailchimp | Chave da API de Mailchimp |
| Mailchimp | Chave da API de Mandrill |
| Mailgun | Chave da API de Mailgun |
| MessageBird | Chave da API de MessageBird |
| npm | Token de acesso de npm |
| NuGet | Chave de API de NuGet |
| Palantir | Token web de JSON de Palantir |
| Plivo | Token de Plivo Auth |
| Postman | Chave da API de Postman |
| Proctorio | Chave de Consumidor de Proctorio |
| Proctorio | Chave de vínculo de Proctorio |
| Proctorio | Chave de registro de Proctorio |
| Proctorio | Chave de segredo de Proctorio |
| Pulumi | Token de acesso de Pulumi |
| PyPI | PyPI API Token |
| RubyGems | RubyGems API Key |
| Samsara | Token de API de Samsara |
| Samsara | Token de acesso de OAuth de Samsara |
| Shopify | Segredo compartilhado do aplicativo Shopify |
| Shopify | Token de acesso de Shopify |
| Shopify | Token de acesso do aplicativo personalizado Shopify |
| Shopify | Senha do aplicativo privado Shopify |
| Slack | Token da API de Slack |
| Slack | URL de entrada do webhook de Slack |
| Slack | URL do fluxo de trabalho do webhook de Slack |
| SSLMate | Chave da API de SSLMate |
| SSLMate | Segredo do cluster de SSLMate |
| Stripe | Chave de segredo Stripe Live |
| Stripe | Chave secreta da API de Teste de Stripe |
| Stripe | Chave restrita da API de Stripe Live |
| Stripe | Chave restrita da API de testes de Stripe |
| Tencent Cloud | ID de segredot de Tencent Cloud |
| Twilio | Identificador de string de conta de Twilio |
| Twilio | Chave da API de Twilio |
Sobre o varredura secreta para repositórios privados
Se você é um administrador de repositório ou um proprietário de uma organização, você pode habilitar varredura secreta para repositórios privados pertencentes a organizações. You can enable varredura secreta for all your repositories, or for all new repositories within your organization. Varredura secreta is not available for user-owned private repositories. For more information, see "Managing security and analysis settings for your repository" and "Managing security and analysis settings for your organization."
Quando você faz push dos commits para um repositório privado com varredura secreta habilitado, GitHub verifica o conteúdo dos segredos dos commits.
Quando varredura secreta detecta um segredo em um privado repositório, GitHub gera um alerta.
-
O GitHub envia um alerta de email para os administradores do repositório e proprietários da organização.
-
GitHub envia um alerta de e-mail para o contribuidor que fez o commit do segredo no repositório com um link para o alerta de varredura secreta relacionado. O autor do commit pode visualizar o alerta no repositório e resolver o alerta.
-
GitHub exibe um alerta no repositório.
Para obter mais informações sobre a visualização e resolução de alertas de varredura secreta, consulte "Gerenciar alertas de varredura secreta."
Os administradores do repositório e proprietários da organização podem conceder acesso aos usuários aos alertas de varredura secreta. Para obter mais informações, consulte "Gerenciar configurações de segurança e análise do repositório".
Para monitorar os resultados de varredura secreta nos seus repositórios privados ou na sua organização, você pode usar a API de varredura secreta. Para obter mais informações sobre pontos de extremidade da API, consulte "Varredura secreta".
GitHub atualmente faz a varredura de repositórios privados para segredos emitidos pelos seguintes provedores de serviços.
| Parceiro | Segredo compatível | Slug da API |
|---|---|---|
| n/a | Token web do JSON | json_web_token |
| n/a | Credencial do Cliente do OAuth | api_credential_assignment |
| Adafruit IO | Chave de IO de Adafruit | adafruit_io_key |
| Alibaba Cloud | ID da chave de acesso da nuvem do Alibaba | alibaba_cloud_access_key_id |
| Alibaba Cloud | Segredo da chave de acesso à nuvem do Alibaba | alibaba_cloud_access_key_secret |
| Amazon Web Services (AWS) | ID da Chave de Acesso do AWS da Amazon | aws_access_key_id |
| Amazon Web Services (AWS) | Chave de acesso secreta do AWS da Amazon | aws_secret_access_key |
| Asana | Asana Personal Access Token | asana_personal_access_token |
| Atlassian | Token da API de Atlassian | atlassian_api_token |
| Atlassian | Token web de JSON de Atlassian | atlassian_jwt |
| Azure | Token de acesso pessoal do Azure DevOps | azure_devops_personal_access_token |
| Azure | Token do Azure SAS | azure_sas_token |
| Azure | Certificado de Gerenciamento de Serviços do Azure | azure_management_certificate |
| Azure | String de conexão do Azure SQL | azure_sql_connection_string |
| Azure | Chave da conta de armazenamento do Azure | azure_storage_account_key |
| Clojars | Token de implantação de Clojars | clojars_deploy_token |
| CloudBees CodeShip | Credencial de Coadship de CloudBees | codeship_credential |
| Databricks | Token de acesso de Databricks | databricks_access_token |
| Discord | Token de Bot de Discord | discord_bot_token |
| Doppler | Token pessoal de Doppler | doppler_personal_token |
| Doppler | Token de serviço de Doppler | doppler_service_token |
| Doppler | Token de CLI de Doppler | doppler_cli_token |
| Doppler | Token de SCIM de Doppler | doppler_scim_token |
| Dropbox | Token de Acesso de Dropbox | dropbox_access_token |
| Dropbox | Token de acesso à vida curta do Dropbox | dropbox_short_lived_access_token |
| Dynatrace | Token de acesso de Dynatrace | dynatrace_access_token |
| Dynatrace | Token interno de Dynatrace | dynatrace_internal_token |
| Facebook Access Token | facebook_access_token | |
| Finicity | Chave do aplicativo de Finicity | finicity_app_key |
| Frame.io | Token web do JSON de Frame.io | frameio_jwt |
| Frame.io | Token do desenvolvedor de Frame.io | frameio_developer_token |
| GitHub | Chave privada de SSH do GitHub | github_ssh_private_key |
| GitHub | Token de acesso pessoal do GitHub | github_personal_access_token |
| GitHub | Token de acesso à instalação do aplicativo GitHub | github_app_installation_access_token |
| GoCardless | Token de acesso ao vivo ao GoCardless | gocardless_live_access_token |
| GoCardless | Token de acesso de GoCardless Sandbox | gocardless_sandbox_access_token |
| Google Cloud | Chave da API do GOogle | google_api_key |
| Google Cloud | ID da chave privada do Google Cloud | google_cloud_private_key_id |
| Grafana | Grafana API Key | grafana_api_key |
| Hashicorp Terraform | Token da API de Terraform Cloud / Enterprise | terraform_api_token |
| Hubspot | Chave da API de Hubspot | hubspot_api_key |
| Intercom | Intercom Access Token | intercom_access_token |
| Lob | Lob Live API Key | lob_live_api_key |
| Lob | Lob Test API Key | lob_test_api_key |
| Mailchimp | Chave da API de Mailchimp | mailchimp_api_key |
| Mailgun | Chave da API de Mailgun | mailgun_api_key |
| npm | Token de acesso de npm | npm_access_token |
| NuGet | Chave de API de NuGet | nuget_api_key |
| Palantir | Token web de JSON de Palantir | palantir_jwt |
| Postman | Chave da API de Postman | postman_api_key |
| Proctorio | Chave de Consumidor de Proctorio | proctorio_consumer_key |
| Proctorio | Chave de vínculo de Proctorio | proctorio_linkage_key |
| Proctorio | Chave de registro de Proctorio | proctorio_registration_key |
| Proctorio | Chave de segredo de Proctorio | proctorio_secret_key |
| Pulumi | Token de acesso de Pulumi | pulumi_access_token |
| PyPI | PyPI API Token | pypi_api_token |
| RubyGems | RubyGems API Key | rubygems_api_key |
| Samsara | Token de API de Samsara | samsara_api_token |
| Samsara | Token de acesso de OAuth de Samsara | samsara_oauth_access_token |
| SendGrid | SendGrid API Key | sendgrid_api_key |
| Shopify | Segredo compartilhado do aplicativo Shopify | shopify_app_shared_secret |
| Shopify | Token de acesso de Shopify | shopify_access_token |
| Shopify | Token de acesso do aplicativo personalizado Shopify | shopify_custom_app_access_token |
| Shopify | Senha do aplicativo privado Shopify | shopify_private_app_password |
| Slack | Token da API de Slack | slack_api_token |
| Slack | URL de entrada do webhook de Slack | slack_incoming_webhook_url |
| Slack | URL do fluxo de trabalho do webhook de Slack | slack_workflow_webhook_url |
| SSLMate | Chave da API de SSLMate | sslmate_api_key |
| SSLMate | Segredo do cluster de SSLMate | sslmate_cluster_secret |
| Stripe | Stripe API Key | stripe_api_key |
| Stripe | Chave de segredo Stripe Live | stripe_live_secret_key |
| Stripe | Chave secreta da API de Teste de Stripe | stripe_test_secret_key |
| Stripe | Chave restrita da API de Stripe Live | stripe_live_restricted_key |
| Stripe | Chave restrita da API de testes de Stripe | stripe_test_restricted_key |
| Tencent Cloud | ID de segredot de Tencent Cloud | tencent_cloud_secret_id |
| Twilio | Identificador de string de conta de Twilio | twilio_account_sid |
| Twilio | Chave da API de Twilio | twilio_api_key |
Nota: o Varredura secreta atualmente não permite que você defina seus próprios padrões para detecção de segredos.