Tailscaleロゴ

公開されたTailscaleシークレットのスキャン

最終検証日:
翻訳: 竹洞 陽一郎

Tailscaleは、自動化や外部システムとの連携のために各種のキーを提供しており、これらは安全に取り扱う必要があります。
キーが漏洩すると、tailnetに対して有害な操作が行われる可能性があります。
そのため、Tailscaleは4社のパートナー(GitGuardian、GitHub、GitLab、TruffleHog)と連携し、リポジトリやデータソースを対象にシークレットのスキャンを実施しています。

スキャンの対象となるキーは以下の通りです。

キーが侵害された場合の対処については、キーとシークレットの管理を参照してください。

シークレットスキャンは、すべてのプランで利用できます。

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公式ドキュメント)