Emotetに感染している? 1000台規模のPCへ「Emocheck」自動実行チェックツールを作ってみた

REPORT
2022.04.08

自己紹介

はじめまして、社内情シスを担当している、しまと申します。
新卒入社6年目のまだまだ未熟なエンジニアですが、皆様のお役に立てればと思い執筆させて頂きます。

執筆に至った背景

Emotetの猛威が再拡大されており、社内でもEmotetと思われる内容のメールが届いたと問い合わせを受ける件数も増えてきたため、感染検知を強化することにいたしました。

Emotetの感染状況をチェックするツールが、JPCERT/CCより配布されておりますが、簡易的なツールとなっており、プロトソリューションの全端末で手動実行するのは出来ないと考え、工数を大幅に削減するEmocheck自動実行ツールを作成致しました。

本記事では作成したEmocheck自動実行ツールの仕組みを共有し、Emotetに苦しめられている情シスの方々が少しでも救われれば幸いです。

Emotetについて

Emotetとは偽のメールにWordやExcelファイルを添付された状態で受信し、マクロ機能を有効化すると感染する仕組みになっております。

また、PPAPと呼ばれるZip暗号化を行うとメーラーによっては、セキュリティチェックされないため、感染が拡大しているウイルスです。

2020年にEmotetが大きな話題となり、一時は控えめになっておりましたが、2021年11月ごろから再度活発になってきました。

詳しい攻撃内容等はJPCERT/CCやIPAから配信されている内容を見ていただきたいですが、私の所見としては2020年ごろの流行初期段階では、まだまだ荒削りで判別が比較的容易にできた印象でしたが、現在のEmotetは日本語の違和感が減っており、本当に取引先からのメールかと思わせるような内容になってきました。

Emotetに感染してしまうと利用しているメールアドレスからの、メール送信やアドレス帳に登録されているメールアドレスへの無差別送信などが行われます。

取引先やお客様に迷惑がかかるだけでなく、企業の社会的信頼の喪失や場合によっては、損害賠償まで発展する恐れがあります。

メールアドレスの悪用だけでなく、パスワード等の窃取も行われており、感染を食い止めつつもし、自分の端末が感染してしまっても周りへの感染拡大を防ぐ対応が必要となります。

今回実現したこと

Emocheckは前述した通り、簡易的な機能のみとなっているため、1000台のPCがあるプロトソリューションで手動での定期的な実行は現実的では無いと判断致しました。

そのため、自動で実行および結果をファイルサーバーに格納するEmocheck自動実行ツールを作成致しました。

作成した自動実行ツールをスタートアップに仕込み、利用者がPCへのログインをトリガーに、Emocheck自動実行ツールが動き出します。

その後、Emocheckによる感染確認を行い、ファイルサーバーへ実行結果のCSVファイル書き出しまでを自動実行致します。

前提条件

Emocheck自動実行ツールを利用するにあたっての前提条件を記載致します。

・Emocheck自動実行ツールを配信する仕組みが整っている(Active Directoryのログオンポリシーなど)
・Emocheckを自動実行した端末からアクセス出来るファイルサーバー(実行結果を収集するため)

今回はEmocheck自動実行ツールの配信には触れないためご自身の環境に応じてご検討ください。

Emocheckについて

前段でお話しているEmocheckについても簡単に説明致します。

JPCERT/CCより配布されており、Emotetに感染していないかを検査する簡易ツールとなります。

簡易的なツールとなるため、チェック機能と感染されたファイルのみが、わかる仕様となっており通常だと各自で実行する必要があります。

Emocheck自動実行ツールについて

Emocheck自動実行ツールの大きな流れとしては以下となります。実行結果を格納するファイルサーバーをマウント

1.実行結果を格納するファイルサーバーをマウント

2.Emocheckの実行

3.JSONで取得した結果をCSVに書き出し

4.マウントしたファイルサーバーをアンマウント

上記の流れをBatにて記載し、BatとEmocheckを配布することで実行結果を収集しております。

Batの中身

Batの中身は以下の内容となっております。

@echo off
@setlocal enabledelayedexpansion

cd C:\temp\EmoCheck

rem データ収集先ディレクトリを指定
set DIR_TO=\\パス

rem Xドライブがあるか確認し ない場合のみマウント
dir X:\
if %ERRORLEVEL% == 1 (
  rem 収集先ディレクトリをX:にマウント
  net use X: !DIR_TO! パスワード /user:ドメイン\ユーザー
  set X_DRIVE=1
) else (
  echo. > nul
  set X_DRIVE=0
)

rem EmoCheckを実行(バージョンによってEmocheckファイル名が変わります。)
Emocheck_v2.1_x64.exe /quiet /json

rem JSONファイルのファイル名取得
for /f "usebackq" %%a in (`dir /b ^| findstr .json`) do set JSON=%%a

rem CSVにJSONの結果を書き出す
set CSV=!JSON:.json=!.csv
type !JSON! | jq.exe -r "[.hostname, .scan_time, .is_infected] | @csv" > !CSV!

rem 集約用CSVに書き出し
set INTEGRATED_CSV=X:\EmoCheckData.csv
type !CSV! >> !INTEGRATED_CSV!

rem Xドライブをアンマウント
net use X: /delete /yes

rem JSONとCSVをlogフォルダに移動
move !JSON! .\log\
move !CSV! .\log\

exit

プロトソリューションではIT資産管理ソフトを活用してEmocheck自動実行ツールを配布しているためファイルサーバーをマウントしておりますが、直接ファイルサーバーへの書き出しでも可能な場合がありますので、ご自身の環境に合わせて修正してください。

配布する素材

各端末へ配布する素材としては、以下となります。

Emocheck.bat

Emocheck_v2.1_x64.exe

jq.exe
※jqコマンドを利用するためにjq.exeも配布しております。

これらを配布し、スタートアップにBatを登録することで、PCログイン時に自動で処理が実行され結果を収集する事が可能となりました。

今後の構想

今回構築したEmocheck自動実行ツールだと以下の点が対応できておりません。

・在宅勤務者等のファイルサーバーへアクセス出来ない場合は情報の収集が出来ない

・情報の収集は出来るが、アラート発報はされないためCSVファイルを担当者が目視で確認する必要がある

検討している事として、

API等の受け口をAWSに構築しクライアントPCからCurlで情報を収集する。
APIの裏側にLamdbaでアラート発報の仕組みを構築する。

の2点を構築しようと考えております。

おわりに

現在社内で利用している約1000台の端末に配布、集計が手動実行より数日単位で工数が削減できたのは大きな成果でした。

また、このEmocheck自動実行ツールをスタートアップに登録することで、ログインごとに実行となるため手動で毎日実行する分の工数も削減されております。

Emotetの対応やサイバー攻撃が巧妙化している中で、対応に励んでいる皆様の少しでもお役に立てればと思い本記事を作成致しました。

未熟な点もたくさんありお見苦しい箇所もあったかと思いますが、皆様からのフィードバックを得て、私自身も成長に繋げられたら幸いです。

最後までご覧頂きありがとうございました!

インフラエンジニア

インフラエンジニア

沖縄本社では、一緒に働くインフラエンジニアを募集しています

AIエンジニア、システムエンジニア、その他多数募集中!

ページトップへ戻る