ディープラーニングを使用した DGA (ドメイン生成アルゴリズム) の検出

ディープラーニングを使用した DGA (ドメイン生成アルゴリズム) の検出

[[196872]]

DGA (ドメイン生成アルゴリズム) は、ドメイン名のブラックリスト検出を回避するためにランダムな文字を使用して C&C ドメイン名を生成する技術的な手段です。たとえば、Cryptolocker によって作成された DGA 生成ドメインは xeogrhxquuubt.com です。プロセスが他の場所に接続を確立しようとすると、マシンが Cryptolocker ランサムウェア ウイルスに感染する可能性があります。ドメイン ブラックリストは、これらのドメインへの接続を検出してブロックするためによく使用されますが、常に更新される DGA アルゴリズムに対しては効果がありません。私たちのチームは DGA に関する広範な研究も行っており、ディープラーニングを使用した予測ドメイン生成アルゴリズムに関する論文を arXiv に発表しました。

この記事では、DGA 生成ドメインのシンプルで効果的な検出技術を紹介します。 DGA で生成されたドメインを検出するために、ニューラル ネットワーク (またはディープラーニング)、より具体的には Long Short-Term Memory (LSTM) ネットワークを使用します。まず、ディープラーニングの利点について説明し、次に例を通してさらに私の主張を検証します。

これまで機械学習についてあまり知らなかった場合は、この記事を読む前に、機械学習に関する私の過去の 3 つの記事を読んでおくことをお勧めします。そうすれば、より深く理解できるようになります。

長期短期記憶(LSTM)の利点

近年、機械学習コミュニティではディープラーニングが話題になっています。ディープラーニングは、データの表現を学習することに基づいた機械学習の手法です。その利点は、手動による特徴取得に代わる、教師なしまたは半教師ありの特徴学習と階層的特徴抽出の効率的なアルゴリズムを使用することです。ディープラーニングは、数十年にわたる開発を経て、過去 4 ~ 5 年で人気が高まりました。ハードウェアの継続的なアップグレードと最適化(GPU の並列処理の改善など)と相まって、複雑なネットワークのトレーニングも可能になりました。 LSTM は、テキストや言語などの長期的な依存関係を学習できる特別なタイプの RNN です。 LSTM は、サイクルを含むニューラル ネットワークであるリカレント ニューラル ネットワークを実装するための手法の 1 つです。 LSTM は、テキストや音声など、長期間にわたるパターンの学習に非常に適しています。この記事の例では、それらを使用して、どのドメインが DGA によって生成されたドメインで、どのドメインがそうでないかを識別するのに役立つ文字列 (ドメイン名) のパターンを学習します。

ディープラーニングを使用する大きな利点の 1 つは、特徴エンジニアリングの面倒なプロセスを省くことができることです。従来の方法を使用して、長い特徴リスト(長さ、母音、子音、n グラム パターンなど)を生成し、これらの特徴を使用して DGA 生成ドメインと非 DGA 生成ドメインを識別します。その後、セキュリティ担当者はリアルタイムで新しい機能ライブラリを更新および作成する必要がありますが、これは非常に困難で面倒なプロセスになります。第二に、攻撃者がフィルタリング ルールを習得すると、DGA を更新することで簡単に検出を回避できるようになります。ディープラーニングの自動表現学習機能により、変化する対戦相手に素早く適応することも可能になります。同時に、人材と物的資源への膨大な投資も大幅に削減されました。私たちの技術のもう一つの利点は、NXDomainsなどのコンテキスト機能を使わずにドメイン名のみを識別することです。

私たちの技術のもう一つの利点は、NXDomain などのコンテキスト機能を使用せずにドメイン名のみを分類することです。コンテキスト機能の生成には、多くの場合、追加の高価なインフラストラクチャ (ネットワーク センサーやサードパーティの評価システムなど) が必要になります。驚くべきことに、コンテキスト情報のない LSTM は、それらよりもはるかに優れたパフォーマンスを発揮します。 LSTM についてさらに詳しく知りたい場合は、Colah のブログと blogdeeplearning.net をフォローすることをお勧めします。

DGAとは何ですか?

まず、DGA とは何か、そして DGA テストの重要性を理解する必要があります。攻撃者は多くの場合、ドメイン名を使用して悪意のあるプログラムを C&C サーバーに接続し、被害者のマシンを制御します。これらのドメイン名は通常、マルウェアにエンコードされているため、攻撃者は大きな柔軟性を得ることができ、これらのドメイン名と IP アドレスを簡単に変更できます。別の種類のハードコードされたドメイン名は、ブラックリストによって簡単に検出されるため、攻撃者によって使用されないことがよくあります。

DGA ドメイン名生成アルゴリズムを使用すると、攻撃者はドメイン名として使用される疑似ランダム文字列を生成することができ、ブラックリストによる検出を効果的に回避できます。疑似ランダムとは、文字列のシーケンスはランダムであるように見えますが、その構造を事前に決定できるため、繰り返し生成および再現できることを意味します。このアルゴリズムは、マルウェアやリモート コントロール ソフトウェアでよく使用されます。

攻撃者と被害者が何をしたのか簡単に見てみましょう。まず、攻撃者はアルゴリズムを実行し、少数のドメイン(おそらく 1 つだけ)をランダムに選択し、それを登録して C2 サーバーにポイントします。被害者側では、マルウェアは DGA を実行し、出力されたドメインが存在するかどうかを確認します。登録済みとして検出された場合、マルウェアはそのドメインをコマンド アンド コントロール (C2) サーバーとして使用することを選択します。現在のドメインが未登録として検出された場合、プログラムは他のドメインのチェックを続行します。

サンプルを収集し、DGA をリバース エンジニアリングすることで、セキュリティ担当者は将来どのドメインが生成され、事前登録されるかを予測し、ブラックリストに登録できます。ただし、DGA は 1 日に数万のドメインを生成する可能性があるため、リストを毎日繰り返し収集して更新することは不可能です。

図 1 は、さまざまな種類のマルウェアのワークフローを示しています。画像に示されているように、マルウェアは asdfg.com、wedcf.com、bjgkre.com の 3 つのドメインに接続しようとします。最初の 2 つのドメインは登録されておらず、DNS サーバーから NXDomain 応答を受信しました。 3 番目のドメインはすでに登録されているため、マルウェアはそのドメイン名を使用して接続を確立します。

LSTMの作成

トレーニングデータ

あらゆる機械学習モデルにはトレーニング データが必要です。ここでは、Alexa のトップ 100 万の Web サイトを生データとして使用します。また、Python でいくつかの DGA アルゴリズムを組み合わせました。これは github で入手できます。これらのアルゴリズムを使用して悪意のあるデータを生成します。

ツールとフレームワーク

Keras ツールボックスは、ニューラル ネットワークの作成を大幅に容易にする Python ライブラリです。もちろん、Keras 以外にも同様のツールはたくさんあります。ここでは、デモンストレーションや理解が簡単なため、Keras を優先します。 Keras の基盤となるライブラリは、Keras のバックエンドとも呼ばれる Theano または TensorFlow を使用します。 Theano であろうと TensorFlow であろうと、それは「シンボリック」ライブラリであり、ここでは自分の好みに応じて使用することを選択できます。

モデルコード

以下は Python コードで構築したモデルです。

以下に上記のコードについて簡単に説明します。

最初の行では、基本的なニューラル ネットワーク モデルを定義します。次の行では埋め込みレイヤーを追加します。このレイヤーは、各文字を 128 個の浮動小数点数のベクトルに変換します (128 は魔法の数字ではありません)。このレイヤーがトレーニングされると(文字を入力し、128 個の浮動小数点数を出力)、各文字は基本的に 1 回のルックアップを経ることになります。 max_features は有効な文字数を定義します。 input_length は、ニューラル ネットワークに渡す文字列の最大長です。

次の行では LSTM レイヤーを追加しますが、これは非常に重要なステップです。 128 は内部状態の次元を表します (これは前の埋め込みレイヤーと同じサイズになります)。寸法が大きいほど、モデルの説明がより具体的になります。ここでは、128 がニーズにぴったりです。

ドロップアウト レイヤーは、モデルの過剰適合を防ぐために使用されます。必要ないと思われた場合は削除できますが、使用することをお勧めします。

ドロップアウト レイヤーは、サイズ 1 の Dense レイヤー (完全接続レイヤー) の前に配置されます。

連続した実数値入力を 0 から 1 の間に「圧縮」する活性化関数 sigmoid を追加しました。非常に大きな負の数の場合は出力は 0 になり、非常に大きな正の数の場合は出力は 1 になります。

クロスエントロピー損失関数を最適化するためにオプティマイザーを使用します。 RMSProp は確率的勾配降下法の変形であり、再帰型ニューラル ネットワークに非常に適しています。

前処理コード

データのトレーニングを開始する前に、基本的なデータ前処理をいくつか行う必要があります。各文字列は、可能な各文字を表す int の配列に変換する必要があります。このエンコーディングは任意ですが、1 から始まり (シーケンス終了トークン用に 0 を予約)、連続している必要があります。次のコードは、このプロセスを実現するのに役立ちます。

次に、各 int 配列を同じ長さにパディングします。パディングにより、ツールボックスは計算をより最適化できるようになります (理論上、LSTM にはパディングは必要ありません)。ここで、Keras は非常に便利な関数を提供します。

maxlen は各配列の長さを示します。この関数は、配列が長すぎる場合に 0 で埋めて切り取ります。 LSTM はパディングと文字の違いを学習する必要があるため、整数のエンコードが 1 から始まることが重要です。

ここでは、ROC 曲線を使用してテスト セットとトレーニング セットを分割し、パフォーマンスを評価できます。

比較する

arxiv で公開された論文では、私たちのシンプルな LSTM 手法を他の 3 つの手法と比較しました。この記事をより分かりやすくするために、ロジスティック回帰分布を使用した単一のアプローチでのみ結果を比較します。この技術は、現在の最先端技術よりも優れています (ただし、LSTM ほど優れているわけではありません)。これは、より伝統的な特徴ベースのアプローチであり、特徴はドメイン名に含まれるすべてのダブレットのヒストグラム (または生のカウント) です。 LSTM を使用した予測領域生成アルゴリズムの実装コードは、弊社の github から入手できます。

結果

次に、分類器のパフォーマンス指標である ROC 曲線と AUC 値を見てみましょう。

AUC 値が 0.9977 であることがわかります。これは、分類効果が非常に優れていることを示しています。この効果を実現するために、数行のコードしか使用していません。実際に、大規模で多様なデータセットの詳細な分析を実施したところ、誤検出率が 10,000 分の 1 で、検出率は 90% でした。

要約する

ニューラル ネットワークを使用して DGA を検出するための簡単な手法を提案します。このテクノロジーは、コンテキスト情報 (NXDomains やサードパーティの評価システムなど) を使用する必要がなく、その検出効果は既存のテクノロジーよりもはるかに優れています。この記事は、DGA に関する私たちの研究の要約にすぎません。記事全文は、arxiv でこちらからお読みいただけます。同時に、github で公開したコードについてさらに調査や研究を行うこともできます。

<<:  AI開発者キャンプへの無料登録 - ハンズオン/デモンストレーションでAIに密着!

>>:  DeepTraffic: MIT シミュレーション ゲームがディープラーニングを使用して交通渋滞を緩和

ブログ    
ブログ    

推薦する

インドの農業変革における人工知能の役割

農業はインドの人口の約58%の生計を支えています。漁業、林業、農業の総付加価値は2020年度で194...

わずか 2 分で、シングル ビューの 3D 生成が高速かつ良好に行えます。北京大学などが新しいRepaint123法を提案

画像を 3D に変換する方法としては、通常、スコア蒸留サンプリング (SDS) 方式が採用されていま...

イノベーションに関する対話 - 51CTO 初の開発者コンテストが始まりました!

/* 世界を変えるために生きるここでは、あらゆる作品が市場に参入するための種となる可能性があります...

ImageNet-1K 圧縮 20 倍、Top-1 精度が初めて 60% を超える: 大規模データセット蒸留の転換点

データの圧縮や蒸留というタスクは、ここ数年大きな注目を集めています。データ圧縮方法は、大規模なデータ...

ラマ事件じゃないよ!李開復の大型モデルが貝殻論争に巻き込まれ、チームの2度目の反応がここに!

ノアとシャオウが編集制作:51CTO テクノロジースタック(WeChat ID:blog)昨日、テク...

指紋と顔は本当に生体認証を表現できるのでしょうか?

今年初めから現在まで、ToFセンサーはApple、Samsung、GD、AMSなどのセンサー企業やス...

AIが世界中の産業に及ぼす影響

人工知能は、すでに私たちの世界を微妙かつ広範囲に変化させている、画期的な技術です。クラウド コンピュ...

これはGPT-4が愚かである理由についての新たな説明である

かつては世界で最も強力だと考えられていたGPT-4も、リリース以来、いくつかの「信頼の危機」を経験し...

新しい人工ニューロンデバイスは、非常に少ないエネルギーでニューラルネットワークの計算を実行できる

カリフォルニア大学サンディエゴ校の研究者らが開発した新しい人工ニューロン装置のおかげで、画像の認識や...

テルアビブ大学は、SOTAメソッドとアーキテクチャの新たな進歩を完全に理解するためにStyleGANを要約しました。

GAN の高解像度画像を生成する能力は、画像合成および処理の分野に革命をもたらしています。 201...

AIを活用して衛星画像を判別、世界初「全世界の船舶足跡マップ」を公開

1月4日、研究者のデイビッド・クルーズマ氏はナショナルジオグラフィックとブルームバーグ・フィランソロ...

人気の古い写真が動いたり歌ったり、Weishi はワンクリックで AI ビデオ特殊効果を実装

[[386434]]紙から携帯電話まで、このチームはワンクリックでますます楽しい特殊効果を実現してい...

失業は避けられないのでしょうか? AI時代、人類が将来やるべきことは2つだけ

Sinovation Venturesの李開復氏は「2017年中国企業100%年次大会」で講演し、「...

...