機能を利用者視点でしか考えない、脆弱性対策のガイドラインに頼り切りになる──。セキュリティ設計における多くの間違いが、システムの脆弱性を作り込んでいる。逆に、セキュリティばかり重視して利便性を損なうこともある。

 「このセッション管理方式だと、簡単に他人になりすませるのではないか」。電通国際情報サービス(ISID)の石井博之氏(技術統括本部 システム推進センター 基幹アプリ1グループ プロジェクトディレクター)は、あるWebシステムの再構築プロジェクトで、現行システムの機能を調査しているとき、まずいことに気付いた。

 そのシステムでは、URLのパラメーターとして使っているユーザーIDだけで、利用者を識別しているようだった(図1)。ユーザーIDは連番で、他人のIDを容易に推測できる。試しにWebブラウザーでURL中のユーザーIDを変更してみると、予想通りの結果を得た。他の利用者になりすまして、利用者のデータを閲覧・変更することが可能だったのだ。

図1●設計レビューでセキュリティの視点が欠けていた
図1●設計レビューでセキュリティの視点が欠けていた
電通国際情報サービスの石井博之氏は、Webシステムの再構築プロジェクトを担当したとき、現行システムに致命的な脆弱性があるのを発見した。設計レビューをきちんとしていれば、防げた脆弱性だった

 現行システムはいずれは利用をやめるものだったが、刷新までにまだ1年近くある。石井氏は急いでユーザー企業の担当者に事情を説明し、暫定措置を取ることにした。社内のセキュリティに強いエンジニアに相談すると、WebサーバーのAPI(ISAPI)を使って、ユーザー認証機能を埋め込めば1週間で対応できるという。再構築プロジェクトが遅れる事態は避けられた。