Comae Stardustで、ゼロから学ぶメモリフォレンジック|セキュリティごった煮ブログ

ネットエージェント
セキュリティごった煮ブログ

 コース:こってり

Comae Stardustで、ゼロから学ぶメモリフォレンジック

セキュ松

この間、声優さんのライブに行ったんですが、
MCの最中に
「最近PCがウイルスに掛かっちゃって~」
と言っていたので、
「フォレンジック~~~???」
と叫んできました。

周りからの「え?なにそれ?」みたいな視線が気になったので、
「ランサム~~???」と叫んだ方が良かったかもしれません。
はじめまして、セキュ松です。
フォレンジック調査についてちゃんと知りたい方は
Google先生に聞いてみてください。
弊社のページが出てくるかと思います。

パロディやオマージュが好きな設定です。
よろしくお願いします。

さて、社内ブログで「こってり」な記事を書いて欲しいと言われたので書きます。
メモリ上のマルウェアを発見したいという気持ちについてと、
Comae StardustというメモリフォレンジックのためのSaaSの紹介記事になります。

本記事を読むことで、社内でインシデントが起きた際の初動調査の役に立つかもしれ
ません。また、この記事のPVが多ければ、真面目にそういった記事を書くかもしれません。

それと、この記事を読んだからといって解けるようになる訳ではないですが、
CTFでフォレンジック問題を解きたい人にも良いかもしれません。

なぜマルウェアの調査を行う上でメモリの調査を行う必要があるかについては、
古事記にも書いてあるくらい有名な話です。
詳しくは、こういった記事を見てください。

■メモリダンプに !analyze -v するまで・前編 ~ ダンプの取り方~
 Japan WDK Support Blog
 https://blogs.msdn.microsoft.com/jpwdkblog/2009/06/03/analyze-v-2/

■IIJ Security Diary: メモリフォレンジックによるマルウェア感染痕跡の調査
 https://sect.iij.ad.jp/d/2011/12/194028.html

では、やっていきます。
皆さんはメモリフォレンジックを行うときに何を使いますか?
Volatility?FTK imager?Redline?Memoryze?WinDBG?
今回は上記のどれでもありません。

冒頭でも書きましたが、最近開始されたサービスで、以下のようなSaaSがあります。

■Login - Comae Stardust - Memory-based Cyber Threat Hunter
 by Comae Technologies
 https://my.comae.io/login

これを使います。
これはダンプしたメモリのイメージをアップロードすると良い感じに解析してくれるやつです。


まず、ログインを求められます。
何かしらのソーシャルなアレでアカウントがアレ出来るので、適当に作ります。
アカウントを作ってログインするとメモリをダンプするためのツールを
ダウンロードすることができます。



ただし、このサービスを使ってみた 2017/7/13時点ではサービス自体が未だβ版であり、
解析機能に至ってはクローズドβテストの最中でした。
そのため、解析を行える人柱になるためには、アンケートに答えた上で"選ばれる"必要が
ありました。

さて、ダウンロードしたツールの中には、
ハイバネーションファイルをバイナリに変換してくれたり、RAW形式で取得したメモリ
イメージをクラッシュダンプに変換したりしてくれるツールもあります。
この記事では扱いませんが、Readme.txtに使い方が書いてあるので、
試してみると面白いかもしれません。

メモリをダンプするために、ツールの中に含まれているDumpItを使います。
オプションで色々とできますが、今回はオプションを付けずに実行します。
何が出来るかはreadme.txtに書いてあるので気が向いたら読んでみてください。



はい。



処理が開始されます。



その後、しばらく待つとイメージができました。


あとは解析するだけですね。
このメモリダンプを行った時点ではComae Stardustのβテストを申し込んだばかりであり、
(申込みが必要なことに気づいていなかった)ブログの締め切りまでに間に合いそうにない
なーと思っていたので、Volatilityを用いての解析をちょろちょろっと書くつもりでした。


が、


"選ばれ"ました。



申し込みを行ってから通知がくるまで1日でした。
早いですね。

早速メモリダンプファイルを上げてみます。
メモリサイズや、使っているインターネッツの回線にもよりますが、
数時間かかる場合がありますので、寝る前などに行いましょう。


ここで注意です。
※社内PCのメモリのイメージをアップロードする際、社内規則に違反していないか確認
 してください
※ダンプされたメモリには、あなたが思っている以上に様々な情報が含まれている危険性
 があります
※本記事内で紹介しているサービスによる機密情報の漏洩について、弊社は一切責任を
 負いません

さて、見ていきます。
Malicious 3と書いてあり、3つも!?と驚きました。
検証用に新しく用意した真っ白な環境なのでマルウェアが入っているはずがないんですよね。



このexeらしいです。



良かったですね。

と、ここで終わらせると適当すぎて怒られそうな気がするので、もう少し書きます。

そもそも、このサービスでメモリ解析を行うと、

・動いていたプロセスの一覧や接続されていたデバイスの一覧
・読み込まれているdll
・プロセスツリー
・プロセスが実行されたタイムライン

などを分かりやすく表示することが出来ます。
ここまで聞くと「便利っぽい!」となりますが、全部Volatilityで出来ます。

さらに、その中にマルウェアっぽいやつがあると、検知してくれる上に、VirusTotalのリンクまで貼ってくれます。
VirusTotalについて話を始めると脱線してしまうので、
Wikipediaのリンクを貼ってお茶を濁しておきます。
知らない人は読めば分かるようになるかもしれません。

■VirusTotal - Wikipedia
 https://ja.wikipedia.org/wiki/VirusTotal

上記のWikipediaにも書いてあり、繰り返しになりますが、
「アップロードしたファイルは全世界で永続的に販売されるため、個人情報や機密情報を
 アップロードすれば漏洩する。」

ので、気を付けましょう。


これらのことを、ただイメージをアップロードするだけで適当にやってくれるので、
CTFの問題などのイメージを上げておけば、
実際に解くときに参考にするために使えそうという気持ちです。

さて、下の画像で赤くなっているところが、VirusTotalで報告されている悪いやつです。
Malicious 3の内訳は、
先程のexeファイルの中に2つ、下記画像で示されているドライバに1つでした。

先程のexeファイルをもう少し詳しく見てみます。



モジュールとVADsが赤く表示されています。
Modulesでは、このプロセスに読み込まれているdllの一覧が表示されます。
VADsでは、このプロセスを実行したときの仮想アドレス空間が表示されます。
この2項目を表示すれば問題点が分かるようです。

Modulesを表示してみました。



このdllに問題があるみたいですね。

次に、VADsを表示してみます。



ここに問題があるということがわかります。

どちらも検知理由は「injected executable」と書いてあり、
dllインジェクションが起きているような検知内容です。

上記以上のことは、このSaaSでは分からないですが、
調査や問題を解く際の手がかりとしては十分だと思われます。


次に、Maliciousとして検知されていたドライバを見てみます。



ドライバをクリックすると次のように詳細が表示されます。



Sectionsのタブをおもむろに開くと、赤く表示されているセクションがあります。



クリックすると、



こんな感じでVirusTotalのリンクを開いてくれます。
今回のドライバは、検知が1つのAVソフトでしかされておらず、
「これは誤検知では......?」といった感じです。

個人的に疑わしいものは調査した方が良いと思うので、
とりあえず1つでも検出しているAVソフトがあれば、教えてくれるのは良い点だと思います。

続いて、これはプロセスツリーの様子です。
Graphタブから表示することができます。



格好良く表示されています。
多分この画面を見ているだけで仕事している感を出せると思います。
赤くなっているプロセスの親子関係などを眺めて幸せになりましょう。


次にプロセスのタイムラインです。



そのプロセスが何日の何時から動いていたのかを表示できます。

画像では1日単位ですが、もっと時間を細かく表示することもでき、
Alt + スクロールでミリ秒単位まで見ることができます。
何気にこの機能が一番便利かもしれません。


次にUSBデバイスの一覧の様子です。


Registryのタブでは、レジストリ内のAutorunsの項目から自動実行に登録されているソフトウェアを表示してくれます。



他にもServicesやSocketsなどのタブがありますが、何も表示されていませんでした。
β版だからなのか、本当に該当する情報がなかったからなのかは分からないですが、
今まで紹介した機能だけでも十分に有用なサービスだと思います。

実際のフォレンジック調査では、お客様の情報を外部サービスに上げると
インシデントになってしまうので使えないですが、
趣味でメモリフォレンジックを行う際や、社内的に許可が出れば問題ないのではないでしょうか。

解析を行わないにしても、メモリダンプの方法を知っておけば、
社内端末がマルウェアに感染した際に、とりあえずメモリダンプができるので、
フォレンジック調査員としてはありがたい限りです。

ということで、メモリフォレンジックについてのあれやこれやでした。

メルマガ読者募集 セキュリティを学ぶ

月別