最近、「マルウェア感染したと思うのだが、アンチウイルスソフトや不正プログラム抽出ツール等を試したが何も見つからない」といった話をよく耳にします。
その多くは、IDS/IPSやURLフィルタなどにより不正通信を検出しているのですが、いざPCを調べると何も見つからない、といったものです。
#当然、マルウェア作成側も念入りにアンチウイルスソフト等では検出されないように設計していますので、そう簡単には見つからないです。

そこで、今回は検出されずらいマルウェア隠し場所とその検出方法の一例を紹介してみたいと思います。少しでもお役に立てて頂ければ幸いです。

今年に入ってから、ときどき見かけるものとして、古典的な手法ですが、ADS(NTFS代替データストリーム)を利用してマルウェアの本体を隠す手口です。
この手口を悪用するものとして、例えば最近人気(?)のPoison Ivy(トロイの木馬)などがあります。
Poison Ivyの機能に取り込まれたのは、比較的最近のバージョン(2.3.0〜)からですので、攻撃者から見ればそれなりに効果が期待できるということなのでしょう。

Poison Ivyの場合、ファイルを隠すために利用されるフォルダは、Windowsフォルダとsystemフォルダに限定されています。
ディスクエディタ等で確認すると、下図のhkcmds.exe(C:¥Windows¥system32:hkcmds.exe)のような状態となります。
#ADSにより隠されたファイルは、通常のWindowsのエクスプローラー等の操作では見えません。

ads

この隠されたマルウェアに対し(1)〜(3)の操作により検出および抽出を試みます。
(1)Windowsのファイル検索
(2)アンチウイルスソフトによるフルスキャン
(3)ADSファイル検索ツール

これらの操作の結果は、
(1)では見つけられません。恐らく、Windows APIを利用している資産管理ツール等でも見つからないと思います。(未確認)
(2)は5つのソフトウェアをテストしたところ、2つが検出されました。いまいち確実性に乏しいです。
(3)は確実に抽出することが可能です。ADSを検出することに特化してますので当然ですね。

他にレジストリを確認することで検討をつけることは可能ですが、この作業はなかなか骨が折れます。
ちなみに、上の例ですとレジストリは次のような内容が書き加えられていました。

Key: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
 Value Name: HotKeyscmd
 New Value: “C:\WINDOWS\system32:hkcmds.exe”


#感染日時がある程度目星がついており、感染端末の保全状況が良いと比較的容易に見つけられるかもしれません。

今年に入ってから、本ケースのような事例は少なくありません。もしアンチウイルスソフト等では何も検出されていないが、不審な通信を行っている、などの挙動がありましたら一応ADSもチェックしておくと良いかもしれません。
また、何か興味深い事例等ありましたら投稿したいと思います。
ではでは。