マルウェアのファイルを暗号化して難読化するツール「AceCryptor」の概要と普及状況の全容を解説

この記事をシェア

多数のマルウェア系統で悪用されているクリプター(ファイルやプログラムを暗号化するツール)の技術的分析結果と、「CaaS:クリプター・アズ・ア・サービス」として拡散されている現状について、ESET社の研究者が解説します。

マルウェアのファイルを暗号化して難読化するツール「AceCryptor」の概要と普及状況の全容を解説

このブログでは、Avast社が最初に文書化したAceCryptorの動作について詳細を解説します。サイバー攻撃者の分業化や専門化が進んでいる中で、マルウェアの検出を回避するために暗号化して難読化するツール(クリプター)が生まれています。このAceCryptorは2016年から存在しており、数十のマルウェア系統をパッキング(暗号化)するために使用されているため、このマルウェアの多くの技術的な部分はすでに解明されています。AceCryptorは、シンプルで広く利用されているパッカーであり、DJVUの難読化SmokeLoaderのステージ1RedLine Stealerのステージ1、2、3などでも利用されているため、読者の方はすでにどこかで読んだことがあるかもしれません。すべてではありませんが、公開されている多くのブログでは、このクリプターとパッキングされるこれらのマルウェアを別個に識別していません。本ブログでは、このクリプターの亜種について技術的に分析した結果、このクリプターによって暗号化され展開されているマルウェア系統の概要や、AceCryptorが実環境でどの程度普及しているかを説明し、すべての点と点をつなげてその全容をお伝えします。

マルウェア作成者にとっての難題は、マルウェアが検知されないように保護することです。クリプターは、配信するマルウェアを保護する最初のレイヤーとして機能します。サイバー攻撃者は独自のクリプターを作成および維持できますが、クライムウェアを使用しているサイバー攻撃者にとって、クリプターを絶対に検出されない状態で維持するためには、膨大な時間がかかり、技術的にも困難なタスクになることが多くあります。マルウェアが検知されないように保護する機能への需要は、マルウェアを配信および展開する複数のサービスとしてのクリプター(CaaS: cryptor-as-a-service)を生み出すことになりました。これらのクリプターは、ペイロードを隠ぺいするために、いくつもの仮想マシン検出機能、デバッグ対策、解析対策の技術を組み合わせている場合があります。

本ブログの要点

  • AceCryptorは、有名な数十のマルウェアに対して、パッキングサービス(検出されないように暗号化して配信・展開するサービス)を提供しています。
  • AceCryptorの検体は世界各国で非常に多く検出されています。複数のサイバー攻撃者がAceCryptorを使用し、それぞれのキャンペーンでマルウェアを暗号化して配信・展開しています。
  • AceCryptorは高度に難読化されており、長年にわたって検出を回避するための多くの技法を取り入れてきました。
  • AceCryptorには複数の亜種があります。このブログではこれらの亜種についても説明します。
  • 別のマルウェアの一部や攻撃の段階としてこのクリプターについて説明しているほかのリサーチャーによる技術的な分析もありますが、ESET Researchは、AceCryptorの機能を包括的に解説するだけでなく、その歴史や現在の拡散状況についても解明することを目指してきました。
  • ESET製品は、2021年から2022年にかけてAceCryptorでパッキングされたマルウェアの攻撃を受けた8万社以上のお客さまを保護しています。

統計情報とパッキングされているマルウェア系統の概要

2016年にAceCryptorが初めて登場して以来、多くのマルウェアの作成者がこのクリプターのサービスを利用しており、Emotetなどの最も有名なクライムウェアでも、自前のクリプターを使用していなかった時期にはAceCryptorを使用していました。2021年から2022年にかけて、ESET製品は8万件以上のAceCryptorのユニークサンプルを検出しました。AceCryptorにはさまざまなマルウェアがパッキングされていることから、AceCryptorはCaaS(サービスのしてのクリプター)として販売されていると考えられます。このサービスの正確な販売価格は不明ですが、検出されているユニークファイル数を考えると、AceCryptorの作成者は大きな利益を得ている可能性があります。

過去数年間に収集された検体の総数が多いため、以下の統計は2021年および2022年に検出された検体のみを対象としています。図1に示すように、この2年間における検出数は均等に分布しています。これは、多数のサイバー攻撃者がそれぞれキャンペーンを実行してマルウェアを配信していることを示しています。

図1. 2021年と2022年のAceCryptor検出数(7日移動平均値)

図1. 2021年と2022年のAceCryptor検出数(7日移動平均値)

AceCryptorによってパッキングされたマルウェアを調査した結果、ESET製品が検出している200以上のマルウェア名が見つかりました。マルウェアはアップデートや難読化されることがあり、1つのマルウェア系統に複数の亜種が存在し、いくつもの検出名が存在する場合があります。例えば、「MSIL/Spy.RedLine.A」と「MSIL/Spy.RedLine.B」は、どちらもRedLine Stealerマルウェアの検出名です。いくつかのほかのマルウェアの検出名は、系統別ではなくクラス別(ClipBankerやAgentなど)にしています。これは、解凍されたマルウェアの検体の多くが、それほど普及していない、あるいは、さまざまなパブリックリポジトリで公開されている既知のマルウェアに多少の変更を加えた一般的なクリップボードデータの窃取ツールやトロイの木馬などであるためです。SmokeLoader、RedLine Stealer、RanumBot、Raccoon Stealer、STOPランサムウェア、Amadey、Fareit、Pitou、Tofsee、Taurus、Phobos、Formbook、Danabot、Warzoneなどの多数のマルウェア系統が、クリプターを解凍した後に見つかっています。図2は、AceCryptorによってパッキングされている一般的なマルウェア系統に属する検体数の概要を示しています。

図2. 2021年と2022年にAceCryptorでパッキングされたマルウェア系統

図2. 2021年と2022年にAceCryptorでパッキングされたマルウェア系統

AceCryptorなどのCaaSプロバイダーの活動を監視すれば、このサービスを利用しているマルウェアも監視できます。2022年第1四半期に初めて登場したRedLine Stealerマルウェアの例を見てみましょう。図3に示すように、RedLine Stealerを配信しているサイバー攻撃者は、RedLine Stealerが見つかった当初から現在までAceCryptorを使用しています。したがって、AceCryptorやほかのCaaSを確実に検出することができれば、新たな脅威を可視化できるだけではなく、サイバー攻撃者の活動を監視するためにも役立ちます。

図3. AceCryptorを利用するRedLine Stealerのインシデント数(7日間平均値)

図3. AceCryptorを利用するRedLine Stealerのインシデント数(7日間平均値)

標的となった国や組織

さまざまなマルウェアがAceCryptorでパッキングされており、多くのマルウェア作成者の攻撃対象も多岐にわたっていることから、AceCryptorは世界各国のあらゆる場所で検出されています。2021年と2022年に、ESETのテレメトリ(監視データ)ではAceCryptorが24万件以上検出されています。これは月平均に換算すると、1万件以上になります。図4では、2021年と2022年の間にAceCryptorが最も多く検出された国を見ることができます。

図4. ESETテレメトリに基づくAceCryptorの影響を受けている国のヒートマップ

図4. ESETテレメトリに基づくAceCryptorの影響を受けている国のヒートマップ

2021年と2022年に、ESET製品は8万社以上のお客さまのコンピューターでAceCryptorによってパッキングされたマルウェアの亜種を検出しブロックしています。また、AceCryptorのそれぞれ異なる検体(ユニーク検体)を8万件以上発見しています。もちろん、これらの検体が複数のコンピューターで検出される、あるいは、1台のコンピューターがESET製品のソフトウェアで複数回保護されることもありますが、これだけの数のユニークハッシュが見つかっていることは、AceCryptorの作成者が難読化と検出回避に積極的に取り組んでいることを示しています。AceCryptorの難読化に関する技術的な詳細については、このブログの「技術的な分析」で詳細を解説します。

重要なポイントは、AceCryptorのユニーク検体数は非常に多いにもかかわらず、パッキングされているユニークマルウェアの数は7,000未満であることです。これは、多くのマルウェアの作成者がクリプターサービスに依存するようになっており、自前のクリプターを実装するために時間とリソースを投資するよりも、このようなサービスを利用する方が効率的であることを示しています。

配信

AceCryptorは複数のサイバー攻撃者によって使用されており、AceCryptorによってパッキングされるマルウェアもまた、さまざまな方法で配信されています。ESETのテレメトリによると、AceCryptorでパッキングされるマルウェアは、主にトロイの木馬化した海賊版ソフトウェアのインストーラーや、悪意のあるファイルが添付されたスパムメールを使用してデバイスを感染させていました。

あるマルウェアに感染したため、AceCryptorで保護されている新しいマルウェアをダウンロードするケースもあります。例えば、Amadeyボットネットは、AceCryptorでパッキングされたRedLine Stealerをダウンロードしています。

また、AceCryptorによってパッキングされるマルウェアには、新しい別のマルウェアをダウンロードするものもあります。

技術的な分析

現在、AceCryptorは、3つのレイヤーから構成される多段階型のアーキテクチャを採用しています。現在の最初のレイヤーには、TEA(小さな暗号化アルゴリズム)を用いて第2レイヤーを復号するバージョンと、Microsoft Visual/Quick/C++のLCG(線形合同法)を用いて第2レイヤーを復号する2つのバージョンがあります。第2レイヤーは、マルウェアを保護するための仕掛けを実行し、復号して第3レイヤーを起動するシェルコードです。最後の第3レイヤーもシェルコードであり、いくつかの調査対策を実行します。このシェルコードのタスクはペイロードを起動することです。第3レイヤーには2つのバージョンがあります。1つはプロセスホローイングを行い、もう1つはリフレクティブローダーを使用して最終ペイロードのPEで自身のイメージを上書きするバージョンです。

図5. AceCryptorのアーキテクチャ

図5. AceCryptorのアーキテクチャ

第1レイヤー

第1レイヤーには2つのバージョンがありますが、それらは同じように機能します。これらのバージョンは主な以下の処理を実行します。

  • 暗号化した第2レイヤーを割り当てられたメモリーにロードする。
  • レイヤー2を復号する。
  • レイヤー2をコールする、あるいはジャンプする。

この段階で最も重要なのは難読化です。長年にわたり、新しい難読化の手法が追加されており、バイナリのほとんどすべての部分が何らかの方法でランダム化され難読化されています。これのため、YARAルールや静的な検出方法を使用することが非常に困難です。

・ループ
AceCryptorの作成者は、ループを活用していくつもの難読化を行っています。まず、最も分かりやすい手法は、解析を難しくするために、ジャンクコードのあるループを使用することです。ESET社は、AceCryptorの最初の検体を登録した2016年以降、ジャンクコードが利用されていることを確認しています。これらのループは多くのAPIコールで埋め尽くされており、その処理内容をアナリストが分析できないようにしているだけでなく、APIコールをフックするサンドボックスで大量のログを発生させて、サンドボックスも利用できないようにしています。ループにはMOV命令や算術演算が多数含まれていることもあります。これもアナリストを混乱させ、解析に時間がかかるようにするためのものです。

図6. AceCryptorのループによる難読化と重要なコード部分の隠ぺい

図6. AceCryptorのループによる難読化と重要なコード部分の隠ぺい

ループを使用する2つ目の目的は、実行を遅延させることです。AceCryptorについては第2レイヤーを即座に起動するバージョンや、ループが含まれており数十分も実行を遅延させるバージョンが確認されています。マルウェアの一部の実行を遅延する手法はこれまでも見られており、SleepなどのAPIコールを使用する場合にはいくつかのアラートが発行される場合もあります。アラートが発行されない場合でも、Cuckoo Sandboxのようなサンドボックスは、遅延を回避し重要な部分を解析するためのスリープスキップの手法を実装しています。また、ループやジャンクコードを実行して遅延する手法が実装されている場合、動的な解析を行うときに、アナリストはどのループがジャンクループでありスキップ可能かを識別しなければならず、複雑な作業になります。

ループを使用した第3の難読化手法は、ループの中に重要な演算を隠すものです。ジャンクループの中には、特定の反復を待機し、その反復の間だけ何らかの処理を実行するものがあります。通常、APIはGetProcAddress関数を使ってロードされますが、これは後で使用されたり、暗号化されたデータのオフセットのような定数がアンマスクされたりします。ループの特定の反復が発生しないと、その検体は後でクラッシュします。これはジャンクコードと組み合わさっており、マルウェアを動的に解析するためには、最初にどのループやループの反復をスキップでき、どのループがスキップできないかを解析しなければなりません。つまり、アナリストは時間をかけてジャンクコードを解析するか、すべてのジャンクコードが実行されるまで待機しなければなりません。図6には、2つのループがありますが、1つ目のループを実行した後には重要な操作が含まれており、もう1つのループには大量のジャンクコードが含まれています。重要な演算を行うループにもジャンクコードが含まれている場合があるため、すべてのループをこのように簡単に識別できるわけではありません。多くの検体で、実際に容易に識別することはできなくなっています。

・ランダム化 - YARAルールへの対抗
第1レイヤーのもう1つ重要な要素はランダム化です。先に説明したジャンクコードとループは、各検体でランダムに配置されています。このランダム化の目的は以下の通りです。

  • 反復回数を変更する
  • APIコールを変更する
  • APIコール数を変更する
  • ジャンクな算術演算やMOV命令を変更する

このようなランダム化によって、復号アルゴリズムや鍵の特定が非常に複雑になる場合があります。図7と図8は、TEAアルゴリズムの難読化されていないバージョンと難読化されたバージョンを示しています。難読化されたバージョンでは、ジャンクな算術演算命令だけでなく、アルゴリズムの一部もサブルーティン化され、既知の定数(図7にあるsumやdelta)がマスクされており、アルゴリズムを正しく識別することが困難になっています。

図7. TEAの復号機能 - 難読化されていないバージョン

図7. TEAの復号機能 - 難読化されていないバージョン

図8. TEAの復号機能 - 難読化されているバージョン

図8. TEAの復号機能 - 難読化されているバージョン

ランダム化されるのはコードだけではありません。現在、暗号化された第2レイヤーとその復号鍵は、通常、.textまたは.dataセクションに保存されていますが、オフセットを使用して隠ぺいされていることがあり、そのオフセットは検体によって異なります。また、第2レイヤーの復号に成功すると、いくつかの検体では復号したデータの先頭に第2レイヤーのコードが置かれますが、先頭にランダムなデータブロックが配置される検体もあるため、第2レイヤーのコードの先頭を見つけるためには正しいオフセットを把握しなければなりません。

AceCryptorの作成者は、以下の要素もランダム化します。

  • PDBのパスは必ずC:\で始まりますが、それ以外の部分はランダムです。
  • 図9に示すように、リソースにもランダムな名前とコンテンツが含まれています。AceCryptorの作成者は、ランダムに生成されたデータを含む多くのリソースを検体に入れ込んでいます。これは、検体が疑われる可能性を低くし、暗号化されたデータの場所を特定することを困難にするために行われていると考えられます。リソースには以下が含まれる場合があります。
    • 文字列テーブル
    • メニュー
    • ビットマップ
    • バイナリデータ
  • コード内で使用される文字列
  • アイコン(多くの検体で使用されているアイコンは、似ているように見えますが、若干修正が加えられていたり、ランダム化されていたりしており、それぞれが異なっています)
  • ランダムなダミーセクション名
  • 第2レイヤーデータのメモリー割り当て関数(GlobalAlloc、LocalAlloc、およびVirtualAlloc)
  • コードを実行するために重要となるいくつかのAPIの使用(これらは静的にインポートされるか、GetModuleHandleAおよびGetProcAddressを介して取得される場合があります)
図9. AceCryptorのリソースは、検体が疑われることがないように、ランダムに生成されたコンテンツを使用してランダムに生成される

図9. AceCryptorのリソースは、検体が疑われることがないように、ランダムに生成されたコンテンツを使用してランダムに生成される

図10. AceCryptorのリソースに含まれるランダムな文字列

図10. AceCryptorのリソースに含まれるランダムな文字列

・過去のバージョン
長年をかけて、AceCryptorの作成者は開発能力を向上させており、クリプターを進化させてきました。多くの微細な変更、更新、改良が行われていますが、旧バージョンの第1レイヤーの注意すべき特徴として以下が挙げられます。

  • 2016年に、AceCryptorはXTEA暗号化アルゴリズムを使用する第1レイヤーのバージョンを使用していました。
  • 2017年から2018年にかけて、AceCryptorは別の第1レイヤーバージョンを使用していましたが、このバージョンでは、暗号化アルゴリズムとしてRC4が使用されていました。
  • 第1レイヤーの最初のXTEA、TEA、およびLCGバージョンが登場したのは2016年でした。LCGバージョンとは異なり、XTEAバージョンはすぐに使用されなくなり、代わりにTEAバージョンが使用されるようになりました。
  • 旧バージョンでは、暗号化された第2レイヤーはBMP画像で隠ぺいされたリソースに含まれていました。この画像は、幅と高さがランダムに生成され、画像の中央部分が切り取られ、暗号化されたデータに置換されています。データは、正しいオフセットを把握しなければ見つけることはできませんでした。

第2レイヤー

AceCryptorの第2レイヤーは2019年に登場しました。それまでは、AceCryptorは第1レイヤーから直接第3レイヤーを起動していました。この第2レイヤーは、第3レイヤーの暗号化と保護をさらに強化する役割を果たしており、図11に示すように、以下の3つの部分から構成されています。

  • 位置独立コード
  • レイヤー3に関する情報を含むESET社がL2_INFO_STRUCTと命名した独自の構造体
  • レイヤー3のデータ
図11. AceCryptorの第2レイヤーの構造

図11. AceCryptorの第2レイヤーの構造

最初のステップとして、AceCryptorは、一般的な手法でいくつかのAPI関数のアドレスを取得します。PEB_LDR_DATAを使用してロードされたモジュールをトラバースし、そのエクスポート名のハッシュ値をハードコードされた値と比較して、GetProcAddressとLoadLibraryA関数を解決します。チェックサム関数として、AceCryptorはhashDbに実装されているshl1_add関数を使用し、解決されたAPIを迅速に識別します。

図12. Pythonで実装されたshl1_addハッシュ

図12. Pythonで実装されたshl1_addハッシュ

次に、AceCryptorは、LoadLibraryAを使用してkernel32.dllのハンドルを取得し、このハンドルとGetProcAddressを使用して、さらに多くのAPIを解決します。
次のステップで、AceCryptorは独自の構造体L2_INFO_STRUCT(図13)の情報を使用します。この構造は、図11に示すように、位置独立コードの最後にあります。

図13. 第2レイヤーのL2_INFO_STRUCTの概要

図13. 第2レイヤーのL2_INFO_STRUCTの概要

次のステップで、AceCryptorは、Microsoft Visual/QuickC/C++のLCGを使用して暗号化された第3レイヤーを復号します。復号は決まった場所で行われます。compressionFlagが設定されている場合、AceCryptorはAPI VirtualAllocを使用してメモリーを割り当て、LZO_1Z復元アルゴリズムで復号されたデータの圧縮を解除します。この後、復号され、必要に応じて解凍された第3レイヤーが実行されます。

第3レイヤー - プロセスホローイング

プロセスホローイングは、コードインジェクション攻撃の一種であり、プロセスに悪意のあるコードを挿入する手法です。最初のステップとして、AceCryptorは、ロードされたモジュールとエクスポートをトラバースし、shl1_addチェックサムを使用する場合と同じ方法でLoadLibraryAおよびGetProcAddress APIのアドレスを取得します。次に、複数のAPI関数のアドレスとDLLハンドルを取得します。

図14. AceCryptorの第3レイヤーの構造 - プロセスホローイング

図14. AceCryptorの第3レイヤーの構造 - プロセスホローイング

次のステップでは、AceCryptorはAPI GetFileAttributesAを使用して、apfHQというファイルのファイルシステム属性をチェックします。これらの属性は フラグの存在しない組み合わせである0x637ADFと比較され、等しい場合に、プログラムは無限ループに入ります。この手法は、隠ぺいのためのさまざまな処理が実行されている最後のレイヤーで使われていること、そして、このレイヤーだけで使用されている手法ではないことから、ESET社は、これは難読化の手法ではなく、この値を返す特定のサンドボックス/エミュレーターに対する対策と考えていますが、その詳細は不明です。

プログラムが正常に続行する場合、さらに別のサンドボックスやエミュレーター対策のためのチェックが実行されます。ここでAceCryptorは、API RegisterClassExAを使用して、クラス名がsaodkfnosa9inのクラスを登録します。そして、API CreateWindowExAを使用してmfoaskdfnoaという名前のウィンドウを作成します。AceCryptorは、このチェックの最後のステップで、API PostMessageAおよびGetMessageAを使用して、メッセージを渡します。これらのAPIは頻繁に使用されていないことから、このチェックは、これらのAPIを実装していないサンドボックスやエミュレーター、またはエミュレートされたAPIが正しく機能しないサンドボックスを回避するために役立ちます。

図15. 仮想マシン対策およびエミュレーター対策の手法

図15. 仮想マシン対策およびエミュレーター対策の手法

これらのチェックに成功した後、AceCryptorはプロセスホローイングの手法を使用して、現在のプロセスの新しいインスタンスを作成し(GetCommandLineA、CreateProcessA)、最終的なペイロードを新しく作成したプロセスにマッピングし、起動します。

・過去のバージョン
RegisterClassExA、CreateWindowExA、PostMessageA、 GetMessageAを使った調査対策の手法は、以前のバージョン(例:SHA-1:01906C1B73ECFFD72F98E729D8EDDD8A716B7E3)では、第1レイヤーで使用されていましたが、その後テストが行われ、クリプターのアーキテクチャが進化し、第3レイヤーに移動しています。

第3レイヤー - リフレクティブローダー

このレイヤーにおける最初のステップでは、第2レイヤーと「第3レイヤー - プロセスホローイング」と同様に、API関数のGetProcAddressとLoadLibraryAのアドレスが取得されます。今回の処理が違っている点は、shl1_addのチェックサム関数を使用しておらず、ロードされたモジュールのトラバース、エクスポートのトラバース、文字列の比較によってGetProcAddressを最初に取得していることですが、この処理の目的は不明です。そして、GetProcAddressを使用して、LoadLibraryA関数を取得します。これら2つのAPIを使用して、AceCryptorはさらにいくつかのAPI関数のアドレスとkernel32.dllのハンドルをロードします。

図16. 第3レイヤーのリフレクティブローダーの構造

図16. 第3レイヤーのリフレクティブローダーの構造

このコードでは、AceCryptorがコードとデータを混在させる手法(図17)を確認できます。AceCryptorは、1回のコールで、リターンアドレスにある値を制御します。この値はデフォルトでゼロに設定されていますが、後でAceCryptorは最終的なペイロードのエントリポイントのアドレスをこの値に書き込みます。このプログラムにパッチが適用され、この値に0以外が設定される場合、プログラムはその値が示すアドレスにジャンプし、クラッシュします。

図17. コードとデータが混在している

図17. コードとデータが混在している

次のステップで、AceCryptorは、Cuckooサンドボックス、IDA Pro+BochsおよびNormanサンドボックスに対して、既知の仮想マシンチェックを行います。図19に示すように、値0x04が設定されたフラグSEM_NOALIGNMENTFAULTEXCEPTは常にCuckooサンドボックスによって設定されています。そのため、図18に示すコードにあるSetErrorModeのセカンドコールでは、前のコールで設定された値と同じ値は返されません。

図18. 仮想マシン対策の手法

図18. 仮想マシン対策の手法

図19. Cuckooサンドボックスのコード

図19. Cuckooサンドボックスのコード

最後のステップでは、AceCryptorはまず、最終的なペイロードが(再び)圧縮されているかどうかを確認し、圧縮されている場合はLZO_1Zの解凍機能を使用します。第2レイヤーと同様に、 第3レイヤーのリフレクティブローダーは、ENCRYPTED_DATA_INFO_STRUCT(図16)とESET社が命名した独自の構造体を使用しています。この構造体は、位置独自コードと最終的なペイロードの間にあり、圧縮フラグ、ペイロードのセクション数、圧縮あるいは解凍されたサイズ、エントリポイントアドレス、いくつかのディレクトリのアドレス、イメージ再配置テーブルアドレスなどの情報を含んでいます。AceCryptorは、最終的なペイロードのPEを解析する「第3レイヤー - プロセスホローイング」とは異なり、この情報を使用してリフレクティブコードローディングの手法を使用します。この手法では、自身のイメージを最終ペイロードのイメージに再マッピングし(つまり、セクションをマップ、イメージをリベースし)、そのエントリポイントを呼び出してペイロードを起動します。

結論

AceCryptorは、長期にわたって広く悪用されているクリプターです。サービスとしてのクリプター(CaaS)としてダークウェブやアンダーグラウンドのフォーラムなどで販売されているものと思われます。このクリプターサービスは、数十種類のマルウェア系統で使用されており、これらの多くは静的検出からマルウェアを保護する手段としてこのクリプターを使用しています。

多くのサイバー攻撃者がこのクリプターを利用してマルウェアを暗号化して展開しているため、誰もがこのクリプターの被害を受ける恐れがあります。AceCryptorによってパッキングされているマルウェアは多岐にわたるため、AceCryptorによって侵害された組織がどれほど深刻な影響を受けるかを推定することは困難です。AceCryptorは、侵害されているマシンで既に実行されているほかのマルウェアによってドロップされる可能性があります。また、悪意のあるメールの添付ファイルを開いた場合など、その中に含まれるマルウェアが別のマルウェアをダウンロードする場合もあるため、侵害されたマシンを無害な状態にすることが困難となる場合もあります。

現時点では、AceCryptorを開発しているサイバー攻撃者を特定することはできていません。AceCryptorは今後も広く悪用されることが考えられますが、監視を強化することで、このクリプターを使用するマルウェアの新しいキャンペーンを特定して防止できるようになるはずです。

IOC(セキュリティ侵害の痕跡)

ファイル

SHA-1 ファイル名 ESETの検出名 説明
0BE8F44F5351A6CBEF1A54A6DE7674E1219D65B6 N/A Win32/Kryptik.HPKJ TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
0BE56A8C0D0DE11E0E97B563CAE6D1EE164F3317 N/A Win32/Kryptik.GOFF LCGバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています。第2レイヤーに調査への対策が含まれます
1E3D4230655411CB5F7C6885D7F947072B8F9F0F N/A Win32/Emotet.AW RC4バージョンの第1レイヤーであり、Emotetをパッキングしています
2FDD49A3F7D06FFFD32B40D35ABD69DEC851EB77 N/A Win32/Smokeloader.F TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
3AC205BE62806A90072524C193B731A1423D5DFD N/A Win32/Kryptik.GPCG TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
6ABF731B90C11FFBD3406AA6B89261CC9596FEFD N/A Win32/Kryptik.HRHP TEAバージョンの第1レイヤーであり、RedLine Stealerをパッキングしています
8E99A5EC8C173033941F5E00A3FC38B7DEA9DCB3 N/A Win32/Kryptik.FKYH TEAバージョンの第1レイヤーであり、Filecoder.Qをパッキングしています。BMP画像に第2レイヤーがあります
15ADFFDA49C07946D4BD41AB44846EB673C22B2B N/A WinGo/RanumBot.B TEAバージョンの第1レイヤーであり、RanumBotをパッキングしています。PDBパスがランダム化されています
47DB52AB94B9A303E85ED1AA1DD949605157417E N/A Win32/Smokeloader.A TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています。第1レイヤーにエミュレータ対策が含まれます
70BC8C2DC62CF894E765950DE60EC5BD2128D55B N/A Win32/Smokeloader.F TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
88B125DDA928462FDB00C459131B232A3CD21887 N/A Win32/Kryptik.GDTA TEAバージョンの第1レイヤーであり、Hermesをパッキングしています。難読化の手法として値がマスキングされます
90A443787B464877AD9EB57536F51556B5BA8117 N/A Win32/Kovter.C XTEAバージョンの第1レイヤーで、Kovterをパッキングしています
249BED77C1349BE7EC1FC182AFCCB1234ADFACDF N/A Win32/Smokeloader.F TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
3101B17D73031384F555AE3ACD7139BBBAB3F525 N/A Win32/TrojanDownloader.Amadey.A TEAバージョンの第1レイヤーであり、Amadeyをパッキングしています
8946E40255B57E95BAB041687A2F0F0E15F5FFCE N/A Win32/Kryptik.GKIN LCGバージョンの第1レイヤーであり、GandCrabをパッキングしています。難読化の手法としてセクションの名前が隠ぺいされています
946082F225C76F2FFBE92235F0FAF9FB9E33B784 N/A Win32/Filecoder.Locky.C LCGバージョンの第1レイヤーであり、Lockyをパッキングしています
A8ACF307EA747B24D7C405DEEF70B50B2B3F2186 N/A MSIL/Spy.RedLine.B LCGバージョンの第1レイヤーであり、RedLine Stealerをパッキングしています
F8039D04FF310CEF9CA47AC03025BD38A3587D10 N/A Win32/Smokeloader.F TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
最初に確認された日付 2022-04-28 20:50:10
MD5 E320BB753BA6FB13EA7EF15E7EFC315E
SHA-1 0BE8F44F5351A6CBEF1A54A6DE7674E1219D65B6
SHA-256 6B7358C4428369B60B034566B72D8E4A3A0D723D5BFCD8386BABB515B337F8C4
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 Win32/Kryptik.HPKJ
PEコンパイルのタイムスタンプ 2021-02-02 15:47:14
最初に確認された日付 2018-12-29 22:14:18
MD5 49800F6E90BF6019DA4A13639032642F
SHA-1 0BE56A8C0D0DE11E0E97B563CAE6D1EE164F3317
SHA-256 CEACED598A4454F9DDA2E8F3E1500E83A7492452A4179CA6CAE8B62018DE1C9F
ファイル名 N/A
説明 LCGバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています。第2レイヤーに調査への対策が含まれます
C&C N/A
ダウンロード元 N/A
検出 Win32/Kryptik.GOFF
PEコンパイルのタイムスタンプ 2017-07-07 14:02:06
最初に確認された日付 2017-08-15 11:03:24
MD5 5B2F54FBCA30E9A282F3D8B461E03A17
SHA-1 1E3D4230655411CB5F7C6885D7F947072B8F9F0F
SHA-256 1B6C5C80ECB016B7FBF85CA275981D828061A3F0CD36E6A6177C72B06A024D76
ファイル名 N/A
説明 RC4バージョンの第1レイヤーであり、Emotetをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 Win32/Emotet.AW
PEコンパイルのタイムスタンプ 2017-08-15 08:41:40
最初に確認された日付 2022-08-27 06:00:06
MD5 79871E44F79F36393C2C9BEB8E366125
SHA-1 2FDD49A3F7D06FFFD32B40D35ABD69DEC851EB77
SHA-256 E93E3129169CBE63005928B40E06A8F4E1087779FDA9F221867E6F3FFEBD73E9
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 Win32/Smokeloader.F
PEコンパイルのタイムスタンプ 2021-05-03 22:11:20
最初に確認された日付 2019-01-16 12:08:19
MD5 BFC156C3A0CBD4C38EB1CFD1D22231BA
SHA-1 3AC205BE62806A90072524C193B731A1423D5DFD
SHA-256 E91F75AA366986E0C55D706C30135EE4AFC79BFCB614B0BB2C6625AE0E8239DF
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 Win32/Kryptik.GPCG
PEコンパイルのタイムスタンプ 2001-08-30 22:56:28
最初に確認された日付 2022-10-25 15:54:38
MD5 E9CB900E57154D6469DAE21C82A1753B
SHA-1 6ABF731B90C11FFBD3406AA6B89261CC9596FEFD
SHA-256 583B0791A0BA67D9DD1C0F542D8224A8293E767B8FB4C4308A0797D8A01D6989
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、RedLine Stealerをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 Win32/Kryptik.HRHP
PEコンパイルのタイムスタンプ 2021-08-01 06:48:57
最初に確認された日付 2016-12-02 23:46:27
MD5 CC492729431765A9BC9CBF54625A6DAC
SHA-1 8E99A5EC8C173033941F5E00A3FC38B7DEA9DCB3
SHA-256 F9C5A36F0F48ED12DF657B9F3742215D9209C01D6BFEE7C9B8C730874DC705CD
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、Filecoder.Qをパッキングしています。BMP画像に第2レイヤーがあります
C&C N/A
ダウンロード元 N/A
検出 Win32/Kryptik.FKYH
PEコンパイルのタイムスタンプ 2016-11-30 06:38:37
最初に確認された日付 2019-09-04 10:02:47
MD5 FE1CFDDB7B44CEC0B5C37769934A2EE9
SHA-1 15ADFFDA49C07946D4BD41AB44846EB673C22B2B
SHA-256 C303CAEB4E71D7284FA62BEF633A82F82DE9CAE986681FD3BF8588AFF5070E6B
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、RanumBotをパッキングしています。PDBパスがランダム化されています
C&C N/A
ダウンロード元 N/A
検出 WinGo/RanumBot.B
PEコンパイルのタイムスタンプ 2018-10-09 07:43:48
最初に確認された日付 2017-03-27 10:37:57
MD5 804BF188FD3FD4D9AFDBC1FF0D020CDA
SHA-1 47DB52AB94B9A303E85ED1AA1DD949605157417E
SHA-256 D795478E3FE5579F5D824CEE15F76AFD28D796732050CA9B764F0D7002B95A08
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています。第1レイヤーにエミュレータ対策が含まれます
C&C N/A
ダウンロード元 N/A
検出 Win32/Smokeloader.A
PEコンパイルのタイムスタンプ 2017-03-27 07:43:15
最初に確認された日付 2022-07-30 16:15:47
MD5 0B7AF822F9C85668D446D0D6D26903CB
SHA-1 70BC8C2DC62CF894E765950DE60EC5BD2128D55B
SHA-256 4F25D91BEE13938152EAACD25B7F6BB3258B5FF2FEF62BB45160CE370A815E90
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 Win32/Smokeloader.F
PEコンパイルのタイムスタンプ 2022-01-01 08:28:30
最初に確認された日付 2018-02-28 19:04:06
MD5 8DBDEF6108E6B202ECC0570C9E96D76B
SHA-1 88B125DDA928462FDB00C459131B232A3CD21887
SHA-256 57EC32C13DB1F6D5CE116DC9DE40370D5FBD8FCBE121219D6C29672AACEB64EB
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、Hermesをパッキングしています。難読化の手法として値がマスキングされます
C&C N/A
ダウンロード元 N/A
検出 Win32/Kryptik.GDTA
PEコンパイルのタイムスタンプ 2018-02-28 16:39:27
最初に確認された日付 2016-10-10 13:15:28
MD5 454DC3FC0921CE440EC8780B8E5992FB
SHA-1 90A443787B464877AD9EB57536F51556B5BA8117
SHA-256 0E5B5C0BF3BB84C5ED412454E3C31702C767D7E230199A974A41AD998E1A3EEC
ファイル名 N/A
説明 XTEAバージョンの第1レイヤーで、Kovterをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 Win32/Kovter.C
PEコンパイルのタイムスタンプ 2016-10-08 02:00:18
最初に確認された日付 2022-01-16 13:26:06
MD5 2CB2A55AF83803B57CAA53A21DEC20B0
SHA-1 249BED77C1349BE7EC1FC182AFCCB1234ADFACDF
SHA-256 FFBD7362A9F5F0B564BDFF0A2EFBCC3CED81E324CD8403EFCC87EF83D4C72ABB
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 Win32/Smokeloader.F
PEコンパイルのタイムスタンプ 2020-12-22 04:40:17
最初に確認された日付 2022-11-05 10:39:22
MD5 F18129EA81B3B5690CFD1300397DB51E
SHA-1 3101B17D73031384F555AE3ACD7139BBBAB3F525
SHA-256 ADD610FDF46684FD77DF7B173CBD4D9DE562774DB13FD39B5AD22AA66778C723
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、Amadeyをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 Win32/TrojanDownloader.Amadey.A
PEコンパイルのタイムスタンプ 2021-09-11 07:30:39
最初に確認された日付 2018-08-31 03:13:38
MD5 B95B574D4233B2CBC00AD5BC0E1721E7
SHA-1 8946E40255B57E95BAB041687A2F0F0E15F5FFCE
SHA-256 7423FFC3513639AD1DA030719F529AF2516F7E815A631BF510CEF1A63ACC03B4
ファイル名 N/A
説明 LCGバージョンの第1レイヤーであり、GandCrabをパッキングしています。難読化の手法としてセクションの名前が隠ぺいされています
C&C N/A
ダウンロード元 N/A
検出 Win32/Kryptik.GKIN
PEコンパイルのタイムスタンプ 2017-08-05 18:50:27
最初に確認された日付 2016-11-03 16:16:34
MD5 5EA12C54A54B31B61629188545E432CC
SHA-1 946082F225C76F2FFBE92235F0FAF9FB9E33B784
SHA-256 01589FEA45E028761544D63A7955F1F1DB5DBE1509BF34A5D98537B102822A1E
ファイル名 N/A
説明 LCGバージョンの第1レイヤーであり、Lockyをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 Win32/Filecoder.Locky.C
PEコンパイルのタイムスタンプ 2016-11-03 02:41:42
最初に確認された日付 2022-07-01 15:36:46
MD5 7ABE5257DBE779A37C1715A3D8E2BDFD
SHA-1 A8ACF307EA747B24D7C405DEEF70B50B2B3F2186
SHA-256 97260DBE7BBC203960E5AD1E117030F4AA610E3471EA946CC90D95A2B2528885
ファイル名 N/A
説明 LCGバージョンの第1レイヤーであり、RedLine Stealerをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 MSIL/Spy.RedLine.B
PEコンパイルのタイムスタンプ 2021-09-04 14:45:34
最初に確認された日付 2022-08-02 12:53:58
MD5 F22089ECC61519C668E9F7AE4F0FE372
SHA-1 F8039D04FF310CEF9CA47AC03025BD38A3587D10
SHA-256 B541968F633C6BD8503D0DCAAC5E7A50423EC78D701F69D3A58F464F5FE65A98
ファイル名 N/A
説明 TEAバージョンの第1レイヤーであり、SmokeLoaderをパッキングしています
C&C N/A
ダウンロード元 N/A
検出 Win32/Smokeloader.F
PEコンパイルのタイムスタンプ 2021-03-10 06:12:29

名前付きオブジェクト

オブジェクトタイプ オブジェクト名
クラス saodkfnosa9uin
ウインドウ mfoaskdfnoa

MITRE ATT&CKの技術

この表は、エンタープライズに対する攻撃手法をまとめたMITRE ATT&CKフレームワークのバージョン12を使用して作成されています。

手法 ID 名前 説明

実行

T1106

ネイティブAPI

AceCryptorは、API CreateProcessAを使用して、プロセスを起動できます

防衛機能の回避

T1497.003

仮想化/サンドボックスの回避:実行時間を遅延する回避手法

AceCryptorは、任意のコードを入れたループを使用して、中核となる機能の実行を遅延させます

T1497.001

仮想化/サンドボックスの回避:システムチェック

AceCryptorは、サンドボックスとエミュレータを検出するために、いくつもの手法を使用します

T1140

ファイルや情報の難読化解除と復号

AceCryptor は、TEA、LCG、XTEA、または RC4 暗号化および LZO_1Z 圧縮を使用して、位置独立コードとペイロードを抽出します

T1027

ファイルや情報の難読化

AceCryptorは、ペイロードの長さ、復号アルゴリズムの既知の定数、または復号キーなどの値をマスクします

T1055.012

プロセスインジェクション:プロセスホローイング

AceCryptorは、一時停止状態の新しいプロセスを作成して、そのメモリのマッピングを解除し、隠ぺいしていたペイロードと置換できます

T1620

リフレクティブコードのローディング

AceCryptorは、リフレクティブローダーを使用してイメージを書き換え、隠ぺいしているペイロード(Windows PE)に置換できます

この記事をシェア

サイバー攻撃のセキュリティ対策に

サイバーセキュリティ
情報局の最新情報を
チェック!