(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-02
(45)【発行日】2024-05-14
(54)【発明の名称】IoTにおけるプライバシを保護する異常検知のための方法
(51)【国際特許分類】
G06F 11/34 20060101AFI20240507BHJP
G06F 11/07 20060101ALI20240507BHJP
G16Y 40/20 20200101ALI20240507BHJP
【FI】
G06F11/34 152
G06F11/07 151
G06F11/07 140A
G16Y40/20
(21)【出願番号】P 2022529623
(86)(22)【出願日】2020-11-04
(86)【国際出願番号】 IB2020060342
(87)【国際公開番号】W WO2021105799
(87)【国際公開日】2021-06-03
【審査請求日】2023-04-24
(32)【優先日】2019-11-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ソセアヌ、オムリ
(72)【発明者】
【氏名】グリーンバーグ、レフ
(72)【発明者】
【氏名】アハロニ、エフード
(72)【発明者】
【氏名】アディール、アロン
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2016-163352(JP,A)
【文献】米国特許出願公開第2019/0132341(US,A1)
【文献】瀧本 達也,IoT機器に特化したアノマリ型侵入検知システムの提案,コンピュータセキュリティシンポジウム2018論文集,一般社団法人情報処理学会,2018年10月15日,Vol.2018,No.2,pp.443-447
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
G06F 11/07
G06F 21/55
H04L 43/00
G16Y 40/20
(57)【特許請求の範囲】
【請求項1】
プロセッサと、前記プロセッサによってアクセス可能なメモリと、前記メモリに記憶され、かつ前記プロセッサによって実行可能であるコンピュータ・プログラム命令とを備えるコンピュータ
・システムにおいて実施される方法であって、
前記コンピュータ・システムにおいて、少なくとも1つのデバイスに向かう複数のメッセージ、および少なくとも1つのデバイスからの複数のメッセージを収集すること、
前記コンピュータ・システムにおいて、前記収集された複数のメッセージからメタデータ特徴を抽出すること、
前記コンピュータ・システムにおいて、時間枠を生成すること、
前記コンピュータ・システムにおいて、前記時間枠中に存在する前記抽出されたメタデータ特徴に基づいて、さらなる特徴を決定すること、
前記コンピュータ・システムにおいて、前記収集された複数のメッセージに基づいて、前記少なくとも1つのデバイスの振舞いパターンを検知すること、
前記コンピュータ・システムにおいて、前記決定されたさらなる特徴と前記時間枠中に存在する前記検知された振舞いパターンをクラスタ化すること、および
前記コンピュータ・システムにおいて、前記クラスタ化された決定されたさらなる特徴と前記検知された振舞いパターンを使用して少なくとも1つの異常、または異常の少なくとも1つのタイプを検知すること
を含む方法。
【請求項2】
前記抽出されたメタデータ特徴が、各メッセージに関連する前記少なくとも1つのデバイスのID、各メッセージのメッセージ・サイズ、各メッセージの通信方向、および各メッセージの通信時刻のうちの少なくとも1つを含み、
前記さらなる特徴が、デバイスがメッセージを送信する間隔もしくは頻度、およびメッセージの平均周期もしくは平均頻度のうちの少なくとも1つを含む時間的態様と、曜日、時刻、および1時間内の区分のうちの少なくとも1つを含む時間階層と、メッセージ長のパターン、メッセージ・タイプ、特定のデバイスのデバイスID、デバイスのタイプ、およびデバイスのクラスのうちの少なくとも1つを含むメッセージのシーケンスとのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記時間枠のサイズが、前記少なくとも1つのメッセージの通信の頻度に基づいて、かつ単一の時間枠内で多数のメッセージが収集されることを可能にすべく選択される、請求項2に記載の方法。
【請求項4】
前記コンピュータ・システムにおいて、複数のデバイスに向かう複数のメッセージ、および複数のデバイスからの複数のメッセージを収集すること、
前記コンピュータ・システムにおいて、前記収集された複数のメッセージに基づいて、少なくとも1つのタイプのデバイスの振舞いパターンを検知すること、および
前記コンピュータ・システムにおいて、前記少なくとも1つのタイプのデバイスの前記検知された振舞いパターンを使用して少なくとも1つの異常を検知すること
をさらに含む、請求項2に記載の方法。
【請求項5】
前記時間枠中に存在する抽出されたメタデータ特徴を決定することが、前記時間枠中に前記少なくとも1つのデバイスに向かうメッセージ、および前記少なくとも1つのデバイスからのメッセージの数をカウントすることと、前記時間枠中の異なるメッセージ・サイズのヒストグラムを生成することのうちの少なくとも1つを含む、請求項3に記載の方法。
【請求項6】
前記クラスタ化することが、K平均クラスタ化と階層クラスタ化のうちの少なくとも1つを含む、請求項5に記載の方法。
【請求項7】
少なくとも1つの異常を前記検知することが、
前記コンピュータ・システムにおいて、前記少なくとも1つのデバイスおよびデバイスのクラスタの履歴上のメッセージ・サイズ・ヒストグラムの、混合正規分布を有するモデルを構築し、メッセージのサイズが前記モデルの前記混合正規分布から逸脱するとき、異常を検知すること、
前記コンピュータ・システムにおいて、前記少なくとも1つのデバイスおよびデバイスのクラスタの履歴上のメッセージ・カウントの、正規分布を有するモデルを構築し、前記少なくとも1つのデバイスのメッセージ・カウントが前記モデルの前記正規分布を逸脱するとき、異常を検知すること、および、
前記コンピュータ・システムにおいて、前記少なくとも1つのデバイス、デバイス・タイプ、およびデバイスのクラスタの履歴上のメッセージ・サイズ・シーケンスに基づいて、メタデータ特徴のシーケンス・モデルを構築し、前記少なくとも1つのデバイスのメッセージのシーケンスに基づいて異常を検知することのうちの少なくとも1つを含む、請求項6に記載の方法。
【請求項8】
プロセッサと、
前記プロセッサによってアクセス可能なメモリと、
前記メモリに記憶されたコンピュータ・プログラム命令であって、
少なくとも1つのデバイスに向かう複数のメッセージ、および少なくとも1つのデバイスからの複数のメッセージを収集すること、
前記収集された複数のメッセージからメタデータ特徴を抽出すること、
時間枠を生成すること、
前記時間枠中に存在する前記抽出されたメタデータ特徴に基づいて、さらなる特徴を決定すること、
前記収集された複数のメッセージに基づいて、前記少なくとも1つのデバイスの振舞いパターンを検知すること、
前記決定されたさらなる特徴と前記時間枠中に存在する前記検知された振舞いパターンをクラスタ化すること、および
前記クラスタ化された決定されたさらなる特徴と前記検知された振舞いパターンを使用して少なくとも1つの異常、または異常の少なくとも1つのタイプを検知すること
を実行するように前記プロセッサによって実行可能である、前記コンピュータ・プログラム命令と
を備えるシステム。
【請求項9】
プロセッサに、
少なくとも1つのデバイスに向かう複数のメッセージ、および少なくとも1つのデバイスからの複数のメッセージを収集すること、
前記収集された複数のメッセージからメタデータ特徴を抽出すること、
時間枠を生成すること、
前記時間枠中に存在する前記抽出されたメタデータ特徴に基づいて、さらなる特徴を決定すること、
前記収集された複数のメッセージに基づいて、前記少なくとも1つのデバイスの振舞いパターンを検知すること、
前記決定されたさらなる特徴と前記時間枠中に存在する前記検知された振舞いパターンをクラスタ化すること、および
前記クラスタ化された決定されたさらなる特徴と前記検知された振舞いパターンを使用して少なくとも1つの異常、または異常の少なくとも1つのタイプを検知すること
を
実行させるためのコンピュータ・プログラ
ム。
【請求項10】
請求項9に記載のコンピュータ・プログラムを記憶する記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、向上した検知精度およびプライバシの保護を提供するIoTデータ・トラフィックにおいてサイバ・セキュリティ事象を検知する技術に関する。
【背景技術】
【0002】
より多くのモノのインターネット(IoT)デバイスがウェブに接続されるにつれ、サイバ・セキュリティ事象を検知する必要性が、より顕著となる。IoTデバイスによるネットワーク・トラフィックは、いくつかの独特の特徴を有する。これらの特徴を活用することは、防御者が異常な逸脱を検知することを可能にする。例えば、一部の従来の技術は、データ、およびデータのコンテクストを使用してセンサから生成されたデータにおいて異常を検知することが可能である。従来の技術は、データをフィルタリングすること、そのデータに対して統計解析を実行すること、およびそのデータを搬送するパケットからのヘッダ・フィールドを解析することが可能である。しかし、そのような従来の技術は、検知の精度の点で、またプライバシの保護の点においても、依然として改善の余地を残している。
【0003】
したがって、向上した検知精度およびプライバシの保護を提供するIoTデータ・トラフィックにおいてサイバ・セキュリティ事象を検知する技術の必要性が、生じる。
【発明の概要】
【0004】
実施形態は、向上した検知精度およびプライバシの保護を提供するIoTデータ・トラフィックにおいてサイバ・セキュリティ事象を検知する技術を提供することが可能である。実施形態は、メタデータ情報をモデル化し、類似した振舞いをするデバイスをクラスタ化すべく、曜日、時刻、および1時間内の区分などの時間的階層を使用してよい。実施形態は、厳密な振舞いのモデル化を可能にすべく、限定された、個別のメッセージ・サイズを使用してよい。実施形態は、より精度の高い異常検知をもたらすべく、メッセージ・サイズの高い分散のガウス分布ではなく、比較的少数の別々のメッセージ・サイズ(各々が、低い分散のメッセージ・サイズ分布によって囲まれた)を識別してよい。また、これらのデバイスのタスクに非常に特化した性質が、防御者が、そこからの逸脱を異常と見なしてよい個別のシーケンスを識別することを可能にもする。
【0005】
例えば、或る実施形態において、方法は、プロセッサと、プロセッサによってアクセス可能なメモリと、メモリに記憶され、かつプロセッサによって実行可能であるコンピュータ・プログラム命令とを備えるコンピュータにおいて実施されてよく、方法は、コンピュータ・システムにおいて、少なくとも1つのデバイスに向かう複数のメッセージ、および少なくとも1つのデバイスからの複数のメッセージを収集すること、コンピュータ・システムにおいて、収集された複数のメッセージからメタデータ特徴を抽出すること、コンピュータ・システムにおいて、時間枠を生成すること、コンピュータ・システムにおいて、時間枠中に存在する抽出されたメタデータ特徴に基づいて、さらなる特徴を決定すること、コンピュータ・システムにおいて、収集された複数のメッセージに基づいて、その少なくとも1つのデバイスの振舞いパターンを検知すること、コンピュータ・システムにおいて、決定されたさらなる特徴と時間枠中に存在する検知された振舞いパターンをクラスタ化すること、およびコンピュータ・システムにおいて、クラスタ化された決定されたさらなる特徴と検知された振舞いパターンを使用して少なくとも1つの異常、または異常の少なくとも1つのタイプを検知することを含んでよい。
【0006】
実施形態において、抽出されたメタデータ特徴は、各メッセージに関連する少なくとも1つのデバイスのID、各メッセージのメッセージ・サイズ、各メッセージの通信方向、および各メッセージの通信時刻のうちの少なくとも1つを含んでよく、さらなる特徴は、デバイスがメッセージを送信する間隔もしくは頻度、およびメッセージの平均周期もしくは平均頻度のうちの少なくとも1つを含む時間的態様と、曜日、時刻、および1時間内の区分のうちの少なくとも1つを含む時間階層と、メッセージ長のパターン、メッセージ・タイプ、特定のデバイスのデバイスID、デバイスのタイプ、およびデバイスのクラスのうちの少なくとも1つを含むメッセージのシーケンスとのうちの少なくとも1つを含む。時間枠のサイズは、少なくとも1つのメッセージの通信の頻度に基づいて、かつ単一の時間枠内で多数のメッセージが収集されることを可能にすべく選択されてよい。方法は、コンピュータ・システムにおいて、複数のデバイスに向けられた複数のメッセージ、および複数のデバイスからの複数のメッセージを収集すること、コンピュータ・システムにおいて、収集された複数のメッセージに基づいて、少なくとも1つのタイプのデバイスの振舞いパターンを検知すること、およびコンピュータ・システムにおいて、少なくとも1つのタイプのデバイスの検知された振舞いパターンを使用して少なくとも1つの異常を検知することをさらに含んでよい。時間枠中に存在する抽出されたメタデータ特徴を決定することは、時間枠中に少なくとも1つのデバイスに向かうメッセージの数、および少なくとも1つのデバイスからのメッセージの数をカウントすることと、時間枠中の異なるメッセージ・サイズのヒストグラムを生成することのうちの少なくとも1つを含んでよい。クラスタ化することは、K平均クラスタ化と階層クラスタ化のうちの少なくとも1つを含む。少なくとも1つの異常を検知することは、コンピュータ・システムにおいて、少なくとも1つのデバイスおよびそのクラスタの履歴上のメッセージ・サイズ・ヒストグラムの、混合正規分布を有するモデルを構築し、メッセージのサイズがモデルの混合正規分布から逸脱するとき、異常を検知すること、コンピュータ・システムにおいて、少なくとも1つのデバイスおよびそのクラスタの履歴上のメッセージ・カウントの、正規分布を有するモデルを構築し、少なくとも1つのデバイスのメッセージ・カウントがモデルの正規分布から逸脱するとき、異常を検知すること、およびコンピュータ・システムにおいて、少なくとも1つのデバイスおよびそのクラスタの履歴上のメッセージ・サイズ・シーケンスに基づいて、メタデータ特徴のシーケンス・モデルを構築し、少なくとも1つのデバイスのメッセージのシーケンスに基づいて異常を検知することのうちの少なくとも1つを含んでよい。
【0007】
或る実施形態において、システムは、プロセッサと、プロセッサによってアクセス可能なメモリと、メモリに記憶されたコンピュータ・プログラム命令であって、少なくとも1つのデバイスに向かう複数のメッセージ、および少なくとも1つのデバイスからの複数のメッセージを収集すること、収集された複数のメッセージからメタデータ特徴を抽出すること、時間枠を生成すること、時間枠中に存在する抽出されたメタデータ特徴に基づいて、さらなる特徴を決定すること、収集された複数のメッセージに基づいて、その少なくとも1つのデバイスの振舞いパターンを検知すること、決定されたさらなる特徴と時間枠中に存在する検知された振舞いパターンをクラスタ化すること、およびクラスタ化された決定されたさらなる特徴と検知された振舞いパターンを使用して少なくとも1つの異常、または異常の少なくとも1つのタイプを検知することを実行するようにプロセッサによって実行可能であるコンピュータ・プログラム命令とを備えてよい。
【0008】
或る実施形態において、コンピュータ・プログラム製品は、プログラム命令を実体化している非一過性のコンピュータ可読ストレージを備えてよく、プログラム命令は、コンピュータに、コンピュータ・システムにおいて、少なくとも1つのデバイスに向かう複数のメッセージ、および少なくとも1つのデバイスからの複数のメッセージを収集すること、コンピュータ・システムにおいて、収集された複数のメッセージからメタデータ特徴を抽出すること、コンピュータ・システムにおいて、時間枠を生成すること、コンピュータ・システムにおいて、時間枠中に存在する抽出されたメタデータ特徴に基づいて、さらなる特徴を決定すること、コンピュータ・システムにおいて、収集された複数のメッセージに基づいて、その少なくとも1つのデバイスの振舞いパターンを検知すること、コンピュータ・システムにおいて、決定されたさらなる特徴と時間枠中に存在する検知された振舞いパターンをクラスタ化すること、およびコンピュータ・システムにおいて、クラスタ化された決定されたさらなる特徴と検知された振舞いパターンを使用して少なくとも1つの異常、または異常の少なくとも1つのタイプを検知することを含んでよい方法を実行させるようにコンピュータによって実行可能である。
【0009】
本発明の詳細は、その構造と動作の両方に関して、添付の図面を参照して最もよく理解されることが可能であり、図面において、同様の参照符号および指定は、同様の要素を指す。
【図面の簡単な説明】
【0010】
【
図1】本システムおよび本方法の実施形態が実施されてよいモノのインターネット(IoT)システムを例示する図である。
【
図2】本技術の実施形態によるIoT異常検知のプロセスを例示するフローチャートである。
【
図3】本システムおよび本方法の実施形態によるIoTメッセージ・ストリームを例示する図である。
【
図4】本明細書において説明される実施形態に含まれるプロセスが実施されてよいコンピュータ・システムを例示するブロック図である。
【発明を実施するための形態】
【0011】
実施形態は、向上した検知精度およびプライバシの保護を提供するIoTデータ・トラフィックにおいてサイバ・セキュリティ事象を検知する技術を提供することが可能である。実施形態は、メタデータ情報をモデル化し、類似した振舞いをするデバイスをクラスタ化すべく、曜日、時刻、および1時間内の区分などの時間的階層を使用してよい。実施形態は、厳密な振舞いのモデル化を可能にすべく、限定された、個別のメッセージ・サイズを使用してよい。実施形態は、より精度の高い異常検知をもたらすべく、メッセージ・サイズの高い分散のガウス分布ではなく、比較的少数の別々のメッセージ・サイズ(各々が、低い分散のメッセージ・サイズ分布によって囲まれた)を識別してよい。また、これらのデバイスのタスクに非常に特化した性質が、防御者が、そこからの逸脱を異常と見なしてよい個別のシーケンスを識別することを可能にもする。
【0012】
モノのインターネット(IoT)システム100の例示的なブロック図が、
図1に示される。この実施例において、複数のIoTデバイス104A~Lが、インターネット102を介して通信可能に接続される。IoTデバイス104A~Lは、車両104A、音楽およびその他のオーディオ・デバイス104B、カメラ104C、電話、スマートフォン、タブレット、およびその他の通信およびコンピューティング・デバイス104D、クロックおよびその他のタイミング・デバイス104E、ツール104F、医療デバイス104G、器具104H、健康デバイス104I、気象センサ104J、その他のセンサ104K、およびその他のデバイス104Lなどのデバイスを含んでよい。IoTデバイス104A~Lは、インターネット接続された任意のデバイス106と通信し、デバイス106は、その他のIoTデバイス、クライアント・コンピュータ・システム、サーバ・コンピュータ・システム、クラウド、その他を含む、インターネット102に通信可能に接続されている。サイバ・セキュリティ監視システム108が、IoTデバイス104A~Lに向かう通信トラフィック、およびIoTデバイス104A~Lからの通信トラフィックを監視してよく、サイバ・セキュリティ事象を検知してよく、それに応答してよい。例えば、サイバ・セキュリティ監視システム108は、データ・トラフィック異常に基づいてサイバ・セキュリティ事象を検知してよい。
【0013】
実施形態は、IoTデバイス104A~Lに向かう通信メッセージ、およびIoTデバイス104A~Lからの通信メッセージのメタデータまたは他の任意の非プライベート部分、あるいはその組合せなどの各メッセージの任意の非プライベート部分に基づいて、IoT異常検知を提供してよい。実施形態において、メッセージは、任意の公開または専有の、標準またはカスタムのメッセージ・プロトコルまたはメッセージ・フォーマットを利用してよい。例えば、メッセージは、IETFの制約付きアプリケーション・プロトコル(Constrained Application Protocol)、ZeroMQ、MQTT、その他を利用してよい。
【0014】
実施形態において、メッセージの非プライベート部分、例えば、IoTメッセージのメタデータなどの直接に収集される特徴が、収集されてよい。そのようなメタデータは、例えば、メッセージの通信の日付もしくは時刻、あるいはその両方、メッセージ・サイズもしくはメッセージ長、IoTデバイスのID、カメラ、センサ、その他などのデバイス・タイプ、通信方向、その他を含んでよい。プライベート・デバイスIDの場合、プライベートIDのハッシュ、または別の一意の、ただし、匿名の識別子が、生成されてよい。このことは、プライベート情報をプライベートに保つが、非プライベート・ハッシュまたは他の識別子を使用して各デバイスの一意の識別を可能にする。さらなる特徴が、収集された特徴から決定されてよく、または計算されてよい。例えば、デバイスがメッセージを送信する間隔もしくは頻度、メッセージの平均周期もしくは平均頻度などの時間的態様と、メッセージ長のパターン、メッセージ・タイプ、特定のデバイスのデバイスID(ハッシュされた)、デバイスのタイプ、デバイスのクラス、その他などのメッセージのシーケンスとが、決定されてよく、または計算されてよい。実施形態は、これらの特徴に基づいて異常を検知するいくつもの方法を提供してよい。
【0015】
通常、IoT通信メッセージは、IoTデバイスの特定のプロセスまたは特定の機能からもたらされることが可能な特定の、かつ独特の振舞いパターンを見せることがある。IoTデバイスのそのような振舞いは、非IoTデバイスの通信メッセージが見せる振舞いとは、通常、異なる。実施形態は、これらのIoT振舞いパターンまたはそのようなパターンからの逸脱、あるいはその組合せに基づいて、IoT異常検知を提供してよい。例えば、典型的なIoTデバイスのメッセージは、第2のレベルの特徴の非常に規則的なパターンを見せることがある。例えば、IoTデバイスは、規則的な時間間隔もしくは規則的な頻度、または平均間隔もしくは平均頻度などの特定の時間的態様、メッセージ長の特定のパターン、メッセージ・タイプ、デバイスID(ハッシュされた)、デバイス・タイプ、その他などの特徴に基づくメッセージの特定のシーケンスを有するメッセージを通信することがある。実施形態において、デバイスの振舞いパターンが、検知されてよく、または訓練されてよく、あるいはその両方が行われてよく、そのようなパターンからの逸脱が、異常を示してよい。
【0016】
実施形態において、IoTメッセージは、ネットワークにおける様々なポイントにおいて、例えば、ネットワーク・ルータ、ハブ、ゲートウェイ、その他においてネットワーク・トラフィックを監視すること、ならびにネットワーク・トラフィックの送信元または宛先のポイントにおいてネットワーク・トラフィックを監視することなどの任意の方法で収集されてよい。
【0017】
デバイス・クラスタに関して実行されてよいほとんどの処理は、デバイス・タイプに関して実行されてもよいことに留意されたい。両方が、デバイスのグループ化である。クラスタ内のデバイスは、デバイスの一般的な振舞いを監視することによって解析を使用して集められてよく、他方、デバイス・タイプによって集めることは、単にその所与のタイプを考慮することによって行われてよい。デバイスは、匿名であることがある(デバイスのプライベートIDがハッシュされていることがあるため)ので、プライベートでないデバイス・タイプが、使用されてよく、また、クラスタも、本明細書において説明される非プライベートメタデータを解析することに基づいて自動的に作成されてよい。
【0018】
IoT異常検知のプロセス200の例示的なフローチャートが、
図2に示される。この図は、IoTメッセージ・ストリーム300の例示的な図である
図3と併せて見ることが最良である。プロセス200は、202で始まってよく、202において、1つまたは複数のIoTメッセージ302A~Xが収集されてよく、かつデバイス・ハッシュID304、メッセージ・サイズ306、通信方向308、および通信時刻310などのメタデータ特徴が抽出されてよい。実施形態において、収集および抽出は、プライベート・データが暴露されないことを確実にすべく、データの所有者によって行われてよい。例えば、メッセージ・サイズ306、通信方向308、および通信時刻310の抽出は、単純明快であることがある一方で、デバイス・ハッシュID304の収集に関して、デバイスIDの可逆型鍵ベースの暗号化およびIDハッシュ・コードのルックアップ・テーブルなどのいくつもの技術が、使用されてよい。204において、メタデータ特徴が抽出された後、第2のレベルの時間枠312ベースの特徴の数が、各IoTデバイスに関して計算されてよく、または生成されてよい。時間枠312のサイズは、その時間枠内に十分に多数のメッセージが収集されることを可能にすべく、通信の頻度に依存して選択されてよい。異なる特徴に関して異なる時間枠が選択されてよい。
【0019】
実施形態において、基本的な計算による、または生成される時間枠特徴は、時間枠312内のメッセージの総数、各時間枠312内の平均数であってよい。例えば、IoTデバイスが10分枠ごとに送信する/受信するメッセージの数が、カウントされてよい。実施形態において、より高度な計算による、または生成される時間枠特徴は、時間枠312内の異なるメッセージ・サイズのヒストグラムなどの集計された特徴であってよい。例えば、IoTデバイスが10分枠ごとに送信する/受信するメッセージの数が、観察される各メッセージ・サイズに関してカウントされてよい。10分時間枠は、単に例に過ぎないことに留意されたい。実施形態は、時間枠中に有用な数のメッセージを検知するのに必要な任意の長さの時間枠を使用してよい。例えば、実施形態において、時間枠当たりゼロのメッセージ、もしくはわずかな数のメッセージでは、有用であるには少なすぎ、時間枠当たり数百または数千のメッセージでは、有用であるには多すぎる。実施形態において、時間枠は、時間枠当たり約10から100のメッセージを検知すべく選択されてよい。しかし、これは、例に過ぎない。実際の時間枠は、所望される任意の数のメッセージを検知すべく選択されてよい。
【0020】
各デバイスの履歴上の振舞いのモデルは、例えば、メッセージ時刻、メッセージ・サイズ、メッセージ・シーケンス・パターン、その他を追跡して、生成されてよい。実施形態において、各デバイスは、そのデバイスの実際のデバイスIDによって識別されてよい一方で、実際のデバイスIDがプライベートに保たれるべき実施形態において、各デバイスは、各デバイスを一意に識別する匿名化された情報によって識別されてよい。例えば、デバイスは、デバイスIDをハッシュ関数で処理することによって生成されたハッシュ・タグを使用して識別されてよい。
【0021】
206において、IoTデバイスは、類似したデバイスのグループを検知すべくクラスタ化されてよい。実施形態は、類似した振舞いをするIoTデバイスのグループを見出すべく、計算された、または生成された時間枠特徴の十分に長い履歴を収集してよい。例えば、1週間または1ヵ月の総数のメッセージが収集されてよく、K平均クラスタ化または階層クラスタ化(階層クラスタ解析)などのクラスタ化アルゴリズムが、類似した振舞いをするIoTデバイスのグループを見出すべく適用されてよい。例えば、カメラ、その他などの類似したタイプのデバイスが、類似した振舞いをすることがあり、それ故、一緒にクラスタ化されてよい。
【0022】
したがって、実施形態において、個別のデバイス振舞いパターンが、そのデバイスに関する振舞いの異常を検知すべく使用されてよい。さらに、実施形態において、デバイスのグループに関する集計された/クラスタ化されたデバイス振舞いパターンが、クラスタ内の1つまたは複数のデバイスに関する振舞いの異常を検知すべく使用されてよい。
【0023】
208において、異常は、収集され、クラスタ化されたメッセージ・メタデータを使用して検知されてよい。モデルが、個々のデバイス、デバイスのタイプ、またはデバイスのクラスタ、あるいはその組合せの振舞いをモデル化すべく、データを使用して構築されてよい。次に、そのようなモデルが、個々のデバイス、デバイスのタイプ、またはデバイスのクラスタ、あるいはその組合せの振舞いにおける異常を検知すべく使用されてよい。例えば、個別のデバイスの振舞いのモデルを所与として、そのデバイスの異常な振舞いが、モデル化された振舞いからの逸脱に基づいて検知されてよい。カメラ、その他などの特定のタイプのデバイスの振舞いのモデルを所与として、1つまたは複数のデバイスの異常な振舞いが、モデル化された振舞いからの逸脱に基づいて検知されてよい。同様に、デバイスのクラスタの振舞いのモデルを所与として、1つまたは複数のデバイスの、またはクラスタ全体の異常な振舞いが、モデル化された振舞いからの逸脱に基づいて検知されてよい。実施形態は、以下のような異常検知技術を使用してよい。
【0024】
メッセージ・サイズ・ヒストグラム・ベースの異常 これに関して、IoTデバイス、デバイス・タイプ、またはデバイスのクラスタ、あるいはその組合せの履歴上のメッセージ・サイズ・ヒストグラムのモデルが、構築されてよい。通常、分布は、最も頻度の高いメッセージ・サイズの数を間隔として有するマルチモード混合正規分布に類似する。通常、ヒストグラムは、ポイントのない領域によって分離された頻度ポイントを含む。したがって、もたらされる分布は、密度ポイントの混合である混合正規分布であってよい。実施形態において、異常は、特定のメッセージ・サイズが頻度間隔から、例えば、3シグマを超えて離れているとき、検知されてよい。
【0025】
メッセージ・カウント・ベースの異常 これに関して、IoTデバイスおよびデバイスのクラスタの履歴上のカウントのモデルが、構築されてよい。実施形態は、履歴上の振舞いの推定される平均偏差および標準偏差などの簡単なモデルを適用してもよく、または曜日、時刻、および1時間内の区分、その他などの時間的階層に基づくより高度なモデル化が、適用されてもよい。実施形態において、異常は、IoTデバイスのメッセージ・カウントが、頻度間隔から離れているとき、検知されてよい。実施形態において、異常検知のためのより高度な時系列技術が、適用されてよく、その場合、モデルがIoTデバイスおよびデバイスのクラスタのカウント・シグナル上で訓練されてよい。
【0026】
メッセージ・シーケンス・ベースの異常 これに関して、IoTデバイスのシーケンス・モデルを構築すべく第1のレベルの特徴を使用してモデルが、構築されてよい。モデルは、IoTデバイスおよびデバイスのクラスタの履歴上のメッセージ・サイズ・シーケンス上で訓練されてよい。この場合、マルコフ・ベースの方法、ならびに長・短期記憶(LSTM)などの深層学習方法などの様々なシーケンス・ベースの技術が、使用されてよい。
【0027】
本明細書において説明される実施形態に含まれるプロセスが実施されてよいコンピュータ・システム400の例示的なブロック図が、
図4に示される。コンピュータ・システム400は、埋め込み型プロセッサ、システム・オン・チップ、パーソナル・コンピュータ、ワークステーション、サーバ・システム、およびミニコンピュータまたはメインフレーム・コンピュータなどの1つまたは複数のプログラムされた汎用コンピュータ・システムを使用して、あるいは分散された、ネットワーク化されたコンピューティング環境において実施されてよい。コンピュータ・システム400は、1つまたは複数のプロセッサ(CPU)402A~402Nと、入出力回路404と、ネットワーク・アダプタ406と、メモリ408とを含んでよい。CPU402A~402Nは、本通信システムおよび本方法の機能を実行するためにプログラム命令を実行する。通常、CPU402A~402Nは、INTEL CORE(R)プロセッサなどの1つまたは複数のマイクロプロセッサである。
図4は、コンピュータ・システム400が、多数のプロセッサ402A~402Nがメモリ408、入出力回路404、およびネットワーク・アダプタ406などのシステム・リソースを共有する、単一のマルチプロセッサコンピュータ・システムとして実施される実施形態を示す。しかし、本通信システムおよび本方法はまた、コンピュータ・システム400が、シングルプロセッサ・コンピュータ・システム、マルチプロセッサ・コンピュータ・システム、またはその混合であってよい、複数のネットワーク化されたコンピュータ・システムとして実施される実施形態も含む。
【0028】
入出力回路404は、コンピュータ・システム400にデータを入力する能力、またはコンピュータ・システム400からデータを出力する能力を提供する。例えば、入出力回路は、キーボード、マウス、タッチパッド、トラックボール、スキャナ、アナログ-デジタル変換器、その他などの入力デバイス、ビデオ・アダプタ、モニタ、プリンタ、その他などの出力デバイス、ならびにモデム、その他などの入出力デバイスを含んでよい。ネットワーク・アダプタ406は、デバイス400をネットワーク410につなぐ。ネットワーク410は、インターネットを含むが、それには限定されない任意の公共または専有のLANまたはWANであってよい。
【0029】
メモリ408は、コンピュータ・システム400の機能を実行すべくCPU402によって実行されるプログラム命令、およびCPU402によって使用され、処理されるデータを記憶する。メモリ408は、例えば、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、電気的に消去可能なプログラマブル読取り専用メモリ(EEPROM)、フラッシュ・メモリ、その他などの電子メモリ・デバイス、ならびに磁気ディスク・ドライブ、テープ・ドライブ、光ディスク・ドライブ、その他などの電気機械メモリを含んでよく、これらのメモリは、インテグレーティド・ドライブ・エレクトロニクス(IDE:integrated drive electronics)インタフェース、またはエンハンストIDE(EIDE)もしくはウルトラ・ダイレクト
・メモリ・アクセス(UDMA)などのその変形形態もしくはその強化形態、あるいはスモール・コンピュータ・システム・インタフェース(SCSI)ベースのインタフェース、または高速SCSI、ワイドSCSI、高速ワイドSCSI、その他などのその変形形態もしくはその強化形態、あるいはシリアル・アドバンスト・テクノロジ・アタッチメント(SATA)、またはその変形形態もしくはその強化形態、あるいはファイバ・チャネル調停ループ(FC-AL)インタフェースを使用してよい。
【0030】
メモリ408の内容は、コンピュータ・システム400が実行すべくプログラムされる機能に依存して様々であってよい。
図4に示される実施例において、例示的なメモリ内容が、前段で説明されるプロセスの実施形態のためのルーチンおよびデータを表して示される。しかし、これらのルーチン、ならびにこれらのルーチンと関係するメモリ内容は、1つのシステム上、または1つのデバイス上に含まれなくてもよく、むしろ、よく知られた工学上の配慮に基づいて、複数のシステムの間で、または複数のデバイスの間で分散されてよいことが、当業者には認識されよう。本システムおよび本方法は、任意のすべてのそのような構成を含んでよい。
【0031】
図4に示される実施例において、メモリ408は、メッセージ収集ルーチン412と、時間枠ルーチン414と、クラスタ化ルーチン416と、異常検知ルーチン418と、オペレーティング・システム420とを含んでよい。メッセージ収集ルーチン412は、前段で説明されるとおりIoTメッセージを収集するソフトウェア・ルーチンを含んでよい。時間枠ルーチン414は、前段で説明されるとおり時間枠特徴を生成するソフトウェア・ルーチンを含んでよい。クラスタ化ルーチン416は、前段で説明されるとおり類似したデバイスのグループを検知すべくIoTデバイスのクラスタを生成するソフトウェア・ルーチンを含んでよい。異常検知ルーチン418は、前段で説明されるとおり収集され、クラスタ化されたメッセージ・メタデータを使用して異常を検知するソフトウェア・ルーチンを含んでよい。オペレーティング・システム420は、全体的なシステム機能を提供してよい。
【0032】
図4に示されるとおり、本通信システムおよび本方法は、マルチプロセッサ、マルチタスキング、マルチプロセス、またはマルチスレッド・コンピューティング、あるいはその組合せを提供するシステム上、またはそのような複数のシステム上の実施を含んでよく、また、シングルプロセッサ、シングルスレッド・コンピューティングだけを提供するシステム上の実施を含んでもよい。マルチプロセッサ・コンピューティングは、複数のプロセッサを使用してコンピューティングを実行することを含む。マルチタスキング・コンピューティングは、複数のオペレーティング・システム・タスクを使用してコンピューティングを実行することを含む。タスクは、実行されているプログラムとオペレーティング・システムによって使用されるブックキーピング情報の組合せを指すオペレーティング・システム概念である。プログラムが実行されるときはいつでも、オペレーティング・システムは、そのプログラムに関して新たなタスクを作成する。タスクは、タスクがタスク番号でプログラムを識別し、そのプログラムに他のブックキーピング情報を付加するという点で、プログラムのためのエンベロープのようなものである。Linux、UNIX(R)、OS/2(R)、およびWindows(R)を含む多くのオペレーティング・システムが、多くのタスクを同時に実行することができ、マルチタスキング・オペレーティング・システムと呼ばれる。マルチタスキングは、複数の実行可能ファイルを同時に実行するオペレーティング・システムの能力である。各実行可能ファイルは、その実行可能ファイル独自のアドレス空間内で実行されており、すなわち、実行可能ファイルには、実行可能ファイルのメモリを共有する方法がまったくない。このことは、いずれのプログラムが、システム上で実行されるその他のプログラムのいずれの実行にも損傷を与えることが不可能であるため、利点を有する。しかし、それらのプログラムには、オペレーティング・システムを介することによって(またはファイル・システム上に記憶されたファイルを読み取ることによって)以外、情報を交換する方法がまったくない。一部のオペレーティング・システムが、その2つを区別するものの、タスクという術語とプロセスという術語は、しばしば、互換的に使用されるので、マルチプロセス・コンピューティングは、マルチタスキング・コンピューティングと類似する。
【0033】
本発明は、可能な任意の技術的詳細の統合レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含んでよい。コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持すること、および記憶することができる有形のデバイスであることが可能である。
【0034】
コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の適切な組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EPROMもしくはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、命令が記録されているパンチカードもしくは溝の中の隆起構造などの機械的に符号化されたデバイス、および以上の任意の適切な組合せを含む。本明細書において使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝達媒体を介して伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または配線を介して伝送される電気信号などの一過性の信号そのものであると解釈されるべきではない。
【0035】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、伝送光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶されるようにコンピュータ可読プログラム命令を転送する。
【0036】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、またはSmalltalk(R)、C++、もしくはそれに類するものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくはそれに類似したプログラミング言語などの手続き型プログラミング言語を含め、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されても、一部がユーザのコンピュータ上で実行されても、スタンドアロンのソフトウェア・パッケージとして実行されても、一部がユーザのコンピュータ上で、かつ一部が遠隔コンピュータ上で実行されても、全体が遠隔コンピュータもしくは遠隔サーバの上で実行されてもよい。全体が遠隔コンピュータもしくは遠隔サーバの上で実行されるシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、または接続は、外部コンピュータに対して行われてもよい(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)。一部の実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、本発明の態様を実行するために、電子回路をカスタマイズするようにコンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行してよい。
【0037】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャートまたはブロック図あるいはその両方を参照して本明細書において説明される。フローチャートまたはブロック図あるいはその両方の各ブロック、ならびにフローチャートまたはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施されることが可能であることが理解されよう。
【0038】
これらのコンピュータ可読プログラム命令は、そのコンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行されるそれらの命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含む製造品を備えるべく、特定の様態で機能するようにコンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せを導くことができるコンピュータ可読記憶媒体に記憶されてもよい。
【0039】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスの上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータによって実施されるプロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル装置、または他のデバイスの上で一連の動作ステップを実行させるものであってもよい。
【0040】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を例示する。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備える、命令のモジュール、セグメント、または部分を表すことが可能である。一部の代替の実装形態において、ブロックに記載される機能は、図に記載される順序を外れて生じてよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてよく、またはそれらのブロックが、ときとして、関与する機能に依存して、逆の順序で実行されてよい。また、ブロック図またはフローチャートあるいはその両方の各ブロック、ならびにブロック図またはフローチャートあるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行する、または専用ハードウェア命令とコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実施されることが可能であることにも留意されたい。
【0041】
本発明の特定の実施形態が説明されてきたものの、説明される実施形態と均等である他の実施形態が存在することが、当業者には理解されよう。したがって、本発明は、例示される特定の実施形態によって限定されるのではなく、添付の特許請求の範囲によってのみ限定されることを理解されたい。