【レビュー】
情報流出、踏み台、システム改竄……これらの事が起きてからでは、もう遅い。Webデベロッパはどんなアプリケーションを作成するときでも、つねに最新の注意を払う必要がある。だが経験の浅いデベロッパはなかなか「何が悪いのか」がピンとこないため、危険なコードを書いてしまいがちだ。心配な方は、今回紹介する「Jarlsberg」で攻守ひととおりの学習をしてみよう。
Google Online Security Blogは5月4日(米国時間)、Web Application Exploits and Defensesを公開した。冒頭のWant to beat the hackers at their own game?によると、このサイトは次の3点を学習する目的で設置されているとのことだ。
物事を学習するには実際にやってみるのが一番(The best way to learn things is by doing)。このコードラボではさまざまな脆弱性の存在するWebアプリケーション「Jarlsberg」をもちいて、脆弱性の種類/攻撃の方法/守り方をチュートリアル形式で実践する。これらからユーザは
を学習することが可能だ。
Jarlsbergで学習・実践できるWebセキュリティの脆弱性は次のとおり(Table of Contentsより抜粋)。
| Cross-Site Scripting (XSS) | XSS Challenges / File Upload XSS / Reflected XSS / Stored XSS / Stored XSS via HTML Attribute / Stored XSS via AJAX / Reflected XSS via AJAX / More about XSS |
| Client-State Manipulation | Elevation of Privilege / Cookie Manipulation |
| Cross-Site Request Forgery (XSRF) | XSRF Challenge / More about preventing XSRF |
| Cross Site Script Inclusion (XSSI) | XSSI Challenge |
| Path Traversal | Information disclosure via path traversal / Data tampering via path traversal |
| Denial of Service | DoS - Quit the Server / DoS - Overloading the Server / More on Denial of Service |
| Code Execution | Code Execution Challenge / More on Remote Code Execution |
| Configuration Vulnerabilities | Information disclosure #1 / Information disclosure #2 / Information disclosure #3 |
| AJAX vulnerabilities | DoS via AJAX / Phishing via AJAX |
| Other Vulnerabilities | Buffer Overflow and Integer Overflow / SQL Injection |
Jarlsbergのスタートページにアクセスすると、自分専用のWebアプリケーションが作成される。
http://jarlsberg.appspot.com/(ユニークなID)/
|
|
Jarlsbergのホーム画面。背景が同名のチーズのようになっている |
Python 2.5が利用できる場合は、http://jarlsberg.appspot.com/jarlsberg-code.zipから成果物一式をダウンロードして使用することも可能だ。
% unzip jarlsberg-code.zip
% ./jarlsberg.py
この場合、アクセスするURIは次のようになる。
http://localhost:8008/(ユニークなID)/
Jarlsbergの利用準備ができたらアカウントを作成し、用意されているリファレンスをもとに攻撃・防御の手法を実践していく。アカウントを作成する際は実際に利用しているサービスのパスワードを使わないように注意すること。
チュートリアルを実践してぐちゃぐちゃになってしまったWebアプリケーションは、リセットページにアクセスすることで初期状態に戻すことが可能だ。
http://jarlsberg.appspot.com/resetbutton/(ユニークなID)
リファレンスにはただ単純に攻撃/防御の方法だけではなく、各種脆弱性の概要、「なぜこれらの攻撃が成立するのか」「なぜこのコードで防ぐことができるのか」といった説明と、より詳細を知るための外部サイトへのリンクが網羅されている。JarlsbergはPythonで実装されており、サーバプログラム側の修正例はPythonで記述されているが、原理がわかれば他言語でも応用が効く。
Web Application Exploits and Defenses/Jarlsbergはあくまでも学習用に公開されたサイトだ。権限がないシステムへのアクセスや攻撃は違法行為となる。ここで得た知識は、脆弱なアプリケーションを実装しない、そして未然に危険性を見つけるために活用すること。決して悪用してはいけない。また、ぜひ自分がいままでに書いてきたコードを見直して修正するところまでを実践したいところだ。
| HTML Purifier 4.1登場、IEにおけるXSS脆弱性に対処 [2010/4/28] |
| FiddlerとWatcherでWebサイトのセキュリティをチェックする [2010/4/21] |
| Google、Webアプリセキュリティツールをオープンソース化 [2010/3/26] |
| もう試しましたか? Googleの脆弱性発見ツール「ratproxy」 [2008/7/17] |
| Web Application Exploits and Defenses |
| Google Online Security Blog: Do Know Evil: web application vulnerabilities |
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
【連載】鉄道トリビア 第137回 山手線と京浜東北線から●●●が消えた!? [08:00 2/11] ライフ |
|
JRグループ、「周遊きっぷ」を見直し - 19の周遊ゾーンが3/31で販売終了に [07:30 2/11] ライフ |
|
「青春18きっぷ」春季用は2/20発売 - 夏季用・冬季用の発売は現時点で未定 [07:30 2/11] ライフ |
|
【ハウツー】炊飯器でつくるチャーシューが簡単すぎ、しかもおいしい! [07:00 2/11] ライフ |
|
【連載】出社前に。日常生活ですぐに使える! 英語クイズ 第118回 「どうぞお話しください、あなたが話す番です」ってなんて言う? [07:00 2/11] ライフ |