Sage 2.2ランサムウェアの亜種が検出回避能力を高め、ターゲットの国を拡大

ここしばらくの間、Sageランサムウェアの亜種の拡散は観察されていませんでした。今年2月にはSage 2.0について記事で取り上げ、3月にはバージョン2.2を発見しましたが、それ以降6か月以上にわたってFortiGuard Labsチームがこのマルウェアについて確認した顕著な活動はありませんでした。

しかし、最近になってフォーティネットが発見したSageサンプルは、これまでと同様のSage 2.2のように見える一方で、分析対策と権限昇格に焦点を当てた手法が追加されています。この記事では、このマルウェアの最新情報を紹介します。

フォーティネットは、Kadena Threat Intelligence System(KTIS)を使用して、Sage 2.2のこの新しい亜種をダウンロードする悪意あるJavaScript添付ファイルを含むスパムメールが、マルウェアの配信に使用されていることを確認しました。


図1:Sage 2.2の新しい亜種の攻撃経路(KTISで表示)

サンプルの中には、悪意あるVBマクロダウンローダーコードを含むドキュメントファイルがスパムメールに添付され、配信されたと考えられるものあります。

Kadena Threat Intelligence Systemからのデータによると、Sageの新しい亜種がダウンロードされるURLは、トップレベルドメイン(TLD)名の.infoと.topをドメインに使用し、番号をパスに使用していると見られます。

また、Sageと同じダウンロードサーバーを使用するLockyランサムウェアファイルが存在することが確認されたのは、非常に興味深い点です。


図2:LockyとSage 2.2の新しい亜種の両方のサンプルをホストするサーバー(KTISで表示)


図3:ダウンロードされたURLの例


以前のバージョンから継承される特徴

Sageランサムウェアのこの亜種について、以前のバージョンから変わらない点の詳細説明は省きますが、ユーザーが把握しておくべき重要事項について、以下を確認してください。

まず、これまでの亜種と同様、このバージョンも多様なクリプターを含んでいます。この亜種がファイル暗号化のために使用する暗号化アルゴリズムは、Sage 2.0と同じくChaCha20です。暗号化されたファイルの名前にも、これまでと同様に.sage拡張子が付加されます。

また、次の言語のキーボードレイアウトを使用する国のコンピューターへの感染を回避しています。

  • ベラルーシ語
  • カザフ語
  • ウズベキスタン語
  • ロシア語
  • ウクライナ語
  • サハ語
  • ラトビア語

また、発見された亜種がデスクトップの壁紙に設定するメッセージも、Sageの以前の亜種の場合と同じです。

図4:Sageランサムウェアにより設定されるデスクトップの壁紙


コード難読化

今回、この亜種で観察された興味深い特徴として、ほとんどの文字列が悪意あるコンテンツを隠すために暗号化済みであることが挙げられます。文字列の暗号化には、Chacha20暗号方式が使用されていることがわかっています。すべての暗号化文字列は、ハードコーディングされた固有の復号化キーを含みます。


図5:文字列の復号化関数


分析対策、サンドボックス対策、仮想マシン対策

この亜種には、文字列の暗号化に加えて、分析対象となったりサンドボックスや仮想マシンに読み込まれたりしていないかを判断するためのチェック機能も実装されています。チェック条件に合致すると、分析を回避するために即座に自ら終了します。

このマルウェアは次のチェックを実行します。

プロセス名のチェック

Sageのこの亜種は、マシン上で実行中のプロセスをすべて列挙し、Murmurhash3を使用してハッシュを計算し、ハードコーディングされたハッシュのリストに照合します。表1は、ブラックリストに指定されたプロセス名と対応するMurmurhash3ハッシュの一部のリストです。


表1:ブラックリストに指定されたプロセス名のリスト

ファイル名のチェック

また、マルウェアが実行される場所の完全なパスに次の名前が含まれるかどうかをチェックします。

  • sample
  • malw
  • sampel
  • virus
  • {サンプルのMD5}
  • {サンプルのSHA1}

これらの名前は、マルウェアサンプルの解析でファイル名またはディレクトリ名としてよく使用されるものです。Sageは、これらの名前のいずれかが完全なパスに含まれるかどうかが分析されていると想定していると考えられます。StrStrI()が使用されていることから、この照合でも大文字と小文字が区別されません。


図6:ファイルの完全なパスのチェック

コンピューター名とユーザー名のチェック

マルウェアがAVサンドボックスに読み込まれたことを検出する方法について、さまざまな調査が行われています。その1つとして、サンドボックス環境で使用されている既知のコンピューター名やユーザー名のチェックがあります。このマルウェアの亜種にハードコーディングされたコンピューター名とユーザー名は、Murmurhash3にも含まれています。現時点でこれらのリストからフォーティネットが特定しているのは、「abc-win7」というコンピューター名だけです。

ハッシュリストとは別に、回避対象のコンピューター名とユーザー名を含む文字列も暗号化されています。次は復号化されたリストです。

  • Wilbert
  • Customer
  • Administrator
  • Miller
  • user
  • CUCKOO-
  • TEST-
  • DESKTOP-
  • WORKSTATION
  • JOHN-PC
  • ABC-PC
  • SARA-PC
  • PC
  • D4AE52FE38

CPUIDのチェック

また、このマルウェアはx86命令CPUIDを使用して、プロセッサーブランド文字列などのプロセッサーの詳細を取得します。このブランド文字列は、仮想化環境で一般的なブラックリストに指定された次のCPU IDに照合されます。

  • KVM
  • Xeon
  • QEMU
  • AMD Opteron 2386


図7:CPU IDのチェック

ウイルス対策サービス名とMACアドレスのチェック

最後に、コンピューターでウイルス対策インスタンスが実行中かどうかをチェックし、ブラックリストに指定されたMACアドレスのセットにも照合します。マルウェアは、ウイルスチェックの実行をチェックするために、サービスコントロールマネージャーで実行されているサービスを列挙し、これらのサービス名をMurmurhash3で計算し、ハードコーディングされたハッシュのリストに照合します。表2と表3は、ブラックリストに指定されたウイルス対策サービス名とMACアドレスのリストです。


表2:ブラックリストに指定されたサービス名


表3:ブラックリストに指定されたMACアドレス


Sageの権限昇格について

マルウェアは通常、システムを完全に制御して感染システムを自在に操作できるよう、一般ユーザーアカウントよりも高い権限レベルを取得しようとします。保護されたフォルダーに保存された重要ファイルを含め、攻撃対象のすべてのユーザーのファイルを暗号化するには高い権限レベルを必要とすることから、この権限昇格は暗号化ランサムウェアにとって特に重要です。フォーティネットは最近の分析で、Sageがパッチ公開済みのWindowsカーネルの脆弱性またはユーザーアカウント制御(UAC)機能を利用して権限を昇格する能力を備えていることも発見しました。


CVE-2015-0057の悪用

実際に、CVE-2015-0057のWindowsカーネルの脆弱性を利用するマルウェアファミリは、Sageが初めてではありません。しかし、write-what-where(WWW)の権限を使用する攻撃手法は、他のマルウェアファミリには見られない特徴です。この脆弱性とその悪用に使用される手法については、すでに多くの詳細な説明記事が公開されています。次に、脆弱性悪用後にコード実行をリング3からリング0に遷移する方法について主に分析します。

この脆弱性の性質上、マシンのメモリの任意の部分で自由にデータを読み書きすることが可能になります。Sageで発見された攻撃コードは、InternalGetWindowText/NtUserInternalGetWindowTextやNtUserDefSetTextなどのWindows GUI機能を利用して、任意の読み書きを実行できます。従来のカーネル攻撃コードの多くは、HalDispatchTableをターゲットとし、テーブル内のポインターの1つを上書きしてリング3からリング0へコードを遷移します。Sageの場合は、次のコードスニペットに示すように、リング3からリング0への遷移点としてローカルディスクリプターテーブル(LDT)を選択しています。



リスト1:攻撃コードは、LDTへのfar callにより第1ステージのカーネルシェルコードのペイロードを取得

次のデバッガー出力は、上記のリスト1に示すコメント付きコードが実行される前の既存のLDTエントリを示しています。



リスト2:攻撃コードが実行される前のLDTエントリ

リスト1に示されたコメント付きコードが実行されると、新しいLDTエントリがEPROCESSの構造に追加されます。


リスト3:攻撃コードが実行された後のLDTエントリ

攻撃コードを介して偽LDTをGDTに追加した後も、far callを続行し、第1ステージのカーネルシェルコードに到達します。


リスト4:far callによる第1ステージのカーネルシェルコードのトリガー



リスト5:第1ステージのカーネル攻撃シェルコード

カーネルシェルコードの冒頭で、攻撃コードはCR4レジスターに格納されたSMEP(Supervisor Mode Execution Prevention)ビットの無効化を試みます。無効化後は、カーネルモードコードがユーザーモードコードを実行し、コード実行をユーザーモードで0x587AD2に遷移します。


リスト6:IDT内からのNTカーネルイメージアドレスの特定

興味深いことに、このバージョンの攻撃コードは、ntoskrnl.exeイメージベースアドレスを取得するために、以前に観察されたカーネル攻撃コードとは異なる手法を使用しています。IDTのアドレス0x80b93400以降のエントリに含まれる定数値0x82888e00は、KIDTENTRY.AccessとKIDTENTRY.ExtendedOffsetの値を表しています(リスト6を参照)。実際に、この定数値はntoskrnl.exeイメージ内に含まれるものであることがわかっています。特定時点に0x1000オフセットを減算することで、リスト4のシェルコードに示すように、最終的にntoskrnl.exeイメージベースアドレスへ導かれます。この手法が使用されている背景には、一部のセキュリティベンダーが使用している行動分析による検出を回避したいというコーダーの意図があると考えられます。ntoskrnl.exeイメージベースを読み込むために使用される従来の手法は、オープンソースのカーネル悪用コードで一般に知られており、このような行動分析により検出可能であるためです。

最後に、この攻撃コードはシステムプロセスのトークンを独自のプロセストークンに置き換えて、システム権限を取得します。


UACバイパス

このマルウェアで使用されているUACバイパスの手法は目新しいものではありませんが、Sageで使用されていることが確認されたのは今回が初めてです。Sageでは、UACポップアップを抑制するために、eventvwr.exeとレジストリ乗っ取りを使用しています。図8は、この手法の概要を示しています。この手法については、以前の記事でも詳しく説明しています。


図8:UACバイパス


ランサムウェアの説明言語の追加

Sageランサムウェアの以前の亜種では、暗号化されたファイルの回復方法に関する説明が!HELP_SOS.htaに含まれています。この説明には、以下を含む言語の翻訳が含まれています。

  • 英語
  • ドイツ語
  • イタリア語
  • フランス語
  • スペイン語
  • ポルトガル語
  • オランダ語
  • 韓国語
  • 中国語
  • ペルシア語
  • アラビア語

この亜種での際立った変化の1つとして、さらに次の6言語の翻訳が追加されていることから、作成者が今後さらに多くの国をターゲットにしようと目論んでいる可能性があります。

  • ノルウェー語
  • マレー語
  • トルコ語
  • ベトナム語
  • インドネシア語
  • ヒンディ語


図9:ランサムウェアの説明画面に追加された翻訳言語


ファイルの回復

また、暗号化されたファイルを回復するためにユーザーが支払わなければならない金額も変更されています。身代金の説明には、ユーザーが「SAGE Decrypterソフトウェア」を購入するためにアクセスする必要のあるOnionサイトへのリンクが含まれています。アクセスに使用されるTORブラウザは、匿名でのインターネットの閲覧とダウンロード用に設計されたものです。このページには、詳細な指示や初回の身代金額といったランサムウェアによくある情報が表示されます。身代金は、これまでの亜種での99ドルおよび1,000ドルから、2,000ドルに引き上げられています。


図10:身代金額

支払いサイトに表示されるSageのバージョンは、なぜか2.0のままです。

以前の亜種と同様に、作成者は被害に遭ったユーザーが15KB未満の暗号化ファイルをアップロードして復号化機能をテストできるようにしています。


図11:テストファイルの復号化

数分後に、ユーザーは復号化されたファイルをダウンロードできます。


図12:復号化されたファイルをダウンロード可能


結論

Sageランサムウェアの以前のバージョンと比較して、この亜種は、権限昇格により被害者のシステムで足がかりを強化するための手法をいくつか追加しています。さらに、自動分析システムによる検出を回避するため、仮想環境を検出する手法を複数活用することにも重点を置いています。

しかし、フォーティネットのFortiSandboxは、追加の再設定なしで、強化されたこれらの手法を回避し、この新しい亜種を「高リスク」として評価する能力を備えています。


図13:FortiSandboxはSageを検出して高リスクと評価


対策

  1. FortiMail:すべてのスパムメールをブロックします。
  2. FortiGuard Antivirusサービス:SageのサンプルをW32/SageCrypt.KAD!trとして検出します。
  3. FortiGuard Webfilterサービス:ダウンロードされたすべてのURLを悪意あるものとみなして遮断し、タグ付けします。
  4. FortiSandbox:Sageのサンプルを高リスクとして評価します。

-= FortiGuard Lion Team =-

IOC

884263ac1707e15e10bcc796dfd621ffeb098d37f3b77059953fc0ebd714c3df - W32/SageCrypt.KAD!tr
00f1e3b698488519bb6e5f723854ee89eb9f98bdfa4a7fe5137804f79829838e - W32/Sage.KAD!tr
0eb72241462c8bfda3ece4e6ebbde88778a33d8c69ce1e22153a3ed8cf47cc17 - W32/Sage.KAD!tr
2b0b7c732177a0dd8f4e9c153b1975bbc29eef673c8d1b4665312b8f1b3fb114 - W32/Sage.KAD!tr
43921c3406d7b1a546334e324bdf46c279fdac928de810a86263ce7aa9eb1b83 - W32/Sage.KAD!tr
47a67a6fb50097491fd5ebad5e81b19bda303ececc6a83281eddbd6bd508b783 - W32/Sage.KAD!tr
5b7d2b261f29ddef9fda21061362729a9417b8ef2874cc9a2a3495181fc466d0 - W32/Sage.KAD!tr
a14ee6e8d2baa577a181cd0bb0e5c2c833a4de972f2679ca3a9e410d5de97d7e - W32/Sage.KAD!tr
b381d871fcb6c16317a068be01a7cb147960419995e8068db4e9b11ea2087457 - W32/Sage.KAD!tr
bbc0e8981bfca4891d99eab5195cc1f158471b90b21d1a3f1abc0ee05bf60e93 - W32/Sage.KAD!tr
cb6b6941ec104ab125a7d42cfe560cd9946ca4d5b1d1a8d5beb6b6ceb083bb29 - W32/Sage.KAD!tr
df64fcde1c38aa2a0696fc11eb6ca7489aa861d64bbe4e59e44d83ff92734005 - W32/Sage.KAD!tr
eff34c229bc82823a8d31af8fc0b3baac4ebe626d15511dcd0832e455bed1765 - W32/Sage.KAD!tr
f5f875061c9aa07a7d55c37f28b34d84e49d5d97bd66de48f74869cb984bcb61 - W32/Sage.KAD!tr
f93c77fd1c3ee16a28ef390d71f2c0af95f5bfc8ec4fe98b1d1352aeb77323e7 - W32/Kryptik.FXNL!tr
903b0e894ec0583ada12e647ac3bcb3433d37dc440e7613e141c03f545fd0ddd - W32/Kryptik.DMBP!tr
c4e208618d13f11d4a9ed6efb805943debe3bee0581eeebe22254a2b3a259b29 - W32/GenKryptik.AZLB!tr
e0a9b6d54ab277e6d4b411d776b130624eac7f7a40affb67c544cc1414e22b19 - W32/Kryptik.FXNL!tr

1] フォーティネットのKadena Threat Intelligence System(KTIS)は、ファイルやURLなどの成果物からコンテキスト情報を抽出することで、より精度の高いマルウェア検出、高速追跡分析、詳細分析を実現し、データ相関を容易に実行する対話型プラットフォームです。

FortiGuard Labsでは、脅威インテリジェンス情報を毎週お届けしていますので、ぜひご購読ください。また、フォーティネットのFortiGuard脅威インテリジェンスサービスのオープンベータにもご参加ください。