脆弱性診断をする際に最も重きを置くことは何ですか?

このエントリはpeingの質問への回答を転載したものです。

脆弱性診断をする際に最も重きを置くことは何ですか? | Peing -質問箱

脆弱性診断において重要なことは複数あり、優先度をつけることがむずかしいのですが、あえて一つ選ぶとすれば、網羅性ではないかと思います。

脆弱性診断の周辺にあるサービスや施策として、ペネトレーションテストやバグバウンティ制度などがありますが、いずれも網羅性を指向するものではありません。この点、脆弱性診断は網羅性が期待される(べき)ものだと考えます。

脆弱性診断は限られた時間と、通常ソースコードを閲覧できないという制約で行うものなので、すべての脆弱性を指摘できることは限りません。このため、ここでいう「網羅性」とは、「当然発見できてしかるべき基本的な脆弱性を見逃さず指摘する」という意味です。これ、意外に難しいですよ。

たとえば、AとBという2つの入力欄があり、Aに脆弱性があるとします。しかしこの脆弱性はBが空欄の場合には発現しないというケースがありえます。したがって、Aだけに注目すると、Bを空欄のままいくらA側でさまざまなテストをしても、この脆弱性は見つからないのです。

もちろん、そのような組み合わせは無限に存在するので、すべての可能性を網羅することは難しいのですが、内部処理(ソースコード)の状況について仮説をたてて、その仮説を検証してくことにより、網羅性を高められる可能性はあります。地味ですが、そのような点がとても重要だと思います。

セキュリティの研究を仕事と趣味でやっていて、趣味の研究結果をブログ記事などで公開しています。研究にあたり、ドメイン名取得や、VPS、AWS等の継続的な費用がかかりますので、支援をいただければ幸いです。 https://twitter.com/ockeghem