(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-24
(45)【発行日】2023-12-04
(54)【発明の名称】フィッシング・キャンペーンの検出
(51)【国際特許分類】
G06F 21/55 20130101AFI20231127BHJP
G06N 20/00 20190101ALI20231127BHJP
【FI】
G06F21/55
G06N20/00
(21)【出願番号】P 2021567906
(86)(22)【出願日】2020-05-13
(86)【国際出願番号】 IB2020054531
(87)【国際公開番号】W WO2020230053
(87)【国際公開日】2020-11-19
【審査請求日】2022-10-21
(32)【優先日】2019-05-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514312332
【氏名又は名称】クラウドストライク インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】オヌト、イオシフ
(72)【発明者】
【氏名】クイ、キアン
(72)【発明者】
【氏名】ジョーダン、ガイ-ヴィンセント
【審査官】平井 誠
(56)【参考文献】
【文献】米国特許出願公開第2016/0344770(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
プロセッサおよびメモリを備えているデータ処理システムにおける方法であって、前記メモリは、前記プロセッサによって実行される命令であって、フィッシング抽出通信を検出するように動作するフィッシング抽出通信識別(PECI)システムを実装するように前記プロセッサを構成する命令を含み、前記方法は、
前記PECIシステムによって、データ・ネットワークから入力電子通信を受信することと、
前記PECIシステムによって、前記入力電子通信を処理して構造トークンを取り出すことであって、前記構造トークンが前記入力電子通信
のコンテンツの構造を表す、前記取り出すことと、
前記PECIシステムによって、機械学習トレーニング動作を介して、トレーニングされた前記PECIシステムの機械学習モデルに前記構造トークンを入力し、前記機械学習モデルに入力された構造トークンにおいて、フィッシング抽出通信文法およびフィッシング抽出通信文法間の関係を識別することと、
前記機械学習モデルによって前記構造トークンを処理し、前記機械学習モデルの分類論理によって処理するための計算値を示す少なくとも1つの第1のベクトル出力を生成することと、
前記機械学習モデルの前記分類論理によって、前記機械学習モデルからの前記少なくとも1つの第1のベクトル出力を処理して、前記入力電子通信をフィッシング抽出通信または非フィッシング抽出通信のいずれかとして分類することと、
前記機械学習モデルによって、前記入力電子通信の前記分類を示す分類出力を出力することとを含む、方法。
【請求項2】
前記PECIシステムによって、1つまたは複数のターゲットにされた実体に関する個人情報が収集されるフィッシングWebサイトに関連付けられた第1のコンピューティング・デバイス、および前記1つまたは複数のターゲットにされた実体から前記個人情報を収集する個人情報収集点に関連付けられた第2のコンピューティング・デバイスから前記入力電子通信を送信しようとすることに応答して、前記入力電子通信を傍受することをさらに含む、請求項1に記載の方法。
【請求項3】
前記PECIシステムによって前記入力電子通信を処理し、1つまたは複数のコンテンツ特徴指標を取り出すことをさらに含み、前記1つまたは複数のコンテンツ特徴指標は、前記分類出力において誤検出または検出漏れを区別するのを支援する前記入力電子通信のコンテンツの統計的尺度である、請求項1または2に記載の方法。
【請求項4】
前記1つまたは複数のコンテンツ特徴指標は、前記入力電子通信の前記コンテンツにおいて使用される記号の多様性が増すにつれてエントロピーが増加する、前記入力電子通信のコンテンツの不確実性の尺度であるコンテンツ・エントロピー指標、または前記入力電子通信の前記コンテンツ内の少なくとも1つの第2の種類の文字に対する前記入力電子通信の前記コンテンツ内の少なくとも1つの第1の種類の文字の比率の尺度であるテキスト比率指標のうちの少なくとも1つを含む、請求項3に記載の方法。
【請求項5】
前記機械学習モデルによって、前記少なくとも1つの第1のベクトル出力を前記PECIシステムの連結論理に入力することと、
前記PECIシステムによって、前記1つまたは複数のコンテンツ特徴指標を前記連結論理に入力することと、
前記連結論理によって、前記少なくとも1つの第1のベクトル出力を前記1つまたは複数のコンテンツ特徴指標に連結して、前記分類論理に入力される第2の出力ベクトルを生成することとをさらに含み、前記分類論理は、前記機械学習モデルからの前記少なくとも1つの第1のベクトル出力を処理し、前記1つまたは複数のコンテンツ特徴指標に連結された前記少なくとも1つの第1のベクトル出力を含んでいる前記第2の出力ベクトルを少なくとも処理することによって前記入力電子通信をフィッシング抽出通信または非フィッシング抽出通信のいずれかとして分類する、請求項3または4に記載の方法。
【請求項6】
前記構造トークンは文字列であり、前記構造トークン内の各文字は、前記入力電子通信のテキストの対応する部分に存在するコンテンツの種類の分類を示す、クラス指示子のセットからのクラス指示子、または前記構造トークンの前記文字列内の前のクラス指示子に対応する前記入力電子通信の前記コンテンツ内の文字の数を示す数値のいずれかである、請求項1ないし5のいずれかに記載の方法。
【請求項7】
前記クラス指示子のセットは、前記入力電子通信の前記コンテンツ内の英字を示す第1のクラス指示子と、前記入力電子通信の前記コンテンツ内の数字を示す第2のクラス指示子と、前記入力電子通信の前記コンテンツまたはコーディング内の書式設定文字列を示す第3のクラス指示子と、前記第1、第2、または第3のクラスのいずれにも属していない文字を示す第4のクラス指示子とを含む、請求項6に記載の方法。
【請求項8】
前記機械学習モデルは、双方向長短期記憶(LSTM)に基づく回帰型ニューラル・ネットワーク(RNN)であり、前記少なくとも1つの第1のベクトル出力は、LSTMセルの順方向伝搬のセットに対応する1つの第1のベクトル出力を含み、第2のベクトル出力は、前記双方向LSTMに基づくRNN内のLSTMセルの逆方向伝搬のセットに対応する、請求項1ないし7のいずれかに記載の方法。
【請求項9】
前記入力電子通信の前記分類を示す前記分類出力を出力することは、
前記分類出力を応答アクション・コンピューティング・システムに出力することと、
前記応答アクション・コンピューティング・システムによって、前記分類出力が、フィッシング抽出通信である前記入力電子通信の前記分類を示していることに応答して、応答アクションを自動的に実行することとを含み、前記応答アクションは、通知を、許可されたユーザに関連付けられたコンピューティング・デバイスに送信することであって、前記通知が、フィッシング抽出通信としての前記入力電子通信の識別を示す、前記送信すること、前記入力電子通信が前記入力電子通信の行き先に達するのを自動的に阻止すること、前記入力電子通信を前記入力電子通信の行き先とは異なる行き先にリダイレクトすること、または電子通信を送信するソースの能力を停止するために前記入力電子通信の前記ソースを関係当局に自動的に報告すること、のうちの少なくとも1つを含む、請求項1ないし8のいずれかに記載の方法。
【請求項10】
前記データ処理システムは、電子メール・サービス・プロバイダのサーバ・コンピューティング・システムを含み、前記入力電子通信は、前記電子メール・サービス・プロバイダのサーバ・コンピューティング・システムを介してルーティングされる入力電子メール通信である、請求項1ないし9のいずれかに記載の方法。
【請求項11】
請求項1ないし10の何れか一項に記載の方法をプロセッサに実行させるためのプログラム。
【請求項12】
請求項1ないし10の何れか一項に記載の方法をプロセッサに実行させるためのプログラムを記憶するメモリと、前記プロセッサと、を備えたシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般に、改良されたデータ処理装置および方法に関し、より詳細には、フィッシング抽出通信(phishing exfiltration communications)の深層学習ネットワーク検出(deep learning network detection)に基づいてフィッシング電子通信キャンペーン(phishing electronic communication campaigns)を検出するためのメカニズムに関する。
【背景技術】
【0002】
フィッシング攻撃は、個人および企業にとっての大きな脅威を示し続けている。フィッシング攻撃は、受信者に送信される巧妙に作られていることが多い電子通信を含み、この通信のコンテンツは、フィッシング電子通信のソースを信頼できる実体であるように偽装することによって、受信者から機密情報(例えば、ユーザ名、パスワード、クレジット・カード情報など)を不正に取得しようとする。フィッシング攻撃は、通常、電子メールのなりすましまたはインスタント・メッセージによって実行され、偽のWebサイトに個人情報を入力するように、ユーザを直接攻撃することが多く、この偽のWebサイトの外観は、本物のWebサイトと同一であるか、または少なくとも非常によく似ている。
【0003】
可能性のあるフィッシング攻撃を検出するための種々の解決策が存在し、これらの解決策は、通常、ブラックリスト作成の解決策、Webサイト比較の解決策、およびスパム通信フィルタリングの解決策のいずれかとして分類できる。ブラックリスト作成の解決策では、既知のフィッシング攻撃のユニフォーム・リソース・ロケータ(URL:Uniform Resource Locators)およびドメイン名が、それらのドメイン名または既知のURLから来る通信を除去するためにフィルタリング・プログラムによって使用されるブラックリスト・データ構造に含められる。ブラックリストの解決策は、サード・パーティによって発見されて報告されたドメイン名/URLのリストに頼り、これらのドメイン名/URLは、ブラックリスト・データ構造に追加され、フィルタリング・プログラムにおいて実装するためにクライアントに転送される。
【0004】
Webサイト比較の解決策は、疑わしいWebサイトがフィッシングWebサイトであるかどうかを示すことがある類似性または相違を決定するために、合法のWebサイトまたはその他の既知のフィッシングWebサイトとの疑わしいWebサイトのコンテンツの比較に頼る。合法のWebサイトとの疑わしいWebサイトの比較は、疑わしいWebサイトも合法と見なされるように、疑わしいWebサイトが合法のWebサイトに類似しているかどうかを判定することを試みる。この解決策は、比較を実行し、かなり正確な判定を行うために、多数の合法のWebサイトを必要とする。フィッシングWebサイトとの疑わしいWebサイトの比較は、他のフィッシングWebサイトに基づいて多くのフィッシングWebサイトが作成されており、したがって、他のフィッシングWebサイトとの類似性が、疑わしいWebサイトがフィッシングWebサイトであるということを示すという観察に基づく。この解決策は、良好な結果を提供できるが、現在のフィッシング攻撃のデータベースを維持し、各疑わしいWebサイトを、これらすべての攻撃と比較することを必要とするため、計算負荷が大きい。
【0005】
スパム通信フィルタリングの解決策は、フィッシング通信のコンテンツに含まれるテキストに注目し、このコンテンツをルールと比較して、通信がフィッシング通信(スパム)であるかどうかを判定する。そのようなスパム通信フィルタリングの解決策は、フィッシングの実体またはスパムの発信者が、受信者が悪意のあるリンクを選択するということを期待して、すべてのフィッシング・キャンペーンまたはスパム・キャンペーンで異なり、ターゲットにされた実体ごとに異なる方法で通信を作成するという点において、実装するのが困難である。したがって、フィッシング/スパム通信と共に変化する状況に対処するために、新しいルールを継続的に生成しなければならない。
【発明の概要】
【0006】
この「発明の概要」は、概念の選択を簡略化された形態で導入するために提供されており、本明細書の「発明を実施するための形態」において、さらに説明される。この「発明の概要」は、特許請求される対象の重要な要因または不可欠な特徴を識別するよう意図されておらず、特許請求される対象の範囲の限定に使用されることも意図されていない。
【0007】
1つの実施形態例では、方法が、プロセッサおよびメモリを備えているデータ処理システムにおいて提供され、このメモリは、プロセッサによって実行される命令であって、フィッシング抽出通信を検出するように動作するフィッシング抽出通信識別(PECI:phishing exfiltration communication identification)システムを実装するようにプロセッサを構成する命令を含む。この方法は、PECIシステムによって、データ・ネットワークから入力電子通信を受信することと、PECIシステムのプリプロセッサによって、入力電子通信を処理して構造トークンを取り出す(extract)こととを含む。構造トークンは、入力電子通信のコンテンツの構造を表す。この方法は、PECIシステムによって、機械学習トレーニング動作を介して、トレーニングされたPECIシステムの機械学習モデルに構造トークンを入力し、機械学習モデルに入力された構造トークンにおいて、フィッシング抽出通信文法(phishing exfiltration communication grammars)およびフィッシング抽出通信文法間の関係を識別することをさらに含む。さらに、この方法は、機械学習モデルによって構造トークンを処理し、PECIシステムの分類論理によって処理するための計算値を示す少なくとも1つの第1のベクトル出力を生成することを含む。加えて、この方法は、分類論理によって、機械学習モデルからの少なくとも1つの第1のベクトル出力を処理して、入力電子通信をフィッシング抽出通信または非フィッシング抽出通信のいずれかとして分類することを含む。さらに、この方法は、分類論理によって、入力電子通信の分類を示す分類出力を出力することを含む。
【0008】
一部の実施形態例では、この方法は、PECIシステムによって、1つまたは複数のターゲットにされた実体に関する個人情報が収集されるフィッシングWebサイトに関連付けられた第1のコンピューティング・デバイス、および1つまたは複数のターゲットにされた実体から個人情報を収集する個人情報収集点に関連付けられた第2のコンピューティング・デバイスから入力電子通信を送信しようとすることに応答して、入力電子通信を傍受することをさらに含む。ターゲットにされた実体またはフィッシングを実行するために使用されるWebサイトに送信された初期フィッシング通信を評価するのではなく、フィッシング抽出通信を識別することによって、そのような本発明の実施形態例のメカニズムは、攻撃者または攻撃者によって使用されるWebサイトによって送信されたフィッシング通信の先験的知識を必要とせず、個人情報を抽出または収集し、収集点コンピューティング・システムまたは収集点アカウント(例えば、攻撃者の代替の電子メール・アドレス)に提供するために使用されるすべてのソースからのすべての通信を識別することができる。
【0009】
一部の実施形態例では、この方法は、PECIシステムによって、入力電子通信を処理し、1つまたは複数のコンテンツ特徴指標(content feature metrics)を取り出すことをさらに含む。一部の実施形態例では、コンテンツ特徴指標は、分類出力における誤検出または検出漏れを区別するのを支援する入力電子通信のコンテンツの統計的尺度を含む。一部の実施形態例では、1つまたは複数のコンテンツ特徴指標は、入力電子通信のコンテンツにおいて使用される記号の多様性が増すにつれてエントロピーが増加する、入力電子通信のコンテンツの不確実性の尺度であるコンテンツ・エントロピー指標(content entropy metric)、または入力電子通信のコンテンツ内の少なくとも1つの第2の種類の文字に対する入力電子通信のコンテンツ内の少なくとも1つの第1の種類の文字の比率の尺度であるテキスト比率指標のうちの少なくとも1つを含む。コンテンツ特徴指標の使用は、誤検出および検出漏れを減らすことによって、PECIシステムによって生成される入力電子通信の分類の精度を改善する。
【0010】
一部の実施形態例では、この方法は、機械学習モデルによって、少なくとも1つの第1のベクトル出力をPECIシステムの連結論理に入力することと、PECIシステムによって、1つまたは複数のコンテンツ特徴指標を連結論理に入力することと、連結論理によって、少なくとも1つの第1のベクトル出力を1つまたは複数のコンテンツ特徴指標に連結して、分類論理に入力される第2の出力ベクトルを生成することとをさらに含む。そのような実施形態では、分類論理は、機械学習モデルからの少なくとも1つの第1のベクトル出力を処理し、1つまたは複数のコンテンツ特徴指標に連結された少なくとも1つの第1のベクトル出力を含んでいる第2の出力ベクトルを少なくとも処理することによって入力電子通信をフィッシング抽出通信または非フィッシング抽出通信のいずれかとして分類する。この連結されたベクトルは、機械学習モデルによる処理の結果だけでなく、分類論理によって実行される分類を改善するコンテンツの特徴も示す分類論理への入力を提供する。
【0011】
一部の実施形態例では、構造トークンは文字列であり、構造トークン内の各文字は、入力電子通信のテキストの対応する部分に存在するコンテンツの種類の分類を示す、クラス指示子のセットからのクラス指示子、または構造トークンの文字列内の前のクラス指示子に対応する入力電子通信のコンテンツ内の文字の数を示す数値のいずれかである。一部の実施形態例では、クラス指示子のセットは、入力電子通信のコンテンツ内の英字を示す第1のクラス指示子と、入力電子通信のコンテンツ内の数字を示す第2のクラス指示子と、入力電子通信のコンテンツまたはコーディング内の書式設定文字列を示す第3のクラス指示子と、第1、第2、または第3のクラスのいずれにも属していない文字を示す第4のクラス指示子とを含む。構造トークンは、入力電子通信内のフィッシング抽出通信文法のパターンを識別するために、機械学習モデルによってより簡単に処理され得る、入力電子通信の構造の簡潔でコンパクトな表現を提供する。
【0012】
一部の実施形態例では、機械学習モデルは、双方向長短期記憶(LSTM:Long Short Term Memory)に基づく回帰型ニューラル・ネットワーク(RNN:Recurrent Neural Network)であり、少なくとも1つの第1のベクトル出力は、LSTMセルの順方向伝搬のセットに対応する1つの第1のベクトル出力を含み、第2のベクトル出力は、双方向LSTMに基づくRNN内のLSTMセルの逆方向伝搬のセットに対応する。双方向LSTMに基づくRNNは、LSTMに基づくRNNの両方の方向でフィッシング抽出通信文法が適切に分類され、一方、フィッシング抽出通信文法に対応しない入力電子通信の部分が両方の方向でフィッシング抽出通信文法として分類されないため、フィッシング抽出通信文法の適切な識別を保証する。これは、ユーザがフィッシング攻撃を認識し、攻撃者を阻止するために誤解を与える情報を意図的に入力する状況において、特に役立つ。
【0013】
一部の実施形態例では、入力電子通信の分類を示す分類出力を出力することは、分類出力を応答アクション・コンピューティング・システムに出力し、応答アクション・コンピューティング・システムによって、分類出力が、フィッシング抽出通信である入力電子通信の分類を示していることに応答して、応答アクションを自動的に実行することを含む。一部の実施形態例では、応答アクションは、通知を、許可されたユーザに関連付けられたコンピューティング・デバイスに送信することであって、この通知が、フィッシング抽出通信としての入力電子通信の識別を示す、送信すること、入力電子通信が入力電子通信の行き先に達するのを自動的に阻止すること、入力電子通信を入力電子通信の行き先とは異なる行き先にリダイレクトすること、または電子通信を送信するソースの能力を停止するために入力電子通信のソースを関係当局に自動的に報告すること、のうちの少なくとも1つを含む。このようにして、ターゲットにされた実体の個人情報を取得することに成功するフィッシング攻撃の能力が、最小限に抑えられる。
【0014】
一部の実施形態例では、データ処理システムは、電子メール・サービス・プロバイダのサーバ・コンピューティング・システムを含み、入力電子通信は、電子メール・サービス・プロバイダのサーバ・コンピューティング・システムを介してルーティングされる入力電子メール通信である。このようにして、電子メール・サービス・プロバイダは、フィッシング攻撃から恩恵を受ける攻撃者の能力を効果的に妨害することによって、収集点コンピューティング・システムまたは収集点電子メール・アドレスに向かう、フィッシングWebサイトによる通信のバックエンドに対するフィッシング攻撃を阻止することができる。
【0015】
他の実施形態例では、コンピュータ可読プログラムを含んでいるコンピュータ使用可能媒体またはコンピュータ可読媒体を備えているコンピュータ・プログラム製品が提供される。このコンピュータ可読プログラムは、コンピューティング・デバイス上で実行された場合、コンピューティング・デバイスに、方法の実施形態例に関して上で概説された動作のうちの種々の動作およびその組合せを実行させる。
【0016】
さらに別の実施形態例では、システム/装置が提供される。このシステム/装置は、1つまたは複数のプロセッサおよび1つまたは複数のプロセッサに結合されたメモリを備えてよい。このメモリは命令を含んでよく、これらの命令は、1つまたは複数のプロセッサによって実行された場合、1つまたは複数のプロセッサに、方法の実施形態例に関して上で概説された動作のうちの種々の動作およびその組合せを実行させる。
【0017】
本発明の実施形態例の以下の詳細な説明を考慮して、本発明のこれらおよびその他の特徴および優位性が説明され、当業者にとって明らかになるであろう。
【0018】
本発明ならびに本発明の最もよく使われる使用方法とその他の目的、および優位性は、実施形態例の以下の詳細な説明を、添付の図面と一緒に読みながら参照することによって、最も良く理解されるであろう。
【図面の簡単な説明】
【0019】
【
図1】フィッシング攻撃の構造のブロック図を示す例示的な図である。
【
図2】一実施形態例に従う、フィッシング抽出通信識別(PECI)システムの例示的なブロック図である。
【
図3】識別されたフィッシング抽出通信文法に基づいて、フィッシング抽出通信にかなり類似していると見なされ得る、標準的な(正常な)通信の例を示す図である。
【
図4】実施形態例の態様が実装され得る、分散データ処理システムの例示的な図である。
【
図5】実施形態例の態様が実装され得る、コンピューティング・デバイスの例示的なブロック図である。
【
図6】一実施形態例に従ってフィッシング抽出通信の識別を実行する場合の、フィッシング抽出通信識別(PECI)システムの例示的な動作を概説するフローチャートである。
【発明を実施するための形態】
【0020】
前述したように、フィッシング攻撃を識別するための既存の解決策は、ターゲットにされた実体自体に送信されるフィッシング通信、あるいは他の既知のフィッシングWebサイトまたは既知の安全なWebサイトとのフィッシングWebサイトの比較に重点を置いている。本発明は、元のフィッシング通信自体を評価することも、フィッシングWebサイトを他の既知のWebサイトと比較することも行わずに、収集された個人情報(PI:personal information)を収集コンピューティング・システムに送信するためにフィッシングWebサイトによって使用されるバックエンド通信であるフィッシング抽出通信に対して動作する、改良されたコンピュータ・ツールを提供し、この収集コンピューティング・システムは、フィッシング攻撃の犠牲になる種々のターゲットの実体によって入力されたPIを収集する。これらのバックエンド通信は、本明細書ではフィッシング抽出通信またはフィッシング収集通信(phishing exfiltration or harvesting communications)と呼ばれる。
【0021】
これらの抽出/収集通信は電子メール通信であってよく、電子メール通信では、PIが挿入され、別のコンピューティング・デバイスによってホストされているか、またはPIの収集のために電子メール通信が向けられる、別の電子通信のアカウント(例えば、別の電子メール・アドレス)に送信される。フィッシングの実体が抽出/収集通信(以下では、「抽出」通信と呼ばれる)からPIを取り出すことができるようになるには、抽出通信が、収集コンピューティング・デバイスで実行されるスクリプトによって理解される形式である必要がある。これは、フィッシングの実体が、多数の(例えば、標準的なフィッシング・キャンペーンの場合は、およそ数百または数千の)抽出通信に起因して、これらの抽出通信からPI情報を手動でコピーして貼り付けるのではないからである。その結果、抽出通信は、フィッシング抽出通信を識別するために実施形態例のメカニズムによって利用され得る関連する文法を有することになる。
【0022】
実施形態例の改良されたコンピューティング・ツールは、機械学習モデル、人工知能、およびデータ・マイニングのコンピューティング・ツールを電子通信(例えば、電子メール通信)に適用し、電子通信がフィッシング抽出通信であるかどうかを判定する。一部の実施形態例では、回帰型ニューラル・ネットワーク(RNN)(一部の実装では、双方向長短期記憶(LSTM)RNNなど)は、電子通信内のフィッシング抽出通信文法の存在を検出し、フィッシング抽出通信を表す電子通信を識別するように適応される。本明細書では、実施形態例の説明において双方向LSTM RNNが使用されるが、本発明はそれに限定されず、決定木モデル、ランダム・フォレスト・モデル、SVMなどの、任意のニューラル・ネットワークまたは機械学習モデルがトレーニングされ、実施形態例に従って使用され得る。フィッシング抽出通信が検出されることに応答して、ターゲットにされた実体からPIを収集できるフィッシングの実体の能力を最小限に抑えるために、次に、適切な保護アクションまたは通知あるいはその両方が自動的に実行/送信され得る。場合によっては、フィッシングの実体がフィッシングWebサイトにサブミットされたPIにアクセスするのを防ぐため、およびフィッシング・キャンペーンの実行の継続を妨げるために、フィッシングの実体のアカウントが凍結またはブロックされてよく、URL/Webサイトのアクセスがブロックされてよく、危険にさらされているコンピューティング・システム、通信サービス・プロバイダなどに通知が送信され得る。
【0023】
実施形態例のメカニズムは、フィッシングWebサイトとPIの収集点の間のバックエンド通信上のフィッシング・キャンペーンの検出をターゲットにすることによって、意図された被害者に送信されたフィッシングのURLまたは初期フィッシング通信を最初に認識することを必要とせずに、ネットワーク上のフィッシング攻撃の存在を検出するための手段を提供する。この攻撃は、この攻撃が引き起こすネットワーク活動が開始するとすぐに、このネットワーク活動を介して検出される。このメカニズムは、動作するためにそのような情報を必要とする既知のメカニズムとは異なっている。本発明は、通信サービス・プロバイダ(例えば、電子メール・サービス・プロバイダ)のサービスのユーザが、フィッシング抽出のためにサービスを使用している場合に、通信サービス・プロバイダがそれを検出するためのメカニズムも提供し、通信サービス・プロバイダが、適切なアクションを実行して、ユーザがそれらのサービスをそのような目的に使用することを拒否できるようにする。
【0024】
実施形態例のメカニズムは、望ましい実装に依って、種々の異なるコンピューティング・システムにおいて実装され得る。例えば、可能性のあるターゲットの実体のコンピューティング・システム(例えば、フィッシング攻撃のターゲットになることがある企業のコンピューティング・システム、個人のコンピューティング・システム、またはその他の実体のコンピューティング・システム)において、フィッシング抽出通信識別(PECI)エンジンが実装され得る。他の実施形態例では、PECIエンジンは、侵入検出システム/侵入防止システム(IDS/IPS:intrusion detection system/intrusion prevention system)環境(例えば、他のコンピューティング・システム上の侵入を検出して防止するように特に構成されたコンピューティング・システム)において実装され得る(この実装は、性能および最大可視性に与える影響が少ない)。一部の実施形態例では、実施形態例のメカニズムを、通信システム・サーバ・コンピューティング・システム(例えば、電子メール・アカウントをホストしている1つまたは複数の電子メール・サーバ・コンピューティング・システム内)を流れるすべての通信に適用できるように、通信システム・サーバ・コンピューティング・システムにおいて実施形態例のメカニズムが実装され得る。実施形態例のメカニズムは、フィッシング通信を監視して識別するために、大規模な電子メール通信サービス・プロバイダのサーバ・コンピューティング・システムにおいて実装され得る。
【0025】
1つの実施形態例では、PECIエンジンは、入力電子通信から構造トークンおよびコンテンツの特徴を取り出すプリプロセッサを備える。構造トークンは、入力電子通信においてコンテンツがどのように構造化されるかの記号表現である。この記号表現は、電子通信のコンテンツを表す文字および数値のシーケンスを含んでよく、これらの文字は、コンテンツのカテゴリを指定してよく、これらの数値は、そのカテゴリに関連付けられた電子通信のコンテンツ内のテキストの文字の数を表してよい。コンテンツの特徴は、実際のフィッシング抽出通信を非フィッシング抽出通信と区別するのに役立つ入力電子通信の特徴である。例えば、1つの実施形態例では、コンテンツの特徴は、コンテンツのエントロピーおよびテキストの比率を含み、これらが後で詳細に説明される。
【0026】
PECIエンジンは、RNNなどの第1の機械学習モデルをさらに含み、構造トークンが、プリプロセッサから第1の機械学習モデルに入力される。RNNは、構造トークンに存在する特定のフィッシング抽出文法を認識するようにトレーニングされる。RNNは、構造トークンに対して動作して、RNNによって計算された値を出力し、これらの値は、入力通信がフィッシング抽出通信であるかどうかに関する決定を表す最終的な出力を生成するために、2値分類器の決定論理への入力として2値分類器によって使用される。一部の実施形態例では、RNNは、256次元(ベクトル・スロット)を含んでいる出力ベクトル(LSTM出力ベクトルと呼ばれる)、および逆方向LSTM予測のための(双方向構成に起因する)第2の256次元のベクトル出力(LSTM逆方向出力ベクトルと呼ばれる)を出力する、双方向LSTMに基づくRNNである。本発明の思想および範囲から逸脱することなく、任意の数の次元が使用されてよく、本発明が、双方向LSTMに基づくRNNの実装に限定されず、任意の適切なRNNの実装を使用してよいということが、理解されるべきである。
【0027】
RNNの出力は、プリプロセッサによって取り出されたコンテンツの特徴と共に、PECIエンジンの連結論理に提供され、この連結論理は、複数のベクトルを単一のベクトル出力に連結する。1つの実施形態例では、この単一のベクトル出力は、コンテンツのエントロピーのコンテンツの特徴の追加の次元、およびテキストの比率のコンテンツの特徴の追加の次元に加えて、RNNの256次元のベクトル出力(すなわち、LSTM出力)および逆方向LSTM予測の256次元のベクトル出力(すなわち、LSTM逆方向出力)を結合するため、514次元のベクトルである。
【0028】
連結論理からのこの単一のベクトル出力は、入力電子通信がフィッシング抽出通信であるかどうかの最終的な予測を生成するPECIエンジンの2値分類エンジン(または2値分類器)への入力になる。2値分類器は、連結論理からの単一のベクトル入力に基づいて確率値を出力するようにトレーニングされる、ニューラル・ネットワーク、決定木、ランダム・フォレスト・モデル、ベイジアン・モデル、SVMなどの、第2の機械学習モデルとして実装され得る。2値分類器の出力は、入力電子通信がフィッシング抽出通信である確率を示す確率値である。この確率は、電子通信がフィッシング抽出通信である確率に基づいて応答アクションを決定することにおいて使用するために、適切な応答アクション・エンジンに提供され得る。例えば、この確率は、応答アクションが実行されるべきかどうかを判定するために、確率しきい値と比較され得る。2値分類エンジンから出力された確率が確率しきい値以上である場合、応答アクションが実行され得る。2値分類エンジンから出力された確率が確率しきい値未満である場合、この電子通信に対して応答アクションを実行する必要はない。
【0029】
したがって、実施形態例のメカニズムは、攻撃者がターゲットにされた実体から個人情報を取得することを防ぐための応答アクションを実行できるように、フィッシング抽出通信を識別するための機械学習および人工知能の方法を提供する。実施形態例の機械学習の方法は、高い精度(例えば、0.3%の検出漏れおよび0.18%の誤検出)を達成するということがわかっている。実施形態例のメカニズムを通信サービス・プロバイダのコンピューティング・システムにおいて実装することによって、フィッシング攻撃およびフィッシング・キャンペーンを最小限に抑えることができ、それによって、個人および組織の個人情報のセキュリティを大幅に改善する。
【0030】
実施形態例の種々の態様のさらに詳細な説明を開始する前に、この説明全体にわたって、「メカニズム」という用語が、種々の動作、機能などを実行する本発明の要素を指すために使用されるということが、最初に理解されるべきである。「メカニズム」は、この用語が本明細書において使用されるとき、装置、手順、またはコンピュータ・プログラム製品の形態での、実施形態例の機能または態様の実装であってよい。手順の場合、手順は、1つまたは複数のデバイス、装置、コンピュータ、データ処理システムなどによって実装される。コンピュータ・プログラム製品の場合、特定の「メカニズム」に関連付けられた機能を実装するため、または特定の「メカニズム」に関連付けられた動作を実行するために、コンピュータ・プログラム製品内またはコンピュータ・プログラム製品上で具現化されたコンピュータ・コードまたは命令によって表された論理が、1つまたは複数のハードウェア・デバイスによって実行される。したがって、本明細書に記載されたメカニズムは、特殊なハードウェア、汎用ハードウェア上で実行されるソフトウェア、命令が特殊なハードウェアまたは汎用ハードウェアによって容易に実行可能になるように媒体に格納されたソフトウェア命令、機能を実行するための手順または方法、あるいはこれらのいずれかの組合せとして実装され得る。
【0031】
本説明および特許請求の範囲では、実施形態例の特定の特徴および要素に関して、「1つの」、「~のうちの少なくとも1つ」、および「~のうちの1つまたは複数」という用語を使用することがある。これらの用語および語句が、特定の実施形態例に存在する特定の特徴または要素のうちの少なくとも1つが存在するが、2つ以上が存在する可能性もあるということを述べるよう意図されているということが、理解されるべきである。すなわち、これらの用語/語句は、説明または特許請求の範囲を、存在している単一の特徴/要素に限定するよう意図されておらず、そのような特徴/要素が複数存在することを必要とするよう意図されていない。反対に、これらの用語/語句は、少なくとも単一の特徴/要素のみを必要とし、そのような特徴/要素は、説明および特許請求の範囲内に複数存在する可能性がある。
【0032】
さらに、「エンジン」という用語の使用が、本発明の実施形態および特徴を説明することに関して本明細書において使用された場合、エンジンに起因するか、またはエンジンによって実行されるか、あるいはその両方である動作、ステップ、プロセスなどを実現するため、または実行するため、あるいはその両方のためのいずれかの特定の実装を限定するよう意図されていないということが、理解されるべきである。エンジンは、機械可読メモリに読み込まれるか、または格納されて、プロセッサによって実行される適切なソフトウェアと組み合わせた一般的なプロセッサまたは特殊なプロセッサあるいはその両方の任意の使用を含むが、これらに限定されない、指定された機能を実行するソフトウェア、ハードウェア、またはファームウェア、あるいはその組合せであってよいが、これらに限定されない。さらに、特定のエンジンに関連付けられたすべての名前は、特に指定されない限り、参照の便宜のためであり、特定の実装を限定するよう意図されていない。さらに、あるエンジンに起因する任意の機能が、同じ種類または異なる種類の別のエンジンの機能に組み込まれるか、もしくは結合されるか、またはその両方が行われるか、あるいは種々の構成の1つまたは複数のエンジンにわたって分散されて、複数のエンジンによって同じように実行され得る。
【0033】
加えて、以下の説明では、実施形態例の種々の要素の複数の種々の例を使用して、実施形態例の例示的な実装をさらに説明し、実施形態例のメカニズムの理解を助けているということが、理解されるべきである。これらの例は、非限定的であるよう意図されており、実施形態例のメカニズムの実装の種々の可能性を網羅していない。本説明を考慮して、これらの種々の要素に関して、本発明の思想および範囲から逸脱することなく、本明細書において提供された例に加えて、またはそれらの例を置き換えて利用できる、多くのその他の代替の実装が存在するということが、当業者にとって明らかであろう。
【0034】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
【0035】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0036】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0037】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0038】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0039】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【0040】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれ、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で一連の動作可能なステップを実行させるものであってもよい。
【0041】
図内のフローチャートおよびブロック図は、本発明の種々の実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0042】
前述したように、本発明は、フィッシング抽出通信を識別し、応答アクションを実行して、フィッシングの実体がターゲットにされた実体から個人情報(PI)に対するアクセス権限を取得するのを防ぐための、改良されて自動化されたコンピュータ・ツールを提供する。本発明のメカニズムは、収集点コンピューティング・デバイスでターゲットにされた実体の個人情報を収集するためにフィッシング・キャンペーンによって使用される、フィッシング抽出通信において認識可能な文法の観察に基づいて考案された。したがって、改良されたコンピューティング・ツールが動作する方法をより良く理解するために、ここで、フィッシング攻撃の構造の例示的なブロック図を示す
図1を参照する。
【0043】
図1に示されているフィッシング攻撃の例示的な構造では、フィッシング攻撃が電子メール(Eメール)通信を利用したということを仮定するが、実施形態例は、ターゲットにされた実体にハイパーリンクをクリックさせるか、またはその他の方法で、セキュリティを侵害されたサーバ上のフィッシングWebサイトにアクセスさせ、PIをユーザ・インターフェイスのフィールドに入力させるか、またはその他の方法でPIを入力としてフィッシングWebサイトに提供させるためのフィッシングを実行するために利用され得る、任意の電子通信に適用可能である。
図1に示されているように、フィッシング攻撃キャンペーンを実行するプロセスは、攻撃者110がセキュリティを侵害されたサーバ・コンピューティング・デバイス120上にフィッシングWebサイトを展開すること(ステップ1)から開始する。次に、攻撃者110は、ターゲットにされた実体130の大規模な集団に送信される(ステップ2)フィッシング電子メール通信を作成する。ステップ1および2は、フィッシング攻撃の「準備段階」を構成し、以下で説明される残りのステップは、「攻撃段階」を構成する。
【0044】
ターゲットにされた実体130の集団の潜在的な被害者は、フィッシング電子メール通信を受信し、これらの潜在的な被害者の一部は、ハイパーリンクをクリックするか、またはその他の方法で自分のコンピューティング・デバイスをリダイレクトし、セキュリティを侵害されたサーバ120に展開されたフィッシングWebサイトにアクセスすることがある(ステップ3)。次に、被害者のコンピューティング・デバイスは、フィッシングWebサイトにリダイレクトされ(ステップ4)、被害者は、このフィッシングWebサイトを介して、自分の個人情報(PI)を入力する(ステップ5)。フィッシングWebサイトが、攻撃者110が実体の実際の、または本物のWebサイトであると主張するWebサイトを表すように、攻撃者110によって特に設計されており、多くの場合、本物または実際のWebサイトのロゴおよびコンテンツをエミュレートしているということに、注意するべきである。したがって、被害者は、実際にはフィッシングWebサイトにアクセスしており、自分のPI(例えば、ユーザ識別子、パスワード、アカウント番号、個人識別番号などのセキュリティ識別子など)をフィッシングWebサイトに入力しているときに、実際の実体の本物のWebサイトにアクセスしていると信じる。
【0045】
フィッシングWebサイトにアクセスすることによって被害者によって入力されたPIは、フィッシング抽出通信のコンテンツにデータを自動的に入力するために、フィッシングWebサイトによって使用され、その後、このコンテンツが収集点コンピューティング・システム140に送信される(ステップ6)。収集点コンピューティング・システム140は、別の電子メール・サーバまたはエンド・ポイント・コンピューティング・デバイスであってよく、収集点コンピューティング・システム140には、攻撃者110による不正使用のために、種々の被害者の収集されたPIが収集される。収集点コンピューティング・システム140は、例えば、クラウド内の電子メール・サーバであってよい。ステップ3~6のこのプロセス(すなわち、「攻撃段階」)は、フィッシング・キャンペーンの集団130内の被害者ごとに繰り返される。
【0046】
前述したように、フィッシング攻撃を阻止しようとする既存の試みは、潜在的な被害者の集団130に送信される初期フィッシング通信(ステップ2)に重点を置いているか、または(ステップ1で展開され、セキュリティを侵害されたサーバ120上に存在する)フィッシングWebサイトを、他の既知のフィッシングWebサイトもしくは本物のWebサイトと比較して、WebサイトがフィッシングWebサイトである可能性があるかどうかを判定することに重点を置いている。これらの既知のメカニズムは、解決策の重点を、被害者および被害者によってアクセスされたWebサイトに送信される初期通信に置くことによって、被害者自身を保護しようとする。本発明より前には、セキュリティを侵害されたサーバ120からの電子通信を容易にする電子通信サービス・プロバイダのコンピューティング・デバイスで、またはクラウド140内のサーバ・コンピューティング・システムを介する収集点コンピューティング・システムでのメカニズムによるなどの、フィッシング抽出通信に対して動作するメカニズムはなかった。すなわち、本発明は、コンピューティング・デバイス(例えば、フィッシング攻撃をホストしているサーバ)に重点を置き、攻撃者の収集アカウントまたはアドレスをホストしている収集点コンピューティング・デバイスに重点を置く。そのため、ネットワークの所有者(例えば、クラウド・プロバイダ、任意のホスティング会社、またはネットワーク内で実行される複数のサーバを所有するほど十分に大きい任意の実体)は、ネットワークがフィッシング攻撃をホストしているということを知らされ、被害者をターゲットにしている初期攻撃通信をスキャンして検出する必要がなく、フィッシングWebサイトを直接分析することもない。
【0047】
前述したように、実施形態例の改良されたコンピュータ・ツールは、フィッシング抽出通信が、フィッシング抽出通信のコーディング/コンテンツ内に識別可能な文法を含むという観察に基づいて動作する。これらの文法は、フィッシング抽出通信を生成するために使用されることがあり、これらの文法に対して、フィッシング抽出通信の存在を識別する(すなわち、フィッシング抽出通信を表すような方法で、入力電子通信内にこれらの文法が存在する場合に、それを識別する)ように、PECIエンジンのRNNおよび2値分類器などの機械学習モデルがトレーニングされ得る。RNNおよび2値分類器が、通信をフィッシング抽出通信または正常な通信として示す正しい確率を適切に分類(すなわち、生成)できるように、RNNおよび2値分類器のこのトレーニングは、これらの文法に基づいて生成されたフィッシング抽出通信、および正常な(すなわち、非フィッシング)通信を使用して実行され得る。
【0048】
例えば、1つの実施形態例では、PECIエンジンの機械学習モデル(例えば、RNNおよび2値分類器)のトレーニング動作中に、既知のフィッシング抽出電子メールの分析に基づいて、一意のフィッシング抽出通信文法のセットが生成され得る。これらのフィッシング抽出通信文法は、フィッシング抽出通信のトレーニング・セットを生成するために、トレーニング・セット生成エンジンによって使用されてよく、トレーニング・セット内の各電子メール通信は、フィッシング抽出通信文法のうちの1つに従うフィッシング抽出通信であるか、または正常な通信(すなわち、非フィッシング通信)である。このトレーニング・データ・セットは、数千の通信を含んでよく、その大部分は正常な通信であり、一方、より小さいが重要な部分は、フィッシング抽出通信である。通信のトレーニング・データ・セットは、トレーニング・データ・セットをトレーニング通信のサブセットおよびテスト通信のサブセットに分割することによって、機械学習モデルのトレーニングとテストの両方に使用され得る。トレーニング・サブセットは、教師あり機械学習プロセスを使用してPECIエンジンの機械学習モデル(例えば、RNNおよび2値分類器)をトレーニングするために使用され、一方、テスト・サブセットは、トレーニングが完了したと見なされた後に、機械学習モデルをテストするために使用される。
【0049】
以下では、この実施形態例の一意のフィッシング抽出通信文法のセットにおいて識別され、使用される、3つのフィッシング抽出電子メールの文法の例を示す。ここでは3つの例のみが示されているが、一意のフィッシング抽出通信文法のセットは、大幅に大きくて(例えば、数百または数千もの多くの文法であって)よいということが、理解されるべきである。
電子メールの例1:
"----~~~-=BeGiN=-~~~-----
"
"Online ID:".$_POST['Email']."
"
"Password: ".$POST['Passw']."
"
"---------=IP Adress &Date=---------
"
"IP Address: ".$ip."
"
"Country: ".$country."
"
"Date: ".$date."
"
"-----~~-=CoPyMe =-~~------
"
電子メールの例2:
"---------------||byUbiA||---------------
"
"Email Provider:".$emailprovider."
"
"Emai: " .$_POST['Email'] ."
"
"Pass: " .$_POST['Passwd']."
"
"IP : " .$ip."
"
"-----------------------IIIII---------------------
"
"City: {$ city}
"
"Region: {$ region}
"
"Country Name: {$ countryName}
"
"Country Code: {$ countryCode}
"
"--------------------~!~-------------------------
"
電子メールの例3:
"~~~~~~Mail Info~~~~~~
"
"Username :".$_POST['user']."
"
"Password :".$_POST['password']."
"
"~~~~~~The ViCtIm ~~~~~~
"
"|Client IP: ".$ip."
"
"|
"Browser :".$ Agent."
"
"DateTime : ".$timedate."
"
"country : ".$country."
"
"
"~~~~~~~~~ ArysAdFS~~~~~~~~
【0050】
通信のコーディングにおいてコンテンツの構造を指定するこれらの文法などの文法は、合成のフィッシング抽出通信(例えば、電子メール)を生成するために、トレーニング・データセット生成エンジンによって使用される。例えば、トレーニング・データセット生成エンジンは、これらのフィッシング抽出通信を、トレーニング・データセット通信の構造の基礎として利用し、種々のソースから取得された実際のデータ、または例えば日付/時間、ホスト名、国などに対応するコンテンツを挿入してトレーニング・データセット生成エンジンによって生成されたダミー・データを、通信コンテンツに書き込んでよい。そのような生成されたフィッシング抽出通信は、既知の正常な通信データセット(例えば、Enron Email Dataset)から取得された正常な通信と結合されて、トレーニング・データセットを生成してよい。これらの通信では、通信がフィッシング抽出通信であるか、または正常な通信であるかを示すグランド・トゥルースが維持されるということが、理解されるべきである。このグランド・トゥルースは、教師あり機械学習プロセスの間に機械学習モデルの正しい出力を検証し、機械学習モデルの出力において決定された損失または誤差に基づいて機械学習モデルの動作パラメータを調整するために、使用され得る。
【0051】
PECIエンジンのトレーニングおよび実行時の動作をより明確に理解するために、1つの実施形態例に従うPECIエンジンの構造が
図2に示されている。
図2に示されているように、PECIエンジン200は、プリプロセッサ210と、示された例では、双方向長短期記憶(LSTM)回帰型ニューラル・ネットワーク(RNN)である、第1の機械学習モデル220と、連結論理230と、2値分類エンジンまたは2値分類器240とを備えている。一部の実施形態例では、第1の機械学習モデル220および2値分類器240は共に、受信された入力電子通信の構造を表す構造トークンにおいて、フィッシング抽出文法およびフィッシング抽出文法間の関係を認識するように、機械学習動作によって全体としてトレーニングされる機械学習モデルを構成し、これらが、以下で詳細に説明される。PECIエンジン200は、応答アクション・コンピューティング・システム250と共に動作するか、応答アクション・コンピューティング・システム250と通信するか、または応答アクション・コンピューティング・システム250に統合されてよく、応答アクション・コンピューティング・システム250は、以下で説明されるフィッシング通信の検出に応答して、応答アクションを実行してよい。
【0052】
PECIエンジン200は、プリプロセッサ210において入力通信(例えば、入力電子メール)を受信し、プリプロセッサ210は、入力通信に対して動作し、電子メールであると見なされる入力通信のコンテンツの表現、および1つまたは複数のコンテンツ特徴指標を取り出し、これらの1つまたは複数のコンテンツ特徴指標は、機械学習モデルによって生成されることがある誤検出を減らすために使用される。一部の実施形態例では、コンテンツ特徴指標が利用されなくてよく、その場合、プリプロセッサ210が入力電子メールからコンテンツの表現のみを取り出してよいということが、理解されるべきである。しかし、
図2に示された実施形態例などの他の実施形態例では、PECIエンジン200の性能を改善するために、コンテンツの特徴が使用される。
【0053】
プリプロセッサ210によって取り出されたコンテンツの表現に関しては、コンテンツの表現は、コンテンツの構造の表現であり、したがって、本明細書では構造トークンと呼ばれる。構造トークンは、前述したように、フィッシング抽出電子メールに存在する個人情報(PI)が、特定のパターンまたは文法で構造化され、これらのパターンまたは文法が、通常は、正常な(非フィッシング抽出)通信に頻繁に出現しないという観察に基づいて生成される。フィッシング抽出通信のコンテンツの構造が、正常な通信と大きく異なるということは、入力通信の決定された構造を使用してフィッシング抽出通信を検出する機会を与える。
【0054】
プリプロセッサ210は、入力電子メールのコンテンツの構造を構造トークン215として取り出す。構造トークン215は、入力電子メールのコンテンツがどのように構造化されるのかの記号表現であり、記号がコンテンツのカテゴリを表し、カテゴリに対応するコンテンツ内の文字の数を表すカウント数値が、記号に追加される。記号/数値の組合せのシーケンスが、構造トークンを構成する。記号は、事前に定義されたクラス指示子のセットからのクラス指示子であり、例えば、英字、数字、形式指示子などの、入力通信のコンテンツの対応する部分に存在するコンテンツの種類の分類を示す。
【0055】
例えば、1つの実施形態例では、次の4つのコンテンツのカテゴリが利用される。
C:英字の26文字(a~z、A~Z)
N:10個の数字(0~9)
L:改行(¥n、¥r)
S:上記のカテゴリに属さない他のすべての文字。
構造トークンを生成するために、プリプロセッサ210によって、入力電子メールのコンテンツが構文解析され、コンテンツ内の次の文字を分類し、コンテンツの次のカテゴリが構文解析の一部として出現するまで、対応するカウントを増やす。このようにして、プリプロセッサ210は、カテゴリ内の連続する文字を数え、関連するカウント数またはカウント値をカテゴリ記号の後に追加する。コンパクトな構造トークンを構築するために、単一文字の場合の「1」のカウント値がスキップされる。例えば、電子メール内に出現する「Hi Yvonne/n This is John, please call me back.」というテキストは、「C2SC6LSC4SC2SC4S2C6SC4SC2SC4S」のような構造トークンとして表され得る。この例では、文字列を書式設定する改行のみが、別個のカテゴリと見なされるが、構造トークンを生成するときに入力通信のコーディングまたはコンテンツに存在することがある任意の書式設定文字が、別個のカテゴリとして認識され得るということに、注意するべきである。
【0056】
さらに別の例として、フィッシング抽出通信文法およびそれらに対応する構造トークンの以下の例について考える。
電子メールの例4:
Chase Bank Spam ReZulT
User ID :
hostip
Full Name : $fullname
City :
port
State :
Mother Maiden Name :
この電子メールは、本明細書の方法の場合、次の構造トークンを生成する。C5SC4SC4SC6L2C4SC2S2LC6LC4SC4S4C8L2C4S2LC4LC5S2L2C6SC6SC4S2L
電子メールの例5:
User ID :
Date of Birth :
Security Number :
IP Address :
HostName :
この電子メールは、本明細書の方法の場合、次の構造トークンを生成する。C4SC2S3LC4SC2SC5S3LC8SC6S3LC2SC7S3LC8S2L
【0057】
これらが、1つの実施形態例に従って生成され、利用され得る、コンテンツのカテゴリおよび後続の構造トークンの単なる例であるということが、理解されるべきである。他の実施形態例は、実施形態例の思想および範囲から逸脱することなく、前述したコンテンツのカテゴリに加えて、または前述したコンテンツのカテゴリを置き換えて、他のコンテンツのカテゴリを利用してよい。さらに、コンテンツのカテゴリおよびコンテンツのカテゴリに対応する文字の数を示す数値のシーケンスを必要としない、入力通信の構造の異なるエンコーディングが利用され得る。入力通信がフィッシング抽出通信であるかどうかの予測を生成するためのエンコーディングに対して機械学習モデルが動作するように、エンコードされた表現が機械学習モデルに供給されることができるように、入力通信の構造を定義する任意のエンコーディングが、本発明の思想および範囲から逸脱することなく使用され得る。
【0058】
機械学習モデル220のトレーニング/テスト中に、プリプロセッサ210によって、トレーニング/テスト・データセット内の電子メールに関して、構造トークンが生成され、これらの電子メールは、フィッシング抽出通信文法のうちの1つまたは複数を含む生成されたフィッシング抽出電子メール、または正常な電子メールであってよいということも、理解されるべきである。いずれにしても、電子メールのコンテンツが構造トークンに変換される。加えて、一部の実施形態例では、以下でさらに詳細に説明されるように、プリプロセッサ210によって、入力電子メールのコンテンツから1つまたは複数のコンテンツの特徴が取り出される。一部の実施形態例では、入力通信のコンテンツが、必要なサイズの構造トークン215を生成するのに不十分なサイズを有することがあるということが、理解され得る。そのような場合、十分なサイズの構造トークン215を生成するために、充填データが入力通信または構造トークン215あるいはその両方に追加され得る。他の状況では、入力通信が、構造トークン内で表すことができるものを超過するサイズを有することがあり、その場合、構造トークン215のサイズに適合するように、コンテンツが切り詰められてよい。
【0059】
入力電子メールに対応する構造トークンが、入力のセットx0、x1、...xnとして、機械学習モデル220(例えば、
図2の双方向LSTMに基づくRNN220)への入力として提供され、機械学習モデル220への入力の各々は、構造トークンの対応する部分である。例えば、前の電子メールのコンテンツ「Hi Yvonne/n This is John, please call me back」の構造トークン(すなわち、「C2SC6LSC4SC2SC4S2C6SC4SC2SC4S」)を使用すると、入力のセットはx0=C、x1=2、x3=S、x4=C、x5=6、x6=L、x7=Sなどとなる。RNN220によって処理するための構造トークンの分割方法のこの1つの例および他の実施形態が、2つ以上の文字/数字/記号を含んでいる区分または部分あるいはRNN220によって処理される構造トークンの部分の任意のその他の指定を利用してよいということが、理解されるべきである。
【0060】
図に示された例では、双方向LSTMに基づくRNNが利用される。RNNは、ネットワーク内のセルがラウンドロビン方式で接続され、RNNの各ステップで、現在の出力を次の入力として使用する、ニューラル・ネットワークである。RNNは、一般に従来技術において知られており、入力シーケンスに使用される。LSTMモデルは、複雑なパターンおよび長いシーケンスを使用して十分に機能することが証明されているRNNの一種である。LSTMに基づくRNNは、一般に知られているが、本発明の方法でフィッシング抽出通信を識別するように構成されておらず、適応されてもいない。
【0061】
さらに、そのようなLSTMに基づくRNNをフィッシング抽出通信の識別に適用することにおける課題は、ターゲットにされた実体が、そのようなフィッシング・キャンペーンに応答して、フィッシング攻撃を認識し、攻撃者を妨害しようとして、偽の情報またはランダムなデータを提供することがあるということである。偽の情報がランダムな文字列または他のテキストから取られた長い文節であるため、この偽の情報は、実際の盗まれるPIの構造に従わない。この問題を克服するために、機械学習モデル220は、入力シーケンスの反転されたコピーを使用する双方向LSTMアーキテクチャを実装する。双方向LSTMを含むことによって、文法が、前方および後方の2回学習されると同時に、ランダムな文字列が学習されることも認識されることもないため、メッセージ(ランダムな文字列)の残りの部分にわたって、構造(例えば、フィッシング抽出通信文法)の認識を強化する。さらに、例えば、500個のランダムな文字の文字列が、わずか4つの文字「C500」にエンコードされるため、エンコーディングは、多くの場合、ランダムなデータを圧縮するのに役立ち、したがって、ランダムな文字の影響を減らす。
【0062】
図に示された例示的な実装では、構造トークン215の第1の部分が、LSTMセル222の順方向シーケンスの最初のLSTMセル222およびLSTMセル222の逆方向シーケンスの最後のLSTMセル224に入力されるように、構造トークン215が機械学習モデル220に入力される。構造トークン215のシーケンスに従って、他の部分が、順方向シーケンスおよび逆方向シーケンスのLSTMセルに同様に入力される。例えば、入力構造トークンが「C2SC6L」である場合、LSTMセルは、第1の入力x0が「C」、第2の入力x1が「2」、第3の入力x2が「S」などになるように、一度に1つの入力を処理する。例示的な実装では、各入力xiは、14個の値C、N、S、L、0、1、2、3、4、5、6、7、8、または9のうちの1つである。新しい入力xiごとに、入力、および前の入力x(i-1)に対するRNNの出力が、RNNに供給される。したがって、600の長さの入力構造トークンの場合、RNNのLSTMが600回通過される。RNN220の各出力は、LSTMのメモリ・サイズ(例えば、図に示された例では、256次元のベクトル)に基づく。所与の完全な入力構造トークンに対する実際の最終的な出力は、最後の入力文字に対するRNNの出力であり、図に示された例では、やはり256次元のベクトルである。
【0063】
したがって、機械学習モデル220は、構造トークン215に対して動作し、LSTMセルのサイズに対応するサイズ(例えば、256、ただしこれより大きいか、または小さくてよい)のベクトル出力を生成する。サイズが大きいほど、より強力であるが、トレーニングするのにより長い時間がかかる。基本的に、機械学習モデル220のトレーニング中に、LSTMセル222は、フィッシング抽出通信を表す構造トークンの種々のコンテンツ要素間の関係、およびコンテンツ要素のパターンを学習する。すなわち、教師あり機械学習動作を使用して、既定のレベルの誤差または減少(損失)を有する入力通信の正しい分類を生成するように、2値分類器240によって生成される予測を改善するために、種々のLSTMセルの動作パラメータ(例えば、ノードの重みなど)が反復的方法で変更される。2値分類器240および機械学習モデル220は、2値分類器240によって生成された最終的な出力内の誤差が、機械学習トレーニングのための推進要因になるように、単一のモデルとして一緒にトレーニングされてよく、誤差の逆伝搬が、機械学習モデル(例えば、RNN220および2値分類器240)の動作パラメータのうちの1つまたは両方の動作パラメータを変更するために使用される。
【0064】
したがって、基本的に、機械学習モデル220は、機械学習モデル220および2値分類器240が正しい分類を生成したかどうかを示す機械学習のフィードバックまたは逆伝搬を使用することによって、構造トークン内のパターンを認識し、入力通信がフィッシング抽出通信である確率を決定するように、2値分類器240と組み合わせてトレーニングされる。不正な分類が生成された場合、フィードバックが、2値分類器240によって生成された確率における損失または誤差を最小限に抑えるように、機械学習モデル220および2値分類器240の動作パラメータの変更を引き起こす。このプロセスは、損失または誤差が、既定のレベルの損失/誤差以下になるまで反復的に実行され、既定のレベルの損失/誤差以下になった時点で、機械学習モデル220および2値分類器240が収束したか、またはトレーニングされたということが決定される。この時点で、機械学習モデル220内のLSTMセルの各々に対して設定された動作パラメータ、および2値分類器240の動作パラメータの組合せに基づいて、機械学習モデル220および2値分類器240は、構造トークン内の要素のどの関係およびパターン(例えば、認識されたフィッシング抽出通信文法)がフィッシング抽出通信を表すかを学習した。
【0065】
図に示された例では双方向LSTMに基づくRNNである機械学習モデル220は、構造トークン215内のパターンの存在を示す異なる値を表すそれぞれ複数のベクトル・スロットを含んでいる2つの出力ベクトルを生成する。1つの実施形態例では、出力ベクトルは、順方向LSTMパスについて1つの出力ベクトル(LSTM出力)、および逆方向LSTMパスについてもう1つの出力ベクトル(LSTM反転出力)を含む。これらのベクトルの各々は、1つの実装では、前述したように、256次元のサイズである。機械学習モデル220の出力は、ベクトルを一緒に、プリプロセッサ210によって入力通信から取り出されたコンテンツの特徴217と連結する、連結論理230に提供される。
【0066】
コンテンツの特徴217は、PECIエンジン200の性能を改善するために使用される1つまたは複数のコンテンツ特徴指標を含む。すなわち、ほとんどの場合、フィッシング抽出通信の構造トークンは、標準的な(正常な)通信とは異なるが、フィッシング抽出通信に類似する構造トークンを含んでいる複数の誤検出が存在する可能性がある。例えば、
図3は、識別されたフィッシング抽出通信文法に基づいて、フィッシング抽出通信にかなり類似していると見なされ得る、正常な通信の例である。
図3に示すように、カレンダー・リマインダー電子メール通信が、ヘッダー、フィールド名、およびセパレータなども含んでいるフィッシング抽出電子メールに類似する構造を使用しており、この構造は、機械学習モデル220および分類器240がカレンダー・リマインダー電子メールをフィッシング抽出電子メールとして誤って分類することを引き起こすことがある。そのような誤検出を減らすために、コンテンツの特徴217のコンテンツ特徴指標が、誤検出を実際のフィッシング抽出通信と区別するために使用され得る。
【0067】
コンテンツ特徴指標217は、多くの異なる形態を取ってよく、それらのどの形態も、本発明の思想および範囲に含まれると見なされる。一部の実施形態例では、コンテンツ特徴指標217は、入力通信がフィッシング抽出通信であるかどうかに関して、入力通信の分類において誤検出または検出漏れを区別することにおいて支援できる、入力通信のコンテンツの統計的尺度である。入力通信のコンテンツに基づいてプリプロセッサ210によって生成され得るコンテンツ特徴指標の例は、コンテンツ・エントロピー指標およびテキスト比率指標を含む。コンテンツ・エントロピー指標は、データ・ソースによって生成された情報の不確実性を測定する指標であり、コンテンツで使用される記号の多様性が増すにつれてエントロピーが増加し、例えば、文字列「aaa」のエントロピーは0であり、「abc」のエントロピーは1.58である。エントロピーの値が高いほど、生成された文字列には、より高い不規則性または不確実性が存在する。情報理論におけるエントロピーの概念は、ウィキペディアのWebサイトで参照できる情報理論におけるエントロピーの例示的な定式化と共に、一般に知られている。
【0068】
前述したように、エントロピーは、記号の大きい多様性を使用する文字列に対して、より大きいエントロピー指標値を生成する傾向がある。実施形態例のメカニズムにおけるこの傾向を軽減するために、文字列において使用される記号の数の対数によって、初期エントロピー指標値が正規化される。1つの実施形態例では、エントロピー指標値が、文字列内の記号の数の対数によって割られる。例えば、プリプロセッサ210は、最初に、入力通信のコンテンツを小文字および数字に変換し、次に、前処理されたコンテンツに対して、正規化されたコンテンツのエントロピーが計算される。
【0069】
結果として得られた正規化されたコンテンツのエントロピーは、標準的な(正常な)通信が主に単語(例えば、英単語)で構成され、一方、フィッシング抽出通信が、多くの場合、無意味な語に基づく文字/数字および特殊文字の組合せを含むユーザ名およびパスワードなどの、より高い不確実性を有する盗まれたPIで構成されるため、入力通信がフィッシング抽出通信である可能性があるかどうかに関する別のインジケータを提供する。さらに、フィッシング抽出通信は、フィッシング抽出通信のコンテンツからのPIの自動化された取り出しを容易にするために、非常に多くの構造的特殊文字(英字でも数字でもない)を含む。その結果、フィッシング抽出通信は、標準的な(正常な)通信よりも高いエントロピーを生み出す。したがって、コンテンツ・エントロピー指標が相対的に高い場合、入力通信がフィッシング抽出通信である可能性がより高い。コンテンツ・エントロピー指標のしきい値レベルは、2値分類器240をトレーニングするように実行される機械学習動作を介して学習され得る。
【0070】
テキスト比率指標は、フィッシング抽出通信が、より多くの非数字かつ非文字の記号を使用するという観察に基づく。その結果、フィッシング抽出通信では、数字および文字が、フィッシング抽出通信のコンテンツのうちのより低い割合を占める。したがって、テキスト比率指標が、所与の入力通信に対して、入力通信のコンテンツ全体と相対的な指標内の英数字の割合を測定するように、テキスト比率指標が定義され、プリプロセッサ210によって生成される。より高いテキスト比率指標値は、標準的な(正常な)通信をより示しており、一方、相対的により低いテキスト比率指標値は、フィッシング抽出通信をより示している。やはり、テキスト比率指標のしきい値は、2値分類器240に関して実行される機械学習動作を介して、機械学習され得る。
【0071】
一部の実施形態例では、実施形態例の思想および範囲から逸脱することなく、前述したコンテンツの特徴に加えて、または前述したコンテンツの特徴を置き換えて、他のコンテンツの特徴が使用され得るということが、理解されるべきである。一部の実施形態では、コンテンツの特徴は、統計的尺度である必要はなく、疑わしいヘッダーを含むコンテンツ、疑わしい挨拶文、特定のキーワードなどの、フィッシング抽出通信との高い相関関係を有することが知られている他のコンテンツの特徴であってよい。したがって、プリプロセッサ210による入力通信のコンテンツの構文解析および処理の間に、これらの既知の高い相互関係があるコンテンツの特徴が、入力通信に存在する場合、コンテンツの特徴の値が例えば0に設定されてよく、存在しない場合、1に設定されてよく、存在する場合は、プリプロセッサ210によって、連結論理230に出力され得る。
【0072】
連結論理230は、機械学習モデル220によって出力されたベクトルを、プリプロセッサ210によって取り出されたコンテンツの特徴と連結し、2値分類器240に入力される単一のベクトルを生成するように動作する。1つの実施形態例では、機械学習モデル220の出力ベクトルは、それぞれ256次元を有するベクトルを含む。コンテンツの特徴のベクトル表現は、例えば、コンテンツのエントロピーに関して1つの次元、およびテキストの比率に関して1つの次元を含むが、プリプロセッサ210によって生成された特定のコンテンツの特徴およびコンテンツ特徴指標に応じて、コンテンツの特徴のベクトルが、2つ以上の次元を含んでよいということが理解されるべきである。したがって、1つの例示的な実装では、連結論理230によって生成された単一のベクトル出力は、514次元ベクトル(LSTM出力の256次元、LSTM反転出力の256次元、コンテンツのエントロピーの1次元、およびテキストの比率の1次元)を含んでよい。
【0073】
連結論理230によって生成された単一のベクトル出力は、2値分類器240に入力され、2値分類器240は、単一のベクトル出力に対して動作して、入力通信がフィッシング抽出通信であるかどうかの確率を示す単一の出力確率値(または予測)242を生成する。代替として、確率値ではなく、入力通信がフィッシング抽出通信であるかどうかに関する最終的な決定を示す単一の2進値(例えば、入力通信がフィッシング抽出通信である場合は1、そうでない場合は0)が出力され得る。確率値が出力された場合、この確率値が確率しきい値と比較され、入力通信をフィッシング抽出通信として分類するかどうかを決定してよく、例えば、確率が既定のしきい値以上である場合、入力通信がフィッシング抽出通信として分類される。
【0074】
2値分類器240は、決定木モデル、ランダム・フォレスト・モデル、SVM、ニューラル・ネットワークなどの、任意の種類の既知または今後開発される2値分類器モデルとして実装され得る。一部の実施形態例では、2値分類器240は、機械学習モデル220によって生成されたベクトル出力およびプリプロセッサ210によって生成されたコンテンツの特徴に基づいて、入力通信がフィッシング抽出通信であるかどうかに関する最終的な予測を生み出すために、シグモイド関数を実装する。シグモイド関数は、例えば、2値交差エントロピー損失関数を使用してトレーニングされ得る。
【0075】
2値分類器240の出力242は、応答アクション・コンピューティング・システム250に提供され、応答アクション・コンピューティング・システム250は、この出力に対して動作し、入力通信がフィッシング抽出通信として適切に分類されたということが決定された場合に、応答アクションを実行する。応答アクション・システム250は、実行される望ましい応答アクションに応じて、多くの異なる形態を取ってよい。例えば、応答アクション・システム250は、International Business Machines(IBM)Corporation(ニューヨーク州アーモンク市)によって提供されるQRadar(TM)などの組織向けのSIEM(Security Incident and Event Monitoring)コンピューティング・システムなどの、侵入検出動作または侵入防止動作あるいはその両方を実行するように構成されたコンピューティング・システムであってよい。他の実施形態例では、応答アクション・システム250は、電子通信を容易にするための基盤になるコンピューティング・インフラストラクチャを提供するサービス・プロバイダ(例えば、電子メール・サービス・プロバイダ、インスタント・メッセージ・サービス・プロバイダ、インターネット・サービス・プロバイダなど)などの、サービス・プロバイダのコンピューティング・システムであってよい。場合によっては、応答アクション・システム250は、実施形態例のメカニズムを使用してエンド・ユーザがフィッシング攻撃のターゲットだったことを検出することに応答して、自動的に生成された通知をエンド・ユーザのクライアント・コンピューティング・デバイスに送信する通知コンピューティング・システムであってよい。
【0076】
一部の実施形態例では、入力通信をフィッシング抽出通信として分類することに応答して、2値分類器240からの出力242が、入力通信、あるいはプリプロセッサ210またはPECIエンジン200の他の論理によって入力通信から取り出された入力通信の特定の特徴と共に、応答アクション・システム250に提供され得る。例えば、入力通信がフィッシング抽出通信として分類された場合、送信元アドレス、送信先アドレス、個人情報を収集するために使用されるWebサイトのドメインまたはURLあるいはその両方の識別子、フィッシング抽出通信内の収集された個人情報などが、入力通信から取り出されて、応答アクション・システム250に提供されてよく、または応答アクション・システム250によって、転送された入力通信から取り出され得る。この情報は、1つまたは複数の応答アクションを自動的または半自動的に実行するための基礎として、応答アクション・システム250によって使用され得る。
【0077】
応答アクション・システム250は、望ましい実装に基づいて、種々の異なる応答アクションを実行してよい。例えば、1つの実施形態例では、応答アクション・システム250は、入力通信がフィッシング抽出通信であることを検出することに応答して、入力通信が行き先に達するのを阻止するように動作してよい。一部の実施形態例では、入力通信のソースは、入力通信のコンテンツ/メタデータから識別され、ソースを適切な関係当局(例えば、ドメイン名サーバ・プロバイダなど)に報告するために使用され得る。一部の実装では、PECIエンジン200が、電子メール・サービス・プロバイダなどの通信サービス・プロバイダによって実装されるなどの場合、送信者からのすべての通信は、収集点コンピューティング・システムで受信されることが不可能になるように、ブロックされるか、またはリダイレクトされ得る。さらに他の実施形態例では、応答アクション・システム250は、フィッシング攻撃をドメイン名サービス・プロバイダまたはその他の関係当局に報告してよく、このドメイン名サービス・プロバイダまたはその他の関係当局は、通信のソース(例えば、フィッシング攻撃を実行するために使用されたWebサイト)に関連付けられたドメイン名を一時停止してよく、それによって、実体がWebサイトにアクセスして個人情報を提供するのを防ぐ。フィッシング攻撃を阻止するため、またはさらなるアクションのためにフィッシング攻撃を報告するため、あるいはその両方のための、種々の種類の応答アクションが実行され得る。場合によっては、フィッシング攻撃を阻止するか、または個人情報を収集するために使用されるWebサイトにアクセスする実体の能力を除去するか、あるいはその両方を実行するための応答アクションが、自動的に実行され得る。
【0078】
上記の説明から明らかなように、実施形態例は、多くの異なる種類のデータ処理環境において利用され得る。以下では、実施形態例の態様が実装され得る例示的な環境として、
図4および
図5について説明する。
図4および
図5は単なる例であり、本発明の実施形態の態様が実装され得る環境に関して、どのような限定も主張することも、意味することも意図されていないということが、理解されるべきである。本発明の思想および範囲から逸脱することなく、示された環境に対して多くの変更が行われてよい。
【0079】
図4は、実施形態例の態様が実装され得る例示的な分散データ処理システムの図的表現を示している。分散データ処理システム400は、実施形態例の態様を実装できるコンピュータのネットワークを含んでよい。分散データ処理システム400は、分散データ処理システム400内で一緒に接続されている種々のデバイスとコンピュータの間の通信リンクを提供するために使用される媒体である、少なくとも1つのネットワーク402を含んでいる。ネットワーク402は、ワイヤ、無線通信リンク、または光ファイバ・ケーブルなどの接続を含んでよい。
【0080】
図に示された例では、サーバ404およびサーバ406が、ストレージ・ユニット408と共にネットワーク402に接続されている。加えて、クライアント410、412、および414も、ネットワーク402に接続されている。これらのクライアント410、412、および414は、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータなどであってよい。図に示された例では、サーバ404は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント410、412、および414に提供する。クライアント410、412、および414は、図に示された例では、サーバ404のクライアントである。分散データ処理システム400は、図に示されていない追加のサーバ、クライアント、およびその他のデバイスを含んでよい。
【0081】
図に示された例では、分散データ処理システム400は、相互に通信するための一連のプロトコル(送信制御プロトコル/インターネット・プロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol))を使用する世界全体のネットワークとゲートウェイの集合を表す、ネットワーク402を含むインターネットである。インターネットの中心には、主要なノード間またはホスト・コンピュータ間を接続する高速データ通信ラインのバックボーンがあり、データおよびメッセージをルーティングする多数の民間のコンピュータ・システム、政府機関のコンピュータ・システム、教育機関のコンピュータ・システム、およびその他のコンピュータ・システムで構成されている。当然、分散データ処理システム400は、例えばインターネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)などの、多数の各種ネットワークを含むように実装されてもよい。前述したように、
図4は、本発明の異なる実施形態に対するアーキテクチャの限定ではなく、一例となるよう意図されており、したがって、
図4に示されている特定の要素は、本発明の実施形態例が実装され得る環境に関して限定していると見なされるべきではない。
【0082】
図4に示されているように、コンピューティング・デバイス(例えば、サーバ404)のうちの1つまたは複数は、1つまたは複数の実施形態例に従ってPECIシステム420または応答アクション・システム430あるいはその両方を実装するように、特に構成され得る。コンピューティング・デバイスの構成は、実施形態例に関して本明細書に記載された動作の性能を促進し、出力の生成を容易にするために、アプリケーション固有のハードウェア、ファームウェアなどを提供することを含んでよい。コンピューティング・デバイスの構成は、コンピューティング・デバイスの1つまたは複数のハードウェア・プロセッサに、ソフトウェア・アプリケーションを実行させ、実施形態例に関して本明細書に記載された動作を実行して出力を生成するようにプロセッサを構成するために、1つまたは複数のストレージ・デバイスに格納され、コンピューティング・デバイス(サーバ404など)のメモリに読み込まれるソフトウェア・アプリケーションを提供することを、追加または代替として含んでよい。さらに、実施形態例の思想および範囲から逸脱することなく、アプリケーション固有のハードウェア、ファームウェア、ハードウェア上で実行されるソフトウェア・アプリケーションなどの任意の組合せが使用され得る。
【0083】
これらの方法のうちの1つでコンピューティング・デバイスが構成された後に、コンピューティング・デバイスが、実施形態例のメカニズムを実装するように特に構成された特殊なコンピューティング・デバイスになり、汎用コンピューティング・デバイスではないということが、理解されるべきである。さらに、本明細書において説明されているように、実施形態例のメカニズムの実装は、コンピューティング・デバイスの機能を改善し、フィッシング抽出通信の識別および応答アクションの性能を促進し、ターゲットの実体から個人情報を収集する攻撃者の能力を低下させることによって、フィッシング攻撃およびフィッシング・キャンペーンの成功を最小限に抑える、有用な具体的結果を提供する。
【0084】
図4に関しては、PECIシステム420または応答アクション・システム430あるいはその両方を実装するサーバ(例えば、サーバ404)が、侵入検出システム/侵入防止システム(IDS/IPS)、SIEMシステム、電子通信サービス・プロバイダのサーバ・システム、フィッシング攻撃によってターゲットにされることがある組織に関連付けられたサーバなどであってよいということが、理解されるべきである。さらに、一部の実施形態例では、PECIシステム420または応答アクション・システム430あるいはその両方は、クライアント・ワークステーション自体(例えば、410~414)に実装され得る。PECIシステム420または応答アクション・システム430あるいはその両方が、クラウド・コンピューティング環境内などで、複数のコンピューティング・デバイス(例えば、複数のサーバ・コンピューティング・デバイス)にわたって分散されてよく、PECIシステム420または応答アクション・システム430あるいはその両方が、異なる組織に関連付けられる可能性がある異なるコンピューティング・システム上にあってよいということが、さらに理解されるべきである(例えば、第1の組織が、フィッシング抽出通信を検出する責任を負い、第2の組織が、フィッシング抽出通信の悪影響を軽減するために応答アクションを実行する責任を負う)。
【0085】
一実施形態例では、単に説明の目的で、PECIシステム420および応答アクション・システム430は、同じサーバ・コンピューティング・デバイス404上で提供されると見なされ、サーバ・コンピューティング・デバイス404自体は、フィッシング抽出通信を収集点コンピューティング・デバイスにルーティングするために攻撃者によって使用される通信サービス・プロバイダのサーバ・コンピューティング・デバイス404であってもよい。例えば、上で
図1に関して説明された方法などで、フィッシング・キャンペーンが実行されることがあり、その場合、攻撃者は、サーバ404を使用して、電子メール・サービス・プロバイダを介して電子メール通信を送信することがある。フィッシング電子メールは、受信者がリンクをクリックするか、またはその他の方法でWebサイトにアクセスして、個人情報を入力する(例えば、パスワードを変更するなど)何らかの必要性を示す、有効な実体からの本物の電子メールをエミュレートすることがある。受信者(例えば、クライアント・コンピューティング・デバイス412のユーザ)は、フィッシング電子メールを受信し、受信者のクライアント・コンピューティング・デバイスのWebブラウザ・アプリケーションを、サーバ(サーバ406など)上でホストされているフィッシングWebサイトにリダイレクトするリンクを、クリックすることがある。フィッシングWebサイトは、本物のWebサイトをエミュレートすることがあり、このWebサイトが本物のWebサイトであると思い込んでいるクライアント・コンピューティング・デバイス412のユーザは、ユーザ名、パスワード、アカウント情報などの個人情報を、このWebサイトに入力することがある。次に、フィッシングWebサイトは、電子通信サービス・サーバ404を介して収集コンピューティング・デバイス(例えば、クライアント・コンピューティング・デバイス414)に送信されるフィッシング抽出通信を生成してよい。
【0086】
PECIシステム420は、サーバ404を流れる各電子通信を監視し、評価してよい。拡張性のために、サービスの性能を許容できるレベルに維持するために、受信通信をPECIシステム420または応答アクション・システム430あるいはその両方の複数のインスタンスのうちの適切なインスタンスにルーティングするために提供されたルーティング・メカニズムと共に、これらの複数のインスタンスが存在してよいということが、理解されるべきである。PECIシステム420は、入力通信を受信し、
図2を参照して前述した方法で入力通信に対して動作し、入力通信がフィッシング抽出通信であるかどうかを決定する。入力通信がフィッシング抽出通信である場合、応答アクション・システム430が応答アクションを自動的に実行し、フィッシング攻撃を阻止するか、または報告するか、あるいはその両方を実行してよい。例えば、応答アクション・システム430は、フィッシング抽出通信が行き先(すなわち、収集点コンピューティング・システム414)に達するのを阻止してよく、フィッシング攻撃を適切な関係当局に報告してよい。
【0087】
前述したように、実施形態例のメカニズムは、フィッシング抽出通信を識別し、そのようなフィッシング抽出通信が識別されたときに、応答アクションを実行するための動作を実行するように特に構成されたコンピューティング・デバイスまたはデータ処理システムを利用する。これらのコンピューティング・デバイスまたはデータ処理システムは、本明細書に記載されたシステム/サブシステムのうちの1つまたは複数を実装するように、ハードウェア構成、ソフトウェア構成、またはハードウェア構成とソフトウェア構成の組合せを使用して特に構成された、種々のハードウェア要素を備えてよい。
【0088】
図5は、実施形態例の態様が実装され得る1つの例示的なデータ処理システムのブロック図である。データ処理システム500は、
図4のサーバ404などのコンピュータの一例であり、データ処理システム500において、本明細書に記載された実施形態例の動作、出力、および外部効果を実現するために、本発明の実施形態例のプロセスおよび態様を実装するコンピュータ使用可能なコードまたは命令が、配置されるか、または実行されるか、あるいはその両方が行われてよい。
【0089】
示されている例では、データ処理システム500は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH:north bridge and memory controller hub)502およびサウス・ブリッジおよび入出力(I/O)コントローラ・ハブ(SB/ICH:south bridge and input/output (I/O) controller hub)504を含んでいるハブ・アーキテクチャを採用している。処理ユニット506、メイン・メモリ508、およびグラフィック・プロセッサ510が、NB/MCH502に接続されている。グラフィック・プロセッサ510は、アクセラレーテッド・グラフィックス・ポート(AGP:accelerated graphics port)を介してNB/MCH502に接続され得る。
【0090】
示されている例では、ローカル・エリア・ネットワーク(LAN:local area network)アダプタ512が、SB/ICH504に接続されている。オーディオ・アダプタ516、キーボードおよびマウス・アダプタ520、モデム522、読み取り専用メモリ(ROM:read only memory)524、ハード・ディスク・ドライブ(HDD:hard disk drive)526、CD-ROMドライブ530、ユニバーサル・シリアル・バス(USB:universal serial bus)ポートおよびその他の通信ポート532、ならびにPCI/PCIeデバイス534が、バス538およびバス540を介してSB/ICH504に接続されている。PCI/PCIeデバイスは、例えば、ノートブック・コンピュータ用のイーサネット(R)・アダプタ、アドイン・カード、およびPCカードを含んでよい。PCIはカード・バス・コントローラを使用するが、PCIeはカード・バス・コントローラを使用しない。ROM524は、例えば、フラッシュ基本入出力システム(BIOS:basic input/output system)であってよい。
【0091】
HDD526およびCD-ROMドライブ530は、バス540を介してSB/ICH504に接続されている。HDD526およびCD-ROMドライブ530は、例えば、IDE(integrated drive electronics)またはシリアルATA(SATA:serial advanced technology attachment)インターフェイスを使用してよい。スーパーI/O(SIO:Super I/O)デバイス536が、SB/ICH504に接続され得る。
【0092】
オペレーティング・システムが、処理ユニット506上で実行される。オペレーティング・システムは、
図5のデータ処理システム500内の種々のコンポーネントを調整して制御する。クライアントとして、オペレーティング・システムは、Microsoft(R)Windows(R) 10などの市販のオペレーティング・システムであってよい。Java(TM)プログラミング・システムなどのオブジェクト指向プログラミング・システムが、オペレーティング・システムと共に実行されてよく、データ処理システム500上で実行されているJava(TM)プログラムまたはアプリケーションからのオペレーティング・システムに対する呼び出しを提供する。
【0093】
サーバとして、データ処理システム500は、例えば、Advanced Interactive Executive(AIX(R))オペレーティング・システムまたはLINUX(R)オペレーティング・システムを実行するIBM eServer(TM)System p(R)コンピュータ・システム、Power(TM)プロセッサに基づくコンピュータ・システムなどであってよい。データ処理システム500は、処理ユニット506内で複数のプロセッサを含んでいる対称型マルチプロセッサ(SMP:symmetric multiprocessor)システムであってよい。代替として、シングル・プロセッサ・システムが採用され得る。
【0094】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムの命令が、HDD526などのストレージ・デバイスに配置され、処理ユニット506によって実行するためにメイン・メモリ508に読み込まれてよい。本発明の実施形態例のプロセスは、コンピュータ使用可能なプログラム・コードを使用して、処理ユニット506によって実行されてよく、このプログラム・コードは、例えばメイン・メモリ508、ROM524などのメモリ内、または例えば1つまたは複数の周辺機器526および530内に、配置され得る。
【0095】
図5に示されているように、バス538またはバス540などのバス・システムは、1つまたは複数のバスから成ってよい。当然ながら、バス・システムは、通信ファブリックまたは通信アーキテクチャに接続された異なるコンポーネントまたはデバイス間のデータの転送を提供する任意の種類の通信ファブリックまたは通信アーキテクチャを使用して、実装され得る。
図5のモデム522またはネットワーク・アダプタ512などの通信ユニットは、データの送受信に使用される1つまたは複数のデバイスを含んでよい。メモリは、例えば、メイン・メモリ508、ROM524、または
図5のNB/MCH502において見られるようなキャッシュであってよい。
【0096】
前述したように、一部の実施形態例では、実施形態例のメカニズムは、アプリケーション固有のハードウェア、ファームウェアなど、処理ユニット506などの1つまたは複数のハードウェア・プロセッサによって実行するためにHDD526などのストレージ・デバイスに格納され、メイン・メモリ508などのメモリに読み込まれるアプリケーション・ソフトウェアなどとして、実装され得る。そのため、
図5に示されているコンピューティング・デバイスは、実施形態例のメカニズムを実装するように特に構成され、PECIシステムまたは応答アクション・システムあるいはその両方に関して本明細書に記載された動作を実行し、出力を生成するように特に構成される。
【0097】
当業者は、
図4および
図5のハードウェアが実装に依って変わってよいということを、理解するであろう。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブなどの、その他の内部ハードウェアまたは周辺機器が、
図4および
図5に示されているハードウェアに加えて、またはそれらのハードウェアの代わりに、使用され得る。また、実施形態例のプロセスは、本発明の思想および範囲から逸脱することなく、前述したSMPシステム以外のマルチプロセッサ・データ処理システムに適用され得る。
【0098】
さらに、データ処理システム500は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話またはその他の通信デバイス、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)などを含む、複数の異なるデータ処理システムのいずれかの形態を取ってよい。一部の例では、データ処理システム500は、例えばオペレーティング・システム・ファイルまたはユーザによって生成されたデータあるいはその両方を格納するために、不揮発性メモリを提供するようにフラッシュ・メモリを使用して構成された、ポータブル・コンピューティング・デバイスであってよい。基本的に、データ処理システム500は、アーキテクチャの限定なしで、任意の既知のデータ処理システムまたは今後開発されるデータ処理システムであってよい。
【0099】
図6は、一実施形態例に従ってフィッシング抽出通信の識別を実行する場合の、PECIシステムの例示的な動作を概説するフローチャートである。
図6に示されているように、この動作は、PECIシステムが入力通信を受信することから開始する(ステップ610)。入力通信が、PECIシステムのプリプロセッサによって構文解析されて処理され、構造トークン、および一部の実施形態例では、1つまたは複数のコンテンツの特徴を取り出す(ステップ620)。構造トークンが、トレーニングされた機械学習モデルに入力される(ステップ630)。トレーニングされた機械学習モデルが、学習されたフィッシング抽出通信文法およびそれらの関係に基づいて構造トークンを処理し、1つまたは複数のベクトル出力を生成する(ステップ640)。トレーニングされた機械学習モデルによって生成された1つまたは複数のベクトル出力が、1つまたは複数のコンテンツの特徴と連結され、単一のベクトル出力を生成する(ステップ650)。この単一のベクトル出力が、PECIシステムの2値分類器に入力され、2値分類器は、単一のベクトル出力に対して動作し、入力通信がフィッシング抽出通信であるかどうかの予測を生成する(ステップ660)。この予測が、応答アクション・コンピューティング・システムに入力され、応答アクション・コンピューティング・システムが、予測に対して動作し、応答アクションを実行する(ステップ670)。その後、動作が終了する。
【0100】
したがって、実施形態例は、フィッシング抽出通信を自動的に識別し、そのようなフィッシング抽出通信が識別された場合に、自動化された応答アクションを実行するための、以前はコンピューティング・システムに存在しなかった新しい機能を実現する、改善されたコンピューティング・ツールを提供する。実施形態例は、電子通信の構造およびコンテンツを評価し、構造およびコンテンツがフィッシング抽出通信を示すかどうかを判定するために、コンピュータに基づく機械学習および人工知能を採用する。機械学習モデルは、識別されたフィッシング抽出通信文法に基づいて、構造パターンを認識するようにトレーニングされる。さらに、機械学習モデルは、コンテンツのエントロピーおよびテキストの比率などのコンテンツの特徴と共に、そのような構造パターンを評価し、入力通信がフィッシング抽出通信である確率を決定するようにトレーニングされる。そのような確率に基づいて、入力通信がフィッシング抽出通信であるかどうかに関して、入力通信の最終的な分類が行われ、次に、この分類が応答アクション・システムに入力され、応答アクション・システムが、応答アクションを自動的に実行し、フィッシング攻撃を阻止するか、または報告するか、あるいはその両方を実行する。
【0101】
前述したように、実施形態例が、完全にハードウェアである実施形態、完全にソフトウェアである実施形態、またはハードウェアとソフトウェアの両方の要素を含んでいる実施形態の形態を取ってよいということが、理解されるべきである。1つの実施形態例では、実施形態例のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されない、ソフトウェアまたはプログラム・コードにおいて実装される。
【0102】
プログラム・コードの格納または実行あるいはその両方を行うのに適したデータ処理システムは、例えばシステム・バスなどの通信バスを介して直接的または間接的にメモリ素子に結合された、少なくとも1つのプロセッサを含む。メモリ素子は、プログラム・コードの実際の実行時に使用されるローカル・メモリと、バルク・ストレージと、実行時にバルク・ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードを一時的に格納するキャッシュ・メモリとを、含むことができる。メモリは、ROM、PROM、EPROM、EEPROM、DRAM、SRAM、フラッシュ・メモリ、半導体メモリなどを含むが、これらに限定されない、種々の種類であってよい。
【0103】
入出力デバイスまたはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらに限定されない)は、直接的に、あるいは介在する有線もしくは無線I/Oインターフェイスもしくはコントローラまたはその両方などを介して、システムに結合され得る。I/Oデバイスは、従来のキーボード、ディスプレイ、ポインティング・デバイスなど以外の、例えば、スマートフォン、タブレット・コンピュータ、タッチ・スクリーン・デバイス、音声認識デバイスなどを含むが、これらに限定されない、有線または無線接続を介して結合された通信デバイスなどの、多くの異なる形態を取ってよい。任意の既知のI/Oデバイスまたは今後開発されるI/Oデバイスが、実施形態例の範囲に含まれるよう意図されている。
【0104】
ネットワーク・アダプタがシステムに結合され、介在するプライベート・ネットワークまたはパブリック・ネットワークを介して、データ処理システムを、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるようにしてもよい。モデム、ケーブル・モデム、およびイーサネット(R)・カードは、有線通信に現在使用可能なネットワーク・アダプタのうちの、ごくわずかの種類にすぎない。802.11 a/b/g/n無線通信アダプタ、Bluetooth無線アダプタなどを含むが、これらに限定されない、無線通信に基づくネットワーク・アダプタが利用されてもよい。任意の既知のネットワーク・アダプタまたは今後開発されるネットワーク・アダプタが、本発明の思想および範囲に含まれるよう意図されている。
【0105】
本発明の説明は、例示および説明の目的で提示されており、網羅的であるよう意図されておらず、開示された形態での発明に限定されない。説明された実施形態の範囲から逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本発明の原理、実際的な適用を最も適切に説明するため、およびその他の当業者が、企図された特定の用途に適するような種々の変更を伴う多様な実施形態に関して、本発明を理解できるようにするために、実施形態が選択されて説明された。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。