このページの本文へ

McAfee Blog

有名なサービスとしてのランサムウェア(RaaS)プロバイダー「REvil」を分析、DLLサイドローディングを使用

2021年07月21日 19時30分更新

文● McAfee

  • この記事をはてなブックマークに追加
  • 本文印刷

はじめに

 ランサムウェア攻撃は、今や、闇市場でのサービスとしてのランサムウェア(Ransomware-as-a-service、RaaS)の増加により、組織間で最も一般的なサイバー攻撃のひとつになりました。RaaSは、サイバー犯罪者にすぐに利用できるランサムウェアを提供し、攻撃者がさまざまなランサムウェアを短期間で展開するための効果的な方法です。

 通常、RaaSモデルの開発者は、闇市場で洗練されたランサムウェアフレームワークを販売またはレンタルします。攻撃者は、ランサムウェア開発者からライセンスを購入した後、ランサムウェアを他のユーザーに拡散し、感染させ、ファイルを暗号化し、ビットコインで多額の身代金の支払いを要求します。また、犠牲者からの身代金の恐喝が成功するたびに、支払われた身代金が開発者と購入者の間で共有されるランサムウェアフレームワークの闇市場で利用可能な割引があります。これらのフレームワークは、最新の高度なプログラミング言語を使用して、新しいランサムウェアを最初から作成する時間と労力を削減します。

 REvilは、最も有名なサービスとしてのランサムウェア(RaaS)プロバイダーのひとつです。グループは2019年にSodinokibiランサムウェアをリリースし、その後、当社はDLLサイドローディング技術を使用してランサムウェアコードを実行するREvilを確認しました。実際のランサムウェアは、リソースセクションに2つの埋め込みPEファイルを含むドロッパーです。正常に実行されると、MsMpEng.exeおよびMpSvc.dllという名前の2つの追加ファイルがtempフォルダーにドロップされます。ファイルMsMpEng.exeは、タイムスタンプが2014年3月のMicrosoftのデジタル署名ファイルです(図1)。今回はその流れを紹介します。

図1:Microsoftのデジタル署名されたファイルの画像

DLLサイドローディング

 このマルウェアは、DLL側の読み込みを使用して、ランサムウェアコードを実行します。この手法により、攻撃者は正当なDLLを偽装する悪意のあるDLLを実行できます。この手法は、検出を回避するために多くのAPTで使用されています。この攻撃では、MsMpEng.exeが実行時にMpSvc.dllの機能をロードします。ただし、攻撃者はクリーンなMpSvc.dllを同じ名前のランサムウェアバイナリに置き換えました。悪意のあるDLLファイルにはServiceCrtMainという名前のエクスポート関数があり、MicrosoftDefenderファイルによってさらに呼び出されて実行されます。これは、攻撃者がMicrosoftのデジタル署名されたバイナリを使用して悪意のあるファイルを実行するために使用する巧妙な手法です。

図2: Export関数の呼び出し

ペイロード分析

 ランサムウェアはRC4アルゴリズムを使用して、暗号化プロセスをサポートするすべての情報を含む構成ファイルを復号化します。

図3:REvil構成ファイル

 次に、GetSystemDefaultUILanguage/GetUserDefaultUILanguage関数を使用してUI言語チェックを実行し、下の画像に示すように、いくつかの国の言語IDを含むハードコードされたリストと比較します。

図4:言語チェック

 このランサムウェア攻撃から除外された国は以下のとおりです。

GetUserDefaultUILanguage 国の名前
0x419 ロシア
0x422 ウクライナ語
0x423 ベラルーシ語
0x428 タジク語(タジキスタンのキリル文字)
0x42B アルメニア語
0x42C アゼルバイジャン語(アゼルバイジャン語のラテン語)
0x437 ジョージア語
0x43F カザフスタンのカザフ人
0x440 キルギスタン
0x442 トルクメニスタン
0x443 ウズベキスタンのラテン語
0x444 ロシア連邦のタタール
0x818 モルドバ出身のルーマニア語
0x819 モルドバ出身のロシア語
0x82C アゼルバイジャンのキリル文字
0x843 ウズベキスタンのキリル文字
0x45A シリア語
0x281A セルビアのキリル文字

 さらに、ランサムウェアはユーザーのキーボードレイアウトをチェックし、上記の国リストにあるマシンのランサムウェア感染をスキップします。

図5:キーボードレイアウトチェック

 ランサムウェアは、感染したマシンにグローバルミューテックスを作成して、その存在をマークします。

図6:グローバルミューテックス

 ミューテックスを作成した後、ランサムウェアはSHEmptyRecycleBinW関数を使用してごみ箱内のファイルを削除し、暗号化後にファイルが復元されないようにします。

図7:空のごみ箱

 次に、EnumServicesStatusExW関数を使用してすべてのアクティブなサービスを列挙し、サービス名が構成ファイルに存在するリストと一致する場合はサービスを削除します。以下の画像は、ランサムウェアによってチェックされたサービスのリストを示しています。

図8:サービスリストのチェック

 CreateToolhelp32SnapshotProcess32FirstW、およびProcess32NextW関数を呼び出して、実行中のプロセスを列挙し、構成ファイルに存在するリストに一致するプロセスを終了します。以下の処理は終了します。

・allegro
・steam
・xtop
・ocssd
・xfssvccon
・onenote
・isqlplussvc
・msaccess
・powerpnt
・cad
・sqbcoreservic
・thunderbird
・oracle
・infopath
・dbeng50
・pro_comm_msg
・agntsvc
・thebat
・firefox
・ocautoupds
・winword
・synctime
・tbirdconfig
・mspub
・visio
・sql
・ocomm
・orcad
・mydesktopserv
・dbsnmp
・outlook
・cadence
・excel
・wordpad
・creoagent
・encsvc
・mydesktopqos

 次に、Salsa20アルゴリズムを使用してファイルを暗号化し、マルチスレッドを使用してファイルを高速に暗号化します。後で、背景の壁紙は身代金メッセージで設定されます。

図9:デスクトップの壁紙

 最後に、ランサムウェアは被害者のマシンに身代金メモを表示します。以下は、感染したマシンにドロップされたreadme.txtの画像です。

図10:身代金メモ

IOCとカバレッジ

タイプ 検出名 検出パッケージバージョン(V3)
Loader 5a97a50e45e64db41049fd88a75f2dd2 REvil.f 4493
Dropped DLL 78066a1c4e075941272a86d4a8e49471 REvil.e 4493



 エキスパートルールにより、マカフィーのお客様は対象範囲を拡大できます。このルールは、このREvilランサムウェアの動作を対象としています。

MITRE

Technique ID Tactic Technique Details
T1059.003 Execution Command and Scripting Interpreter
T1574.002 DLL Side-Loading Hijack Execution Flow
T1486 Impact Data Encrypted for Impact
T1036.005 Defense Evasion Masquerading
T1057 Discovery Process Discovery
T1082 Discovery System Information Discovery

結論

 マカフィーは、REvilグループが昨年オラクルWebロジックの脆弱性(CVE-2019-2725)を利用してランサムウェアを拡散したことを確認しました。またREvilグループは最近、DLLサイドローディングを悪用し、ランサムウェアの実行にkaseyaのVSAアプリケーションを使用していることも確認しています。 REvilはランサムウェア感染に多くの脆弱性アプリケーションを使用していますが、暗号化技術は同じものを用いています。

 ファイルの定期的なバックアップを作成し、それらをネットワークから分離して、常に更新されるウイルス対策を実施することをお勧めします。

※本ページの内容は2021年7月16日(US時間)更新の以下のMcAfee Blogの内容です。
原文:REvil Ransomware Uses DLL Sideloading
著者:McAfee Labs
※このブログは、Varadharajan Krishnasamy、Karthick Kumar、Sakshi Jaiswalによって執筆されています。

カテゴリートップへ