Shikata Ga Nai

Private? There is no such things.

第38回:説得力のあるレポートの書き方(内容編)

Hello there, ('ω')ノ

1. 概要を“商品キャッチコピー”に仕立てる

悪い例 「XSS がありました」

良い例 「顧客向けお知らせページの未エンコード出力により、 ログイン不要で任意 JavaScript 実行 → セッションクッキー窃取可(Stored XSS)」

ポイント

  • 機能名 + 技術名 + 影響 を 1 文に
  • 技術者でなくても「ヤバさ」が伝わる単語を選ぶ
  • “結果” だけでなく “経路” を 10〜15 秒で理解させる

2. 再現手順は “料理レシピ” と同じ

悪い手順 改善手順
「パラメータを書き換えて送信します」 1. https://shop.example.com/product/1 を開く
2. URL の末尾を /admin に変更してEnter
「postman でリクエストを送ります」 curl -X GET 'https://api.example.com/v1/users' \
-H 'Authorization: Bearer <user_jwt>'

コツ

  1. 行頭に手順番号(1, 2, 3…)
  2. URL/パラメータはそのままコピペで再現できる形
  3. UI 操作は “タブ名→ボタン名” を明示
  4. 期待レスポンスをインラインで添える
   => HTTP/1.1 200 OK (本来は 403 Forbidden)

3. 影響度を「数字」で語る

曖昧な表現 数値化例
「大量の個人情報が漏えい」 最大 25 万件 の氏名・住所が取得可能
「サービス利用不能の恐れ」 同一リクエストを 5 秒間で 1,000 回 送ると CPU 使用率 100% に達し、フロントエンドが 3 分間ダウン
「売上に影響する」 割引ロジックを悪用すると 1 取引あたり平均 3,000 円損失

ステップ

  1. 対象ユーザ数在庫数 をフロントや API から取得
  2. 単価 × 件数 = 金額換算
  3. 類似インシデント(ニュース)を引用し、比較 して説得力増強

4. 修正案は“なぜ・どこ・どうやって”の3段構え

なぜ(Why) バリデーション欠如で XSS 可

どこ(Where) /src/components/Notice.vuev-html="message"

どうやって(How)

  1. 入力を DOMPurify.sanitize() でサニタイズ
  2. テンプレ内では {{ message }} を使用し自動エスケープ

メリット

  • 開発者が コード検索 → 修正 を最短で行える
  • “余計なお世話” に見えず 共同作業 の印象を与える
  • 評価者が「実装コスト < 被害額」と判断しやすい

5. 証拠スクリーンショットを“1 枚 1 メッセージ”に

  • 前提画面:ログイン状態 or 初期フォーム
  • 操作:パラメータ投入・リクエスト送信
  • 結果:アラート・JSON・Shell 出力など
  • 影響:ユーザ一覧 CSV、RCE の id 結果など

各ショットに 赤枠 or 番号 を入れて図中説明を省略 → レビュー担当が 「読むより見る」 だけで理解


6. ありがちなNG表現と改善例

NG 改善
「重大な問題です」 CWE-284: Improper Access Control に該当し、ユーザ全データを取得可能です
「たぶん危険です」 未認可アクセスで PII が漏えい し、GDPR 罰金対象となる恐れがあります
「修正方法は分かりません」 入力値エスケープ または Prepared Statement で防止可能です

フワッとした言葉標準用語+根拠 に置き換えるだけで印象が激変。


7. “魅せるレポート”最終チェックリスト

  • [ ] タイトルは 技術名+影響範囲 を含むか
  • [ ] 概要は 140 字以内 で完結か
  • [ ] 手順は コピペ ⇒ 即再現 できるか
  • [ ] 影響度を 数字比較 で示しているか
  • [ ] 修正案は Why / Where / How がセットか
  • [ ] スクショには 赤枠&番号 があるか

まとめ:内容を磨けば “秒で理解 → 即評価”

  • 短く具体的 に書くため、数字と標準用語を活用
  • 修正案まで含め 「行動を促す」 レポートを目指す
  • NG 表現を避け、プロフェッショナルな文体 を心掛ける

「読み手の脳内シミュレーションを代行する」 これこそが “説得力あるレポート” の核心です。

Best regards, (^^ゞ