Tofsee ボットネットは独自のドメイン名生成アルゴリズムを使用する

Tofsee ボットネットは独自のドメイン名生成アルゴリズムを使用する

概要

スイス政府コンピュータ緊急対応センター (GovCERT) は最近、Tofsee ボットネット マルウェアの新しいサンプルを発見しました。驚いたことに、Tofsee のドメイン名はアルゴリズムによってランダムに生成されていました。現在、同センターはアルゴリズムの詳細を復元し、今後 12 か月以内に出現する可能性のあるドメイン名をブラックリストに登録しています。

コンテンツ

本日、私たちは興味深いマルウェア サンプルを発見しました。これは数分間で数百件のスパム メールを送信しようとする Tofsee マルウェアであると特定されましたが、これが私たちのレーダーに表示された理由ではありません (私たちは毎日何千ものマルウェア サンプルを分析していますが、その多くがこの動作をしています)。この特定のサンプルに関して私たちの注目を集めたのは、それが使用したドメイン名の検索方法でした。使用されているドメイン名はアルゴリズムによって生成されているようで、約半分はスイスの国別トップレベルドメイン (ccTLD) です。

ドメイン生成アルゴリズム (DGA) を使用するマルウェアは非常にまれです。

分析する

私たちが分析した Tofsee サンプルには、ごく最近のタイムスタンプ「Fri, 16 Dec 2016 07:09:11」が付けられています。

シードを生成する

DGA の具体的なプロセスについて説明します。まず、1974 年 1 月 1 日 0:00 から現在までの秒数 (下図の 0x40A0A0) を計算し、この値に 0x0040A0A8 の 126230400 秒 (UNIX エポックから 1974 年 1 月 1 日までの秒数) を加算します。実際には、上記の手順で現在の UNIX 時刻が取得されます。現在の UNIX 時間を取得するためになぜこの複雑な方法を使用するのかは明らかではありません。この Unix 時間は 60、60、24、7 の 4 つの整数で除算され、最終結果は UNIX エポックから現在までの週数になります。この値は、ドメイン名生成アルゴリズムのシードとして使用されます。したがって、ドメイン名は UTC 時間で毎週木曜日から 1 週間有効になります。

[[180565]]

シード生成プロセス中に疑似乱数ジェネレーター (PRNG) も呼び出され、結果は 10 を法として 0 から 9 までの数値になります。この乱数ジェネレーターは、Borland C/C++ コンパイラーで使用される標準の線形合同アルゴリズムを使用します。

[[180566]]

r2の初期値はほとんど予測できません。

ドイツ

各ドメイン名生成プロセスでは、合計 10 個のドメイン名が生成されます。

(ドメイン レベルは、トップレベル ドメイン、セカンドレベル ドメインなどを含む URL 分類の標準です。完全なドメイン名は 2 つ以上の部分で構成され、各部分は英語のピリオド「.」で区切られます。最後の「.」の右側の部分はトップレベル ドメイン名 (TLD)、次の「.」までのトップレベル ドメイン名の左側の部分はセカンドレベル ドメイン名 (SLD)、セカンドレベル ドメイン名の左側の部分はサードレベル ドメイン名と呼ばれます。以下同様に続きます。ドメイン名の各レベルは、次のレベルのドメイン名の割り当てを制御します)

位置 0x040A0FC では、シードに基づいて週番号などのランダムな文字列が生成されます。このランダムな文字列は、0x040A114 に再度コピーされます。たとえば、文字列 dqg はここでは dqgdqg になります。この文字列の生成の詳細については後で説明します。

最初の SLD を生成するときは、前述の予測不可能な乱数生成アルゴリズム (0 から 9 までの 10 個の数字) を使用し、「a」から「j」までのランダムな文字 (合計 10 文字) を選択し、上記の文字列の末尾に追加して、dqgdqgc.ch などの第 2 レベル ドメイン名を生成します。次に、DGA は選択した文字から始めて、a から j までの文字を順番に選択します。たとえば、最初に「c」を選択した場合、次の文字は「d」、「e」、「f」、「g」、「h」、「j」、「a」、最後に「b」となり、合計 10 個のドメイン名が作成されます。

最初の5つのドメイン名のトップレベルドメイン名は「.ch」に設定され、残りは「.biz」に設定されます。

次に、0x040A0FC (上記dqgdqg) のランダム文字列がどのように生成されるかを見てみましょう。

この処理では、最初に生成されたシード r (週番号) を使用します。たとえば、1970 年 1 月から現在までの時間を週番号に変換し、次のように週番号を使用してランダム文字列を取得します。

たとえば、2016 年 12 月 20 日、UNIX エポックに従って計算された週番号は r=2450、string1 = 2450%26+'a'=g、r=2450/26=94 なので、最初の文字は g、r!=0 となり、ループは r=0 まで続きます。最後の文字は g、q、d です。続いて、ランダム文字列 gqd が dqg に反転されます。その後、もう一度コピーされて dqgdqg が取得されました。

プログラムの実施

以下は、Python で実装された DGA アルゴリズムです。このアルゴリズムは、指定された日付に基づいて、考えられる 20 個のドメイン名すべてを出力できます。実行中の Tofsee マルウェアごとに、これらのドメインの 1 つだけが使用されることに注意することが重要です。

[[180567]]

日付を 2016 年 12 月 20 日に設定した場合、考えられるドメインは 20 個あります。

ドメインリスト

次の表には、今後 52 週間に使用可能なすべてのドメイン名がリストされています。ドメイン名の括弧にはランダムな拡張子が含まれます。たとえば、dqgdqg{a..j}.{ch,biz} は 20 種類のドメイン名を表します。すべての時間は CET (中央ヨーロッパ時間) です。

取られた措置

Tofsee ボットネット運営者がスイスのドメイン名空間 (ccTLD .ch) を悪用するのを防ぐため、当社とスイスの国家トップレベル ドメイン レジストリはさらなる対策を講じました。DGA ドメインの可能なすべての組み合わせは、登録ステータスで未登録ステータスに設定されました。したがって、今後 12 か月間は、DGA アルゴリズムによって生成されたドメイン名は登録されません。

参考リンク

https://www.easyaq.com/newsdetail/id/1946003877.shtml

<<:  SKU多次元属性状態判定アルゴリズム

>>:  [文字列処理アルゴリズム] 入力文字列の各単語の順序を逆にするアルゴリズム設計とCコード実装

ブログ    
ブログ    
ブログ    

推薦する

GPT-4 の創造性は人間を完全に超えています!最新の創造性テストGPT4は上位1%にランクイン

最近、GPT-4に関連した創造的思考テストが人気になっています。モンタナ大学とUMウエスタン大学の研...

人工知能を初めて適用するときに尋ねるべき5つの質問

企業が社内でソリューションを構築する必要は必ずしもありませんが、これが失敗の一般的な原因となります。...

...

...

生成型人工知能が経済と社会に与える影響

生成アルゴリズム、事前トレーニング済みモデル、マルチモーダルなどの技術の累積的な統合と反復を経て、人...

...

エンタープライズ ソフトウェア ベンダーのジェネレーティブ AI への取り組み

2023 年は生成 AI テクノロジーが爆発的に普及した年であり、ChatGPT などのツールが研究...

女性の労働はAIに置き換えられやすいのか?

最近の多くの研究では、主に人工知能や自動化における技術の進歩が、男性よりも女性の雇用に大きな影響を与...

最強モデル育成チップH200発売! 141Gの大容量メモリ、AI推論が最大90%向上、H100にも対応

Nvidia の Huang 氏は、新世代の GPU チップ H200 で再び市場に参入しました。公...

...

深度はディープニューラルネットワークに具体的に何をもたらすのでしょうか?

[[186161]]起源近年、人工知能は爆発的な成長を遂げており、ディープラーニングはその主な原動...

人工知能の3つの浮き沈みと、寒い冬の可能性

[[437677]]より長期的な視点で見ると、中国は歴史上、3つの発展の波と2つの谷を経験してきたこ...

複雑なクエリと集計操作の実装: MongoDB データベースでの Java の応用

MongoDB データベースに Java を適用すると、複雑なクエリや集計操作を実装できるため、開発...

...

...