【Maya】実感して学ぶ!マルウェアの危険性と対処法

Tech

はじめに

Maya を使用していて、下の画像のような警告が表示されたことはありますか?
そのとき、安易に Allow を押していませんか?

Mayaで出所不明のシーンを開いた際にAllowとDenyの選択を求めるSecurity Warning

Mayaで出所不明のシーンを開き、Security Warning が表示された場合は、安易にAllowを選ばないでください。
まず Deny を選び、シーンを保存せずに閉じ、入手元や社内の担当者へ確認します。

この記事は、マルウェアの作成方法に触れていますが、悪用を助長する目的で書かれたものではありません。

CG デザイナーの新入社員に Maya のマルウェアとはどういうものなのか、どのように対処すればいいのかを知っておいてほしくて執筆しました。

セキュリティ対策を強化するきっかけになれば幸いです。

動作確認環境

Maya 2026

この記事はスクリプトノードを使用するタイプのマルウェアについて説明しています。

意外と万能な Maya のマルウェア

Maya にはスクリプトノードという、シーンにスクリプトを埋め込むことができる機能が用意されています。

本来このノードは、正しく使えばセットアップの柔軟性を高めるものです。
しかしながら、これを悪用することで、Mayaに不正なプログラムを組み込むことが可能になってしまっています。

では、不正なプログラムとは何でしょうか?

ScriptNode は Python という汎用的なプログラミング言語を実行することができるので、Maya のUIからできることに留まらず、様々な処理を実行できてしまいます。

例えば、危険なファイルを勝手に PC にダウンロードさせたり、あなたの PC の情報を取得して攻撃者のもとに送信させることができます。

安全なサンプルで実際に作ってみる

では実際に、開くだけでこのサイト(たちつてラボ)からファイルをダウンロードさせる Maya シーンファイルを作ってみましょう。

ファイルは”たちつてラボ”とだけ記載されたシンプルなテキストファイルなので、ダウンロードしても無害ですが、不安であれば、シーンを作成せず読み進めてください。

Windows > General Editors > Script Editor を開き、Python タブに以下のコードを入力します。
ただし、save_dir の’ ‘(シングルクォーテーション)の中は、実際にファイルをダウンロードしたいフォルダのパスに書き換えてください。

import maya.cmds as cmds

code = r'''
from urllib.request import urlretrieve
save_dir = r'C:\Users\{ユーザー名}\Downloads'
urlretrieve('https://tachitsute.com/download/sample.txt', save_dir+'/sample.txt')
'''

node = cmds.scriptNode(
    name='sample_scriptNode', scriptType=2, sourceType="python", beforeScript=code
)
MayaのScript Editorでsample_scriptNodeを作成するPythonコードを実行した画面

このコードは、スクリプトノードを作成するコマンドを実行するものです。

code = ”’ ”’ の部分が、スクリプトノードで実行されるコードです。
scriptType=2 はシーンファイルが開かれたときに実行することを示します。( ※GUIモードで開かれたときに、beforeScriptを実行します。)
name=’sample_scriptNode’ は、作成されるスクリプトノードの名前です。

Windows > Animation Editors > Expression Editor を開き、Select Filter を By Script Node Name にすると、sample_scriptNode というスクリプトノードが作成されていることを確認できます。

MayaのExpression EditorでSelect FilterをScript Node Nameに切り替えるメニュー
MayaのExpression Editorに表示されたsample_scriptNodeの設定内容

シーンを保存して開き直すと、セキュリティ設定を変更していなければ、Security Warning が表示されます。

Mayaシーンを開いた際にスクリプト実行の許可を求めるSecurity Warning

今回は、自分で作成し、実行内容を確認した検証用シーンであるため、挙動を確認する目的でAllowを選択します。
出所不明のシーンや、コードの内容を確認できないシーンではAllowを選ばないでください。

Allow をクリックすると、シーンが開かれ、スクリプトノードで指定したディレクトリに sample.txt がダウンロードされます。

Mayaのスクリプトノードによりダウンロードされたsample.txtを示すフォルダー

同じ方法で、悪意のあるサイトからマルウェアを簡単にダウンロードさせることができます。

今まで、 Allow を軽い気持ちでクリックしていませんでしたか?

Security Warning は危険なマルウェアから PC を守る重要な防波堤です。

信頼できない Maya ファイルの Security Warning では Allow を押さないようにしてください。

業務で不審な Security Warning が表示された場合は、スクリーンショットを撮った上で Deny を押してシーンを閉じ、適切な相手(上長や部署内のセキュリティチーム等)に相談することを推奨します。

増殖するマルウェア

マルウェアのもう一つの厄介な点は、一度マルウェアに感染したシーンを開くと、正常だったほかのシーンにまで感染を拡大してしまう可能性がある点です。

scriptNode で実行される Python は PC のファイルを新規作成したり、既存のファイルの内容を書き換えることができます。

例えば、以下の Python コードが設定されたスクリプトノードが実行されると、指定したパスにファイルが作成されます。

file_path = r'C:\temp\sample.txt'  # 実際にファイルを作成したいパスに書き換えてください。
with open(file_path, 'w', encoding='utf-8') as f:
    f.write('ここにテキストを入力します')

これを利用して、例えば userSetup.py ファイルを新規作成したり、書き換えることが可能です。

userSetup.py は、Maya を起動した際に自動で読み込まれる Python ファイルです。

これを書き換えられると、Maya を起動するたびに、悪意のあるPythonコードが実行されてしまいます。

さて、このとき、「シーンを開くたびにそのシーンに ScriptNode を作成する」 Pythonコードを仕込まれてしまうと、どうなるでしょうか。

scriptNode によって userSetup.py が書き換えられ、新たに開かれたシーンにまた同じ scriptNode を作成される無限ループが発生します。

一度、スクリプトノードの実行を許してしまえば、そのシーンファイルを後から削除しても手遅れである場合があります。

事前に行える対処法

セキュリティ設定

Windows > Settings/Preferences > Preferences にセキュリティに関する設定項目があります。

Maya PreferencesのSecurity設定をOnにした状態

On はセキュリティ項目をすべて有効にし、Off は保護設定を無効にします。
Custom は個別項目を変更した状態です。

特段の理由がなければ、On のままにしてください。
ただし、業務環境では自己判断で変更せず、組織の管理者・セキュリティ方針に従ってください。

Maya セキュリティツール

Autodesk 公式のセキュリティツールが、プラグインとして公開されています。

Security Tools for Autodesk® Maya®
Autodesk Design and Make Marketplace

ダウンロード方法や使い方は以下を参考にしてください。

Access Denied

まとめ

いかがでしたか?

Maya のマルウェアの影響は、Maya の中だけでは収まりません。

ユーザー権限の範囲内でできることであれば、PC の環境を破壊したり、重大な情報漏洩を起こさせてしまうようなシーンを、意外なほど簡単に作成できてしまいます。

しかし、適切に設定された環境において警告を無視せず、正しく対処すれば、多くのマルウェアの被害は未然に防げます。

今度 Security Warning が表示されたら、気軽なワンクリックが思いもしない大事になってしまう可能性を思い出してほしいと思います。

コメント

タイトルとURLをコピーしました