トークンや認証情報をGitHubリポジトリに意図せず公開してしまったり、第三者が意図せずに公開してしまった情報を偶然見つけてしまったという経験はありませんか?悪意のあるユーザーによって発見、悪用された場合に発生する損害は、どれほど大きいか計り知れません。GitHubでは約1年前に、トークンスキャニングを導入し、プッシュされたコミットをスキャンし、意図せず公開された認証情報の悪用を防止できるようにしました。
トークンスキャニングの導入以降、GitHubではインテグレーションパートナーに10億ものトークンを送信し検証*していただきました。
5社の新規スキャニングパートナー
セキュリティ上の脅威からお客様を守るという当社使命のもと、GitHubはAtlassian、Dropbox、Discord、Proctorio、Pulumiの5社と、各社のトークンフォーマットのスキャンについて新たに提携しました。この5社は、Alibaba Cloud、AWS、Azure、Google Cloud、Mailgun、npm、Slack、Stripe、Twilioといったサービスプロバイダーと共に開発者の保護に協力する優良企業です。JiraやDiscordなどの製品のトークンを誤ってチェックインしてしまった場合、チェックインから数秒以内に、トークンが一致している可能性がある旨の通知がプロバイダーに送信されるようになりました。これにより、プロバイダーは悪用される前にトークンを無効化できます。
トークンスキャニングの仕組み
GitHubでは日々約900万件のコミットがプッシュされています。コミットのプッシュ(またはプライベートリポジトリの公開)から数秒以内に、コンテンツをスキャンして数多くの既知のトークンフォーマットをチェックします。一致するトークンフォーマットが検出されると、該当するサービスプロバイダーに通知が届き、サービスプロバイダーはトークンを無効化し、影響のあるユーザーに通知するなどの適切な対応をとることができます。
次の通知メールは、Discordトークンが意図せずにパブリックリポジトリに送信された場合にユーザーが受け取る例です。
サービスプロバイダーの皆さま、セキュリティ侵害防止にご協力ください
トークンを使用して認証や承認を行っているクラウドサービスプロバイダーまたはAPIサービスプロバイダーであり、レアかもしれませんがこのような破壊的なシナリオからユーザを保護したいとお考えの皆さま、ぜひ我々とご協力をお願いします。
手続きは、簡単な書類手続き、貴社のトークンフォーマットに合致する正規表現の定義、そしてAPIエンドポイントをセットアップするだけです。
GitHubトークンスキャニングパートナーになるための詳細はこちら
*「検証用のトークン」とは、潜在的な一致のためにトークンスキャンパートナーに送信したトークンの数を表し、誤検知が含まれる場合があります。GitHubはサービスプロバイダーへ通知のうえ、トークンを失効させ影響を受けるユーザーに通知するという適切な対応をしていますが、パートナーから検証済みトークン数に関するデータを受け取ることはありません。