山下 眞一郎/富士通 クラウドCERT室
シニアマネージャー

 訳あって、しばらく本コラムの更新をお休みしていましたが、この度、再開することになりました。私は人事異動に伴い、現在は富士通のクラウドCERT室という部署に所属しています。CERT(サートと読む)は、「コンピュータ緊急対応チーム」(Computer Emergency Response Team)のことです。

 このクラウドCERT室とは、富士通がグローバルに展開するクラウドサービスのセキュリティの維持/向上、およびインシデントが発生した際にスピーディーな対応を行うための組織です。具体的には、セキュリティの脆弱性などの情報収集/分析、セキュリティ診断/監視、インシデントの発生防止策の検討/発生時の対応、情報セキュリティガバナンスの確立・維持といったことが業務になります。その立場から、改めて企業の情報漏洩対策についての解説を書いていこうと思います。

 最近、ソニー・コンピュータエンタテインメント(SCE)などソニーグループをはじめ、様々な企業で、個人情報を含む膨大な重要情報の漏洩事件が続出しています。これを見た、以前から付き合いのある企業のシステム管理者から、こんな相談を受けました。「既知のサーバー脆弱性を放置したことなどが原因とされているが、Webアプリケーションサーバーの既知の脆弱性対策が十分かどうかをチェックするには、まず何を読んだらよいのか。また、日々チェックすべきセキュリティ脆弱性情報を、無償で効率的にウォッチする方法はないだろうか」

 ソニーとSCEは、「PlayStation Network」(PSN)および音楽などの配信サービス「Qriocity」を再開させる際に、以下の3点を主な対策として講じたと報道されています。
(1)システムへの侵入および脆弱性をモニタリングするソフトウエアの追加
(2)暗号化方式の強化
(3)ファイアウォールの増設

 今回の一連の攻撃には、SQLインジェクションが主に使用されたと考えられ、(3)のファイアウォールの増設には、おそらくSQLインジェクションに対抗できるWAF(Webアプリケーションファイアウォール)の設置も含まれていると思います。ほかに、システムへの侵入および脆弱性をモニタリングする、もし侵入されてデータを奪取されても情報が漏れにくいように暗号化するといった策もあります。

[関連記事]
「既知のサーバー脆弱性が原因」、ソニーが個人情報漏えい問題で経緯を説明(ITpro:2011/05/01)

関連記事
ソニーのPSNサービスが一部再開、5月中の全面復旧を目指す (ITpro:2011/05/15)

 これらの3点の対策はもちろん重要です。ただ、それで十分でしょうか。これらは後付けの対策であり、そもそも既知の脆弱性に付け込まれないための本質的な対策がアナウンスされていません。

 SQLインジェクションなどの既知の攻撃に対する最も抜本的な対策は、次の3点です。
(1)Webアプリケーションサーバーの場合、「セキュアなアプリケーション実装」を実践し、SQLインジェクション、OSコマンドインジェクション、クロスサイトスクリプティングなど既知の攻撃を受ける脆弱性を排除する
(2)セキュアなアプリケーション実装や、セキュアなサーバー設定、パッチ適用が継続的に実施されるよう、定期的に、診断ツールによるセキュリティ診断を実施する
(3)OSや各種アプリケーションのセキュリティ脆弱性情報を、毎日、ウォッチし、パッチ適用など必要な対応を優先順位を付けてタイムリーに実施する

セキュアなアプリのヒントはIPAの文書

 セキュアなアプリケーション実装や、そのチェックのための読本としては、IPAが無償公開している「安全なウェブサイトの作り方」をお薦めします。2006年1月に第1版が公開されてから改訂を重ね、2011年4月には第5版が公開されました。それぞれ、主な更新内容は以下の通りです。

・改訂第2版:脆弱性について、新たに「CSRF」(クロスサイト・リクエスト・フォージェリ)と「HTTPヘッダ・インジェクション」の解説を追加。セキュリティ実装の実施状況を確認するためのチェックリストも追加
・改訂第3版:英語版「How to Secure Your Web Site」を公開
・改訂第4版:ウェブアプリケーションに脆弱性を作り込んでしまった「失敗例」を拡充
・改訂第5版:携帯電話向けウェブサイトを開発する上での注意点を追加

 こう見ると、新しい脆弱性やニーズを取り込みながら着実にアップデートされてきたことが分かります。「セキュリティ実装 チェックリスト」や、別冊として「安全なSQLの呼び出し方」もあります。「安全なウェブサイトの作り方 英語版」もありますので、Webサイトをグローバル展開する場合、セキュアなアプリケーション実装に関してグローバルに同一の指示を出すことも可能です。