「わざと脆弱性を持たせたWebアプリ」で練習をSecurity&Trust ウォッチ(59)

» 2009年10月23日 10時00分 公開
[上野宣@IT]

命名・「やられWebアプリケーション」(仮)

 構築したWebアプリケーションがセキュアかどうかを確かめる方法として、疑似的に攻撃を行うことで問題を発見する「脆弱性診断」があります。脆弱性診断は専門業者が実施することがほとんどだと思いますが、あなた自らが脆弱性診断の技術を身につけることで、セキュアWebアプリケーションについての理解が深まるとか、自社内で脆弱性診断ができるようになるといったこともあるかもしれません。

 脆弱性診断の技術を身につける過程では、脆弱性を見つける手法を試したり、診断ツールを試したりする必要がありますが、診断といえど攻撃と同様のことを行うので、気軽に実稼働環境で実験するわけにもいきません。ましてや、他人や他社のWebサイトで試すなどはもってのほかです。

 そこで、わざと脆弱性を持たせたWebアプリケーションと、それを動作させる環境が必要になります。

 このような環境をわざわざ開発して用意することもできるかと思いますが、もっと手軽に行いたいものです。世の中にはこういった要望に応える、“わざと”セキュリティホールを作り込んで脆弱性を持たせたWebアプリケーション環境がいくつも提供されています。

 ここでは、わざと脆弱性を持たせたWebアプリケーションを「やられWebアプリケーション」と呼ぶことにします(ほかによいネーミングがあれば広めてください)。この「やられWebアプリケーション」を脆弱性診断の腕試しやトレーニング、診断ツールのテストなどに活用してみてください。

すぐに起動できて、すぐに試せる「BadStore.net」

 やられWebアプリケーションの中でもすぐに試せる「BadStore.net」を紹介します。Webアプリケーションの脆弱性だけではなく、OSやWebサーバなどの脆弱性も含まれていて、無償で提供されています。

 BadStore.netはISOイメージで配布されていて、Linux(Trinux)とWebサーバ(Apache)がすでにインストールされています。もちろん、やられWebアプリケーションも設定済みの状態で入っているので、面倒なインストール作業などはほとんどありません。

【セットアップ手順】

1.BadStore.netのISOイメージをダウンロード

 下記のサイトでユーザー登録を行うことで、ISOイメージとPDFのマニュアルを入手することができます。

【関連リンク】

Badstore.net: See how the hackers think.

http://www.badstore.net/

(執筆段階での最新版はBadStore v1.2.3s)


2.BadStore.netを起動

 ISOイメージをCD-ROMに焼いてそこからブートするか、ISOイメージのままVMwareなどの仮想環境に読み込ませて起動させることができます。(VMwareから無償で提供されているVMware Server 2.0.1で動作確認済み)

 起動するとコンソール画面に「Please press Enter to activate this console.」と表示されるので、Enterキーを押します。

3.ネットワーク設定を確認

 初期設定ではDHCPでIPアドレスなどを設定するようになっているので、「ifconfig」コマンドで割り当てられているIPアドレスを確認しておきましょう。DHCPがない環境の場合には手動で設定してください。

4.やられWebアプリケーション「BadStore.net」にアクセス

 やられWebアプリケーションはすでに起動している状態ですので、先ほど確認したIPアドレスにブラウザなどでアクセスしてみましょう。ブラウザでアクセスする場合には「http://IPアドレス/」とします。

BadStore.net のトップページ BadStore.net のトップページ

BadStore.net の脆弱性を探してみよう

 BadStore.netにはWebアプリケーションの脆弱性を主とした数々の脆弱性が用意されています。

 手始めに「Sign our Guestbook」という掲示板の書き込みページ(/cgi-bin/badstore.cgi?action=guestbook)にあからさまに怪しいフォームがあるので、そこにクロスサイトスクリプティング(XSS)の脆弱性を探すためによく使われているペイロード「<script>alert("XSS");</script>」を挿入してみましょう。

怪しい個所にXSSのペイロードを挿入してみる 怪しい個所にXSSのペイロードを挿入してみる

 「Add Entry」ボタンを押してペイロードを送り込むと、ブラウザには「XSS」と書かれたアラートが表示されるはずです。

XSSの脆弱性が見つかった瞬間 XSSの脆弱性が見つかった瞬間

 ブラウザの標準機能だけで脆弱性診断を行うのは厳しいので、実際には脆弱性診断のツールなどを使って試すのがよいでしょう。ダウンロードしたマニュアルの2.4章には、脆弱性診断などに使えるお勧めのツール類が載っていますので、そちらも参考にしてみてください。どうしても見つけられない場合や答え合わせには、マニュアルの4章にチートシート(カンニングペーパーのようなもの)が載っているので参考にしてみましょう。

まだまだあるやられWebアプリケーション

 ここでは使いやすくすぐ試せる「BadStore.net」を紹介しましたが、これはどちらかというと入門編に位置付けられます。もの足りない方はほかのやられWebアプリケーションを試してみてはいかがでしょうか。

WebGoat

 国内では「OWASP Top Ten Project」などで有名なOWASP(The Open Web Application Security Project)が提供しているやられWebアプリケーションです。チュートリアルやヒントなども満載で、脆弱性診断のトレーニングに利用するのに適しています。JavaとTomcatをインストールした環境があれば、WindowsやUNIXなどで動作します。

【関連記事】

Webアプリケーションを作る前に知るべき10の脆弱性

http://www.atmarkit.co.jp/fsecurity/column/ueno/47.html


moth

 盆栽がロゴのアルゼンチンのセキュリティ会社Bonsaiが提供するやられWebアプリケーションで、Webアプリケーションのセキュリティスキャナーのテストなどを目的として開発されたようです。mod_security経由やPHP-IDS経由などの環境での試験も行うことができます。

 VMwareのイメージで配布されています。インストールは起動して、moth / mothでログインしてネットワーク設定を行うだけです。

Hacmeシリーズ

 アンチウイルスソフトで有名なMcAfeeが買収したFoundstoneが提供しています。「Hacme Travel」「Hacme Bank」「Hacme Shipping」「Hacme Casino」「Hacme Books」などがあり、それぞれ動作環境が若干異なりますが、基本的にはWindows環境で動作します。

●既知の脆弱性があるアプリケーション

 専用のやられWebアプリケーションではなく、すでに脆弱性があると分かっている古いバージョンのアプリケーションのパッケージなどをダウンロードしてきてセットアップするという方法もあります。


 いうまでもないと思いますが、やられWebアプリケーションを誰でもアクセスできる環境にセットアップしないようにしましょう。

Profile

上野 宣(うえの せん)

株式会社トライコーダ代表取締役


セキュアWebアプリケーション開発などのセキュリティ教育や、脆弱性診断を主な業務としている。独立行政法人情報処理推進機構(IPA)セキュリティセンター研究員なども務める。


近著に「今夜わかるメールプロトコル」、「今夜わかるTCP/IP」、「今夜わかるHTTP」(共に翔泳社)がある。個人ブログは「うさぎ文学日記」。twitter IDはsen_u


「SecurityTrust ウォッチ」バックナンバー

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。