ブログ

FFRI BLOG

Monthly Research 「脅威分析の役割と手法の紹介」

 近年の高度化するシステムにおいて、そのシステムに問題があると情報流出や不正利用などの被害が発生する可能性があります。
 また、一度リリースしたシステムに対する問題の修正は容易なことではありません。
 そこで、システムの要件定義・設計時に脅威分析を行い、脅威を洗い出し対処することによって問題を未然に防ぐことに繋がります。
 今回のMonthly Researchではシステムに存在する脅威を見つけ出す作業である脅威分析についてご紹介します。

 脅威分析とは、開発しているシステムのセキュリティ上のリスクを把握するための作業です。開発段階で見つけ出された脅威に対処することによってリリース後のセキュリティに起因する問題を未然に防ぐことに繋がります。
 また、脅威分析は開発時に機能仕様書や設計書などを利用して行うため、脆弱性検査やペネトレーションテストでは発見しにくい問題も見つけることができます。そのため、近年のトレンドであるIoTに代表されるような複数のシステムが互いに連携して動作する環境を安全に運用するためにもますます重要性が上がると考えられます。
 そこで本Monthly Researchでは脅威分析で用いられている分析手法の紹介と脅威分析の行い方をご紹介します。

脅威分析について

 脅威分析は一般的にシステム開発プロセスの中の要件定義と設計のフェーズで行います。初めに設計が完了した時点で脅威分析を実施して脅威を洗い出して整理し、発見された脅威が及ぼす影響度を調査し、修正などの対応を要件定義と設計フェーズで行います。この作業を繰り返すことによってシステムで想定される脅威が減っていき、システムはより安全なものへとなっていきます。


図1 脅威分析を行うフェーズ

脅威分析の流れ

 脅威分析を行う際の手順の一例を紹介します。今回ご紹介するのは以下の4項目です。

  • DFD
  • STRIDE
  • Attack Library
  • Attack Tree

DFD

 初めにDFDについて解説します。DFDとはData Flow Diagramの頭文字であり、情報システムにおけるデータの流れを図式化したものです。以下にDFDの例を示します。


図2 DFDの例

 DFDは一般的なシステム開発の初期に描かれる事が多く、脅威分析に限らず広く利用されています。DFDは脅威分析の観点で見ると、システム上のデータの流れが把握でき、ユーザーとWebサーバーなどの各境界で起こり得る問題の列挙や、対応すべき箇所の把握が行いやすくなります。
 脅威分析では最初にDFDを作成し、次のステップのSTRIDEで利用します。

STRIDE

 STRIDEは脅威を発見するための手法であり、脅威を6つの特性より導出します。STRIDEという名前は情報セキュリティに関する要素の頭文字になっています。以下はそれぞれの頭文字の基になったセキュリティに関する要素です。

表1 STRIDEの各要素
要素名 概要 脅威例
Spoofing なりすまし 第三者を装う
Tampering 改ざん データを偽造する
Repudiation 否認 ログの消去により証拠隠滅を図る
Information Disclosure 情報漏えい クレジットカード番号の流出
Denial of Service サービス妨害 サーバーに多大な負荷をかける
Elevation of Privilege 権限昇格 管理者権限が取得される

 DFDや機能仕様書などから上記の6つの観点で脅威を見つけ出します。例えば改ざんについて対象のシステムについて調べる場合、対象のシステムが保持しているデータが書き換えられる問題が改ざんの要素に該当します。

Attack Library

 Attack Libraryとは脅威情報について纏めたものであり、MITREのCAPECのような脅威情報のデータベースです。


図3 CAPECの内容
出典:https://capec.mitre.org/

 Attack Libraryを作成することによって、後述するAttack Tree作成の効率化が期待でき、作業時間の短縮に繋がります。
 収録する内容については運用方法によって多種多様になり、一般的には機能毎に想定される脅威を纏めておくことが多くなると思います。また、Attack Libraryは一般的な情報を記録するため、一度作成すると他のプロジェクトの脅威分析でも利用できるなどのメリットがあります。

Attack Tree

 Attack Treeとは脅威が発生する原因を列挙する際に利用する方法です。脅威を頂点とした木構造で表現され、各ノードに脅威の発生につながる原因を記載していきます。このようにして脅威と脅威を引き起こす原因を木構造で表現することにより、攻撃の手段と手順を網羅的に整理することができます。
 以下の図2は頂点となる脅威を不正アクセスされる想定した際のAttack Treeの例です。


図4 Attack Treeの例

対策の実施

 最後に一連の分析の流れの中で得られた脅威に対策を実施します。洗い出された脅威の影響度や発生頻度は様々であるので最初に対処すべき優先順位をつけます。この優先順位をつける際は、脅威の影響度や発生する条件など(人命に関わるものは影響度が大きい)を数値に換算し、スコアリングすることによって総合的に判断して決めます。スコアリングを行う際の基準は様々ですが、例として共通脆弱性評価システム(CVSS)の攻撃元区分や攻撃条件の複雑さの項目が一つの指針になります。
 優先順位をつけたら実際に脅威に対して対処します。影響度が高い脅威については仕様の変更や、機能の制限や変更などによって脅威が発生しないように修正します。

まとめ

 脅威分析の注目度はセキュリティ意識の高まりを受け、今後ますます上がっていることが予想されます。その為、現在は脅威分析を行っていなくても脅威分析の目的や効果、実施方法について理解し、セキュリティ意識を高めていくことが安全なシステム開発のために重要であるといえます。


Monthly Researchのダウンロードはこちら(日本語 / English


関連記事

Monthly Research 「プラットフォームセキュリティ評価フレームワーク”CHIPSEC”について」

Monthly Research 「IoTデバイスのセキュリティの現状」

pagetop