Amazon Web Services ブログ

Euler Hermes が Amazon SageMaker を使ってタイポスクワッティングを検出する方法

これは Euler Hermes のゲスト投稿です。彼らの言葉によれば、「100 年以上にわたり、信用保険業界の世界的リーダーを務める Euler Hermes は、より簡単で安全なデジタル製品を提供するためにクライアントに同行し、世界の商取引における重要な触媒となっています」

Euler Hermes は、毎月 600,000 を超える B2B トランザクションを管理し、世界中の 3,000 万社を超える企業からのデータ分析を実現しています。大規模の人工知能と機械学習 (ML) がビジネスの中心になりました。

Euler Hermes は、さまざまなユースケースで ML を使用しています。最近の例では、タイポスクワッティングの検出があります。これは、サイバーセキュリティチームと IT イノベーションチームがクライアントをより良く保護するためのアイデアワークショップの後に行われました。結局のところ、データが AWS クラウドにあり、数分で適切なツールをデータサイエンティストの手に渡せるようになると、アイデアから本番環境への移行がかつてないほど容易になります。

タイポスクワッティング (ハイジャック) は、サイバーセキュリティ攻撃の一種です。これは、他の潜在的な問題の中でも、フィッシング詐欺、ID の盗難、広告、およびマルウェアのインストールを目的としていますが、登録されたドメインが正当で評判がよく有名なものによく似たインターネットドメイン名で構成されています。タイポスクワッティングのソースは、さまざまなトップレベルドメイン (TLD)、タイプミス、スペルミス、コンボスクワッティング、または異なるフレーズのドメインなど、さまざまです。

私たちが直面した課題は、Euler Hermes ブランドまたはその製品を悪用するために使用される可能性のある、疑わしい登録ドメインをすばやく検出する ML ソリューションを構築することでした。

ML ワークフローを簡素化し、市場投入までの時間を短縮するために、Amazon SageMaker を使用することを選択しました。このフルマネージド AWS サービスは、Amazon Simple Storage Service (Amazon S3) または AWS Lambda などの他の AWS サービスと統合しながら、基盤となるインフラストラクチャを気にすることなく、大規模な ML モデルを簡単に構築、トレーニング、調整、デプロイできるため、自然と選択しました。さらに、Amazon SageMaker は、プライベートノートブックやエンドポイントのサポート、転送中および保存中のデータの暗号化など、Euler Hermes のような金融サービス会社に必要な厳格なセキュリティ要件を満たしています。

ソリューションの概要

ML モデルを構築および調整するために、データサイエンティストの主要な作業ツールとして Amazon SageMaker ノートブックを使用しました。アイデアは、Euler Hermes に関連するドメインを認識するように ML モデルをトレーニングするものでした。これを達成するために、データセットの構築とモデルの構築という 2 つの重要なステップに取り組みました。

データセットの構築

すべての ML プロジェクトには大量のデータが必要であり、最初の目的はトレーニングデータセットを構築することでした。

否定的な例のデータセットは、Alexa、Umbrella、および公的に登録されたドメインからランダムに選択された 100 万件のエントリで構成されていました。100 万件の肯定的な例のデータセットは、Euler Hermes の内部ドメインを使用してドメイン生成アルゴリズム (DGA) から作成されました。

モデルの構築と調整

プロジェクトにおいて最大の課題の 1 つは、誤検知の数を最小限に抑えることでした。毎日、公的に登録されたドメインの約 150,000 件といった大規模なデータセットから Euler Hermes に関連するドメインを探し出す必要があります。

従来の ML モデルと深層学習の 2 つのアプローチを試しました。

ランダムフォレスト、ロジスティック回帰、勾配ブースティング (LightGBM および XGBoost) など、古典的な ML のさまざまなモデルを検討しました。これらのモデルでは、手動で 250 以上のフィーチャーを作成しました。広範な機能エンジニアリング段階の後、最も関連性の高いものとして以下を選択しました。

  • FQDN レベルの数
  • 母音量
  • 文字数
  • N-gram (上位 50 個の N-gram)
  • 特徴 TF-IDF
  • 潜在的ディリクレ割り当て機能

深層学習では、リカレントニューラルネットワークを使用することにしました。私たちが採用したモデルは、アテンションレイヤーを備えた双方向 LSTM (BiLSTM) でした。このモデルは、URL の基本構造を抽出するのに最適であることがわかりました。

次の図は、BiLSTM モデル用に設計されたアーキテクチャを示しています。過学習を避けるために、ドロップアウトレイヤーが追加されました。

次のコードは、一連のレイヤーを編成します。

def AttentionModel_(vocab_size, input_length, hidden_dim):
    model = tf.keras.models.Sequential()
    model.add(Embedding(MAX_VOCAB_SIZE, hidden_dim, input_length=input_length))
    model.add(Bidirectional(LSTM(units=hidden_dim, return_sequences=True, dropout=0.2, recurrent_dropout=0.2)))
    model.add(SecSelfAttention(attention_activation='sigmoid'))
    model.add(Reshape((2*hidden_dim*input_length)))
    model.add(Dense(1, activation='sigmoid'))

    model.compile(loss="binary_crossentropy", optimizer="adam", metrics=["acc", tf.keras.metrics.FalsePositives()])
    return model

Scikit-learn および Keras に向けて Amazon SageMaker が提供するコンテナを使用して、従来の ML モデルと深層学習モデルを構築および調整しました。

次のテーブルに入手した結果をまとめます。BiLSTM は、2 番目に優れたモデル (LightGBM) と比較して、精度が 13% 向上し、他のモデルよりも優れていました。このため、BiLSTM モデルを製品化しました。

モデル

精度 F1 スコア

ROC-AUC

(曲線下面積)

ランダムフォレスト

0.832

0.841

0.908

XGBoost

0.870

0.876

0.921

LightGBM

0.880

0.883

0.928

RNN (BiLSTM)

0.996

0.997

0.997

モデルのトレーニング

モデルトレーニングでは、Amazon SageMaker のマネージドスポットトレーニングを利用して、トレーニングジョブに Amazon Elastic Compute Cloud (Amazon EC2) スポットインスタンスを使用しました。これにより、オンデマンドインスタンスと比較して低コストでトレーニングモデルのコストを最適化できました。

私たちは主にカスタム深層学習モデルを使用したため、時間のかかるニューラルネットワークのトレーニングジョブには、数分から数時間の範囲の GPU インスタンスが必要でした。これらの制約の下で、マネージドスポットトレーニングは革新的なソリューションでした。オンデマンドソリューションでは、インスタンスストップ条件を管理しながら、データサイエンティストを中断させることはできませんでした。

製品化

Euler Hermes のクラウド原則はサーバーレスファーストの戦略に従い、インフラストラクチャはコード DevOps の実践に基づいています。体系的には、常に可能な限り Lambda に基づくサーバーレスアーキテクチャを構築しますが、それが不可能な場合は、AWS Fargate を使用してコンテナにデプロイします。

Amazon SageMaker を使用すれば、100% サーバーレスでスケーラブルなアーキテクチャ上の同じプラットフォーム内で、ML モデルを大規模にデプロイできます。推論リクエストを処理する準備ができているモデルエンドポイントを作成します。データセット全体の推論を取得するには、バッチ変換を使用します。データセットを小さなバッチに切り取って、それぞれの予測を取得します。バッチ変換は、インスタンスの起動やバッチ変換ジョブ完了後の削除など、推論を取得するために必要なすべてのコンピューティングリソースを管理します。

次の図は、この投稿のユースケースにデプロイされたアーキテクチャを示しています。

最初に、毎日の Amazon CloudWatch イベントが 2 つのジョブで Lambda 関数をトリガーするように設定されています。パブリックに登録されたすべてのドメインをダウンロードして、Amazon Simple Storage Service (Amazon S3) バケットサブフォルダに保存し、BatchTransform ジョブをトリガーします。Amazon SageMaker は、バッチ変換ジョブの作成時に指定した S3 バケットに自動的に推論を保存します。

最後に、2 番目の CloudWatch イベントは、Amazon SageMaker タスクの成功を監視します。タスクが成功すると 2 番目の Lambda 関数がトリガーされ、推定ドメインが取得されます。さらに、Euler Hermes またはその製品に関連するラベル 1 のドメインが選択され、別の S3 バケットサブフォルダに保存されます。

Euler Hermes の DevOps 原則に従って、このソリューションのすべてのインフラストラクチャは Terraform でコーディングされ、MLOps パイプラインを実装して本番環境にデプロイします。

まとめ

Amazon SageMaker は、厳格な金融サービス基準へのコンプライアンスを維持しながら、データサイエンティストが迅速かつ安全に実験とテストを行うために必要なツールを提供します。これにより、新しいアイデアを迅速に本番環境に導入できます。柔軟性と固有のプログラミング性により、Amazon SageMaker は ML モデルを大規模に産業化するという主な課題に取り組むのに役立ちました。ML モデルをトレーニングした後、Amazon SageMaker を使用してモデルをデプロイし、AWS で実行する他のすべてのアプリケーションに使用するのと同じ DevOps 原則とツールに従ってパイプライン全体を自動化できます。

7 か月未満で、アイデアから本番までの新しい内部 ML サービスを開始でき、悪意のあるドメインを作成してから 24 時間以内に URL スクワッティング詐欺を特定できるようになりました。

アプリケーションの準備は整っていますが、追加のステップがいくつか予定されています。まず、Amazon S3 に現在保存されている推論を SIEM プラットフォームに拡張します。次に、モデルを監視し、モデルの再トレーニングを行うためにキャプチャされる手動フィードバックを可能にするウェブインターフェイスを実装します。


著者について

Luis Leon は、Euler Hermes の IT におけるデータサイエンス業務を担当する IT イノベーションアドバイザーです。彼はデジタルプロジェクトのアイデアを担当し、大規模な機械学習製品の設計、構築、産業化を管理しています。主に、自然言語処理、時系列分析、および教師なし学習に関心があります。

 

 

 

Hamza Benchekroun は、Euler Hermes の IT イノベーションハブのデータサイエンティストであり、深層学習ソリューションに専念し、生産性を向上させ、チーム全体の意思決定を導きます。彼の研究対象には、自然言語処理、時系列分析、半教師あり学習、およびそれらのアプリケーションが含まれます。

 

 

Hatim Binani は、Euler Hermes の IT イノベーションハブのデータサイエンティストインターンです。彼は INSA Lyon 工学部のコンピュータサイエンス学部の学生です。彼の関心分野はデータサイエンスと機械学習です。IT イノベーションチーム内で、Amazon Sagemaker に Watson を導入する際に貢献しました。

 

 

Guillaume Chambert は、Euler Hermes の IT セキュリティエンジニアです。彼は SOC マネージャーとして、Euler Hermes の機密でミッションクリティカルなデータを保護するために、新しい脅威に先行するよう努めています。また、ハッカーによる重要な情報の盗難、破損、侵害を防ぐためのイノベーションソリューションの開発に関心を持っています。