脆弱なWebアプリケーションから脱却する5つのコツ個人情報保護時代の情報セキュリティ(3/3 ページ)

» 2006年02月02日 10時45分 公開
[中村隆之,ITmedia]
前のページへ 1|2|3       

アプリケーション構造

 ほとんどのWebアプリケーションでは、認証、ログイン、セッション管理、ログアウト、登録情報参照などといった機能が必須となっている。これらの機能は、一度セキュアなものを設計してしまえば、それをうまく使いまわすことで安全性を保つことができる。

 また、それ以外の機能でも、セキュアな設計指針を決めておき、必ずそれに従うようにすることを推奨する。例えば、以下のような仕組みを採用しておけば、別のユーザーになりすまして、機能を実行されてしまうような脆弱性が存在する可能性を大幅に減らすことができるだろう。

  • ログイン中のユーザーIDはセッション変数内で管理し、アプリケーションがそのユーザーのIDを知りたい場合は、必ずセッション変数内の情報にアクセスすること
  • 「ユーザー情報の表示」などのようなユーザー固有の情報にアクセスする機能では、必ずログイン中のユーザーIDを確認すること

Webアプリケーション検査

 重要な情報を扱うサイトでは、公開前にセキュリティベンダーによる検査を必ず受けるという方法もある。前述した「テスト項目」のところで簡単なチェック方法について説明したが、入力パターンや操作パターンはまだ数多くあり、開発時の基本的なセキュリティチェックだけでは限界がある。隠れた脆弱性を見つけ出すためには、この方法は有効である。前述したアプリケーション構造に対してセキュリティベンダーによる検査を実施しておけば、それを基に開発したアプリケーションは安全性の高いものとなる。

ガイドラインの作成

 Webアプリケーションをセキュアに開発、運用していくためのガイドラインを作成し、それを順守していく体制を整えることも勧めたい。一般的に使われるガイドラインでは、開発手順やコーディング規則といった内容が記載されることと思うが、それに加えて、前述したテスト項目やセキュアなアプリケーション構造についても明確に記述しておき、必ずそのガイドラインに沿った開発を行わせるようにするとよい。

 それ以外の留意点としては、例えば開発者の選定基準を設定するのもよいだろう。アプリケーションの品質は、開発者の技量によって大きく変わってくるからだ。

(例)決済を行うアプリケーションを開発する者は、以下の条件を満たす必要がある。

  • 1年以上のWebアプリケーション開発経験がある
  • 社内教育「Webアプリケーションセキュリティ」を受講済み

WAFの導入

 まだまだ浸透度は低いが、WAF(Web Application Firewall)を導入する方法もある。WAFの基本的な機能は、Webサーバの前に設置することにより、ユーザーから送られてきたタグやシングルクォートなどの特殊文字を遮断することである。特定のページで入力できる文字種をWAFに覚えさせる必要があるため、有効に動作するようになるまでには多少の手間がかかるかもしれないが、WAFの後ろで稼働する多くのWebアプリケーションのセキュリティを一定基準以上に引き上げることが可能だ。ただし、「臭いものにはフタをする」だけでなく、正しい方法で根本的な改修を行うようにしてほしい。


 要件定義にセキュリティに関する事項が記されていなくとも、安全なアプリケーションを開発するのは開発者の義務だ。本稿で提案した対策は、既存の体制や手順を大きく変えるものではないため、導入はそれほど難しくはないはずだ。すぐにでも取り入れて実践してほしい。

(参考サイト)

The Open Web Application Security Project(OWASP)

Web Application Security Consortium

「安全なWebアプリ開発の鉄則 2004」(WIDE大学)

ウェブサイトのセキュリティ対策の再確認を〜脆弱性対策のチェックポイント〜(IPA)

JNSAセキュアシステム開発ガイドライン「Webシステム セキュリティ要求仕様(RFP)」編 β版(JNSA)

中村隆之

三井物産セキュアディレクション(株)セキュリティコンサルタント。主にWebアプリケーションのセキュリティ検査に従事しており、大手ポータルサイト、オンラインバンキングなどの数多くの検査実績を持つ。セキュアネットワークや暗号関連の研究に携わり、大手製造、官公庁、金融機関へのセキュリティシステム導入などに数多くの実績を持つ。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ