NetCash破られる

「ネットキャッシュID」81,105個が流出、未使用分だけで3億円以上に相当 (Internet Watch)
速報があった時点からSQL injectionあたりかなぁという気がしていたが、どうやらその通りだった模様。

NTTカードソリューションによると、今回の不正アクセスでは、ネットキャッシュの決済画面に存在した脆弱性を突き、IDを管理していたデータベースサーバーにまで侵入して来たという。

しかし、びっくりだ。要はWeb経由で、ID管理してた(つまりこのシステムにとっては中核の)DBに直接アクセスできたってことで、これはシステム設計としてひどく無用心だと思うのだが。他のシステムならいざ知らず、お金を直接扱うシステムでこれはちょっといただけない。普通、まずDBを内包した決済サーバを作って、Webサーバはそこにアクセスさせる仕組みにすると思うんだがなぁ。Web内CGIあたりで直接DBにSQLを投げるような仕様にしてしまった時点で、WebサーバからDBに対する一覧性のあるアクセスを制限することが難しくなる。つまりWebアプリケーションにバグがあるとドバっとデータが出て行くことがある(DBサーバの仕様によってはサーバ側でQUERYに対する回答数を制限できる場合もあるだろうが今回はそれもされていなかったようだし)。こういう恐怖感があれば普通は間に1枚かませて(つまり決済サーバなどを作って)アプリケーションファイアウォール的な働きをさせると思う。そのセンスがここの設計者にはなかったらしい。