ソフトウェアのセキュリティを確保するには、自動化されたプロセスと手動によるプロセスを組み合わせる必要があり、脅威モデリングはその重要な一部です。
組織は、新しい手法を導入して顧客に価値をもたらしたり、より速くより効率的に仕事をするために、ソフトウェアに依存しています。しかし、そのソフトウェアが安全に開発・展開されていなければ、事業が危険にさらされることになります。ソフトウェアのリスクが事業リスクである場合、優先順位を付け、積極的に管理する必要があります。脅威モデリングは、攻撃者のように考えることを促進し、組織がセキュリティを後回しにするのではなく、初めからソフトウェアにセキュリティの考慮事項を組み込むことを可能にします。
脅威モデリングは、以下を行う構造化されたプロセスです。
脅威モデリングは、設計ビューを脅威エージェントと比較することでソフトウェア設計を分析し、セキュリティ上の弱点を特定します。ソフトウェア設計と連携することで、コードを徹底的に調べることなく分析できます。
主要なアーキテクチャ要素およびシステム資産を特定し、それらに関連するリスクを文書化することによって、脅威モデリングから十分な詳細情報を取得し、リスクに関する情報に基づいたビジネス上の意思決定を行うことができます。
アーキテクチャの設計段階で脅威モデリングを実行し、セキュリティ対策を追加したり、より安全な設計に変更したりすることで、セキュリティの問題を早期に回避または軽減することができます。アーキテクチャの設計時にこれらの問題に対処することで、後の開発プロセスで対処した場合に発生するコストの上昇を防ぐことができます。
アーキテクチャの設計段階での使用に加えて、脅威モデリングは、ソフトウェア開発ライフサイクル(SDLC)の他の段階(セキュリティ要件の特定、セキュリティ・テストの計画、セキュア・コード・レビュー、およびペネトレーション・テストなど)でも非常に有用です。脅威モデリングはこれらのアクティビティに情報を提供し、攻撃者がシステムに危害を与えるために使用する方法に関して、非常に有益な洞察を提供します。
システム・アーキテクチャ、事業の状況、成果物(機能仕様書やユーザー・ドキュメントなど)の徹底した分析を行うことにより、脅威分析者は、セキュリティに関連するかどうかにかかわらず、システムの重要な側面を発見し、組織内にまだ存在しないかもしれない理解を総合的に扱うことができます。脅威モデルを構成する6つの主要なアクティビティがあります。
最初のステップは、範囲と深さの定義です。組織内の主要なステークホルダーは、脅威モデリングの専門家と共に、どのコンポーネントをレビューに含めるべきかを示すパラメータと境界を設定する必要があります。この段階では、評価の全体的な作業と予測されるタイムラインの理解が得られます。
第2段階では、脅威モデリング・チームが開発チームから提供された成果物を読み、見直します。この文書には、アーキテクチャ記述、ソフトウェア設計文書、API仕様、エンドユーザー文書、ソースコード、および関連する成果物が含まれますが、これらに制限されるわけではありません。この予備的分析は、脅威モデルでの今後のアクティビティの基礎を形成するプラットフォームのリスクの高い領域を特定するために使用されます。この段階の一環として、チームはアプリケーションチームと事業チームの主要メンバーとの面談を行います。この面談により、脅威分析者は、アプリケーションの設計および実装の詳細に関する重要な知識を得ることができます。
収集段階の後、脅威分析者は、範囲内、隣接、または接続されるすべてのコンポーネント(範囲外も含まれる)、接続およびそのプロトコルの簡略図を作成します。システム構造のブロック図を作成することで、システムを視覚的にしっかりと理解することができます。
コンポーネント図が完成したら、第4段階では、脅威分析者が資産、対策、脅威エージェント、信頼ゾーンを追加し、完全な脅威モデル図を作成します。この図には、データ、データフロー、プラットフォーム、および運用上のセキュリティに焦点を当て、システムに対する現実的な脅威のすべてをリストする必要があります。また、セキュリティー侵害を可能にするような弱点や制御の欠如を特定する必要もあります。脅威が特定されたら、脅威分析者は、各脅威の位置にマークを受ける必要があります。
モデルが完成したら、第5段階では、脅威分析者がデータフローと接続をコンポーネントごとに見直し、現実的な脅威のシナリオをすべてリストアップします。トレーサビリティ・マトリックスの作成により、制御の欠如や弱点を記録し、脅威をランク付けして軽減する計画を定義することができます。
トレーサビリティ・マトリックスを作成するためには、脅威エージェントを考慮に入れ、制御経路をたどる必要があります。たとえば、制御を通ることなく資産に到達できる場合は、リスクまたは設計の欠陥がある可能性があります。制御を通ることなく資産に到達できる場合、制御によって脅威エージェントを阻止するかどうか、脅威エージェントがセキュリティ・コントロールをすり抜ける方法を持っているかどうかを検討する必要があります。ここでは、実際の攻撃に対する知識が重要になります。
脅威モデリングのプロセスは単純ですが、精通するには、時間と繰り返しが必要です。徹底的なトレーサビリティ・マトリックスを作成し、完成させるには、開発者のような考え方ではなく攻撃者のような考え方が必要です。そのためには、脅威を以下のようなカテゴリに分類するのも1つの方法です。
これらの脅威エージェントのカテゴリについて熟考し、設計を通して追跡することで制御をすり抜ける可能性のある場所を見つけ、トレーサビリティ・マトリックスを構築して、SDLCの要件、設計、テスト段階を通じた脅威情報の追跡を適切に行うことができます。
脅威モデリングの最終段階は、すべてのモデル、システムの説明、潜在的なリスク、実際のリスク、およびそれらに関連する発生確率と影響を文書化することです。シノプシスが提供するコンサルティング・サービスでは、この情報をPDFレポートとして提供します。
シノプシスは、お客様のニーズに合わせた脅威モデリングのサービスを提供しています。リスク・プロファイルと許容範囲は組織によって異なるため、お客様のニーズと予算に応じたアプローチをご用意します。シノプシスの総合的なアプローチは次の2つの基本ステップで構成されています。
脅威モデリングは、プロセスのどの段階でも有効ですが、ソフトウェア開発プロセスの初期段階に脅威モデリング・サービスを取り入れることで、アプリケーションにセキュリティを組み込むことができます。これは開発中または現在稼働中のアプリケーションに対する追加のセキュリティ・テストの必要性を特定するうえで役立ちます。