日経ネットワークセキュリティ「自己防衛マニュアル」(2003年8月発行),156ページより

(注:記事は執筆時の情報に基づいており,現在では異なる場合があります)

話題の多いクロスサイト・スクリプティング問題を取り上げる。この問題の本質は,WebサーバーやWebアプリケーションの出力を,攻撃者が書き換え可能だということである。攻撃するためにスクリプトを使う必要はない。HTMLタグでもよい。現在「クロスサイト・スクリプティング」という名称で呼ばれることが多いが,問題の範囲は名称よりも広範囲に渡る。このため,この問題は思わぬ個所に潜んでいることも多く,対策するには細心の注意が必要である。

 今回は,多くのWebアプリケーションが抱えているクロスサイト・スクリプティングの問題について取り上げたいと思う。まずは,「クロスサイト・スクリプティングとは何か」について説明する。

 その後,対策方法を解説し,最後にこれまでWebや書籍ではあまり紹介されてこなかったクロスサイト・スクリプティング問題を紹介する。クロスサイト・スクリプティング問題は,Webアプリケーションのいたる所に隠れている可能性があり,最近では思わぬ個所でのクロスサイト・スクリプティング問題が多く発見されている。

クロスサイトだけが問題ではない

 WebアプリケーションおよびCGIプログラムのセキュリティ問題は,かなり以前から一部で注目されていた。しかし,WebやCGIの問題がセキュリティのメインテーマとして扱われ出したのは,クロスサイト・スクリプティング問題と,その対策の必要性が叫ばれるようになってからだと,筆者は感じている。

 このためか,「Webアプリケーションのセキュリティ=クロスサイト・スクリプティング」のような印象を持っている人は意外と多い。本稿の読者諸氏の中にも,そういう人がいるのではないだろうか。

 確かにクロスサイト・スクリプティングは,WebアプリケーションとCGIプログラムが抱えるセキュリティ問題の一つである。セッションIDを使うHTTPのセッション管理が主流の現在においては,クロスサイト・スクリプティング問題がセッション・ハイジャックという深刻な問題を引き起こす危険性もある。無視できない問題だ。

 しかし,WebアプリケーションとCGIプログラムのセキュリティ問題は,クロスサイト・スクリプティングだけではない。データベース連携時のセキュリティ問題やシェルコマンド実行の問題など多岐に渡る。

 今回はクロスサイト・スクリプティング問題に焦点を当てるが,「Webアプリケーションのセキュリティ=クロスサイト・スクリプティング」と誤解しないでほしい。本題に入る前に,このことははっきりさせておく。

佐名木 智貴 Sanaki Tomoki

筆者はインターナショナル・ネットワーク・セキュリティに勤務。技術本部に所属している。システムのセキュリティ・ホールの検査を専門とし,システム開発のセキュリティ問題に詳しい。