Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2013年11月24日
最終更新日:2013年12月26日

オープンソースの WAF である WebKnight を Windows Server 2012 R2 にインストールする

WebKnight とは

WebKnight は AQTRONiX 社がオープンソースで開発・提供している IIS (Internet Information Services) 向けの WAF (Web Application Firewall) です。GPL ライセンスで提供されているので、誰でも無償で使用することができます。

WAF とは、Web アプリケーションにリクエストが送信される手前でリクエストを取得して内容を精査し、問題があればリクエストを拒否します。これにより仮に Web アプリケーションに脆弱性があったとしても WAF が守ってくれます。

WAF にも偽陽性や偽陰性という誤検知の問題があるので、過信することはよくないですが、改修不能な Web アプリケーションの保護や、多層防御の一手法として有効です。

また、WAF には、ネットワーク型とホスト型がありますが、WebKnight はホスト型の WAF になります。

公式サイトの情報の記載では、WebKnight は IIS 5/6/7/8 のインストール方法しかありませんが、WebKnight は ISAPI をサポートしている Web サーバーで動作するので、Windows Server 2012 R2 の IIS 8.5 でも問題なく動作します。

IIS に機能追加する

WebKnight をインストールするには、IIS に「ISAPI フィルタ」と「ISAPI 拡張」が追加されている必要があります。IIS のデフォルトインストールでは、2つの機能とも追加されていないので追加する必要があります。

ここでは、IIS がデフォルトでインストールされていることを前提として、2つの機能を追加します。

まず、サーバーマネージャーを起動して、「役割と機能の追加」をクリックします。

pic01

「次へ」をクリック。

pic02jpg

「次へ」をクリック。

pic03

サーバーが複数台ある場合は対象のサーバーを選択しますが、1つしかないのならそのまま「次へ」をクリック。

pic04

Web サーバー (IIS) >> Web サーバー >> アプリケーション開発 の下にある「ISAPI フィルター」と「ISAPI 拡張」にチェックをいれて「次へ」をクリック。

pic05

「次へ」をクリック。

pic06

内容を確認して、「インストール」をクリック。

pic07

インストールが完了したら「閉じる」をクリックして終了です。

pic08

WebKnight のダウンロードとインストール

WebKnight のダウンロードページから、WebKnight をダウンロードします。

注意が必要なのは、ダウンロードページの上部にある “Buy Now” は、AQTRONiX 社によるサポートの購入であって、WebKnight が有償のツールである訳ではありません。

ここでは、現時点で最新バージョンの WebKnight 3.1 をダウンロードします。

pic09

ダウンロードした WebKnight.zip を解凍します。解凍しないでインストールを開始することができてしまいますが、途中でインストールが失敗するので必ず解凍してください。

解凍してできた、WebKnight\Setup\x64\WebKnight.msi をダブルクリックしてインストールを開始します。同じフォルダにある install.vbs は紛らわしいですが、古い環境用のものなので使用しないでください。

インストーラーが起動すると以下の画面が表示されるので ”Next” をクリック。

pic10

“I accept the terms in the License Agreement” を選択して “Next” をクリック。

pic11

“Typical” のアイコンをクリック。

pic12

“Install” をクリック。

pic13

以下の画面がインストーラーのなぜか後ろに表示されるので、 前面に画面を表示して “OK” をクリック。

pic14

インストールが完了したので、”Finish” をクリックします。

pic15

WebKnight が正常に稼働しているか確認するために、以下のアドレスにアクセスします。

WebKnight が正常にインストールされていれば以下のようにエラー画面が表示されます。

pic16

WebKnight の設定方法

WebKnight の設定を行うには、以下のパスにインストールされた Config.exe をダブルクリックして設定画面を表示します。

Config.exe をダブルクリックすると、以下のように XML を選択する画面が表示されますが、設定を行うには “WebKnight.xml” を選択して “OK” をクリックします。

pic17

すると設定画面が表示されるので、設定を変更して、変更内容を File >> Save から保存します。

pic18

WebKnight のログの確認方法

WebKnight のログは、以下のフォルダに、日付+アプリケーションプール名.log という名前で保存されます。

ログファイルをテキストエディタで開いて直接確認してもよいのですが、以下のパスにインストールされる LogAnalysis.exe を使用するとログが確認しやすいです。

LogAnalysis.exe をダブルクリックすると、どのログファイルを開くかの選択画面が表示されますが、ログファイルが1つの場合は直接ログ表示画面が表示されます。

pic19

ログには以下のように表示されて、以下の例では SQL インジェクションの攻撃をブロックしたことが分かります。

Site Instance: W3SVC1
Event: OnPreprocHeaders
Client IP: ::1
Username:
Host header: localhost
Additional info about request (event specific): GET
/
union+select
BLOCKED: Possible SQL injection in querystring: select,union
HTTP/1.1
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko

WAF には偽陽性の問題があるので、偽陽性だった場合には攻撃と見なさないようにログを確認しながらチューニングする必要があります。

まとめ

WebKnight は Windows 上の IIS に簡単にインストールできるので、導入が可能なら導入することをおすすめしたいと思います。情報が少ないですが、設定画面にコメントが付いているので、割合なんとかなるものです。

Web アプリケーションは、どんなに注意して開発し、脆弱性診断を行ったとしても脆弱性は残ってしまいがちなので、多層防御の観点から WebKnight の導入は理にかなっています。

導入に当たっての注意点としては、WebKnight はきつめにチューニングされているので、偽陽性によって Web アプリケーションが動作しない可能性が高いことです。偽陽性の問題を解消するためのチューニング期間を十分に取ることが大事でしょう。

WebKnight の導入によって、みなさんの Web アプリケーションがより安全になれば幸いです。


スポンサーリンク




カテゴリー:ツール

Twitter でも、いろんな情報を発信しています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA