悪性スクリプトの埋め込み方法の最新動向
本レポートは、アンラボコリアより発表された内容を翻訳したものです。
----------------------------------------------------------------------------------------------
こちらでは、2014年7月6日~2014年7月16日に収集されたコードを例として、悪性スクリプトの埋め込み方法の最新動向に
ついて説明する。
アンラボASEC対応チームは、発見されるさまざまな悪性スクリプトに注目し、関連サンプルおよびその他ファイルに迅速に対応している。
◆悪性スクリプトの形式
埋め込まれる悪性スクリプトの形式は非常に多様である。
1. 悪性iframe

[図1] 埋め込まれた悪性iframe
最も簡単な方法が、悪性iframeの埋め込みである。 多くの場合、<html></html>タグの外に埋め込まれており、一般的には他のパッキング形式を2段階ほど経て最終的に脆弱なページに移動する。
2. Eval&Document.writeを利用した多様なエンコード
javascriptコードを動的に実行するeval、Unescape関数とDocument.writeメソッドは、javascript難読化と非常に関連深い。当該関数およびメソッドは、各種hex、decimalエンコードを始め、文字列を切り取って貼り付ける難読化コードなど、さまざまなエンコード分野で使用される。
・ Hexエンコード形式

[図2] Document.writeメソッドを利用したhexエンコード形式
単純文字列をHex形式に変換後、ascii文字列に変換して出力する形式である。
「\x」の代わりに、「%」を利用した「URL encoding+Unescape」形式も同様に使用される。
[図3] hex to asciiへの変換前(左)、変換後(右)
・ decimalエンコード形式

[図4] eval + fromcharcode形式のDecimalエンコード(1)
類似した形式として、fromcharcodeを利用したdecimalエンコード形式がある。
hex形式と同様に、ascii文字列に変換して実行する方法である。[図5]のようにjavascriptに変換され、evalを通じてソースが実行される。

[図5] decimal to asciiへの変換前(左)、変換後(右)
変形形式として、文字列の組み合わせとdecimal操作を通じたエンコード形式がある。

[図6] eval + fromcharcode形式のDecimalエンコード(2)
当該コードは、w因子に数字を入れ、decimalを該当する数字で分けてasciiに変換する形式である。

[図7] decimal to asciiへの変換前(左)、変換後(右)
単純なHex、decimal形式エンコードではなく、文字を再び組み合わせて実行する形式であり、「文字の再組み合わせ+eval」形式は、単純なエンコードのみならず、Caihong Exploit kitなどにも広く使用されている。

[図8] splitメソッドを利用したコードの再組み合わせおよび実行
[図8]のような難読化は、文字列の配列を「|」で分割して、数字で並べた後、配列に該当する数字に置換える形式である。

[図9] 置換前(左)、置換後(右)
3. Space&Tab難読化
置換えを利用した難読化は、[図8]の文字列置換の他に、Space&Tab難読化がある。

[図10] Space&Tab難読化
正常な文字列に見えるが、当該ファイルをバイナリエディタ (Hex editor)で開いてみると、[図11]のように多くのSpaceとTabで構成されていることが分かる。

[図11] バイナリエディタ(Hex editor)で確認したSpace&Tab難読化
SpaceとTabで構成された文字列を上段にある復号化関数を通じて正常なコードに復号化する。

[図12] 置換前(左)、置換後(右)
復号化されたソースは再び悪性ページに誘導するか、悪性ファイルをダウンロードおよび悪性swfをロードする。
4. Caihong Exploit Kit
最後に説明する難読化は、数年前から多く使用されている「Caihong Exploit kit」である。ここでは、図を使用して説明する。
[図13] Caihong難読化の構造
[図14] CVE別のCaihong構造、復号化前(左)、復号化後(右)
[図15] 復号化されたマルウェアのダウンロードURL
ダウンロードされるファイルは、Trojan/Bankiファイルであり、hostsファイルを修正してファーミング症状を起こす。
[図16] hostsファイルに登録するドメイン情報
■ AhnLabのV3製品群では、次のように検知・駆除することが可能である。
Trojan/Win32.Banki (2014.04.19.00)
SWF/Cve-2014-0515 (2014.07.09.05)