「Earth Kasha」をご存知ですか?日本が攻められていますよ。巧みな攻撃手法について今日はちょっと解説します。
要約
このニュースは、2019年から日本を主な標的としていたLODEINFOマルウェアを使った攻撃グループ「Earth Kasha」の新しいキャンペーンについて報告しています。2023年から2024年初頭にかけて、Earth Kashaは攻撃対象を日本、台湾、インドに拡大し、初期アクセス手法も公開アプリケーションの脆弱性を悪用するように変化させました。また、LODEINFO以外にも、Cobalt Strike、NOOPDOOR、MirrorStealerなどの新しいツールを使うようになっています。このキャンペーンは、過去のLODEINFOキャンペーンと関連があると考えられ、APT10グループとも関係があると言われています。「編集長の意見」セクションで、「ドメイン生成アルゴリズム(Domain Generation Algorithm: DGA)」について簡単に解説していますので日本のセキュリティ担当者の方はぜひご一読を。
詳細分析
主なポイント
- Earth Kashaによる新しいLODEINFOキャンペーンの報告
- 攻撃対象の拡大と初期アクセス手法の変化
- LODEINFO以外の新しいツールの使用
- 過去のLODEINFOキャンペーンとの関連性
- APT10グループとの関係性
社会的影響
- 日本、台湾、インドの組織が標的となっている
- 先端技術関連組織や政府機関が攻撃対象となっている
- 企業製品の脆弱性が悪用されている
- ドメイン生成アルゴリズムを使ったC&Cサーバー通信など、高度な手法が使われている
編集長の意見
このキャンペーンは、過去のLODEINFOキャンペーンと関連があると考えられ、APT10グループとも関係があると言われています。攻撃対象の拡大や初期アクセス手法の変化、新しいツールの使用など、グループの進化が見られます。また、ドメイン生成アルゴリズムの使用やマルウェアの高度な機能など、高度な手法が使われていることから、今後も注意が必要だと思われます。セキュリティ対策としては、脆弱性管理の強化、ログ監視の強化、エンドポイントの防御強化などが重要だと考えられます。
解説
Domain Generation Algorithm:DGAとは?
本日は、日本が標的とされているというこで、
「ドメイン生成アルゴリズム(Domain Generation Algorithm: DGA)」とは、どういうものか解説します。
これは、マルウェアが指令サーバー(C&C: Command & Control)と通信する際に使用する高度な隠蔽手法です。
今回は、ドメイン生成アルゴリズム(DGA)について、以下の観点をもとに説明していきます。
- DGAを利用してC2サーバーとの通信検知をなぜ回避できるのかというメカニズム
- DGAの基本的な技術メカニズムの詳細な説明
- マルウェアにおけるDGAの具体的な利用方法
- 攻撃者の戦略的意図と技術的アプローチ
- ネットワークセキュリティ専門家向けの防御戦略
- 将来的な脅威
1. なぜDGAで、検知を回避できてしまうのか?C2サーバー通信回避メカニズム
- DGAによるC2サーバー通信検知の回避の技術的メカニズム
- 従来の検知手法を無効化する具体的な戦略
- マルウェアの通信インフラストラクチャーにおける動的適応性
マルウェアがドメイン生成アルゴリズム(DGA)を用いてC2(Command and Control)サーバーとの通信を検知から回避する仕組みは、サイバー攻撃における最も洗練された技術的戦略の一つです。 DGAによる通信検知の回避メカニズムを包括的に解説します。
通信検知回避の根本的なメカニズム
従来のマルウェア通信モデルでは、攻撃者は固定のドメインやIPアドレスを使用していました。 これにより、セキュリティシステムは容易にこれらのアドレスを特定し、ブラックリスト化することができました。 DGAは、この従来の防御モデルを根本から覆す革新的なアプローチを提供します。
DGAは以下のようなフローで通信の検知を回避します。
-
動的ドメイン生成
- マルウェアは、予測不可能な数学的アルゴリズムを使用して、常に新しいドメイン名を生成します。
- 生成されるドメイン名は、人工的かつ無作為に見えるため、従来の静的フィルタリングを回避できます。
-
予測可能性と無作為性のバランス
- 攻撃者は、マルウェアと自身のC2サーバーで共有される特定のシード(種)を使用します。
- このシードにより、マルウェアと攻撃者は同じアルゴリズムで生成されるドメインを予測できますが、外部の観察者には完全にランダムに見えます。
-
高頻度のドメイン変更
- 多くのDGAは、時間(日付、時刻)をシード値の一部として使用します。
- これにより、数時間から数日ごとに新しいドメインセットが生成され、継続的な追跡を困難にします。
具体的な通信回避戦略
DGAによるC2サーバー通信回避は、多層的な戦略によって実現されています。 具体的にどのようなフローで通信検知を回避しているのかをまとめてみました。
-
ドメイン生成アルゴリズムの複雑性
- 生成アルゴリズムには、暗号学的ハッシュ関数、擬似乱数生成器、文字列操作など、複雑な技術が使用されます。
- これらの技術により、生成されるドメイン名は統計的に検出が困難になります。
-
大量のドメイン候補
- 単一のDGAは、数千から数万のドメイン候補を生成可能です。
- 攻撃者は、これらの候補の一部のみを実際のC2サーバーとして稼働させます。
-
ドメイン登録の分散
- 生成されたドメインは、世界中の異なるドメインレジストラに分散して登録されます。
- これにより、特定の地域やレジストラに集中した攻撃の痕跡を隠蔽できます。
-
動的な通信プロトコル
- DGAと組み合わせて、通信プロトコルも動的に変更されます。
- 暗号化方式、通信パターン、データエンコーディングが常に変化するため、検知はさらに困難になります。
このように、DGAと組み合わせて通信プロトコルも動的に変更してしまいます。 このプロトコルと固定して監視することができないようになっています。
防御側の課題
今の時点で、ディフェンダー側としては、下記のような課題があり、難しそうなのが実情です。
- 膨大な数のドメイン候補の中から、実際の悪意のあるドメインを特定することの困難さ
- 統計的および機械学習的アプローチによる、ランダムなドメインと悪意のあるドメインの識別が困難
- リアルタイムでの動的な脅威検出システムの構築ができるか?
DGAによるC2サーバー通信検知の回避は、単なる技術的トリックではなく、サイバー攻撃における高度な戦略的アプローチです。 攻撃者は、数学、暗号学、ネットワーク技術を巧みに組み合わせることで、従来のセキュリティ防御機構を継続的に無効化しようとしています。
この戦略の本質は、常に変化し、予測不可能でありながら、攻撃者側では依然として制御可能な通信インフラストラクチャーを構築することにあります。 より動的で知的な対応が求められているのです。
2. ドメイン生成アルゴリズム(DGA)の技術的基盤
- DGAの根本的な技術的メカニズム
- アルゴリズムの動作原理
- 暗号学的手法の具体的な仕組み
ドメイン生成アルゴリズム(DGA)は、サイバー攻撃における高度な隠蔽技術の一つです。 その本質は、数学的アルゴリズムを用いて、一見ランダムに見えるドメイン名を系統的に生成することにあります。
通常のドメイン名は、人間が覚えやすく、意味のある文字列で構成されます。 一方、DGAで生成されるドメイン名は、暗号学的な計算過程を経て作り出される文字列で、外見上は完全にランダムで意味を持たない文字の組み合わせとなります。
攻撃者は、このアルゴリズムに特定のシード(種)を入力することで、マルウェアと攻撃者の双方が予測可能な、しかし外部から見れば不規則な一連のドメイン名を生成できます。 このシード値は、日付、時刻、システム固有の情報、暗号学的ハッシュなど、多様な情報源から取得されます。
DGAの基本的な実装例
(Pythonによるあくまでも概念的な実装)
import hashlib
from datetime import datetime
def dga_domain_generator(seed, tlds=['.com', '.net', '.org']):
# シード値を一貫した形式に変換
seed_bytes = str(seed).encode('utf-8')
# 暗号学的ハッシュを使用して擬似ランダムデータを生成
hash_object = hashlib.sha256(seed_bytes)
hash_hex = hash_object.hexdigest()
# ドメイン名のコンポーネントを抽出
# 5〜20文字のランダムな長さのドメインを生成
domain_length = int(hash_hex[:2], 16) % 15 + 5
# 小文字のランダムな文字列を生成
domain_name = ''.join([
chr(int(hash_hex[i:i+2], 16) % 26 + 97) # a-zの範囲
for i in range(2, 2 + domain_length * 2)
])
# トップレベルドメイン(TLD)をランダムに選択
tld = tlds[int(hash_hex[-2:], 16) % len(tlds)]
return domain_name + tld
# 使用例
current_seed = datetime.now()
generated_domain = dga_domain_generator(current_seed)
print(f"生成されたドメイン: {generated_domain}")
Earth KashaのDGA実装は、単純なランダムドメイン生成をはるかに超える、洗練された多層的なネットワーク侵入アプローチをしていると考えられます。 その技術的複雑さは、
- 精巧な暗号技術
- 動的な通信戦略
- 適応的な生成メカニズム といったあたりを含み高度なものになっていることでしょう。
3. マルウェアにおけるDGAの実践的利用
- マルウェアがDGAを活用する具体的な戦略
- 通信の秘匿性を高める技術的メカニズム
- 検出回避の詳細な方法論
マルウェアにおけるDGAの利用は、まるで軍事作戦における機動戦略のようです。 攻撃者は、絶えず変化するドメイン名を使用することで、セキュリティシステムの追跡を困難にします。
典型的な利用シナリオでは、マルウェアは毎日、あるいは数時間ごとに新たなドメイン名を生成するとのことです。 これらのドメイン名は、一見無秩序な文字列で構成され、従来のセキュリティフィルターを通過しやすくなっています。 同時に、攻撃者は同じアルゴリズムを使用して、マルウェアが生成するドメインを予測し、対応するC2サーバーを事前に準備しています。
4. 攻撃者の戦略的意図と技術的アプローチ
- 攻撃者がDGAを選択する背景
- 技術的な意思決定のプロセス
- サイバー攻撃における戦略的位置づけ
攻撃者にとって、DGAは単なる技術的トリックではなく、精緻な戦略的ツールです。 従来型のドメイン固定型攻撃と比較して、DGAには明確な利点があります。
セキュリティシステムは通常、悪意のあるドメインをブラックリストに登録することで防御しますが、DGAはこの防御メカニズムを根本的に無効化します。 生成されるドメインは頻繁に変更され、かつ予測不可能な形で作成されるため、リアルタイムでの検出と遮断が著しく困難になります。
5. 防御戦略?
- 高度な検出技術の解説
- 機械学習を活用した防御アプローチ
- プロアクティブな脅威対策の方法論
DGA対策は、単なる技術的な遮断を超えた、多層的かつ動的なアプローチが求められます。 AIや機械学習を基盤とした検出システムが、最も有望な防御手段として浮上しています。
しかし、ネットワークセキュリティ専門家は、ドメイン名の統計的特性、生成パターン、言語学的特徴を総合的に分析するモデルを構築する必要があります。 単に「ランダム」かどうかを判定するだけでなく、ドメイン生成の背後にある複雑な数学的パターンを理解することが重要となります。
6. DGAの発展はどうなる?
- DGA技術の将来的な発展方向
- 新たな技術的挑戦の予測
- サイバーセキュリティの進化の方向性
AIと量子コンピューティングの進歩により、DGA技術は今後さらに洗練され、予測不可能性を高めていくと予想されます。
生成的AIは、より人間らしく、かつ検出を回避しやすいドメイン名の生成が可能になるでしょう。 また、量子暗号技術の統合により、現在の暗号学的手法をさらに超える、真にランダムなドメイン生成が実現する可能性があります。
まとめると
サイバーセキュリティの領域において、DGAは単なる一技術ではなく、攻撃者と防御者の間で繰り広げられる絶え間ない技術的軍拡競争の象徴的存在です。
技術者、セキュリティ専門家には、この技術の本質を深く理解し、常に進化し続ける脅威に対して柔軟かつ積極的にアプローチすることが求められます。 理論的な知識と実践的な対応力を兼ね備えた、総合的な視点が今後ますます重要となるでしょう。
このような手法は、一般的なマルウェア対策では検知・防御が難しく、高度な脅威インテリジェンスや動的解析が必要となります。 われわれ、Packet-Pilot編集部では、DNSのQueryログを解析して、特定のPCからのQueryの頻度など色々調査するツールを作って観察を続けております。 ご参考になれば。
背景情報
- Earth Kashaは2019年から日本を主な標的としていた
- LODEINFO以外にも、Cobalt Strike、NOOPDOOR、MirrorStealerなどの新しいツールを使うようになった
- 過去のLODEINFOキャンペーンとの関連性が示唆されている
- APT10グループとの関係性が示唆されている