[怪談]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しますので、ご安心ください)

サイバー攻撃者、誤って盗んだ資格情報をGoogle検索可能にして手の内を暴かれる / Passwords stolen via phishing campaign available through Google search(転載)

phishingPasswords stolen via phishing campaign available through Google search:

フィッシングキャンペーンの運営者の悪手が、攻撃で盗まれた資格情報を公開し、Google クエリで公開していた。

チェック・ポイント・リサーチ社とサイバーセキュリティ企業オットーリオ社の専門家が、世界の数千の組織を標的にした大規模なフィッシング・キャンペーンに関する調査の詳細を発表しました。

このキャンペーンは8月から行われており、攻撃者はXeroxのスキャン通知を装った電子メールを使用し、受信者に悪質なHTML添付ファイルを開くように促していました。このトリックにより、攻撃者は Microsoft Office 365 Advanced Threat Protection (ATP) フィルタリングを回避し、1000人以上の企業従業員の資格情報を盗み出すことができました。

専門家は、フィッシングキャンペーンの背後にあるオペレーターがエネルギーと建設会社に焦点を当てていることに気づいたが、簡単なグーグル検索で一般に公開されている攻撃で盗まれたクレデンシャルを誤って公開してしまった。

建設・エネルギー部門を標的としたフィッシング・キャンペーンの運営者が、簡単なGoogle検索で一般に公開されている攻撃で盗まれた資格情報を公開しました。

"興味深いことに、攻撃チェーンの単純なミスにより、フィッシング・キャンペーンの背後にいる攻撃者が盗んだ資格情報を、攻撃者が使用していた数十台のドロップゾーン・サーバにまたがって、公衆インターネットに公開してしまいました。Google で簡単に検索すれば、誰でも、漏洩して盗まれたメールアドレスのパスワードを見つけることができました。

被害者がHTMLファイルをダブルクリックすると、文書内にあらかじめ設定されたメールが入ったぼやけた画像がブラウザで開かれます。

HTMLファイルを起動すると、バックグラウンドでJavaScriptコードが実行され、パスワードを収集し、攻撃者のサーバーにデータを送信し、ユーザーを正規のOffice 365ログインページにリダイレクトします。

フィッシャーは、独自のインフラストラクチャと、盗まれたデータを保存するために使用されるWordPressのウェブサイトを侵害した両方を使用していました。

"悪質なPHPページ(名前は「go.php」、「post.php」、「gate.php」、「rent.php」、「rest.php」)をホストし、フィッシング攻撃の犠牲者からのすべての受信資格情報を処理する数十台の侵害されたWordPressサーバーを発見しました。"と投稿は続きます。

"攻撃者は通常、既存のウェブサイトの知名度が高いため、自社のインフラではなく、侵害されたサーバーを利用することを好みます。評判が広く認知されていればいるほど、セキュリティベンダーによって電子メールがブロックされない可能性が高くなります。

メールはMicrosoftのAzure上にホストされているLinuxサーバーから送信され、PHP Mailer 6.1.5を使用して送信され、1&1のメールサーバーを使用して配信されることが多かった。

また、攻撃者は危険なメールアカウントを介してスパムメッセージを送信し、正当なソースからのメッセージであるかのように見せかけています。

ドロップゾーンのサーバーに送られたデータは、Googleがインデックスを作成できるように、公開されたファイルに保存されました。これは、Googleで簡単な検索をすれば誰でも利用できることを意味します。

盗まれた資格情報~500件のサブセットを分析した結果、被害者はIT、ヘルスケア、不動産、製造業など幅広い対象業界に属していることが明らかになりました。

チェック・ポイントは、その調査結果をGoogleと共有しました。

専門家は、このキャンペーンで使用されたJavaScriptのエンコーディングが、2020年5月に行われた別のフィッシングキャンペーンで使用されたものと同じであることに気づいた。

[OSINT]Shodanを使ってFileZenを探せ(転載)~すごく参考になるOSINTの事例~



VTの件、なかなかウケが良かったのは嬉しかったです。 あわせてこちらも改めて… [OSINT]Shodanを使ってFileZenを探せ その1|__aloha__ #note note.com/hiro_shi_note/…: VTの件、なかなかウケが良かったのは嬉しかったです。
あわせてこちらも改めて…

はじめに

FileZenというツールをご存じでしょうか?FileZenはソリトンシステムズ(株)が開発する、ファイル共有アプライアンスです。FileZenを使っている層は官公庁、地方自治体や企業等の法人です。FileZenでGoogle検索をすると、このように広告が載る事からも、主なターゲットは自治体と言えます。

画像1

そんなFileZenですが、2020年12月2日に脆弱性が公表されました。脆弱性についてはJPCERT/CCからも注意喚起が発出されたことからも、それなりに注目度が高い、と言えます。残念ながら現時点ではCVEは確認できず、脆弱性の種類も何なのか、不明といった状況です。(情報更新:12月10日にソリトンシステムズ(株)から脆弱性に係る情報が詳細の公開されました。https://www.soliton.co.jp/support/2020/004278.html

画像26

今回はそんなFileZenを、前回の記事同様、主にShodanを使って調査をしてみたいと思います。なお、記事の長さの関係上、その1とその2にわけて記します。その2については後日、公開をします。

1章: Filezen特定の足掛かりを見つける。

 Shodanを使って調査をする場合、まずは調査の起点となる足掛かりを見つけることから始めます。FileZenのフィンガープリントを探すためにFileZenの公開サーバを探します。この手のツールはだいたい、Youtubeで使い方を公開していたりします。今回はCTCさんが動画を公開していました。


これをみているとわかるのですが、

画像3

ログイン画面が存在しており、画面内から"FileZen, Copyrights(C)"の文字列がありそうな事が伺えます。この辺は調査に使えそうです。しかもCopyrightsにYearも入っています。これはもしかして…
 それではGoogleを使ってFileZenを使っているホストを特定します。Googleで"Filezen"を検索します。検索結果のほとんどはSolitonさんのページなのですが、その中に一つ気になる結果が含まれています。

画像4

 どうもPDFでつくられた利用マニュアルのようです。実際に見てみましょう

画像5

早速URLが特定できました。その他、参考になる情報がいろいろ含まれていました。実際にアクセスをしてみます。

画像6

FileZenですね。その他、以下のように調査すると「それらしい」結果が返ってくることわかっています。

画像7

まずは滋賀案件を手掛かりに調査を進めます。

画像8

IPが特定できました。

2章 足掛かりをもとに実調査のフェーズ

第1章ではIPの特定までできました。それでは調査を進めていきます。このIPをShodanをつかって検索します。

画像9

 見つかりました。ここからもう少し掘り下げていきます。"View Raw Data"からスキャン結果を見ていきます(ここからは要ログイン、課金が必要な場合があります)。
 Raw Dataですが、Finger printとして使えそうなデータが多数含まれています。今回は大きく二つ、Finger printの候補がみつかりました。一つはfavicon、もう一つはtitleです。

画像10

これは攻撃者にもよくみられる「パッケージで買ってきたものを変更しないままデフォルトで使ってしまう」という”Bad habbit”が見られる箇所です。特にFaviconについては存在に気が付かない事があり、デフォルトのまま残ってしまう事も多く、攻撃者インフラの特定にも使える技術となります。今回のこのケースですがどうもデフォルトでFileZenのFaviconが使われているようです。下がそのFaviconになります。

画像11

 もう一つはTitleですが、これは変更済ケースがあることを先のGoogle検索の結果から得られています。とはいえ、デフォルト運用している、”より意識の低い”組織の特定には使える要素です。
 それではハッシュ値を使った検索手法で調査をします。検索式は
”http.favicon.hash -1338145819”  です(要ログイン)。

画像12

このFaviconを使っていたホストは224IPあることがわかりました。
ちなみに、タイトル検索についてはhttp.title:FileZenの検索結果はこちらです。

画像13

 それぞれの結果をORで集計して重複を排除すればホストの特定はできそうです。個人的にはホストを特定するところは技術的な観点では興味がないのでやりません。その2で結果のバルクダウンロードのテクニックも書こうと思いますので、もしご興味あるかたはやってみてはいかがでしょうか?
 さて、この検索結果を得て、内容を見ていて、「モヤっ」とした、あることに気が付きました。それが次の章です

3章: モヤっ1?他に調査手法・観点があるのでは?

 得られた結果について、ぜひじっくり見ていただければと思います。そして違和感に気が付くのではないでしょうか。それはResponse headerです。

画像14

2012年です。あまりに古すぎて違和感を感じます。別のホストを見てみましょう。

画像15

これもLast-Modifiedが同じだ。まさかこの2012年のLast ModifiedはFilezen特有のものではないか?と感じたら検索です。
"Last-Modified: Sat, 29 Dec 2012 06:08:22 GMT"

画像16

 上図の結果をみていただければおわかりいただけると思いますが、Faviconを変更したとしてもFileZenで動いているホストが見つかってしまっています(もっとも、タイトルがFileZenですので、タイトル検索の結果からもこのホストに係る情報は得られています)。この検索手法の場合、関係のないホストが結果に出てしまう欠点はあるのですが、調査の手掛かりのヒントにはなります。さて、このLast Modifiedですが、これがさらなるモヤッにつながります。

4章: モヤっ2?Last Modiedのヘッダは、何に依存?

 'Last-Modified: Sat, 29 Dec 2012 06:08:22 GMT'の謎は何なのか。実際にこのResponceヘッダを返してくるホストにアクセスしてみます。 

画像17

ここのホストにアクセスしてみます。注目は表示されたWebページのフッタです。

画像18

 2008-2018年のCopyrightです。実は他のホストも同じような傾向を示しています。別のヘッダをみてみます。

画像19

このケースは2019年です。このWebを見ると以下となります。

画像20

2019年のヘッダの場合、Copyrightは2019年までとなっています。2020年のヘッダの場合は

画像21

画像22

となっています。すべてを調べているわけではありませんが、どうもヘッダのLast Modifiedを以てFileZenのファームウェアのバージョンの特定まではいかないものの、バージョンの推測ができるかもしれません。そこであらためて今回発出された注意喚起を見てみます。

画像23

 今回の脆弱性については2019年1月30日にリリースされたバージョン以降に該当するとの記載が確認できます。

 ヘッダが示す2012年のホストに存在するCopyrightが2018年まで、となると、2012年のLast Modifiedを持つホストは脆弱性パッチが当たっていないのでは?=脆弱性が存在している、と疑いの目を持っている次第です。

その1のまとめ

 今回の脆弱性について、幸い、POC(Proof Of Concept: 脆弱性を実証するコード)は確認できていないため、攻撃を成立させる事はキディレベルであれば難しいと考えられます。また、そもそも脆弱性が不明という事もあり狙うためのモチベーションも高くならないのではと想像します。
 とはいえ、過去に公開されたFilezenの脆弱性を確認すると

画像26

RCEとDirectory traversalです。少し気になっているのが、今回リリースされたパッチは、過去のバージョンに遡って対応をしている事です。脆弱性の種類については現時点では不明ですが、この時の修正漏れが原因であれば、同様の脆弱性である可能性は想像に難くありません。
 いろいろと書き連ねてきましたが、エンタープライズ、個人においてもパッチ管理はセキュリティにおける基本中の基本。特にインターネットに公開されているシステムについては脆弱性が公開された場合、即時対応が基本だと考えます。
 そういった観点ですと、

画像24

 CAO=内閣府さんに限らずですが、公開サーバのパッチマネジメント、大丈夫ですか?と心配になってしまいます(余計なお世話)。と同時に開発側も、バージョンを推測できるような不用意な実装な避けるべきでしょう。もちろん、今回のケースではバージョンが確実にこれだ、と特定できたわけではありません。しかし、攻撃の戦略を組み立てる中で最小限の工数で最大限の成果を得ることは基本です。バージョンが推測できるなら、まずはそこを狙うのは攻撃者の心理として想像に難くないと考えます。もしこれが、デコイなのであれば、心配は稀有であり、流石です、の一言になります。