愛車:マツダアテンザ
Webを中心とした、ビジネス&テクノロジーに関する思いつき
by F-shin
[ このサイトについて ] [ F-shinについて ] [ トップ ]
iPhoneアプリ
author:えふしん
photo_20.jpg
藤川真一について


初代モバツイ開発者
想創社再創業 / KMD博士課程
著書〜100万人から教わったウェブサービスの極意―「モバツイ」開発1268日の知恵と視点 [Kindle版]
お求めやすい夏休み特価!
このカテゴリ[Web系]の最新30件
本ブログは移転しました インターネットの遊び方を身につけよう ネットでの選挙活動と投票率 Web2.0がうまくいかなかったワケ WebにおけるMVCアーキテクチャの勃興と変遷 何故、PCはブラウザ、スマホはアプリなのか。 言っとくけどスマホは退化でもあるからな。 アイコン5000円とか、Web受注(発注)価格について。 残念なWeb論の骨子 HTMLってホントよく出来てるな。 「やまもといちろう×イケダハヤト対談イベント」のログを読んで ネットサービスの成功者は「とりあえず受託」という言葉使うのやめません? 全収集型RSSリーダーの終焉とソーシャル化するWeb 頑張ると報われるプログラマーの社会とは。 Perlが○○な話 アメリカ製品のすごさと不思議とワイヤフレーム どの人件費を考えても絶対にお得!利用規約ナイトがきっかけの本が出ます。 クラウドやモバイルを、もっと仕事で活用したいけど、どうやって会社を説得したら良いかわからない! スマホアプリらしいUXとは。 インターネットの変化に対して起こるモヤモヤすることを考え、整理する活動 Facebookは見なくてもいい情報が出てくるSNS 「あなたは影響力があるから、そんなことを言っちゃいけません」の問題点 Facebookに時間を取られすぎる対策 Paypalの本人確認がむかつく件 ネット系イベントがとても主催しやすくなった件 モバイルファーストが失敗なハズはないが、今はまだ時期尚早 やりがいはソートできない…非情なデータベース社会 2012年までのふりかえりと2013年へ ブラウザという平面の限界 ブログ記事の流通の難しさ
[このカテゴリをもっと見る]
Powered by
Movable Type

August 13, 2008

スポンサーリンク

かくあるべしの批判は簡単にできるが、ちょっと待って。

このエントリーの目的は、例えば受託をやってる人が、改めて過去を振り返って、もう関係が切れてしまったクライアントもできることなら助けてあげてください、というエントリーです。

SQLインジェクション絡みで、Active Server Pagesで動いているサイトが結構狙い打ちにあって、重要な顧客情報が流出したりしています。

こういうネガティブな改修話は瑕疵の問題を持ち出されたりして、ややこしいことになるケースもあるハズ。だから作った側としては、もし気になるところがあっても、余計なことは言いたくないって気持ちはあると思う。

「何故そんなことも知らなかったのか?」

と言われると返す言葉もなくなる。これを一方的に言われてしまい、例えば調査やシステム改修に2ヶ月もの期間がかかる見積もりを一方的に負わなくてはいけないとするならば、正直、このことを黙ってて、システムが消滅するまで何も起こらないことを祈りたいという気持ちになるのは否めない。企業対企業であればなおさらだ。

でも、それでは間違いなく誰も幸せにならない。

ということを前提で、以下の話。

ナチュラムの情報漏えい事件では顧客のパスワードが平文で流出していたことが発覚

多くのWebサイトにおいてパスワードは暗号化(一方通行関数によるハッシュ化)して保存するというコンピュータセキュリティの基本のキが驚くほど浸透しておらず徹底されていない

・・・その他もろもろ。

今回の某社も、ちょっと前に情報流出して詳細な状況レポートを出していた某社も、Active Server Pagesのサイトだったと思う。

当時のASPは、立ち位置的には今のPHPみたいな存在で、Unixでは運用がちょっとと言ったケースなどで、VB出身のエンジニアを中心に使われていたと思う。確かにインターネットセキュリティに関してスキルが低いエンジニアがWebシステムを作っていた確率は高かったかもしれない。

僕も例外ではなくASPを使っていた。

確か2001年ぐらいだったかな。@ITあたりでSQLインジェクションという言葉を目にしたのは。

もちろんその筋では、常識だったのかもしれないし、@ITだったかに出てくる前には、各種MLなどでは言われていたんだろうから、「そんなことも知らなかったの?」と言われればそれまでだが、何を言われようとも、僕が初めてSQLインジェクションについて知ったのは、そういうIT系ニュースサイトに取り上げられたのがきっかけだ。
(つか、初めてSQL書いたのは2000年後半だったりします。)

当時、SQLインジェクションの記事を見て、うわーこんなことができるんだーと思ったものだ。

ASPのデータベースアクセスに使うADO DBには、多分、プレースホルダによってSQLインジェクションを防ぐ機構はなかったんじゃないかと思うし、ASPにはPHPのようなマジッククオート(これはセキュリティ対策ではないそうだが)もなかったので、SQLインジェクションという言葉や、SQLのリスクをちゃんと理解して当たり前のようにエスケープしていた人を除けば、結構な確率でSQLインジェクションを誘発する作りになっていたりするのではないだろうか。


また、パスワードをハッシュで保存すべきという部分は、ASPの標準ライブラリには確か、MD5のライブラリはなくて、ASP開発者御用達のBasp21というフリーのライブラリに依存するか、自作するしかなかったと思う。要は暗号化したいと思えばこそ、見つかるという存在である。

ASPの良いところでもあり悪いところは、ASP自体はかなりシンプルな機能しか持っておらず、ActiveX DLL(COM)で機能を拡張していくというものなので、その情報を知らなければ全く使うアテもないというのはあったと思う。また、Basp21がフリーのライブラリが故に、案件で使えないというところもあったハズだ。

セキュリティについても今ほど情報が充実していなかった時代だったと思うので、第一次ネットバブルの頃に量産されたWebサイトのかなりの数は、非常によろしくない状態で存在しているんじゃないかと肌感覚では思うところ。

そんな時代背景の中で、売り上げを伸ばしてきて今までずっと生き残ってきた老舗のECサイトが、ここへ来てハッキングされて顧客情報が流出してしまうのは、結果論からすると、なるほどやっぱりそうだったのか、という印象ではある。

だから、ハッキングされて当たり前とかそういう話を書きたいわけではないが、今と比べると、やっぱり問題の多いプログラムが存在しうる時代だったと思うので、瑕疵で一方的に開発者が悪いとか、そういう空気にするのではなく、そういう事実は受け入れた上で前に進むためにシステム改修できるような空気になると良いなと思うわけです。

(とても書き方が難しい。けど、GoogleやAmazonと言った名だたるWebサービス企業だって多数のセキュリティホールを修正しながら今があるんだと思います。)

これから先はリスクマネジメントの話であるが、事業が立ち上がって、十分に利益を出しているシステムにおいて、セキュリティ対策のために一からソースコードの監査をするなどと言った行為は、経営者レベルのセキュリティ意識が十分に高くないとできないことだと思う。

何せシステムが肥大化しているハズだから、その検証コストも時間もバカにならないし、スタッフは売り上げを伸ばす人数で最適化されてるハズだし、運用そのもので手一杯。現場の判断だけだと「今まで問題ないから明日も問題ないんじゃないの?」と判断される可能性が非常に高い。

ここに対して、待ったをかけられるのはCTOを含めた危機管理意識を持った経営層ということになるが、結局はコード一行一行の話だったりするし、既に偉くなってしまって現場から離れた人の過去の経験と、「当たり前のセキュリティスキル」が実は乖離しているケースも少なくはないし、何より意志決定できる人ほど、ソースコードから距離が遠いというジレンマもある。

もちろん、お金をかけて外部の業者に頼んだセキュリティ診断などは有効だと思うが、大企業には受け入れられる見積もりも、ベンチャーや他のビジネスからネットビジネスを始めた企業にはなかなか受け入れられない価格だったりする。

どちらかというとネットワーク効果に支えられた薄利多売モデルで商売し、広告宣伝費、人件費、固定費を抑えてきたが故に利益を出してきたというネット系企業のあり方だと、そのコストをかけられるほど危機意識を持つチャンスが、情報漏洩したときという皮肉な状態はなんとも不幸な状態である。

内部で回すにせよ、それだけの危機意識を演出していかねば、本気のセキュリティ監査など、なかなか立ちゆかないというのが現実だと思う。そもそも他人が書いたソースコードを読むのは相応のスキルと精神力が求められるし、何より他人のコードを信用しない性格や批判的精神こそがセキュリティ不具合発見には必須だと思う。


ちなみに偉そうに書いてるように見えるかもしれないが、全然他人事だとは思っていませんので悪しからず。


#今更過ぎるけどWebシステムの開発は難しい。たかだかネットを通じた文字の入出力システムなれど、不特定多数の入力文字列がシステム内をシームレスに駆けめぐり、JavaScriptからファイルシステムからSQLまで影響を及ぼす可能性を秘めているわけですから。

スポンサーリンク
■同じカテゴリ[Web系]のエントリー
<<前の記事 Googleストリートビューへの拒否感と、Youtubeに対するコンテンツホルダーの嫌悪感って似てない?
>>次の記事 DBに保存されたクレジットカード情報が流出するリスクに対して、1人日で対処できる暫定対策
■このblogの書き込み最新3件
本ブログは移転しました インターネットの遊び方を身につけよう トトロが陽なら、『風立ちぬ』は陰?〜『風立ちぬ』の感想
この記事への提案、提言一覧

ADOにもちゃんとCommandオブジェクトっていうものがあります。が、
知らない=無い と同意ですね。

2008/08/13 22:50 名無しさん
この記事への提案、提言









あなたの情報を保存しますか?