マルウェアは通常、意図的に開発され、既知または未知の脆弱性を利用して特定の被害者を標的にし、その主要な目的を果たします。このブログでは、マカフィーのAdvanced Threat Research(ATR)チームが提起した脆弱性を調査し、それと同様の脆弱性を組み込んだ最近のマルウェアについて詳しく見ていきます。ここで強調したい点は、インターネット・オブ・シングス(IoT)特有のマルウェアの動きが増加していることと、この独特の脆弱性が将来のマルウェアに組み込まれる可能性です。
私たちが、Belkin製「WeMoインサイトスマートプラグ」のリモートコードの実行による重大な脆弱性をBelkin社(家電メーカー)に報告してから間もなく1年になります。2018年5月21日に開示した極めて詳細な内容には、脆弱性(バッファ オーバーフロー)、概念実証、エクスプロイトコード、さらには標的となるデバイスで開かれたルートシェルに落とし込まれるという衝撃的なビデオデモまでが含まれていました。私たちはさらにこのデバイスがいったん侵害されると、スマートテレビ、監視カメラ、PCのように完全にパッチが適用されている非IoTデバイスをも含むネットワーク内の他のデバイスに攻撃を仕向ける方法について、当ブログで記事を書きました。当初、Belkinはパッチの準備が出来ており、当社が予定していた公表前には配布すると返答していました。ATRが2018年11月16日に報告したWeMo搭載のコーヒーメーカー「Mr. Coffee」の脆弱性については、Belkinは2019年1月に解決し、2月下旬のMobile World Congressで公開しました。私たちは開示責任として効果的なパッチだとBelkinを評価しますが、すでに生産や販売を中止したとみられるWeMo搭載のMr. Coffee製品向けの優先パッチだったことには少し驚きました。
ところがインサイトスマートプラグのファームウェア更新は、実現していませんでした。さらに何度か連絡を取ろうと試みた後、当社の脆弱性公表基準に従い、3カ月後の8月21日にこの問題を一般に公開しました。 私達が望むのは、脆弱性の開示により、ベンダーが脆弱性を解決し、セキュリティコミュニティに脆弱な製品について周知し防御態勢の整備を推進すること、そして最終的には、安全ではないコード開発がもたらす影響を開発者たちに認識させることです。
1年近く話を進めると、CVE-2018-6692として分類されるこの脆弱性は当社が把握する限りでは、なおゼロデイ脆弱性のままです。2019年4月10日の時点では、月末までにパッチを適用する予定と聞いていますが、確認はできていません。当社はサイバー犯罪者に有利に働くことを憂慮してエクスプロイトコードを公開していませんが、いくつかの点で課題があるとはいえ、この脆弱性を悪用することは強い意志を持つ攻撃者にとっては極めて容易です。
IoT特有のマルウェア
なぜこの脆弱性が悪意のある攻撃者にとって魅力的であるのかに注目しましょう。最近、トレンドマイクロが「Bashlite」というマルウェアのランダムな検出観察に関するブログを公表しました。この特定のマルウェアは最近、WeMo UPnPプロトコルにある既知の脆弱性向けMetasploitモジュールを特別に利用して、IoTデバイスを自身の武器庫へ取り込むよう更新されました。この脆弱性はBelkinがパッチを適用した「SetSmartDevInfo」アクションと、対応する「SmartDevURL」引数を利用してWeMoデバイスをフィンガープリントし悪用するために使われていた2015年のバグと関連があるようにみえます。
確かなことは、このMetasploitモジュールは、ATRが提起したlibUPnPHndlr.soライブラリ内の<EnergyPerUnitCostVersion> XMLフィールドに存在する同一の脆弱性を標的としたものではない、ということです。
BashliteとIOTデバイスターゲットの分析
マルウェア(前述ブログにあるファイルハッシュ値)のいくつかのサンプルを簡単に分析すると、このデバイスは複数のIoTデバイスのデフォルトの認証情報と既知の脆弱性をチェックしているようでした。例えば、「oelinux123」のバイナリでパスワードへの参照を見つけた後、あるツイートを目にしました。
このIoTデバイスはAlcatel Mobile Wifiで、たくさんの既知のパスワードやデフォルトのパスワードを持っています。上記の「root:oelinux123」というユーザー名とパスワードの組み合わせを見てください。実際のマルウェアを分析すると、脆弱なデバイスを列挙してスキャンする際に使用される手順が確認できました。
こちらは、一般的なバイナリ分解ツールIDA Proからの参照で、モバイルWiFiデバイスにアクセスする際に使用されるパスワード「OELINUX 123」を示しています。
次の図は、既知のパスワードや脆弱性を用いてさまざまなデバイスやターゲットをスキャンして識別する際に使用された大きな「ジャンプテーブル」です。
次の図は、マルウェアに利用された「Echobot」スキャナーの出力の一部で、上記のジャンプテーブルからターゲットデバイスの潜在的な脆弱性を報告するのに利用されます。
最後の図が示しているのは、このマルウェアによって使用されたハードコートされた認識情報の一部リストのスクリーンショットです。
パスワード「huigu309」は、ZhoneとAlcatel Lucent社のルーターに関連付けられているとみられます。どちらのルーターにもファームウェアに組み込まれたいくつかの既知の脆弱性、バックドア、ハードコードされたパスワードがあります。
Bashliteマルウェアの詳細な分析が今回の論点ではないので、これ以上の分析は必要ないのですが、このマルウェアが複数のIoTデバイスを標的とするようにプログラムされていることを示すために、いくつかの機能について簡潔に掘り下げてみる価値はあると思います。
そこでポイントですが、一般的なWeMo Metasploitモジュールがこれに追加されたという単純な事実は、パッチ未適用の脆弱性をマルウェア機能に追加せざるを得ないほど、Belkin WeMoが興味深い標的となっていることを示しています。このため、マルウェア作成者はパッチ未適用のWeMoインサイトの脆弱性をIoTマルウェアにすでに組み込んだか、これから組み込もうとしている可能性がとても大きいと考えられます。私たちはこのゼロデイに関連する脅威を注意深く追跡し、この脆弱性を組み込んだマルウェアが出現した場合、このブログを更新するか追記する予定です。もしもベンダーが効果的なパッチを実際に作成するならば、全体的な脅威を低減する正しい方向へのステップとなり、さらにはマルウェアの脆弱性を武器にできるかもしれません。
あなたのデバイスを保護するには
この脆弱性はネットワークにアクセスしてデバイスを悪用するため、堅牢なWi-Fiパスワードを実装し、さらにVLANやネットワークセグメンテーションを使用して重要なデバイスからIoTデバイスを隔離することを、WeMoインサイトなどのIoTデバイスのユーザーには強くお勧めします。McAfee Secure Home Platformのユーザーは、この脆弱性を悪用する悪意のあるボットネット攻撃を防御するために、ホワイトリストやブラックリスト機能を有効にすることができます。
ベンダー、消費者、企業 各々が出来ること
ハードコードされた認証情報といった明らかに単純な問題のいくつかは説明し難いものであると同時に、正真正銘のソフトウェアの脆弱性がいつでも回避できるとは限らないことも理解しています。しかしながら私たちはIoTベンダーに行動を起こすよう求めます。これらの問題は解決されなければならず、直ちに実施される必要があります。攻撃者は兵器化できるような欠陥を絶えず追跡しており、その典型例がBelkinのWeMoなどのIoTデバイス用に更新されたBashliteマルウェアに見られます。消費者のセキュリティに対する要望を聞き、欠陥を特定するために研究者と密接に連携し、迅速かつ柔軟な対応モデルを持つことでベンダーは、世界が依存の度合を強めている製品の欠陥を補う独自の機会を得ることができます。
消費者は基本的なウイルス予防策を実施することが重要です。つまり入手可能なセキュリティアップデートを実行し、ホームネットワークとデバイスに対して複雑なパスワードポリシーを実施し、重要なデバイスやネットワークをIoTから隔離してください。
企業にお勤めの方は、これが典型的な消費者のIoTデバイスだからといって、企業の資産が侵害されないわけではない、ということに気付くべきです。家庭のネットワークにいったん侵入を許せば、会社用のラップトップを含め同じネットワーク上で使うすべてのデバイスが危険にさらされていると見なすべきです。これこそが、サイバー犯罪者が家庭と会社の境界を越えさせるために使う一般的なやり方です。
※本ページの内容は、2019年4月18日(US時間)更新の以下のMcAfee Blogの内容です。
原文: IoT Zero-Days – Is Belkin WeMo Smart Plug the Next Malware Target?
著者:Steve Povolny