セキュリティ要件の導き出し方

 Webシステムは,攻撃を受けやすい特性を持っています。その理由の一つは,HTTP(HyperText Transfer Protocol)というシンプルなプロトコルを使うことにあります。テキスト形式のプロトコルなので,クライアントとサーバーが送受信するメッセージ内容を盗み見される危険があります。不正にリクエスト(要求)メッセージを書き換えられるかもしれません。公開されたプロトコルを使用するので,インターネット上に公開するWebシステムでは,多数のリクエスト・メッセージを同時に送り込んで回線やサーバーを混雑させる「サービス妨害(DoS)」と呼ぶ攻撃を受ける恐れもあります。イントラネットのWebシステムでも,社員がデータベースから無断で情報を抜き出したり,自分の都合のよいようにデータを書き換えたりする危険があります。

 こうした特性をよく認識してWebシステムを設計しなければなりません。セキュリティは可用性と同じで,コストをかければいくらでも強化できますが,守るべきものの価値を超えて対策することは本末転倒です。危険性の高い脅威や,被害が甚大な脅威から,優先的に対策することが基本です(図1の上)。何を守り,何をあきらめるのかを,システムの利用者や発注者と十分に協議し,メリハリを付けて実効性を保つことが肝心です。

図1●Webシステムがさらされる脅威と求められるセキュリティ要件
図1●Webシステムがさらされる脅威と求められるセキュリティ要件
「なりすまし」「データの改竄」「否認」「情報漏洩」「サービス妨害」「アクセス権の不正な昇格」という六つの脅威を考慮に入れて,Webシステムのセキュリティ要件を取りまとめる必要がある。特定のサーバーだけに対策を施すだけでは不十分で,Webシステム全体を見通すことが欠かせない
[画像のクリックで拡大表示]

「情報セキュリティのCIA」で考える

 とはいえ,Webシステムの利用者や発注者が自発的にセキュリティ要件を明示することは多くありません。そのためWebシステムを設計する場合には,提示された雑多な要求の中から,利用者や発注者がどんな脅威から何を守ろうとしているのかを洗い出し,足りない部分を適宜補いながらセキュリティ要件を固めていく――という姿勢が重要になります。Webシステムのセキュリティ要件として考えておきたいことは,「正規の利用者であると識別できること」「アクセスや操作の痕跡を追跡・証明できること」「通信やデータを暗号化していること」「適切に監視していること」などがあります(図1の下)。

 セキュリティ要件を洗い出したら,システムのどの部分でどう対策するかを整理します。難しいのはセキュリティ要件を漏れなく洗い出すことですが,筆者の経験からすると,「情報セキュリティの基本理念」と見比べるとうまくいきます。

 情報セキュリティの基本理念というのは,(1)機密性(Confidentiality),(2)完全性(Integrity),(3)可用性(Availability)の三つです。英語の頭文字をとって,「情報セキュリティのCIA」と呼ばれます。

 (1)機密性とは,情報システムを使用する権限を与えられた利用者だけが,情報に確実にアクセスできることです。Webシステムで言えば,アプリケーションやサーバー機のログイン機能やアクセス制御機能,ファイアウォールによる第三者からの不正アクセスの遮断機能――などが,機密性を実現するためのカギとなります。

 (2)完全性とは,情報システムが管理する情報とその処理方法が正確・完全で,その状態を維持できることです。Webシステムで言えば,アプリケーションのロジックやデータベースの情報に矛盾がないこと,バグや脆弱性がないこと,定常的に監視できることなどが,システム上の必要事項となります。

 (3)可用性とは,利用者が必要なタイミングで情報システムを介して情報やサービスを利用できることです。例えば,職権上は本来アクセスできるはずの情報に,わざわざ申請しないとアクセスできないというケースは,可用性を満たしているとは言えません。アプリケーションに必要最小限のアクセス権限を設定するといった対策が,可用性の確保には必要です。

 情報セキュリティの基本理念と見比べるというのは,セキュリティ要件がどの基本理念に対応するかを考えるということです(図2)。セキュリティ要件は,基本理念の一つ以上に必ず対応するはずです。特定の基本理念にセキュリティ要件が偏っている場合には,残りの基本理念に対応するセキュリティ要件の洗い出しが不十分であることを疑うべきです。うまくセキュリティ要件を洗い出せているときには,各基本理念に対する要件の数が,ほぼ拮抗します。


図2●情報セキュリティの基本理念とセキュリティ要件を対応させる
図2●情報セキュリティの基本理念とセキュリティ要件を対応させる
基本理念は「機密性(Confidentiality)」「完全性(Integrity)」「可用性(Availability)」の頭文字をとって「CIA」と呼ぶ。利用者や発注者が示すセキュリティ要件は,基本理念の一つ以上に対応する
[画像のクリックで拡大表示]

高安 厚思(たかやす あつし) オープンストリーム テクニカルコンピテンシーユニット 主管システムズアーキテクト
銀行系シンクタンクでオブジェクト指向技術の研究に携わった後,大手SI業者でアーキテクチャ構築やプロセス研究を担当。現職ではSOA(Service Oriented Architecture)を中心とする研究開発とアーキテクチャ構築に従事している

椎野 峻輔(しいの しゅんすけ) システム・コンサルタント(セキュリティ監修)
大手SI業者でシステム構築を経験後,ベンチャー企業に転身。システム導入コンサルティングから,開発・運用,セキュリティ診断まで,幅広い領域を担当する