2021年7月、サイバーリーズンのNocturnusおよびインシデントレスポンスチームは、主に中東の航空宇宙および通信業界の企業を標的とし、米国、ロシア、ヨーロッパにも攻撃対象を広げている、高度標的型のサイバースパイ攻撃キャンペーン「Operation GhostShell」の調査に取り組みました。
Operation GhostShellが標的にしているのは、重要な資産、組織のインフラおよび技術に関する機密情報です。Nocturnusチームによる調査により、これまで公式記録のなかった「ShellClient」というステルス性の高いRAT(リモートアクセス型トロイの木馬)が特定され、スパイツールとして大きな役割を果たしていることが発見されました。

Nocturnusチームは、ShellClient RATが遅くとも2018年から継続的に開発されており、ウイルス対策ツールによる検知を回避し、一般には知られないまま、新しい機能を組み込んだ攻撃を何度か繰り返してきた証拠も発見しました。
ShellClientの運用者や開発者の身元を調査したところ、遅くとも2018年から活動を開始し、これまでのところ公には知られていない「MalKamak」という名のイランを拠点とする新しい脅威グループが確認されました。さらに、当社の調査では、Chafer APT(APT39)やAgrius APTなど、イランの国家支援を受けた他の脅威グループとのつながりの可能性も指摘されていますが、MalKamakには他の脅威グループとは異なる特徴がいくつかあります。

主な調査結果

  • イランの新しい脅威グループMalKamak:新たに発見され、MalKamakという名を持つイランの脅威グループは、遅くとも2018年から活動しており、これまでは不明のままでした。また、調査によって、Chafer APT(APT39)やAgrius APTなどのイランの国家支援を受けた他の脅威グループと関わりがある可能性も確認されています。
  • 新たなShellClient RATの発見:サイバーリーズンのNocturnusチームは、高度標的型のサイバースパイ活動に使用される「ShellClient」という名の、洗練された、これまで公の記録にはないRAT(リモートアクセス型トロイの木馬)を発見しました。
  • 航空宇宙および通信業界の企業が標的:遠隔測定によると、この脅威は主に中東地域で観測されていますが、航空宇宙および通信業界を中心に、米国、ロシア、ヨーロッパの企業も標的にしていることが観測されています。
  • 2018年以降の継続的な展開:当社の調査によると、この脅威は2018年に運用が開始され、それ以降、バージョンが更新されるたびに多数の機能やステルス能力が追加され、活発な開発が行われています。この脅威は2021年9月時点でも活動中です。
  • C2のクラウドサービスの悪用:ShellClientの最新バージョンでは、正規のネットワークトラフィックに紛れ込み、検知されないように、コマンド&コントロール(C2)のクラウドストレージサービス(このバージョンでは利用者の多いDropboxサービス)を悪用していることが確認されました。
  • ステルス性を重視した設計:ShellClientの開発者は、ウイルス対策ツールなどのセキュリティツールによる検出を回避するために、複数の難読化技術を活用してステルス性を高めることに多大な労力を費やし、最近ではコマンド&コントロール(C2)のDropboxクライアントを実装して、検知を極めて困難なものにしています。

ShellClient:ステルス型RAT

以下のセクションでは、最近観測されたOperation GhostShellの攻撃キャンペ-ンと、遅くとも2018年11月以降に運用開始され、活発に開発されているこのステルス型ShellClient RATの進化の跡をたどります。

最近の攻撃キャンペーン

2021年7月、サイバーリーズンは、これまで公式記録のない「ShellClient」と呼ばれるステルス型RATを使用してサイバースパイ活動を行っている、正体不明の脅威グループに遭遇しました。
このRATを使用して、中東地域の航空宇宙産業や電気通信産業の大手企業を対象に、偵察や機密データの流出を行っているのが最初に確認され、その後、米国、ロシア、ヨーロッパなどの他の地域でも同じくこれらの産業を標的にしているのが確認されました。
ShellClient RATを初めて調査した際に、感染したマシンで悪意のあるバイナリが「svchost.exe」として実行されているのを発見しましたが、その内部名は「RuntimeBroker.exe」に偽装されていました。


▲正規のMicrosoft RuntimeBroker.exeバイナリに偽装されたShellClient RATの内部名

この実行ファイルは、2021年5月22日にコンパイルされたことが特定され、新たに追加されたTTPに隣接して実行されていることが確認されました。

ShellClientの構造と構成

ShellClient RATは、Costuraを利用して各モジュールをzlibで圧縮したモジュラー型PEです。


▲Costuraを利用するShellClient RAT

参照されている2つのDLLに、実行可能な機能が格納されています。
ExtensionLib.dllには、以下のユーティリティと機能が含まれています。

  • AES暗号化(AESキーと初期化ベクトル(IV)を含む)
  • ハッシュ化
  • ファイル操作
  • レジストリ操作
  • プロセス作成
  • シリアル化


▲ExtensionLib.dll

●ClientCore.dllには、以下の主要なクライアント機能が格納されています。

  • フィンガープリンティング
  • ファイル操作
  • ユーザーのなりすまし
  • トークンの処理
  • FTPクライアント
  • Telnetクライアント
  • 設定と文字列


▲ClientCore.dll

この実行ファイルは、設定文字列を含め、ほとんどの文字列をバイトとして保存し、リアルタイムにUnicode/ASCIIに変換して、ウイルス対策の文字列検知を回避します。


▲Unicode/ASCIIを利用してウイルス対策の文字列検出を回避

実行の流れ

ShellClient RATは、以下のような引数条件にしたがって実行されます。

  • 引数がない場合:バイナリはInstallUtil.exeを使用して自身を実行し、悪意のあるnhdServiceサービスをインストールして実行する
  • 引数が1つで、-cと等しい場合:バイナリはサービスコントロールマネージャー(SCM)を使用して実行され、リバースシェルを作成し、C2として設定されたDropboxストレージと通信する
  • 引数が1つで、それが-dに等しい場合:バイナリは通常のプロセスとして実行する


▲ShellClient RA

引数-cまたは-dのいずれかが渡されると、マルウェアはWMIを使用して基本的なフィンガープリンティングを行い、以下の情報を収集します。

  • BIOS情報やMacアドレスなどのハードウェア情報
  • 感染したマシンのパブリックIPアドレスを取得するためのipinfo[.]io/ipへのリクエストを含むネットワーク情報
  • マシンにインストールされているウイルス対策製品の情報
  • 収集されたこれらの情報は、感染させた各マシンの独自のエージェント識別子を作成するためにも使用されます。


    ▲独自の識別子の作成

    コマンド&コントロール(C2)通信

    このマルウェアが実装するC2通信は、通常の対話セッションではなく、リモートのDropboxに保存される「コールドファイル」に依存しているところが非常に特徴的です。この通信方法が「オペレーショナルセキュリティ(OPSEC)」ソリューションとして興味深いのは、Dropboxのような公共サービスを利用することで、攻撃者のインフラストラクチャを追跡することを困難にしている点です。

    Dropboxと通信するために、ShellClientは、DropboxのAPIに独自のAPIキーを埋め込んだものを使用します。通信を行う前に、ハードコードされたAES暗号化キーを使ってデータを暗号化します。
    Dropboxのストレージには、次の3つのフォルダが格納されています。

    • ASフォルダ(エージェントフォルダ):感染させたマシンのアップロード情報を格納
    • CSフォルダ(コマンドフォルダ):ShellClientが取得、実行した後に削除するコマンドを格納
    • RSフォルダ(結果フォルダ):ShellClientが実行したコマンドの出力を格納

    標的にされたマシンは、2秒ごとにコマンドフォルダをチェックし、コマンドを表すファイルを取得し、その内容を解析した後にリモートフォルダから削除し、取得ファイルのコマンドを実行可能にします。


    ▲ShellClientのC2通信

    コマンドを実行した後、実行ファイルは、結果フォルダに結果をアップロードします。ファイル名は、脅威グループが「HardwareID」と呼ぶ独自の犠牲者IDに基づいてランダムに生成されます。


    ▲ShellClientのC2通信

    これらの通信の宛先は、api.dropboxdapi[.]comとcontent.dropboxapi[.]comになります。

    永続性と特権昇格

    ShellClient RATは、Network Hosts Detection Serviceに偽装したnhdServiceを作成することで、標的にされたマシン上のシステム権限で実行される永続性と特権昇格を獲得します。

    • サービス名:nhdService
    • 表示名:Network Hosts Detection Service
    • 説明:ローカルエリアネットワークとリモート接続の両方が可視化される [Network and Dial-Up Connections] フォルダ内のホストを検索および管理する
    • 起動タイプ:自動
    • アカウント名:LocalSystem

    実行可能なコマンド

    この実行ファイルには、任意のコマンド実行、FTP/Telnetクライアント、ラテラルムーブメント、ファイル操作など、その機能を有効にする複数のコマンド関数が含まれています。
    さらに、このマルウェアには、何もしていないように見え、コード内で参照されていないコマンド関数もいくつか存在します。これは、このマルウェアがまだ開発中である可能性を示しています。

    以下の表に、各コマンドの目的を示します。

    コマンド 説明
    code10 ホスト名、マルウェアのバージョン、実行パス、IPアドレス、ウイルス対策製品などの情報を検索する/td>

    code11 ShellClientの更新バージョンを実行する/td>

    code12 InstallUtil.exeを使用して自身を削除する/td>

    code13 ShellClientサービスを再起動する/td>

    code20 CMDシェルを起動する/td>

    code21 PowerShellシェルを起動する/td>

    code22 結果メッセージに“Microsoft Windows Command Prompt Alternative Started …”の行を追加する/td>

    code23 TCPクライアントを開く/td>

    code24 FTPクライアントを開始する/td>

    code25 Telnetクライアントを開始する/td>

    code26 シェルコマンドを実行する/td>

    code29 アクティブなCMDまたはPowerShellシェルをキルする/td>

    code31 ファイルとディレクトリを検索する/td>

    code32 ディレクトリを作成する/td>

    code33 ファイルとフォルダを削除する/td>

    code34 感染したマシンへファイルをダウンロードする/td>

    code35 Dropboxへファイルをアップロードする/td>

    code36 何もしない/td>

    code37 感染させたマシンにファイルをダウンロードして実行する/td>

    code38 WMIを使用してラテラルムーブメントを行う/td>

    ▲ShellClientのC2コマンド

    ShellClientで観測された追加のTTP

    ShellClient RATを使用して、脅威グループは、攻撃オペレーションを支援し、偵察、ラテラルムーブメント、データ収集などのさまざまな活動を行うためのツールも展開しています。

    ラテラルムーブメント

    攻撃者は、PAExecと「net use」を使用してラテラルムーブメントを行っていることが確認されています。PAExecは、有名なSysinternalsのPsExecにいくつかのオプションを加えた再配布可能バージョンです。
    攻撃者は、PAExecを利用して次のようなことを行っていました。

    • CMDシェルをシステムとして実行(リモートマシン上)
    • リモートサービス関連の操作を実行(スタート、ストップ、リスタート、ステータスなど)
    • 組織のActive Directory構造を流出(リモートで実行されたcsvde.exe -f <出力ファイル>コマンドを使用)
    • インターネットへの接続状態を確認(pingを使用してGoogle.comに接続)
    • ホスト情報を収取(ipconfigtasklist、net useを使用)


    ▲Cybereason Defense Platformで観測されたShellClientのPAExec利用

    クレデンシャルダンピングツール

    観測した攻撃の中で、ShellClient RATの活動グループは、クレデンシャルダンピングを実行するためにlsa.exeという未知の実行ファイルを展開し、実行していました。Lsa.exeは、lsass.exeのメモリをdebug.binという名前のファイルにダンプし、以下のコマンドライン引数で実行されることが確認されています。

    • lsa.exe -d
    • lsa.exe -m

    サイバーリーズンのNocturnusチームは、実行ファイルlsass.exeを取得することはできませんでしたが、このツールが作成するdebug.binというダンプファイルから、このツールはSafetyKatzの亜種ではないかと推測しています。このSafetyKatzツールが作成したダンプファイルの名前は、以前にイランの脅威グループに関連づけられたことがあります。


    ▲Cybereason Defense Platformで観測されたShellClientのクレデンシャルダンピング

    ステージング

    データを流出させるために、攻撃者はデータ流出の前にWinRarを使用して重要なファイルを圧縮し、WinRarファイルの名前をrar.exeに変えていました。


    ▲データ流出前にWinRarを使用してデータを圧縮するShellClient

    ShellClientの進化とミッシングリンクの発見


    ▲既知のShellClient RATバージョンの変遷

    調査中にわいた疑問の1つは、このマルウェアの使用がどこまで過去に遡って観察できるかについてでした。当初は、一般に公開されているドキュメントや、それに関する言及が一切なかったため、最近開発されたものだと考えられていました。しかし、解析したサンプルがバージョン4.0であること示すコードがあることから、以前のバージョンがいくつか存在するはずです。

    この仮定に基づき、今回の調査では、観測されたサンプルのメタデータに記載されていた.NET GUIDがミッシングリンクになることが判明しました。この一意の識別子を手掛かりに、同じ.NET TypeLibID GUID(Visual Studioがプロジェクトごとに生成する一意のID、fd01304b-571f-4454-b52b-19cfb8af44a9)を使用する古いインスタンス(バージョン3.1、VTリンク)を発見することができました。


    ▲ShellClientの最新バージョンと古いバージョンの間で共通するNET TypeLib ID GUID

    ここから、文字列やコードの類似性をピボット検索することによって、ShellClientの他の旧バージョンを見つけることができました。このピボット作業により、ShellClientが遅くとも2018年11月から継続的に開発されていることが証明され、3年ほどの開発作業で、マルウェアを単純なスタンドアロン型のリバースシェルからステルス性の高いモジュール型スパイツールへと進化させたことになります。

    マルウェアをアップデートするたびに、開発者は新しい機能と性能を追加し、FTPクライアントやDropboxアカウントを利用して一般的なサービスに紛れ込ませるなどのさまざまなデータ流出のプロトコルや方法を試みています。さらに、バージョン4.0.0以降では、モジュール方式を導入するなど、設計やアーキテクチャを大きく変更させています。

    これまでに発見された亜種の概要を以下に示します。

    VT リンク 亜種のバージョン 名前 コンパイルの日付 最初の送信日 PDBのパス
    VT リンク Earliest Variant svchost.exe 2018-11-06 21:35:41 2018-11-11 15:28:46
    VT リンク 1 svchost.exe 2018-11-29 23:41:15 2020-04-15 23:22:13 D:\projects\07 – Reverse Shell\ShellClientServer_HTTP\obj\Release\svchost.pdb
    VT リンク 2.1 svchost.exe 2018-12-16 11:19:14 2020-04-14 22:59:49 E:\Projects (Confidential)\07 – Reverse Shell\ShellClientServer_HTTP.v2\obj\Release\svchost.pdb
    VT リンク 3.1 svchost.exe 2019-01-12 18:37:20 2019-01-17 22:53:43 D:\Visual Studio 2017\v3.1\ShellClient\obj\Release\svchost.pdb
    VT リンク 4.0.0 RuntimeBroker.exe / svchost.exe 2021-08-10 11:14:51 2021VT-09-22 09:18:59
    VT リンク 4.0.1 RuntimeBroker.exe / svchost.exe 2021-05-22 12:06:05

    2021-07-20 16:16:06

    ▲ShellClient RATの既知のバージョン履歴

    Shellclientの進化の概要

    最初の亜種(2018年11月)

    追跡によって発見された最初期の亜種は2018年11月06日にコンパイルされており、正規のWindowsバイナリを装うために、意図的にsvchost.exeという名前が付けられていました。この初期の亜種は、機能もそれほど多くなく、後継機種に見られる洗練された機能はありません。これは単純なリバースシェルといったレベルのものです。
    主な特徴:

    • ファイル名:svchost.exe
    • ファイルの説明:Windows Defender Service
    • 主な機能:単純なwebsocketベースのリバースシェル
    • ハードコーディングされたC2ドメイン:azure.ms-tech[.]us:80

    亜種バージョンV1(2018年11月)

    2番目に古いこの亜種は、初期バージョンの約3週間後に出現しました。この亜種はより進化し、Windows Defender Updateサービスに偽装した新しいサービス永続化手法など、クライアントとサーバーの両方の機能が実装されています。また、このバージョンのShellClientが通信するC2ドメインはazure.ms-tech[.]us:80です。
    主な更新内容:

    • ファイルの説明:Host Process For Windows Processes
    • 主な機能:
      ・事前定義されたC2コマンドのセット
                   ・CMDシェルまたはPowerShellによる任意のコマンドの実行
      ・クライアントとサーバーのコンポーネント
      ・Windows Defenderを装ったWindowsサービスによる持続性
      ・C2との送信データのBase64エンコード/デコード

    亜種バージョンV2.1(2018年12月)

    亜種バージョンV1から約2週間後にコンパイルされているこの亜種は、ファイルの名前と説明の属性は同じままですが、FTPおよびTelnetクライアント、AES暗号化、自動更新機能など、さまざまな新しい機能が追加されており、開発のさらなる進展を示しています。また、このバージョンのShellClientが通信するC2ドメインはazure.ms-tech[.]us:80です。
    主な更新内容:

      主な機能:

    • FTPおよびTelnetクライアントの実装
    • C2に送信するデータのAES暗号化
    • 自動更新機能
    • クライアントIDおよびバージョニング属性の追加
    • 定義済みC2コマンドの拡張セット

    亜種バージョンV3.1(2019年1月)

    亜種バージョンV2.1の出現から約1カ月後、2019年1月にV3.1の亜種が登場しました。機能面に関してはほとんどマイナーチェンジです。主な違いは、実行ファイルから「サーバー」コンポーネントが削除され、新しいコード難読化とアップグレードされたコマンドメニューが追加されたことです。また、このバージョンのShellClientが通信するC2ドメインはazure.ms-tech[.]us:80です。
    主な更新内容:

      主な機能:

    • サーバーコンポーネントの削除
    • コマンドライン引数の導入
    • コード難読化の初の試み
    • 定義済みC2コマンドの追加
    • WMIによるOSのフィンガープリンティング

    亜種バージョンV4.0.0(2021年8月)

    おそらくShellClientの進化における最大の進歩の1つは、バージョンV4.0.0から始まり、後継のV4.0.1へと引き継がれています。このバージョンで、マルウェア開発者は多くの変更と改良を施し、新しい機能を追加し、Costuraパッカーを使用してコードの難読化とコードの保護を強化したほか、2018年から活用していたC2ドメインを放棄しました。

    従来のC2通信はDropbox内蔵クライアントに置き換えられ、人気のオンラインプラットフォームを悪用してShellClientにコマンドを送信するとともに、流出させた盗取データを指定のDropboxアカウントに保存します。その結果、セキュリティアナリストやほとんどのセキュリティソリューションにとって、ネットワークトラフィックが正当なものに見えるため、検知が難しくなります。
    注:ShellClientの亜種の完全な分析については、画面右下に表示されるIOCポップアップの付録Aを参照してください。

    アトリビューション

    調査では、ShellClientコードのインスタンスを特定し、その出所や既知の脅威グループとの関連性を確認することに注力しました。調査時点でShellClientは公的な記録がなく未知であり、攻撃の背後にある脅威グループの主体も不明であったことから、Nocturnusチームはまず、過去にこの業界や被害を受けた地域に対して同様の攻撃を行った既知の敵対グループとの関連性を探りました。

    その結果、既知のイラン系脅威グループとの関連性がいくつか確認されましたが、調査の結論としては、MalKamakは、他の既知のイラン系脅威グループとは異なる独自の特徴を持つ、新たな活動グループであると考えられます。このデータを公開することで、この脅威にもっと注目が集まり、やがてShellClientの出自についての情報が出てくることを期待しています。

    国家支援の可能性がある脅威グループ

    現在のところ、ShellClientは、国家の支援を受けている脅威グループによって作成および改良が加えられているAPT(Advanced Persistent Threat)と考えられています。サイバーリーズンが分析した侵入事例によると、その動機は、厳選されたごく少数の標的に対するサイバースパイ活動であると考えられます。これは、通常は数多く見つけることができるコモディティマルウェアとは対照的に、2018年以降、遠隔測定や盛んな攻撃などで見つかったサンプルが非常に少ないことからも裏付けられます。

    さらに、ShellClientのサンプルの一部に埋め込まれていたPDBパスは、このマルウェアが軍事や諜報機関の活動に関連している可能性のある禁制または機密のプロジェクトの一部であることを示唆しています。
    E:\Projects (Confidential)\07 – Reverse Shell\ShellClientServer_HTTP.v2\obj\Release\svchost.pdb

    ロシアのTurlaとの関係またはYaraの誤検知か?

    手近なものから調査を進める中、最初の手掛かりとなったのは、ShellClientの古い亜種とともにVirusTotalに掲載されていたYaraルールのコメントでした。このコメントにはAPT_Turla_MSTCSS_Malware_Jun19_1のルール名が表示されていました。


    ▲VirusTotalに現れたYaraルールのコメント

    Nocturnusチームは、ShellClientマルウェアがロシアのAPTグループ「Turla」によって作成された可能性を検討しました。しかし、既知のTurla製マルウェアを慎重に分析した結果、特にYaraルールに参照されているSymantecレポートに記載されているものに関して、TurlaをShellClientや観察された侵入行為に結びつけられる有意な類似点や証拠は見つかりませんでした。

    イラン内の脅威グループ間のつながり

    被害者の多くが中東地域に集中しており、影響を被った産業、攻撃を受けた企業の特徴、侵入方法やマルウェアに関するその他の特徴を押さえることで、チームはOperation GhostShellの侵入の背後にイランの国家支援を受けた脅威グループが存在する可能性についても検討しました。

    Nocturnusチームは、観測結果をイランの脅威グループが関与したとされる過去の攻撃キャンペーンと比較し、ShellClientと過去に報告されたイランのマルウェアや脅威グループとの間に興味深い類似点があることを指摘しています。
    しかし、今のところ、このOperation GhostShellは、他のグループとは異なる特徴を持つ、「MalKamak」と呼ばれる別の活動グループによって実行されたものと考えられます。

    とはいえ、イランのさまざまな脅威グループ間のつながりの可能性を明らかにすることは有益であると思われます。このようなつながりが、これらの脅威グループ間の直接的な協力関係の結果であるかどうかは、現在のところ不明です。
    このような関係は、直接的ではありませんが、別の観点から説明することもできます。たとえば、複数の脅威グループのためにコーディングをしている「サイバー傭兵」などの存在も、観察されたマルウェアに共通部分があることの説明になるかもしれません。

    イランの新しい脅威グループMALKAMAKの概要


    ▲ダイヤモンドモデルで表したMalKamakの概要

    Nocturnusチームは、アトリビューションに有名なダイヤモンドモデルを用いて、今回の攻撃が、これまで知られておらず、イランの利益のために働いていると考えられる「MalKamak」という新しい活動グループによって行われたことを突き止めました。以下は、その主な特徴を簡単にまとめたものです。

    • 出自とする国:イラン
    • 活動期間:遅くとも2018年以降
    • 目的:サイバースパイ活動
    • 被害状況:
    • 被害を受けた地域:中東に集中しているが、米国、欧州、ロシアにも被害者がいる
    • 被害を受けた産業:航空宇宙、通信
    • 独自開発ツール:ShellClient(単純なリバースシェルから複雑なRATへと進化)
    • 一般ツール:SafetyKatz、PAExecpingipconfigtasklistnet、およびWinRAR
    • 既知のインフラストラクチャ:
    • 2018年~2020年:ms-tech[.].us
    • 2021年:DropBox C2

    *MalKamakの名前は、古代ペルシャ神話に登場する、干ばつや波及する混乱を引き起こすとされる生物の名前「Kamak」に由来しています。

    過去のChafer APT関連の攻撃キャンペーンとの類似性

    分析の結果、「Chafer APT」(「APT39」、「ITG07」、「Remix Kitten」などの異名がある)と呼ばれるイランの脅威グループとの間に、興味深い関連性や類似性があることが確認されました。
    このグループは、古くは2014年から活動しており、イラン情報安全省(MOIS)のフロント企業として知られていたテヘランの企業であるRana Intelligence Computing Companyとつながりがあると考えられています。Chafer APTは、中東だけでなく、アメリカやヨーロッパも攻撃目標にしていることが知られています。

    BitdefenderChafer APTレポートで分析されている過去の攻撃キャンペーンを調べたところ、今回の調査での観察結果と興味深い共通点があることに気づきました(詳しくは以降のセクションを参照)。

    現時点での評価では、これらの共通点は興味深いものではあるものの、十分な確実性を持ってアトリビューションを立証するには不十分とされています。

    クレデンシャルダンピング

    Chaferは、侵害したエンドポイントからクレデンシャルを盗取するために、SafetyKatzツールを使用していることが知られています。前述したように、今回分析した脅威グループが同じツールを使用していたことが示唆されています。

    永続性の難読化

    どちらの調査においても、脅威グループは、被害者のシステム上でWindows関連の正当なコンポーネントとしてマルウェアを難読化することで、永続性を確保していました。そのために、どちらの攻撃においてもWindows Defender Updateの名前を使って活動を偽装していました。

    ShellClientの永続性の偽装<・td>

    過去のChafer APTの永続性の偽装
    WIndows Defender Updateサービス スケジュールされたDefender Updateタスク

    永続性の難読化

    PDBパス

    どちらの攻撃でも、実行ファイルは似たようなパスからコンパイルされており、特にルートドライブ下の「projects」フォルダを含んでいることがわかりました。

    ShellClientのPDBパス Chafer APTのPDBパス
    D:\projects\07 – Reverse Shell\ShellClientServer_HTTP\obj\Release\svchost.pdb F:\Projects\94-06\RCE\bin\Release\x64\mas.pdb
    E:\Projects (Confidential)\07 – Reverse Shell\ShellClientServer_HTTP.v2\obj\Release\svchost.pdb F:\Projects\94-08\XNet\bin\Release\Win32\XNet.pdb

    ▲PDBの証拠

    Agrius APT関連の攻撃キャンペーンとの類似性

    調査対象としたイランの脅威グループとしては、「Agrius APT」と呼ばれる比較的新しい活動グループが挙げられます。このグループは、主にイスラエルの組織や企業を攻撃することで知られており、ランサムウェア攻撃を装って破壊的な活動を行っています。

    Agriusの攻撃に関するレポートでは、IPsec Helperと呼ばれるカスタム.NETバックドアについて言及されています。IPsec HelperバックドアとShellClientは全く異なるものですが、コーディングスタイルや命名規則に興味深い類似点がありました。このことは、この2つのマルウェアの関連性を示している可能性があり、同じ開発チームまたは近くにいるチームの開発者が作成した可能性があります。

    このようなコードの類似性は興味深く、ShellClient開発の背後にも同様の開発者がいたか、あるいは少なくとも2つのマルウェアのコードにアクセスできる人物がいたことを示していると考えられます。しかし、サイバーリーズンでは、Agriusが行ったTTPや侵入は、Operation GhostShellで観察されたTTPや侵入とは大きく異なるように思われるため、Agriusがこのオペレーションの背後にいる可能性は低いと結論づけました。

    コーディングスタイルの共通性

    IPsec HelperとShellClientのコマンド解析機能を比較すると、コード構造やロジックが似ていることがわかります。


    ▲「IPsec Helper」とShellClientのコードの類似性

    命名規

    ShellClientとIPsec Helperはどちらも、マルウェアをサービスとして起動するために使用するクラスに似たような命名規則を使用しています。


    ▲ShellClientとIPsec Helperの命名規則の類似点

    キルの仕組み

    ShellClientとIPsec Helperは、セルフキルの仕組みにInstallUtil.exeを使用しています。ShellClientは、セルフキルコマンドを受信すると、InstallUtil.exeを実行して、作成されたサービスを削除し、感染させたマシンから自身を削除します。IPsec Helperは、セルフキルコマンドを受信すると、「remover.bat」というバッチスクリプトを作成して実行します。このスクリプトは、InstallUtil.exeを使用して、マルウェアのために作成されたサービスを削除します。

    データの復号化と暗号化

    ShellClientとIPsec Helperの両方は、Base64とAESを使用して、C2に送信されるデータをエンコードおよび暗号化します。さらに、どちらのマルウェアにも、Base64のエンコードとデコード、AESの暗号化と復号化のための別のクラスがあります。


    ▲ShellClientとIPsec Helperのデータ復号化と暗号化の類似性

    類似点のあるその他の機能

    ShellClient、IPsec Helper、Apostleのマルウェアのいくつかの関数は非常によく似ています。たとえば、Serialize関数は、この3つのマルウェアの亜種すべてに見られます。


    ▲ShellClient、IPsech Helper、Apostleマルウェアの類似点

    インフラへの接続性

    これらのマルウェアの間で確認されたもう1つの興味深い関連性は、ShellClientが使用するドメインazure.ms-tech[.]usとIPsec Helperが使用するドメインwhynooneistherefornoneofthem[.]comの過去のIPアドレス解決に基づいています。これらのドメインはいずれも、139.162.120.150および50.116.17.41という2つのIPアドレスに解決されています。

    これらのIPアドレスを調べてみると、これらはシンクホールとして機能しています。さらに、過去にこれらのIPアドレスに解決された他のドメインを調べてみたところ、イランのAPTに利用された悪意のあるドメインが相当数あることがわかりました。

    まとめ

    このOperation GhostShellレポートでは、サイバーリーズンのNocturnusチームとインシデントレスポンスチームが発見した「ShellClient」という洗練された新しいRAT(リモートアクセストロイの木馬)を紹介しています。このRATは、主に中東にある少数の航空宇宙および通信関連の企業を対象とした高度標的型の攻撃に使用されましたが、被害者はさらに米国、ロシア、ヨーロッパにも及んでいます。これらの攻撃は、遅くとも2018年に活動を開始し、これまで闇に葬られていた「MalKamak」と名の新たに発見されたイランの活動グループによって行われたというのが現時点の評価です。

    また、Operation GhostShellを詳しく調査したとろ、ShellClientの歴史は遅くとも2018年にさかのぼり、それ以来、ほとんどのセキュリティツールをうまく回避しながら継続的に進化しており、完全に未知のままであることが判明しています。セキュリティ研究者は、ShellClientの開発サイクルを研究することで、ShellClientが時間の経過とともに、かなり単純なリバースシェルから、検知されずにサイバースパイ活動を促進するために使用される洗練されたRATへと進化していく様子を観察することができました。

    Operation GhostShell攻撃キャンペーンで確認された最新版のShellClientは、クラウドベースのストレージサービスを悪用する傾向にあります。ShellClientの開発者は、以前のC2ドメインを放棄し、マルウェアのコマンドおよび制御メカニズムを、盗取したデータの流出およびマルウェアへのコマンドの送信をDropbox経由で行う、よりシンプルでステルス性の高いC2チャネルに置き換えることを選択しました。この傾向はますます進み、そのシンプルさと、正規のネットワークトラフィックに効果的に紛れ込むことができることから、多くの脅威グループの間で採用されるようになっています。
    このOperation GhostShellレポートで得られた情報が、ShellClientや新たに確認された脅威グループMalKamakに関する更なる研究のきっかけとなり、長年にわたって隠蔽されてきたこの謎のマルウェアに光を当てる一助となることが、セキュリティ研究者たちの意図するところです。

    エンドポイントセキュリティ選定ガイド

    次世代型のエンドポイントセキュリティの役割と必要性を明らかにし、EPPEDRMDRを導入する際の押さえておくべき選定ポイントをまとめた上で、国内シェアNo.1を誇るサイバーリーズンの製品・サービスの特長をご紹介しています。

    複雑化するサイバー攻撃への対策として、これから次世代型のエンドポイントセキュリティ強化に取り組む方も、すでに取り組んでいる方も、本資料を参考に、さらなるセキュリティ強化に取り組むことをお勧めいたします。
    https://www.cybereason.co.jp/product-documents/brochure/6189/

    エンドポイントセキュリティ選定ガイド