github等から取得したフォルダをvscodeで開き、「フォルダの中身を信頼する」をチェックすることで感染する事例が公開された。
これは、開いたフォルダに含まれる.vscode/tasks.jsonが原因となる。
タスク機能は本来、ビルドとかデプロイとかを自動化する機能。これを上手く利用することで、tasks.jsonに記載されたコマンドが自動実行されてマルウェア感染する。
vscodeのタスク機能
さて、個人的には完全に初耳のタスク機能。
超簡単にいってしまえば、事前に設定しておいた操作を自動的にやってもらう系のもの。自分でvscode上で使用するコマンドテンプレートを作成することで、複雑なビルド作業や外部ツールの連携をコマンド一つで行える。
このタスクのオプションには、タスクがいつ実行されるかを指定するrunOnというものがある。このrunOnがfolderOpenとなっている場合には、その名の通りフォルダを開いたときに実行される。
runOn: Specifies when a task is run.
default - The task will only be run when executed through the Run Task command.
folderOpen - The task will be run when the containing folder is opened. The first time you open a folder that contains a task with folderOpen, you will be asked if you want to allow tasks to run automatically in that folder. You can change your decision later using the Manage Automatic Tasks command and selecting between Allow Automatic Tasks and Disallow Automatic Tasks. https://code.visualstudio.com/docs/debugtest/tasks#_run-behavior
このタスクの設定は、「.vscode/tasks.json」に保存される。
例えば、以下のようなtasks.jsonが確認されたらしい。

ただし、いつでも実行可能であるわけではなく、実行されるのは「信頼」されているとき。
つまり、最初にvscodeを開いたときの行動が重要となる。
皆さん、ダウンロードしたファイルとかフォルダとか何も考えずに信頼していないですか
vscodeで初めてフォルダを開くときのこれ↓

皆さんはどのような思いでチェックしているのでしょうか。
何も考えずに信頼してしまうと、tasks.jsonでマルウェア感染するかもしれませんよ?
別に信頼しなくても、開発用機能が使えなくなるだけで検索とか置換機能とかは特に制限されないハズ。