ゼファーネットのロゴ

Sophos が Amazon SageMaker を使用して、強力で軽量な PDF マルウェア検出器を超大規模にトレーニングする方法

日付:

この投稿は、ソフォスの Salma Taoufiq と Harini Kannan の共著です。

次世代サイバーセキュリティのリーダーとして、 ソフォス は、500,000 か国以上の 150 を超える組織と数百万の顧客を進化する脅威から保護するために努力しています。 Sophos X-Ops の脅威インテリジェンス、機械学習 (ML)、および人工知能を活用して、ソフォスは高度な製品とサービスの幅広い多様なポートフォリオを提供し、ユーザー、ネットワーク、およびエンドポイントをフィッシング、ランサムウェア、マルウェア、およびさまざまなサイバー攻撃。

  ソフォスの人工知能 (AI) グループ (SophosAI) は、ソフォスの主要な ML セキュリティ技術の開発と保守を監督しています。 セキュリティはビッグデータの問題です。 検出を回避するために、サイバー犯罪者は常に新しい攻撃を仕掛けています。 これは、グループが顧客を最大限に保護するために協力しなければならない巨大な脅威データセットに変換されます。 注目すべき例の XNUMX つは、巧妙にマルウェアが混入されたファイルの検出と除去であり、データセットはテラバイト単位です。

この投稿では、特に PDF ファイル形式に対する Sophos のマルウェア検出システムに焦点を当てます。 SophosAI の使用方法を紹介します アマゾンセージメーカー 強力で軽量な XGBoost (Extreme Gradient Boosting) モデルをトレーニングするための、テラバイト単位のデータを使用した分散トレーニング。 これにより、彼らのチームは、ハイパーパラメータの自動調整を使用して、基盤となるトレーニング インフラストラクチャを管理することなく、大規模なトレーニング データをより迅速に反復処理できます。

このソリューションは現在、本番トレーニング パイプラインにシームレスに統合されており、モデルは ソフォス エンドポイント サービス.

ユースケースのコンテキスト

重要な契約書を共有したい場合でも、CV の派手なデザインを維持したい場合でも、PDF 形式が最も一般的な選択肢です。 その広範な使用と、そのようなドキュメントは気密で静的であるという一般的な認識により、ユーザーは誤った安心感に陥っています。 そのため、PDF は、攻撃者にとって最適な感染経路となっています。 PDF を使用した悪意のあるアクションは、ほとんどの場合、URI からウイルスをダウンロードしたり、ユーザーのマシンを妨害したり、機密情報を盗んだりするために PDF リーダーによって実行される JavaScript ペイロードを埋め込むことによって達成されます。

ソフォスは、決定論的モデルと ML モデルのアンサンブルを使用して、攻撃のさまざまなポイントで悪意のある PDF ファイルを検出します。 そのようなアプローチの XNUMX つを次の図に示します。この図では、悪意のある PDF ファイルが電子メールで配信されています。 ダウンロードが試行されるとすぐに、悪意のある実行可能スクリプトがトリガーされ、攻撃者のコマンド アンド コントロール サーバーに接続されます。 SophosAI の PDF 検出機能は、悪意のあるものであることを検出した後、ダウンロードの試行をブロックします。

その他の方法には、エンドポイントで PDF ファイルをブロックする、悪意のあるファイルをサンドボックス (複数のモデルを使用してスコアリングする場所) に送信する、悪意のあるファイルをスコアリング インフラストラクチャに送信してセキュリティ レポートを生成する、などが含まれます。

動機

低いエンドポイント コンピューティング電力消費と高速な推論応答を可能にしながら、高い信頼性で悪意のある PDF を判断できるツリーベースの検出器を構築するために、SophosAI チームは XGBoost アルゴリズムがこのタスクに最適な候補であることを発見しました。 このような調査手段は、ソフォスにとって XNUMX つの理由で重要です。 顧客エンドポイントのレベルで展開された強力でありながら小規模なモデルを持つことは、アナリストによる会社の製品レビューに大きな影響を与えます。 また、さらに重要なことに、全体的なユーザー エクスペリエンスが向上します。

技術的な課題

SophosAI は、既存の PDF マルウェア検出器 (ディスク上とメモリ内の両方) よりもメモリ フットプリントが小さいモデルを作成することを目標としていたため、SophosAI は XGBoost を分類アルゴリズムに変えました。表形式データのパフォーマンス。 XGBoost 実験のモデリングに取りかかる前に、重要な考慮事項はデータセットのサイズでした。 実際、ソフォスの PDF ファイルのコア データセットはテラバイト単位です。

したがって、主な課題は、ダウンサンプリングせずに大規模なデータセットを使用してモデルをトレーニングすることでした。 ディテクターが PDF ベースの攻撃を検出することを学習することは非常に重要であるため、ソフォスのお客様をより適切に保護するためには、干し草の山の中の針やまったく新しい攻撃であっても、利用可能な多様なデータセットをすべて使用することが最も重要です。

バッチでトレーニングできるニューラル ネットワークとは異なり、XGBoost では、トレーニング データセット全体をメモリに格納する必要があります。 このプロジェクトの最大のトレーニング データセットは 1 TB を超えており、分散トレーニング フレームワークの方法論を利用せずに、このような規模でトレーニングする方法はありません。

ソリューションの概要

SageMaker は、ML モデルを構築、トレーニング、最適化、デプロイするためのさまざまなツールを提供するフルマネージド ML サービスです。 の アルゴリズムの SageMaker 組み込みライブラリ XGBoost を含む 21 の一般的な ML アルゴリズムで構成されています。 (詳細については、 XGBoostとAmazon SageMakerで機械学習を簡素化する.) XGBoost 組み込みアルゴリズムを使用すると、オープンソースを利用できます。 SageMaker XGBoost コンテナ 柔軟性、スケーラビリティ、拡張性、マネージド スポット トレーニングが向上し、PDF データセットに使用される形式である Parquet などの入力形式をサポートする 1.0-1 よりも大きいフレームワーク バージョンを指定することによって。

SophosAI が SageMaker を選択した主な理由は、複数のインスタンスを指定するだけで、マルチノード CPU インスタンスで完全に管理された分散トレーニングを利用できることです。 SageMaker は自動的にノード間でデータを分割し、ピア ノード間で結果を集約して、単一のモデルを生成します。 インスタンスはスポット インスタンスにすることができるため、トレーニング コストを大幅に削減できます。 とともに XGBoost の組み込みアルゴリズム、追加のカスタム スクリプトなしでこれを行うことができます。 XGBoost の分散バージョンは、次のようなオープン ソースとしても存在します。 XGブーストレイ & XGBoost4J-Spark、しかしそれらを使用するには、分散コンピューティングクラスターを構築、保護、調整、および自己管理する必要があり、科学的開発に加えて多大な努力が必要です.

さらに、 SageMaker自動モデル調整は、ハイパーパラメータ チューニングとも呼ばれ、指定した範囲のハイパーパラメータを使用して多くのトレーニング ジョブを実行することにより、モデルの最適なバージョンを見つけます。 次に、特定の ML タスクのメトリックによって測定されるように、最高のパフォーマンスを発揮するモデルをもたらすハイパーパラメーター値を選択します。

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

SophosAI が SageMaker に移行する前に XGBoost の実験を開始したとき、大容量メモリの使用が試みられたことは注目に値します。 アマゾン エラスティック コンピューティング クラウド (Amazon EC2) インスタンス (r5a.24xlarge や x1.32xlarge など) を使用して、できるだけ大きなデータ サンプルでモデルをトレーニングします。 ただし、これらの試行には平均で 10 時間以上かかり、通常はメモリ不足のために失敗しました。

対照的に、SageMaker XGBoost アルゴリズムと手間のかからない分散トレーニング メカニズムを使用することで、SophosAI は巨大な PDF トレーニング データセットでブースター モデルを 20 分ほどで大規模にトレーニングすることができました。 チームはデータを保存するだけで済みました Amazon シンプル ストレージ サービス (Amazon S3) を同様のサイズの Parquet ファイルとして作成し、EC2 インスタンス タイプと必要なインスタンス数を選択すると、SageMaker が基盤となるコンピューティング クラスター インフラストラクチャを管理し、クラスターの複数のノード間でトレーニングを分散しました。 内部では、SageMaker は ShardedByS3Key を使用してノード間でデータを分割し、各インスタンス間でファイル オブジェクトを均等に分散し、XGBoost の実装を使用します。 ウサギのプロトコル (信頼できる AllReduce およびブロードキャスト インターフェイス) を使用して、分散処理を起動し、プライマリ ノードとピア ノード間で通信します。 (ヒストグラムの集計とノード間のブロードキャストの詳細については、次を参照してください。 XGBoost: スケーラブルなツリー ブースティング システム.)

SageMaker を使用して、XNUMX つのモデルをトレーニングするだけでなく、 XGBoost ハイパーパラメータの調整 また、さまざまな実験を同時に実行して、ハイパーパラメーターの最適な組み合わせを微調整する機能により、迅速かつ簡単になりました。 調整可能なハイパーパラメーターには、ブースター固有のハイパーパラメーターと目的関数固有のハイパーパラメーターの両方が含まれます。 XNUMX つの検索戦略 ランダムまたはベイジアンが提供されます。 ベイジアン検索戦略は、より少ない実験的反復で、単なるランダム検索よりも優れたハイパーパラメーターを見つけるのに役立つため、価値があることが証明されています。

データセット情報

SophosAI の PDF マルウェア検出モデリングは、n-gram ヒストグラムやバイト エントロピー機能などのさまざまな機能に依存しています (詳細については、 MEADE: 悪意のある電子メールの添付ファイル検出エンジンに向けて)。 収集された PDF ファイルから抽出されたメタデータと特徴は、分散型データ ウェアハウスに保存されます。 次に、3,500 を超える特徴のデータセットが計算され、時間に基づいてトレーニング セットとテスト セットにさらに分割され、Amazon S3 の Parquet ファイルとしてバッチで保存され、トレーニング ジョブのために SageMaker からすぐにアクセスできるようになります。

次の表に、トレーニング データとテスト データに関する情報を示します。

データセット サンプル数 寄木細工のファイルの数 全体の大きさ
トレーニング 70,391,634 5,500 〜1010 GB
ホイール試乗 1,242,283 98 〜18 GB

データ サイズは、次の式に従って計算されています。

データサイズ = N × (nF +いいえL)×4

数式には次のパラメーターがあります。

  • N データセット内のサンプル数
  • nF は特徴の数で、 nF = 3585
  • nL n のグラウンド トゥルース ラベルの数です。L = 1
  • 4 は、フィーチャのデータ型に必要なバイト数です。 float32

さらに、次の円グラフは、トレーニング セットとテスト セットの両方のラベル分布を示しており、PDF マルウェア検出タスクで直面するクラスの不均衡を明らかにしています。

分布は、トレーニング セットから XNUMX か月のテスト セットに移行します。 実際の展開シナリオをシミュレートし、一時的なスヌーピングを回避するために、データセットのトレーニングとテストへの時間ベースの分割が適用されます。 この戦略により、SophosAI は、たとえばこれまでに見られなかったまったく新しい PDF 攻撃に直面したときに、モデルの真の汎化機能を評価することもできました。

実験と結果

実験を開始するために、SophosAI チームはデフォルトのパラメータを使用してベースライン XGBoost モデルをトレーニングしました。 次に、ベイジアン戦略を使用して SageMaker でハイパーパラメータの微調整を実行し始めました。 ハイパーパラメータ 調整する値と目的の範囲の値、評価メトリック (この場合は ROC (受信者動作特性) AUC)、およびトレーニング セットと検証セット。 PDF マルウェア ディテクタでは、SophosAI はブースト ラウンド数などのハイパーパラメータに優先順位を付けました (num_round)、最大ツリー深度 (max_depth)、学習率 (eta)、およびツリーを構築するときの列のサンプリング率 (colsample_bytree)。 最終的に、最適なハイパーパラメータが取得され、完全なデータセットでモデルをトレーニングするために使用され、最終的にホールドアウト テスト セットで評価されました。

次のプロットは、目標メトリック (ROC AUC) とチューニング ジョブ内で実行される 15 のトレーニング ジョブを示しています。 最適なハイパーパラメーターは、XNUMX 番目のトレーニング ジョブに対応するものです。

SageMaker での SophosAI の実験の開始時に、答えるべき特に重要な質問は次のとおりでした。手持ちのデータで XGBoost をトレーニングするには、どのタイプのインスタンスとその数が必要ですか? 間違った数またはタイプのインスタンスを使用すると、時間とお金が無駄になる可能性があるため、これは非常に重要です。 メモリ不足のためにトレーニングが失敗することは間違いありません。または、あまりにも多くの大きすぎるインスタンスを使用すると、不必要にコストがかかる可能性があります。

XGBoost は、(計算バウンドではなく) メモリバウンドのアルゴリズムです。 そのため、汎用コンピューティング インスタンス (M5 など) は、コンピューティング最適化インスタンス (C4 など) よりも適切な選択です。 情報に基づいた決定を行うために、完全なデータセットでトレーニングを実行するために必要なインスタンスの数を選択するための簡単な SageMaker ガイドラインがあります。

トレーニング データの合計サイズ × 安全率(*) < インスタンス数 × インスタンス タイプの合計メモリ

この場合: トレーニング データの合計サイズ × 安全係数 (12) = 12120 GB

次の表は、選択したインスタンス タイプが ml.m5.24xlarge の場合の要件をまとめたものです。

トレーニング サイズ × 安全係数 (12) インスタンス メモリ ml.m5.24xlarge トレーニングに必要な最小インスタンス数
12120 GB 384 GB 32

*XGBoost 分散トレーニングの性質上、トレーニングと追加の空きメモリの前にトレーニング データセット全体を DMatrix オブジェクトに読み込む必要があるため、10 ~ 12 の安全係数が推奨されます。

提供されたデータセットでの XGBoost の完全な SageMaker トレーニングのメモリ使用率を詳しく調べるために、トレーニングの アマゾンクラウドウォッチ モニタリング。 このトレーニング ジョブでは、40 個の ml.m5.24xlarge インスタンスが使用され、最大メモリ使用率は約 62% に達しました。

SageMaker のようなマネージド ML サービスをデータ パイプラインに統合することで節約されるエンジニアリング コストは、約 50% です。 トレーニングとハイパーパラメータ調整ジョブにスポット インスタンスを使用するオプションにより、コストがさらに 63% 削減されます。

まとめ

SageMaker を使用して、SophosAI チームは、軽量の PDF マルウェア検出 XGBoost モデルを構築することで、優先度の高い複雑なプロジェクトを首尾よく解決することができました。探知機の前身。 小さいながらも強力なマルウェア検出器であり、AUC は最大 25、真陽性率は 5、偽陽性率は . このモデルは、20 TB を超えるデータでトレーニングするのに 1 分もかからないため、迅速に再トレーニングすることができ、そのパフォーマンスを経時的に簡単に監視できます。

SageMaker 組み込みアルゴリズムを活用できます XGブースト 表形式のデータを使用してモデルを大規模に構築するため。 さらに、この記事で説明されているように、新しい組み込みの Amazon SageMaker アルゴリズム LightGBM、CatBoost、AutoGluon-Tabular、および Tab Transformer を試すこともできます。 ブログ.


著者について

サルマ・タウフィク ソフォスのシニア データ サイエンティストであり、機械学習とサイバーセキュリティの交差点で働いています。 コンピューター サイエンスの学士号を取得した彼女は、中央ヨーロッパ大学で修士号を取得して卒業しました。 数学とその応用で。 マルウェア検出器を開発していないとき、Salma は熱心なハイカー、旅行者、スリラーの消費者です。

ハリニ・カンナン SophosAI のデータサイエンティストです。 彼女はセキュリティ データ サイエンスに 4 年ほど携わっています。 彼女は以前、ソフォスに買収された Capsule8 のプリンシパル データ サイエンティストでした。 CAMLIS、BlackHat (米国)、Open Data Science Conference (東部)、Data Science Salon、PyData (ボストン)、および Data Connectors で講演を行っています。 彼女の研究分野には、パフォーマンス カウンター、ユーザー行動分析、解釈可能な ML、教師なし異常検出を使用したハードウェア ベースの攻撃の検出が含まれます。

ハサン・プーナワラ は、英国のロンドンを拠点とするAWSのシニアAI / MLスペシャリストソリューションアーキテクトです。 Hasanは、お客様がAWSの本番環境で機械学習アプリケーションを設計およびデプロイするのを支援します。 彼は、データサイエンティスト、機械学習の実践者、ソフトウェア開発者として12年以上の実務経験があります。 暇なときは、ハサンは自然を探索し、友人や家族と過ごすのが大好きです。

ディガント・パテル AWS のエンタープライズ サポート リードです。 彼は顧客と協力して、大規模なクラウドでの設計、展開、運用を行っています。 彼が関心を持っている分野は、MLOps と DevOps のプラクティスと、それが顧客のクラウドへの移行にどのように役立つかです。 仕事以外では、写真、バレーボール、友人や家族との時間を楽しんでいます。

スポット画像

最新のインテリジェンス

スポット画像

私たちとチャット

やあ! どんな御用でしょうか?