Hatena::ブログ(Diary)

hoshikuzu | star_dust の書斎 このページをアンテナに追加 RSSフィード Twitter

hoshikuzu|star_dustの日記について

書く内容の方針とかはフラフラしているのです。あまり考えていないかも知れません。面白いなぁと思うこと、大事なことだなぁと思うことを書いています。あんまり悲しいことは書かない主義。

 | 

2006-02-04 このエントリーを含むブックマーク このエントリーのブックマークコメント

はてなダイアリー本体のXSS脆弱性

あれ?いつからはてなダイアリーではHTMLの意味でのbackground属性が使えるようになったのでしょう。background属性でXSS脆弱性が発見されたようですけれど。

はてなダイアリーはHTML4.01を採用しています。background属性はbody要素でのみ有効なはず。はてなダイアリーでは当初、background属性など許可されていなかったはずです。だって、スタイルシートが使えるのが売りですしね。background属性など必要ないでしょう。悲しみながら調べてみます。

更新履歴-はてなダイアリー利用可能タグとは::はてなダイアリーから引用すると、どうも以下のようです。

■更新履歴
(snip)
  • 利用可能属性にbackgroundを追加しました。(2/7)
(snip)

background属性の許可って…いったい何年の出来事でしょうか?

そもそも、はてなダイアリー利用可能タグでは、body要素を許可していません。当然です。はてなダイアリーの編集画面からbody要素の終了タグや開始タグなど入力されては正しいHTMLが構成できないこと火を見ることより明らかです。ひとつのHTMLに複数のbody要素があるなんてナンセンスです。

従って、body要素でのみ有効なbackground属性など、許可する必要、微塵もありません。いったいぜんたいなんなんでしょう。センスがないこと夥しい。

その上、background属性の属性値が%URI;なのにスキームのチェックまでしなかったのでしょうか?javascript擬似スキームを許可していたのですか…

なさけないこと…悲しいこと…

OK。一部の変なブラウザは仕様外のことをしています。table要素にbackground属性を与えるとそれなりに変になります。Opera8.51とかIE6とかNS8.0のIEエンジン使用時とか。そちらは大丈夫なのでしょうかね?もちろん、私は信じていますよ。HTML の background 属性の値に任意のスクリプトを実行できる脆弱性が発見されましたので、先ほど修正を行いました。とおっしゃっているのですから>はてなさん。

って、やっぱりtable要素ですか。orz。罠日記を読んだ瞬間あぼーんなわけですね。参考:http://d.hatena.ne.jp/quaa/20060204#p2

これで自動書き込みされる本文に「こんにちはこんにちは!!」じゃなくてこのコードが仕込んであったらおおごとだよ?今でもおおごとだけど。

[http://d.hatena.ne.jp/quaa/20060204#p2]

…そうであったなら立派なワームですね。もっと被害者が増えます。ネズミ算式で。

どうも、はてなのアジリティーに最近失望する事件ばかり発生しているので悲しくてしょうがないです。はてなの誇るアジャイルってそんなものなのならイラナイ。

未知の脆弱性があるのならしかたがありありませんがねぇ、そんなことないと思いますよ。background属性ではね。あったらIPAのテキスト書き換えなくちゃ。

つい先日のはてなブックマークのXSS脆弱性事件でも、そもそもありえないエスケープを行っていたので、第一波が押し寄せてきたようですよね。で、善意のユーザからの報告を受けて極めて迅速に修正していらっしゃいました。その直後に第二波が押し寄せています。最初の修正が間違ったエスケープをしていたからです。

いくら修正が迅速でも、そんなものはアジャイルとは言いません。むしろ逆。簡単なエスケープすら最初から出来ないようでは、そもそも生産性が悪すぎです。基本を押さえていればこんなことは起きませんから。本来不要な、あわてながら泣きながらのXSS対策修正などしなくて良いはずです。

HTMLの仕様がわかっていないから、変なエスケープをするのでしょうし、変な属性をユーザに許可するのでしょう。だいたいonイベントな属性の混入をはてなブックマークで許していたことも大変不可思議です。はてな内部には、基本的な監査能力がないのでしょうか。恐らく自前で開発ツールを作っているはずですが、そこには過去のノウハウが詰め込まれていないのでしょうか。

なさけないこと…悲しいこと…


id:Hamachiya2が仕掛けたこと。Hamachiya2の罠日記にmixiなど外部も含めて訪問させる。訪問者がはてなユーザでログイン済みの場合には、その訪問者の日記にこんにちはこんにちは!!と不正な書き込みをする。その上、Hamachiya2の罠日記へのリンクを不正な書き込む。さらに、その訪問者の権限ではてなブックマークを不正に追加する。これらにより罠ページへさらに加速度的に被害者を呼び込む。

はてなが未対処であろうと予想される部分をあげてみる。不正に追加されたブックマークの削除。罠ページを訪問したユーザの日記にある不正なコメントと不正なリンクの削除。罠ページには被害者日記からの自動トラックバックが来ているのだがその削除。被害者の一覧表になっているわけだ。これらの痕跡の削除。w.hatenaトップにある最近の人気記事で罠ページがトップにもなっているから削除。なお、既にニュースになっていてあちらこちらでブックマークされたりリンクされたりしていることをも頭の片隅に入れておくべきだ。

仮に次のXSS脆弱性を突いた罠をid:Hamachiya2が速攻でしかけたら、これらの痕跡が再び罠ページへの誘引になる。前よりも被害がさらに広がるだろう。被害拡散の加速度ももっと増えるだろう。非常に危険だ。

id:Hamachiya2の罠日記を閉鎖すべきと考えられる。アカウント停止はポリシーの遵守で速攻で出来なくとも、最低限、id:Hamachiya2の日記を強制的にプライベートモードにするべきだ。そうすれば、上記の加速度的な罠ページへの誘引の根は絶ち切れる。ユーザは危険すぎるので罠ページへ訪問しない方が良いだろう。

itochanitochan 2006/02/05 13:01 >そんなものはアジャイルとは言いません
アドホック?

てすとてすと 2006/02/05 18:56 id:Hamachiya2は、(多少問題あるけど)よいデバッガと思うのですが。
 id:Hamachiya2は、犯罪者になるつもりは無い様だから、
わざとワームのような振る舞いをしないスクリプトを作って事を荒げて
早く対応させるようにしているだけのように見える。

id:Hamachiya2の罠日記を閉鎖しても、違うidで脆弱性を突いてくるはずだから、
id:Hamachiya2を泳がしておいて、脆弱性を付いてきたらすぐさま対処するというという方法がベストだと思います。
idが変わるとどこに潜んでいるのかわからないですからね。
...その前に、システムの全面見直しをした方がよいのだけれど。

hoshikuzuhoshikuzu 2006/02/06 20:51 itochan 様。こんにちは。はてなによるアジャイルの本質に異議があるわけではありませんです。はてなは確かにアジャイル志向ですし。ただ、今回のようなことがあると、アジャイルという言葉の響きの中で大事なことが消えていくと困るなぁとも思うのです。
喩えは悪いのですが、株への投資はOKなのですが、投資の名の下(もと)での投機はあまり歓迎できません。バクチになりさがります。似ているようで似ていない。アジャイルと手抜きの差というものが、どこに出てくるかというと、基本的な毎日の実業だと思うのです。

hoshikuzuhoshikuzu 2006/02/06 21:09 てすと様。こんにちわ。
<q>違うidで脆弱性を突いてくるはずだから、</q>とおっしゃいますが、そのお言葉と、私が思うところの「同じidで【も】脆弱性を突いてくるはずだから、」という言葉とでは、Hamachiya氏に与えられる実際の攻撃のチャンスという意味においては等価だと思います。どちらにしても攻撃はしてくるでしょう。
今のidの日記には今まで公共のブックマークやアンテナ、日記などめにふれるところからたくさんのリンクがつながっています。これが危険だと申し上げています。同じ罠日記において、次にHamachiya氏が別の脆弱性を使ったヨリ深刻な被害をもたらす罠をはったならば、何か騒ぎがあるとあっというまに伝染する機会が【以前よりもより深刻に】増加します。今回も、はてなによる修正完了宣言の直後にどれほどの人数が罠日記を訪問したことか…(嘆息)
また、5日の段階で未修正のところがまだあるのだという未確認情報を今日になって、私は知りました。どこだかわかりませんが、既にはてなに連絡が行っていることは間違いないので恐らく対応は秘密裏に完了していることでしょう。つまり、Hamachiya氏がその気になりさえすれば、より甚大な被害が予測できるわけです。また、Hamachiya氏とは別の者が独自に罠日記を作成、Hamachiya氏に踏ませることがありえないとも言えません。そうなれば別の者はXSS脆弱性を使ってHamachiya氏の日記に独自の自分の罠を作成することでしょう。
検索エンジンやニュースや日記やブックマークやアンテナで、「何か騒ぎだぞ、また、はまちちやんか」と祭りになると、既存のルートでおおぜい押しかけますよ?Hamachiya氏よりも強烈な罠に、バタバタとみんなひっかかっていくんです。そういう危険性・蓋然性もあります。
まとめると、はまちちゃん罠はいつでもより凶悪に復活しうる。そちらへのリンクは死ぬほどある。罠としては最高!という状況です。この状況を打破するには、罠リンク全部を無効にするしかありません。よって、Hamachiya氏のページ関連はキーワード等も含めて全部閉鎖すべきです。あるいは更新・変更不可能なロックをシステム的にかけるべきでしょう。

hoshikuzuhoshikuzu 2006/02/06 21:21 <q>id:Hamachiya2は、犯罪者になるつもりは無い様だから</q>
いいえ、既に不正アクセス禁止法に完全に抵触しています。法的には有罪。そのようなことは彼も知っているはずです。既に業務妨害すらも行っています。
このような状態で彼を【泳がせる】ほうが良いとお思いでしょうか。彼がネズミ小僧きどりで天下のはてなを困らせると民衆が喜ぶのでしょうか?2点おかしなところがあります。1点目。はてなの脆弱性退治にはてな当局も都合が良い>これは嘘。こんな事件が何回も起きているので、はてなって危ないんじゃね?と噂がたちます。そもそも、脆弱性は、突かれる前に退治しなくてはいけません。Webでサービスをする以上当然です。はてな運営者が「Hamachiya氏って便利だから泳がせとこうぜ」、と万が一思っているとしても、そんな低い考えのはてなならば、ユーザは逃げていきます。よって泳がせは最悪。
2点目。警察当局の指示により泳がされている。まぁありうるパターン。そうであったとしても、Hamachiya氏逮捕のために既存ユーザを危険にさらしていることになってしまいます。これは駄目。はてなは何があってもユーザの立場にたつ会社であるべきです。はてなの最終勝利は、そこにかかってきます。

EdgarPoeEdgarPoe 2006/02/09 09:27 あのう、60歳のおじいちゃんがはてなダイアリーをはじめたぐらいのまるっきり無知の人の意見としてお考え下さい。
・以前「はまちゃん」の自動日記作成プログラム(?)で作成された日記を読んで結構笑った
・「最近注目の記事」に「はまちゃん」があったので、また面白い記事が読めるのかなと思って全然考えずに見に行った
・なんだか時間がかかるなあと思っていたら「勝手に日記を書いてくれます」と書いてあって、ココで初めて「ヤバイんじゃないか?」と思った(hoshikuzu さんの「Java・JavaScript等はは切った方がイイ」等の指摘は知っていましたが、IEでははてなやその他のサービスのために切っていません。はてな以外の場所はいろいろセキュリティ対策をしたOperaで見に行っています)
・自分の日記を見に行ってびっくらこいた。幸い1行だけだったのと「今日の日記を削除」ボタンがあったのでダッシュで削除
・「ん?なんか勝手にリンクを作るって書いてあったけど、アンテナには入ってないな…。他にリンクを作る機能ってはてなにあったっけ?」(5分ぐらい考える)「ブックマークってあったかな?使ったことないけど見に行ってみるか」
・「うわあ、勝手にリンクだ!被害者が増える!消さなきゃ!」(消し方わからず考える)「ふう、やっと消えた」
・結論。「『見に行くだけで問答無用で日記を書いてくれる』というのはジョークとしてはきつすぎないかな?せめて『このボタンを押すと自動的に日記を書いてくれます』式にして欲しかった」
こんなところですね。
>まとめると、はまちちゃん罠はいつでもより凶悪に復活しうる
この結論には少々ビビりました。こまるなあ。hoshikuzuさん他の詳しい方に、はてな側になんとか連絡を付けて、こういうことを減らしてもらえれば幸いです。
それでは…。

 | 
最近のコメント