概要 スイス政府コンピュータ緊急対応センター (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 週間有効になります。
シード生成プロセス中に疑似乱数ジェネレーター (PRNG) も呼び出され、結果は 10 を法として 0 から 9 までの数値になります。この乱数ジェネレーターは、Borland C/C++ コンパイラーで使用される標準の線形合同アルゴリズムを使用します。
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 つだけが使用されることに注意することが重要です。
日付を 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 |
>>: [文字列処理アルゴリズム] 入力文字列の各単語の順序を逆にするアルゴリズム設計とCコード実装
TensorFlow.js がリリースされた後、以前にトレーニングしたターゲット/顔検出モデルと顔...
「ディープラーニングフレームワークは、インテリジェント時代のオペレーティングシステムです。百度のP...
先週、私たちは PaddlePaddle と Tensorflow を使用して画像分類を実装し、自分...
[[394975]]基数ソート基数ソートは「分散ソート」に属し、「バケット ソート」または「ビン ...
『2001年宇宙の旅』のHAL 9000の恐ろしい宣言から『ターミネーター』映画における終末的な機械...
負荷分散の開発基盤は負荷分散アルゴリズムです。次に、サーバーごとに持つ機能や必要な機能が異なるため、...
翻訳者 |李睿レビュー | Chonglouこの記事の著者であるMartin Heller は、 W...
人工知能が私たちの生活に大きな利便性をもたらすことができるのは、その背後に多くの機能があるからです。...
米国のメリーランド大学の研究者4人が、GoogleのキャプチャシステムReCaptchaを解読できる...
昨晩、娘がぼんやりしてリビングルームに立っていたので、私は彼女に尋ねました。「何をしているの?」彼女...
未来産業研究所は、顔認識市場規模は今後5年間で平均23%の複合成長率を維持し、2024年までに市場規...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
アメリカのテクノロジーブログ「TechCrunch」の主要寄稿者であるMG Siegler氏によると...