CI 事業部 セキュリティセクションの村上です。米国フィラデルフィアにて開催中の AWS re:Inforce 2025 に参加しています。初日の 6 月 16 日に参加したセッションのレポートをお届けします。

セッション概要

項目 内容
セッション名 SEC353: Threat modeling for generative AI applications
セッションタイプ Builder’s Session

生成 AI を使ったアプリのセキュリティ脅威を体系的に特定し、分析する方法が紹介されました。また、実際に手を動かして脅威を特定するまでの一部を体験することができました。

生成 AI におけるセキュリティの重要性

近年、生成 AI 技術の進化は目覚ましく、多くの組織がビジネスでその活用を進めています。Amazon Bedrock のような AWS サービスを利用することで、生成 AI アプリケーションの開発は手軽になりましたが、従来のアプリケーションとは異なるセキュリティ課題への対策が必要になっています。

例えば、プロンプトインジェクションは、悪意のある入力によって AI の振る舞いを不正に操作する攻撃手法です。
また、データポイズニングは、モデルの学習データに意図的に不正なデータを混入させることで、モデルの性能や信頼性を損なう可能性があります。

生成 AI アプリケーションにおいても、開発の初期段階からセキュリティを考慮し、潜在的な脅威を体系的に特定・分析する脅威モデリングが重要です。

脅威モデリングとは

脅威モデリングとは、システムに対する潜在的なセキュリティ脅威を体系的に特定・分析するための構造化されたアプローチです。
主に以下の4つの質問に答えるような形で進められます。

1. What are we working on? (何に取り組んでいるのか?):
分析対象のシステムを明確に理解することが目的です。システムのコンポーネント、データの流れ、信頼の境界(Trust Boundaries; 異なる信頼レベルをもつプロセスやコンポーネントの境界)を把握することで、脅威がどこで発生し得るかを特定します。この段階では、信頼の境界を含むデータフロー図を作成します。

2. What can go wrong? (何が問題になり得るか?):
攻撃者の視点に立ち、システムの機密性(Confidentiality)、完全性(Integrity)、可用性(Availability)に対するあらゆる潜在的な脅威を検討します。

3. What are we going to do about it? (それに対してどう対処するのか?):
特定された脅威に対してどのように対処するかを決定します。対策としては、コントロールによる緩和(Mitigating)、設計変更による回避(Avoiding)、リスクの移転(Transferring)、リスクの受容(Accepting)といった選択肢があります。

4. Did we do a good enough job? (十分な対応ができたか?):
対策の検証と継続的な改善を行います。

脅威モデリングを効果的に進めるには、対象システムの詳細な理解が不可欠です。また、システムに変更があった場合は再評価を行うなど、反復的なプロセスとして継続的に実施することが重要という説明がありました。
どのようなシステムにも適用可能ですが、特にユーザーインターフェースを持つシステム(user-facing なシステム)で有用とのことです。

誰が脅威モデリングを実施するかについては、明確な決まりはないものの、セキュリティアーキテクトやプロダクトオーナーなど、複数のロールの関係者が協力して進めることが推奨されていました。

Threat Composer と OWASP Top 10 LLM を活用した脅威特定

セッションの後半では、具体的な脅威特定の実習が行われました。まず、描きかけのデータフロー図を埋める作業を通じて、システム構成の理解を深めました。

上の図は脅威モデリングの対象となるチャットボットアプリの概要です。

作成途中のデータフロー図として配られたもの (紙)。一部抜粋です。

その後、OSS ツールである Threat Composer を使用し、生成 AI チャットアプリの脅威モデルを作成する作業の一部を行いました。ここでは、OWASP Top 10 for Large Language Model (LLM) Applications のような既知の脅威リストを参考に、脅威の洗い出しを行いました。
Threat Composer は、脅威をリストアップする際に、その「ソース」や「影響」などを具体的に想定するための例を表示してくれる機能があり、効率的に脅威モデリングを進める上で有用だと感じました。

* OWASP Top 10 for Large Language Model (LLM) Applications: https://owasp.org/www-project-top-10-for-large-language-model-applications/

おわりに

今回のセッションを通じて、脅威モデリングのプロセスと実践的なアプローチを学ぶことができました。
Threat Composer のようなツールを用いることで、脅威を特定する作業が構造化され、実施者による差異が小さくなる点や、構造化データとして記録できる点が有用だと感じました。

ただ、稼働中のシステムのデータフローに重きが置かれているという印象で、システム更新の運用や不定期の運用作業のリスクなど、考慮されにくい部分もあるかもしれません。
より広範囲を網羅的に見るようなリスクアセスメントなど、他の脅威やリスク評価の方法も含め、場合に応じて適切な方法を選択したいと思います。
また、生成 AI を使ったアプリのセキュリティ対策を行う際は、今回参照した OWASP Top 10 for Large Language Model などを活用したいと思います。