現在サポートされているバージョン:
| Version | Supported |
|---|---|
| 1.0.x | ✅ |
セキュリティ上の脆弱性を発見した場合は、公開のイシュートラッカーには投稿せず、以下の手順に従って報告してください。
-
GitHub Security Advisory を使用 (推奨)
- リポジトリの "Security" タブ → "Report a vulnerability"
- または こちら
-
メールでの報告
- 送信先: security@your-domain.com
- 件名: [SECURITY] OCR Demo Vulnerability Report
- 脆弱性の種類 (例: 認証バイパス、情報漏洩、コード実行)
- 影響を受けるコンポーネント (ファイル名、関数名など)
- 再現手順 (できるだけ詳細に)
- 影響範囲 (どのような攻撃が可能か)
- PoC (概念実証コード) (オプション)
- 提案する修正方法 (あれば)
## 脆弱性の概要
Azure Computer Vision APIキーがログに出力される
## 影響を受けるコンポーネント
scenario_a_client/client.py, Line 123
## 再現手順
1. DEBUG=trueで実行
2. ログファイルを確認
3. APIキーが平文で記録されている
## 影響範囲
攻撃者がログファイルにアクセスできる場合、APIキーを取得可能
## 提案する修正
ログ出力時にAPIキーをマスク (例: "***...last4chars")報告を受領したことを確認し、初期評価を行います。
- 脆弱性の再現
- 影響範囲の特定
- 深刻度の評価 (CVSS v3.1スコア)
| 深刻度 | 対応目標 |
|---|---|
| Critical (CVSS 9.0-10.0) | 24時間以内 |
| High (CVSS 7.0-8.9) | 7日以内 |
| Medium (CVSS 4.0-6.9) | 30日以内 |
| Low (CVSS 0.1-3.9) | 90日以内 |
- パッチバージョンをリリース
- セキュリティアドバイザリを公開
- 影響を受けるユーザーに通知
❌ ハードコードしない:
# 悪い例
api_key = "be20989c82b241d9b92e74f9f9d7c786"✅ 環境変数を使用:
# 良い例
import os
api_key = os.getenv('OCR_KEY')
if not api_key:
raise ValueError("OCR_KEY environment variable is required")必ず .gitignore に追加:
# Environment files
.env
.env.*
!.env.example
!.env*.templateテンプレートのみをコミット:
# .env.example (コミット可)
OCR_ENDPOINTS=https://your-endpoint.cognitiveservices.azure.com/
OCR_KEYS=your-key-here
# .env (コミット禁止)
OCR_ENDPOINTS=https://actual-endpoint.cognitiveservices.azure.com/
OCR_KEYS=be20989c82b241d9b92e74f9f9d7c786-
ネットワークアクセス制限
networkAcls: { defaultAction: 'Deny' ipRules: [ { value: 'YOUR_IP_ADDRESS' } ] }
-
マネージドID の使用
from azure.identity import DefaultAzureCredential credential = DefaultAzureCredential()
-
APIキーのローテーション
- 定期的にキーを再生成 (90日ごと推奨)
- Azure Key Vault での管理を検討
機密情報をマスク:
import logging
def mask_key(key: str) -> str:
"""APIキーの最後の4文字以外をマスク"""
if len(key) <= 4:
return "****"
return f"****{key[-4:]}"
logging.info(f"Using API key: {mask_key(api_key)}")定期的なアップデート:
# 脆弱性スキャン
pip install safety
safety check --json
# 依存関係のアップデート
pip install --upgrade -r requirements.txtこのプロジェクトは、Azure Computer Vision APIキーを環境変数で管理しています。本番環境では、以下のいずれかの方法を推奨します:
- Azure Key Vault を使用
- マネージドID を使用 (Azure内でのデプロイ時)
- GitHub Secrets (CI/CDパイプライン)
デフォルト設定では、Computer Visionエンドポイントはパブリックアクセスを許可しています。本番環境では:
- Private Endpoint を設定
- Virtual Network 統合を検討
- IP制限 を有効化
429エラー (Too Many Requests) を適切に処理していますが、DDoS攻撃への完全な対策ではありません。本番環境では:
- Azure Front Door または API Management でレート制限
- Azure Monitor でアラート設定
セキュリティアップデートは、以下の方法で通知されます:
- GitHub Security Advisories (購読はこちら)
- GitHub Releases (セキュリティタグ付き)
- README.md のバナー (Critical/High の場合)
セキュリティに関する質問:
- GitHub Security Advisory: こちら
- Email: security@your-domain.com
一般的な質問:
セキュリティ上の脆弱性を責任を持って報告していただいた方々に感謝いたします。
最終更新: 2025-10-17