サイバー脅威
サプライチェーン保護に極めて重要なミドルウェア技術「DDS」を理解する
2021年、Trend Micro Research、TXOne、ADLINK、Alias Robotics、ZDIの研究者チームは、このDDS規格とその実装状況をセキュリティの観点から調査しました。
Data Distribution Service(DDS)とは、産業システムなどで広く使用が拡大しているプロトコルであり、サプライチェーン保護のためにも極めて重要な技術です。2021年、Trend Micro Research、TXOne、ADLINK、Alias Robotics、ZDIの研究者チームは、このDDS規格とその実装状況をセキュリティの観点から調査しました。この調査結果の全容は、2022年4月のS4X22カンファレンスで発表されました。
広く普及し、非常に重要でありながら、知名度がきわめて低いミドルウェアテクノロジを表彰する賞があったとしたら、Data Distribution Service(DDS)規格は間違いなくこの賞を獲得するでしょう。私たちが今回の調査結果についてBlack Hat Europe Briefingsで初めて発表したとき、聴衆は、DDSが10年ほど前から鉄道、自律走行車、空港、宇宙船、画像診断装置、手荷物処理システム、産業用ロボット、戦車、軍艦で活用されており、このテクノロジの導入が着実に増加していることをまったく認識していなかったようで、当惑しているようにさえ見受けられました。しかし、DDSは産業システムやソフトウェアに広く使用されていることからサプライチェーン保護を考える上でも極めて重要な技術的要素なのです。
トレンドマイクロによるDDSの調査
このテクノロジが広く普及していることを踏まえ、トレンドマイクロはさらに調査を続けたところ、セキュリティ上の複数の脆弱性を発見しました。この発見は結果的に、6つのもっとも広く使われているDDSを実装されたシステムにおける13の新たな脆弱性(CVE ID)の発見へとつながりました。これには、標準仕様における1つの脆弱性と、DDSソフトウェアエコシステム(完全にオープンな実働システムを含む)におけるその他の展開上の問題が含まれます。これらの脆弱性は、トレンドマイクロが報告した後、ベンダによりパッチを適用するなどして軽減されています。
DDSサービスの露出状況について測定したところ、1カ月の間に34カ国で643の異なる公開DDSサービスが見つかり、インターネットサービスプロバイダ(ISP)89社を通じて100の組織に影響を及ぼしていることがわかりました。ベンダ7社(うち1社については当初は不明)が提供するDDSシステムから、プライベートIPアドレス(内部ネットワークアーキテクチャの詳細を示す)202個と、秘密であるはずのURL7つが取得可能な状態でした。これらのIPアドレスの一部は、パッチが適用されていないか、古いDDSが実装されていることを露呈しています。つまりそれらは、私たちが11月に発見し、公開した脆弱性の一部の影響を受けているDDSシステムです。
今回の調査は、Trend Micro ResearchとTXOne Networks、Trend Micro Zero Day Initiative(ZDI)に加え、ADLINK Labs(DDSの発明者にして中核的開発者の1人であるErik Boassonが所属)、Alias Robotics(ロボティクスアーキテクトのVíctor Mayoral Vilchesを含む)との共同で実施されました。この調査では、DDSの仕様と、認定ベンダによって管理されている、全世界に数百万の導入実績がある6つのDDSが実装されたシステムを分析しました。調査を進める中で、DDSの主要ユーザやシステムインテグレータにインタビューし、調査結果のフィードバックと、それぞれの分野でのイノベーションにおけるDDSの重要性に関する意見を収集しました。
DDSのセキュリティを考える
DDSが重要なテクノロジであるにもかかわらずほとんど注目されていないことと、この調査の結果から、私たちは、他の研究者やDDSユーザまたは実装者に、DDSとそのエコシステムにおけるセキュリティ意識の向上を促進することを推奨しています。DDSを使用している重要な分野でこれらの脆弱性が悪用された場合、次のような影響が生じる可能性があります(ATT&CK ICSフレームワークに関連する用語体系を含む)。
分析に基づいて、次のような軽減策を推奨します。
この調査結果は全世界に適用することができ、全ての業種の数十億ものデバイスに影響します。具体的には、自律走行、インテリジェントな公共交通、通信、クラウド、医療、消費者・産業用ロボット、防衛システムなどの分野で利用されるアプリケーションが含まれます。
調査と、DDSの主要分野への影響の実証結果に基づいて、トレンドマイクロはDDSおよびその他の重要な関連テクノロジの継続的なセキュリティテストを提唱しています。また、安全なDDS統合に適用すべき、行動につながる推奨事項も提言しています。またDDSのセキュリティの重要性について認識を高めるため、2つの事例を紹介しています。その事例は、適切なセキュリティ対策を施さなかった場合に、攻撃者がネットワークトラフィックを増幅させることで、どのようにリアルタイム性や決定性に関する問題を発生させたり、自律走行車を制御不能にして物体と衝突させるか、を解説しています。
DDSはほとんど認知されていないにもかかわらず広く普及していることから、トレンドマイクロは対象分野の専門家に対して、今回の概念実証を再利用して認識の向上に努め、意思決定者がDDSの現状または今後の展開の保護に適切なリソースを割り当てるよう働きかけてもらいたいと考えています。
DDSとは何か、なぜ重要なのか
DDSは、リアルタイム**のパブリッシュ/サブスクライブのミドルウェアアプリケーションと組み込みシステムに使用されるマシン間テクノロジです。この規格は、Object Management Group(OMG)によって管理されており、センサ、コントローラ、アクチュエータ間の信頼性の高い通信レイヤの実装を目的としてあらゆるクラスの重要なアプリケーションで使用されています。
1つの例としては、自律走行車の人工知能(AI)が「左折」コマンドを発行する必要がある場合、自動車の「頭脳」である電子制御ユニット(ECU)からステアリングのサーボモータにコマンドを運ぶためにDDSが使用されます。同様の動作は、速度センサがモータからの情報をECUに送る場合にも発生します。私たちはスタータキットのECUでDDSが適切に動作することを確認しました。つまりこのハードウェアおよびソフトウェアスタックに基づく自律走行車はすべて、この調査で見つかった脆弱性の影響を受けます。
もう1つの例は、航空交通管制塔の空港オペレータが滑走路の照明を制御する場合です。現代の空港では、このような特定の信号がソフトウェアを介して送信され、適切なタイミングでの確実なコマンドの送信にDDSが利用されています。平均的な空港の滑走路には数千もの制御ポイントがあります。世界には10,000以上の空港があり(44,000まで増加することが見込まれています)、各空港に平均して2.5本の滑走路(最大36本)があることを踏まえると、このうちDDSを使用している空港が(控えめに見積もって)わずか1%だったとしても、空港だけでおよそ250,000(最大110万)のDDSノードが存在することになります。
DDSはソフトウェアサプライチェーンのまさに開始点ですが、図1で示したようにそのセキュリティは見失われがちであるようです。このためDDSは、攻撃や侵害によって大きな衝撃を与えようとする攻撃者の格好の標的となり得ます。2020年から2021年にかけて、ソフトウェア業界における攻撃の66%がサプライヤのソフトウェアを標的とするものでした。調査の中で、私たちは、DDSの独自の実装をホストする公開されたソースコードリポジトリに遭遇しました。これは、攻撃者がソースコードを不正プログラムに感染させることができることを示しています(T0873、T0839)。
DDSテクノロジは、自律走行、航空交通管制、クラウドおよび仮想化、最新医療をはじめ、さまざまな分野で利用されています。とりわけ、DDSは以下の機関や組織の一部で活用されています。
- 米国航空宇宙局(NASA)のケネディ宇宙センター
- Siemens AGの風力発電所
- VolkswagenとBoschの自動バレーパーキングシステム
- Nav CanadaとEuropean ATM Performance CoFlightの航空交通管制
DDSは、スマートグリッドアプリケーションに使用されるOpen field Message Bus(OpenFMB)、Adaptive AUTOSAR、医療機器プラグアンドプレイ(MD PnP)相互運用性プログラム、一般車両アーキテクチャ(GVA)、NATO GVA(NGVA)などの他の業界標準の基盤となっています。ロボットやオートメーションのデファクトスタンダードのオペレーティングシステム(OS)であるRobot Operating System 2(ROS 2)では、DDSがデフォルトのミドルウェアとして使用されています。注目すべきこととして、NASAが近年取り組んでいるSpace ROS構想では、ROS 2の運用が宇宙にまで広げられます。またDDSは、主にマシンやデータセンタ間のデータ交換を目的として、システムの仮想化やクラウドコンピューティングアプリケーションにも活用されています。
注:DDSの仕様において、「リアルタイム」という言葉は、一般的、非厳格的な意味(ハードリアルタイム)で使用されていると認識しています。タイミングの保証(ハードリアルタイム、ファームリアルタイム、またはソフトリアルタイム)についての実際の議論は、確認したどのドキュメントにも記載されていないため、DDSが対象としているのは、最良の状態でもソフトリアルタイムのリモート通信であり、ファームリアルタイムやハードリアルタイムのやり取りは他のテクノロジに任されていると結論付けています。
DDSのセキュリティリスク例:標準仕様における脆弱性
他のエンジニアリング製品と同様に、DDSにもそのコードベースとエコシステム(開発ツール、クラウドバックエンド、Dockerイメージ、統合ライブラリなど)に脆弱性があります。特異な所見の1つとして、輻輳の脆弱性(CVE-2021-38487、CVE-2021-38429)があります。この脆弱性により、攻撃者は1つのDDSディスカバリパケットになりすますことで、ネットワークフラッディング攻撃を引き起こすことができます。この侵害の結果、サービスの不具合が発生したり、通信のリアルタイム性が損なわれたりします。興味深いことに、この輻輳の脆弱性は、DDS標準の仕様を読むだけで明らかです。攻撃者に悪用される可能性があるコーナーケースを回避するための適切なチェックを義務付けていないからです。私たちは、変更を加えていない同じエクスプロイトが複数の製品に対して機能することを確認し、これが実装固有の問題ではないことを確かめました。
DDSのセキュリティリスク例:インターネットに露出した開発環境
公開された継続的インテグレーション/継続的デプロイメント(CI/CD)システムをShodanから監視しているときに、私たちは、あるDDS開発企業が、自社のカスタムCI/CD環境をデフォルトの認証情報でインターネットに完全に公開していることを発見しました。脆弱性ブローカやCERT(Computer Emergency Readiness Team)を介して連絡するなどして、このベンダに連絡を取ろうと何度も試みましたが応答はありませんでした。幸い、公開されたシステムは数カ月後、適切にロックダウンされていました。
もしも公開されたままになっていたら、彼らの最も貴重な知的財産であるソースコードが攻撃者に削除されたり、盗まれたり、トロイの木馬化されたりしていた可能性があります。
DDSのセキュリティリスクから起こりうる影響
攻撃者がこれらのセキュリティリスクを発見し、脆弱性に対して適切に動作するエクスプロイトを使用した場合、ネットワークDoS攻撃によって標的のデバイスの正常な動作が阻害される、攻撃の侵入と横展開(ラテラルムーブメント)が行われる、場合によってはコンピュータの制御が奪われる、などの影響が発生する可能性があります。DDSはミッションクリティカルなアプリケーションで使用されるため、2020年と2021年に観測されたように、シンプルなDoS攻撃機能でさえも、強力な脅迫型攻撃のための有効な手段になります。私たちはDDSエンドポイントを公開している固有のIPを643個見つけました。本来DDSはローカルネットワークに展開すべきものであることを考えると、643は相当な数です。さらに、これらのエンドポイントの一部は、プライベートIPなどの内部ネットワーク構造に関する情報を漏えいしています。
これらのエンドポイントの特性やデータについて、私たちは、背後で動作しているDDS製品バージョンに関する仮説を立てることができました。4つを除いたすべてに、私たちが挙げたCVEの少なくとも1つに対する脆弱性があると言えます(CVEの表とバージョン列を比較してください)。
前述した輻輳の脆弱性は、仕様とほとんどの実装の両方に影響しています。Eclipse CycloneDDSとGurumDDSには影響していません。これは、これらのDDSに軽減策が組み込まれていることを意味します(それでも、DoS攻撃の影響の受けやすさは依然としてあります)。さらに、ほとんどの実装が少なくとも1つの脆弱性の影響を受けています。悪用(T1210)される可能性は、実行時環境によって異なると考えられます。とりわけ、従来のエンドポイントでは通常利用可能なスタックカナリアやアドレス空間配置のランダム化(ASLR)などの保護機能は、組み込みシステムでは常に実装されているとは限りません。
これらの脆弱性が保護されずに放置された場合に、侵害や攻撃がもたらす結果の一部を表に示しています。制御性の喪失(T0827)、安全性の喪失(T0880)、ブルートフォース攻撃(T0806)によるサービス妨害(T0814)など、対応するMITRE ATT&CK ICSの用語体系も併せて記載しています。さらに一部の実装は、スタックベースまたはヒープベースのオーバーフローの脆弱性の影響も受けています。この脆弱性を悪用することで、リモートサービスの悪用(T0866、T0886)を通じて初期アクセス(TA0108)の達成が促進されます。いずれにしても、広く使用されている3つのDDSディストリビューションがオープンソースであることを踏まえると、サプライチェーンの侵害(T0862)というシナリオもあり得ます。私たちは、自動化されたネットワークスキャナを作成し、攻撃者が組み込みのディスカバリプロトコルを悪用して自動検出を実行できること(TA0102、T0856)、さらにはプロトコル自体を悪用して効率的なコマンド&コントロールチャネルを構築できること(T0869)を実証しています。
被害に遭わないためには
根本的には脆弱性に対する修正パッチを適用することが必要です。直ちに修正パッチが適用できない場合、短期的には、脆弱性スキャン(M1016)によるパッチ未適用のサービスの検知や、ネットワーク侵入防止(M1031)、ネットワークのセグメント化(M1030)、ネットワークトラフィックのフィルタリング(M1037)の導入による、なりすましDDSメッセージの検知とリフレクション脆弱性の悪用防止などの軽減策を推奨します。また、メモリエラーの悪用軽減のための実行防止(M1038)対策と、定期的な監査(M1047)も推奨します。
DDSのようなサプライチェーンにおける重要なソフトウェアのセキュリティに対処する際には、コードベースを、より自動セキュリティテストツールの連携に適したものにすることが最大の急務となります。代表的な例としてファズテストがあります。私たちは、DDSのような重要なソフトウェアライブラリはすべて、従来の単体テストに加えて、セキュリティテストを強く意識しながら開発することを提唱しています。OSS-Fuzzなどの取り組みのおかげで、状況は著しく改善されていますが、セキュリティエンジニアとソフトウェアエンジニアの間には依然として大きなギャップがあります。それにより、手作業による面倒なコードレビューや、セキュリティチェックを適用するための厄介なコード変更などが必要になり、利用可能なセキュリティツールの大規模な採用を遅らせる原因となっています。
ADLINK社は私たちの発表を積極的に受けとめ、すばらしい反応を示し、トレンドマイクロの研究者によるファズターゲットの作成の支援にまで協力してくれました。この支援により、同社のコードベースに対して適切なファズターゲットを作成することができました。同社の対応は、ソフトウェアエンジニアリング業界全体の模範となるべきものです。この姿勢が、ソフトウェア業界全体のロールモデルとなることを願っています。 本調査の詳細は、レポートを参考にしてください。
トレンドマイクロのソリューション
Trend Micro TXOne Networks EdgeIPS Pro™、EdgeIPS™、およびEdgeFire™のお客さまは、次のルールに基づいて保護されています。
- 1137699 ICS DDS RTPSモードの増幅攻撃(CVE-2021-38429)
記事協力:TXOne Networks(Federico Maggi、Mars Cheng、Patrick Kuo、Chizuru Toyama、Rainer Vosseler、Ta-Lun Yen)