4/23にJ-WAVEで64万件の個人情報流出の可能性というニュースが流れ、驚いた方も多いかも。その前日の4/22に日テレで43万件の個人情報の流出の可能性という発表をしています。 両社とも4/20~4/21にかけて攻撃を受け、情報が流出した可能性があり、原因はコマンドラインインジェクションであるとしていることから同一犯あるいは、同一の脆弱性を突いた攻撃である可能性が高いと思われます。
J-WAVEに関しては、脆弱性があったソフトウェアを、Movable Typeのプラグインの「ケータイキット for Movable Type」だと発表しており、開発元のアイデアマンズ株式会社は4/22に修正版を提供しJ-WAVEのサイトの更新を行ったということです。
ideamans
日テレも同日修正版に更新したと発表していますが、どのソフトウェアの更新かには触れていません。

Movable Typeとは?

Movable TypeはWebのCMS(Contents Management System)でWord Pressと同じジャンルのソフトウェアで、Webサイトを構成する画像や文字、そしてレイアウトを一元的に管理して、動的に表示する仕組み。記事の更新や、レイアウトの更新が簡単にできるメリットがあります。 ケータイキットはMovable Typeにスマホ対応機能を付加する追加ソフト(プラグイン)です。

コマンドラインインジェクションとは?

OSのコマンドシェル(キーボードによるOS操作命令を受け付けるインターフェースの働きをするソフトウェア)に対する操作命令をWebの入力画面に入れることにより、その命令が実行されてしまう脆弱性攻撃です。

例えば住所を入力する画面に”|ls -la”等の命令をエンコードして入力してやると、何も対策していない場合、その命令部分がOSの操作命令として実行されてしまいます(この命令の場合、サーバーのフォルダにあるファイルの一覧が表示されてしまいます)。 そのため、通常は画面から入力した文字列をそのまま使用せず、引用符や特殊文字の&$等は置き換えをして悪影響を及ぼさなにようにします(サニタイズ処理)。 通常Webプログラミングでは入力された内容を処理する際には必ず前処理としてサニタイズ処理をするサブルーチンを呼び出して置き換え排除する処理を行うのが普通です。

その処理を忘れると脆弱性となって、サイト全体を脅かすことになります。 本来その入力フィールドに入るべきではない入力値を排除する処理を怠ることが脆弱性になるのです。

ですから、まっとうな開発会社なら、サニタイズ処理をすることのルール化と、納品前の最終手段階で、ツールを使ってサニタイズ処理の漏れをチェックするのが当然のことです。 ツールといっても、高価なものを買う必要は無く、sedやawkといったUNIX OSの古典的ツールのスクリプトをちょっと書いてやれば、単純なミスは発見できます。

単純なミスが出るのは、テスト完了後の納期直前に仕様変更があって、やっつけで修正してそのまま納品とか、そこだけ外注さんにお願いしたとかいうことなのではないでしょうか。

情報流出の可能性

両社とも「最大〇〇万件の個人情報流出の可能性がある」と発表していますが、これはまだ流出していないけれど可能性があるということなのでしょうか?

両社ともこの形でしか公表していませんから、あくまで推測ですが、ログを解析した結果不正アクセスがあったことが確認されたという記述がありますから「情報が読み出されたことは確認されたが、その情報を公開したり悪用されたことは確認されていない」ということだと思います。

○○万件と件数を公表するからにはどのファイルが読み出されたかがログに残っていたということですから、第三者が情報を読み出したことまでは確認できているはずです。しかし、その情報を保存し悪用されたという報告は未だないから、第三者が単にいたずら目的で盗み見ただけで、悪用したり販売したり公開することはしないかもしれないから、流出したとまでは断言する段階ではないということだと思います。

サイトの所有者としてはできるだけ穏やかな表現をする必要がありますから、楽観的に書いていますが、世の中そんなにあまくはありません。 アンダーグラウンドで流通していくんでしょうね。

結局、問題の責任は?

今回の脆弱性は発表される前に攻撃を受けたいわゆるゼロデイ攻撃ですから、サイト所有者の責任を問うことは難しいでしょう。 脆弱性を内包して製品を販売したアイデアマンズの責任を問うのも難しいでしょう。 脆弱性で開発元の責任を問うていたら、マイクロソフトもアドビもつぶれていますから。

責任を問うとしたら、2社のサイトを設計・構築した会社になるでしょう。 何故Webサーバーが乗っ取られたとしても、個人情報が大量に読み出しができないようなシステム設計になっていなかったのかという点が問題になります。

今回のゼロデイ攻撃のように、対策が無い攻撃を受けた場合であっても、個人情報の大量流出が起きないようなシステム設計をするべきところを、安易に考えてシステムを作っていると言わざるを得ません。

数十万件の個人情報を保有するなら、それなりのセキュリティ対策を考えたシステム設計をしなければなりません。

会社の経営情報を保存するサーバー等のセキュリティは十分お金をかけて設計しているのに、視聴者、消費者へのサービスサイト等はできるだけ安く早く、そしてとにかく速くというスタンスで開発されています。 サーバーソフトもデータベースも内部システムは高価なソフトウェアを使い、高い開発費をかけて開発しているのに対して、外部に向けたシステムはフリーのサーバーソフトとデータベースを使って、最低の開発費で開発するというスタイルが定着しているので、セキュリティ対策が十分に行われることはないのが現状です。

10数年前なら、Webでのアンケートのようなシステムを作るのは一つ一つ手作りで、Webサーバー、処理用サーバー、データベースサーバーと役割を分散させ、サーバー間にファイアウォールを置いて、リスクを低減させる仕組みを設けながら、お金と時間をかけて作っていました。 現在もネットバンクやASPサービスを展開するサイトはこのような形でお金をかけて作っていますが、ファン向けのアンケートサイトのような部分は基本的にお金をかけないで作る、オマケのような存在としてしか扱われていないのでしょう。

現在は、Web上で入力するフォームを表示して、それをデータベースに保存して、確認メールを送信し、Thank youメッセージを表示するという仕組みWeb画面上からパラメータを設定するだけで出来上がり1台のサーバーで簡単に作ることが出来ます。 サーバーが無くてもASPサービスで簡単に実現できてしまいます。

一台のサーバーですから、侵入されるとたちまち全ての情報が抜き出されてしまう結果になります。

しかし、時代は確実に変わってきており、個人情報保護の重要性は極めて高くなってきています。 今後は経営情報と同等あるいはそれ以上に個人情報を重要に扱わないと、強烈なな社会的制裁を受けるということを十分理解したうえで個人情報を扱う消費者向けサイトを作らなければならないということを肝に銘じる必要があります。 まずセキュリティよりコストが優先する開発方針を改めないと状況を変えられないと思います。

結局は、ファン向けのサイトなんかお金をかけないで、簡単に作ることを選択したサイト所有者に問題の根底があるということになるのですが、企業が簡易なWeb応答システムのリスクを正しく認識できない限り、この問題は解決しないでしょう。

4/30追加:

昨夜記事を公開して、今朝起きたらエイベックスも同じ脆弱性攻撃を受けて35万件の流出か?というニュースが流れていました。 これはもう言語道断です。 先の2社はゼロデイ攻撃ということで、攻撃された段階では脆弱性の存在は告知されておらず、修正プログラムも発表されていなかったのですから、基本的姿勢は別としてもやむを得ない部分がありますが、この2社の問題が発覚してからの被害ですから弁解のしようがありません。 担当者がサボっていたのか、サイトの管理を任されている会社がサボっていたのか解かりませんが、自分のところのシステムをきちんと把握しないで運用しているのか? そして、経営者に対して自社のシステムの抱えるリスクをきちんと伝えていなかったのか? あるいは経営者がそのリスクを理解できなかったのか?

大規模な個人情報流出の事件が続いたなら、同じようなサイトを持っている自社のシステムは大丈夫なのかを経営上の大きなリスクとしてとらえることができなかったエイベックスの経営層の意識の低さが被害をもたらしたと批判せざるを得ません。

修正モジュールが発表されてからのこのような失態は会社の管理レベルを露呈させます。 数分で終わる対策を的確に施すことすら出来ずに被害を与えたわけですから。

どうか、サイト所有者のみなさん、自社のサイト構成を今一度確認してみてください。

OSもWebサーバーもPHPもCMSも、プラグインも、テーマも日々脆弱性が発見されて、更新モジュールが提供されています。 半年何もしなかったら山のように修正モジュールが溜まっていますよ。

特に露出度の高いマスコミ、芸能関係などのサイト管理者は日々のセキュリティチェックは欠かせません。

社内だけでなく、外部のセキュリティ会社などから情報提供を受けて、万全の体制を敷く必要があります。

VMware Workstation 12 Player