コンテンツにスキップ

セキュリティ監査とペネトレーションテスト

本文書は AutoShip-CLI のセキュリティ監査フロー、ツール設定、過去の結果を記録し、セキュリティチーム、監査担当者、上級ユーザーの参考に供します。

継続的セキュリティスキャン

毎回のコミットと Nightly Build で以下のセキュリティスキャンを実行します:

ツール 役割 トリガー
bandit Python SAST CI、nightly
pip-audit 依存関係脆弱性スキャン CI、nightly
gitleaks 秘密鍵漏洩検出 CI、nightly
ruff lint + 一部セキュリティルール CI、pre-commit
Dependabot 依存関係の自動更新 毎週

リリース前セキュリティ監査フロー

各大バージョンのリリース前に、セキュリティチームは以下の監査を実行します:

1. コード監査

  • 外部入力を伴うすべてのコードパス(CLI 引数、設定ファイル、プラグイン、モデル応答)をレビュー。
  • パス操作が Path.resolve() を使用し、許可範囲内に制限されていることを確認。
  • サブプロセス呼び出しで shell=True を使用していないことを確認(ユーザーが明示的に認可した場合を除く)。
  • 機密データが autoship.core.redaction または同等のロジックでマスキングされていることを確認。

2. 設定と資格情報の監査

  • デフォルト設定でテレメトリと外部モデルバックエンドが無効であることを確認。
  • API キー、トークンなどのフィールドが ${ENV_VAR} 注入をサポートしていることを確認。
  • 設定ファイルのデフォルト権限が 0o600 であることを検証。

3. プラグインセキュリティ監査

  • autoship plugin verify <package> でサードパーティプラグインの宣言権限と実際の動作をチェック。
  • verified レベルを申請するプラグインのソースコードをレビュー。
  • sandbox がプラグインのファイルシステムアクセスを制限していることを確認。

4. 依存関係とサプライチェーン監査

  • uv run pip-audit --desc を実行し、すべての HIGH レベルの脆弱性を修正。
  • pyproject.toml の依存関係に未固定バージョンや既知の問題がないか確認。
  • release.yml が Trusted Publishing または最小権限の PyPI トークンを使用していることを確認。

5. ペネトレーションテストチェックリスト

テスト項目 手法 期待される結果
パストラバーサル ../../../etc/passwd 形式のパラメータを構成 拒否されるか、解決後も許可ディレクトリ内に留まる
コマンドインジェクション コミットメッセージ / diff にバッククォートとセミコロンを埋め込む シェルで解析・実行されない
SSRF 内部ネットワークアドレスを指すモデルバックエンドを設定 ユーザー設定に従うが、デフォルトでは信頼しない
機密情報漏洩 例外をトリガーしてログを確認 API キー、パスワード、トークンの平文なし
プラグイン権限超過 低権限を宣言しつつ高権限操作を試みるプラグインをインストール 権限チェックでブロック
サービス拒否 1000+ ファイルのプロジェクト + 超長 diff タイムアウト内に完了し、クラッシュしない

過去の監査結果

2026-06-19 v1.0.0 内部セキュリティレビュー

  • 実行者:AutoShip セキュリティチーム
  • 範囲:CLI、コアライブラリ、組み込みプラグイン、registry、CI/CD
  • 結果
  • bandit:High/Medium 0 件
  • pip-audit:未修正脆弱性 0 件
  • パストラバーサルとコマンドインジェクションテスト:合格
  • 機密情報漏洩テスト:合格
  • プラグイン権限テスト:合格
  • 残存リスク
  • ローカルモデルバックエンドはデフォルトで HTTP を使用し、ユーザー環境のセキュリティに依存。
  • サードパーティの community プラグインは完全なソースコード監査を経ておらず、ユーザー自身の判断が必要。

計画中の外部監査

  • 対象バージョン:v1.1.0
  • 実行者:サードパーティセキュリティ企業 / コミュニティレッドチーム
  • 範囲:完全な CLI 攻撃面、プラグインシステム、サプライチェーン
  • 成果物:ペネトレーションテストレポート、修正提案、公開サマリー

セキュリティ問題の報告方法

SECURITY.md のフローに従い、メールで非公開に報告してください。