概要
security-harness-kit (shk) とは何か、AI 支援開発においてどのような問題を解決するか、そして各機能がどのように組み合わさるかを説明します。
このページの内容
shk は、プロジェクト内のシークレットや PII(個人情報)を検出し、AI コーディングツール・Git コミット・生成ファイルに混入する前に止めるコマンドラインツールです。処理は手元のマシンで完結し、ファイルの内容を外部に送信しません。また、.env ファイルを暗号化し、ローカルコマンドの実行時にのみ復号した値を注入することもできます。
shk scan .出力例:
3 findings
HIGH secret.openai_api_key src/app.ts:12 Possible OpenAI API key detected
MED pii.ja.phone config/dev.ts:5 Japanese phone number pattern detected
MED pii.en.ssn docs/test.md:8 US SSN pattern detected
Failed: findings at or above high (max high).なぜ必要か
AI コーディングエージェントは、プロジェクトのファイルを読み、シェルコマンドを実行し、与えられた内容から新しいファイルを書き出します。shk はその手前にチェックを挟みます。エージェントが読み込む・送信する内容をスキャンし、プロンプトに貼る内容をマスクし、cat .env のようなコマンドを実行前に拒否します。
スキャン、マスク、フックのチェックがネットワーク通信を行うことはなく、監査ログにはメタデータだけが残ります。検出はパターンベースなので、shk は AI ツールとの境界でのチェックとして使い、唯一のシークレットスキャナーにはしないでください。
shk でできること
- ソースコード、Markdown、プレーンテキスト、Office ドキュメント(
.docx、.xlsx、.pptx)、テキストレイヤー付き.pdfファイルを対象に、プロジェクトのパスや Git のステージ済みファイルから一般的なシークレットと PII をスキャンします。 - 標準入力、テキストファイル、Office ドキュメントの機密コンテンツを、プロンプトに貼り付ける前にマスクします。
- CSV、xlsx、テキストデータを決定的なトークンで仮名化し、共有したデータセットを結合可能なまま保ちます。元の値を戻すための暗号化された復元マップも作成します。
.envファイルを暗号化し、秘密鍵を設定済みのシークレットストアに保存し、復号した値を実行時にのみ注入してコマンドを実行します。- プロバイダーの CLI を通じて、AWS Secrets Manager または GCP Secret Manager に dotenv ペイロードをプッシュします。書き込みの前に PII スキャンと lint を実行します。
- ステージ済みのシークレットをブロックする Git pre-commit フックをインストールします。
- Claude Code、Cursor、Codex、GitHub Copilot、Antigravity、Windsurf 向けのマネージド AI フックをインストールします。リスクのある操作を実行前にブロックするアクションガードを備えています。
- 検出された値を保存することなく、ブロックされたフックのアクティビティを把握するためにメタデータのみの監査ログを確認します。
- 安全でないパッケージ、認証情報、HTTP、ファイルシステムの設定について、MCP クライアント設定を静的に監査します。
- すべてのプルリクエストで
shk scanを実行する GitHub Actions ワークフローを生成します。 - ignore ファイルと
.envの安全性カバレッジを診断します。 - Claude Code、Codex、Cursor、GitHub Copilot、Antigravity、Windsurf のプロジェクトディレクトリに AI エージェントスキルをデプロイします。
- GUI でローカルのスキャン、マスキング、セットアップ、監査ログの確認を行うには shk Desktop アプリを使います。
各機能の組み合わせ
| レイヤー | 保護対象 | エントリポイント |
|---|---|---|
| ポリシー | 単一の shk.toml で、プロジェクトごとのルール、しきい値、マスキング、アクションガードの動作を定義します。 |
shk init、設定 |
| スキャン | ファイル、ステージ済みの変更、または Git 履歴からシークレットと PII を検出します。 | shk scan |
| マスク | テキストやドキュメントの検出結果を秘匿化または仮名化し、安全に共有できるようにします。 | shk mask、shk clipboard、shk pseudonymize |
| フック | Git や AI コーディングツールの内部で、リスクのあるコンテンツやアクションをブロックまたは監査します。 | shk hooks install、shk hooks install-ai |
| Env | dotenv ファイルを暗号化し、実行時にのみ値を注入し、クラウドのシークレットマネージャーにプッシュします。 | shk env、shk secrets push |
| CI | 固定(ピン留め)され検証済みのリリースを使い、すべてのプルリクエストで同じスキャンを実行します。 | shk ci init github |
| Desktop | スキャン、マスキング、セットアップの自動化、監査ログの確認のための GUI です。 | デスクトップアプリ |