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 Tools
はPython
で書かれてるので、コードを閲覧出来ます。中をみるとわかるのですが、
削除のタイミングなど賢く考えられてますが、亜種の対策がまったくされてません。
まぁ、キーワードを増やせば同じようなのは対策出来ますが、根本的な解決にはなってない気が…。
今後、ネットからデータをダウンロードして開く際は、
Script
ノードを無効にして開き、Expression Editor
のメニューから、
Select Filter > By Script Node Name
を選択し、
Script
ノードに余分なスクリプトが埋め込まれてないかを確認する事をオススメします。
Scrip
ノードには、Brfore/After
と、大きく2種類のタイミングがあり、両方確認する必要があります。
Expression Editor
のUIからだと、After
が埋め込まれてるか分かりにくいので注意してください。
今回のタイプは、シーンファイルから感染し、環境を汚染する珍しいケースでしたが、
便利スクリプトを歌って、実行するだけで環境を汚したり、scriptJob
で作業を妨害、
expression
でクラッシュさせたりなど、色々考えられます。
話題にならなければ静観してるつもりでしたが、この規模で拡散されると更に亜種が増えそうで怖いです。
世の中には悪い事考えるだけならともかく、実際に行動に移してしまう人が居るので、今後も注意が必要です。