2021/02/17

[怪談]VirusTotal沼のお話(転載)~VirusTotalに気軽にファイルアップロードするとどうなるかが良くわかる(笑)~


[怪談]VirusTotal沼のお話(対策含):

こんにちは。今回はセキュリティ関連の調査で非常に便利なサイトである、皆様お馴染みのVirusTotalについて書いてみようと思います。もちろん、タイトルにある通り、「怪談」ですので、一般的な使い方のお話についてはしませんよー。

VirusTotalの裏コマンド「VTENTERPRISE」

 やや煽り気味のタイトルですが、VirusTotalには大きく二つの「サービス」があることはご存じでしょうか?一般の方が使うのはいわゆるVirustotalといわれるこちらです。こちらは無料で使えます。

画像1

 他方、セキュリティ企業やセキュリティを重視する企業がお金(年額120万円以上/Person)を払う事で使えるのが、Virustotal Enterpriseというものです。

画像2

VirusTotal Enterpriseは無償のVirusTotalと比較すると様々な機能が追加されています。大きくこのような機能が提供されています。

・アップロードされているファイルを閲覧、ダウンロードする機能
・ファイルを様々な条件を用いて検索する機能

 ダウンロードについては読んでそのままですので、「沼」としては検索機能が該当するのではないでしょうか?

[VT Intl]様々な条件を用いて検索する機能

  セキュリティ企業等は、VTENTERPRISEの機能を使い、調査を行います。その調査に使われるのが、VirusTotal Intelligence(VT Intl)と呼ばれる機能です。

画像3

[search]を使って検索 

実際にどのような検索ができるのか、ちょっと見てみましょう。

画像4

 詳細についてはこちら(VirusTotal Intelligence Introduction)にご紹介があります。色々できることがわかるかと思います。例えば"File name"検索もできます。メタデータであるとかも検索が可能です。ちなみに、ファイルに含まれる文字列の検索も可能です。

Huntingを使ったファイルの調査

 searchでは、search機能を使ったファイルの検索について書きました。VT Intlにはもう一つ、ファイルを検索する機能があります。それがVT Huntingと呼ばれる機能です。VT Huntingは"YARA"と呼ばれるエンジンとYARA Rulesと呼ばれるルールを用いて条件(ruleに係れている条件)に一致したファイルを見つけます(YARAは本来、グルーピングを目的としているため、「検索」としてしまうのは言葉としては相応しくないかもしれません)。
 VTHuntingには大きく二つの機能があります。一つ目は「Livehunt」です。LivehuntはVirustotalに新規にアップロードされてきたファイルを見つけます。もう一つが「Retrohunt」です。Retrohuntは過去90日(※日数はライセンスに依存)、Virustotalにアップロードされてきたファイルを見つける機能です。Virustotalで実際につかっているYARA Ruleについて、簡単なサンプルをお見せしたいと思います。

画像5

 ルールはこのようにして書きます。このルールだとGoogle Chrome Extension、CRX3フォーマットのファイルでかつ、Antivirusエンジン2種以上がマルウェアとして判定しているファイルを見つけます。Livehuntの結果はこのような感じです。

画像11

 このYARAは常時稼働しており、条件に一致したファイルがVirustotalにアップロードされてくるとアラートを発報させることが可能です。

VirusTotal沼と怪談

 ここまでで、VirusTotalの一般的な機能についてご紹介をしました。ここからは本題の「沼」と「怪談」についてお話をします。沼、というかビッグデータというか…沼と書いたのは、調べ始めると抜け出せなくなる、という観点で沼とかきました。怪談はこれまた恐ろしいお話です…

VirusTotalにはどんなファイルがアップロードされているのか?

 ここまででご紹介したファイル検索等の機能を用いて調べていくと、VirusTotalには様々なファイルがアップロードされていることがわかります。「真っ当な」ところから行ってみましょう。

画像6

 こちらはLODEINFOと呼ばれるAPT(Advanced Persistent Threat)で使われたMalwareです。このようなファイルがアップロードされてくることがあります。さて、沼の本領発揮はここからでしょうか? 例えば~という名前が含まれるファイルを探してみます。

画像7

 な…なんか香ばしい名前のファイルが見えてきました💦 VirusTotal上で見てみましょう。VTENTERPRISEでは、一部のファイルはVT上で閲覧することが可能です。

画像8

げ。。。。気を取り直して。。。💦

画像9

ちょおま。。。警視総監ってだれよ

画像10

 Orz げにおそろしや。まさに怪談です(?)。

画像20

画像22

これは絶対ダメだろう…実は組織も特定できていますが、その組織がセキュリティ対策としてどのような部分を強化しようとしているのか丸見えです。2017年時点でOSINT能力の向上を図る他、Celebrite…(恐)
実はこのほかにも沢山、絶対に表ではかけないようなものも沢山見つかります。探し出して分析するとそれこそ無限にあるのでは?というほど出てくる、そう、始めると沼にはまります。そんな沼、過去に見つけたものとして、日本国内の空港のフロア図面であるとか(恐)。相手先が特定できるものについては連絡を取ることもあります。

なぜこのようなことが起きるのか?

 今回のBlogの目的はこういう実態を晒すことが主目的ではありません。なぜこのような事が起きるのか?機微な情報をアップロードしてしまった組織の担当者の方にヒアリングした結果見えて理由が二つありました。

原因1: 従業員が不審と思ったファイルを勝手にアップロードした

 一番想像に難くないのがこの理由ではないでしょうか?もし貴方の組織が情シスなりセキュリティ部門があるのであれば、これについては対処すべきです。時々見るのが標的型メール訓練につかわれたマテリアルがアップロードされているケースです。

画像12

画像13

 このケース、アップロードした従業員だけに非があるのでしょうか?個人的にはそうは思いません。

原因1への対応: 教育とアクセス制限の実施

 まずは教育です。このような外部のサービス(約款に基づく外部サービス)にアップロードすることのリスクについて、具体的に説明をするべきです。外部にファイルをアップロードすると、必ず誰かに見られている=情報は漏洩している、という事を、教育によって具体的な脅威を意識付ける事が大切です。コンサルティングをしていると従業員向けに「情報漏洩に繋がる事から外部にファイルをアップロードしてはならない」といった記載が見受けられますが、VTのようなLegitなサービスにおいても、そのようなリスクがある、ということ(Legit、特にマルウェア解析系サービス)はインプットすべきです。
 と同時に、企業など組織においては、可能であればアクセス制限を実装することを推奨します。HTTPSが標準化されている昨今、アクセス制限実装のハードルが高くなっている事も事実です(※)。HTTPSをPROXY等を用いてデコードをしている場合はHTTPのPOST量制限を行いUpstream通信の量を制限する事も一つの選択肢となります。
(※ハードル:ここでいうハードルは大きく二つあります。一つはHTTPSはデータが暗号化されていて可読ではない事。もう一つは可読とする場合、追加投資が必要な他、実装する装置に大きな負荷がかかり、スループットが極端に落ちる事が挙げられます。)

原因2: ブラウザエクステンションにより、バックグラウンドでアップロードされた

 意外と多いのがこのケースです。かなり詳しい方(だからこそ起きやすい事故ではあるのですが)を中心に、情シスやセキュリティ担当部門で発生するケースがこれです。VirusTotalにはFireFox、Chrome向けにブラウザエクステンションが用意されています。

画像14

Browser Extensions

 このブラウザエクステンション、Scan downloads before storing them と呼ばれる機能があります。

画像15

 この機能の注釈をよく読んでいただければわかると思います。日本語訳(意訳含む)したものがこちらです。

親友のJohnDoeからスライドプレゼンテーション付きのメールが届いたとします。これらのスライドには、コンピュータを危険にさらすエクスプロイトコードが含まれていることがよくあります。ウェブメールのスライドプレゼンテーションをクリックすると、ダウンロードダイアログが表示されます。あなたは用心深いユーザーなので、まずはVirusTotalでファイルをスキャンすることにしました。ファイルがVirusTotalパートナーおよびプレミアム顧客と共有されるという事実を考慮し、ファイルの内容が共有に適していること十分に理解しています。

 そのうえで次の内容を見てみましょう。

画像16

You can also decide if you want to send Documents to VirusTotal. This is important because you should not send documents with sensitive information to VirusTotal.

 実はデフォルトではファイルは送られません。しかし、設定によっては、ダウンロードしたファイルがVirustotalに送られてしまう事がここからもわかるかと思います。
 最近ではMUAを持たず、ブラウザ経由のWeb Mailでメールを読むことが多いかと思います。VTに漏洩したケースについて当該組織にヒアリングすると、Web Mailを使っていたユーザが、メールの添付ファイルをブラウザ経由でローカルにダウンロードした結果、このExtensionによりすべてのファイルがVirustotalに送られてしまったケースを多数聞いております。

原因2への対応: Browser Extensionの管理(と教育)

 ChromeではBrowser Extensionの管理が可能です。そのような機能を使って、対象組織へガバナンス、エクステンションの利用制限を効かせることが、一つの対策になります。また端末内のファイル操作をモニタリングをすることでもある程度の把握は可能です。
 本件の趣旨からは逸脱しますが、Browser ExtensionについてはPUPsに該当するような不審なExtensionを観測する機会も増えています。組織においてはBrowser Extensionの管理について、実施検討をすすめられも良いかもしれません。

追加: あげないほうが良いファイル

 よく見かけるのがメール関連のファイル(.eml、.msg等)です。メールについてはメール本体をアップロードしても、良い結果を得る事はほぼありません。むしろ…

画像17

 このような形でヘッダが見られてしまう事から、どこの組織がファイルを送ったのか、特定ができてしまいます。過去に標的型攻撃につかわれたメールをそのままアップロードしていたケースもあり、その結果どこの組織が狙われていたのかがわかってしまいました。メールについて、もし不審な点があるようであれば、「何もしないで削除する(特に個人の場合)」か、「担当部署に相談する(組織の場合)」が正解です。先にも書きましたがメール本体をアップロードしても、良い結果を得る事はほぼありません。私に今夜のオカズを提供したいのであれば、ぜひお願いします。メールのアップロードは監視対象としています。

誤ってあげてしまった場合の対処

 VirusTotalについては、個人情報や機密情報が含まれるファイルについては削除に応じています。もし誤ってファイルがアップロードされてしまった場合は速やかにVirustotalに連絡をして、削除等の依頼をしてください。ただし、そのファイルがMaliciousと判定されていた場合、その対応は容易ではないこと(断られる)は留意してください(過去にそのようなケースがありました)。
I accidentally uploaded a file with confidential or sensitive information to VirusTotal, can you please delete it?

画像18

まとめ:

 今回は「Virus Total沼」と題して、VirusTotalを使う事で発生しうるリスクについて書かせていただきました。しかし、これはVirus Totalに限った話ではありません。他のファイルスキャンサイトであったり、ファイル変換サイトであったりと、様々なところで、リスクになりうるサービスとその利用が考えられます。その点については十分に注意をされることを推奨します。
 さて、最後に、「沼」と書かせていただきましたが、結局はこれは何かと言うと、私が独自に作成したルールに合致したファイルを毎日にように見て、晩御飯のおかずにして、そしてそれがいつまでたっても終わりが見えない様を「沼」と表現していました。今後もおかずを安定供給していただきたく、機微度の高いファイルがアップロードされてくるのを待っておりますぞ!(本当にやばかったらすぐにCSIRTにDMしますので、ご安心ください)