連載
» 2005年12月22日 00時00分 公開

星野君のWebアプリほのぼの改造計画(3):Webアプリ、入力チェックで万事OK? (4/5)

[杉山俊春, Illustrated by はるぷ,三井物産セキュアディレクション株式会社]

入力チェックと画面遷移管理をしているから大丈夫でしょ

牧野さんに脆弱性があったことを報告する星野君

 脆弱性を発見した以上、報告をしなくてはならない。平野部長から渡された資料によれば、このWebアプリケーションを作ったのは技術担当の牧野さんという人らしい。何かあった場合の連絡先として指定されていた。

 星野君がいるWeb担当部門は7階にあり、技術担当部門は6階にある。牧野さんとの面識はなかったが、やっぱり直接話した方が早いだろうと思い、会いに行くことにした。

星野君 「牧野さん、すいません」

牧野さん 「はい?」

星野君 「いま、うちのWebページの問い合わせ機能を検査している星野ですけど……」

牧野さん 「ああ。君が星野君ね。聞いてるよ。どう?なんかまずい部分あった?」

星野君 「入力のチェックが不十分みたいで、クロスサイトスクリプティングが可能な状態になっていました」

牧野さん 「えっ。ちゃんと入力のチェックをしてたはずだけどなぁ……」

 星野君はJavaScriptでの入力チェックはされていたことを話したうえで、その入力チェックを回避し不正文字列を送信することができるということを説明した。

入力チェックが回避されてしまう例

牧野さん 「なるほど……。でも、クロスサイトスクリプティングってどこかにわなを仕掛けないとダメなんでしょ?」

星野君 「はい、そうですねぇ」

牧野さん 「じゃあRefererをチェックして画面遷移管理してるから大丈夫じゃない?」

 クロスサイトスクリプティングによる攻撃を成功させるためには、攻撃者がわなとして埋め込んだ不正なスクリプトを含むリクエストをほかのユーザーに実行させなければならない。通常、わなを仕掛けるWebページは攻撃者が作成したWebページになるわけだが、Refererをチェックして画面遷移を管理している場合、攻撃者のWebページから正規のWebページへの遷移ができないため攻撃が成立しない。

星野君 「なるほど……」

 確かにいわれてみればそのとおりだと思った。検査をしているときには、Refererはあまり関係なさそうなので操作を行わなかったのだ。自席に戻り、Refererを操作してリクエストを送ってみたところ、「Refererが正しくありません」というエラーが出てスクリプトが動作しなかった。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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