Article delegate-en/1786 of [1-5169] on the server localhost:119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]

Newsgroups: mail-lists.delegate-en

[DeleGate-En] ...に関する1年前の...
25 Jul 2002 15:24:50 GMT ysato@delegate.org (Yutaka Sato)


成行き上[DeleGate-En]でこれが続いていますが。。。ついでなので、昨年7月
に高木さんからこの問題を指摘されて対処した時の自分のメールをアーカイブ
しておこうと思います。

Subject: Re: DeleGate Cross-site scripting Vulnerability
In message <xLIl1.y.sato@delegate.org> on 07/18/01(16:48:13)
y.sato@delegate.org (Yutaka Sato) wrote:
...
 |この件につきましては、技術的にHTTPの何がどのように悪用されているかは
 |理解したと思っていますが、一方、以下のような思いを新たにしています。
 |
 |・他から送られたJavaやVBS等のスクリプトを実行可能にしている状況では、
 |セキュリティを保つ事は、ほぼ絶望的と思われます。世の中にこのような
 |スクリプト言語を悪用するタネは無尽蔵にあると思われます。
 |・安全で無い技術をベースに、多数の人間(メーカ/ユーザ)の不断の努力
 |で安全性を実現しようとする試みは、あまりにコストが高く、最終的な勝利
 |を得ることはないと思われます。
 |・問題を大元から断つ技術が必要と思います。例えばスクリプトについては、
 |作成者の(クリア)署名をして、この署名に基づいて実行可/不可を判定する
 |ようにすべきと思います。Javaのオブジェクト等についても同様と思います。
 |
 |また今回の件につきましては、ブラウザ側での防御として何がなされている
 |のか興味があります。例えば以下のような方法が効果的と考えられます。
 |
 |・NNやIEなどのブラウザで、自分が送信する要求ヘッダの内容について、
 |<SCRIPT>等の異様な文字列を検出して、送出前にユーザに問い合わせるとか、
 |それに対する応答については自動的に実行しないかユーザに問い合わせる、
 |などが考えられます。
 |・あるいは、例えばURL中の"<"を"%3C"に置き換えることは、ほとんど副作用
 |をもたらさないと思われますが、エラーメッセージ等にエコーされるURLは
 |多くの場合アンエスケープされない元の文字列だと思いますから、これも
 |効果的と思われます。(DeleGateにはこの機能を入れようと思っています)
 |被害を受ける側(ブラウザ側)に非は無いからといって、何も防御を行わず、
 |不特定無数のサーバ側に対処に期待しているとすると、不思議です。
...
 |DeleGateがこのようにURLホスト名部分の異常な文字を%XXエスケープするのは、
 |[CHANGES]
 |6.0.4: 991126: http.c: pre-escape non-ASCII host name in request URL
 |によるものです。これは日本語ドメイン名に対処した際に導入したものですが、
 |今回の件への対処としまして、ホスト名部分だけでなく、URL-pathの部分に
 |ついても、少くともURL-path中に現れる"<"については、これを適用しようかと
 |考えています。
 |それで、もし、今回の件につきまして、URL中の"<"が"%3C"と標記されていた場合
 |に、悪用を回避できるケースがどの程度あるかご存知でしたら教えて下さい。

これは HTTPCONF=urlesc:setOfChars というパラメタとして実現されました。
[CHANGES]
>7.4.1 010718 {http,urlesc}.c: introduced HTTPCONF=urlesc[:set]


In message <xLQHD.y.sato@aist.go.jp> on 07/19/01(00:10:05) I wrote:
 |In message <xLIl1.y.sato@delegate.org> on 07/18/01(16:48:13)
 |you y.sato@delegate.org (Yutaka Sato) wrote:
 | |また今回の件につきましては、ブラウザ側での防御として何がなされている
 | |のか興味があります。例えば以下のような方法が効果的と考えられます。
 | |
 | |・NNやIEなどのブラウザで、自分が送信する要求ヘッダの内容について、
 | |<SCRIPT>等の異様な文字列を検出して、送出前にユーザに問い合わせるとか、
 | |それに対する応答については自動的に実行しないかユーザに問い合わせる、
 | |などが考えられます。
 |
 |・あるいは、404(Not Found)等のエラーメッセージに対しては、その
 |text/htmlボディ中の<SCRIPT>を実行しない、ことをデフォルトとする、
 |というのも、副作用がほとんど無く、防御としては効果的かと思います。
 |
 | |・あるいは、例えばURL中の"<"を"%3C"に置き換えることは、ほとんど副作用
 | |をもたらさないと思われますが、エラーメッセージ等にエコーされるURLは
 | |多くの場合アンエスケープされない元の文字列だと思いますから、これも
 | |効果的と思われます。(DeleGateにはこの機能を入れようと思っています)
 | |
 | |被害を受ける側(ブラウザ側)に非は無いからといって、何も防御を行わず、
 | |不特定無数のサーバ側に対処に期待しているとすると、不思議です。
 |...
 | |それで、もし、今回の件につきまして、URL中の"<"が"%3C"と標記されていた場合
 | |に、悪用を回避できるケースがどの程度あるかご存知でしたら教えて下さい。
 |
 |応答コードが200以外であった場合には、<SCRIPT>を無効化する、という
 |という方法で、悪用を回避できるケースがどの位の割合であるかご存知
 |でしたら教えて下さい。
 |#これもDeleGateのデフォルト機能にしようかと思います。
 |
 |                   @ @  
 |┌─┐┬┌──┬┐ //\^^ ( - ); <URL:http://staff.aist.go.jp/y.sato/>
 |├─┤│└─┐│ / 877m\_<   >_ <URL:http://www.delegate.org/delegate/>
 |┴ └┴──┘┴──────────────────────────────
 |佐藤豊@情報処理研究部門.産業技術総合研究所(独立行政法人)

これに関連しては、HTTPCONF=kill-tag:SCRIPT で、text/html 応答中の
SCRIPTタグを無効にする機能があります。
[CHANGES]
>7.6.1 011030 {url,html,http,httpd}.c: added HTTPCONF=kill-tag:listOfTags
が、これはDeleGate自身が発生するメッセージについては、現在適用されて
いません。

HTTPCONF=urlesc と HTTPCONF=kill-tag は、ブラウザ用のHTTPプロキシとして
DeleGateを利用する際に指定することで、ブラウザがクロスサイトスクリプ
ティングにやられる可能性を減少させる効果があると思われます。

                   @ @  
┌─┐┬┌──┬┐ //\^^ ( - ); {Do the more with the less -- B. Fuller}
├─┤│└─┐│ / 877m\_<   >_ <URL:http://www.delegate.org/delegate/>
┴ └┴──┘┴──────────────────────────────
佐藤豊@情報処理研究部門.産業技術総合研究所(独立行政法人)

  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V