攻撃は最大の防御なり!
突然何かを受信して、『PHP サイバーテロの技法──』を読み始めました。これがまた、面白い!
この本で特に面白いのは、「実際に攻撃してみましょう」というスタンスなのが楽しい。──と言っても、どこかの掲示板に悪意を持ったスクリプトを仕掛ける、というわけではなく、サンプルをダウンロードしてローカル環境で試すわけです。──もちろん、そこで得た知識で悪戯をしたくなるのも人情ですが──。
ぼくはまちちゃん! の「善意の悪戯」の数々を見て、どうやって脆弱性を見つけるのかな? と興味を持った方(それ何てオレ?)にお勧めしたいです。
間違った読み方
さて、この本を自分はどんな感じで読んでいるかというと──何度も書いているように、ほとんど PHP の事を知らない、というかプログラミングのことが判ってないので──全くと言っていいほど、何が書いてあるか解らない。しかし、それが逆に楽しいです。もはや『森博嗣のミステリィ工作室』に出てきた「わからなければ詩として読めば良い(p.138)」メソッドを駆使して読み進めています。
もちろん、日本語で解説が書いているので「よくある掲示板などの Web アプリケーションは、そのほとんどに脆弱性がある」と言ったことは理解できます。しかし、その後に続くサンプルコードや実際の攻撃法、そして防御法の説明は、ほとんど詩・またはミステリィとして読んでいます。
サンプルコードと攻撃法が「事件発生・謎」の部分で、防御法が「解決編」みたいな。「さてみなさん。今回の掲示板記事消失事件は、実に簡単なトリックが使われていたのです──」(絶対読み方間違ってる)
──とはいえ、繰り返して読んでいると、脆弱性を見つける理論、そして勘やセンスが身につきそうです。自分が作る側に立った際に、かなり役立ちそうです。
GIJOE 氏のサイト
PEAK XOOPS Support&Experiment – XOOPS site for my test and support が GIJOE 氏のサイトです。最上部にある日の丸マークで日本語化されます。お得意のざっくりチェックをしてみると、高木浩光氏と討論している記事が気になります。
- 高木浩光@自宅の日記 – プログラミング解説書籍の脆弱性をどうするか, 「サニタイズ言うなキャンペーン」とは何か, ASPとかJSPとかPHPとかERBとか、逆だ..
- PEAK XOOPS Support&Experiment – 「プログラミング解説書籍の脆弱性をどうするか」への反論のようなもの1
- PEAK XOOPS Support&Experiment – 「プログラミング解説書籍の脆弱性をどうするか」への反論のようなもの2
- 高木浩光@自宅の日記 – しばらく日記をちゃんと書けそうにない
──うーむ、呪文。なんだけど、もの凄く重要なことが書いてあるスメルはプンプンするぜェー! いつか、きっと、ちゃんと、理解したいです。
最近流行りの脆弱性
最近流行っている脆弱性(不謹慎)といえば、JSONP 周り。JSONP と JSON、そして JavaScript を利用した Web アプリケーションのセキュリティについて、次々に記事が書かれています。
- Web 2.0的アプリのセキュリティ:機密情報にJSONPでアクセスするな : アークウェブ ビジネスブログ
- Kazuho@Cybozu Labs: クロスサイトのセキュリティモデル
- Kazuho@Cybozu Labs: 安全な JSON, 危険な JSON (Cross-site Including?)
- Kazuho@Cybozu Labs: E4X-XSS 脆弱性について
- Kazuho@Cybozu Labs: JSONP – データ提供者側のセキュリティについて
AJAX で、というか Google Maps で「JavaScript はじまったな」と言われて久しいですが、まだまだ新しい技術、そして新たな脆弱性が出てきますね。
そう、今回紹介した本もタイトルこそ『PHP ──』となっていますが、実際は「JavaScript を使った攻撃から、PHP 製 Web アプリケーションをどうやって守るか」という内容が多いです。やはり、これからのサイト作成・管理には JavaScript の知識は必須ですね。