NFLabs. エンジニアブログ

セキュリティやソフトウェア開発に関する情報を発信する技術者向けのブログです。

CTMPで学ぶ、脅威モデリング

はじめに

この記事は、NFLaboratories Advent Calendar 2023 - Adventar 8日目の記事です。

こんにちは、研究開発部の沖田です。 本年受講したHysn Technologies Inc社が提供する脅威モデリングを学べるe-Learningコース「CTMP」について、当コースの内容と脅威分析/脅威モデリングに関するいくつかのトピックについて記載させていただきました。 www.practical-devsecops.com

目次

脅威モデリングの定義

まず、脅威分析と脅威モデリングの違いについて混乱が生じないように(特に私自身が🙄)、今後の議論を進めるにあたって、この記事での定義を明確にします。

ここではOWASP SAMM(Software Assurance Maturity Model)を参考に、「脅威モデリングは脅威分析の手法」と定義します。 owaspsamm.org

OWASP SAMMの「Threat Assessment(脅威分析)」と「Threat Modeling(脅威モデリング)」の区別については、IPAの「セキュリティ・バイ・デザイン導入指南書」も参考にしています。この資料では、OWASP SAMMの「Threat Assessment」という用語を「脅威分析」と翻訳して取り上げています。 www.ipa.go.jp ※なお、CTMPコースでは、こちらのIPAのドキュメントで取り上げられているリスク分析手法EBIOSは取り扱われていません。

CTMPとは

CTMPは Certified Threat Modeling Professional の略称であり、脅威モデリングに特化した資格試験です。この資格はe-Learningコースとセットで提供され、学習から認定までを一貫して行うことができる統合パッケージとなっています。
※ 内容はすべて英語になります。

試験について

残念ながら、私は当記事執筆時点では資格試験は未受験となるため試験について感想は述べられません。試験はe-Learningのコンテンツの内容に基づいて5つの課題が出題されるそうです。試験時間は6時間の実技と24時間のレポート作成になります。 www.practical-devsecops.com

e-Learningについて

このe-Learningコースでは、教育用の動画資料や、Webブラウザ上で操作できるハンズオンラボが提供されています。購入後、ラボには30日間アクセス可能で、動画資料を含むその他のコンテンツは3年間利用できます。さらに、動画で使用されるスライドのPDFファイルも提供されます。
個人的には、ラボへの30日間のアクセス期間はかなりタイトだと感じました。

シラバス

コースのシラバスの主要な項目は以下構成です。
より詳細なリストはこちらのページの下部をご参照ください。

  • Threat Modeling Overview
  • Threat Modeling Basics
  • Agile Threat Modeling
  • Reporting and Deliverables
  • Secure Design Principles and Threat Modeling Native, and Cloud Nataive Application

※ コース内には、Webブラウザ上の コマンドプロンプトを使用してLinuxコマンドを使用するハンズオンモジュールも含まれています。コースの序盤には Linux のコマンド操作の基礎を学ぶハンズオンがあり、また使用するコマンド等はコース資料によって案内されるため問題ないと思いますが、あまりLinuxやCUIでのテキスト操作などに慣れていない方は少し手間がかかってしまう可能性があります。

コンテンツについて

私は資格試験の受験はできてませんが、e-Learningコースについては全てのモジュールの受講が完了してます。
内容は脅威モデリングの基本的な考え方や手法に焦点を当てています。脅威モデリングに関連する情報やリソースの活用方法についてもよくまとめられていた印象です。

具体的には、脅威モデリングの実施方法やツールの使用方法、さらにはアジャイルなどのスピードのある開発サイクルに脅威モデリングを組み込む方法などについて幅広く学ぶ機会がありました。

また、ハンズオンラボではサンプルを用いて脅威モデリングや関連ツールの使い方を学ぶことができました。

そのため「脅威モデリングってなんとなくは知っているが、実際に行うためにはどこから手を付ければよいのかがわからない。基礎から学びたい。」と感じている方々に適していると思います。

受講後の感想

このコースを通じて、脅威やリスクに対する新しい視点を習得することができました。業務でのシステムへの多角的な考察が以前よりも可能になり、脅威の特定において柔軟性と対応力を向上させることができると感じています。今後は顧客のセキュリティ環境をより包括的に理解し、効果的なソリューションを提案する強力な基盤となりそうです。

脅威モデリングに関して

ここからはコース中で取り上げられていたトピックをいくつかピックアップし、参照可能な外部リソースとともに紹介します。

カードから得る気付き

脅威モデリングに示唆を与えるカードデッキがあります。コースでは、この方法についていくつかの例が紹介されていました。Elevation of Privilegeはすでに著名だと思いますので、OWASPのカードについてここではピックアップします。

OWASP Cornucopia

こちらはWebアプリケーション(主にeコマース)開発者向けに脅威の特定を支援するために設計されており、カードはそれぞれOWASP ASVSやMITREのCAPECなどの情報とリンクがされています。 owasp.org

Threat modeling as a Code

コードで脅威分析ができることによって、IDEの中で完結できるようになり、バージョン管理も容易になるため、継続的な更新も行いやすくなります。 ここではコースの中で言及されていた様々なツールの中で個人的にとっつきやすかったpyTMをピックアップします。

pyTM

以下公式の説明ごと機械翻訳して引用しています。

pytm は、脅威モデリングのための Python フレームワークです。

pytm フレームワークで説明されている要素とプロパティを使用して、Python でシステムを定義します。 定義に基づいて、pytmはデータフロー図(DFD)、シーケンス図を生成できます そして何よりも重要なのは、システムに対する脅威です。

出典: OWASP pytm | OWASP Foundation

レポート

コース中でいくつか外部レポートの紹介があり、資料の一部をピックアップして説明がされていました。 その中でも特に気になったAWS S3の脅威モデリングレポートを紹介します。

AWS S3の脅威モデリング

TrustOnCloud社がGithubに公開しているAWS S3に対する脅威モデリングのレポートです。かなり分量が多い(182 page)です。 github.com

また彼らはAzure StorageとGoogle BigQueryに関する脅威モデリングも公開してますので興味のある方はそちらもご参照ください。

Awesome Threat modeling リポジトリ

こちらはコースの中で取り上げられていたものではありませんが、 CTMPを提供してくれているHysn Technologies社のGitHub上に「Awsome Threat Modeling」というリポジトリがあり、脅威モデリングに関する情報をまとめてくれています。 すべてのリソースに目を通せていませんが、かなり広範な情報がまとめられているように見受けられます。 github.com

最後に

この記事を最後までお読みいただき、ありがとうございます。
OWASP TOP 10 2021の4位にランクされている「安全が確認されない不安な設計」について、以下のような説明がされています:

私たちは脅威のモデル化、セキュアなデザインパターン、リファレンスアーキテクチャなどをもっと活用する必要があります。
出典: A04 安全が確認されない不安な設計 - OWASP Top 10:2021

脅威モデリングを今後さらに活用し、安全な世界づくりに貢献していきます。