CSV をダウンロードしたら Defender が動いた

:::note warn
以下ご理解いただける方のみお読みください。

- 私（iron）が記載している投稿は **一個人の見解** であり、特定の企業や団体の見解や主張ではありません。一つの情報としてご覧ください。
- この記事は **注意喚起と同業の方への共有を目的として記載** しています。
ここに記載された内容を模倣したり悪用したりすると法令に違反する場合があります。ご注意ください。
:::

# CSV をダウンロードしたら Defender が動いた

## TL;DR

- 某有名団体が公開している GitHub レポジトリを zip でダウンロードしたら、ダウンロードした zip ファイルが Windows Defender によって隔離・削除された。
- zip の中身はフィッシングサイトの一覧が記載された多数の csv ファイル。Windows Defender で検知したファイルも、ある 1 つの CSV ファイルで `Trojan:HTML/Phish!MSR` で検知。
- なぜ 1 つのファイルだけ検知したのか調べたがわからず。
- CSV ファイル自体はテキストファイルなので問題ないが、CSV ファイルを開くアプリケーション側の仕様や脆弱性を狙ってくるマルウェアもあるので、CSV だから OK と思うのは控えよう（自戒を込めて）

## 経緯

私は某有名団体が公開している GitHub のレポジトリを zip でダウンロードした。すると Windows Defender が動作してダウンロードした zip ファイルが隔離された。

仮想環境ではないローカルでやっていたので反射的に NW 切断→隔離→フルスキャンができ、結果的に問題はなかった。

ただ、某有名団体が公開しているフィッシングサイトの一覧が記載された単なる CSV ファイルで？ しかも 1 つの CSV だけで検知？ ということで気になり調べてみた。

## 検知内容

まず今回検知したのは zip ファイルであったが、Windows Defender で確認したところ zip の中にある 1 つの CSV ファイルで検知していた。
数十種類の CSV ファイルがあったが 1 つの CSV ファイルで検知している。 

### Windows Defender の検知結果

`Trojan:HTML/Phish!MSR` ということでトロイの木馬関連のマルウェアとのこと。
なお以下画像は個人の仮想環境でもう 1 回ダウンロードしたときの画像で、このあと削除しておきました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188227/dd853099-af2e-4d1f-0175-ab40ac344603.png" width="50%" />

Microsoft のヘルプページも用意されているが、特に詳しい情報はなし。

https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?name=Trojan%3AHTML%2FPhish!MSR&threatid=2147742934

### VirusTotal の結果

検知した CSV ファイルを VirusTotal に投げたところ、Microsoft のほかにもう 1 件検知している。
検知した内容は Microsoft とほぼ同じ。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188227/004f7feb-1983-b851-eba6-ecdb7138869a.png" width="50%" />

### なぜ 1 つの CSV ファイルだけ検知したのか？

正直「わからない」というのが所感。

当該ファイルをテキストエディタで開いて中身を閲覧したが、コードを実行させるような値は見つからず。
もちろん私が見逃している可能性もあるし、フィッシングサイトの URL が記載されているので良くない URL であることは承知している。

ただ個人的には誤検知かな、と。

## CSV によってマルウェア感染することはあるのか？

そもそも CSV ファイルによってマルウェアに感染することはあるのか。
Security タグの記事を読んでいる方々にとっては釈迦に説法だが **ある** という回答が正しい。

CSV ファイル自体はご存じの通りテキストファイルなので、CSV ファイル自体がマルウェアになることはない。ただ CSV ファイルを開くアプリケーション側の仕様や脆弱性によって、CSV に記載されたコードを実行してしまうことがある。

### CEMI

特に Excel によってコードが実行されてしまうことが多いことから、CSV ファイルに記載した内容を Excel で実行させる脆弱性全般を CSV Excel Macro Injection（CEMI）と呼んでいる。

CEMI は主に動的データ交換（Dynamic Data Exchange：DDE）と呼ばれる機能を使って、任意のアプリケーションを実行させている。

DDE 自体は Excel 固有の機能というわけではなく Windows 上で実行されるアプリケーション間でデータを交換したりコマンドを実行したりするのに使う機能である。

https://e-words.jp/w/DDE.html

もちろん良いことに使われれば良いのだが、これを悪用することが多いようで Excel では Excel ファイル上からの DDE はデフォルトで無効となっている。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188227/66ac1f82-927d-d454-c3b0-0eb8ea61c602.png" width="50%" />

### CEMI を試す

:::note warn
- Excel の DDE 有効設定を **[オン]** にしている状態を前提としています。
意図的な場合を除き、当該設定を **[オフ]** にしておくことを強く推奨します。
- CSV に記載するコードは具体的に説明しません。
:::

まず CSV ファイルを準備する。
今回は `cmd /c calc.exe` が実行できるようなコードをテキストエディタで作成しておき CSV の UTF-8 w/BOM で保存しておく。これでおしまい。

この CSV ファイルを Excel で開いてみると、Microsoft Excel のセキュリティに関する通知が表示される。そのまま **[有効にする]** をクリックする。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188227/2d07ea8c-e8e5-d254-b097-d277b20be0b8.png" />

すると「外部データにアクセスできないので他のアプリケーションを開始する必要がある」旨のメッセージが表示される。こちらも構わず **[はい]** をクリックする。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188227/5137d510-6241-5130-7c44-cc11d14ee0fd.png" />

すると `cmd.exe /c calc.exe` が実行され電卓が起動する。

![calc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188227/557217c1-f82c-fe6d-35c5-9da189458a1e.png)

:::note info
ちなみに DDE が無効になっている（デフォルトの状態）場合は以下のようなメッセージが出て、DDE が動作せずに終わる。

![dde_disable.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188227/b116bd6e-ae69-aef0-f8ff-e7e2d989e3c6.png)
:::

## もう一度「なぜ検知したのか？」

今回検知した CSV ファイルには外部コマンドや CEMI が疑われるようなコードを発見することができなかった。なので CSV 内にある何らかのシグネチャなどに検知していると思われるが、それらを発見することはかなわず。

今回ダウンロードした Github レポジトリで Issues などで伝えられれば良いのだが、残念ながら当該レポジトリの Issues はなし。うーん。

ただ、今回個人的によくわかったこととして「CSV だから大丈夫と油断するのは違う」と改めて思いました（自戒を込めて）。

### （2024/1/3追記） 何に検知したのか？

h3x さんからコメント頂き、CSV ファイルの何に検知したのかが判明。
結果から言うと、CEMI のようなコードが含まれていたのではなく、やはりフィッシングサイトの URL に検知していた様子。

検知した CSV ファイルの（ヘッダーを除く）1 行目に記載されていたフィッシングサイトの　URL が原因。

実際にその URL １ つだけを記載した CSV ファイル（以下、検証用　CSV ファイルと呼称）を準備して保存したところ、Windows Defender が動いた。また検証用 CSV ファイルを VirusTotal でスキャンしたところ、`Trojan:HTML/Phish!MSR` を検知したため、これが原因と言って良いと思う。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188227/f2632211-fbbc-1f64-b506-aa5b7d066687.jpeg" width="50%" />

ただなぜこの URL だけが検知しているのかはやはり不明。
今後判明できたらこちらに追記したい。