如果项目与外部服务通信,您可能使用令牌或私钥进行身份验证。 令牌和私钥是服务提供商可以签发的典型密码。 如果将密码检入仓库,则对仓库具有读取权限的任何人都可以使用该密码以您的权限访问外部服务。 建议将密码存储在项目仓库外部专用的安全位置。
服务提供商可与 GitHub 合作提供其用于扫描的密码格式。 更多信息请参阅“密码扫描”。
如果有人将密码从 GitHub 合作伙伴检入 GitHub 上的公共或私有仓库,则 秘密扫描 在该密码检入时可以捕获它,帮助您减小密码泄露的影响。 仓库管理员会收到包含密码的任何提交的通知, 然后他们可以快速查看仓库安全选项卡中所有检测到的密码。
关于公共仓库的 秘密扫描
秘密扫描 自动对公共仓库启用。 当您推送到公共仓库时,GitHub 会扫描提交的内容中是否有密码。 如果将私有仓库切换到公共仓库,GitHub 会扫描整个仓库中的密码。
当 秘密扫描 检测一组凭据时,我们会通知发布密码的服务提供商。 服务提供商会验证该凭据,然后决定是否应撤销密钥、颁发新密钥或直接与您联系,具体取决于与您或服务提供商相关的风险。 有关如何使用令牌颁发合作伙伴的概述,请参阅“密码扫描”。
GitHub 当前会扫描公共仓库,查找以下服务提供商发布的密码。
合作伙伴 | 支持的密钥 |
---|---|
Adafruit IO | Adafruit IO 密钥 |
Alibaba Cloud | Alibaba 云端访问密钥 ID 和访问密钥对 |
Amazon Web Services (AWS) | Amazon AWS 访问密钥 ID 和秘密访问密钥对 |
Atlassian | Atlassian API 令牌 |
Atlassian | Atlassian JSON Web 令牌 |
Azure | Azure DevOps 个人访问令牌 |
Azure | Azure SAS Token |
Azure | Azure 服务管理证书 |
Azure | Azure SQL 连接字符串 |
Azure | Azure 存储帐户密钥 |
Clojars | Clojars 部署令牌 |
CloudBees CodeShip | CloudBees CodeShip 凭据 |
Databricks | Databricks 访问令牌 |
Datadog | Datadog API 密钥 |
Discord | Discord 自动程序令牌 |
Doppler | Doppler 个人令牌 |
Doppler | Doppler 服务令牌 |
Doppler | Doppler CLI 令牌 |
Doppler | Doppler SCIM 令牌 |
Dropbox | Dropbox 访问令牌 |
Dropbox | Dropbox 短暂访问令牌 |
Dynatrace | Dynatrace 访问令牌 |
Dynatrace | Dynatrace 内部令牌 |
Finicity | Finicity App 密钥 |
Frame.io | Frame.io JSON Web 令牌 |
Frame.io | Frame.io Developer 令牌 |
GitHub | GitHub SSH 私钥 |
GitHub | GitHub 个人访问令牌 |
GitHub | GitHub App 安装访问令牌 |
GoCardless | GoCardless 实时访问令牌 |
GoCardless | GoCardless Sandbox 访问令牌 |
Google Cloud | Google API 密钥 |
Google Cloud | Google Cloud 私钥 ID |
Hashicorp Terraform | Terraform Cloud / Enterprise API 令牌 |
Hubspot | Hubspot API 密钥 |
Mailchimp | Mailchimp API 密钥 |
Mailchimp | Mandril API 密钥 |
Mailgun | Mailgun API 密钥 |
MessageBird | MessageBird API 密钥 |
npm | npm 访问令牌 |
NuGet | NuGet API 密钥 |
Palantir | Palantir JSON Web 令牌 |
Plivo | Plivo 验证令牌 |
Postman | Postman API 密钥 |
Proctorio | Proctorio 消费者密钥 |
Proctorio | Proctorio 链接密钥 |
Proctorio | Proctorio 注册密钥 |
Proctorio | Proctorio 密钥 |
Pulumi | Pulumi 访问令牌 |
PyPI | PyPI API 令牌 |
RubyGems | RubyGems API 密钥 |
Samsara | Samsara API 令牌 |
Samsara | Samsara OAuth 访问令牌 |
Shopify | Shopify App 共享密钥 |
Shopify | Shopify 访问令牌 |
Shopify | Shopify 自定义应用访问令牌 |
Shopify | Shopify 私人应用密码 |
Slack | Slack API 令牌 |
Slack | Slack 传入 web 挂钩 URL |
Slack | Slack 工作流程 web 挂钩 URL |
SSLMate | SSLMate API 密钥 |
SSLMate | SSLMate 集群密钥 |
Stripe | Stripe Live API 密钥 |
Stripe | Stripe 测试 API 密钥 |
Stripe | Stripe Live API 限制密钥 |
Stripe | Stripe 测试 API 限制密钥 |
Tencent Cloud | 腾讯云密钥 ID |
Twilio | Twilio 帐户字符串标识符 |
Twilio | Twilio API 密钥 |
关于私有仓库的 秘密扫描
如果您是仓库管理员或组织所有者,您可以为组织拥有的私有仓库启用 秘密扫描。 You can enable 秘密扫描 for all your repositories, or for all new repositories within your organization. 秘密扫描 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."
将提交推送到启用了 秘密扫描 的私有仓库时,GitHub 会扫描提交的内容中是否有密码。
当 秘密扫描 在私有仓库中检测到密码时,GitHub 会生成警报。
-
GitHub 向仓库管理员和组织所有者发送电子邮件警报。
-
GitHub 向提交机密到仓库的贡献者发送电子邮件警报,其中包括指向相关 秘密扫描 警报的链接。 然后,提交作者可以在仓库中查看警报,然后解决警报。
-
GitHub 显示仓库中的警报。
有关查看和解析 秘密扫描 警报的详细信息,请参阅“管理来自 秘密扫描 的警报”。
仓库管理员和组织所有者可以授权用户和团队访问 秘密扫描 警报。 更多信息请参阅“管理仓库的安全和分析设置”。
要监控来自私有仓库或组织中的 秘密扫描 的结果,可以使用 秘密扫描 API。 有关 API 端点的更多信息,请参阅“秘密扫描”。
GitHub 目前扫描私有仓库,以检查由以下服务提供者颁发的密码。
合作伙伴 | 支持的密钥 | API slug |
---|---|---|
n/a | JSON Web 令牌 | json_web_token |
n/a | OAuth 客户端凭据 | api_credential_assignment |
Adafruit IO | Adafruit IO 密钥 | adafruit_io_key |
Alibaba Cloud | Alibaba 云访问密钥 ID | alibaba_cloud_access_key_id |
Alibaba Cloud | Alibaba 云访问密钥机密 | alibaba_cloud_access_key_secret |
Amazon Web Services (AWS) | Amazon AWS 访问密钥 ID | aws_access_key_id |
Amazon Web Services (AWS) | Amazon AWS 机密访问密钥 | aws_secret_access_key |
Asana | Asana 个人访问令牌 | asana_personal_access_token |
Atlassian | Atlassian API 令牌 | atlassian_api_token |
Atlassian | Atlassian JSON Web 令牌 | atlassian_jwt |
Azure | Azure DevOps 个人访问令牌 | azure_devops_personal_access_token |
Azure | Azure SAS 令牌 | azure_sas_token |
Azure | Azure 服务管理证书 | azure_management_certificate |
Azure | Azure SQL 连接字符串 | azure_sql_connection_string |
Azure | Azure 存储账户密钥 | azure_storage_account_key |
Clojars | Clojars 部署令牌 | clojars_deploy_token |
CloudBees CodeShip | CloudBees CodeShip 凭据 | codeship_credential |
Databricks | Databricks 访问令牌 | databricks_access_token |
Discord | Discord 自动程序令牌 | discord_bot_token |
Doppler | Doppler 个人令牌 | doppler_personal_token |
Doppler | Doppler 服务令牌 | doppler_service_token |
Doppler | Doppler CLI 令牌 | doppler_cli_token |
Doppler | Doppler SCIM 令牌 | doppler_scim_token |
Dropbox | Dropbox 访问令牌 | dropbox_access_token |
Dropbox | Dropbox 短暂访问令牌 | dropbox_short_lived_access_token |
Dynatrace | Dynatrace 访问令牌 | dynatrace_access_token |
Dynatrace | Dynatrace 内部令牌 | dynatrace_internal_token |
Facebook Access Token | facebook_access_token | |
Finicity | Finicity App 密钥 | finicity_app_key |
Frame.io | Frame.io JSON Web 令牌 | frameio_jwt |
Frame.io | Frame.io Developer 令牌 | frameio_developer_token |
GitHub | GitHub SSH 私钥 | github_ssh_private_key |
GitHub | GitHub 个人访问令牌 | github_personal_access_token |
GitHub | GitHub App 安装访问令牌 | github_app_installation_access_token |
GoCardless | GoCardless 实时访问令牌 | gocardless_live_access_token |
GoCardless | GoCardless Sandbox 访问令牌 | gocardless_sandbox_access_token |
Google Cloud | Google API 密钥 | google_api_key |
Google Cloud | Google Cloud 私钥 ID | google_cloud_private_key_id |
Grafana | Grafana API 密钥 | grafana_api_key |
Hashicorp Terraform | Terraform Cloud / Enterprise API 令牌 | terraform_api_token |
Hubspot | Hubspot API 密钥 | hubspot_api_key |
Intercom | Intercom 访问令牌 | intercom_access_token |
Lob | Lob Live API 密钥 | lob_live_api_key |
Lob | Lob Test API 密钥 | lob_test_api_key |
Mailchimp | Mailchimp API 密钥 | mailchimp_api_key |
Mailgun | Mailgun API 密钥 | mailgun_api_key |
npm | npm 访问令牌 | npm_access_token |
NuGet | NuGet API 密钥 | nuget_api_key |
Palantir | Palantir JSON Web 令牌 | palantir_jwt |
Postman | Postman API 密钥 | postman_api_key |
Proctorio | Proctorio 消费者密钥 | proctorio_consumer_key |
Proctorio | Proctorio 链接密钥 | proctorio_linkage_key |
Proctorio | Proctorio 注册密钥 | proctorio_registration_key |
Proctorio | Proctorio 密钥 | proctorio_secret_key |
Pulumi | Pulumi 访问令牌 | pulumi_access_token |
PyPI | PyPI API 令牌 | pypi_api_token |
RubyGems | RubyGems API 密钥 | rubygems_api_key |
Samsara | Samsara API 令牌 | samsara_api_token |
Samsara | Samsara OAuth 访问令牌 | samsara_oauth_access_token |
SendGrid | SendGrid API Key | sendgrid_api_key |
Shopify | Shopify App 共享密钥 | shopify_app_shared_secret |
Shopify | Shopify 访问令牌 | shopify_access_token |
Shopify | Shopify 自定义应用访问令牌 | shopify_custom_app_access_token |
Shopify | Shopify 私人应用密码 | shopify_private_app_password |
Slack | Slack API 令牌 | slack_api_token |
Slack | Slack 传入 web 挂钩 URL | slack_incoming_webhook_url |
Slack | Slack 工作流程 web 挂钩 URL | slack_workflow_webhook_url |
SSLMate | SSLMate API 密钥 | sslmate_api_key |
SSLMate | SSLMate 集群密钥 | sslmate_cluster_secret |
Stripe | Stripe API Key | stripe_api_key |
Stripe | Stripe Live API 密钥 | stripe_live_secret_key |
Stripe | Stripe 测试 API 密钥 | stripe_test_secret_key |
Stripe | Stripe Live API 限制密钥 | stripe_live_restricted_key |
Stripe | Stripe 测试 API 限制密钥 | stripe_test_restricted_key |
Tencent Cloud | 腾讯云密钥 ID | tencent_cloud_secret_id |
Twilio | Twilio 帐户字符串标识符 | twilio_account_sid |
Twilio | Twilio API 密钥 | twilio_api_key |
注: 秘密扫描 当前不允许定义自己的模式来检测密码。