- 2019/03/29
- セキュリティ
マルウェアAstaroth、正規のOSプロセスや管理プロセスを利用してパスワードや個人データの盗み出しに成功
Post by : CYBEREASON NOCTURNUS RESEARCH
調査・研究者:ELI SALEM
2018年には、ブラジルにおけるサイバー犯罪の劇的な増加が見られたほか、それとは別に正規のネイティブWindows OSプロセスを悪用したケースが多く見られました。サイバー攻撃者はliving off the land binaries (LOLbins)を使用して悪意あるアクティビティを隠蔽し、標的となるシステム内で密かに活動します。
攻撃者は、マルウェアを一切使用することなく、正規のネイティブなオペレーティングシステムツールを利用することでデバイスに侵入し、同デバイスへのリモートアクセス権を獲得します。環境に対する可視性が制限されている企業や組織にとって、このようなタイプの攻撃は致命的となる場合があります。
本レポートでは、トロイの木馬Astarothを利用した直近のユニークな攻撃について説明します。このトロイの木馬型の情報抽出ソフトウェアは、ヨーロッパで確認されたほか、ネイティブOSプロセスやセキュリティ関連製品の悪用を通じて主にブラジルで猛威を振るいました。
ブラジルは、絶えずサイバー犯罪に見舞われている国です。ブラジルから広がった別の攻撃については、下記のブログ記事をご覧ください。
銀行の利用者を標的としたブラジル産のマルウェアが南米と欧州で猛威を振るう
サイバーリーズンのプラットフォームは、ブラジルやヨーロッパの一部を標的とした大規模なスパム攻撃において、このトロイの木馬Astarothの新しい変種を検出することに成功しました。当社の Active Hunting Serviceチームはこの攻撃を分析することで、それがBITSAdminユーティリティやWMICユーティリティのような正規のツールを悪用してC2サーバーと対話しペイロードをダウンロードしていることを特定しました。
また、同チームは、同攻撃が多言語対応のアンチウイルスソフトウェアであるAvastのコンポーネントを利用して、標的システムに関する情報を取得していること、ブラジルの情報セキュリティ企業であるGAS Tecnologiaに帰属するプロセスを利用して個人情報を収集していることを確認しました。このような洗練された攻撃に対処するためには、お客様のセキュリティチームは、自社環境を明確に把握することで、悪意あるアクティビティを素早く検知し、効果的に対応する必要があります。
トロイの木馬型攻撃Astarothの最新バージョンにおけるユニークな側面
トロイの木馬型攻撃Astarothは、2018年の終わりにかけて猛威を振るったフィッシングベースの攻撃であり、数千件のインシデントで確認されました。攻撃者は手法を改良し最適化しているため、その初期バージョンは後期のバージョンとは大きく異なっています。後期のバージョンは、次に示す4つの点で初期のバージョンと大きく異なっています。
- 後期バージョンは、BITSAdminを悪用することで攻撃者のペイロードをダウンロードします。これに対して、初期バージョンではcertutilを使用していました。
- 後期バージョンでは、Avastのプロセスの1つに悪意あるモジュールをインジェクトします。これに対して、初期バージョンでは、Avastを検知した時点で終了していました。Avastは世界で最も利用されているアンチウイルスソフトウェアであるため、これは効果的な検知回避戦略となります。
- 後期バージョンでは、ブラジルの情報セキュリティ企業であるGAS Tecnologiaに帰属するプロセスであるunins000.exeを悪用することで、個人情報を検知されることなく収集します。この信頼されているプロセスは、ブラジル国内のマシンで広く利用されています。当社の知る限りでは、このプロセスを利用しているマルウェアのバージョンは他にはありません。
- 後期バージョンでは、難読化解除手段としてfromCharCode() を使用することで、実行コマンドの明示的な書き出しを回避し、それが開始するコードを隠蔽します。
最新のトロイの木馬型スパム攻撃Astarothに関する分析
従来型のスパム攻撃の多くと同じく、この攻撃も7zipファイルを使って開始されます。このファイルは、ユーザー宛ての電子メールの添付ファイル経由か、またはユーザーがハイパーリンクを誤ってクリックすることにより、同ユーザーのマシンにダウンロードされます。
ダウンロードされた7zipファイルには.lnkファイルが含まれており、このファイルをクリックするとマルウェアが初期化されます。
7zipから展開された.lnkファイル
難読化されたコマンドが、.lnkファイルのプロパティの「Target 」フィールド内にあることを確認できます。
.lnkファイル内の隠しコマンド
.lnkファイル内の完全に難読化されたコマンド
.lnkファイルが初期化されると、CMDプロセスが生成されます。このプロセスは、正規のwmic.exeを悪用してXSL Script Processing攻撃(MITRE Technique T1220)を初期化するコマンドを実行します。同攻撃は、リモートドメイン(qnccmvbrh.wilstonbrwsaq[.]pw)上にあるXSLスタイルシート内に埋め込まれたJScriptまたはVBScriptを実行します。
wmic.exeは、Windows Management Instrumentation(WMI)との対話に使用される強力なネイティブWindowsコマンドラインユーティリティです。同ユーティリティを使うと、複雑なWQLクエリやWMIメソッドを実行できます。同ユーティリティは、 ラテラルムーブメント、偵察、基本コードの呼び出しを行うために攻撃者によってしばしば利用されます。信頼されているネイティブユーティリティを利用することで、攻撃者は、完全な攻撃の範囲を隠蔽し、検知を回避できます。
Cybereasonプラットフォームが検知した際の初期攻撃ベクター
wmic.exeは、リモートXSLスクリプトを格納しているドメインに関する情報を含む.txtファイルを生成します。続いて、wmic.exeは、感染したマシンの場所(国名や都市名およびその他の情報を含む)を特定します。これらの情報を収集した後、wmic.exeは、感染したマシンに関する場所のデータをリモートXSLスクリプトへと送信します。
この場所データは、独自の優位性を攻撃者に提供します。なぜなら、同データを利用することで、攻撃者は、特定の標的を選ぶ際に、攻撃対象とする国や都市を最大限の精度で指定できるようになるためです。
.txtファイルにはC2ドメインと感染したマシンに関する情報が含まれている(Cybereason Lab環境で検知)
フェーズ1:リモートXSLの分析
wmic.exeによる情報の送信先となるリモートXSLスクリプトには、高度に難読化されたJScriptコードが含まれており、同コードは悪意あるアクティビティの追加的な手順を実行します。同コードは、リモートサーバー上での悪意あるアクティビティを隠蔽するために難読化されています。
最初に、同XSLスクリプトは、コマンド実行およびデータストレージ用の各種の変数を定義します。また、同スクリプトは、いくつかのActiveXオブジェクトを生成します。Wscript.ShellおよびShell.Applicationを使用して生成されたActiveXオブジェクトの大多数は、プログラムの実行、ショートカットの作成、レジストリの内容の操作、システムフォルダへのアクセスを行うために使用されます。
なお、定義された変数は、悪意あるアクティビティを実行するための正規Windows OSプロセスの呼び出しに使用されるほか、同スクリプトを格納しているリモートドメインと感染したマシン間の橋渡しをするものとしても利用されます。
悪意あるスクリプトの変数
JScriptコードの難読化メカニズム
悪意あるJScripコードの難読化は、次に示す2つの手法を主に利用しています。
- 同スクリプトは、UTF-16コードユニットの並びから生成された文字列を返す関数fromCharCode()を使用します。この関数を使用することで、同スクリプトは、それが実行しようとするコマンドの明示的な書き出しを回避しそれが開始しようとする実際のコードを隠蔽します。特に、同スクリプトは、この関数を使用してプロセス名に関連する情報を隠します。当社の知る限り、このスパム攻撃の初期バージョンでは、この手法は使用されていません。
- 同スクリプトは、ランダム化された整数を返す関数radador()を使用します。この関数を使うと、コードのすべての反復を異なるものとして提示することで、コードを難読化できます。上記1の難読化手法とは異なり、この手法は、トロイの木馬攻撃Astarothの初期のバージョンから効果的に利用されてきたものです。
XSLスクリプト内でのString.fromCharCode()の利用
乱数生成関数radador().
これら2つの難読化手法は、アンチウイルス防御をすり抜け、セキュリティ研究者の調査をより困難にするために利用されます。
C2サーバーの選択
同XSLに含まれている変数xparis()には、悪意あるファイルのダウンロード元であるC2ドメインが格納されます。1つまたは複数のドメインがブラックリスト化された場合にドメインの存続期間を延長するために、xparis()に設定できる12個の異なるC2ドメインがあります。どのドメインが変数xparis() に格納されているかを判定するために、変数pingadori() は関数radador()を使用して当該ドメインをランダム化します。変数pingadori() は1から12までの間の整数になり、これにより変数xparis()に割り当てられるドメインが決定されます。
C2ドメインの選択メカニズム
同XSLスクリプト内で最も良く利用されている関数の1つがBxaki()です。Bxaki()は、引数としてURLとファイルを受け取ります。同関数は、BITSAdminを使用して、入力されたURLから指定のファイルを感染マシンへとダウンロードするものであり、同スクリプトがファイルをダウンロードする際には必ずこの関数が呼び出されます。
初期バージョンでは、トロイの木馬攻撃Astarothはcerutilを使用してファイルをダウンロードしていました。このプロセスを隠蔽するために、cerutilはcertisへとリネームされました。後期バージョンでは、certutilはBITSAdminで置き換えられています。
難読化関数Bxaki
難読化解除関数Bxaki
感染したコンピュータのファイルシステムへのアクセスを取得するために、同XSLスクリプトは変数fsoとileSystemObjectオブジェクトを使用します。この変数はActiveXを使用して作成されます。同XSLスクリプトには、その他のハードコーディングされた変数であるsVarRaz やsVarRaz も含まれています。これらの変数には、ダウンロードされるファイルを指すファイルパスが格納されます。
ファイルのパス
ディレクトリの作成
ペイロードのダウンロード
同リモートXSLスクリプトは、C2サーバーから12個のファイルをダウンロードします。これらのファイルは、JPEG、GIF、拡張子なしのファイルとして偽装されています。これらのファイルはすべて、Bxaki()およびxparis()により、感染マシン上の1つのディレクトリ(C:\Users\Public\Libraries\tempsys)内にダウンロードされます。これら12個のファイルの中には、Astarothトロイの木馬モジュール、同トロイの木馬がその機能を拡張するために使用するいくつかの追加ファイル、およびr1.logファイルが含まれています。
r1.logには、データ抽出のための情報が格納されます。収集される情報に関する完全な説明については、2018年に発表されたCofenseによる分析をご覧ください。
スクリプトはダウンロードされたマルウェアのすべての部分を検証する
ペイロードをダウンロードした後、同XSLスクリプトは、ダウンロードされたマルウェアのすべての部分を確認するためのチェックを実施します。
12個のダウンロードコマンドのうちの1つ(Astarothの同じ変種に関してCybereasonプラットフォームにより検知されたもの)
12個のダウンロードされたファイル
Avast の検知
最新のAstarothトロイの木馬攻撃のユニークな特長として、特定のセキュリティ製品を検索する能力、およびそれらの製品を悪用する能力を同マルウェアが備えていることが挙げられます。
初期のバージョンでは、XSLスクリプトはAvastを検出すると終了していました。これに対して、現在のバージョンでは、Avastを使用して悪意あるアクションを実行するようになっています。
Astarothトロイの木馬攻撃の初期バージョンと同様に、同XSLスクリプトは感染マシン上でAvastを検索しますが、その際、Avastの特定プロセスであるaswrundll.exeを特に標的とします。同XSLスクリプトは3つの変数stem1 、stem2、stem3を使用します。これらの変数を結合することで、aswRundll.exeを指す特定のパス(C:\Program Files\AVAST Software\AVAST\aswRunDll.exe)が形成されます。同XSLスクリプトは、関数fromCharCode()を使用してこのパスを難読化します。
aswrundll.exe はAvast Software Runtime Dynamic Link Libraryの略であり、Avastのモジュールの実行を担当します。
このパスにaswrundll.exeが存在している場合、当該マシン上にはAvastが存在していることを意味します。
注:aswrundll.exeは、Microsoftに固有のrundll32.exeに非常によく似ています。rundll32.exeは、ユーザーがエクスポートされた関数を呼び出すことでDLLを実行できるようにします。aswrundll.exeをLOLbinとして使用できることについては、昨年の時点で言及されています。
ユニコード文字列で表されたstem変数
ASCII文字列へとデコードされたstem変数
Avastの操作
Avastが当該マシン上にインストールされていることをXSLスクリプトが確認すると、同スクリプトは、そのディスク上の場所から悪意あるモジュールであるIrdsnhrxxxfery64をロードします。このモジュールをロードするために、同スクリプトは、Shell.Applicationにより作成されたActiveXオブジェクトであるShAを使用します。同オブジェクトは、ShellExecute()を使用してプロセスインスタンスを生成した後、パラメータvShowをゼロに設定して当該モジュールをロードします。この結果、隠されたウィンドウを持つアプリケーションがオープンされます。
Avastが当該マシン上にインストールされていない場合、この悪意あるモジュールはregsvr32.exeを使用してロードされます。regsvr32.exeはネイティブWindowsユーティリティであり、WindowsレジストリにおけるDLLや ActiveXコントロールの登録/登録解除を行う際に使用されます。
スクリプトは、run関数とregsvrを使用して悪意あるモジュールのロードを試みる
procmonを使うと、Avastプロセスにロードされた悪意あるモジュールを表示できます。
procmonを使うと、regsvr32.exeプロセスを使用してロードされた悪意あるモジュールを表示できます。
フェーズ2:ペイロードの分析
XSLスクリプトがロードする唯一のモジュールがIrdsnhrxxxfery64であり、同モジュールはUPX packerを使用してパックされています。
lrdsnhxxfery64.~に関する情報
同モジュールをアンパックすると、同モジュールは、内部パッカーPe123\RPolyCryptorを使用してさらにパックされていることが分かります。当該マルウェアと実行時に同モジュールが担う役割を完全に理解するためには、同モジュールを動的な方法で調査する必要があります。
lrdsnhrxxfery64_Unpacked.dllに関する情報
当該マルウェアの実行全体を通じて、Irdsnhrxxxfery64.~はメインのマルウェアコントローラーとして動作します。同モジュールは、ペイロードのダウンロードが完了した時点で悪意あるアクティビティを開始します。また、同モジュールは、別のモジュールを実行し、マシンに関する初期情報(ネットワーク、ロケール、キーボードの言語など)を収集します。
マシンに関する情報を収集するメインモジュール
悪意あるアクティビティの継続とその他のセキュリティ製品の操作
regsvr32.exe,を使用してモジュールをロードした後、Irdsnhrxxxfery64モジュールは、別のモジュールIrdsnhrxxxfery98をインジェクトします。Irdsnhrxxxfery98は、同スクリプトによりLoadLibraryExW()関数を使用してregsvr32.exeへとダウンロードされたものです。
以前の場合と同じく、Avastおよびaswrundll.exeが当該マシン上に存在しない場合、regsvr32.exeの代わりにIrdsnhrxxxfery98が当該プロセスにインジェクトされます。
Irdsnhrxxxfery64によるlrdsnhrxxfery98のインジェクション
regsvr32.exeメモリ内に存在する悪意あるモジュール
Irdsnhrxxxfery98モジュールがロードされると、同マルウェアは、別のプロセスを検索し、Irdsnhrxxxfery64がロードされた方法に応じて、その悪意あるアクティビティを続行します。
- aswrundll.exeを使用してIrdsnhrxxxfery64がロードされた場合、同モジュールは、引き続きaswrundll.exeを標的とします。同モジュールは新しいインスタンスを作成しては、悪意あるコンテンツをそのインスタンスにインジェクトし続けます。
- regsvr32.exeを使用してIrdsnhrxxxfery64がロードされた場合、同モジュールは次の3つのプロセスを標的とします。
・同モジュールは、利用可能ならばunins000.exeを標的とします。unins000.exeはGAS Tecnologiaが開発したプロセスであり、ブラジル国内のマシンで広く利用されています。
・unins000.exeが存在しない場合、同モジュールはSyswow64\userinit.exeを標的とします。userinit.exeはネイティブWindowsプロセスであり、ユーザーが自分のコンピュータにログインした際にWinlogonが実行するプログラムを指定するものです。
・同様に、unins000.exeおよびSyswow64\userinit.exeが存在しない場合、同モジュールはSystem32\userinit.exeを標的とします。
マルウェアは標的とするプロセスを検索する
userinit.exeおよびunins000.exeでのIrdsnhrxxxfery64の操作
標的とするプロセスを見つけた後、同マルウェアは、Process Hollowing (MITRE Technique T1093)を使用して、正規のソースから新しいプロセスを密かに生成します。この新しいプロセスを中断状態にすることで、マルウェアがそのメモリをアンマップし、マルウェアのコンテンツを新しい割り当てられたスペースに書き出すことが可能になります。
この作業が完了すると、同マルウェアは、署名済みかつ承認済みの正規Windows OSプロセスを通じて自分自身を活用できるようになります。または、aswrundll.exeやunins000.exeが存在する場合、署名済みかつ承認済みのセキュリティ製品プロセスを通じて自分自身を活用できるようになります。
Astarothモジュールがプロセスを中断状態で生成(dwCreationFlagsを4に設定)
プロセスメモリのアンマッピング
コンテンツの書き出しとプロセスの再開
Cybereasonプラットフォームは、 Irdsnhrxxxfery64.~、Irdsnhrxxxfery98.~、およびモジュールarqueiroを特定することで、この悪意あるインジェクションの検知に成功しました。
regsvr32.exe内に見つかったダウンロード済みのモジュール(Cybereasonプラットフォームにより検知)
データの抽出
2つ目のモジュールIrdsnhrxxxfery98.~は、大量の情報の盗み出しを担当するものであり、フッキング、クリップボードの利用、キーの状態の監視を通じて情報を収集できます。
Irdsnhrxxxfery98の情報収集機能
Astarothトロイの木馬攻撃は、独自の情報盗み出し機能に加えて、外部機能であるNetPassを使用します。NetPassは、ダウンロードされたペイロードファイルの1つであり、lrdsnhrxxferyb.jpgとリネームされます。
NetPassは無料のネットワークパスワード回復ツールであり、その開発元であるNirsoftによれば、同ツールは次のようなパスワードを回復できます。
- LAN上にあるリモートコンピュータのログインパスワード
- Microsoft Outlookにより保存したExchange Server上のメールアカウントのパスワード
- MSN MessengerおよびWindows Messengerのアカウントのパスワード
- パスワード保護されているWebサイトにおけるInternet Explorer 7.xおよび8.xのパスワード(Basic AuthenticationまたはDigest Access Authenticationを含む)
- 常にMicrosoft_WinInet接頭辞で始まるInternet Explorer 7パスワードのアイテム名
- Remote Desktop 6により保存されたパスワード
NetPassの利用
攻撃フローと情報の抽出
標的とするプロセスへのインジェクションの後、同モジュールは、それらのプロセスを通じて悪意あるアクティビティを続行します。同マルウェアは、標的プロセスを通じて短期間に悪意あるアクティビティを実行し、自分自身を消去した後、攻撃を繰り返します。これは定期的に実施されるパーシステントな攻撃です。
マルウェアが持つ各種の機能
標的となったプロセスが悪意あるモジュールにより感染させられると、同モジュールはペイロードのC2サーバーとの通信を開始し、r1.logファイルに保存された情報を抽出し始めます。このような通信とデータの抽出は、Cybereasonプラットフォームを使用した実際のシナリオで検出されました。
GAS Tecnologiaのセキュリティプロセスunins000.exeの悪用
unins000.exeから悪意あるIPへのデータ抽出
結論
当社のActive Hunting Serviceは、BITSAdminユーティリティおよびWMICユーティリティの悪意ある利用を両方とも検知することに成功しました。当社の顧客は、当社のプラットフォームの修正セクションを利用して同攻撃を即座に停止し、データの抽出を回避しました。それに続いて、当社のハンティングチームは、同攻撃の残る部分を特定した後、完全な分析を実施しました。
当社では、ブラジルを拠点とする大規模なスパム攻撃の一環として、トロイの木馬Astarothの変種を拡散するために使用された「検知回避型の感染手法」の検知と評価に成功しました。
本レポートにおいて我々は、正規の組み込み型のWindows OSプロセスが、検知されることなくペイロードを配信する悪意あるアクティビティの実行に利用されていること、そしていかにしてAstarothトロイの木馬が密かに複数のモジュールを操作しインストールしているかを明らかにしました。
また、我々は、Astarothトロイの木馬が良く知られたツールやアンチウイルス製品を利用して、その機能を拡張していることを示しました。さらに、Astaroth攻撃で使用されたこれらのツールや手法に関する分析を通じて、LOLbinsがアンチウイルス製品をすり抜けるためにいかに効果的であるかを示しました。
当社では、2019年にはLOLbinsの悪用が増えると予想しています。悪意あるアクティビティはネイティブプロセスに備わっている機能を悪用することでより多くの可能性を実現できるため、多くの情報剽窃者がこの方法を利用して各自のペイロードを標的となるマシンに配信する可能性が高いと思われます。
この検知の結果、当社の顧客は、被害を受ける前に攻撃の進行を阻止することができました。Astarothトロイの木馬は制御下に置かれ、WMICは無効化され、攻撃はその場で停止されました。
このような攻撃を特定する難しさは、それが検知を回避する方法に起因しています。セキュリティシステムを確保する複雑さを十分理解しているセキュリティチームであっても、当社の顧客が遭遇したような攻撃を捕捉することは困難です。LOLbinsは人の目を欺くものです。
なぜなら、LOLbinsの実行は、アンチウイルスソフトウェアを悪用するために利用されている場合でも、当初は無害であると感じられ、時には安全だとさえ思われるためです。LOLbinsの利用がより一般的になるにつれ、このような複雑な攻撃手法もより一般的になるのではないかと当社は危惧しています。攻撃者はその他のより破壊的なペイロードに注目しているため、被害の可能性は今後も高まることが予想されます。
セキュリティ侵害の痕跡
SHA1(Hash)
01782747C12Bf06A52704A144DB59FEC41B3CB36(NF-e513468.zip)
1F83403398964D4E8B6C70B171C51CD278909172(Script.js)
CE8BDB56CCAC55C6881701EBD39DA316EE7ED18D(lrdsnhrxxfery64.~)
926137A50f473BBD257CD19E207C1C9114F6B215(lrdsnhrxxfery98.~)
5579E03EB1DA076EF939196CB14F8B769F30A302(lrdsnhrxxferyb.jpg)
B2734835888756929EE3FF4DCDE85080CB299D2A(lrdsnhrxxferyc.jpg)
206352E13D601239E2D043D971EA6657C091071A(lrdsnhrxxferydwwn.gif)
EAE82A63A980998F8D388BCCE7D967F28309F593(lrdsnhrxxferydwwn.gif)
9CD5A399C9320CBFB87C9D1CAD3BC366FB12E54F(lrdsnhrxxferydx.gif)
206352E13D601239E2D043D971EA6657C091071A(lrdsnhrxxferye.jpg)
4CDE9A53A9A49D606BC89E74D47398A69E767056(lrdsnhrxxferyg.gif)
F99319B1B321AE9F2D1F0361BC756A43D25444CE(lrdsnhrxxferygx.gif)
B85C106B68ED410107f97A2CC38b7EC05353F1FA(lrdsnhrxxferyxa.~)
77809236FDF621ABE37B32BF073B0B893E9CE67A(lrdsnhrxxferyxb.~)
B85C106B68ED410107f97A2CC38b7EC05353F1fA(lrdsnhrxxferyxa.~)
C2F3350AC58DE900768032554C009C4A78C47CCC(r1.log)
IPs(C2)
104.129.204[.]41
63.251.126[.]7
195.157.15[.]100
173.231.184[.]59
64.95.103[.]181
Domains(C2)
19analiticsx00220a[.]com
qnccmvbrh.wilstonbrwsaq[.]pw
ホワイトペーパー「すべての組織が狙われている」
企業、組織がどんなにセキュリティを強固にしてもハッカーが悪用できる脆弱性は必ず存在します。侵入されることが避けられないことを受け入れ、新たな対策を立てる必要があります。本書で、なぜ避けられないのか、どのように対処するのかをご覧ください。
https://www.cybereason.co.jp/product-documents/input/?post_id=606