ドメイン生成アルゴリズム(Domain Generation Algorithm, DGA)は、マルウェアやボットネットが外部の指令サーバー(C&Cサーバー)と通信するために、アルゴリズムを用いて自動的に複数のドメイン名を生成する手法です。この手法により、攻撃者は事前に特定されない多くのドメイン名の中から、ランダムに生成されたドメインを使って通信を行い、ボットネットやマルウェアが指令を受け取るためのC&Cサーバーとの接続が難読化されます。
DGAを使うことで、通信先のドメインを特定・ブロックされるリスクを分散できるため、マルウェアの検出や遮断が難しくなるのが特徴です。ConfickerやZeusなどの著名なマルウェアでもDGAが使用され、マルウェアの指令やデータの送受信を安定して行うために活用されています。
ドメイン生成アルゴリズム(DGA)の仕組み
DGAは、感染デバイスにインストールされたマルウェア内のアルゴリズムが、特定の規則に従って日付やキーワード、乱数などから複数のドメイン名を生成します。以下がDGAの一般的な動作の流れです。
- ドメイン名の生成
DGAが、日時やシード値(乱数の種)、特定のキーワードを基に、複数のドメイン名を生成します。たとえば、”example20241101.com” のように、特定の規則に基づき一日に数百から数千のドメイン名を作り出します。 - C&Cサーバーへの接続試行
生成したドメイン名の中から一つずつ試してC&Cサーバーに接続します。これにより、マルウェアが指令を受けたり、盗んだデータを送信したりします。 - 登録済みドメイン名の確認
攻撃者は生成されるドメインのうち一部を事前に登録しておくため、マルウェアは無数に生成されたドメインの中で実際に指令を受けるためのドメインを見つけ、通信を開始します。
ドメイン生成アルゴリズムの種類
DGAはさまざまな生成方法があり、アルゴリズムの種類により、ドメイン名の生成規則が異なります。一般的なDGAの種類は以下の通りです。
1. 日付ベースのDGA
日時(年、月、日)を基にしてドメイン名を生成するアルゴリズムです。この方法は、簡単に生成規則が理解できるため、防御側も予測しやすいですが、攻撃者は一日に大量のドメイン名を使うことで特定やブロックを回避しやすくなります。
2. キーワードベースのDGA
特定のキーワードや接頭辞・接尾辞に基づいてドメイン名を生成するDGAです。キーワードをランダムに組み合わせることで、より予測しにくいドメイン名を作成します。この方法は、予測が難しく、セキュリティ対策の検出を回避しやすい特徴を持ちます。
3. 暗号化キー・シードベースのDGA
暗号化のキーやシード値を基にドメインを生成する方法で、マルウェアごとに異なるシード値を使用するため、ドメイン名の予測が非常に困難です。暗号化されたDGAは攻撃者が容易に制御できるため、特に高度なサイバー攻撃で用いられます。
DGAのメリットとリスク
メリット(攻撃者側の視点)
- 特定・ブロック回避が容易
無数のドメインを生成するため、防御側がC&Cサーバーの接続をすべて特定・ブロックすることが困難になります。 - 復元性の向上
DGAによって生成されるドメイン名は、もしC&Cサーバーがブロックされても、他の生成ドメイン名に切り替えて再接続が可能です。 - 匿名性の確保
攻撃者が特定のドメイン名を一度も使用しないようにしたり、日ごとに違うドメイン名を用いることで、通信の匿名性が向上します。
リスク(被害者側の視点)
- 通信の追跡が困難
DGAのドメイン名は予測が難しいため、ネットワーク管理者やセキュリティソフトが全てのC&Cサーバーを特定するのが困難です。 - 大量のドメイン生成によるネットワーク負荷
数百から数千のドメインに接続を試みるため、ネットワークへの負荷が高まり、サーバーリソースを圧迫する恐れがあります。
ドメイン生成アルゴリズムへの対策
DGAのリスクに対処するため、以下のような対策が講じられています。
- 機械学習によるDGA検出
機械学習やAI技術を用いて、DGAによって生成されるドメイン名の特徴を分析し、通常のドメインと異なるパターンを検出する手法が取られています。これにより、DGAベースの通信が早期に特定される可能性が高まります。 - DNSトラフィックの監視
DNSリクエストの異常を検知することで、DGAによる大量の通信を察知することが可能です。通常の通信とは異なる挙動が発生した場合、早期にDGAベースの攻撃が疑われ、対処できます。 - ブラックリストとホワイトリストの併用
既知のDGA生成ドメインをブラックリスト化することで、不正な通信の遮断を図ります。また、正規のドメインをホワイトリストに登録することで、不審なドメインとの通信を除外しやすくなります。 - Threat Intelligenceの活用
セキュリティ企業や研究機関が提供する脅威インテリジェンスを活用し、DGAを使用するマルウェアやボットネットの活動情報を定期的に更新・反映させることも効果的です。
まとめ
ドメイン生成アルゴリズム(DGA)は、サイバー攻撃の指令サーバーとの通信を難読化するために使われる手法であり、マルウェアの検出と追跡を困難にする特徴を持ちます。DGAに対抗するには、DNS監視や機械学習の導入、脅威インテリジェンスの活用などの多層的な防御策が必要です。ネットワーク管理者やセキュリティ専門家は、DGAの特性を理解し、DGAを使用するマルウェアによる攻撃からシステムやネットワークを守るために最適な対策を講じることが求められます。