0
無料 会員登録
有料サービス
メルマガ登録
ログイン
ITpro Tech ITpro Data ITpro Start ITpro Watcher
アプリケーション開発から始まるセキュリティ対策
VOL.2セキュアなアプリケーションの開発に向けて

安全に利用できるアプリケーションとは?開発者が知っておくべき原則を紹介

中央大学
研究開発機構 専任研究員
文=塩月 誠人
大学の専任研究員としてセキュリティに関する実践教育に従事する一方で,セキュリティコンサルタントとしても,雑誌や書籍での執筆や,講演・セミナーでの活動も精力的に行っている。
本企画の1回目となる前回の対談では,開発現場における現状の課題に焦点を当てて,現場が抱える問題や,企業あるいは開発者自身の取り組みといった話題を議論した。2回目の今回は,セキュアなアプリケーション・ソフトウエアの開発において,開発者は何を考慮しなければならないかという観点から,いくつかのトピックについて解説する。

適切な対策を最適なコストで脅威分析の重要性

 そもそも,本企画のテーマでもある「セキュアなアプリケーション」とは何だろうか。情報セキュリティを考える上で忘れてはならない,最も重要な要素として,以下の3つがある。

[画像のクリックで拡大表示]
図1 脅威,保護対象,脆弱性,リスクの関係
図1 脅威,保護対象,脆弱性,リスクの関係
まずは,想定される脅威の種類,そして保護対象を明確にする。脅威を理解できなければ,脆弱性やリスクに気付くことはできないからだ。
  • 機密性(Confidentiality)
  • 完全性(Integrity)
  • 可用性(Availability)

 それぞれを簡単に解説すると,機密性は秘匿すべき情報が適切に保護されていること,完全性は情報や機能が正確かつ信頼できる状態にあること,可用性は必要な時に必要な機能が正常に使えることを意味している。つまり「セキュアなアプリケーション」とは,基本的に「機密性,完全性,可用性が十分に確保されている」ようなアプリケーション・ソフトウエアのことだと考えればよいのだ。

 しかし,「機密性,完全性,可用性を確保する」と一言でいっても,実際にそれを実現するのは決して容易ではない。アプリケーションが取り扱う情報や機能の種類に応じて,保護の程度や方法が異なるからだ。したがって,まず「保護対象」を明確に分類することが必要となる。さらに,何から守るのか,つまり何を「脅威」と捉えるかということも重要な検討項目となる。脅威に対して適切な対策が施されない場合,それは「脆弱性」となり,保護対象に「リスク(危険)」が発生する。これらの関係を示したのが図1である。

 自らを取り巻く脅威を知らない限り,脆弱性やリスクの存在に気付くことはできない。適切な対策を最適なコストで実施するためには「何を,何から,どの程度守る必要があるのか」について,あらかじめ明らかにすることが必要になる。この工程のことを一般的に「脅威分析」と呼ぶが,発生するリスクを最低限に抑えるアプリケーションを開発するためには,この脅威分析が非常に重要となる。


幾重もの防衛ラインで侵入を防ぐ多層防御の考え方
[画像のクリックで拡大表示]
図2 情報セキュリティにおける多層防御のイメージ
図2 情報セキュリティにおける多層防御のイメージ
セキュリティ対策では,多重防御を施すことが基本となる。仮に,どこかの防衛ラインが突破されても,それ以外のラインで侵害を防ぐことができる。

 さて,「多層防御(Defense in depth)」という言葉をご存じだろうか。もともとは軍事上の戦略に関する用語であるが,現在では情報セキュリティの分野にもその考え方が取り入れられている。しばしば例として挙げられるのが,「城」の防御である。城には幾重もの堀や城壁によって,多数の防衛ラインが敷かれている。仮に1つの防衛ラインが突破されても,別の防衛ラインで侵入を防ぐ。情報システムも同様に,多くの「層」で防御すべきというのが情報セキュリティにおける多層防御の考えである(図2参照)。

 多層防御においては,アプリケーション・ソフトウエア自身におけるセキュリティ対策も1つの層に相当するが,それ以外に物理的な侵入対策,ファイアウォールの設置,OSのセキュリティ設定強化,アンチウイルスソフトの導入,データの暗号化,セキュリティ教育の実施等,様々なセキュリティ対策を施すことにより,どこかの防衛ラインに不備があった場合でも他の防衛ラインでセキュリティ侵害を未然に防ぐことが可能となる。セキュアなアプリケーションを構築し,運用していく上では,常にこの多層防御を考慮する必要がある。


「最小権限での実行」がセキュアなアプリケーションの条件

 多くのマルチユーザー/マルチタスクOSでは,管理者権限のユーザー以外はシステム設定の変更ができないなど,可能な操作の範囲やアクセスできるデータが厳しく制限されている。このような制限は,一般ユーザーの不用意な,あるいは意図的な設定変更などがシステムに悪影響を及ぼすことがないように設けられているのと同時に,ウイルスやワームなどの有害プログラムの実行を許してしまった場合でも,一般ユーザーでログオンしている限り,システム全体を乗っ取られる最悪の事態を避けることができるという側面を持つ。そのため,日常的にコンピュータにログオンする際は,一般ユーザーでログオンして使用し,必要に応じて管理者権限でプログラムを実行することが,セキュリティ対策の1つの原則といわれている。

 ところが,実際に一般ユーザーでログオンしてPCを利用しようとした場合に,立ちはだかる大きな壁が存在する。それは「管理者権限での使用を前提に作られたアプリケーション」である。もちろん,機能の性質上,管理者としてログオンして使用すべきアプリケーションも当然のことながら存在する。しかし,一般ユーザーが使用するアプリケーションの中にも,管理者権限がないと正常に機能しないものが多い。このようなアプリケーションを動作させる必要がある場合,ユーザーは管理者権限でログオンせざるを得ず,結果的にセキュアでない環境での運用を余儀なくされてしまう。

 一例だが,あるコンシュマー向けのアンチウイルスソフトは,パターンデータのアップデートを行う際に,管理者権限でのログオンを必要とする。パターンデータは毎日のように更新しなければならないので,ユーザーは日々管理者権限でログオンし直してアップデートしなければならない。そのうち,このユーザーは,パターンデータのアップデートをやらなくなる,もしくは日常的に管理者権限でログオンするようになるか,いずれかの道を選んでしまうだろう。

 セキュアなアプリケーションに求められるのは,「最小権限での実行」なのだ。これはすなわち,必要最低限の権限で実行できるようにアプリケーションを構築すべきだということを意味している。アプリケーション開発者にとって,ユーザーに「管理者権限で使用してください」と言うのはたやすい。しかし,その前に本当に管理者権限が必要かどうかについて再検討してもらいたい。セキュアなアプリケーションは,セキュアな環境下で使用されて初めてセキュアになり得るのである。


先人の失敗を教訓に 過去から学ぶセキュリティ対策

 最後に,世の中のすべての事柄に当てはまるように,セキュアなアプリケーション開発も過去から学ぶことが重要である。先人の蹉跌は,大いなる教訓として役立てなければならない。Windows環境でのアプリケーション開発の場合は特に,Windows OS等の脆弱性に学ぶべきことが多いだろう。

 マイクロソフト製品の脆弱性の情報は,「TechNetセキュリティセンター」というWebサイト(http://www.microsoft.com/ japan/technet/security/)で公開されている。開発者の方々にはあまり馴染みのないサイトかもしれないが,新しい脆弱性が報告された際などには,ぜひ見てもらいたい。Windowsプログラマが犯しがちなミス,今まで気付かなかったWindows特有の脅威など,開発者向けのサイト※にはない貴重な情報が得られるかも知れない。

※ Microsoft セキュリティデベロッパーセンター(http://www.microsoft.com/japan/msdn/security/



お問い合わせ

マイクロソフト株式会社
開発者向けセキュリティ情報提供サイト
セキュリティデベロッパーセンターURL.http://www.microsoft.com/japan/msdn/security/

一般のお問い合わせ窓口
カスタマーインフォメーションセンターTEL.0120-41-6755(9:30-12:00,13:00-19:00 土日祝日,弊社指定休業日を除きます)

Windows Update,セキュリティ問題に関する情報提供及びお問い合わせ窓口
マイクロソフトセキュリティ情報センターTEL.0120-69-0196(9:30-12:00,13:00-19:00 土日祝日,弊社指定休業日を除きます)


VOL.1 開発におけるセキュリティの重要性 VOL.2 セキュアなアプリケーションの開発に向けて VOL.3 開発者が取り組むべき初めの一歩 VOL.4 実例: マイクロソフトにおけるセキュアなアプリケーション開発モデル




ITproについてITproへのお問い合わせ・ご意見情報提供・プレスリリース日経BP書店
広告について著作権リンクについて|個人情報保護・プライバシーポリシーについて
プライバシーマーク

日経BP社 Copyright© 1995-2006 Nikkei Business Publications, Inc. All rights reserved.
このページに掲載されている記事・写真・図表などの無断転載を禁じます。著作権は日経BP社,またはその情報提供者に帰属します。
掲載している情報は,記事執筆時点のものです。