はじめに
HCP Vault Radarは、シークレット情報スキャン機能で、APIキーやパスワードなどの機密情報の漏洩を防ぐためのサービスです。
GitHubのリポジトリと連携するだけで、pushされたコードに含まれるシークレットを自動で検出してくれるということで、実際に触ってみました。
HCP Vault Radarの詳しい説明は、以下のご紹介動画を参照ください。
HCP Vault Radarではいくつかのスキャン方式を提供しています。
以下は、HCP Vault Radarが提供するスキャン方式の一覧です。
# | カテゴリ | 説明 |
---|---|---|
1 | HCP Vault Radar Scan | SaaSからの直接スキャン、トライアル環境で設定可能。 |
2 | Vault Radar Agent Scan | Agent経由のスキャン、トライアル環境で設定可能。Agentは1つまで構成可能 |
3 | Vault Radar CLI Scan | CLIでのスキャン。マニュアルに「Contact your customer success manager to enable HCP Vault Radar or for a license to run the CLI in offline mode.」と記載あるので一部利用できない可能性あり。 |
今回は、#1 HCP Vault Radar Scan 方式のスキャンを試してみました。
1.事前準備
HCP Vault Radarの30日間利用できるトライアル環境を用意します。
1.https://portal.cloud.hashicorp.com にアクセスします
2.アカウントを作成します(Google連携もOK)
3.ダッシュボード左メニューの「Vault Radar」を選択します
4.トライアルの申し込みします(Get started with 30 day trial を選択)
こちらで、HCP Vault Radar環境が準備できました。
次に、GitHubと連携設定を行います。
2.GitHubとの連携
1.遷移先の画面で、スキャン方法として、「HCP Vault Radar Scan」を選択し、Continueをクリックします
2.スキャン対象のデータソースを設定します。今回はGitHub Cloudを選択します
3.GitHubの組織名を指定し、パーソナルアクセストークンを設定します
GitHubのアクセストークンは、下記スコープを選択して発行します。
- repo
- read:org
- admin:repo_hook
- admin:org_hook
- read:user
4.リポジトリを選択します。(あるいは、All active repositoriesを選択します)
5.スキャンが完了すると、以下のような画面に遷移します。
以上で、GitHubとの連携ができました。
次に、リポジトリにシークレットを記載し、スキャンしてみます。
3.GitHubへのテストシークレットの登録とプッシュ
テストシークレットを登録して、GitHubにPushします。
❗ 本物の鍵は絶対に使用しないでください。本記事のキーはすべて無効なダミーです。
vault-radar-demo/
├── .env
└── config.js
.env
AWS_ACCESS_KEY_ID=AKIAFAKEKEY1234567890
AWS_SECRET_ACCESS_KEY=wJalrXUtnFAKESECRETKEYEXAMPLE
SENDGRID_API_KEY=SG.fakevalue.1234
config.js
const password = "hunter2";
const dbPassword = "supersecurepassword123";
4.スキャン結果確認
HCP Vault Radarが自動的にスキャンした結果がダッシュボードに表示されます。
スキャンは次の3つのタイプで区分けされていました。
# | カテゴリ | 説明 |
---|---|---|
1 | Secrets | シークレット |
2 | PII | 個人を特定できる情報 |
3 | Non-Inclusive Language | 非包括的言語(特定のグループの人々を排除したり、不快にさせたりする可能性のある言葉や表現のこと) |
Detailsタブの右上にある「Add to scan queue」ボタンをクリックすると、手動でスキャンキューを登録できました。
カテゴリ名で「Secrets」のリンクをクリックすると、検出したシークレット情報がイベント形式で一覧表示されます。
各イベント行を選択すると、さらに詳細情報が表示されました。また、Remediation(修復措置)についても情報提供があります。
Context列にあるリンクをすると、GitHubでソースコードを確認できます。
シークレットごとに、Triaged/False Positive(誤検知)/などステータス管理ができます。
最後に
今回は、HCP vault Radarから直接スキャンする形で、GitHubのデータをスキャンしました。
次回は、HCP Vault Radarで、GitHubのPull Request内にあるシークレット検出機能を試してみます。Pull Requestをスキャンすることで、新しいコードに潜むシークレット漏洩のリスクを早期に発見できる可能性があります。
参考情報
Vault Radar公式ページ(英語)
https://developer.hashicorp.com/hcp/docs/vault-radar