前書き#
個人の経験から見ると、ペネトレーションテストのレポートは 2 つのタイプに分けられます。1 つは簡単なレポートで、脆弱性の内容を簡潔にまとめたものです。このようなレポートは技術的な内容であり、管理者には適していません。もう 1 つは複雑で公式なレポートであり、プロジェクトのまとめや受け入れのためのレポートとして使用できます。
以前、この記事を見て、高品質なレポートの作成についてのガイドラインをまとめました。海外のペネトレーションテストレポートに焦点を当て、内容をまとめました。添付ファイルには他の多くのレポートもありますので、参考にしてください。
簡単なレポート#
名称 | 説明 |
---|---|
要約 | 問題とその範囲についての簡単な説明を提供する |
影響 | 脆弱性の危険性 |
再現手順 | スクリーンショット、HTTP リクエスト、POC または Exp などの再現手順を含む |
提案 | 修正の提案 |
参考資料 | 通常は含めない |
脆弱性の評価と脆弱性の危険性レベルは、危険性レベルを示すために一般的に使用され、情報、低、中、高などのレベルに分類されます。
公式なレポート#
このレポートはsecuritum-protonmail-security-auditを参考にしています。より実践的な内容であり、添付ファイルには他の多くのリンクもありますので、興味があればご覧ください。
- 概要(業務、ペネトレーション)
- テスト範囲
- テスト方法(OWASP TOP10、OWASP ASVS)
- 発見した脆弱性
テストプロセスでは、データの機密性、完全性、可用性に悪影響を及ぼす可能性がある脆弱性に特に注意しました。
テストの一環として、上記の方法論を使用した手動テストと、Burp Suite Professional、DirBuster、ffuf、nmap、Visual Studio Code、semgrep、grep、sonarqube などのさまざまな自動化ツールを使用してテストを行いました。
脆弱性については、レポートの後半で詳細に説明します。
== 脆弱性リスクレベル:==
脆弱性は 5 段階の評価に基づいて分類され、脆弱性の利用確率とそれによってもたらされるビジネスリスクを反映しています。以下は各重要度レベルの簡単な説明です。
- 重大
- 高リスク
- 中リスク
- 低リスク
- 情報
脆弱性の統計:
グラフで表示
- バージョン変更履歴
- 日付
- バージョン
- 変更の説明
- 脆弱性の再現プロセスの記録
- 脆弱性の名前
- 脆弱性の説明
- 攻撃の前提条件
- 技術の詳細(POC)
- 脆弱性の位置
- 修正の提案
学んだこと
レポートを書く際には、一人称ではなく受動態を使用することをお勧めします。
脆弱性の修正提案を書く際には、一般的な解決策ではなく、提案から始めることが一般的です。
海外のレポートと私たちのレポートを比較すると、異なる点が 1 つあります。それは、最終的なまとめの位置です。海外ではまとめを冒頭に置く傾向がありますが、私たちは結論の部分に置くことが多いです。時には冒頭にまとめることもあります。
脆弱性の再現に関して、海外のレポートは非常に詳細で、情報漏洩などの情報クラスの脆弱性も記載されます。脆弱性の修正提案はシステムに密接に関連しており、一般的な解決策ではありません。
脆弱性のシナリオを攻撃者と被害者の視点から再現することで、他の人が簡単に理解できるようになります。これに対して、国内の脆弱性通報では図表がなく、テキストとリンクの説明のみが提供されるため、脆弱性を理解するのは難しいです。
海外では脆弱性に番号を付けることもあります。プロジェクト名に基づいて脆弱性を明確に区別することができます。
レポートの作成自体は技術的な活動が多くありませんが、他の人が理解できるようにするためには、高品質なレポートを作成することが難しいです。筆者自身も、顧客の意見に基づいてレポートを 5〜6 回修正する必要があり、レポート自体も手順的なものです。テンプレートを作成し、他の人がテンプレートを使用して修正することができます。一部の場合は、ソースコードを提出するレポートもありますが、その場合は簡単なレポートで十分です。
参考:best-practices-for-writing-quality-vulnerability-reports
その他の参考レポート:さらに多くのペネトレーションテストレポート