ikepyonのだめ人間日記

セキュリティに関することを書いていく予定。

Webアプリのセキュリティ自動検査ツールの利点

前回ツールの欠点を書いたけど、Disるだけではひどいので、ツールを使う利点と言うのをあげてみるw

  • 検査工数を大幅に減らせる

自動検査ツールを使わない場合、WebScarabとかProsなどで、手動で検査しなくてはいけないわけだが、コレが意外と手間がかかる地道な作業となる。
あるアプリで1ページに平均10個のパラメータがあるとする。そのアプリの検査対象ページが10ページだとする。
受入れテスト用セキュリティチェックリストのテストパターンを行うとして大体40個弱のテストを一つのパラメータに実施しなければならない。
となると、10(平均パラメータ数)×10(総ページ数)×40(テストパターン数)=4000というかなり多くのテストパターンをセキュリティに関することだけで実施しなければならない。最も、テストパターン全てをやる必要はないだろうけど・・・
これを、手動でやるのは実際かなりめんどくさい。ところが、自動検査ツールを使用すると、一度検査が必要なページに対して、設定してやることで、自動でやってくれるので、この工数を一気に減らすことが出来る。検査自体は自動なので、夜間実行かけて、朝来たら検査が終わっているなんてことも出来る。

  • 検査品質を一定に出来る

Webアプリのセキュリティ検査の場合、ある意味職人芸的なところがある。検査する人の技術レベルにより、脆弱性の発見数が異なることがある。実際、ある人は問題ないと判断した結果についても、別の人は問題がありそうだから、深掘りしてみようと思い、問題を発見すると言うことはよくあることである。例えば、UTF-7を使ったXSS脆弱性は関西辺りの人しか実施していないらしいw
しかし、セキュリティ検査を品質管理と言う観点で考えると、品質が人によって異なるのは非常に困る。自動検査ツールの結果は同じ使い方をすれば、同じ結果を得られるので、ある一定の検査品質を提供してくれる。コレはQA管理の観点から非常にうれしい。

  • 検査技術の習得コストがかからない

先の品質というのと似通っているが、手動で検査をする場合、Webアプリに関する知識(プログラミング、HTTP、HTML、SQL)の知識に加え、セキュリティの知識が必要となる。ところが、Web開発者はプログラミングやHTML、SQLの知識は持っていても、HTTPやセキュリティの知識は持っていないことが意外と多い。これらを習得するには結構学習コストがかかる。特にセキュリティの知識は手を変え品を変え様々なことが考え出されている。これを一般の技術者全てに追えと言うのは無理がある。
しかし、検査ツールは、検査ツールを作成した人がこれらの知識を元にツールを作成するので、ツールのユーザーはこういった知識を習得しなくても検査が出来ることが多い。最も、ツールを使う場合もこれらの知識はあったほうが良いけどね。

  • 現状検査ツールで見つかる程度の脆弱性しか攻撃されない

SQLインジェクション攻撃とか流行っているけど、実際のところ攻撃を受けて被害が発生しているところと言うのはツールで見つかるような非常に簡単な脆弱性が残っているところであることが多いらしい。ということは、ツールで見つかる脆弱性をふさいでおけば、かなりの確率で攻撃を防ぐことが出来ると考えられる。まあ、ネットバンクとかお金と直結するところでもない限り、攻撃する側も早々本腰入れて攻撃しないと言うことだろう。
実際攻撃する側となれば、どうしてもそのサイトを攻略しなければならないというのはあまりなく、他のもっと入りやすいサイトで利益を上げようとするのが普通だしw一般の組織のサイトなんかそうそう、ゴルゴのような超一流の攻撃者の攻撃を受けることは無いと思われる。だからといって、穴を放置するのはいけないけど・・・
というわけで、検査ツールで見つかる程度の脆弱性を防いでおけば、意外と被害は小さくてすむと言うのが現状だろう。

と、幾つか自動検査ツールの利点を挙げてみた。最も、お金をかければ検査会社に頼むことも出来るけど、自動検査ツールを導入することでコストを削減することが出来るのは大きいと思う。検査会社に頼むのは、攻撃を受けた際、ビジネスインパクトが大きなアプリに関してのみで、他のインパクトが小さなアプリについてはツールで確認すると言うリスク管理を行うのがいいんじゃないかなぁと思う。