Shikata Ga Nai

Private? There is no such things.

第40回:よくある報告 NG 例とその改善ポイント

Hello there, ('ω')ノ

1. NG レポート三大パターン

パターン よくある書き方 主な却下理由
A. 情報不足 「XSS を発見しました」だけ 再現不可・影響不明
B. 冗長・脱線 5000字の調査日記+スクショ 30 枚 重要情報が埋もれ、読む気を削ぐ
C. 断定口調&主観 「重大です!至急直してください!」 根拠薄&高圧的で信頼ダウン

2. NG から OK へ:ビフォー/アフター比較

2.1 パターン A:情報不足

Before(NG)

脆弱性: Stored XSS
説明: コメント欄でスクリプトが実行できます。

After(改善)

タイトル: コメント欄の Stored XSS により任意 JS 実行 → セッションクッキー窃取  
概要: 未ログインでもコメント投稿が可能で、HTML エンコードが欠如しているため、任意 JavaScript が保存・実行されます。  
再現手順:  
 1. https://example.com/article/1 を表示  
 2. コメント欄に <svg/onload=alert(document.cookie)> を投稿  
 3. 別ブラウザで当該記事を再読み込み → アラート表示  
影響度: 全訪問者の Cookie 盗用によるアカウント乗っ取り  
修正案: サーバ側で文字列を HTML エスケープし、CSP を設定

改善ポイント

  • 再現手順影響度 を必ずセットに
  • 「誰が何をできるか」を 140 文字以内で要約する

2.2 パターン B:冗長・脱線

Before(NG)

〜○月○日 13:00 テスト開始。まず nmap を実行したところポート 80 が…… 〜(長文の日誌が延々続く)〜 最後に SQL インジェクションっぽい動きを確認。

After(改善)

タイトル: 商品検索 API における Blind SQLi でデータベース読み取り可能  
概要: 商品検索 API の `q` パラメータがプレースホルダ化されておらず、Blind SQLi が成立します。  
再現手順:  
 1. curl -X GET "https://api.example.com/search?q=1' AND SLEEP(5)--"  
 2. レスポンス所要時間が通常 100ms → 5000ms に増加  
影響度: 任意クエリで全顧客情報を抽出可能(PoC: `UNION SELECT email,password FROM users`)  
修正案: Prepared Statement 使用 + DB エラーメッセージ非公開

改善ポイント

  • 調査ログは別ファイルに保管、レポートは結果だけ
  • 数値差分(レスポンス時間など)でインパクトを示す

2.3 パターン C:断定口調&主観

Before(NG)

これは超ヤバいバグです!早く直さないとヤバいです!

After(改善)

影響度: 認証不要で全ユーザの個人情報(氏名・住所・電話)が取得可能。法規上の罰金リスクは最大 2% 売上相当と推定されます。  
修正案: エンドポイントに認可ミドルウェアを追加し、レスポンスで個人情報を返さない設計に変更。

改善ポイント

  • 客観的根拠(法律・罰金・件数)で深刻度を立証
  • 感情語を避け標準用語(CWE/Owasp分類)を使用

3. さらに差がつく“ワンランク上”テクニック

テクニック 効果
数式で損害試算 例:平均購入単価 × 想定悪用回数 = 最大 ○万円
業界ニュース引用 類似インシデント事例リンクを添付し実害をイメージさせる
Fix Pull Request OSS ならパッチ提案 PR を同時提出 → 報酬+評価アップ
PoC GIF 5〜10 秒のアニメ GIF で動きを一目瞭然に

4. チェックリスト:提出前の“5 分レビュー”

  1. タイトルでバグ種 + 影響が伝わるか?
  2. 再現手順を新人でも 3 分で実行できるか?
  3. 影響度に数字・法的根拠・ユーザ数のどれかが入っているか?
  4. 修正案が具体的(ライブラリ名・設定値)か?
  5. 敬語・敬称に漏れはないか?感情語がないか?

まとめ:NG レポートは“情報・構造・語彙”で改善できる

  • 不足 → 追加冗長 → 圧縮主観 → 根拠 が鉄則
  • 数字・比較・標準用語を盛り込むだけで説得力は飛躍的に向上
  • レポートは開発チームへのサービス。読みやすさが最も評価される

「技術 ≒ 半分、ライティング ≒ 半分」 良いバグハンターは、レポート作成を“攻撃フェーズの一部”と考えます。

Best regards, (^^ゞ