「Webアプリはハッカーにとって格好の標的」――AppScanに注目集まる

Webアプリケーションの脆弱性は、既存のネットワークセキュリティでは防げない――「IBM Rational AppScan」のようにWebアプリケーション開発のライフサイクルに、セキュアなアプリケーションにするための仕組みを導入する効果は高い。

» 2007年12月19日 04時06分 公開
[西尾泰三,ITmedia]

 Webアプリケーションの脆弱性には、SQLインジェクション、クロスサイトスクリプティング、HTTPレスポンス分割、パラメータ改ざん、hiddenフィールドの不正操作、ステルスコマンド、強制ブラウズ、アプリケーションバッファーオーバフロー、Cookieポイゾニング、XPathインジェクション、セッション固定攻撃……すぐに思いつくだけでもこれだけの数を挙げることができる。

 では、こうした脆弱性を持つWebアプリケーションに、企業はどうセキュリティ対策を施しているのか。「Webアプリケーションの脆弱性がないなどど思ってはいけない。一般的な企業のWebアプリケーションを見ると、幾らでもというのは言い過ぎだが、1つ2つはすぐに見つかるというのが現実」――日本IBMソフトウェア事業ラショナル事業推進ウォッチファイア製品担当パートナー担当リーダーの雨宮吉秀氏は開口一番、こう明かす。

雨宮吉秀氏 「Webアプリケーションはハッカーにとって格好のターゲット」と雨宮氏

 昨今、多くの企業ではファイアウォールやIDSなどを設置してネットワークセキュリティ対策を実施してはいるが、これがWebアプリケーションへのセキュリティ対策につながるとは言い切れない。SQLインジェクションのように、80番ポートに対する正規のHTTPリクエストでやってくる攻撃に対し、既存のネットワークセキュリティの多くは無力と化すからだ。アプリケーション層やセッション層への攻撃頻度が高まっている中、Webアプリケーションの脆弱性に対する企業の認識は概して低い。

 Webアプリケーションをセキュアにするための方法としては、Webアプリケーションのパケットフローを検査するWebアプリケーションファイアウォール(WAF)の設置のほか、Webアプリケーション開発のライフサイクルに、セキュアなアプリケーションにするための仕組みを導入することなどが考えられる。

 「フィールドやパラメータの数など、検査すべきものが膨大になってしまうことも影響し、Webアプリケーションのセキュリティを確保するのは本来難しい。にもかかわらず、それが開発者個人の能力に依存しているのが現実。70%の企業はソフトウェア開発のライフサイクルに、セキュアなアプリケーションにするための仕組みを導入していない」と雨宮氏。そのための仕組みとしてIBMが提供するのが、同社が11月に発表したWebアプリケーションの脆弱性を検査するセキュリティ製品「IBM Rational AppScan」である。

攻撃者の視点で攻撃を試み、問題点を指摘する

 同製品は、2007年7月にIBMが買収したWatchfireの主力製品だったもので、Rationalブランドとして正式に登場するのは今回のバージョン7.7からとなる。

 ブラックボックステストの自動化ツールである同製品は、入力と出力だけに着目し、さまざまな入力パターンに対して仕様書通りの出力が得られるかどうかを確認できる。同様の機能を持つ製品としては、商用であればWebInspect、オープンソースソフトウェアならJameleonなどが存在している。

 AppScanの優れている点は、単に脆弱性を指摘するだけでなく、修正方法の提示、リポートの作成など、「検査する人だけでなく、それを修正する人に必要な情報」(雨宮氏)をまとめて提供してくれる点だ。脆弱性やその修正方法だけでなく、ASP.Net、J2EE、PHPといったプラットフォームに特化した修正の方法などが日本語で表示されるのは非常に強力な機能だ。もちろん、脆弱性対策のデータベースは逐次オンラインアップデートされる。

AppScan7.7State Inducer AppScan7.7のメイン画面(左)と、新機能「State Inducer」。ほぼすべてのAPIがSDKとして提供されており、必要であれば、ユーザーがカスタマイズを加えることもできる「SQLインジェクションもHTTPレスポンス分割も、入力を正しくフィルタすれば防げるもの。開発者からすれば、ユーザーの入力に対してフィルタが意図したとおりに動作していないケースがこれだけある、と示された方が便利なこともある。脆弱性を修正方法の視点でとらえたのが『修復作業』ビュー」と雨宮氏

 最新のバージョン7.7で新たに実装された機能としては、「Scan Expert」「State Inducer」の2つが挙げられる。

 Scan Expertは、Ajaxを用いたWebアプリケーションでJavascriptを実行しないと遷移しないURLなどが存在する場合、Javascriptをオンにする必要を明示的に教えてくれる機能。リリースなどでは「専門家のベストプラクティス」と紹介されている機能だが、ついパースしてしまうような場面でも正確にテストを実行するための機能と考えればよい。

 State Inducerは、複数ページにわたるプロセス、いわゆるマルチステッププロセスを検査できるもの。「A、B、Cというページがあり、A-Bと通過しなければCが正しく表示されないようなケースでの検査、端的に言えばショッピングカートなどのプロセスにおける脆弱性の検査が可能となる」(雨宮氏)

 このほか、リポーティング機能の進化も見逃せない。発見された脆弱性やその危険性、などが可視化されるだけでも大きな説得力を持ちうるが、それを経営層などへ知らせるには、やはりリポートという形式が効果が高い。従来からスキャンした内容を基にリポートを作成する機能は存在したが、最新版ではMicrosoft Wordのテンプレートを用いた出力も可能となっている。


 開発者の属人的な能力だけでは処理しきれないほどにふくれあがったWebアプリケーションの脆弱性。それに迅速に対応していくために、ソフトウェア開発のライフサイクルにWebアプリケーションテストを組み込むAppScanは、時間とコストを削減するだけでなく、Webアプリケーション時代の必須のツールとして企業への導入が進むだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ