パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

価格.com、サービス再開へ」記事へのコメント

  • by Anonymous Coward
    SQL注入されちゃうのはプログラムの欠陥だろー>asahi.comの記事
    • by pivo (27159) on 2005年05月24日 19時50分 (#740079) 日記
      本当にクラックの方法が記事どおりだとしてら、
       これまでのサイト攻撃は、OSの不備やホームページをネットに提供するプログラムのミスなどを突くケースが多かった。今回は、プログラムに欠陥がなくても、コンピューターが正規の命令か悪意のある命令かは判断できない点を突き、命令をそのまま実行させて支配下に置いていた。
      入力文字列のチェック不足というプログラムの欠陥ですが、asahi.comって何を言っているのかな?Webサイトのように公開されている場合は特に、入力された値のバリデーションを正しく行うことは、Secureプログラミングの基本だと思うのだが、、、

      #自分の個人サイトでは手を抜くけどw

      親コメント
      • 一般の読者を対象にしている記事の性格を考えると、
        あなたの記事の解釈が間違っていると思われます。

        「OSの不備」は、読んで字の如くOSの脆弱性を指すと思い
        ます。「ホームページをネットに提供するプログラム」は、
        サーバソフトウェアのことで、Apache HTTP Serverや
        Internet Information Server等を指しているのではないで
        しょうか。

        上記のように解釈すれば、記事全体の話の筋が通ると思います。
        親コメント
        • そういう受け取り方も、確かに成り立つと思います。doripushさんの言うことは間違っていないかもしれません。
          が、ずいぶん好意的な解釈ですね(笑)

          kakaku.comはApacheやIISだけで「ホームページをネットに提供」していたわけではなく、独自のプログラムを構築してサービスを提供していたわけですが、そのうちの一部分がIISなりだったというだけでしょ?
          また、社会的な責任という面を考慮した場合に、OSやIISなどの脆弱性をつかれたわけではなかったのかもしれませんが、入門書でも載っているようなSecureプログラミングを知らない(または手抜きした)人が実装もテストもしていたということで、利用者がウィルス感染したりという被害が出ているわけですから、kakaku.comを擁護するような内容の記事が問題だと思うわけです。
          kakaku.comが自身を正当化することを、メディアが鵜呑みにしたような記事を載せることに抵抗を感じずにはいられません。

          親コメント
          • by Anonymous Coward on 2005年05月24日 20時38分 (#740107)
            > kakaku.comが自身を正当化することを、メディアが鵜呑みにしたような記事を載せることに抵抗を感じずにはいられません。

            結局ソレだよな。
            サイトの更新頻度からして技術と広報の連携は取れていると見えるだけに、
            今までにない新しい攻撃手法みたいな言い方は、解っててミスリードを誘っているとしか思えねえ。
            親コメント
          • by Anonymous Coward on 2005年05月24日 21時04分 (#740120)
            asahiの記事はkakaku.comを擁護も正当化もしていないと思うのは気のせいですか。
            問題がIISでもphpBBでもなくDBの設定であるって言うのは、プログラム作者ではなくkakaku.comが悪いと言っているように思うのは気のせいですか。

            asahiの記事を読み直した方がいいんじゃないか?と思うのは気のせいですか。
            「ソフトの不備ではなく、データベースの安全設定が不十分だった点を悪用された。」(一部引用)

            #というより、この記事を読んで擁護や正当化と取る人もいるなんて、このコメントを見るまで思わなかった。
            親コメント
            • by Anonymous Coward
              バカか、しゃいんか。
              #740120 はなぞのばくはつを、とげた。

              「と思うのは気のせいですか。」を3連発するなんて、よほど腹が立ったんだろうなあ。
              何故腹が立ったのか俺には解らんけど。

              pivo 氏が疑問に思ってるのは、多分

              > これまでのサイト攻撃は、OSの不備やホームページをネットに提供する
              > プログラムのミスなどを突くケースが多かった。
              > 今回は、プログラムに欠陥がなくても、コンピューターが正規の命令か
              > 悪意のある命令かは判断できない点を突き、命令をそのまま実行させて
              > 支配下に
              • by Anonymous Coward
                #740120だが、バカは良いとして、なんで社員と勘違いするんだろ?

                「OSやIIS、phpBBは悪くない。
                 悪いのは設定をしたkakaku.comだけだ。」
                ってasahiが言ってるって書いてるのに。

                疑うとしたらMSの社員の筋だと思うのだが。
                「winにもIISには問題ないから安心して使えます。
                 今回の問題はユーザが設定を謝ったから起きただけです。
                 通常はなんの問題もありません。」
                #、、、うぐっ、吐き気が
              • by Anonymous Coward
                設定”も”悪かっただろう。

                でもインジェクションはプログラムミスだよ。
              • by Anonymous Coward
                #740145だが。
                社員云々は必死な人間に対する挨拶みたいなもんだ。
                そもそも元ネタが「たけしの挑戦状」だしな。
            • by Anonymous Coward
              この記事を書いた者が kakaku.com の言い分を鵜呑みにして、
              不適切な(正しいとは言い難いってゆーかむしろ間違ってる)報道をしていて、
              それが(意図するか否かに関わらず)「kakaku.com への擁護」になってしまっている。

              と言うのが現状です。
              気のせいでもなんでもなく、
            • by Anonymous Coward
              「SQL インジェクション」を勉強してみましょう;-)

              知ったかぶりは墓穴を掘りますぞ。
            • by Anonymous Coward
              半可通読みすれば、「DBのデフォの設定がダメダメだった
              (のでカカクコムは悪くない)。」にも読めません?

              一般人は、"設定は自分で変えるもの"なんて意識は薄く、ほとんどの場合"設定は所与のもの"でしょう。
              • by Anonymous Coward
                > 一般人は、"設定は自分で変えるもの"なんて意識は薄く、

                をいをい、サービス提供者は「一般人」じゃないだろう。
                一般のご家庭のIEの初期設定がどうのこうのとは話が違うぞ。
          • いつぞやの#735814ですが…
            無知や面倒くさがりでこうなったのなら、どれほど救いがあった事かと思いますよ。
        • > 「ホームページをネットに提供するプログラム」は、
          > サーバソフトウェアのことで、Apache HTTP Serverや
          > Internet Information Server等を指しているのでは
          > ないでしょうか。

          別 AC ですが。

          ネタ元 AC さんは「単純なプログラムミスなの
        • DBのサーバはプログラムではないとでも?
      • (誤)本当にクラックの方法が記事どおりだとしてら
        (正)本当にクラックの方法が記事どおりだとしたら
        typoです(T_T)
        親コメント
      • オフトピですが

        バリデーションというよりもサイニタイジングと言わないか?
        俺のまわりだけか・・。

        バリデーション=数値範囲チェック、仕様に添った型で有るか
        サニタイジング="aaa && sendmail hoge@hoge `tail` ..."みたいなトリッキーな文字列を掲示板に投稿するとか検索フォームにPOSTとかしてないかをチェック。

        というイメージがあるんですけどね。。
        親コメント
        • Google検索結果。

          サイニタイジング の検索結果のうち 日本語のページ 約 63 件中 1 - 4 件目 (0.21 秒)

          サニタイジング の検索結果のうち 日本語のページ 約 2,800 件中 1 - 10 件目 (0.04 秒)

          英語のスペルはぐぐればすぐ出てきますが、「sanitizing」。
          ですので、多分2文字目のイは余分です。

          ちなみに、バリデージョンは英語スペルが「Validation」で
          「Varidation」のtypoが多いみたいですね。
          意味は似てないこともないけど、認証とか保証とか検証とかの
          意味があてられているようですね。

          #私の言うことは例のクレタ人並みに信用できますので!
          親コメント
        • チェックだけならバリデーションの方が適していると思う。
          価格が実際のところどちらを採用したのかは知らない。
      • by jbeef (1278) on 2005年05月24日 23時22分 (#740229) 日記
        入力された値のバリデーションを正しく行うことは、Secureプログラミングの基本だと思うのだが、、、
        違いますよ。セキュアプログラミングの本当の基本は、入力の値がどうこうというよりも、出力部分、つまり値を使用する部分(SQLならSQL文を文字列連結して作成する部分)で、メタ文字をエスケープすること(ないし制限チェックをすること(たとえば変数をパス名として使用する部分では、使用するところで所定のディレクトリ内かをチェックする。けっして入力値のチェックではない。))です。

        どういうわけか、入力をサニタイズするという場当たりな対処方法ばかりを宣伝するおかしなセキュリティ屋が多いですが、彼らはプログラミングの素人なんでしょう。ちっちゃいおもちゃCGIプログラムくらいしか作ったことがないとか。

        その場にある脆弱なプログラムを取り急ぎ直すのに入力のサニタイズという方法が即効性がある場合もあるのでしょうが、どのように使われるかわからない入力値をどうやって完全にサニタイズするんでしょうか。サニタイズ漏れや、過剰なサニタイズでバグを生んだりしかねないでしょう。

        セキュアプログラミングの文脈で「サニタイズ」とかいう言葉を持ち出すセキュリティ屋は信用するな、とまで言ってもいいかもしれない。文脈通りに正しい文字列連結のプログラミングをしていれば、この種の脆弱性は最初から生じないのです。

        親コメント
        • by ruto (17678) on 2005年05月24日 23時38分 (#740237) 日記
          それをサニタイズと言うのだと思っていました。
          後学のために正しくはサニタイズとはどういう処理か詳しく教えてください。
          親コメント
          • 無毒化というくらいですからね。普通に当たり前に書いているコードをわざわざ無毒化と呼ぶのは変では?
            • 「無害にする」って訳す翻訳サイトもあるが、エキサイトのテキスト翻訳では「sanitize => 殺菌してください。」と訳したね。

              英語を使う人間がサニタイズと使うからって、そのまま使うケースがあまりに多過ぎる気がするな。
              あっちの人間って、新しい単語を作っても、辞書に載っていなければ通じないから、既存の単語を良く用いる。
              それと違い漢字って、漢字自体が意味を持つから、「無害にする」とか「殺菌する」なんて言葉の英語を外来語として使わずに、「特殊文字の無害化」って多くの人が見ても分かり易く表現した方が良いんじゃないの?
              「特殊文字をサニタイズしていないから」みたいな「対象」がはっきり分かる表現ならば分かりやすいけど。

              CGIのソースを指差し「サニタイズして」なんて言っていると、言われた人はモニターをイソプロピルアルコール等で消毒....
              その後、「サニタイズしてくれた?」なんて聞くと「ちゃんとしておきましたよ」なんて....
              後日、「しかし結果として“最高の対策”とは呼べない部分はあったと思う」
              http://www.itmedia.co.jp/news/articles/0505/25/news086.html
              なんていう羽目になるかも。

              # だけど「無過失らしい」....
              親コメント
        • by pivo (27159) on 2005年05月24日 23時53分 (#740243) 日記
          その通りですね。面目ない。
          ご指摘ありがとうございます。本当に言葉の意味を理解して使っているのかと、自分で反省中です。
          親コメント
        • by zumapon (9208) on 2005年05月25日 1時16分 (#740288)
          外部からの入力:出力が1:nの関係になることを考えると

          1. 出力箇所での対処漏れの予防

          2. 処理回数削減による効率向上

          という考えもアリではないですか?
          なのでシステムの規模や処理内容などで使い分ければ良いんでないでしょうか。
          もちろん、出力時の対処の方がシステムの拡張性は高いと思いますが。

          どちらにしても「設計」「規約による縛り」「試験」は大切ですね。
          親コメント
        • 「サニタイズ」というのはそんなめんどうな言葉でもなくて、存在しちゃまずいキャラクタや文字列を置換するなり削るなりするだけのことですよね?
          そういう意味ではおっしゃるようなメタ文字のエスケープやディレクトリのチェックを(どの時点でやろうとも)サニタイズと呼んでいいような気がします。言い方の問題かな、と。

          しかし、確かにユーザーからの入力値チェックで済ませるというのは場あたり的かもしれないですね。その後どう使われるかがはっきりしてる小さいプログラムしか書かないので、ちょっと気付きませんでした。
          それでも単純に「入力値」とか「入って来た値」とか言ったとき、プログラムに入って来た(main()に入って来た?)値なのか、その関数に入って来た値なのかは状況いかんな気もします。関数に入って来た値を利用する前にエスケープ処理などをやらせる関数を、sanitize()とか名付けたり、「入って来た値は使う前にサニタイズしないとね」みたいな言い方はよくします。やはり言い方、名付け方の問題?

          名前がついているのは便利 [rubycolor.org]ですしね。
          親コメント
        • Yahoo! Blog が入力値をサニタイズしまくって記事投稿時にエラーばっかり吐きまくりやがるので (不正な文字列がどうたらこうたらとか。。。んで、書いた記事全文がフイになる。ブラウザの機能で戻ってもスッカラカンになっちゃうの)、一部ユーザーに反感買いまくりだったりするわけですが、やっぱり彼らもシロートなんだろうなぁ。。。

          。。。ん? /. のコメント欄でもそんなエラーに出くわした記憶が。。。??

          --
          むらちより/あい/をこめて。
          親コメント
        • > どのように使われるかわからない入力値をどうやって完全にサニタイズするんでしょうか。

           セキュリティとは違うのかもしれませんが、データを入力するユーザーが間違える可能性を考慮しないというのはまずいのではないでしょうか。たとえば電話番号の入力を要求しているのにアルファベットが来たら、チェックして正しいデータを入れてもらうようにしないと。

           しかし、電話番号を入れるときにハイフンを使うな、というwebをよく見かけるけど、10桁の数字って確認しにくいんだよなあ。ハイフンくらいプログラムの内部で処理してくれればいいのに。
          --
          ---- 6809
          親コメント
        • いや、そりゃ単なる言葉尻を捉えた揚げ足取りでは?
          ふつーに考えればエスケープ処理はあんたのおっしゃる「出力」の際にやるわけで、サニタイズったらまずそのことでしょう。そうじゃなきゃその出力を行うコード部分を他に転用したときに危ない。
          従って「入力をサニタイズしなさい」というときに、馬鹿正直に値をGetしたコード部分で「サニタイズ」をやるやつぁいないと思いますよ。
          なにしろご指摘のように、出力がSQLなのかHTMLなの
          • by jbeef (1278) on 2005年05月25日 3時30分 (#740331) 日記
            たとえば、バッファオーバーフローの穴が生じないように配列のインデックス確認をするコードを書いたときに、それを「サニタイズした」とは言いませんね。

            #740324 さんの書くサニタイジングのコードというのは、どんな文なんでしょうか? サニタイズというくらいですから、文字列を削るコードなんですよね。
            親コメント
            • #740324のACです。例えが例えになってないような気がするなあ。
              単にサニタイズ用の文字列処理かますだけの話でしょう。難しそうに考える必要はない。
              例えばPHPでXSSを防ぐためにHTML出力を実体参照にしたければ、htmlentities()とかの類の脳死レベルの関数が用意されてますな。
              まあそんなもの用意されてなくても、出力先に応じてエス
            • SQL injectionの対策って、ふつーにsanitizeって言いませんか?

              ぐぐる様での検索結果 [google.co.jp]

              いやまあ、みんな間違って使ってるっておっしゃるのかもしれませんけど……。
              • #740417です。

                私もそう思ってますが。

                サニタイズ=入力の無毒化、チェック。

                入力、出力時に文字列の値をチェック、編集することでsqlインジェクション、コマンドインジェクション、XSS等の対策を行う方法および行為。

                と思ってたんですが。。
                違うんですか?エロイ人。
              • 偉くないけどエロイ人です。

                それでいいんじゃない?
                入力は大抵の場合何か別のものへの出力になるし、出力も大抵の場合何か別のものへの入力になる。
                もちろんカタチを変えたりはするけど。
                「何からの」「何への」を省略してやれ入力だ出力だ言っても仕方あるまいに、と思う。
          • んにゃ。サニタイジングは普通入出力両方でやるぞ。

            出力って、どの部分をさしていってます?
            もし、画面および帳票をさして行ってるならアウト。
            SQLに変数を与えるところを指してるならok。

            動的SQLのすべてがPrepareで書ければいいが、でない場合文字列に

            ;DELE
        • どういうわけか、言葉尻で素人判定するという場当たりな対処方法ばかりを宣伝するおかしなセキュリティ屋が多いですが、彼らはコンサルティングの素人なんでしょう。外野からいちゃもん付けるばかりで、実際に大規模なシステムを作ったことがないとか。
      • >対策として、データベース項目や接続する管理者ごとに使える機能を細かく制限し、
        >外部からの命令を受け付けなくすることなどの設定が必要だ。対策済みの企業も少なくない。

        このくだりが

        >入力された値のバリデーションを正しく行うことは、
        >Secu
        • それは一時期Theo尊師が暴れて話題になった、
          OpenSSHの「特権分離」と同じことではないの?
          これを入力のされた値のチェックに当たるかかと言われてもなぁ。

            Darren Reed: 気に入らないのは「特権分離」とやらを使うのが
          唯一の方法だということだ。皮肉なタ

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

処理中...