リスクを把握・評価する
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
-
製品資料
[o9ソリューションズ・ジャパン株式会社] 「改正物流効率化法対策」徹底解説 総物流費を抑制するサプライチェーン戦略 -
製品資料
[o9ソリューションズ・ジャパン株式会社] 「サプライチェーン最適化」実践ガイド:効果的な意思決定を実現する秘訣とは? -
製品資料
[株式会社リンプレス] 非デジタル/IT人材を「自走するDX推進者」に変えるための育成ロードマップ -
市場調査・トレンド
[ワンアイルコンサルティング株式会社] AI時代の組織設計:「判断と責任」を人に残すための2つの原則とは? -
技術文書・技術解説
[ワンアイルコンサルティング株式会社] システムの保守がモダン化を阻む? 「変えない判断」から脱却する方法とは
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「完璧な設計」なのに3000万円溶けた AWSの失敗事例から学ぶ3つの教訓
-
2
パナソニックが国内製造26拠点のERPを「SAP S/4HANA」に統一 アドオン7割削減
-
3
「AIバブル」は崩壊するのか? 熱狂の後に来る“尻拭い”と4つの防衛策
-
4
Microsoft製品でここまで自動化できる 情シスがやめられる手作業10選
-
5
守るべきは「開発者のフロー状態」 AIによる生産性改善の6施策
-
6
脱VMwareの前提が崩れる BroadcomのVDDK公開停止で確認すべき点
-
7
「データストレージの活用方法」に関するアンケート
-
8
全社標準「Copilot」にダメ出し? 現場の8割が不満を抱く“致命的な欠点”
-
9
「企業内サーバ環境の利用実態」に関するアンケート
-
10
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
ホワイトペーパーランキング PR
-
1
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
2
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
3
生成AIで文書活用を進めるには? 効率化と安全性をどう両立する
-
4
Windows PCとMacの選択制で生産性向上 LINEヤフーが実践する運用管理方法とは
-
5
DX/AI投資の壁を突破、現代の最高財務責任者が直面する課題と克服のヒント
-
6
「Google Workspace」活用事例34選、先進の生成AIによる組織変革の全貌
-
7
「人員を増やす」という選択肢はない 情シスが負の連鎖から抜け出すには?
-
8
Linuxのスキルを証明する“激推し”の認定資格はこれだ
-
9
「問題が深刻化しやすいプロジェクト管理」から脱却する方法とは?
-
10
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー