脅威スポットライト: ファイルレスマルウェアの真実

By The Cylance Threat Research Team

はじめに

ファイルレスマルウェアは、数こそ少ないものの、実在することは事実です。ディスクにファイルを残さないことから、「ファイルレス」と呼ばれています。このマルウェアは多様な興味深いトリックを使いメモリに常駐し、マシンに存在するコマンドを実行します。PowerShell のようなツールで攻撃を仕掛け、メモリ内DLLインジェクションステージャを使用するmeterpreterペイロードを利用してさらなる攻撃を準備します。

既知のファイルレスマルウェアファミリー

ここで説明する2つのマルウェアファミリーは、この技法を使用することで知られていました:

Poweliksマルウェア

Poweliksマルウェアは、PowerShellを利用してこの技法を採用した最初のケースと考えられています。2014 年に発見されたPoweliksは、Wowliksと呼ばれるファイルベースの脅威からレジストリベースのバージョンへと進化しました。このマルウェアはレジストリに自身をインストールし、ディスクにファイルを残しません。このため、ファイル志向の従来のアンチウイルス(AV)ソリューションでは検知できません。

このマルウェアはまず、Windows PowerShellがシステムにインストールされているかどうかをチェックし、インストールされていない場合はPowerShellをダウンロードします (図1)。次に、気づかれないように PowerShellをサイレントにインストールします(図2).

図1.Windows Powershellがインストールされているかどうかをチェック

図2.Powershellをサイレントにインストール

Poweliksのパーシスタンスメカニズム

Poweliksマルウェアは、レジストリのRunキーに2つのエントリを書き込みます。最初に、(Default)値の下にJavaScriptコード化データ(図3)を、次にこのコード化されたJavaScriptデータを読み込んでエンコードするAutorunエントリを書き込みます。

図3.エンコードされたJavaScriptデータ

Autorunエントリは、rundll32.exeを実行してmshtml.dllを読み込みます。これは正規のWindowsファイルで、RunHTMLApplicationを呼び出します(図4)。呼び出された関数は、レジストリキーにあるインラインのJavaScriptコードを解釈します。このコードがエンコードされたデータを復号化し(図5)、これが第二段階のJavaScriptコードになります:

図4.Autorunエントリ

図5.第一段階のデコードされたJavaScriptコード

第二段階では、PowerShellが呼び出されてDLLが複合化され、それがプロセスにインジェクトされてメモリ常駐となり、ディスクに痕跡は残りません(図6)。

図6.第二段階のデコードされたJavaScriptコード

Kovterマルウェア

Poweliksと同様の技法を使用すると考えられているKovterは、2015年5月に発見されてから少し進化しています

JavaScriptコードがレジストリに書き込まれ、mshtml.dllではなく、Windows Management InterfaceWMI)を通じて、mshta.exeという正規のWindowsファイルによって実行されます。

HKLM\Software\Microsoft\Windows\Current Version\Run
データ: mshta javascript:{javascript code}

Poweliksと同様に、第一段階のJavaScriptコードが復号化されて、PowerShellスクリプトが含まれた第二段階のJavaScriptになります。このPowerShellスクリプトは、エンコードされたシェルコードをデコードして、regsvr32.exeプロセスの割り当てられたメモリ領域にインジェクトします。この技法はProcess Hollowingと呼ばれます。

その他のファイルレスマルウェア攻撃

最近、カペルスキーは、銀行を含む世界140の企業がファイルレスマルウェアに感染しているという調査報告を発表しました。マルウェアの感染経路は明らかにされていませんが、カペルスキーの調査員はメモリにMeterpreterコードがあることを発見しています。

また、レジストリでも有害なコードが見つかっています。このコードは、PowerShellスクリプトを実行してメモリを割り当て、APIを解決して、メモリに直接Meterpreterユーティリティをダウンロードするものです。さらに、トンネリングにより、Windowsの標準ユーティリティであるnetshとscを使用して、攻撃者が感染したコンピュータをリモートから制御できるようになっていました。

この種の攻撃では、ファイルはメモリに直接インジェクトされるため、ディスクには残りません。KovterPoweliks、そしてカペルスキーによって特定されたアプローチをまとめると、次のような攻撃チェーンが形成されます(図7)。

図7.ファイルレスマルウェアの攻撃チェーン

結論

ファイルレスマルウェアは今後も進化を続け、消えていくことはないでしょう。オープンソースツールの利用が増えるにつれて、ますます拡散されていくと思われます。したがって、単にファイルを検出するだけではなく、あらゆる種類の攻撃に対抗し、リスクを軽減できる、より堅牢な階層化された防御ソリューションが必要になります。

サイランスのエンドポイント防御製品、CylancePROTECT®をご利用でない場合、AI技術を活用したソリューションがいかにして未知の新しい脅威を予測・阻止できるかについてぜひサイランスまでお問い合わせください。

侵入の痕跡

SHA-256ハッシュ:

15c237f6b74af2588b07912bf18e2734594251787871c9638104e4bf5de46589
45f2edbd2886fa610926a6bcef5c24efb7f4d27b8497d902aa3d9f231624229c
4727b7ea70d0fc00f96a28de7fa3d97fa9d0b253bd63ae54fbbf0bd0c8b766bb
bffe7ccbcf69e7c787ff10d1dc7dbf6044bffcb13b95d851f4a735917b3a6fdf

参照資料:

https://securelist.com/blog/research/77403/fileless-attacks-against-enterprise-networks/
https://blog.malwarebytes.com/threat-analysis/2016/07/untangling-kovter/
http://blog.airbuscybersecurity.com/post/2016/03/FILELESS-MALWARE-%E2%80%93-A-BEHAVIOURAL-ANALYSIS-OF-KOVTER-PERSISTENCE
http://www.symantec.com/connect/blogs/kovter-malware-learns-poweliks-persistent-fileless-registry-update
http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/evolution-of-poweliks.pdf
https://blog.cylance.com/addressing-everything-but-the-problem
https://attack.mitre.org/wiki/Technique/T1093

Tags: