クラウド環境
不安定なアーキテクチャの連鎖:Axisプラグインの設計不備により、一部のAutodesk Revitユーザがサプライチェーンリスクにさらされる
トレンドマイクロは、Axis Communications社のAXIS Plugin for Autodesk Revit内で、同社のAzureストレージアカウントに紐づく認証情報が漏えいしていることを発見しました。当認証情報が悪用されていた場合、当ストレージ上のファイルが改ざんされ、Autodesk Revitユーザを狙ったソフトウェアサプライチェーン攻撃につながっていた恐れがあります。
- トレンドマイクロは、物理セキュリティやビデオ監視システム業界向けにネットワークカメラやアクセス制御、ネットワークオーディオ機器を提供するベンダ「Axis Communications社」のAzureストレージアカウントに紐づく認証情報が意図せず漏洩していることを発見しました。これらの認証情報は、Autodesk® Revit®での使用を目的として作成された顧客向けプラグインの署名付きDLL内で見つかりました。
- 当プラグインのMSIインストーラには、同社のストレージアカウントに紐づく認証情報(アクセスキーやSASトークンなど)が埋め込まれた.NET DLLが含まれていました。これらの認証情報が漏洩していたことで、同ベンダの所有する3つのストレージアカウントへの不正な読み取り・書き込みアクセスが可能な状態でした。これらのアカウントにはMSIインストーラやAutodesk Revitの3Dモデルに関わるファイル(拡張子:RFA、Revit Family Architecture)が格納されており、それらのファイルが改ざんされていた場合、不正ファイルが顧客へと頒布されていたおそれがあります。
- トレンドマイクロのZDI(Zero Day Initiative)は、Autodesk Revitにおけるリモートコード実行の脆弱性を複数発見しました。これらのリモートコード実行は、悪意あるRFAファイルをインポートすることで引き起こされた可能性があります。攻撃者は、細工されたRFAファイルをAxis Communications社のストレージアカウント上にアップロードすることでソフトウェアサプライチェーン攻撃を仕掛け、Autodesk Revitユーザで構成される同社の顧客に大規模に展開できた可能性があります。
- Axis Communications社は、同社のクラウドストレージへの不正アクセスや報告された脆弱性に関連した攻撃、セキュリティ侵害は発生していないことを確認しました。同社は問題解決に必要な措置を講じており、2025年3月にリリースされたバージョン(25.3.718)では報告された脆弱性がすべて修正されています。
2024年7月、トレンドマイクロは、広く普及しているBIM(Building Information Modeling)ソフトウェア「Autodesk® Revit®」のプラグインの一部として頒布された署名付きDLL内にAzureストレージアカウントに紐づく認証情報が埋め込まれていることを発見しました。これらのアカウントは、ネットワークビデオソリューションや監視技術を専門とするスウェーデンの多国籍企業「Axis Communications社」に属するもので、様々な商業・公共安全用途向けにIPカメラ、アクセス制御システム、オーディオ機器、映像解析ソフトウェアを提供しています。トレンドマイクロの運営する脆弱性発見コミュニティ「Zero Day Initiative™(ZDI)」は、これらの発見をZDI-24-1181としてAxis Communications社に報告し、その後数ヶ月にわたるやり取り(修正対応(パッチ)や追加報告など)が始まりました。2024年10月にはZDI-24-1328とZDI-24-1329を、2025年3月にはZDI-25-858を報告しています。
本ブログ記事では、当脆弱性の原因を概説し、最終的に修正に至ったプロセスを振り返ります。また、Autodesk Revitソフトウェア内で悪用可能なリモートコード実行の脆弱性にも触れ、こうしたシナリオにおける潜在的な影響範囲やリスクについて概説します。
AXISプラグイン内でクラウドアカウントの認証情報が漏洩
2024年7月8日、VirusTotalのルールの一つがAzureストレージのSAS(Shared Access Signature)トークンにおいて「AzureBlobRestAPI.dll」という名前のDLLを検出しました。当DLLには「Advanced Engineering Computation Aktiebolag社」に対して発行されたデジタル署名が施されていました(図1)。

当DLLには、Autodesk社のパートナー企業であり、AutoCADやAutodesk Revitのプラットフォームに関するコンサルティングを顧客に実施する「Advanced Engineering Computation Aktiebolag社」のデジタル署名が施されていました。署名付きDLL内で認証情報が漏洩している事例は稀なため、トレンドマイクロはさらなる深堀調査を実施しました。
トレンドマイクロは、次のクラス「AzureBlobRestAPI.DataTypes.Classes.Global」において、
AzureBlobRestAPI.DataTypes.Classes.Global
以下のプライベートメソッド内で、
internalSetEnvironment
2つのAzureストレージアカウント(「axisfiles」および「axiscontentfiles」)に関わるSASトークンとアクセスキー(Shared key)のペアを平文で発見しました。これらの情報については、図2をご参照ください。

これらの認証情報は、本調査時点で有効(使用可能)でした。このため、AXISプラグイン利用者がそれらの認証情報を悪用していた場合、2つのストレージアカウントを制御できる状態にありました(例:設定変更やストレージアカウント内のアーティファクトへの読み取り/書き込みアクセスなど)。トレンドマイクロが影響被害を調査・評価した際、それらのストレージアカウントには以下のコンテンツが含まれていました。
1. AXIS Plugin for Autodesk RevitのMSIインストーラ
「installs」という名前のコンテナ内でいくつかのMSIインストーラが見つかりました(図5)。これらはAutodesk Revitソフトウェアで使用されるプラグイン「AXIS Plugin for Autodesk Revit」のインストーラと判明しました。
Autodesk Revitは、建築設計や構造工学、その他の建築デザインに関わる様々な分野で使用される3Dモデリングソフトウェアです。AXISプラグインを使用することで、同製品利用者はAxis Communications社のプロダクトモデルを閲覧し、モデリングに関わるデータをダウンロードしてRevitの建築モデルに組み込むことができます。当プラグインはAxis製品利用者のみに提供されることが意図されていました。


トレンドマイクロは、AXISプラグインのバージョン25.3.708において認証情報を含むDLLを発見しました。当バージョンのAXISプラグインをインストールした全ユーザのシステム上に認証情報を含むDLLが存在していたことになります(図5に示すAzureストレージアカウント「axisfiles」内のMSIインストーラに基づく)。



ZDI報告から修正までの対応経緯
これらの認証情報により2つのストレージアカウントへの予期せぬアクセスが許可されるおそれがあったため、トレンドマイクロは即座に当調査結果をZDI-24-1181としてAxis Communications社に報告しました。これを機に、Axis Communications社との一連のやり取りが始まり、最終的には問題解決に至りました。
同ベンダが1回目に実施した修正対応
修正対応として同ベンダは、AXIS Plugin for Autodesk Revitの新バージョン「25.3.710」をリリースしました。当バージョンでは、AXISプラグイン内の認証情報が難読化されていました(Eazfuscatorを用いたと推測、図8)。しかし、当修正対応は十分とは言えず、de4dotなどの一般公開されたツールを使って、認証情報の難読化が解除される可能が依然としてありました。図9でトレンドマイクロは、難読化が解除できることを実証しています。


さらに、MSIインストーラによって作成されたDLL(AxisAddin.v25.3.dll)内で、ストレージアカウント「axisapphelpfiles」に紐づく接続文字列が見つかりました(図10)。当接続文字列には通常、認証情報の詳細、エンドポイント、追加の構成パラメータが含まれています。

当DLLは、Autodesk Revit上にAXISプラグインが読み込まれた際にユーザ・インターフェイス内で用いられます。当ストレージアカウントには、AXISプラグインの「ヘルプ」ページで用いられるHTMLページや静的アセットで構成されたWebリソースが含まれていました(図11)。

1回目の修正対応により、ストレージアカウント「axisfiles」の認証情報は無効化されました。ところが、ストレージアカウント「axiscontentfiles」のアクセスキーは無効化されていませんでした。これは、新たにリリースされたバージョンがZDI-24-1181で報告された問題を完全に解決していないことを意味します。このため、トレンドマイクロは、新たな問題に関する報告書を提出しました。
難読化は、平文の明確なパターンを探す静的スキャナによる検出を回避する際に役立つことが多々あります。ただし、動機付けられた攻撃者が難読化を解除して認証情報を取得してしまうおそれがあります。このためトレンドマイクロは、同ベンダに対し、難読化を施すだけでは問題が解決できないことを助言しました。
トレンドマイクロは代替策として、同ベンダが最小権限を付与したアクセスキーのペア(例:読み取り専用のSASトークン)を採用し、許可された製品利用者のみがRFAファイル、画像、プラグインなどにアクセスできるようにする必要があると考えました。エンドユーザが同ベンダのストレージアカウント上のファイルを改ざんしたり、不正アクセス/保存のためにベンダのストレージを悪用したりできないよう制限されている必要がありますが、今回発見された認証情報を用いてアクセスした際には、これらすべてが実行可能でした。このため、トレンドマイクロは、当調査結果を「ZDI-24-1328」および「ZDI-24-1329」として報告し、上記の推奨事項を提示しました。
同ベンダが2回目に実施した修正対応
新たな報告に対し、同ベンダは、AXISプラグインの新バージョン(25.3.711)をリリースしました。同ベンダは、ストレージアカウントに紐づくアクセスキーを完全に削除し、「書き込み」権限のない難読化されたSASトークンを新たに作成しました。これは、1回目の修正対応に比べて大幅に改善されたものでした。

ところが、2回目の修正対応で問題が解決されたように見えたものの、バージョン25.3.711のSASトークンは依然としてストレージアカウントのコンテナ内に保存されたBLOB(Binary Large OBject)データの一覧表示や読み取りに使用可能なことが判明しました。「installs」という名前のBLOBコンテナには、AXIS Plugin for Autodesk RevitのMSIインストーラの前バージョン(AXISプラグインのバージョン25.3.710のMSIインストーラなど)が格納されていました。当インストーラは、一回目に修正対応されたバージョン(25.3.711)のもので、ストレージアカウント「axiscontentfiles」に紐づく有効かつローテーションされていない認証情報を含んでいました。これは、トレンドマイクロがZDI-24-1328として報告したものです。
このため、バージョン25.3.711以降で導入された必要最低限の権限の付与されたSASトークンを使用したとしても、攻撃者はAXISプラグインの前バージョン(25.3.710)から認証情報を取得し、ストレージアカウントに再びアクセスできる状態でした。トレンドマイクロは、この発見をZDI-25-858として報告した結果、同ベンダは、当ストレージアカウントのアクセスキーを無効化させました。
これらの同ベンダとの一連のやり取りは、サードパーティプロバイダのクラウドサービスを利用する成熟した企業でさえ、クラウド認証情報の設定不備や漏洩に起因する深刻な影響被害について認識していない場合があることを示しています。
Axis Communications社は、AXIS Plugin for Autodesk Revitに対して報告された上記の問題がすべて修正されたことを確認しました。2025年3月にリリースされたバージョン(25.3.718)には、上記の問題をすべて解決するパッチが含まれています。さらに脆弱なバージョン(25.3.710)は、同ベンダのAzureストレージから削除され、コンテンツのアップロードやダウンロードに使用できなくなりました。Axis製品利用者がこれらの機能を利用するためには、AXISプラグインをバージョン25.3.711以降にアップグレードする必要があります。要約すると、バージョン25.3.711以降では、上記の問題がすべて軽減され、現行バージョンに至るまでのアップデートには、軽微かつ無関係な変更内容のみが含まれています。
同ベンダは、影響を受けたパートナーや製品利用者への通知も積極的に行っています。また、AXIS Plugin for Autodesk Revitは特定のパートナーにのみ提供され、一般ユーザは利用できない点についても明記しています。
Autodesk Revitのリモートコード実行の脆弱性悪用によるサプライチェーン侵害の可能性
上記の調査結果が及ぼす影響被害を評価する過程で、同ベンダのストレージアカウントからファイルを頒布する仕組みが存在していた場合、攻撃者はAXISプラグインに偽装させた悪意あるMSIインストーラを頒布していた可能性があります。さらにAXISプラグインの使用時に開封されるHTMLファイルを改ざんしていた可能性も考えられます。
Autodesk RevitのRFAファイルについては、依然として追及すべき次の疑問が残っていました。「同ベンダのストレージアカウント内に保存されたRFAファイルを改ざんすることで、攻撃者はどの程度の不正活動を実行できたのでしょう?」

ストレージアカウント内に保存されたRFAファイルは、Autodesk Revit内でエンドユーザによって使用されます。こうしたファイル形式に内在する脆弱性は、潜在的な攻撃者による任意のコード実行をしばしば可能にします。トレンドマイクロのZDIは、Autodesk Revit内のRFAパーサー(構文解析器)を調査した結果、任意のコード実行を可能にする複数の脆弱性を発見しました。詳細な調査結果はZDIのブログ記事をご参照ください。
サプライチェーン攻撃の被害
本事例のように、顧客向けインフラ内に認証情報を漏洩させた場合、クラウドストレージにアクセスされるだけでなく、多段階のソフトウェアサプライチェーン攻撃の起点として悪用されていたおそれがあります。こうした事例は今回が初めてではありません。本ブログでは、類似した事例として「過大な権限を持つSASトークンがPC Managerのサプライチェーンを侵害するリスク:脆弱性「ZDI-23-1527」と「ZDI-23-1528」」に関する記事を2025年5月7日に公開しました。漏洩したトークンが悪用された場合、PC Managerを頒布する複数の仕組み(「WinGetパッケージ」、「公式サブドメイン」、「Microsoft社の運用するURL短縮サービス」)が完全に制御されていた可能性がありました。
結論として、これらの事例は特定のベンダや脆弱性に限定されるものではありません。これらの事例は、ソフトウェアサプライチェーンにおいて、信頼性を積極的に高めつつ、自組織の仕組みを検証し、継続的に見直す必要があることを強く認識させてくれます。たった一つの設定不備(プラグインへの保護対策、認証情報の取り扱い方、ファイルの外部公開方法など)が連鎖的な影響被害を及ぼすおそれがあります。企業組織は、攻撃者やインシデントによって再認識させられる前に、サプライチェーン攻撃に対するセキュリティ要件を把握し、それらを満たす必要があります。
まとめと推奨事項
本事例における情報漏洩は、信頼されたサードパーティプロバイダに起因する予期せぬサイバーリスクを浮き彫りにしています。顧客向けプラグイン(AXIS Plugin for Autodesk Revit)内の署名付きDLLには、Azureストレージアカウントに紐づく認証情報が平文で埋め込まれていました。これらの認証情報を悪用してストレージアカウントにアクセスされていた場合、MSIインストーラやRFAファイルへの読み取り/書き込みアクセスが実行された後、別の利用者に頒布されていたおそれがあります。
さらにAutodesk Revitにおける脆弱性は、顧客がAXISプラグインを使ってAxis Communications社のストレージアカウントからRFAファイルをダウンロードすることで、任意のコード実行につながっていた可能性がありました。これらの問題は、セキュリティ上の弱点が重なることで、完全なソフトウェアサプライチェーン攻撃が可能であったことを示しています。本事例は、以下の重要な点を再確認させます。
- 有効なデジタル署名が付与されたDLLであっても一概に安全とは言えません。信頼性の評価指標は、開発プロセス全体を通じた徹底的な内部レビューと静的解析によって裏付けされている必要があります。
- 高い権限を持つアカウントの認証情報が漏洩した場合、サイバーリスクを増幅させます。最小権限の原則に従うことで、セキュリティ侵害が生じた場合でも影響範囲を大幅に制限できます。
- 本事例の検証結果が証明したように、広く信頼されているクラウドリソースが実現する柔軟な頒布手段の仕組みとファイル形式を組み合わせて攻撃経路として悪用された場合、その影響力は格段に増大します。
本事例のように、顧客向けインフラ内に認証情報を漏洩させた場合、クラウドストレージにアクセスされるだけでなく、多段階のソフトウェアサプライチェーン攻撃の起点として悪用されるおそれがあります。こうした事例は今回が初めてではありません。こうした事例は今回が初めてではありません。本ブログでは、類似した事例として「過大な権限を持つSASトークンがPC Managerのサプライチェーンを侵害するリスク:脆弱性「ZDI-23-1527」と「ZDI-23-1528」」に関する記事を2025年5月7日に公開しました。漏洩したトークンが悪用された場合、PC Managerを頒布する複数の仕組み(「WinGetパッケージ」、「公式サブドメイン」、「Microsoft社の運用するURL短縮サービス」)が完全に制御されていた可能性がありました。
結論として、これらの事例は特定のベンダや脆弱性に限定されるものではありません。これらの事例は、ソフトウェアサプライチェーンにおいて、信頼性を積極的に高めつつ、自組織の仕組みを検証し、継続的に見直す必要があることを強く認識させてくれます。プラグインの保護対策、認証情報の取り扱い、ファイルの外部公開におけるたった一つの設定不備が連鎖的な影響被害を及ぼすおそれがあります。企業組織は、攻撃者やインシデントによって再認識させられる前に、サプライチェーン攻撃に対するセキュリティ要件を把握し、それらを満たす必要があります。
同様の事例を未然に防ぐために推奨されるプロアクティブな対策
- CI/CD(継続的インテグレーション、継続的デリバリ―/デプロイメント)パイプラインにコードスキャンソリューション(例:Trend Vision One™ Code SecurityのArtifact Scanner機能)を統合しましょう。これにより、リリース前に漏洩している認証情報を検出して修正できるようになります。
- 攻撃対象領域(アタックサーフェス)を最小化させるために、ソフトウェアを頒布するシステムと外部公開資産を分離させて運用・管理しましょう。
- ファイルフォーマットパーサに対し、定期的な脆弱性診断とコードレビューを実施する多層防御戦略を適用しましょう。
既に認証情報が外部に漏洩した場合の事後対処方法
- 既存および新規ソフトウェアリリースを継続的にスキャンし、埋め込まれた認証情報が意図せず漏洩しないようにしましょう。
- 一般公開する前に、すべてのリリース予定ソフトウェアをサンドボックス環境やQA/テスト環境で徹底的に検証し、セキュリティ上の潜在的な問題を特定しましょう。
トレンドマイクロのソリューション
Trend Vision One™のクラウドリスク管理は、750項目以上のベストプラクティスに基づく自動チェック機能を通じて、クラウド環境の安全性を継続的に支援する保護ツールです。Trend Vision Oneをご利用のお客様は、Azureストレージアカウントに対する以下のルールをご活用いただけます。
- 過剰なアクセスポリシーが許可・保存されていないどうかを確認する(Check for Overly Permissive Stored Access Policies)(StorageAccounts-015)
- AzureストレージのSASトークンに過剰なアクセスポリシーが適用されていないことをご確認ください。
- HTTPS経由でのみSASトークンを許可する(Allow Shared Access Signature Tokens Over HTTPS Only)(StorageAccounts-005)
- SASトークンがHTTPSプロトコル経由でのみ許可されていることをご確認ください。
- 共有キーによる承認を無効にする(Disable Shared Key Authorization)(StorageAccounts-028)
- 「ストレージアカウントのキーアクセスを許可する」の設定が無効化され、共有キーによる承認が防止されていることをご確認ください。
- 既定でMicrosoft Entra認可を有効にする(Enable Microsoft Entra Authorization By Default)(StorageAccounts-030)
- Azureストレージアカウントにおいて「Azure portalでMicrosoft Entra認可を既定にする」の設定が有効になっていることをご確認ください。
- Azureストレージで安全な転送を有効にする(Enable Secure Transfer in Azure Storage)(StorageAccounts-001)
- Azureストレージアカウントの構成内で「セキュア転送が必須」のセキュリティ機能が有効になっていることをご確認ください。
- ストレージアカウントのアクセスキーを定期的に再生成する(Regenerate Storage Account Access Keys Periodically)(StorageAccounts-002)
- ストレージアカウントのセキュリティを維持するために、アクセスキーを定期的に再生成してください。
- AzureストレージのBlobサービスによるログ記録を有効にする(Enable Logging for Azure Storage Blob Service)(StorageAccounts-019)
- AzureストレージのBlobサービスでストレージのログ記録が有効になっていることをご確認ください。
- 外部からアクセス可能なWebコンテナを確認する(Check for Publicly Accessible Web Containers)(StorageAccounts-016)
- 静的Webサイトを設置するために作成されたAzureストレージコンテナが、外部からアクセス可能になっていないことをご確認ください。
- Blobコンテナを持つストレージアカウントへの匿名アクセスを無効にする(Disable Anonymous Access to Storage Accounts with Blob Containers)(StorageAccounts-022)
- 外部からのアクセスを許可するACL(アクセス制御リスト)の構成を上書きするために、ストレージアカウントレベルでBlobデータへの匿名アクセスが無効になっていることをご確認ください。
- Blobデータの不変ストレージを有効にする(Enable Immutable Blob Storage)(StorageAccounts-012)
- Azureストレージの重要なBlobデータが誤って削除または変更されないように保護されていることをご確認ください。
- AzureストレージのBlobの論理的な削除を有効にする(Enable Soft Delete for Azure Blob Storage)(StorageAccounts-010)
- Microsoft AzureストレージのBlobオブジェクトに対して論理的な削除機能が有効になっていることをご確認ください。
- 静的Webサイトの構成を持つストレージアカウントを確認する(Review Storage Accounts with Static Website Configuration)(StorageAccounts-017)
- 静的Webサイトの構成を持つAzureストレージアカウントの設定内容を定期的にご確認ください(静的コンテンツを設置するストレージアカウントを指定する必要があります)。
- ストレージアカウントに対するパブリックネットワークアクセスを無効にする(Disable Public Network Access to Storage Accounts)(StorageAccounts-029)
- 不正アクセスを防止しセキュリティを強化するため、Microsoft Azureストレージアカウントに対するパブリックネットワークアクセスが無効になっていることをご確認ください。
- Blobコンテナへの匿名アクセスを無効にする(Disable Anonymous Access to Blob Containers)(StorageAccounts-006)Azureストレージアカウント内でBlob コンテナへの匿名アクセスが無効になっていることをご確認ください。
参考記事:
A Cascade of Insecure Architectures: Axis Plugin Design Flaw Expose Select Autodesk Revit Users to Supply Chain Risk
By: Nitesh Surana
翻訳:益見 和宏(Platform Marketing, Trend Micro™ Research)