インテリジェンス・ブログ
FirstWatch 脅威のスポットライトSSLoadを解明する - 多段階に渡るマルウェアの脅威
著者ラジャス・セーブ
掲載日2024年8月21日(水
エグゼクティブ・サマリー
SSLOADは「win.ssload」としても知られ、単純なローダーから強固な情報窃取者まで幅広い機能を持つ洗練されたマルウェアとして登場した。このマルウェアは、フィッシングメールやコンタクトフォームを通じてシステムに侵入し、偵察データを収集し、Cobalt StrikeやConnectWise ScreenConnectリモートデスクトップソフトウェアなど、さまざまなペイロードを配信しながら、それを操作者に送り返すように設計されています。このマルウェアは、その高度な機能と多様な配信方法によって急速に知名度を上げ、現代のサイバースパイキャンペーンにおけるその役割を浮き彫りにしています。
この包括的な分析により、SSLOADの主要な戦術、テクニック、手順が特定され、最近の複数のキャンペーンから詳細な洞察が得られました。SSLOADは2024年4月に初めて検出され、以来、アジア、ヨーロッパ、アメリカ大陸の組織を標的とした「Contact Forms」や「Frozen Shadow」といった注目すべきキャンペーンに関与してきました。SSLOADは、フィッシングメールや侵害されたコンタクトフォームを使用して悪意のあるペイロードを配信し、多くの場合、Cobalt Strike、Latrodectus(IcedIDの潜在的な後継者)、Pupy RATなどのツールによる二次感染を引き起こします。
NetWitnessは、SSLOADの脅威を特定して軽減するための特定の検出メカニズムを開発しました。NW Liveで利用可能な5つのアプリケーションルールは、登録、モジュールのダウンロード、セカンダリペイロード要求、タスクビーコニングなどのSSLOADアクティビティを検出します。さらに、アウトバウンドIPチェッカートラフィックのルールと更新されたDynDNS Lua Parserが検出を強化します。この研究からのIOCは、NW LiveのマルウェアC2フィードに追加され、脅威インテリジェンスと検出能力を向上させます。
主な調査結果
- 洗練された攻撃チェーンSSLOADは、最初のフィッシングメールから、偽のAzureログインページや悪意のあるJavaScriptファイルを含む洗練されたペイロードの配信まで、多段階の感染プロセスを採用しています。
- 多彩なペイロードの配信:マルウェアはさまざまなセカンダリペイロードを配信し、侵害されたネットワーク内で侵入後の活動や横方向の移動を行う能力を強化します。
- 高度な回避テクニック:SSLOADは、暗号化されたペイロードと特定のユーザーエージェント文字列を使用してコマンド&コントロール(C2)サーバーと通信するため、検出と分析が困難になっています。
- グローバルな標的:SSLOADは、アジア、ヨーロッパ、アメリカ大陸を中心に、世界中の組織を標的にしていることが確認されている。
NetWitnessによるSSLoadの分析
初期感染ベクター
SSLoadは通常、フィッシングメールを介してシステムに侵入します。これらのメールには、既知の脆弱性を悪用したおとり文書が含まれていたり、悪意のあるペイロードを実行するためのマクロを有効にするようユーザーに促したりします。また、メール内のリンクから悪意のあるウェブサイトに誘導し、マルウェアをダウンロードさせるケースもあります。


一般的な感染経路は、msiexec.exeを実行して悪意のあるMSIパッケージ(sharepoint.msi)をインストールすることから始まります。
このプロセスは、以下の一連のアクションを引き起こす:
- msiexec.exeはsharepoint.msiをインストールするために起動されます。
- msiexec.exeは昇格した権限で実行されます。
- MsiExec.exeは埋め込みモードで動作し、インストールを続行します。
- srtasks.exeが実行され、システムの復元ポイントが作成される。
- 一時的なMSIファイル(MSI7AF0.tmp)は、/Sフラグでregsvr32.exeを実行し、SSLoadペイロードの以下のステージを運ぶ正規のDLL、MenuEx.dllをサイレント登録します。

セカンドステージローダー
ローダーはC/C++で書かれた軽量のDLLです。SSLoadのペイロードをロードし、実行ポイントを設定します。このローダーは、通常EDRやAV製品の正規のDLLにバイナリパッチによって追加され、検出を回避するために自己修正技術を使用します。そのメタデータを分析すると、このローダーは、中国のウイルス対策プログラムである 360 Total Security に関連付けられた「MenuEx.dll」という名前の正規の DLL に偽装しようとしていることがわかります。このローダーは、Process-Environment-Block(PEB)のBeingDebuggedフラグをチェックするなど、検知を回避するためにいくつかのアンチ解析テクニックを使用しています。このテクニックは、マルウェアがセキュリティ研究者に分析される可能性のある環境での実行を回避するのに役立ちます。


最初のペイロードが実行されると、ローダーは感染したシステムに関する情報を収集しようとします。初期段階の1つとして、正規のIPルックアップサービスを使用して感染したシステムの外部IPアドレスを検索します。このルックアップは、コマンド・アンド・コントロール(C2)サーバーとの通信や、システムの場所とネットワーク構成に基づく追加ペイロードのターゲティングなど、マルウェアのさらなる動作段階の準備に役立ちます。

This activity can be identified in Netwitness using query – analysis.service = ‘ip checker service’ or boc = ‘host traffic to external ip checker’.

第三段階SSLoadダウンローダー
SSLoadダウンローダーの主な機能は、追加の悪質なコンポーネントをダウンロードして実行することです。SSLoadの特筆すべき特徴は、文字列を復号化するための独自の方法です。各文字列の復号キーは、暗号化されたブロブの特定のバイトから導き出されます。このマルウェアは、暗号化された文字列の長さを決定するためにカスタム関数を使用し、Base64復号化とRC4復号化を適用します。
このSSLoad亜種は、まずURLとユーザーエージェントを復号化する。URLは、デッドドロップサイトとして機能するSSLoadという名前のTelegramチャンネルに誘導する。このチャンネルには、最終的なペイロードの配信を担当するコマンド&コントロール(C2)サーバーを示す、別の暗号化された文字列が含まれています。
対応するユーザーエージェントのアドレス:
- hxxps[:]//t[.]me/+st2YadnCIU1iNmQy
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0 Safari/537.36

After deciphering the C2 address, the malware unveils a second user agent string, ‘SSLoad/1.1,’ along with the “/api/g” string. It then performs an HTTP GET request to generate a URL to download the subsequent payload from the C2 server. In this case, the server responds by sending the file as an attachment named “crypted_dll.bin.” This network traffic can be identified using an NW query attachment = ‘crypted_dll.bin.’ This file is a crucial part of the SSLoad infection process, containing the encrypted payload that will be decrypted and executed on the compromised system.

ネットワークトラフィックの分析では、いくつかの興味深い指標がハイライトされます。HTTPヘッダーのContent-Typeフィールドには、"Los Angeles "や "Cosmos "といったユニークな値が含まれています。これらの値は通常、標準的なHTTPトラフィックには関連付けられないため、脅威ハンティングの際に調べるべき刺激的なパラメータとなります。
ネットワークベースのアプリケーションルール、'SSLoadセカンダリペイロードリクエストSSLoadが追加のペイロードをフェッチしようとする特定のパターンにマッチするアウトバウンドHTTPリクエストを識別するために、'/api/g'が作成されました。リクエストはクライアントのユーザーエージェント文字列 'ssload/1.1' とディレクトリパス '/api/g' によって特徴付けられます。
これらの基準を検出することで、SSLoadが最初の感染後に二次的なペイロードをダウンロードしようとしているタイミングを特定することができます。

インシデントを作成し、NetWitness Respondでノードグラフとして可視化すると、異なるサンプル間で共有されたファイルとディレクトリ構造が強調表示されます。

第4ステージSSLoadペイロード
主なペイロードは、Rustで記述された32ビットのDLLです。SSLoadは高度なC2通信手法を採用しているため、アナリストがマルウェアの設定を抽出することは困難です。C2アドレスを解読した後、SSLoadは追加のペイロードやコマンドを取得します。これらのやり取りは通常、システム情報をC2サーバーに送信し、攻撃者が侵害された環境を理解し、さらなる行動を計画するのに役立ちます。
SSLoadは、検知や分析を回避するために、いくつかのアンチ解析や回避テクニックを取り入れている:
- ミューテックスの作成: マルウェアは、システムがすでに感染しているかどうかをチェックするためにミューテックスを作成し、既存の感染を検出した場合は実行を停止する。
- ダイナミック・ライブラリのロード: Advapi32.dllのようなライブラリを動的にロードして、RtlGenRandomのような特定の関数を見つけ、その操作フォルダにユニークな名前を生成する。
- ユニークなXORキー: SSLoadによって復号化された各文字列は、複雑な算術演算によって生成された一意のXORキーを使用するため、静的解析が複雑になる。

SSLoadは、接続されているドライブを列挙し、デフォルトのC:ドライブ以外のハードドライブのルートパスを読み取ろうとし、周辺機器やシステム情報の発見においてその能力を強調する。
変数が初期化され、ネットワーク共有への接続試行回数と接続ステータスが管理される。スクリプトは次に、AからZまでの範囲で利用可能なドライブ文字をチェックし、選択したドライブ文字を攻撃者が制御するネットワーク共有にループでマッピングしようとします。

搾取後のコマンド・アンド・コントロール インタラクション
プライマリペイロードが実行されると、マルウェアはコマンド&コントロール(C2)サーバーと対話します。DLL は感染したシステムのフィンガープリントを行い、C2 サーバーに登録ビーコンを送信する準備を始めます。フィンガープリンティング プロセスでは、システムに関するさまざまな詳細情報が収集され、以下のフィールドを持つ JSON オブジェクトにコンパイルされます:
- バージョン:ローダーのバージョンはバイナリにハードコードされている。
- IPだ: api.ipify.orgを使って取得したパブリックIPアドレス。
- ドメイン Windowsネットワークドメイン。
- ホスト名: 環境変数から取得したコンピュータのホスト名。
- アーチ 環境変数から取得した、感染したマシンのアーキテクチャ。
- os_version: GetVersionExW を使用して取得した Windows オペレーティング・システムのバージョン。
- cur_user: 現在のユーザーが管理者であるかどうかを示す文字列。
- オーナー キャンペーン名を示す。

この JSON フィンガープリントは、HTTP POST リクエストを介してプレーンテキストで C2 サーバーに送信される。登録が成功すると、C2 サーバーは "key" と "ID" を含む JSON オブジェクトで応答する。"key "フィールドは、後の通信でRC4キーとして使用されるBase64文字列であり、"ID "は感染したホストの一意の識別子です。マルウェアはこの識別子を使用して、その後のHTTPリクエスト中にC2サーバーに対して自身を識別します。
NetWitnessは、次の名前の正規表現ベースのアプリケーション ルールを採用しています。 'SSLoad登録リクエスト' を使用して、ネットワーク通信内の SSLoad 登録リクエストを検出します。このルールは、コンテンツタイプが「application/json」の「/api/gateway」への明示的なアウトバウンドHTTP POSTリクエストを対象とします。正規表現パターンを使用して、'version'、'ip'、'domain'、'hostname'、'arch'、'os_version'、'cur_user'、'owner'などのフィールドを含むJSONオブジェクトを識別します。

これらの基準は、SSLoadのC2サーバへの登録プロセスを示しています。NetWitnessは、これらの一意のクエリ文字列を検出することで、SSLoadの登録アクティビティを効果的に特定してフラグを立て、ネットワーク内のマルウェアの存在を早期に検出できます。

登録後、SSLoadはタスクビーコニングループに入り、一意な識別子をURLパス(/api/[unique_identifier]/tasks)の一部として使用して、C2サーバーにHTTP POSTリクエストを定期的に送信します。最初のPOSTリクエストでは、データは送信されない。C2サーバーが感染したホストのためのタスクを持っている場合、「job」とそのjobのための別の一意な識別子を含むJSON構造で応答する。jobはBase64文字列としてエンコードされたRC4暗号化構造体であり、「command」と引数の配列の2つのフィールドを含む。
NetWitnessは SSLoadタスク・ビーコンの試み このようなタスク・ビーコンの試みを検出するために、アプリケーション・ルールを設定する。このルールは、'result'や'tasks'のようなAPIエンドポイントへのアウトバウンドHTTP POSTリクエストを捕捉するように設計されている。クライアントのユーザーエージェント文字列は標準的なウェブブラウザを模倣し、ディレクトリパスはUUIDを示す特定の正規表現パターンに従います。これらの基準は、SSLoadのC2サーバーへのタスクビーコン試行を識別するのに役立ち、タスク通信の効果的な監視と傍受を可能にします。


観測されたコマンドには、指定されたURLから追加のペイロードをダウンロードするようマルウェアに指示する「exe」が含まれる。ジョブフィールドの構造化された形式は、SSLoadが将来、より多くのコマンドをサポートするように容易に拡張できることを示している。
新しいネットワーク検出ルール、 'SSLoadモジュールダウンロードリクエスト,' has been developed to identify HTTP GET requests SSLoad uses to download additional modules. This rule explicitly targets patterns including a distinctive query structure such as “GET /download?id=Cosmos&module=2&filename=None HTTP/1.1.” and a client user-agent string mimicking a standard web browser. This detection is crucial for intercepting module download attempts directly to an IP address, helping prevent further compromise.

An interesting finding in the analysis of SSLoad’s behavior is the pattern in the download string “GET /download?id=Cosmos&module=2&filename=None HTTP/1.1.” The value “id=Cosmos” is particularly noteworthy as it matches the unique “Content-Type: Cosmos” observed in the Third Stage: SSLoad Downloader. This correlation is further supported by the user-agent string SSLoad/1.1 found in the “GET /api/g HTTP/1.1” request.
SSLoadマルウェアがC2サーバーから割り当てられたタスクを完了した結果、以下のようなネットワークトラフィックが確認されました。SSLoadがC2サーバーからタスクを受信すると、通常、ジョブIDと侵害されたマシンで実行される特定の暗号化された命令が含まれます。

これは、C2 サーバーが漏洩したマシンにジョブ ID を持つタスクを割り当てたことを示している。タスク完了後、漏洩したマシンは/resultにビーコンを返送し、暗号化された結果を用いてC2サーバーにジョブのステータスを通知する。
新しいネットワーク検出ルール、 SSLoad結果ビーコン試行』。 は、'/result' エンドポイントへのアウトバウンド HTTP POST リクエストを検出するように設計されている。リクエストは、UUIDとJSONコンテンツを示す特定の正規表現パターンに従ったディレクトリパスによって特徴付けられる。このクエリには、SSLoadがCommand-and-Control(C2)サーバに戻る通信を示すフィールド'job_id'と'result'が含まれています。
結論
SSLoadは、世界中の組織に重大な脅威をもたらす、高度に洗練され適応可能なマルウェアです。その多段階のロードプロセス、暗号化された通信、高度なアンチ解析技術は、現代のサイバー脅威がますます複雑化していることを示しています。SSLoadが進化を続ける中、その技術的な詳細と配布方法を理解することは、効果的な防御戦略を開発する上で極めて重要です。
NetWitnessは、高度な分析と脅威インテリジェンスを通じて、SSLoadのような高度な脅威を検出し、対応するための包括的な機能を提供します。NetWitness NDR(Network Detection and Response)は、ネットワーク トラフィックを監視します。同時に、NetWitness EDR(Endpoint Detection and Response)がエンドポイントを保護し、NetWitness SIEM、SOAR、TIPがITインフラストラクチャ全体で脅威の検出、調査、対応を行い、リアルタイムの洞察を提供します。組織は、これらのツールを活用することで、複雑な脅威に対する防御を大幅に強化できます。詳細については、以下をご覧ください。 https://www.netwitness.com/products/.
ダレン・マッカッチェン、ジャネット・ミラー・オズボーン、貴重なフィードバックと指示をありがとう。
NetWitnessの検出機能と要点
NetWitnessは、SSLoadがもたらす脅威を特定し、軽減するための特定の検出メカニズムを開発しました。ネットワーク内のSSLoadアクティビティを検出するために、5つのアプリケーションルールが作成されました。これらのルールはNW Liveで利用可能で、SSLoadの登録、モジュールのダウンロード、セカンダリペイロード要求、侵入後のタスクビーコン活動など、SSLoadの動作のさまざまな段階を特定することに重点を置いています:
- SSLoadセカンダリペイロードリクエスト(ioc = 'ssloadセカンダリーペイロードリクエスト')
- SSLoad登録リクエスト (ioc = 'ssload登録リクエスト')
- SSLoadタスク・ビーコンの試み (ioc = 'ssloadタスク・ビーコン試行')
- SSLoadモジュールダウンロード申請 (ioc = 'ssloadモジュールダウンロードリクエスト')
- SSLoad結果 ビーコン試行 (ioc = 'ssload結果ビーコン試行')

もう一つの既存のルール、 boc = '外部IPチェッカーへのホストトラフィック'このルールは、マルウェアが使用する4つのIPチェッカー サイトへの送信トラフィックを検索します。このルールは、それだけで何か悪意のあることが起きていることを示すわけではありませんが、NetWitness EDR、SIEM、NDR全体でさらなる調査や脅威ハント演習を行うためのデータポイントになります。さらに、DynDNS Lua Parserは以下を登録します。 analysis.service = 'IPチェッカーサービス' 既知の IP ルックアップ Web サイトへのトラフィックをメタします。このリストは、FirstWatchの様々な調査中に発見された新しいサービスを反映するために更新されました。
この調査で特定されたIOCは、NW Liveで利用可能なマルウェアC2フィードにも追加されています。これらのフィードは、脅威インテリジェンスを強化し、SSLoad関連の活動を検知するための最新情報を提供するのに役立ちます。
参考文献
- https://malpedia.caad.fkie.fraunhofer.de/details/win.ssload
- https://x.com/Unit42_Intel/status/1780021135813337366
- https://intezer.com/blog/research/ssload-technical-malware-analysis/
- https://github.com/PaloAltoNetworks/Unit42-timely-threat-intel/blob/main/2024-04-15-IOC-for-Contact-Forms-campaign-SSLoad-activity.txt
- https://www.securonix.com/blog/securonix-threat-research-security-advisory-frozenshadow-attack-campaign
- https://github.com/executemalware/Malware-IOCs/blob/main/2024-04-17%20SSLoad%20IOCs
- vxintel.io
- https://private.tria.ge/
MITREのテクニック
戦術 | テクニックID | 技術名 | 理由 |
---|---|---|---|
偵察 | T1590 | 被害者ネットワーク情報の収集 | ローダーはIPルックアップサービスを使用して、感染したシステムの外部IPアドレスを見つける。 |
資源開発 | T1105 | イングレス・ツール・トランスファー | FirebaseのURLから悪意のあるJavaScriptファイルをダウンロードする。 |
初期アクセス | T1566.001 | フィッシング-スピアフィッシングの添付ファイル | SSLoadは、おとり添付ファイル付きのフィッシングメールを介して配信されることが多い。 |
T1566.002 | スピアフィッシング・リンク | フィッシングメールには、受信者を偽のAzureページに誘導するリンクが含まれている。 | |
実行 | T1059.001 | コマンドとスクリプトのインタープリター - PowerShell | PowerShellスクリプトは、特にMSIインストール中に、さらなるペイロードの実行に使用される可能性があります。 |
T1059.007 | コマンドとスクリプトのインタープリター - JavaScript | ダウンロードしたJavaScriptファイルの実行。 | |
T1059 | コマンドおよびスクリプト・インタープリタ | 攻撃の様々な段階でスクリプトの実行に使用される。 | |
永続性 | T1055.001 | プロセス・インジェクション - DLLインジェクション | SSLoad暗号化ペイロードをロードして実行するためにDLLを注入する。 |
特権のエスカレーション | T1055.001 | プロセス・インジェクション - DLLインジェクション | SSLoad暗号化ペイロードをロードして実行するためにDLLを注入する。 |
防御回避 | T1027 | 難読化されたファイルまたは情報 | ペイロードは検出を回避するために暗号化されており、マルウェアのさまざまな段階で難読化技術が用いられている。 |
T1140 | ファイルや情報の難読化/復号化 | ドロッパーは実行前にペイロードを解読する。 | |
T1143 | デバッガのチェック | ローダーは解析環境での実行を避けるため、デバッグ環境をチェックする。 | |
T1218.011 | システムバイナリのプロキシ実行 - Rundll32 | システムプロセス内で DLL ペイロードを実行するために使用される。 | |
クレデンシャル・アクセス | T1033 | システム所有者/ユーザーの発見 | SSLoadは、システムの所有者やユーザーに関する情報を収集します。 |
ディスカバリー | T1012 | クエリーレジストリ | システム構成と接続ドライバ情報を収集するために使用される。 |
T1033 | システム所有者/ユーザーの発見 | SSLoadは、システムの所有者やユーザーに関する情報を収集します。 | |
T1057 | プロセス・ディスカバリー | マルウェアは感染したシステム上でプロセス検出を行う。 | |
T1069.002 | 権限グループの検出 - ドメイングループ | SSLoadはドメイングループを特定し、侵害された環境の権限と構造を理解する。 | |
T1082 | システム情報の発見 | このマルウェアは、接続されているドライブを含む詳細なシステム情報を収集する。 | |
T1083 | ファイルとディレクトリの検出 | SSLoadはファイルとディレクトリのディスカバリーを実行し、ファイルシステムに関する情報を収集する。 | |
T1518.001 | ソフトウェア・ディスカバリー - セキュリティ・ソフトウェア・ディスカバリー | このマルウェアは、インストールされているセキュリティ・ソフトウェアを探し、防御を迂回する可能性があることを理解する。 | |
T1120 | ペリフェラル・デバイス・ディスカバリー | 接続されたデバイスを検出するために、ハードドライブのルートパスを読み取ろうとする。 | |
指揮統制 | T1071.001 | アプリケーション・レイヤー・プロトコル - ウェブ・プロトコル | 様々な攻撃段階を通じて、最初の電子メール生成とC2コミュニケーションに使用される。 |
T1573 | 暗号化チャンネル | SSLoadは、C2サーバーとの通信に暗号化を使用しています。 | |
T1219 | リモート・アクセス・ソフトウェア | SSLoadはC2サーバーへのリモートアクセス接続を確立する。 |