本文へ移動します

未来に繋ぐセキュリティ情報発信

意外な感染経路 3DCG ソフトウェア製品のファイルを介したマルウェア

平 知希

皆さま、こんにちは。マネージドセキュリティサービス(MSS)セキュリティアナリストの平です。
MSS ではお客様環境でのアラート観測状況や世の中の動向から優先度を付けて、継続的に攻撃テクニックやマルウェアなどの技術的な調査を行い、お客様へのサービス品質を維持しています。

今回は調査してきた中から特徴的なマルウェアをご紹介します。
このマルウェアはある3次元コンピュータグラフィックス(3DCG)ソフトウェア製品の利用者を標的としたもので、感染経路、永続性確保、自己増殖、自己修復の4点に特徴がありますので、これらにフォーカスしています。
このような事例が存在すると認知していただくことが、皆さまの脅威に対する理解を深めることにつながれば幸いです。

特徴①:感染経路

攻撃者が標的のホスト上でマルウェアを実行したい場合、脆弱性の悪用や、すでに侵害済みの内部ホストから横展開を行うという感染経路もありますが、それ以外の手口として「ユーザーに実行するように操作してもらう」という手法を用いた攻撃試行が数多く観測されています。

もし皆さまが何かしらのファイルを受け取った際、どのような状況であれば受け取ったファイルを実行するでしょうか。
人によって差はあるかと思いますが、「1. 誰から受け取ったのか」と「2. やり取りの内容とファイル種別が一致しているか(※1)」の2点は多くの人が重視すると思います。

※1「2. やり取りの内容とファイル種別が一致しているか」というのは旅行の話をしている中で画像ファイルが送られてきたり、商品購入のやり取りの中で請求書の PDF が送られてきたりすることを指します。

今回のマルウェアは、ある 3DCG ソフトウェア製品が取り扱う 3DCG データファイルを介して感染します。このマルウェアは後の章で述べるように、ホスト上で作成、利用している 3DCG データファイルに感染していく仕組みのため、業務や趣味などでやり取りされる 3DCG データファイルが感染した状態で運ばれるというケースが発生することになります。
この場合「1. 誰から受け取ったのか」、「2. やり取りの内容とファイル種別が一致しているか」の観点から不審な点は見当たらず、ユーザーが感染した 3DCG データファイルを開いてしまうことは避けられないと思います。

具体的な感染の流れ

ユーザーが感染した 3DCG データファイルを受け取って、開いた後の感染の流れをご説明します。
まず、今回対象となった 3DCG ソフトウェア製品の仕様として、この製品は Python ライブラリを提供しており、これを用いて機能を拡張することができます。これは製品が提供している仕組みであり脆弱性ではありません。
この仕組みにより 3DCG データファイルの中に Python スクリプトを埋め込んでおき、ファイルのロード時などに実行させる、というようなことが実現できます。

感染した 3DCG データファイルには2つの Python スクリプトが埋め込まれており、ファイルを 3DCG ソフトウェアにロードした際に実行される設定となっています。

これら2つの Python スクリプトの実行内容は、どちらもホスト上にファイルを作成することです。作成されるファイルの名前は、userSetup.py、vaccine.py であり、拡張子 .py が示すとおりファイルの内容は Python スクリプトです。

userSetup.py、vaccine.py がホスト上に作成されることでホストへの感染が完了します。

特徴②:永続性確保

永続性確保とは攻撃者が侵害状態を維持することを指します。例えばユーザーを騙してマルウェアを実行させることができても、システムを再起動したらマルウェアが停止するようであれば永続性はありません。

ホストに感染したファイル userSetup.py と vaccine.py ですが、この 3DCG ソフトウェアはユーザーが 3DCG ソフトウェアを使おうとして起動すると、userSetup.py というファイル名の Python スクリプトを自動実行するという仕様があります。これは本来はユーザーが 3DCG ソフトウェアの起動時に行う自動処理を追加するためのものですが、今回のようにマルウェアが作成したファイルであっても実行されてしまいます。
そして、今回の感染で作成される userSetup.py は vaccine.py 内の関数を実行するという内容であるため、ホストへの感染後はユーザーが 3DCG ソフトウェアを使おうとして起動するたびに userSetup.py と vaccine.py が実行されることになります。したがって、userSetup.py と vaccine.py は永続性があると言えます。

マルウェアの永続性確保はタスクスケジュールなどの OS の仕組みを使って行われることが多く、それに比べると 3DCG ソフトウェアの起動はホストの起動から停止までの間に必ずしも行われないため、確実な実行という点では劣ると考えられます。
しかし、今回のような製品特有の自動実行の仕組みは世の中に無数にあるため、アンチウイルス、EDR などのセキュリティ製品の視点から考えると、タスクスケジュールなどの OS で共通して利用できる仕組みを悪用される場合より検出が困難であるとも言えます。

特徴③:自己増殖

このマルウェアはホストへの感染後に、そのホスト内で自分自身のコードを複製して増殖していく能力を持ちます。
具体的には以下にご説明するように、ホスト内の他の 3DCG データファイルを感染状態にします。

先ほど、userSetup.py が vaccine.py 内の関数を実行すると書きましたが、呼び出された関数が実行するのは以下のとおり1行だけです。

これは 3DCG ソフトウェアで開いている 3DCG データファイルの保存操作を行うと、同じ vaccine.py 内の別の関数を実行するように登録しています。
そして、保存操作を行うと呼び出されるその関数は「1. 自分を複製するコード」と「2. マルウェアが本来目的とするホストに実害を与えるコード(※2)」を実行します。

自己増殖は「1. 自分を複製するコード」によって行われます。このコードは現在開いている 3DCG データファイルを最初に受け取った感染済みの 3DCG データファイルと同じ感染状態にします。
つまり、ユーザーが 3DCG ソフトウェアを利用している際に 3DCG データファイルの保存操作を行うだけで、その 3DCG データファイルが感染状態になってしまうため、次々に感染した 3DCG データファイルがホスト上に生み出されていきます。

※2「2. マルウェアが本来目的とするホストに実害を与えるコード」は長文でお話が脱線するため、本記事では取り扱いません。

特徴④:自己修復

具体的な感染の流れでご説明した動作と自己増殖能力を合わせると、マルウェアが興味深い能力を持つことが導き出されます。

まず、感染した 3DCG データファイルはホストに userSetup.py と vaccine.py を作成する能力を持ちます。
さらに、userSetup.py と vaccine.py は感染した 3DCG データファイルを作成する能力を持ちます。

したがって、ホストへの感染が成功した後に「userSetup.py と vaccine.py が削除」されたとしても、残っている感染した 3DCG データファイルが再度 userSetup.py と vaccine.py を作成します。
逆にホスト上から「感染した 3DCG データファイルが全て削除」された場合にも userSetup.py と vaccine.py は新たに感染した 3DCG データファイルを生み出し続けます。

以上の一部が削除されても復元される動きは自己修復能力と言えるものです。

今回の調査は userSetup.py がきっかけであり、そこから vaccine.py の存在が確認されました。
そして、vaccine.py には 3DCG データファイルに感染するコードが含まれていると判明しましたが、その 3DCG データファイルへの感染内容を確認すると前述のとおり userSetup.py、vaccine.py を作成する動きをさせるものと分かりました。
お互いが相手を作成するというこの構成を最初に見た際、一瞬私は循環参照を見ているような妙な気持ちになりました。しかし、ここでは鶏が先か、卵が先かは明白で、初めに攻撃者が作成した 3DCG データファイルがあった、と考えれば以下のように自己修復しながら、感染を拡大していく全体像が見えました。

まとめ

最後まで読んでいただきありがとうございました。
理想的には全ての脅威を予防できることが望ましいのですが、今回ご紹介した事例のようにユーザーが不審に思わない感染経路や、製品特有の仕組みを悪用するなどさまざまな巧妙な手口が存在し、感染のリスクをゼロにすることは困難であると考えております。
今回のような事例を通してさまざまな脅威が存在すると認知していただくことで、感染の予防だけでなく早期発見、根絶などの感染後の観点も考慮したセキュリティ対策をご検討いただくことにつながれば幸いです。

当社では感染後の観点も考慮したセキュリティ対策として、EDR を最大限に活用し侵入後の早期発見や被害の拡散・拡大防止を行う EDR のセキュリティ監視サービス、「MSS for EDR」をご提供しております。ご興味のある方はぜひお気軽にお問い合わせください。

お問い合わせ

製品・サービスに関するお問い合わせはお気軽にご相談ください。

セキュリティソリューションに関する資料請求・お問い合わせ

関連製品・サービス

開催中のセミナー

最新トレンドや業務に役立つ知識が得られる SBテクノロジーのセミナー 参加無料 オンデマンド配信あり

ホワイトペーパー

SBT セキュリティサーベイ 2023

ピックアップ

セミナー情報
クラウドエンジニアブログ
NOZ
メールマガジン登録