Page Top
Maya

Scriptノード

Scriptノードは万能で、シーンを開く時、閉じる時、レンダリング時など、
タイミングをコントロールしながら、シーンに埋め込んだスクリプトを実行できます。
いつ頃からか忘れましたが、いまはここに、標準でframeRangeの設定が埋め込まれてたりします。

Scriptノードの実行を回避

ファイルダイヤログのオプションで、シーンを開く時に埋め込まれてるScriptノードの実行を回避出来ます。
melや、pythonの、fileコマンドにも、executeScriptNodesフラグが用意されてます。

https://knowledge.autodesk.com/ja/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/JPN/Maya/files/GUID-203FC12C-6C80-497C-AC29-548DF6EC91B5-htm.html

悪用したマルウェアが拡散

いま流行りのマルウェアもこの仕組を利用し、まずは環境を感染させ、順に開いたファイルを感染させ続けています。
2020年05月頃から確認され、 2020/06/26(土) に発動します。発動するとMayaが操作不能になります。

一度感染すると、シーンからScriptノードを駆除しただけでは解決せず、再度シーンを開く度に復活します。
マルウェアの挙動については、トモハラさんがまとめてくださってます。素晴らしい!

【Maya】2020/6/27以降にMayaがクラッシュするマルウェアの調査と対処
https://tm8r.hateblo.jp/entry/2020/06/25/144335

Autodeskが配布してるツールから駆除出来ます。
インストールしても自動でプラグインがロードされる訳ではありません。
当たり前ですが、プラグインをロードしないでシーンを開くと、先に感染するので注意してください。

Security Tools for Autodesk® Maya® 2020 - 2015について教えてください
https://knowledge.autodesk.com/ja/support/maya/troubleshooting/caas/sfdcarticles/sfdcarticles/kA93g0000004JXR.html

Scriptノードは非常に便利なのですが、なぜかMayaは全面的なアピールをしてません。
専用のエディタや、ウインドウもなく、オマケ的な位置付けでバックグラウンドに押し込んでます。

Reference Editorみたいに、一覧でノードを確認出来、有効/無効を切り替えできるツールなど、
もっと早く、Autodeskがちゃんとしたサポートをしてれば、こんな事にはならなかった感が半端ないです。
利便性高くして、皆に認知されてれば、また話は変わってたと思います。

今回のマルウェアは、Scriptノードを無効にして、開けば感染は防げます。
防げますが、感染済みの環境の場合は再発するので、素直にSecurity Toolsを使いましょう。

Security ToolsPythonで書かれてるので、コードを閲覧出来ます。中をみるとわかるのですが、
削除のタイミングなど賢く考えられてますが、亜種の対策がまったくされてません。
まぁ、キーワードを増やせば同じようなのは対策出来ますが、根本的な解決にはなってない気が…。

今後、ネットからデータをダウンロードして開く際は、
Scriptノードを無効にして開き、Expression Editorのメニューから、
Select Filter > By Script Node Nameを選択し、
Scriptノードに余分なスクリプトが埋め込まれてないかを確認する事をオススメします。

Scripノードには、Brfore/Afterと、大きく2種類のタイミングがあり、両方確認する必要があります。
Expression EditorのUIからだと、Afterが埋め込まれてるか分かりにくいので注意してください。

今回のタイプは、シーンファイルから感染し、環境を汚染する珍しいケースでしたが、
便利スクリプトを歌って、実行するだけで環境を汚したり、scriptJobで作業を妨害、
expressionでクラッシュさせたりなど、色々考えられます。

話題にならなければ静観してるつもりでしたが、この規模で拡散されると更に亜種が増えそうで怖いです。
世の中には悪い事考えるだけならともかく、実際に行動に移してしまう人が居るので、今後も注意が必要です。