新生鳩丸掲示板♯

bakera.jp > 新生鳩丸掲示板♯ > 投稿順表示 (134/282)

投稿順表示 (134/282)

[3068] Re: 「サニタイズ言うな?」

ばけら (2005年7月18日 13時17分)

>結局、高木さんがなぜ『サニタイズって言うな』キャンペーンを行っているのか、りゅうさんが何にどういう思いで「激しく同意」しているのか、そういったところが腑に落ちていないままなのではないかと想像してしまうのですが、

 [No.3053]のりゅうさんの投稿は非常に明確で分かりやすいと思いますし、私のコメントも「なるほど」というものなのですが、どこか腑に落ちていなさそうな要素がありましたでしょうか。

 むしろ、名無しさんの方が腑に落ちていないように見受けられますが……。おそらく、名無しさんは「既存のサイトに対して、そのセキュリティ対策として『サニタイズ』を行う」という場合であっても「サニタイズ」という発想は不適切であるという立場であって、その点では高木さんとも立場を異にしているのではないかと想像しましたが、そのあたりどうなのでしょうか。

[3067] Re: 「サニタイズ言うな?」

名無しさん (2005年7月17日 14時52分)

結局、高木さんがなぜ『サニタイズって言うな』キャンペーンを行っているのか、りゅうさんが何にどういう思いで「激しく同意」しているのか、そういったところが腑に落ちていないままなのではないかと想像してしまうのですが、勝手な妄想でしょうか。

私は、そこには、無知、誤解、甘え、といったことに対する怒りがあるのではないかと思っています。

> ……というようなところで、私の中ではかなりすっきりした感じです。

とのことなので、ここで終わるということであれば、それはそれで私はかまいません。

[3066] Re: 「サニタイズ言うな?」

えむけい (2005年7月16日 21時9分)

>SHA1署名

何か意味の分からないことを書いてますがSHA1ハッシュと言いたかったのでした。

[3065] Re: 「サニタイズ言うな?」

えむけい (2005年7月16日 21時5分)

>PGPのことも知らないし、

そういえば【謎】keiさん【誰】もしきりにGnuPGを勧めているわけですが、

http://www.nantoka.com/~kei/diary/?200506a&to=200506081#200506080

GnuPGのバイナリ自体を安全に入手する方法について言及を避けているあたりが残念です【謎】。

たとえば【謎】

http://www.gnupg.org/(en)/download/integrity_check.html

にはSHA1署名を下に貼ってあるから確かめろと書いてるわけですが、これ見てなんの疑問も抱かない人【誰】に総務省のオレオレ証明書とかを叩く資格はないと思います。

ご参考【謎】:

http://takagi-hiromitsu.jp/diary/20050628.html#p01

GnuPGのインストールって簡単ですね【謎】。

[3064] Re: 「サニタイズ言うな?」

ばけら (2005年7月16日 20時45分)

>ところでIPAは本名でないと届出を受理してくれないそうですね。

 実は受理される、に一票。

 統計公表時に「本名が書かれていなかったので不受理としたものが 1件あった」とか言われたら、それはそれで面白いと思います。:-)

>PGPのことも知らないし、https://isec.ipa.go.jp/inq/menu/index.jspはJavaScript有効でないと動かないし……。届出、微妙かも。

 その点は確かにハードルが高いと思います。

 フォームがスクリプト無効で動かないことについては私も指摘したのですが、いまだに改善されていないみたいですね。HTML をローカルに保存して「巧みに改変」すれば送信できると思いますが、それはそれで危険ですし……。

[3063] Re: 「サニタイズ言うな?」

ばけら (2005年7月16日 20時33分)

>バグがあればどのような文字列も潜在的に危険だと思いますが、そのような主張でしょうか。

 今のところ私は特に「主張」はしていないのですが、この質問でよく分かりました。この質問に YES と答える立場と NO と答える立場の両方があり、そこで考え方の違いが出ているのだと思います。

 たとえば以下を見ていただくと、

 ここでは、外部入力は全て汚染されている ("taint" である) ので、そのまま使うと危険だという考え方をしています。「どのような文字列も潜在的に危険」であるから無害化 (サニタイズ) しなければならない、という考え方です。

 ただし、これは見方の一つでしかありません。もう少し具体的に言うと、これは「新規にシステムを作る立場」と「脆弱性を指摘する立場」の、それぞれの見え方の違いに過ぎないのだと思います。結局の所、高木さんの主張は記事の末尾にある

>特に新規にシステムを開発するような局面において「『サニタイズ』(のようなプログラムを汚くする対策)ではなく、本来やるべき処理が何かをプログラマにきちんと伝えていくことが必要である」と参加者に訴えていた。

 という文に集約されると思うのですが、「特に新規にシステムを開発するような局面において」という条件付きであることが重要だと思います。

 脆弱性を指摘する立場では、良く「適切なサニタイズがされていない」という言い方をすると思いますが、これは既存の脆弱な (バグのある) プログラムを評価したものです。この局面では、結局の所脆弱であるかどうかだけが問題となりますので、結果としてサニタイズされているかどうかだけが問題となります。

 結果として脆弱でなくなりさえすればよいので、プログラマが意識してサニタイズルーチンを入れたのか、それともたまたま特別なサニタイズが必要ない状況だったのか、ということはどうでも良いことですし、そもそも端からは (指摘者の立場からは) 分からないことでもあります。他の不具合 (たとえば単引用符が検索できない) があるかどうか、ということも、脆弱性の有無とは関係のない話になってしまいます。

#実際、納得のいかない直され方をすることは良くあるのですが、ともあれ脆弱でなくなったのであれば、それ以上は何も言えないわけです。たとえ特定の文字列が検索できなくても。

 高木さんのお話でも、

>既存のサイトに対して、そのセキュリティ対策として『サニタイズ』を行うというのは、セキュリティ屋の発想としては極めて自然である

 と明確に言われており、このような局面において「サニタイズ」という考え方をすること自体を否定されているわけではなくて、既存のサイトの脆弱性を指摘する立場と、新しく開発する立場とを明確に区別して議論されているのだと理解しました。

 ……というようなところで、私の中ではかなりすっきりした感じです。

[3062] Re: 「サニタイズ言うな?」

かんな (2005年7月16日 15時52分)

>Google先生ですか? 【謎】

いえ、もう一人の先生【誰】です。

ところでIPAは本名でないと届出を受理してくれないそうですね。PGPのことも知らないし、https://isec.ipa.go.jp/inq/menu/index.jspはJavaScript有効でないと動かないし……。届出、微妙かも。

[3061] Re: 「サニタイズ言うな?」

えむけい (2005年7月16日 0時32分)

>いろいろ試してみると、そのサイトのドメインを含むURLしか送信できないようになっていました(ほっ)。ただ、そのサイトはリダイレクタを提供しているので、そのサイト内のページと見せかけつつ、全く別のページにリダイレクトするURLを送信させることができました。

>

>ちなみにそのサイト、一般的にはかなり信頼されているので、迷惑的な使い方をされると信用に傷がつくのではないかと思います。いちおう教えてあげた方がよいでしょうか?

Google先生ですか? 【謎】

ご参考【謎】:

http://www.rbl.jp/phishing/index.php?mode=show&date=20050523

[3060] Re: 「サニタイズ言うな?」

名無しさん (2005年7月15日 22時44分)

>・単引用符がそのまま SQL に渡るのであれば危険です。SQL インジェクションの危険性があるからです。

単引用符がそのまま SQL に渡るのはバグではないですか?これまで見たとおり。

バグがあればどのような文字列も潜在的に危険だと思いますが、そのような主張でしょうか。

あるいは、類型的にその周辺でバグが起こりやすく、注意が必要な文字列が「危険」ということでしょうか。

[3059] Re: 「サニタイズ言うな?」

ばけら (2005年7月15日 22時24分)

>この単引用符が「サニタイズ」の対象なのであれば、例の「サニタイズ」の定義により、「単引用符」は「危険な文字列」である必要があります。

>この「単引用符」は危険ですか?危険だとするならば、なぜですか?

 言われていることは同じですよね。

・単引用符がそのまま SQL に渡るのであれば危険です。SQL インジェクションの危険性があるからです。

・そうでなければ問題ありません。

 適切にエスケープしているのであれば、単引用符がそのまま SQL に渡ることはありませんので、改めてサニタイズする必要は無いといえます。

[3058] Re: 「サニタイズ言うな?」

名無しさん (2005年7月15日 22時8分)

>>そういう問題ではないのではないかと思います。

>>これまでの話では二番目のものについてはなにも述べていません。

>>「危険な文字列」というものがなぜ「危険」なのかを考えると、話のかみ合わなさの原因が見えそうな気がします。

>

> なんだかよく分からなくなったのですが、例を上げて説明していただけませんか?

たとえば、

>たとえば単引用符(')を検索したケース

このケースでは、単引用符を検索する命令を検索エンジンに与えようとするならば、その検索エンジンの仕様に従って単引用符をエスケープする必要があると思われます。そうしないとその検索エンジンでは単引用符を検索できないからです。

この単引用符が「サニタイズ」の対象なのであれば、例の「サニタイズ」の定義により、「単引用符」は「危険な文字列」である必要があります。

この「単引用符」は危険ですか?危険だとするならば、なぜですか?

[3057] Re: 「サニタイズ言うな?」

ばけら (2005年7月15日 21時49分)

>そういう問題ではないのではないかと思います。

>これまでの話では二番目のものについてはなにも述べていません。

>「危険な文字列」というものがなぜ「危険」なのかを考えると、話のかみ合わなさの原因が見えそうな気がします。

 なんだかよく分からなくなったのですが、例を上げて説明していただけませんか?

[3056] Re: 「サニタイズ言うな?」

名無しさん (2005年7月15日 21時38分)

> うーん、結局はとらえ方の違いなのでしょうか。

>

>・「危険な文字列」というものがそもそも存在しない

>・「危険な文字列」が適切にエスケープされている

>・エスケープ不可能な「危険な文字列」が存在するのでサニタイズが必要

>

> のうち二番目のものについて、サニタイズを目的とした処理ではないとしても結果的にサニタイズされているのであり、サニタイズ処理であると言って良い、というのが私の見方です。

> が、それはサニタイズではない、とするいう見方も可能だということですね。

そういう問題ではないのではないかと思います。

これまでの話では二番目のものについてはなにも述べていません。

「危険な文字列」というものがなぜ「危険」なのかを考えると、話のかみ合わなさの原因が見えそうな気がします。

蛇足かとは思いますが、先の定義は「鳩丸ぐろっさり (用語集)」からの引用です。

[3055] Re: 「サニタイズ言うな?」

ばけら (2005年7月15日 21時16分)

>高木さんが思っているサニタイズのイメージは「本来は必要ないがセキュリティ上の問題を解決するためだけに仕方なく入れる処理」というものだと思います。

 あ、なるほど。そう考えるとしっくり来ますね。

 私の中の「サニタイズ」の定義には「本来は必要ない」という部分が無かったので、そこが食い違っていたのでしょう。

[3054] Re: 「サニタイズ言うな?」

ばけら (2005年7月15日 21時8分)

>このことから、「危険な文字列」というものがない以上、本来的な意味でする特定の文字のエスケープはサニタイズに該当しない、として論理的に問題ないように思われますが、いかがでしょうか。

 うーん、結局はとらえ方の違いなのでしょうか。

・「危険な文字列」というものがそもそも存在しない

・「危険な文字列」が適切にエスケープされている

・エスケープ不可能な「危険な文字列」が存在するのでサニタイズが必要

 のうち二番目のものについて、サニタイズを目的とした処理ではないとしても結果的にサニタイズされているのであり、サニタイズ処理であると言って良い、というのが私の見方です。

 が、それはサニタイズではない、とするいう見方も可能だということですね。

[3053] Re: 「サニタイズ言うな?」

りゅう (2005年7月15日 20時58分)

私は『サニタイズって言うな』キャンペーンに激しく同意というか、以前から同じことを思っていましたが、皆さんそうでもないんでしょうか。

高木さんが思っているサニタイズのイメージは「本来は必要ないがセキュリティ上の問題を解決するためだけに仕方なく入れる処理」というものだと思います。というか私がそういうイメージを持っています。

XSSや各種インジェクション系などの脆弱性の原因となる特殊文字のエスケープし忘れというのは、つまるところバグです。セキュリティ上の問題とかいう前にまず正常に動作していないわけです。これらの問題が起こらないようにする処理は正常に動作させるために必要だから入れるのであり、セキュリティ上の問題のためだけに入れるものではありません。なのでこの処理のことを『サニタイズって言うな』と思うわけです。

正常に動作させるために必要な特殊文字のエスケープや除去処理のことをサニタイズと呼ばないとすれば、ほとんどのWebアプリではサニタイズは必要ないと言えるのではないでしょうか。

[3052] Re: 「サニタイズ言うな?」

名無しさん (2005年7月15日 19時28分)

>>その感覚でいうと、

>>> 問題が起きる文字列をエスケープして処理する

>>というのはサニタイズには該当しないのではないかと思います。

>

>「サニタイズ」という観点からするとそれはサニタイズになっているのですが、そもそもそれは「サニタイズ」という観点から求められるべき事柄ではなくて、普通に行われているべきことだろう、という話……ですよね。

サニタイズの定義を

>プログラミングの用語としては、危険な文字列を含む「汚染された」入力から危険な文字を取り除き、無害化することを指します。

のようにしたならば、

>それが正しくできていれば、「悪意ある入力」というものは基本的にはその意図どおりの効力を持った状態では存在できなくなります。入力データに命令を紛れ込ませることはできなくなるからです。

このことから、「危険な文字列」というものがない以上、本来的な意味でする特定の文字のエスケープはサニタイズに該当しない、として論理的に問題ないように思われますが、いかがでしょうか。

>「サニタイズ」という観点から求められるべき事柄ではなくて、普通に行われているべきことだろう

このこと自体はそのとおりでしょう。

しかし、

>「サニタイズ」という観点からするとそれはサニタイズになっているのですが

上の論理で言えば、ここにいう「サニタイズ」は先の定義で述べられているものや、「必要性は本来ないはず」(高木さん)の「サニタイズ」とは別のものになっているように思われます。

[3051] Re: 「サニタイズ言うな?」

ばけら (2005年7月15日 14時51分)

>ちなみにそのサイト、一般的にはかなり信頼されているので、迷惑的な使い方をされると信用に傷がつくのではないかと思います。いちおう教えてあげた方がよいでしょうか?

 それはなんとも言いがたいです。

 どちらかというと、直接お知らせするよりも IPA に届け出る方がおすすめです。脆弱性なのかどうかという点も含めて判断してくれますし、無用な面倒に巻き込まれたりしませんので。

 ただ、様式に沿って届出を書くのはちょっと面倒くさいですが……。

[3050] Re: 「サニタイズ言うな?」

ばけら (2005年7月15日 14時35分)

>その感覚でいうと、

>> 問題が起きる文字列をエスケープして処理する

>というのはサニタイズには該当しないのではないかと思います。

「サニタイズ」という観点からするとそれはサニタイズになっているのですが、そもそもそれは「サニタイズ」という観点から求められるべき事柄ではなくて、普通に行われているべきことだろう、という話……ですよね。

[3049] Re: 「サニタイズ言うな?」

かんな (2005年7月15日 14時13分)

>任意の内容を任意のメールアドレスに送れるのであれば、「メールの第三者中継」が可能ということになります。

パラメータにそれっぽいキーワードがたくさん含まれていたので、きっとそうだろうと思っていましたが、実際は任意の内容を送信できるわけではないようです。(じゃあ、何のためにあんなに怪しいパラメータが含まれていたのか謎すぎますが……)

いろいろ試してみると、そのサイトのドメインを含むURLしか送信できないようになっていました(ほっ)。ただ、そのサイトはリダイレクタを提供しているので、そのサイト内のページと見せかけつつ、全く別のページにリダイレクトするURLを送信させることができました。

ちなみにそのサイト、一般的にはかなり信頼されているので、迷惑的な使い方をされると信用に傷がつくのではないかと思います。いちおう教えてあげた方がよいでしょうか?

最近の日記

関わった本など