概要

Claude How To プロジェクトのセキュリティを私たちは重視している。このドキュメントは、私たちのセキュリティ慣行と、脆弱性を責任を持って報告する方法を定める。

サポート対象バージョン

以下のバージョンに対してセキュリティ更新を提供する:

バージョン ステータス サポート期限
Latest(main) ✅ アクティブ 現在 + 6 か月
1.x リリース ✅ アクティブ 次のメジャーバージョンまで

注: 教育用ガイドプロジェクトとして、私たちは従来のバージョンサポートよりも、現在のベストプラクティスとドキュメントセキュリティの維持に重点を置いている。更新は main ブランチに直接適用される。

セキュリティ慣行

コードセキュリティ

  1. 依存関係の管理

    • すべての Python 依存関係は requirements.txt で固定される
    • Dependabot と手動レビューによる定期更新
    • すべてのコミットで Bandit によるセキュリティスキャン
    • セキュリティチェック用の pre-commit フック
  2. コード品質

    • Ruff によるリンティングが一般的な問題を捕捉
    • mypy による型チェックで型関連の脆弱性を防止
    • pre-commit フックが標準を強制
    • すべての変更はマージ前にレビューされる
  3. アクセス制御

    • main ブランチでのブランチ保護
    • マージ前に必須レビュー
    • マージ前に状態チェックの通過が必須
    • リポジトリへの書き込み権限を制限

ドキュメントセキュリティ

  1. サンプルにシークレットを含めない

    • サンプル中の API キーはすべてプレースホルダ
    • 認証情報はハードコードしない
    • .env.example ファイルで必要な変数を示す
    • シークレット管理に関する明確な警告
  2. セキュリティのベストプラクティス

    • サンプルは安全なパターンを示す
    • ドキュメントでセキュリティ警告を強調する
    • 公式セキュリティガイドへのリンク
    • 関連セクションで認証情報の扱いを議論する
  3. コンテンツレビュー

    • すべてのドキュメントをセキュリティ問題についてレビュー
    • コントリビューションガイドラインにセキュリティ考慮事項を含める
    • 外部リンクと参照の検証

依存関係セキュリティ

  1. スキャン

    • Bandit がすべての Python コードを脆弱性についてスキャン
    • GitHub セキュリティアラートによる依存関係の脆弱性チェック
    • 定期的な手動セキュリティ監査
  2. 更新

    • セキュリティパッチを迅速に適用
    • メジャーバージョンを慎重に評価
    • 変更履歴にセキュリティ関連更新を含める
  3. 透明性

    • セキュリティ更新をコミットに記録
    • 脆弱性開示を責任を持って扱う
    • 適切な場合に公開セキュリティ勧告を発行

脆弱性の報告

私たちが対象とするセキュリティ問題

以下の報告を歓迎する:

対象外のセキュリティ問題

以下はこのプロジェクトの対象外である:

報告の方法

プライベート報告(推奨)

機微なセキュリティ問題には、GitHub のプライベート脆弱性報告を使ってほしい:

  1. 訪問先:YOUR_REPO
  2. "Report a vulnerability" をクリック
  3. 脆弱性の詳細を記入
  4. 以下を含める:
    • 脆弱性の明確な説明
    • 影響を受けるコンポーネント(ファイル、セクション、サンプル)
    • 潜在的な影響
    • 再現手順(該当する場合)
    • 推奨される修正案(あれば)

その後の流れ:

公開報告

機微でない問題、またはすでに公開されている問題については:

  1. GitHub Issue を作成security ラベルを付ける
  2. 以下を含める:
    • タイトル:[SECURITY] に続けて簡潔な説明
    • 詳細な説明
    • 影響を受けるファイルまたはセクション
    • 潜在的な影響
    • 推奨される修正案

脆弱性対応プロセス

評価(24 時間)

  1. 報告の受領を確認する
  2. CVSS v3.1 を使って深刻度を評価する
  3. 対象範囲内かどうかを判定する
  4. 初期評価を報告者に連絡する

開発(1〜7 日)

  1. 修正を開発する
  2. 修正をレビュー・テストする
  3. セキュリティ勧告を作成する
  4. リリースノートを準備する

開示(深刻度による)

Critical(CVSS 9.0〜10.0)

High(CVSS 7.0〜8.9)

Medium(CVSS 4.0〜6.9)

Low(CVSS 0.1〜3.9)

公表

私たちは以下を含むセキュリティ勧告を公表する:

報告者のためのベストプラクティス

報告前

報告時

報告後

セキュリティヘッダと設定

リポジトリのセキュリティ

開発時のセキュリティ

# pre-commit フックをインストール
pre-commit install

# ローカルでセキュリティスキャンを実行
bandit -c pyproject.toml -r scripts/
mypy scripts/ --ignore-missing-imports
ruff check scripts/

依存関係のセキュリティ

# 既知の脆弱性をチェック
pip install safety
safety check

# あるいは pip-audit を使う
pip install pip-audit
pip-audit

コントリビュータ向けセキュリティガイドライン

サンプルを書くとき

  1. シークレットをハードコードしない

    # ❌ 悪い例
    api_key = "sk-1234567890"
    
    # ✅ よい例
    api_key = os.getenv("API_KEY")
    
  2. セキュリティへの影響を警告する

    ⚠️ **セキュリティに関する注意**:`.env` ファイルは絶対に git に
    コミットしない。すぐに `.gitignore` に追加すること。
    
  3. 安全なデフォルトを使う

    • 認証をデフォルトで有効化する
    • 該当する場合は HTTPS を使う
    • 入力を検証・サニタイズする
    • パラメータ化クエリを使う
  4. セキュリティ考慮事項をドキュメント化する

    • なぜセキュリティが重要かを説明する
    • 安全なパターンと安全でないパターンを示す
    • 信頼できる出典にリンクする
    • 警告を目立つように記載する

コントリビューションをレビューするとき

  1. 公開されたシークレットをチェック

    • 一般的なパターンをスキャン(api_key=、password= など)
    • 設定ファイルをレビュー
    • 環境変数を確認
  2. 安全なコーディング慣行を確認

    • 認証情報のハードコードがないか
    • 入力検証が適切か
    • 認証/認可が安全か
    • ファイル処理が安全か
  3. セキュリティへの影響をテスト

    • 悪用される可能性はあるか?
    • 最悪のケースは?
    • エッジケースはあるか?

セキュリティリソース

公式標準

Python セキュリティ

依存関係管理

一般的なセキュリティ

セキュリティ勧告アーカイブ

過去のセキュリティ勧告は GitHub Security Advisories タブで確認できる。

連絡先

セキュリティに関する質問やセキュリティ慣行の議論:

  1. プライベートセキュリティ報告: GitHub のプライベート脆弱性報告を使う
  2. 一般的なセキュリティの質問: [SECURITY] タグでディスカッションを開く
  3. セキュリティポリシーへのフィードバック: security ラベルで Issue を作成

謝辞

このプロジェクトを安全に保つために協力してくださるセキュリティ研究者とコミュニティメンバーに感謝する。脆弱性を責任を持って報告したコントリビュータは、セキュリティ勧告で謝意を示す(匿名希望でない限り)。

ポリシーの更新

このセキュリティポリシーは以下のときにレビュー・更新される:

Last Updated: January 2026 Next Review: January 2027


Claude How To を安全に保つためのご協力ありがとうございます!🔒