Sednit再始動:戦線に復帰
ロシアで最も悪名高いAPTグループのひとつが復活
2026/03/30 ESET Research
ロシアで最も悪名高いAPTグループのひとつが復活
2026/03/30 ESET Research
2024年4月以降、Sednitの高度な技術力を持つ開発チームが再始動しました。このチームは、レジリエンスを高める目的で異なるクラウドプロバイダーを利用する2つのインプラント「BeardShell」と「Covenant」を中心とした、最新のツールキットを携えています。この「デュアル(二重)インプラント」手法により、ウクライナ軍関係者に対する長期的な監視が可能となりました。興味深いことに、これら最新のツールセットのコードには、2010年代に同グループが使用していたインプラントの直接的な系譜が見て取れます。
本ブログの要点:
Sednitグループは、APT28、Fancy Bear、Forest Blizzard、またはSofacyとも呼ばれており、少なくとも2004年から活動しています。米司法省は、2016年のアメリカ合衆国大統領選挙直前に民主党全国委員会(DNC)をハッキングした犯行グループの一つとしてSednitを名指ししました。また、ロシア連邦軍参謀本部情報総局(GRU)内の情報機関である26165部隊との関連についても指摘しています。Sednitグループは、世界的なテレビネットワーク「TV5Monde」のハッキング、世界アンチ・ドーピング機関(WADA)のメール流出、その他多くのインシデントの背後で暗躍していると推測されています。
Sednitグループはおそらく、標的への侵入実績において最も驚異的な記録を持つAPTグループの一つです。これまでに分かっている侵害事例の中でも特筆すべきは、ドイツ連邦議会(2015年)、フランスのテレビネットワーク「TV5Monde」(2015年)、そして米国民主党全国委員会(2016年)です。
注目を集める攻撃が相次いでいた数年間、Sednitは幅広いカスタムインプラントに依存していました。その範囲は、XagentやSedrecoといった本格的なスパイ用バックドアから、ネットワークピボッティングツールのXtunnelやエアギャップ環境のマシンからデータを盗み出すUSBStealerのような特殊なツールキットにまで及びます。2016年、ESETはホワイトペーパー「En Route with Sednit」において、この進化した兵器群を詳細に解説しました。
しかし、2019年に変化が起こりました。それ以降、ごく最近に至るまで、Sednitの高性能インプラントが実環境で観測されることは稀でした(2021年にTrellixが報告したマルウェア「Graphite」など、少数の例外を除く)。一方で、同グループはフィッシング攻撃を強化しました。これらのフィッシング攻撃で使用されたカスタムマルウェアは、そのほとんどが単純なスクリプトベースのインプラントで構成されていました。この技術的転換の背後にある理由は、依然として謎のままです。
本ブログ記事では、2024年以降に再び姿を現したSednitの高性能なカスタム兵器を検証します。最新のツールセットの内部構造については、すでにCERT-UA(ウクライナのコンピューター緊急対応チーム)やSekoiaによる報告で取り上げられているため、ここではツールセットの帰属分析に焦点を当てます。
Sednitはスパイ用インプラントを独自開発しており、この特徴が、共有コードのアーティファクトに基づく帰属特定の裏付けとなっています。
この開発能力を象徴する例として、2010年代に同グループが主力のバックドアとして使用していたXagentが挙げられます。2015年、ESETはウクライナにあるLinuxサーバー上でXagentのソースコードを発見しました。このソースコードは、攻撃者がコンパイルした後、保護されていないアーカイブ内に残されていたものです。図1が示す通り、プラグインやC&Cチャネルの有効化/無効化は、コードのコメントイン/コメントアウトによって制御されていました。これらは攻撃要件に応じて標的ごとに選択されており、開発者とオペレーターが密接に連携していたことは疑いの余地はありません。

さらに、2018年の米司法省による起訴状では、Xagentが独自開発されたものであることが明示されており、GRU 26165部隊の特定のメンバーがその開発者であると告発されています。
本ブログ記事では、こうした開発の痕跡を帰属特定の手がかりとして活用します。異なるインプラント間で共有されているコードのアーティファクトを追跡することで、2010年代のツールセットと現在使用されているツールセットを紐付けていきます。
今日のSednitの活動に関するESETの報告は、2024年4月にCERT-UAによってウクライナ政府のマシンから発見されたスパイ用インプラント「SlimAgent」から始まります。SlimAgentは、単純ながら効率的なスパイツールであり、キー入力の記録、スクリーンショットのキャプチャ、およびクリップボードデータの収集を行う機能を備えています。
興味深いことに、ESETのテレメトリから、SlimAgentに類似したコードを持つ、これまで知られていなかったサンプルが特定されました。これらは、ウクライナの事例の6年前にあたる2018年という早い時期に、欧州2カ国の政府機関に対して展開されていたものです。これらのサンプルは、6段階のデータ収集ループが一致しているなど、SlimAgentとコードレベルで強い類似性を示しています(図2参照)。
各段階の実装は、フォアグラウンドウィンドウの実行ファイルを記録するルーチンを含めほぼ同一であり(図3参照)、違いは内部データ構造のレイアウトのみです。


SlimAgentには、収集したログの暗号化など、2018年の検体には存在しなかったいくつかの機能が搭載されています。それにもかかわらず、6年の歳月を経て展開された検体のコードがこれほど強い類似性を示している点には驚かされます。
したがってESETは、2018年のサンプルと2024年のSlimAgentの検体は、同じソースコードから作成されたものであると確信しています。そこで残るのは、「では、この2018年の検体はどこから来たのか?」という疑問です。
2018年の検体には、アナリストにとっては馴染みのあるRemoteKeyLogger.dllという内部名が付けられていました。これは、2012年から2018年にかけてSednitが使用していた主要なスパイ用バックドア「Xagent」のキーロギングモジュールの名前です(詳細はESETのホワイトペーパー「En Route with Sednit」を参照)。
過去のXagentの検体(例:SHA-1: D0DB619A7A160949528D46D20FC0151BF9775C32)を調査したところ、図4に示すような驚くべき共通点が見つかりました。このコードのキーロギングロジックは、マウスカーソルが10ピクセル以上移動していない場合(直近の位置と現在の位置の距離の2乗を、0x64すなわち100と比較)にのみ実行され、同じAPI呼び出しで実装されています。

別の例を挙げると、SlimAgentはスパイ活動ログをHTML形式で出力しますが、そこではアプリケーション名は青、記録されたキーストロークは赤、ウィンドウ名は緑に色分けされています。図5は、notepad.exeを使用して新規作成したTXTファイルにテキストを入力・コピーする際に生成されるログの例です。Xagentのキーロガーも、これと同じ配色でHTMLログを生成します。これは図6に示されており、対応するHTMLカラータグの定義が2015年のXagentのソースコードに含まれています。


これらの類似点に基づき、SlimAgentはXagentのキーロガーモジュールの進化形であり、少なくとも2018年から単独のコンポーネントとして展開されてきたものだと考えられます。さらに、Xagentは6年以上にわたってSednitグループのみが独占的に使用してきたカスタムツールセットであることから、ESETは、SlimAgentはSednitに帰属すると確信しています。
ここで一つの疑問が生じます。なぜSednitは、これほど有名なコードベースに由来するインプラントを再利用したのでしょうか?一つの可能性として、「開発能力の低下」が考えられます。しかし、2024年にウクライナのマシンで発見されたインプラントはSlimAgentだけではありませんでした。カスタム兵器群に新たに加わったツール「BeardShell」も同時に配備されていたのです。
BeardShellは、.NETランタイム環境内でPowerShellコマンドを実行する機能を備えた高度なインプラントであり、正規のクラウドストレージサービスであるIcedriveをC&Cチャネルとして悪用します。
このコンポーネントには、相当な開発努力の跡が見て取れ、これこそがSednitの高度開発チームが活動を再開したとESETが確信する主な根拠となっています。例えば、Icedriveは公開文書化されたAPIを提供していないため、開発者らは公式のIcedriveクライアントが行うリクエスト処理を独自に再実装しました。IcedriveのプライベートAPIが変更されてBeardShellの通信が中断されるたびに、Sednitの開発者たちはわずか数時間で最新版をリリースし、アクセスを復旧させています。
BeardShellと直接的な関連がある別のマルウェアファミリは見つかりませんでしたが、過去のSednitツールとの間に驚くべき類似点を発見しました。それは、BeardShell実行直後に動作するC++の静的イニシャライザから始まります。このルーチンの目的(コードは図7を参照)は、Icedriveクラウドストレージの認証トークンを復号することです。

このルーチンには、不透明述語の挿入と呼ばれる典型的な難読化技術が含まれています(図7の赤枠部分)。
不透明述語は通常、静的解析を妨害するために用いられますが、このような小さなルーチンでは特に効果はありません。注目すべきは、重要なデータを扱っていない他のBeardShellの静的イニシャライザも同じ手法で保護されている点です。開発者は単に、これらすべてに無差別にこの保護機能を適用したのだと考えられます。
この述語の数式は(両辺から2を引くことで)2/((x^2+1) )=y^2+3と簡略化できます。興味深いことに、これと全く同じ不透明述語が、2013年から2016年にかけてSednitが独占的に使用していたネットワークピボッティングツール「Xtunnel」でも使われていました(詳細はESETのホワイトペーパー「En Route with Sednit」を参照)。図8は、Xtunnel(SHA-1:99B454262DC26B081600E844371982A49D334E5E)における難読化コードの一例であり、決して「真」にはならない述語を持つif文が含まれています。

この述語は、BeardShellで使用されているものと同一であるだけでなく、決して実行されないブロックまでもが同様の手法で構築されています。具体的には、2つの本来の命令(黄枠内)を複製し、述語の入力の1つ(この例ではx)に対してダミーの更新処理を行っています。
ESETが知る限り、この不透明述語はXtunnel以外では確認されていません。この手法がXtunnel固有のものであることは、2016年のBlackHat Europeでのプレゼンテーションなどで公に言及されていたため、偽旗作戦として使用されたのではないかと疑う向きもあるかもしれません。しかしながら、もし偽旗作戦であれば、今回のように数式の両辺に+2を加えた亜種ではなく、全く同じ述語を使用したはずです。
この珍しい難読化技術が共有されていること、そしてSlimAgentと同時展開されているという事実から、ESETは、BeardShellはSednit独自の兵器群の一部であると確信しています。
2024年の最初の事例以降、Sednitは2025年から2026年にかけてもBeardShellを展開し続けており、主にウクライナ軍関係者を標的とした長期的なスパイ活動に利用しています。こうした価値の高い標的への持続的なアクセスを維持するため、SednitはBeardShellと並行して別のインプラントを組織的に展開しています。それがCovenantであり、最新の兵器群の最終コンポーネントです。
Covenantは、2019年2月に初めて公開されたオープンソースの.NETポストエクスプロイテーション(侵害後の活動用)フレームワークです。Webベースのダッシュボード(図9の例を参照)経由で.NETインプラントの作成・管理が可能であり、データの持ち出し、標的の監視、ネットワークピボッティングなど、90種類以上の組み込みタスクをサポートしています。

2023年以降、Sednitの開発者たちはCovenantを主要なスパイ用インプラントにするため、数多くの修正と実験を重ねてきました。一方で、Covenantのクラウドベースのインフラが停止されるなどの問題が発生した場合に備えて、BeardShellを主にバックアップとして残しています。
例えば、SednitはCovenant本来のインプラント名生成メカニズムを、決定論的手法に置き換えました(図10参照)。これにより、実行のたびに新しいランダムな値を生成するのではなく、マシンの特性から導出された識別子を生成するようになりました(図9のGruntsセクションのName列を参照)。この修正は、SednitがいかにしてCovenantを、短期的なポストエクスプロイテーション活動用ではなく、長期的なスパイ活動用に変更したかを物語っています。これは、長期的な作戦では、再起動のたびに同一のマシンが異なる識別子で表示されると、ダッシュボードが煩雑になり運用効率が低下するためです。

Sednitはまた、動作検出を回避するためと思われる、2段階インプラントであるCovenantの実行フローにも変更を加えました。本来の仕様では、第1段階のダウンローダーが固定インデックスを使用して第2段階の.NETアセンブリのメソッドを呼び出しますが、新たにDisplayName属性を導入しました。これにより、メソッド属性を反復処理してエントリポイントを特定するようになりました。さらに2023年初頭の亜種では、2つの段階を1つのバイナリに埋め込むという実験も行っています。
Covenantが公式にサポートしているのはHTTPとSMBのみですが、これに対してSednitは最大の改変、すなわち「クラウドベースのネットワークプロトコルの追加」を行いました。これを実現するために、Sednitの開発者たちはC2Bridgeプロジェクトを利用しました。これは、Covenantのオリジナルの作者が新しい通信プロトコルの統合を容易にするために作成した、スタンドアロンのフレームワークです。C2Bridgeを利用する場合、開発者はインプラント側にIMessengerインタフェースに準拠したクラスを実装し、低レベルの通信を制御するためのReadおよびWriteメソッドを用意するだけで済みます。これにより、C2Bridgeはコントローラ上のスタンドアロンコンポーネントとして動作してメッセージを中継し、コントローラによって作成された新しいインプラントは、実装された通信メソッドを使用するようになります。
図11は、2025年7月から使用されているクラウドプロバイダーFilenとの通信のために、Sednitの開発者が導入したクラスを示しています。FilenMessengerクラスがIMessengerを実装し、FilenClientを介してFilen APIとやり取りを行う仕組みです。SednitのCovenantはこれ以前にも、2023年には正規のクラウドサービスpCloudを、2024年から2025年にかけてはKoofrを、同様の実装手法で悪用していました。

これらの改変は、Sednitの開発者がCovenantに関する深い専門知識を獲得していることを示しています。Covenantは2021年4月に公式な開発が終了しており、防御側からは「もはや使われていないツール」と見なされていた可能性があります。しかし、この意外な運用上の選択が功を奏したようです。Sednitは数年間にわたり、特にウクライナの特定の標的に対して、Covenantを駆使し成果を上げてきました。例えば2025年、Sednitが管理するCovenantのクラウドドライブを分析したところ、6カ月以上にわたって監視されていたマシンが存在することが明らかになりました。また、CERT UAの報告にある通り、2026年1月には脆弱性CVE 2026 21509を悪用した一連のスピアフィッシング攻撃においても、SednitはCovenantを展開していました。
本ブログ記事では、Sednitの高度開発チームが活動を再開したことを示しました。このチームの兵器群は、それぞれ異なるクラウドプロバイダーを利用する2つのインプラント「BeardShell」と「Covenant」を中心に構成されており、これらを組み合わせて運用しています。このように構成していることで、一方のインフラが停止されたとしても、オペレーターは迅速にアクセスを再確立できます。ESETは、このデュアルインプラント戦略は新しいものではないと考えています。例えば、Trellixが報告した2021年の攻撃キャンペーンにおいて、Sednitは並行して2つのインプラントを展開していました。C&CチャネルにOneDriveを利用したGraphiteと、独立した専用インフラに依存するPowerShell Empireです。
BeardShellの高度な仕様とCovenantへの大規模な改変は、Sednitの開発者が依然として高度なカスタムインプラントを生み出す能力を備えていることを示しています。さらに、これらのツールと2010年代のツールとを結びつける共有コードや技術は、開発チーム内の継続性を強く示唆しています。
ここで一つの疑問が生じます。セキュリティコミュニティがSednitによるフィッシング活動ばかりを観測していたこの数年間、Sednitの開発者たちは何をしていたのでしょうか。一つの可能性として、ロシアによるウクライナ侵攻を受けて、高度な開発への取り組みが再開されたと考えられます。もう一つは、開発を止めていたわけではなく、単に以前よりも慎重になっていただけであるという可能性です。
| SHA-1 | ファイル名 | 検出 | 説明 |
|---|---|---|---|
| 5603E99151F8803C13D48D83B8A64D071542F01B | eapphost.dll | Win64/Spy.KeyLogger.LS | SlimAgent。 |
| 6D39F49AA11CE0574D581F10DB0F9BAE423CE3D5 | tcpiphlpsvc.dll | Win64/BeardShell.A | BeardShell。 |
この表は、MITRE ATT&CKフレームワークのバージョン18を使用して作成されています。
| 手法 | ID | 名前 | 説明 |
|---|---|---|---|
| リソース開発 | T1583.006 | インフラストラクチャの取得:Webサービス | BeardShellはIcedriveクラウドストレージに依存しています。 CovenantはFilenクラウドストレージに依存しています。 |
| T1587.001 | 開発能力:マルウェア | BeardShellとSlimAgentはカスタムマルウェアです。 | |
| 実行 | T1059.001 | コマンドおよびスクリプトインタプリタ:PowerShell | BeardShellはPowerShellコマンドを実行します。 |
| T1129 | 共有モジュール | BeardShellとSlimAgentは完全なDLLファイルです。 | |
| 権限昇格 | T1546.015 | イベントトリガーによる実行:コンポーネントオブジェクトモデル(COM)のハイジャック | BeardShellとSlimAgentは、COMオブジェクトを乗っ取ることで常駐化します。 |
| 防衛機能の回避 | T1027 | ファイルや情報の難読化 | BeardShellのIcedriveトークン復号処理は難読化されています。 |
| T1140 | ファイルや情報の難読化解除と復号 | BeardShellは自身の文字列を復号します。 | |
| T1480 | 実行ガードレール | BeardShellはtaskhost.exeまたはtaskhostw.exe内でのみ実行されます。 SlimAgentはexplorer.exe内でのみ実行されます。 | |
| T1564 | アーティファクトの隠蔽 | SlimAgentのログは隠しファイルに書き込まれます。 | |
| 探査 | T1082 | システム情報の検出 | BeardShellは侵害されたマシンのフィンガープリントを送信します。 |
| 収集 | T1005 | ローカルシステムのデータ | BeardShell、Covenant、SlimAgentは侵害されたマシンからデータを収集します。 |
| T1056.001 | 入力情報の取得:キーロギング | SlimAgentはキーロギングを実行します。 | |
| T1113 | 画面キャプチャ | SlimAgentは侵害されたマシンのスクリーンショットをキャプチャします。 | |
| T1115 | クリップボードのデータ | SlimAgentはクリップボードデータを収集します。 | |
| C&C(コマンド&コントロール) | T1001 | データの難読化 | BeardShellは偽の画像にデータを埋め込み、外部へ流出させます。 |
| T1071.001 | アプリケーションレイヤープロトコル:Webプロトコル | BeardShellとCovenantはC&C通信にHTTPSを使用します。 | |
| T1102 | Webサービス | BeardShellはIcedriveからコマンドを受け取ります。 CovenantはFilenからコマンドを受け取ります。 | |
| T1573.002 | 暗号化されたチャネル:非対称暗号方式 | BeardShellとIcedrive間の通信はHTTPSによって暗号化されます。 Covenantとコントローラ間の通信はRSA暗号化されたセッションキーを使用します。 | |
| 外部へのデータ持ち出し | T1567 | Webサービスを介した外部へのデータ持ち出し | BeardShellはデータをIcedriveへ流出させます。 CovenantはデータをFilenへ流出させます。 |