ネットワーク内のDNSトンネリングを検出する方法とは?
過去数年にわたり、DNSトンネリングを活用したデータ流出を行うマルウェア検体が複数の事例で確認されています。2021年6月には、「BazarCall(またはBazaLoader)」として知られるマルウェアによる詐欺行為に関連して、Microsoft セキュリティ・インテリジェンス(世界的なセキュリティ専門家のネットワーク)から警告が発出されました。この詐欺では、感染した被害者に対し、偽のコールセンターに電話をかけさせる手法が用いられました。
BazarCallは、Anchorマルウェアとの関連性があり、C2サーバとの通信にDNSトンネリングを使用する可能性が考えられます。さらに、特定のAPT攻撃グループは、中東の政府機関を標的としたマルウェア配布キャンペーンにおいてもDNSトンネリングを活用しています。以下に、ネットワーク内でDNSトンネリングを探知するためのいくつかの手法を紹介します。
DNSトンネリングの概要
では、攻撃者はどのようにしてマルウェアにDNSトンネリングを活用するのでしょうか。具体的なステップは以下の通りです。
最初に、C2サーバとして利用するためのドメインを登録します。
次に、マルウェアはDNSクエリをDNSリゾルバに送信します。
この際、DNSサーバはクエリをC2サーバに転送します。
こうして、C2サーバと感染したホストとの接続が確立されます。
DNSによる通信は遮断されないことが多いため、DNSトンネリングは攻撃者にとってデータを盗み出し、ネットワークへアクセスする便利な手法となります。同時に、DNSトンネリングには、ネットワーク上でのDNSトンネリングを検出するために使用できる、非常に明確なネットワーク識別子が存在します。
任意のデバイスへのDNSトンネリング
ネットワーク識別子に関しては、DNSトンネリングにおいてテキスト型のクエリが非常に一般的ですが、DNSトンネリングは、一般的ではないクエリタイプ、例えばタイプ10(NULL)などでも利用可能です。
ネットワーク上でのDNSトンネリングの検出には、長大なDNSクエリと通常ではないDNSクエリタイプを調査し、合法的なセキュリティソリューションと悪意のあるトラフィックを区別し、人間によるDNSトラフィックとボットによるトラフィックを区別する必要があります。
次の例では、当社の顧客ネットワークで検出されたDNSトンネリングトラフィックに関連するアルゴリズムを解析します。通常、DNSトンネリングはWindowsでの使用が見られますが、この例ではAndroidでの使用が確認されました。
DNSを生成するアルゴリズムの検証
AndroidにおけるDNSトンネリングの使用事例において、いくつかの共通の特徴が確認されました。図1のスクリーンショットからは、複数のDNSクエリで同じアルゴリズムが使用されていることが明らかです。このアルゴリズムは8つの部分に分かれています。
図1では、複数のDNSクエリで同じアルゴリズムが使用されていることがわかります。このアルゴリズムは、次の5つのパートに分割されます。
最初のパートは4-11文字(赤)
2番目のパートの最初の6文字が異なるクエリ間で繰り返される(青)
次のパートは63文字(黄)
最後のセクションは10文字(黒)
2番目のパートの最初の文字を結合した文字列が繰り返される(緑)
アルゴリズムの検証結果から、これらのDNSクエリは同一のアルゴリズムを共有しており、同じボットから送信されたものであることが明らかです。さらに、異なるDNSクエリでも繰り返し使用されるアルゴリズムが統一されていることから、これはボットによるトラフィックであると推測されます。ボットが生成するトラフィックは、一貫性を持ち、同様な特徴を示す傾向があります。
送信先の検証
次に、DNSクエリの送信先を検証します。送信先を確認することにより、複数の未知のサーバを特定できます。これらのサーバが受け取った他のDNSクエリを検証したところ、トンネリングクエリ以外のものは見当たりませんでした。DNSサーバへの正当なトラフィックが特定できない場合、同じサーバがマルウェアに悪用されている可能性が高まります。
ポピュラリティの検証
ネットワークが十分な規模を持つ場合、IPアドレスまたはドメインのポピュラリティを評価するアルゴリズムを開発することは、マルウェアの検出に有益な手段となり得ます。このようなポピュラリティ測定アルゴリズムは、Catoネットワーク内の多数のユーザーを対象に適用され、DNSクエリにおける特定サーバのポピュラリティが低いことが判明しました。
IPアドレスのポピュラリティが低い場合、そのサーバがマルウェアによってのみ使用されている可能性が高まり、これは悪意のあるサーバを識別する重要な指標となります。ただし、ポピュラリティが低いだけでは、悪意のあるサイトを確実に特定するのには不十分であり、他の指標と組み合わせて判断する必要があります。
まとめ
DNSトンネリングは、攻撃者が多くのファイアウォールを通過してC2サーバと通信し、データ流出を実現するために古くから使用されている手法です。しかし、ネットワークの特徴に焦点を当てることで、脅威を特定することが可能です。
今回のケースでは、アルゴリズムによって生成された複数のDNSクエリ、不明な送信先サーバ、およびポピュラリティの低いサーバが検出されました。これらの指標は個別では必ずしも悪意のある通信を示すものではありませんが、手動調査によりこのセッションが高い確率で悪意のあるものであることが確認されました。ネットワークとセキュリティ情報を組み合わせることは、脅威の検出の向上に寄与する良い例となりました。
Cato Networksについて
当社の提供するSASEは、世界中のあらゆる場所から、すべてのユーザーを、あらゆるアプリケーションに安全かつ最適に接続することを実現します。Catoのクラウドファーストアーキテクチャは、ITチームへの負担を排除し、新しい機能を迅速に展開し、最適なセキュリティ体制を維持できます。当社サービスなら、貴社のIT組織およびビジネスの新たな事態に備えることが可能です。
この記事が気に入ったらサポートをしてみませんか?