企業全体での取り組みが不可欠

表1●Webアプリケーションの主なクラッキング手口
図8●Webアプリケーション開発の各工程で実施すべきセキュリティ対策
図9●ポリシーを基にしたWebアプリケーションのセキュリティ対策体系
最初にセキュリティ・ポリシーとして全体方針を固め,アプリケーション開発方針を決める。そこから開発手順書やコーディング規約,ツール類といった具体的な対策にブレークダウンしていく

 このようにWebアプリケーションは非常に簡潔な基本原理で成り立っており,その単純さゆえにぜい弱性が入り込み易い構造になっている。代表的なクラッキング手口をまとめたのが表1[拡大表示]だ。事件簿として紹介した問題は,「Cookieの改ざん」「セッション・ハイジャック」「強制ブラウジング」と呼ばれる手口である。ほかに,「クロスサイト・スクリプティング」「不正なコマンドやSQL文の実行」「バッファ・オーバーフロー攻撃」などがある。

 各クラッキング手口の詳細ならびに対策は次号以降に譲るとして,ここでは企業としてどのように対策に取り組んでいくべきかを簡単に説明しよう。理想的には,アプリケーションの開発者全員がWebアプリケーションの基本原理を正しく把握した上で,次号以降で説明する具体的な対策を実施していくのが望ましい。

 しかし,パートナー企業や派遣社員も含めてこれを徹底するのは容易ではない。したがって,要件定義→設計→プログラミング/デバッグ→テスト→導入/運用といったシステム構築の各工程で,チェックシートに基づいた自己診断や第三者によるレビューを実施するのがよい(図8[拡大表示])。予算に余裕があれば,Webアプリケーションのセキュリティ対策に詳しい外部の監査機関に審査してもらうとよいだろう。

 ただ,現実には限られた予算の中でどこまでの対策を施すかは,結局のところ経営的な判断が必要になってくる。まずは,企業としてどのような対策を実施するかという全体方針をセキュリティ・ポリシーとして決めた上で,トップダウン的に運用手順を定めることが肝要である。作成したセキュリティ・ポリシーから,アプリケーションの開発方針,開発手順書,コーディング規約,ツール類といった具体的な対策にブレークダウンしていく(図9[拡大表示])。さらに,これらはPDCA(Plan-Do-Check-Action)のサイクルで継続的に手順を改善していく必要がある。このあたりの企業としての取り組みについては,連載の最終回で解説する。

 冒頭に述べたとおり,Webアプリケーション・セキュリティについては,まだまだ世の中で認知されているとは言いがたい。しかし,なりすましや個人情報漏洩をはじめとするリスクは確実に存在する。本連載が,読者にとってWebアプリケーション・セキュリティに取り組むきっかけとなれば幸いである。