ブログ

FFRI BLOG

Monthly Research 「STRIDEの変化形およびセキュリティ要件で導き出す脅威分析手法」

今月は先月のMonthly Researchで示した脅威分析の流れのなかの「脅威の洗い出し」にフォーカスし、STRIDEをより適用しやすく改良した手法についてご紹介致します。ここで紹介する内容はAdam Shostack氏著「Threat Modeling: Designing for Security」基にしています。
また、別の脅威分析手法として、ソニーデジタルネットワークアプリケーションズの松並勝氏による脅威分析手法についてもご紹介します。


図 1 脅威分析の流れ

脅威の洗い出し

では、まず脅威の洗い出しの手法として前回紹介したSTRIDEを具体化した2つの派生手法についてご紹介します。

STRIDE-per-Element

STRIDE-per-Elementとは、DFDの要素すべてに対してSTRIDEを適用し、脅威を導き出す手法です。ここで言う要素とはプロセスだけでなくデータフローなども含まれます。
この手法は簡単に脅威を導出することが可能ですが、一方で同じ脅威を何度も導出してしまう欠点もあります。
詳しい手順としては、システムのDFDを作成し、下記の表に当てはめることで脅威を導出します。
ただし、下記の表は必ずしも万能というわけではないので、利用者が現在の分析対象に表の内容が合致しているかを検証・修正する必要があります。


表1 要素とSTRIDEの対応表(Adam Shostack 『Threat Modeling』、Chapter 3の表を基に作成)

STRIDE-per-Interaction

もう一つの脅威分析手法がSTRIDE-per-Interactionです。これはDFDのなかでもTrust Boundaryと交差するデータフローを取り出し、“origin” , ”destination” , “interaction”に着目して脅威を導出する手法です。
Trust Boundaryとは日本語で信頼境界と呼ばれ、DFDのなかで管理している組織やインターフェイスの変わり目に引く境界線です。具体的には、ブラウザとWebサーバーの間などがTrust Boundaryの引かれる箇所です。
STRIDE-per-InteractionはMicrosoft社が提供している脅威分析ツール"Microsoft Threat Modeling Tool"の2014版以降で分析手法として採用されています。
詳しい手順は、予め要素と相関作用によって発生しうる脅威をまとめた一覧表を用意し、分析対象のDFDを作成、Trust Boundaryと交差しているデータフローを取り出し、データフローの両端どちらかの要素と相関作用を基に先程の一覧表と比較、脅威を導出するというものです。見つかった脅威は表にまとめます。


図3 STRIDE-per-Interactionの手順(Adam Shostack『Threat Modeling』、Chapter 3の画像を引用)

STRIDEの変化形を比較

ここまで、STRIDEの変化形についてそれぞれの特徴をご紹介しました。では、それぞれの手法を比較した場合の短所と長所はどうなっているのでしょうか。
スウェーデンのチャルマース工科大学からこの2つの脅威分析手法をAUTOSARのSecOCモジュールに対して実際に試行、発見された脅威や手法に対するレビューを行った興味深い論文が発表されています。
この論文で脅威分析対象となったSecOCとはECU間の安全な通信を提供するもので、近年セキュリティ技術の必要性が増している自動車業界において重要な役割を担っていくと考えられています。
また、論中では各手法の利便性を測るためにMicrosoft社からリリースされている「Microsoft Threat Modeling Tool」の各手法に対応したバージョンを利用、評価を行っています。
それでは、2つの変化形の比較結果を確認しましょう。STRIDE-per-Elementについて、この手法を利用し脅威分析を行ったところもう一つの手法より、正脅威率と呼ばれる導出した脅威中の実際に脅威であった比率が高く、分析時間も短時間でした。一方STRIDE-per-Interactionはツールも使い勝手がよく、後から脅威を確認してもすぐに脅威の内容が理解できるという利点がありました。それぞれの詳しい数値は下記の表の通りです。


表2 チャルマース工科大学:STRIDE変化形の比較結果

セキュリティ要件で導き出す脅威分析手法

次に、これまでご紹介してきた内容から少し離れて、別の手法についてご紹介します。
この手法はソニーデジタルネットワークアプリケーションズ株式会社の松並勝氏が(ISC)2 Japan chapter発足記念イベントなどで紹介しているもので、設計書からセキュリティ分析を行い、設計上のセキュリティを確保・説明責任を果たすことを目的とした手法です。過去には、ソニー株式会社の提供する電子お薬手帳サービス「harmo」のセキュリティ設計分析に利用されています。
具体的な手順としては、対象システムの設計資料から【資産】と【人】、場合によっては【場所】も洗い出し、【資産】に【人】が【読み取り・書き込み・実行】が【できる・できない】で脅威事象の抽出を行います。


図3 脅威事象の例

さらに、抽出した脅威事象を基にセキュリティ要件を決定し、現在の設計で要件が満たされているかどうかをセキュリティ分析グラフというツールを用いて分析します。


図4 脅威事象の例

セキュリティ分析グラフとは、木構造の頂点に命題となるセキュリティ要件を配置し、命題を達成させる為の条件をノードに記述し、全ての対応が行われていることを確認、可視化するグラフです。


図5 セキュリティ分析グラフの例(IPA『ソニーの電子お薬手帳システム「harmo」に適用したセキュリティ設計分析手法』、18ページの画像を引用)

この手法の利点は開発の初期段階から実施でき、DFDを描かなくても良い点です。また、セキュリティ分析グラフの分解パターンを知識DB化することでセキュリティの専門家でなくても脅威分析が出来るようになることです。一方、セキュリティ分析グラフの分解パターンを多く持っていない場合は時間がかかるという課題があります。

まとめ

これまで紹介した分析手法の特徴をまとめると以下の通りです。
STRIDE-per-Elementは比較的短時間で情報が手に入るものの、属人的でありツールも使い難いため、専門家などの脅威分析のスキルが高い人材による分析が向いている。
STRIDE-per-Interactionは前述のSTRIDE-per-Elementに対して使いやすい反面時間がかかってしまい精度も低いため分析を行う人材のスキルが不明な場合や人的・時間的リソースが豊富な場合の選択肢として挙げられる。
 上記のほか、設計書や仕様書からセキュリティ要件を導出する脅威分析手法もあります。
このように、脅威分析には様々な手法が存在しており、それぞれにメリット、デメリットが存在しています。脅威分析を行う際は、求めている情報(分析結果を用いて何を説明したいのか)とその精度やコストなどの要求に応じた分析手法を選択する事が重要です。


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


関連記事

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

Monthly Research 「BlackHat USA 2016 サーベイレポート」

pagetop