「過失はない」としながらも不正アクセスの詳細の言及は避ける〜カカクコム
http://internet.watch.impress.co.jp/cda/
news/2005/05/25/7754.html
価格.com(最安値検索サイト、でいいかな)が不正アクセスでやられちゃった、っていう話が最近ありました。
あらためてウェブにコンテンツを作成するというのはどのくらいセキュリティと補償をすべきなんじゃろか?
って部分が問いかけられているわけであります。
あと個人情報保護法、ね。これもなんだろ意識が高まった、ってだけで別段、実質適用されてしまう何らかの制度が厳しくなったわけでもなく、変な解釈で運用されがちではあるものの、浸透度としてはなんか胡散臭いわけではありますが、まぁないよりマシだろうなレベルかと。
・価格.com、24日に一部サービスを再開〜メールアドレスの流出は22,511件
・アビバ社員、生徒のクレジットカード情報などを流出〜携帯サイトで取引
・Yahoo! BBの元スタッフ、顧客情報を退職後の個人事業に「目的外利用」
・NTTデータの全社員11,835人分の個人情報、USBメモリを電車で紛失
ああ、個人情報はせきとめる事はできません。って事です。個人で防衛しなきゃあならないわけで。
で、本題です。
そうは言ってもコンテンツを提供する側としては個人で防衛せんといかんわなーなんて本音は口が裂けても言えないわけで、
今回のカカクコムの事件はたぶん「SQLインジェクションだろ」と。
まー朝日新聞がそのあたりを説明してるみたいですけど、これがまた微妙に勘違い入ってるわけで。
http://www.asahi.com/national/update/
0524/TKY200505230341.html?t
まーねー知らない人に説明したら知らない人はその技術を使わないわけだからどうせ間違ったまま忘れるだろなノリなんでしょうけど、朝日の傾向としてITだけでなく技術的な説明になると記者の勘違いが先行してフィードバックしてないというかレビューしてないというか。
今回の場合は内容的にも目くじら立てて怒るほど間違ってるわけじゃあなさげなんでいいといえばいいんですけど。
それでも価格コムの「地震のようなもの」という発言はないだろーとかは思いますがさて
SQLインジェクションってなんじゃらほいって言うと
たとえばログイン画面、
ユーザーID入れてパスワード入れてログインって画面を入れると次のメンバー画面みたいなのが表示されるような画面、皆さんご存じかと思います。
これっていうのはデータベースに問い合わせて、○○ってIDで▼▲っていうパスワードな人いますか?って探すわけです。
名前 パスワード
○○さん ▼▲
■■さん AAA
××さん 88
のような表みたいなのがデータベースでそこから探してくると。
で、IDなかったりパスワード違ったりすると、そのIDとパスワードのセットな人はいませんぜ旦那、とエラーが返ってくるくるという仕組みです。
まぁそういう時、SQL的(プログラム的)には
$SQL_TEXT="SELECT user_name FROM user_tbl WHERE userid='$user_id' AND password='$passwd'";
なわけで。
日本語に直せば
「user_tblという表からuseridが入力されたID、passwordが入力されたパスワードな人の名前を検索」
って命令です。
$が接頭にあるのが入力されてくる項目なんでユーザーはここに○○とか▼▲とかを入れてログインするわけです。
で、単純にキーワードを入れてくるならいいんですけど、ユーザーがこう入れたらどうなるのやら。
IDに「aaaa」
パスワードに「'or'1'='1」
$SQL_TEXT="SELECT user_name FROM user_tbl WHERE userid='aaaa' AND password=''or'1'='1'";
となって適当にIDさえ見つけてしまえばどんなパスワードでもログインできてしまう。
IDに「aaaa」
パスワードに「';DELETE from user WHERE '1'='1'」
の場合は
$SQL_TEXT="SELECT user_name FROM user_tbl WHERE userid='aaaa' AND password=';DROP TABLE user ";
となって検索命令文の後ろの削除命令までも実行されて全ユーザーのデータが消えてしまう。
まーなんでしょね、ようするに入力できる項目の中にプログラムな言語(SQL言語)を書いて許可してないつもりの命令が実行されてしまうってわけです。
価格コムがやられたーって症状聞いてる限り、トロイの木馬かいな、SQLインジェクションかSSIインジェクションでしょなとか知人と話してたらホントにSQLインジェクションかいな(;・∀・)。
そのへん権限の設定やら入力チェックで特殊文字の使用うんぬん等で大抵防げるわけですが、たぶんあんまり徹底されていない。どこも。
んで、価格コムですが。。。
価格コムの会見では
「最高レベルのセキュリティが破られた」って、、
Windows Server 2003+IIS/6.0が最高レベルですかそうですか(棒読み)
で、まぁそれはともかくとして復活してはいるもののなにやらがんばったみたいですね。
何がってOSが変わっとる(;・∀・)。
Windows Server 2003+IIS/6.0だったのがApache/2.0.40 Red Hat Linux。。。
え、なんで今時Apache/2.0.40??
「最高レベルのセキュリティが」ってこれが最高のセキュリティ????
んーわからん。。しかも問題のMicrosoft-IIS/6.0のほうも何台かはそのまま動いてるみたいだし。。
NT + IIS4.0が動いてるのはどうしてよ(;・∀・)。
んーなんででしょうね。よくわかんない(;´Д`)。
はっきり思うのは、こりゃヤベーな価格コムって。ってくらいかなあと。。