ドキュメントリファレンス

終了コードと安全性に関する注意

プロセスの終了コード、shk が保存するものと決して保存しないもの、そしてパターンベース検出の限界について説明します。

このページの内容

終了コード

コード 意味
0 アクティブなしきい値以上の検出結果がない、またはコマンドが正常に完了した。
1 スキャンまたは MCP 監査の検出結果がアクティブなしきい値に達した、または超えた。
2 ブロッキング AI pre-hook が発動した、またはスキャン/MCP 監査の実行時エラーか設定エラーが発生した。

--fail-on オプションと shk.toml[thresholds] セクションで、どの重要度をしきい値にカウントするかを制御します。しきい値を参照してください。

安全性に関する注意

  • スキャンとマスキングはローカルで実行されます。
  • ドキュメントスキャンは Office ドキュメントとテキストレイヤー付き PDF からテキストを抽出します。画像のみの PDF には shk の外部で OCR が必要です。テキストを抽出できない場合、スキャンは情報レベルのスキップ検出結果を報告します。
  • Office ドキュメントのマスキングは新しい .docx.xlsx.pptx ファイルを書き出し、--output が必須です。
  • shk scan --git-history は Git 参照から到達可能なコミット済み blob をスキャンします。広範囲の履歴スキャンの前に --preview で候補数を確認し、--ref--since--max-commits でスコープを絞り込んでください。
  • shk scan --changed-since <rev> は、現在のブランチで <rev> とのマージベースに対して変更されたファイルをスキャンします。PR の CI に便利です。
  • 組み込みの検出はパターンベースで、手動調整済みの shk ルールと、生成された gitleaks 由来の secret.gitleaks.* ルールで構成されます。AI/ローカルワークフローのガードレールとして使い、専用のシークレットスキャンプラットフォームの完全な代替としては使わないでください。
  • JSON レポートは redacted_value: "[REDACTED]" を使います。value_hash--with-value-hash を渡さない限り省略されます。
  • 値ハッシュ(value hash)は、公開されているルール ID をキーとする決定的なフィンガープリントです。エントロピーの低い値は辞書攻撃で復元できる可能性があるため、値ハッシュを含むレポートは機密性の高い成果物として扱ってください。
  • フックの監査ログには、件数、ツール名、フックのフェーズ、ルール ID、アクションカテゴリ、表示パスなどのメタデータが含まれます。一致した生の値、プロンプト本文、コマンドテキストは保存されません。
  • .shk/audit.log を要約するには shk audit を使います。パスラベルを出力すべきでない場合は --no-paths を追加してください。
  • 許可リスト(allowlist)の value_hash エントリは抑制のための決定的なフィンガープリントであり、暗号学的なシークレット保存ではありません。
  • post-tool フックは非ブロッキングです。
  • doctor ignore --fix は不足しているパターンを .gitignore に追記します。既存のエントリは削除しません。
  • doctor workflowspersist-credentials: false のない actions/checkout ステップを検出します。--fix には shk.toml が必要で、検出されたワークフローをその場で編集します。
  • mask --output には shk.toml が必要で、機密性の高い env ファイルと保護対象のホーム設定ファイルは拒否されます。

Env シークレットストアの脅威モデル

デフォルトでは、shk env は dotenv の秘密鍵を OS キーリングに保存します。チームは、共有ボールトによる配布、集中管理された失効、Business 向け監査ログのために 1Password にオプトインできます。

1Password は主にチーム運用の面での強化(配布、オフボーディング、監査)です。また、ローカルのキーリングに鍵を永続化することも避けられます。デスクトップアプリの認可は CLI セッションの間持続することがあるため、shk env run のたびに生体認証による承認が行われる保証にはなりません。可視性のためには、短いボールト自動ロック時間と 1Password Business のアクセスログを推奨します。

Env シークレットストアおよび shk env key migrate を参照してください。

脆弱性の報告

セキュリティ上の問題は、公開の Issue ではなく、リポジトリの SECURITY.md に記載されたプロセスを通じて非公開で報告してください。