リスクを把握・評価する
Webアプリケーションの脅威モデリングの勘所
Webアプリケーションがさらされるリスクを把握し、評価する脅威モデリングを進める上で欠かせない重要な7つのステップを紹介する。
Webアプリケーションセキュリティ対策の重要なポイントの1つは、どのようなリスクにさらされているかを把握し、それらのリスクを評価することだ。このプロセスは脅威モデリングと呼ばれる。その過程ではアプリケーションの弱点とその影響を技術的に検討するため、脅威モデリングには脆弱性モデリングやリスクモデリングといえる側面もある。
Webアプリケーションのセキュリティがあなたの会社のビジネスにとって重要なら、脅威モデリングの結果は高レベルなものも含めて、十分に注意を払いながら開発プロセスに反映させなければならない。というのも、Webアプリケーションでは思いがけないさまざまなことが起こる可能性があるからだ。Webの世界では、ファイアウォールやSSL、強力なパスワードといった基本的なセキュリティ要素が整備されていれば、すべてが安全だという思い込みに陥りやすい。この危険な思い込みは結局のところ、どのようなリスクにさらされているかよく知らないことによるものだ。現在の情報セキュリティにおいては、これは命取りになる。
脅威モデリングはこうした問題の回避に役立つ。効果は絶大だ。以下では、脅威モデリングを進める上で欠かせない重要なステップを紹介していこう。
1. セキュリティの目標を設定する
目標設定に当たっては、「対象範囲をどうするか」「決定的に重要なものは何か」「経営陣やセキュリティポリシー、さらには顧客やビジネスパートナーが何を要求しているか」を明確にする。また、関係者全員に共通認識を浸透させ、期待を適切に管理する。
2. アプリケーションの全体的なアーキテクチャを文書化する
ユーザーからWebサーバへ、Webサーバからアプリケーションサーバへ、アプリケーションサーバからデータベースサーバへといった情報の流れも記述する。
3. 本当に保護しなければならないものは何かを見極める
例えば、ユーザーのログイン資格情報、セッション情報、ソースコード、アプリケーションロジック、そして(保護しなければならない最たるものである)顧客情報などが挙げられる。
4. 保護する必要があるさまざまなエントリポイントと「信頼」ゾーンを特定する
例えば、ユーザー認証、ユーザー管理、システムロギング、サーバやアプリケーション保守、重要なアプリケーションおよびデータベースのインタフェースなどがある。
5. 悪用が可能な問題を発見する
信頼されていない外部者と、信頼されているユーザーの両方の立場から、攻撃者の視点で探す。
あなたのチームがいかに綿密な分析を行っても、いかに優れたツールを使っても、すべての問題を見つけたり考慮に入れることは決してできないだろう。だが、それで問題ない。まずは基本を押さえよう。Webアプリケーションの脆弱性の大部分は、入力検証やシステム構成の問題、あるいは本来許可されていないようなアクセス権限を悪用する内部者に関連しており、このことを理解するのにそれほど時間はかからない。こうした脆弱性の例として次のようなものがある。
- 検索フォームや掲示板を使ってクロスサイトスクリプティングが行われる恐れがある
- SSLがアプリケーション全体で使われていない、あるいは強制されていない
- パスワード要件が緩い
- ログインに何度失敗しても、そのアカウントがロックアウトされない
- 余分な情報を含む認証エラーメッセージがユーザーに返され、ユーザー名とパスワードが知られてしまう
- 米国連邦金融機関検査協議会(FFIEC:Federal Financial Institutions Examination Council)の定める要件に従って実装された多要素認証プロセスが弱い
- セッションキーやクッキーが期限切れにならない、あるいは簡単に操作されてしまう
- URLやフォームフィールドの不正操作により、認証の回避や権限の昇格が発生してしまう
- 攻撃者にシステム侵入の足掛かりを与える機密情報がサーバエラーで返されてしまう
米マイクロソフトのSTRIDEという脅威モデルを参考にするのもよいだろう。このモデルは、ほとんどのアプリケーションにかかわる重要な脅威を以下の6つのカテゴリーに分類したものだ。
- なりすまし(Spoofing identity)
- データの改ざん(Tampering with data)
- 否認(Repudiation)
- 情報漏えい(Information disclosure)
- サービス拒否(Denial of service)
- 権限の不正取得(Elevation of privilege)
6. 何が緊急で重要かを判断する
各脆弱性について、攻撃が発生する可能性とその影響を見極め、それに基づいて判断を行う。常に念頭に置かなければならないのは、セキュリティ上の欠陥は、すべて同じように重大なわけではないということだ。最初はアプリケーションの最も機密性の高い部分や、最も機密性の高いシステムに含まれる悪用可能な脆弱性に重点的に対処すべきだ。攻撃が発生する可能性が高いが影響は小さい脆弱性もあるだろう。逆に、攻撃が発生する可能性は低いが、その影響が大きい脆弱性もあるだろう。攻撃が発生する可能性が高く、かつその影響が大きい脆弱性を特定し、そこから対策に取り組んでいくとよい。
このように脆弱性の重大度を判断するために、DREADモデル──損害の可能性(Damage potential)、再現性(Reproducibility)、悪用の可能性(Exploitability)、影響を受けるユーザー(Affected users)、発見の可能性(Discoverability)──を利用できる。また、独自のリスク評価モデルを作成することも可能だ。いずれにしても長期的に、そしてアプリケーション間で一貫した分析を行わなければならない。
7. 各脆弱性について何ができるか、いつ解決できるかを判断する
このステップでは、ステップ1のように目標を設定し、以降の作業につなげていく。一般に、選択肢は単純明快だ。脆弱性を修正する(コード変更かそのほかのセキュリティ対策によって)か、見つからないように隠すかだ(後者の対処がよく見られるが、ずっとそのままにしておいてはいけない)。
問題を次のリリースで修正するか。6カ月以内に修正するか。あるいは放置するか。問題の重大度と修正の作業量に基づいて現実的に判断しなければならない。また、使い勝手に影響する形でセキュリティホールを「修正」する場合は、注意する必要がある。ハッキングされてしまうことを除けば、起こり得る最悪の事態は、使い勝手が変わって不満を募らせたユーザーがアプリケーションを使わなくなったり、厳しい管理を回避するようになり、そのためにセキュリティホールが発生してしまうことだ。
脅威モデリングとは基本的に、Webアプリケーションを分析して、どのような情報がどのように流れるかを調べ、誰がいつ、何を行う可能性があるかを明確にし、起こり得る最悪の事態を想定することだ。これらはすべて手作業で行うこともできるし、AmenazaのSecurITreeのようなソフトウェアベースのモデリングツールを利用して行うこともできる。大規模な開発チームや複雑なアプリケーションを抱えている場合には、できればツールを使うことをお勧めする。そうすれば、一連のプロセスをスピードアップさせることができる上、モデリング結果を分かりやすい体裁で上司に提示することもできる。
脅威モデリングは開発ライフサイクル全体に影響するため、なるべく設計フェーズで行わなければならない。設計の概要がまとまり、脅威モデリングが可能な段階になったら、すぐに着手するとよい。とはいえ、脅威モデリングによってプロジェクトの枠組みが変動したり、開発作業に支障が生じたりすることは避けなければならない。実際、開発者とマネジャーが脅威モデリングにこだわりすぎ、メリットよりもデメリットの方が大きくなる場合がよくある。特に、この試みを始める段階でそうなりがちだ。最初から完ぺきを目指し、あらゆる手を尽くして鉄壁のアプリケーションセキュリティを実現しようとしてはいけない。それでは結局空回りしてしまう。
そうではなく、数年間のスパンの中でさまざまなプロジェクトを通じて、一連の手法を無理なく着実に実践しながら、脅威モデリングのノウハウを積み上げていけばよい。すべての問題を一挙に解決できるわけではないが、この堅実なアプローチにより、あなたのチームは多くの人の協力を得ながら、効果的な脅威モデリングに必要な手法と攻撃者の視点にスムーズに慣れていける。さらに、開発プロセスを改善し、あらかじめセキュリティ対策作業を組み入れることができ、後々セキュリティにあまり悩まずに済む。
本稿筆者のケビン・ビーバー氏は、米アトランタにあるPrinciple Logicを経営する独立系情報セキュリティコンサルタントで、執筆、講演も手掛ける。情報セキュリティに関する6冊の著書および共著書がある。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
2
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
3
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
4
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
5
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
6
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
7
情報漏えいはなぜ繰り返されるのか 今すぐ見直すべき「境界」
-
8
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
9
「結局使わなくなる」Microsoft 365 Copilotを半年で定着 キリンの3施策
-
10
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー