公開されたTailscaleシークレットのスキャン
最終検証日:
翻訳: 竹洞 陽一郎
Tailscaleは、自動化や外部システムとの連携のために各種のキーを提供しており、これらは安全に取り扱う必要があります。
キーが漏洩すると、tailnetに対して有害な操作が行われる可能性があります。
そのため、Tailscaleは4社のパートナー(GitGuardian、GitHub、GitLab、TruffleHog)と連携し、リポジトリやデータソースを対象にシークレットのスキャンを実施しています。
スキャンの対象となるキーは以下の通りです。
- APIアクセストークン(APIキーとも呼ばれます)
- OAuthクライアント(英語)
- 事前認証キー(認証キーとも呼ばれます)
- SCIM(System for Cross-domain Identity Management)キー
- Webhookキー(英語)
キーが侵害された場合の対処については、キーとシークレットの管理を参照してください。
シークレットスキャンは、すべてのプランで利用できます。
GitGuardian
GitGuardianは、複数のプラットフォームを横断してスキャンを行い、漏洩したシークレットを探索します。
Tailscaleのシークレットである可能性のある文字列を検出すると、GitGuardianはTailscaleのエンドポイントを呼び出し、そのシークレットが実際に有効かどうかを確認します。
この確認のためのAPI呼び出しは、tailnetに変更を加えるものではなく、シークレットの有効性を確認するだけです。
GitGuardianは、発見したTailscaleのシークレットについて、Tailscaleへ通知しません。
GitHub
GitHubは、すべてのパブリックリポジトリ(Issue、プルリクエスト、コメント、Wikiを含みます)と、すべてのパブリックなnpmパッケージを自動的にスキャンします。
パブリックな情報源からTailscaleのシークレットを発見すると、GitHubはTailscaleのエンドポイントを呼び出し、そのシークレットが有効かどうかを判定します。
有効であった場合、Tailscaleはそのシークレットを失効させ、該当するtailnetのセキュリティ問題の連絡先(security issues contact)宛にメールで通知します。
プライベートリポジトリでスキャンを設定している場合も、GitHubは同じ確認と失効の処理を行います。
加えて、漏洩したシークレットを、そのリポジトリのSecurityタブにセキュリティアラートとして報告します。
プライベートリポジトリのスキャン対象には、オープン中および過去のIssueのタイトル、説明、コメントが含まれます。
GitHubのシークレットスキャンについては、GitHubのドキュメント(英語)を参照してください。
GitLab
GitLab Secret Detectionを有効にすると、GitLabはリポジトリ内のすべてのテキストファイルをスキャンします。
検出の判定条件には、Tailscaleが提供する正規表現を使用します。
Tailscaleのシークレットである可能性のある文字列を検出すると、GitLabはそのリポジトリのアーティファクトレポートとして報告します。
GitLabは、リポジトリ内で発見したTailscaleのシークレットについて、Tailscaleへ通知しません。
有効化の手順についてはGitLabのSecret push protectionのドキュメント(英語)を、機能の概要についてはGitLab Secret Detectionのドキュメント(英語)を参照してください。
TruffleHog
TruffleHogは、複数のプラットフォームを横断してスキャンを行い、漏洩したシークレットを探索します。
Tailscaleのシークレットである可能性のある文字列を検出すると、TruffleHogはTailscaleのエンドポイントを呼び出し、そのシークレットが有効かどうかを確認します。
この確認のためのAPI呼び出しは、tailnetに変更を加えるものではなく、シークレットの有効性を確認するだけです。
シークレットが有効であった場合、TruffleHogは、そのシークレットを含むデータソースの所有者に連絡します。
TruffleHogからシークレット漏洩の通知を受け取った場合、Tailscaleはそのシークレットを自動的には失効させません。
そのため、通知を受けた側で失効と再発行の対応を行う必要があります。
原文:Scanning for exposed Tailscale secrets(Tailscale公式ドキュメント)