|
このページは
2007
年
07
月
16
日
00時14分45秒
に更新した情報です。
|
におけるとは?
[ 135] Webサイトにおけるクロスサイトスクリプティング脆弱性に関する情報
[引用サイト] http://www.ipa.go.jp/security/ciadr/20011023css.html
|
現在稼動中の多くの webサービス(ショッピングサイト、銀行など)におけるクロスサイト スクリプティング脆弱性の問題に対する対策が不十分なため、これを クロスサイト スクリプティング脆弱性は 2000年 2月に CERT/CC と Microsoft社により報告されたアドバイザリ(※注)により広く知られるものとなっています。 しかし、依然として多くのサイトにおいて対策が取られていない現状にあることが、産業技術総合研究所 高木 浩光 氏らの調査により明らかになりました。 この脆弱性を用いることにより、対策のとられていない webサイトにアクセスすることで、ユーザーの cookie が第三者に送信される可能性があります。 この cookie が認証やセッション管理に用いられていた場合、第三者がユーザになりすまして webサイトにアクセスできることから、クレジットカード番号などの重要な情報が漏洩する恐れがあります。 Webサーバーシステムのインテグレーター、サーバー管理者、サービス運営者においては、早急にクロスサイト スクリプティング脆弱性を解消する対策をとることが の利用状況を把握すると共に、サービス利用後にセッションを終了させるなど、自衛に努めてください。 HTMLやXML等のマークアップ言語のソースを生成する仕組みを設けている場合に、セキュリティ上の問題となるものです。あるサイトに書かれているスクリプトが別のサイトへとまたがって(クロスして)実行されることから、クロスサイト ページの自動生成過程において、悪意ある者がそのページを構成する部分を記述できてしまう状態にあると想定します。 例えば、攻撃者はアクセスしてきた読者に意識させることなく他のサイトにある悪意あるプログラムをダウンロードさせるスクリプトを記述するように事前に処理させ たとします。そのページにアクセスした読者は、そのスクリプトが示す悪意あるプログラムによって侵害されます。別の例を挙げるならば、アクセスしに来る読者の cookie 情報を操作するスクリプトを記述するように Webサーバーシステムで web ページを自動生成するプログラムを開発する際には、いかなる入力に基づいても、ページの生成処理過程で発信することを望まないスクリプトを含まないことを検証する機能が必要です。 大部分の webブラウザは、webサーバーからダウンロードされる webページに埋め込まれたスクリプトを解釈する機能を持っています。このようなスクリプトは各種スクリプト言語で書かれており 、ブラウザにより実行されます。大部分のブラウザは、デフォルトでスクリプトを実行してしまいます。例を掲げます。 HTMLタグが書き込まれて、それがそのまま発信されることがあります。例えば、侵入者は以下のようなメッセージを投稿します。 スクリプト実行を有効にしているブラウザでこのメッセージを読み出すと、悪意あるプログラムが意に反して実行されます。このように埋め込み型のスクリプティング タグには スクリプティング タグ以外にも、<FORM> のような他の HTML タグは攻撃者に悪用される可能性があります。例えば、悪意ある <FORM> タグを適当な場所に置き、既存のフォーム動作を書換え、ユーザの重要な情報を表示させるでことができます。他の HTMLタグを使って、ページの内容を書き換えたり、意図していたものと Webサービスにおいて Cookie が用いられるのは、HTTPプロトコルがセッション管理をサポートしていないからです。HTTP におけるユーザ認証の仕組み(HTML Basic)には、ユーザIDとパスワードによるユーザ認証の仕組みがありますが、ログアウト等をサポートしていないため、複数ページに跨るようなセッションを管理 することができません。このセッション管理を行うために用いられる方法には、URLにセッション情報を含める方法や、セッション情報を格納した cookie を用いる方法 Cookie は、webサイトが作成するユーザやセッションに関する情報を含むデータで、ユーザの webブラウザに格納されます。この cookie は、cookie を作成した webサイトだけが利用できるため、通常であれば他のwebサイトに、特定のサイト用の cookie 入力値について、発信することを望まないスクリプティングがないことについての検証を行わずに動的にページを自動生成する webサーバーシステム サイトとのセッションにおいて本人認証のセキュリティが処理されている場合を想定します。このページには、関連する 2つのサイトの URL が含まれてしまっています。 <SCRIPT> タグ中の SRC の属性には、悪意あるサイトとおぼしき場所からのコードが書かれています。この例はスクリプティングセキュリティモデルに最も重要な ほかの場所から送られるコードをある場所のページへ挿入していることから、「クロスサイト("cross-site")」スクリプティングの弱点と呼ばれています。 悪意ある者がクロスサイト スクリプティングを webサーバーシステムに記述させた場合、様々な情報セキュリティ侵害が可能となってしまいます。いくつかを例示します。 や TLS による接続がクライアントとサーバー間で確立される前に組み込まれます。SSL/TLS は、この接続が確立された後、悪意あるコードも例外とせずにデータを暗号化し、送受信します。SSL/TLS はクライアントとサーバ は問題なしと処理します。悪意あるコードが非 SSL の URL へ接続しようとすると警告メッセージが表示されますが、攻撃者は単に SSL が実行されている cookie が改ざんされる場合があります。とりわけ、脆弱な webサイトが動的に生成するページに cookie を含めます。次回、その webサイト(信頼しているリンクを通じて)へアクセスしようとすると、書き換えられた cookie ブラウザの設定をホストやドメインからのスクリプト言語を実行可能にしていると、他からのアクセスを制限していても攻撃者はこのポリシーを違反することができてしまいます。 スクリプトを実行可能にしているサーバーへ送られたリクエストに悪意あるスクリプト タグを埋め込めば、攻撃者は特権を獲得することも可能です。 Webサーバーから返されるページに文字コードが特別指定されていない場合、ユーザが選択した文字コードでブラウザは情報を解釈します。しかし、ほとんどの web サイトでは文字コードを特別指定していないので(ISO-8859-1でエンコードした場合でさえ)代わりの文字コードを使用するユーザを危険にさせます。 動的に生成されたページ中に意図しないタグが含まれないようにすることで、この問題を防ぐことができます。このためには、入力内容からメタキャラクタを削除する方法と、出力時にメタキャラクタをエスケープする方法があります。前者では他のリスクを伴う場合があるため、後者の方法を採ることをお薦めします。エスケープする必要のあるメタキャラクタは、HTMLのどの部分を生成しているかによって異なるからです。例えば、 の「どこか」部分を生成する時点では、文字「"」をエスケープする(「"」に置き換える)必要がありますし、 Webサーバーのいくつかの製品はデフォルト インストールの場合、動的に生成されたページが含まれます。自らは動的なページを開発しなかったとしても、webサーバーの動的なページ生成機能に欠陥があった場合、この問題から逃れることはできません。 例えば、サーバー上で作られた「404 Not Found」のページに悪意あるコードが含まれているかもしません。各 web 「IIS クロスサイト スクリプティング」に対する脆弱性を解決する修正プログラム (MS00-060) が他のサイトに漏洩する可能性があります。従って webサーバーシステムの設計者は、万が一 cookie が漏洩した場合に備えて、以下の点に留意する必要があります。: また、クロスサイト スクリプティング脆弱性とは直接の関係はありませんが、以下のような対策をとることで、よりセキュアに cookie の利用が可能になります。 「1. ページを生成する際にメタキャラクタのエスケープ処理を怠らない」、「2. Webサーバーのベンダー情報をチェック」に追記。 Web サーバーシステムのインテグレーターおよび web サイト管理者向けの技術情報として追記 |
【チョーほったらかし♪。のんびりナマケモノの主婦が179万円稼いだ株の超カンタンな裏技】
【パソコンど素人の主婦やサラリーマンが1日20分の片手間副業で月収273万円をらくらく稼いだ方法 〜7DAYSプログラム〜】