記事一覧へ

HackerOneで報告するときに気をつけていること

スコープの読み方、再現手順の削り方、影響の伝え方。トリアージする側が読みやすい報告を書くために、自分が守っているルールをまとめました。

バグバウンティでいちばん時間をかけているのは、実は脆弱性を見つける工程ではなく、報告を書く工程です。トリアージする人が最初の数分で「何が起きて、どこまで影響があるのか」を理解できる報告にしたい。そのために自分に課しているルールを書き出してみます。

1. ポリシーとスコープを、調査の前に読む

当たり前のようでいて、いちばん省略されがちな手順です。プログラムのポリシーには、対象のドメインやアプリだけでなく、やってはいけないこと(自動スキャン、他ユーザーへの影響、ソーシャルエンジニアリングなど)が書かれています。

自分の場合は、ポリシーを読んだ時点で次の3点をメモに残します。

  • 対象(in scope)と対象外(out of scope)の一覧
  • 禁止されているテスト手法
  • 報告に必要とされる情報(例:PoC 動画の要否、テストアカウントの指定)

このメモは調査中に何度も読み返します。「これはスコープ内だろうか」と迷った時点で手を止めるための基準になるからです。

2. 再現手順は「前提を減らす」方向で削る

見つけた直後の再現手順は、たいてい自分の環境に依存した余計な手順を含んでいます。報告に書く前に、次のような問いで削っていきます。

  • この手順を省いても再現するか
  • 特定のアカウント状態(有料プラン、特定の権限)が本当に必要か
  • ブラウザ拡張や自作ツールなしで再現できるか

前提が少ないほど、トリアージ側は再現しやすく、影響範囲の見積もりも正確になります。逆に、どうしても必要な前提は必要である理由を添えて書きます。

3. 「確認できた事実」と「推測」を分けて書く

報告の中で最も気をつけているのがここです。

確認できたこと:エンドポイント X に対して、ユーザー A のトークンでユーザー B のリソース ID を指定すると 200 が返り、B のデータが含まれる。

推測:同じパターンが関連エンドポイント Y にも存在する可能性があるが、未検証。

推測を書くこと自体は悪くありません。ただし、推測を事実のように書くと、トリアージ側が検証に時間を取られ、報告全体の信頼性が下がります。見出しや太字で明確に分けます。

4. 影響(Impact)は、攻撃者の視点で一段階だけ進める

「この脆弱性で何ができるか」を書くとき、飛躍しすぎないように気をつけています。IDOR で他人のメールアドレスが読めるなら、まずはその事実と、それがそのプログラムの文脈でどの程度の問題なのかを書きます。「これを起点にアカウント乗っ取りが可能」と書くなら、その経路も同じ精度で検証してから書きます。

5. 証拠は最小限に、しかし十分に

  • リクエスト/レスポンスは、関係ない部分を削ってから貼る
  • 動画が求められている場合は、短くても手順が追えるものを添える
  • 個人情報が含まれる場合はマスクし、マスクしたことを明記する

6. 自分のためのツールを作る

上の手順を毎回手作業でやるのは大変なので、調査を始める前にスコープを評価し、判断と証拠を監査ログに残す内部基盤を作っています。これは「うっかりスコープ外を触らない」ための安全装置であり、報告を書くときの材料集めにもなっています。


報告の質は、見つけた脆弱性の深刻度と同じくらい大切だと思っています。読む側の時間を減らすことが、結果として自分の報告の評価にもつながります。