セキュリティバウンティハンター は何をしますか?
これは、広範なベストプラクティスのレビューではなく、責任ある開示やバウンティ提出のための実用的な脆弱性発見を目的とする場合に使用します。
使用するタイミング
- リポジトリ内の悪用可能な脆弱性をスキャンする場合
- Huntr、HackerOne、または類似のバウンティ提出を準備する場合
- 「これは理論的に安全でないか?」ではなく、「これは実際に報奨金が得られるか?」という問いに対するトリアージの場合
動作の仕組み
リモートから到達可能でユーザー制御可能な攻撃経路にバイアスをかけ、プラットフォームが情報提供や対象外として日常的に拒否するパターンを破棄します。
対象範囲内のパターン
これらの種類の問題は、一貫して重要です。
| パターン | CWE | 典型的な影響 |
|---|---|---|
| ユーザー制御URLによるSSRF | CWE-918 | 内部ネットワークアクセス、クラウドメタデータの窃取 |
| ミドルウェアまたはAPIガードの認証バイパス | CWE-287 | 許可されていないアカウントまたはデータアクセス |
| リモートデシリアライゼーションまたはアップロードからRCEへの経路 | CWE-502 | コード実行 |
| 到達可能なエンドポイントでのSQLインジェクション | CWE-89 | データ漏洩、認証バイパス、データ破壊 |
| リクエストハンドラでのコマンドインジェクション | CWE-78 | コード実行 |
| ファイル提供パスでのパストラバーサル | CWE-22 | 任意のファイル読み取りまたは書き込み |
| 自動トリガーXSS | CWE-79 | セッション窃取、管理者権限の奪取 |
スキップするもの
これらは通常、シグナルが弱いか、プログラムが特に許可しない限りバウンティの範囲外です。
- ローカルのみの
pickle.loads、torch.load、または同等のものでリモートパスがないもの - CLI専用ツールでの
eval()またはexec() - 完全にハードコードされたコマンドに対する
shell=True - セキュリティヘッダーの欠如のみ
- 悪用の影響がない一般的なレート制限の苦情
- 被害者が手動でコードを貼り付ける必要があるセルフXSS
- 対象プログラムの範囲外のCI/CDインジェクション
- デモ、サンプル、またはテスト専用コード
ワークフロー
- 最初にスコープを確認:プログラムルール、SECURITY.md、開示チャネル、除外事項。
- 実際のエントリポイントを見つける:HTTPハンドラ、アップロード、バックグラウンドジョブ、Webhook、パーサー、統合エンドポイント。
- 役立つ場合は静的ツールを実行するが、トリアージ入力としてのみ扱う。
- 実際のコードパスをエンドツーエンドで読む。
- ユーザー制御が意味のあるシンクに到達することを証明する。
- 可能な限り最小の安全なPoCで悪用可能性と影響を確認する。
- レポートを作成する前に重複を確認する。
トリアージループの例
semgrep --config=auto --severity=ERROR --severity=WARNING --json
その後、手動でフィルタリング:
- テスト、デモ、フィクスチャ、ベンダーコードを削除
- ローカルのみ、または到達不能なパスを削除
- 明確なネットワークまたはユーザー制御ルートがある発見のみを保持
レポート構造
## 説明
[脆弱性の内容とその重要性]
## 脆弱なコード
[ファイルパス、行範囲、および小さなスニペット]
## 概念実証
[最小限の動作するリクエストまたはスクリプト]
## 影響
[攻撃者が達成できること]
## 影響を受けるバージョン
[テストしたバージョン、コミット、またはデプロイメントターゲット]
品質ゲート
提出する前に:
- コードパスが実際のユーザーまたはネットワーク境界から到達可能であること
- 入力が実際にユーザー制御下にあること
- シンクが意味があり、悪用可能であること
- PoCが動作すること
- 問題がすでに勧告、CVE、またはオープンチケットでカバーされていないこと
- ターゲットが実際にバウンティプログラムの範囲内であること