« APT1より危険な攻撃者グループ | メイン | 中国人民解放軍61486部隊(PUTTER PANDA)に関する情報 »

2014年6月 2日 (月)

マルウェア解析奮闘記 ~破損マルウェアを解析せよ~

5月某日、ある検体を入手しました。この時点ではマルウェアなのかどうかは不明でしたが、様々なツール(VirusTotal、サンドボックス、IDA Proなど)の解析の結果は壊れているファイルとなっており、正しい解析結果が得られませんでした。そのため、手動で解析することになりました。

その解析の流れと結果を書きます。

■バイナリエディタで目grep

まずはファイルタイプの調査から開始しました。 

Image01

図1、バイナリエディタ

見ての通り、PEファイルです。ただし、後半部分に白い線がたくさん入っていたり(NULLバイトが連なっている)、中盤が赤い(ASCIIコードが多い)割には意味のありそうな文字列は見当たらなかったりと難読化、暗号化が施されているPEファイルではないかと推測しました。

ちなみにVirusTotalにアップロードした結果、検出率は5/52と低めで、ここでもファイルが壊れている旨の検知結果が見られました。

Image02_2

図2、VirusTotalの結果

■PEヘッダの調査

次に行ったのがPEヘッダの調査でした。PEViewというツールで開いた結果です。

Image03

図3、PEViewで検体を開いた結果

 IMAGE_FILE_HEADERのCharacteristics(赤線)から、EXEファイルではなく、DLLファイルであることが分かりました。しかし、IMAGE_OPTIONAL_HEADER以降のヘッダが存在しませんでした。通常のファイルはIMAGE_OPTIONAL_HEADERやIMAGE_SECTION_HEADERがあります(下図)。

Image04

図4、PEViewで正常なDLLファイルを開いた結果

再び、バイナリエディタに戻り、IMAGE_FILE_HEADER以降を確認したところ、IMAGE_OPTIONAL_HEADERのマジックナンバー(目印)である、「0B 01」(赤枠)がありました。

Image05

図5、OPTIONAL_HEADERのマジックナンバー

さらに、セクション名と思われる「.text」「.data」(赤線)などが見つかりました。破損している箇所はPEヘッダのみであるという仮説を立てて、PEヘッダの矛盾点を探すことにしました。 

■PEヘッダの不審な点の調査

正常なファイルとIMAGE_FILE_HEADERと比較を行いました。

Image06_4

図6、PEヘッダの差異

IMAGE_OPTIONAL_HEADERのサイズが00D0(208バイト)となっていました。MSDNで調べてみるとIMAGE_OPTIONAL_HEADER構造体は固定長の長さ232バイ(00E0)で定義されていました。

■PEヘッダの修正

試しにSize of Optional Headerを0x00D0から0x00E0に変更し、PEViewで開き直しました。

Image07

図7、修正後の検体のPEViewで開いた結果

矛盾がなくなり、正常にIMAGE_OPTIONAL_HEADER以降が表示されるようになり、IDA Proで解析できるようになり、サンドボックス、Virus Totalの結果がすべてマルウェアとして判定される解析結果となりました。

以下はPEヘッダ修正後のVirusTotalの結果です。

Image08_3

図8、PEヘッダ修正後

検出率が修正前の 5 から 23 と大幅に上がりました。

■推察

VirusTotalの結果からも分かる通り、様々なセキュリティ対策では、PEヘッダが壊れていると正しく判定できない場合があります。マルウェアの作成者はこうしたセキュリティ対策をすり抜けるために、あえて、1バイトのみPEヘッダを改ざんしたものと思われます。

 さらに、修正後のマルウェアを調べたところ、Kazy (md5:8b9d534750e0d37ab9acc7bb70f6617e)というマルウェアを生成する「ドロッパー」であることが分かりました。

 このことから、一連の攻撃は以下の通り、行われたと推察できます。

Image09

図9、一連の攻撃(一部想像)

■最後に

過去にも同様の手口でMZヘッダの「M」が足りないマルウェアなどが見つかっています。このようにマルウェアは実行できない状態で配送されて、セキュリティ対策の検知を免れた後に、クライアント上で修復されて実行されるケースがあります。

そのため、実行できないマルウェアが見つかっても、安心せずに、1次検体の存在を疑い、調査をされることをお勧めします。

« APT1より危険な攻撃者グループ | メイン | 中国人民解放軍61486部隊(PUTTER PANDA)に関する情報 »

Macnica Networks Corp.
セキュリティ研究センター

サイバーセキュリティに特化した研究を行うことを目的に2013年4月に開設。

■ミッション

・Threat Research

・Solution Research

・Education
 

小林 靖幸
マルウェアの動的解析と培養を担当。温和な見た目とは裏腹に、休日は鋭い眼光でサイバー空間の監視を行う一人SOCで活動中。好きなデバッガーはx64dbg。

竹内 寛
リバースエンジニアリング(マルウェア解析)を担当。彼の手に渡ったマルウェアはまさに“まな板の上の鯉”と同じ。あとは解析されるがまま。最近の楽しみは、ハイボールを片手に海外ドラマを鑑賞するか、マントノン侯爵夫人に会うこと。好きなマシン語は、EB FE。

柳下 元
リバースエンジニアリング(マルウェア解析)を担当。動的解析では動いてくれないマルウェアの皮を一枚一枚剥がしていく職人技が持ち味。

凌 翔太
CTF、IoTハッキング、マルウェアペンテストツールの開発を担当。Black Hat/DEF CONにてツールを発表。セキュリティキャンプ講師、SECCON実行委員。

政本 憲蔵
インフラ分析とOSINT分析を担当。
Back Orifice/NetBusの時代からRATに興味を持ち現在に至る。好きなことはMaltego Transformの開発とレゴブロック。

BlackHat