Amazon Rekognition PlatoBlockchain Data Intelligence によるマルウェアの検出と分類。垂直検索。あい。

Amazon Rekognition によるマルウェアの検出と分類

によると、 記事 Cyber​​security Ventures によると、ランサムウェア (身代金を支払わない限り、ユーザーがデータにアクセスするのをブロックできるマルウェアの一種) による被害は、57 年に比べて 2021 年には 2015 倍に増加しました。 USD) を 265 年までに毎年発行しています。この記事の執筆時点では、ランサムウェア攻撃による経済的被害は 2031 ドルをわずかに上回っています。th ランク付けされた国のリストでの位置 国内総生産.

マルウェアによってもたらされる脅威を考慮して、マルウェア攻撃を検出して封じ込めるためのいくつかの手法が開発されました。 現在使用されている最も一般的な XNUMX つの手法は、シグネチャ ベースと動作ベースの検出です。

シグネチャ ベースの検出では、既知の悪意のあるオブジェクトに関する一意の識別子が確立されるため、後でそのオブジェクトを識別できます。 ファイルに添付されたコードの固有のパターンである場合もあれば、既知のマルウェア コードのハッシュである場合もあります。 新しいオブジェクトのスキャン中に既知のパターン識別子 (署名) が検出された場合、そのオブジェクトは悪意のあるものとしてフラグが立てられます。 署名ベースの検出は高速で、必要な計算能力が低くなります。 ただし、検出を回避するために継続的にフォームを変更するポリモーフィック マルウェア タイプに対しては苦労します。

行動ベースの検出は、その行動に基づいて疑わしいオブジェクトを判断します。 マルウェア対策製品によって考慮される可能性のあるアーティファクトは、プロセスの相互作用、DNS クエリ、およびオブジェクトからのネットワーク接続です。 この手法は、シグネチャ ベースの手法と比較してポリモーフィック マルウェアの検出に優れていますが、いくつかの欠点があります。 オブジェクトに悪意があるかどうかを評価するには、ホスト上で実行し、マルウェア対策製品がオブジェクトを検出するのに十分なアーティファクトを生成する必要があります。 この盲点により、マルウェアがホストに感染し、ネットワークを介して拡散する可能性があります。

既存の技術は完璧とはほど遠いものです。 その結果、マルウェアと戦う能力を向上させる新しい代替技術を開発することを目的として、研究が続けられています。 近年登場した新しい技術の XNUMX つは、画像ベースのマルウェア検出です。 この手法は、グレースケール画像に変換された既知のマルウェア バイナリを使用して深層学習ネットワークをトレーニングすることを提案しています。 この投稿では、画像ベースのマルウェア検出を実行する方法を紹介します Amazonの再認識 カスタムラベル.

ソリューションの概要

多分類モデルとマルウェア検出モデルをトレーニングするために、最初にフラッダー、アドウェア、スパイウェアなどのさまざまな種類のマルウェアと無害なオブジェクトを含むトレーニング データセットとテスト データセットを準備します。 次に、ポータブル実行可能ファイル (PE) オブジェクトをグレースケール イメージに変換します。 次に、Amazon Rekognition で画像を使用してモデルをトレーニングします。

Amazon Rekognition は、アプリケーションでさまざまな種類の視覚分析を簡単に実行できるようにするサービスです。 Rekognition Image は、何百万もの画像を検索、検証、および整理するための強力なアプリケーションを構築するのに役立ちます。

Amazon Rekognition Custom Labels は、Rekognition の既存の機能に基づいて構築されており、これらの機能は、多くのカテゴリにわたる数千万の画像で既にトレーニングされています。

Amazon Rekognition Custom Labels は、ユーザーが何百万もの画像を分析し、それらを利用して、画像分類、顔検出、コンテンツ モデレーションなど、さまざまな機械学習 (ML) の問題を解決できるフルマネージド サービスです。 舞台裏では、Amazon Rekognition は深層学習技術に基づいています。 このサービスは、大規模なラベル付きデータセットで事前トレーニングされた畳み込みニューラル ネットワーク (CNN) を採用しています。 このようなグラウンド トゥルース データにさらされることで、アルゴリズムは多くの異なるドメインからの画像のパターンを認識することを学習し、多くの業界のユース ケースで使用できます。 AWS がモデル アーキテクチャの構築と維持、および目前のタスクに適したトレーニング方法の選択を行うため、ユーザーはトレーニング タスクに必要なインフラストラクチャの管理に時間を費やす必要がありません。

ソリューションのアーキテクチャ

次のアーキテクチャ図は、ソリューションの概要を示しています。

ソリューションは次を使用して構築されます AWSバッチ, AWSファーゲート, Amazonの再認識. AWS Batch を使用すると、Fargate で何百ものバッチ コンピューティング ジョブを実行できます。 Fargate は両方と互換性があります Amazon Elastic Container Service(Amazon ECS) & Amazon エラスティック Kubernetes サービス (Amazon EKS). Amazon Rekognition カスタム ラベルを使用すると、コンピュータ ビジョンに AutoML を使用してカスタム モデルをトレーニングし、マルウェアを検出してさまざまなマルウェア カテゴリを分類できます。 AWS Step Functions は、データの前処理を調整するために使用されます。

このソリューションでは、次の方法で前処理リソースを作成します。 AWS CloudFormation. CloudFormation スタック テンプレートと AWS Batch、Fargate、および Step 関数のソース コードは、 GitHubリポジトリ.

データセット

この例のモデルをトレーニングするために、次の公開データセットを使用して、悪意のあるものと無害なものを抽出しました Portable Executable(PE):

データセットのドキュメント (Sophos/Reversing Labs README、 PE マルウェア機械学習データセット) マルウェア オブジェクトを安全に処理します。 好みに応じて、マルウェアと無害なオブジェクトをバイナリ形式で提供する限り、他のデータセットを使用することもできます。

次に、ソリューションの次の手順について説明します。

  • オブジェクトを前処理して画像に変換する
  • CloudFormation で前処理リソースをデプロイする
  • モデルを選択してください
  • モデルを訓練する
  • モデルを評価する
  • コストとパフォーマンス

オブジェクトを前処理して画像に変換する

Step Functions を使用して、次の手順を含むオブジェクトの前処理ワークフローを調整します。

  1. おそらくコーヒーで最も古い抽出方法である、<strong>ジェズベ</strong>を例に挙げましょう。 我々の予備調査では、この浸漬式の抽出方法はカプセルエスプレッソと非常によく似た抽出比で抽出されることが分かっています。小さなサイズのジェズベは7〜12グラムのコーヒーと70ミリリットルの水を使用して抽出します。この抽出比率をBHのコーヒー代数式で処理してTDS値を計算します。その上で一般的な収率である20〜24%の収率を得たと仮定すると、以下の数値が導かれます。 メタ.db からのsqlliteデータベース ソレル-20m S3 バケットを開き、.csv ファイルに変換します。 これは、.csv ファイルを Fargate コンテナにロードし、マルウェア オブジェクトの処理中にメタデータを参照するのに役立ちます。
  2. sorel-20m S3 バケットからオブジェクトを取得し、csv 形式でオブジェクトのリストを作成します。 この手順を実行することで、並列処理できる一連の .csv ファイルが作成されるため、前処理にかかる時間が短縮されます。
  3. オブジェクトを sorel-20m S3 バケットからジョブの配列を含むイメージに変換します。 AWS Batch 配列ジョブは、マルウェア オブジェクトを画像に変換するための共通パラメータを共有します。 これらは、複数のホストに分散され、同時に実行されるイメージ変換ジョブのコレクションとして実行されます。
  4. マルウェアのカテゴリに対応する一連のジョブを使用して、モデル トレーニング用に事前に決められた数の画像を選択します。
  5. ステップ 2 と同様に、無害な 160k S3 バケットから無害なオブジェクトを取得し、csv 形式でオブジェクトのリストを作成します。
  6. ステップ 3 と同様に、良性の 160k S3 バケットからのオブジェクトをジョブの配列を含むイメージに変換します。
  7. カスタム ラベル トレーニング (250K 画像) の Amazon Rekognition のデフォルト クォータにより、モデル トレーニング用にあらかじめ決められた数の無害な画像を選択します。
  8. 次の図に示すように、イメージは S3 バケットに格納され、最初にマルウェアと無害なフォルダーによってパーティション分割され、次にマルウェアがマルウェアの種類によってパーティション分割されます。
    トレーニング S3 バケット
    トレーニングデータセット

CloudFormation で前処理リソースをデプロイする

前提条件

続行する前に、次の前提条件が必要です。

リソースの展開

CloudFormation スタックは、次のリソースを作成します。

計測パラメータ

  • STACK_NAME – CloudFormation スタック名
  • AWS_REGION – ソリューションがデプロイされる AWS リージョン
  • AWS_PROFILE – AWS CLI コマンドに適用される名前付きプロファイル
  • ARTEFACT_S3_BUCKET – インフラストラクチャ コードが保存される S3 バケット。 (バケットは、ソリューションが存在するのと同じリージョンに作成する必要があります)。
  • AWS_アカウント – AWS アカウント ID。

次のコマンドを使用して、リソースをデプロイします

Docker エージェントがマシン上で実行されていることを確認します。 デプロイは bash スクリプトを使用して行われます。この場合、次のコマンドを使用します。

bash malware_detection_deployment_scripts/deploy.sh -s '' -b 'malware-
detection--artifacts' -p  -r "" -a

これにより、CloudFormation テンプレート (例: cloudformation.yaml) が参照しているローカル アーティファクトがビルドおよびデプロイされます。

モデルを訓練する

Amazon Rekognition がモデルのトレーニングを行うため、コンピュータービジョンや高度に専門化された ML の知識は必要ありません。 ただし、適切にラベル付けされた入力画像で満たされたバケットを Amazon Rekognition に提供する必要があります。

この投稿では、カスタム ラベル機能を使用して XNUMX つの独立した画像分類モデルをトレーニングします。

  1. マルウェア検出モデル (バイナリ分類) – 特定のオブジェクトが悪意のあるものか良性のものかを識別します
  2. マルウェア分類モデル (マルチクラス分類) – 特定の悪意のあるオブジェクトのマルウェア ファミリを識別します。

モデル トレーニングのチュートリアル

次のチュートリアルに記載されている手順は、両方のモデルに適用されます。 したがって、両方のモデルをトレーニングするには、手順を XNUMX 回実行する必要があります。

  1. にサインインする AWSマネジメントコンソール Amazon Rekognition を開きます コンソール.
  2. 左ペインで、 カスタムラベルを使用する. Amazon Rekognition カスタム ラベルのランディング ページが表示されます。
  3. Amazon Rekognition カスタム ラベルのランディング ページから、 始める.
  4. 左ペインで、選択 プロジェクト.
  5. 選択する プロジェクトを作成します。.
  6. In プロジェクト名で、プロジェクトの名前を入力します。
  7. 選択する プロジェクトを作成する プロジェクトを作成します。
  8. プロジェクト ページで、データセットを追加するプロジェクトを選択します。 プロジェクトの詳細ページが表示されます。
  9. 選択する データセットを作成するを選択します。 データセットを作成する ページが表示されます。
  10. In 構成の開始、選択する 単一のデータセットから始める Amazon Rekognition がデータセットをトレーニングとテストに分割できるようにします。 モデル トレーニングの反復ごとに異なるテスト サンプルが得られる可能性があることに注意してください。その結果、わずかに異なる結果と評価指標が得られます。
  11. 選択する AmazonS3バケットから画像をインポートする.
  12. In S3 URIで、S3 バケットの場所とフォルダー パスを入力します。 前処理ステップから提供された同じ S3 バケットを使用して、マルウェア検出とマルウェア分類の両方のデータセットが作成されます。 マルウェア検出データセットはルート (つまり、 s3://malware-detection-training-{account-id}-{region}/)、マルウェア分類データセットはマルウェア フォルダ(つまり、 s3://malware-detection-training-{account-id}-{region}/malware) S3 バケットの。 トレーニングデータ
  13. 選択する フォルダに基づいて画像にラベルを自動的に添付する.
  14. 選択する データセットを作成する. プロジェクトのデータセット ページが開きます。
  15. ソフトウェア設定ページで、下図のように 列車モデル ページ、選択 列車モデル. プロジェクトの Amazon リソースネーム (ARN) は、 プロジェクトを選択 編集ボックス。 そうでない場合は、プロジェクトの ARN を入力します。
  16. モデルをトレーニングしますか? ダイアログボックスで、 列車モデル.
  17. トレーニングが完了したら、モデルの名前を選択します。 モデルのステータスが トレーニング_完了.
  18. Models セクションで、 モデルを使用 タブをクリックして、モデルの使用を開始します。

詳細については、Amazon Rekognition カスタム ラベルを確認してください。 始める ガイド。

モデルを評価する

トレーニング モデルが完成したら、選択して評価指標にアクセスできます。 指標を確認する モデルページに。 Amazon Rekognition は、分類モデルのパフォーマンスを評価するために一般的に使用される、F1 スコア、平均精度、および全体的な再現率のメトリクスを提供します。 後者は、ラベル数の平均メトリックです。

レーベルごとのパフォーマンス セクションでは、ラベルごとにこれらの指標の値を見つけることができます。 さらに、真陽性、偽陽性、および偽陰性の値を取得するには、 テスト結果を見る.

マルウェア検出モデルの指標

199,750 つのラベル (良性とマルウェア) を持つ XNUMX 枚の画像のバランスの取れたデータセットでは、次の結果が得られました。

  • F1 スコア – 0.980
  • 平均精度 – 0.980
  • 全体の再現率 – 0.980

マルウェア検出モデルの指標

マルウェア分類モデルの指標

130,609 のラベル (11 のマルウェア ファミリ) を持つ 11 枚の画像のバランスの取れたデータセットでは、次の結果が得られました。

  • F1 スコア – 0.921
  • 平均精度 – 0.938
  • 全体の再現率 – 0.906

マルウェア分類モデルの指標

モデルが適切に機能しているかどうかを評価するには、そのパフォーマンスを、同じ (または少なくとも同様の) データセットでトレーニングされた他の業界のベンチマークと比較することをお勧めします。 残念ながら、この投稿の執筆時点では、同じ手法と同じデータセットを使用してこの問題を解決する比較研究機関はありません。 ただし、データ サイエンス コミュニティ内では、F1 スコアが 0.9 を超えるモデルは非常に優れていると見なされます。

コストとパフォーマンス

リソースはサーバーレスであるため、全体的なコストは各サービスの使用時間に影響されます。 一方、パフォーマンスは、処理されるデータの量と、Amazon Rekognition にフィードされるトレーニング データセットのサイズによって影響を受けます。 コストとパフォーマンスの見積もりの​​演習では、次のシナリオを検討します。

  • sorel データセットから 20 万のオブジェクトがカタログ化され、処理されます。
  • 160,000 個のオブジェクトがカタログ化され、PE マルウェア機械学習データセットから処理されます。
  • 約 240,000 個のオブジェクトがトレーニング S3 バケットに書き込まれます。160,000 個のマルウェア オブジェクトと 80,000 個の無害なオブジェクトです。

このシナリオに基づくと、モデルを前処理してデプロイするための平均コストは 510.99 米ドルです。 モデルを使用する 4 時間ごとに XNUMX 米ドル/時間の追加料金が発生します。 詳細な費用の内訳は、 推定 経由で生成された AWS価格計算ツール.

パフォーマンスに関しては、これらは私たちの測定結果です。

  • 前処理フローが完了するまで約 2 時間
  • マルウェア検出モデルのトレーニングが完了するまでに約 40 時間
  • マルウェア分類モデルのトレーニングが完了するまでに約 40 時間

掃除

将来の請求を回避するために、 stop & 削除 Amazon Rekognition モデルを削除し、前処理リソースを 破壊する.sh 脚本。 スクリプトを正常に実行するには、次のパラメーターが必要です。

  • STACK_NAME – CloudFormation スタック名
  • AWS_REGION – ソリューションが展開される地域
  • AWS_PROFILE – AWS CLI コマンドに適用される名前付きプロファイル

次のコマンドを使用して、 ./malware_detection_deployment_scripts/destroy.sh スクリプト:

bash malware_detection_deployment_scripts/destroy.sh -s  -p
 -r 

まとめ

この投稿では、Amazon Rekognition を使用してマルウェアの検出と分類を実行する方法を示しました。 ソリューションはサーバーレス パターンに従い、データの前処理、オーケストレーション、モデルのデプロイにマネージド サービスを活用します。 この投稿が、マルウェアと戦うための継続的な取り組みに役立つことを願っています。

今後の投稿では、この投稿でデプロイされたモデルを使用して、マルウェア検出の実際の使用例を紹介します。


著者について

エドヴィン・ハルバシューエドヴィン・ハルバシュー AWS プロフェッショナル サービスのシニア グローバル セキュリティ アーキテクトであり、サイバーセキュリティと自動化に情熱を注いでいます。 彼は、顧客がクラウドで安全で準拠したソリューションを構築するのを支援しています。 仕事以外では、旅行とスポーツが好きです。

ラフル・シャウリヤラフル・シャウリヤ AWS プロフェッショナル サービスのプリンシパル データ アーキテクトです。 彼は、AWS でデータプラットフォームと分析アプリケーションを構築する顧客を支援し、緊密に協力しています。 仕事以外では、ラフルは犬のバーニーと長い散歩をするのが大好きです。

ブルーノ・デフトブルーノ・デフト AWS プロフェッショナル サービスのグローバル セキュリティ アーキテクトです。 彼は、お客様が AWS で安全で信頼性の高いアーキテクチャを構築するのを支援することに重点を置いています。 仕事以外では、最新のテクノロジーの更新と旅行に興味があります。

ナディム・マジェドナディム・マジェド AWS プロフェッショナル サービスのデータ アーキテクトです。 彼は、AWS でデータプラットフォームを構築している顧客と協力しています。 仕事以外では、ナディムは卓球をし、フットボール/サッカー観戦が大好きです。

タイムスタンプ:

より多くの AWS機械学習