ドメイン生成アルゴリズム(DGA)は、さまざまなマルウェアファミリーで見られるアルゴリズムで、コマンド&コントロールサーバーとのランデブーポイントとして使用できる多数のドメイン名を定期的に生成するために使用されます。潜在的なランデブーポイントが多数存在するため、感染したコンピューターは更新やコマンドを受信するために毎日これらのドメイン名のいくつかにアクセスしようとするため、法執行機関がボットネットを効果的にシャットダウンすることは困難です。マルウェアコードで公開鍵暗号を使用しているため、一部のワームはマルウェアコントローラーによって 署名されていない更新を自動的に拒否するため、法執行機関やその他の攻撃者がマルウェアコントローラーからのコマンドを模倣することは不可能です
たとえば、感染したコンピュータは、www.<gibberish>.comなどの何千ものドメイン名を作成し、更新やコマンドを受信する目的でこれらの一部に接続しようとする可能性があります。
マルウェアの難読化されていないバイナリに、コマンド アンド コントロール サーバーによって以前に生成されたドメインのリストではなく、DGA を埋め込むことで、企業内の感染したホストからの送信通信を制限しようとするネットワーク ブラックリスト アプライアンスに事前に送り込まれる可能性のある文字列ダンプから保護されます。
この手法は、 Conficker.aおよび.bワームファミリーによって普及しました。これらのワームは当初、1日に250個のドメイン名を生成していました。Conficker.C以降、マルウェアは毎日5万個のドメイン名を生成し、そのうち500個にアクセスを試みます。マルウェア管理者が1日に1個のドメインしか登録していない場合、感染したマシンが毎日更新される可能性は1%になります。感染したコンピュータがマルウェアを更新するのを防ぐには、法執行機関は毎日5万個の新しいドメイン名を事前登録する必要がありました。ボットネット所有者の視点から見ると、各ボットが毎日照会する複数のドメインのうち、1つまたは数個のドメインを登録するだけで済みます。
最近、この手法は他のマルウェア作成者にも採用されています。ネットワークセキュリティ企業Damballaによると、2011年時点で最も蔓延しているDGAベースのクライムウェアファミリーのトップ5は、Conficker、Murofet、BankPatch、Bonnana、Bobaxです。[ 1 ]
DGAは辞書の単語を組み合わせてドメインを生成することもできます。これらの辞書はマルウェアにハードコードされているか、公開されているソースから取得されている可能性があります。[ 2 ]辞書DGAによって生成されたドメインは、正規のドメインとの類似性が高いため、検出が困難になる傾向があります。
def generate_domain ( year : int , month : int , day : int ) -> str : """指定された日付のドメイン名を生成します。""" domain = ""iが範囲( 16 )の場合:年= ((年^ 8 *年) >> 11 ) ^ ((年& 0xFFFFFFF0 ) << 17 )月= ((月^ 4 *月) >> 25 ) ^ 16 * (月& 0xFFFFFFF8 )日= ((日^ (日<< 13 )) >> 19 ) ^ ((日& 0xFFFFFFFE ) << 12 )ドメイン+= chr (((年^月^日) % 25 ) + 97 )リターンドメイン+ 「.com」例えば、2014年1月7日には、このメソッドはドメイン名 を生成していましたintgmxdeadnxuyla.comが、翌日には を返します。この単純な例は、 CryptoLockeraxwscwsslmiagfah.comのようなマルウェアによって実際に使用されていましたが、その後、より高度な亜種へと変化しました。
DGAドメイン名[ 3 ]はブラックリストを使用してブロックできますが、これらのブラックリストの対象範囲は狭い(公開ブラックリスト)か、非常に一貫性がありません(商用ベンダーのブラックリスト)。[ 4 ]検出技術は、リアクティブとリアルタイムの2つの主要なクラスに属します。リアクティブ検出は、非教師ありクラスタリング技術と、ネットワークNXDOMAIN応答[ 5 ] 、 WHOIS情報[ 6 ]、パッシブDNS [ 7 ]などのコンテキスト情報に依存してドメイン名の正当性を評価します。ディープラーニング技術を使用してDGAドメイン名を検出する最近の試みは非常に成功しており、F1スコアは99%を超えています。[ 8 ]これらのディープラーニング手法では、通常、LSTMおよびCNNアーキテクチャが使用されますが、[ 9 ] 、ディープワード埋め込みは辞書DGAの検出に大きな可能性を示しています。[ 10 ]ただし、これらのディープラーニングアプローチは敵対的手法に対して脆弱である可能性があります。[ 11 ] [ 12 ]
{{citation}}: CS1 maint: ISBNによる作業パラメータ(リンク)