シークレットスキャン
英語表記:Secret Scanning
シークレットスキャンとは、ソースコードや構成ファイルの中に誤って書かれた「秘密情報(シークレット)」を検出するしくみのことです。ここでいう「シークレット」とは、APIキーやアクセスキー、パスワード、暗号鍵など、外部に漏れると悪用されるおそれのある情報を指します。
例えば、開発中にテストで使うAPIキーをソースコード内に一時的に書き込んだとします。それを削除し忘れたままGitHubなどのリポジトリに公開すると、第三者がその情報を見つけて不正アクセスに利用する可能性があります。
実際に、こうした事故は国内外で後を絶ちません。そこで役立つのが、シークレットスキャンです。
シークレットスキャンは、特定の文字列パターンや暗号鍵の形式、既知のAPIキーのフォーマットなどを基に、リポジトリやストレージ内を自動で検索します。GitHubやGitLabなどの開発プラットフォームにも標準機能として組み込まれており、コミット時点やプルリクエスト時に自動検知できるようになっています。これにより、「公開前に気付く」「誤って漏らさない」ための安全網として機能します。
ただし、スキャン結果を過信するのは禁物です。ツールによっては誤検知や見逃しが発生することもあります。また、一度漏れたシークレットは必ず無効化または再発行する必要があります。単に削除するだけでは、履歴に残った情報から復元される可能性があるため注意が必要です。
最近では、継続的セキュリティテスト(Continuous Security Testing)の一環として、CI/CDパイプラインにシークレットスキャンを組み込む企業も増えています。自動検知に加えて、開発者自身が「秘密情報をコードに書かない」意識を持つことも重要ですね。便利さの裏に潜むリスクを“先回りして見つける”──それがシークレットスキャンの役割です。
用語解説の監修:増井 敏克