Nothing Special   »   [go: up one dir, main page]

JP7282195B2 - 組み込みソフトウェアアプリケーションのための機械学習ベースの異常検出 - Google Patents

組み込みソフトウェアアプリケーションのための機械学習ベースの異常検出 Download PDF

Info

Publication number
JP7282195B2
JP7282195B2 JP2021551570A JP2021551570A JP7282195B2 JP 7282195 B2 JP7282195 B2 JP 7282195B2 JP 2021551570 A JP2021551570 A JP 2021551570A JP 2021551570 A JP2021551570 A JP 2021551570A JP 7282195 B2 JP7282195 B2 JP 7282195B2
Authority
JP
Japan
Prior art keywords
embedded software
software application
application
anomaly detection
anomaly
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021551570A
Other languages
English (en)
Other versions
JP2022522474A (ja
Inventor
ヴェラー,ヨッシ
モーシェ,ガイ
Original Assignee
シーメンス インダストリー ソフトウェア インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シーメンス インダストリー ソフトウェア インコーポレイテッド filed Critical シーメンス インダストリー ソフトウェア インコーポレイテッド
Publication of JP2022522474A publication Critical patent/JP2022522474A/ja
Application granted granted Critical
Publication of JP7282195B2 publication Critical patent/JP7282195B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Description

技術の継続的な改善に伴い、ソフトウェアアプリケーションがますます普及しつつある。組み込みソフトウェアアプリケーションは、自動車、セキュリティシステム、家電、おもちゃ、デジタルウォッチ、生物学的デバイスなどの、物理システム内のマシンまたはデバイスを制御することができる。組み込みソフトウェアを含む組み込みシステムは、マルウェア、ウイルス、スパイウェアなどを介したセキュリティ攻撃の標的となる可能性がある。
いくつかの実施例について、以下の詳細な説明の欄で図面を参照して説明する。
図1は、組み込みソフトウェアアプリケーションのための機械学習ベースの異常検出をサポートするシステムの例を示している。
図2は、異常モデル訓練エンジンを用いた、機械学習による異常検出モデルの訓練の例を示す。
図3は、異常モデル訓練エンジンを用いたタスク特有の異常検出モデルの訓練の例を示している。
図4は、異常検出エンジンを用いた、組み込みアプリケーションの動作の実行時の特徴付けの例を示している。
図5は、異常検出モデルの学習フェーズの訓練をサポートするためにシステムが実行可能なロジックの例を示している。
図6は、組み込みソフトウェアの実行中の異常検出をサポートするためにシステムが実行可能なロジックの例を示している。
図7は、組み込みソフトウェアアプリケーションのための機械学習ベースの異常検出をサポートするシステムの例を示している。
以下の説明では、組み込みソフトウェアまたは組み込みアプリケーションとも呼ばれる組み込みソフトウェアアプリケーションについて言及する。本明細書で使用されるように、組み込みソフトウェアアプリケーションは、デスクトップまたはラップトップコンピュータ以外の物理システム上で実行するソフトウェアを指す場合がある。そのような物理システムは、組み込みシステムとも呼ばれ、計算能力とメモリ機能がしばしば限られている。多くの場合、組み込みソフトウェアアプリケーションは、組み込みシステムのマシンまたは他の物理的要素とインターフェースを取ることができる。したがって、組み込みアプリケーションは、自動車、電話、モデム、ロボット、電化製品、セキュリティシステムなどに含まれるマシンまたはデバイスを監視または制御するために使用することができる。
本明細書には、組み込みソフトウェアアプリケーションのための、機械学習を用いた異常検出をサポートするシステム、方法、装置およびロジックが開示されている。以下に詳細に説明するように、本明細書に開示する機械学習ベースの異常検出機能は、組み込みソフトウェアアプリケーションの動作(例えば、実行時間)に影響する特定のアプリケーションパラメータを考慮することができる。異常検出モデルは、アプリケーションパラメータを特に考慮するように訓練することができる。機械学習モデルは、アプリケーションパラメータを実行時の動作(例えば、命令数または実行サイクルによって測定される)と関連付けて、通常時と異常時のアプリケーションの動作を特徴付けることができる。特にモデルの訓練においてアプリケーションパラメータを考慮することにより、本明細書で提示する機械学習ベースの異常検出機能は、アプリケーションの動作を監視し、異常を識別するためのリソース効率的なメカニズムを提供することができる。このメカニズムでは、アプリケーションコンテキストが実行時の動作に影響を与える方法を考慮する。
本明細書に開示する機械学習ベースの異常検出機能のこれらおよびその他の利点は、本明細書でより詳細に説明する。
図1は、組み込みソフトウェアアプリケーションのための機械学習ベースの異常検出をサポートするシステム100の例を示す。システム100は、様々な形態をとることができ、アプリケーションサーバ、計算ノード、デスクトップもしくはラップトップコンピュータ、スマートフォンもしくは他のモバイルデバイス、タブレットデバイス、組み込みコントローラ、または組み込みソフトウェアを含む任意のハードウェアコンポーネントもしくは物理システムなどの単一または複数のコンピューティングデバイスを含む。システム100は、組み込みソフトウェアアプリケーションのための異常検出モデルを訓練、使用、または適用することができる、計算能力を有する任意のシステムの形態をとることができる。
本明細書でさらに詳細に説明するように、システム100は、学習フェーズ、実行フェーズ、またはその両方で、機械学習ベースの異常検出をサポートすることができる。学習フェーズでは、システム100は、機械学習を使用して、実行時の動作に影響を与える様々なアプリケーションパラメータに応じて組み込みソフトウェアアプリケーションの動作を特徴付けることができる。システム100は、機械学習と、サンプリングされたアプリケーションパラメータと測定されたアプリケーションの動作からなる訓練セットとを用いて、組み込みソフトウェアアプリケーションの異常な動作を検出するための異常検出モデルを構築することができる。実行フェーズでは、システム100は、訓練された異常検出モデルにアクセスして、サンプリングされた実行時のアプリケーションパラメータとして、組み込みソフトウェアアプリケーションの測定された実行時動作に基づいて、異常を検出することができる。したがって、システム100は、機械学習により構築された異常検出モデルを用いて、組み込みソフトウェアアプリケーションの異常検出をサポートすることができる。
システム100は、本明細書に記載する任意の機械学習ベースの異常検出機能を提供するために、様々な方法で実施することができる。一実施例として、図1に示すシステム100は、異常モデル訓練エンジン110と、異常検出エンジン112とを含む。システム100は、エンジン110および112(およびその構成要素)を、例えば、ハードウェアおよびプログラミングとして、様々な方法で実装することができる。エンジン110および112のためのプログラミングは、非一時的なコンピュータが読み取り可能な記憶媒体に記憶された、プロセッサが実行可能な命令の形態をとることができる。エンジン110および112のためのハードウェアは、それらの命令を実行するためのプロセッサを含むことができる。プロセッサは、単一のプロセッサまたはマルチプロセッサシステムの形態をとることができる。いくつかの例では、システム100は、同じコンピューターシステム機能または同じハードウェアコンポーネント(例えば、共通プロセッサまたは共通記憶媒体)を使用して複数のエンジンを実装する。
動作時、異常モデル訓練エンジン110は、機械学習を利用して、組み込みソフトウェアアプリケーションのアプリケーション動作に基づいて異常検出モデルを訓練することができる。例えば、異常モデル訓練エンジン110は、所定のサンプリング点で組み込みソフトウェアアプリケーションをサンプリングして、(i)前のサンプリング点以降の組み込みソフトウェアアプリケーションの動作量と、(ii)所定のサンプリング点での組み込みソフトウェアアプリケーションのアプリケーションパラメータを取得するように構成することができる。また、異常モデル訓練エンジン110は、所定のサンプリング点で得られた動作量とアプリケーションパラメータに基づいて訓練データを生成し、訓練データを用いて異常検出モデルを構築するように構成することができる。異常検出モデルは、動作量とアプリケーションパラメータの入力に基づいて、組み込みソフトウェアアプリケーションが異常動作を示しているか否かの判定を提供するように構成することができる。
動作時、異常検出エンジン112は、異常検出モデルにアクセスして、組み込みソフトウェアアプリケーションの実行中にリアルタイムの異常検出機能を提供することができる。ここで、実行とは、組み込みソフトウェアアプリケーションが動作するように設計されている物理システム(例えば、医療デバイス、航空機コントローラ、アンチロックブレーキシステムなど)における組み込みソフトウェアアプリケーションの実行を指す、または含む。一部の実装では、異常検出エンジン112は、組み込みソフトウェアアプリケーションの実行中にサンプリング点でその組み込みソフトウェアアプリケーションをサンプリングして、その実行中に動作量とアプリケーションパラメータを取得するように構成することができる。また、異常検出エンジン112は、異常検出モデルへの入力として、実行中にサンプリングされた動作量とアプリケーションパラメータを提供し、提供した入力に対する異常検出モデルからの出力に基づいて、組み込みソフトウェアアプリケーションが異常動作を示しているか否かを判定するように構成することができる。
次に、本開示に係るこれらおよびその他の機械学習ベースの異常検出機能について、より詳細に説明する。具体的には、学習フェーズでの異常検出モデルの訓練に関する機能の例について、図2と図3に関連して説明する。異常なアプリケーション動作を検出するための実行フェーズでの異常検出モデルの使用に関する機能の例について、図4に関連して説明する。
図2は、異常モデル訓練エンジン110を用いた、機械学習による異常検出モデルの訓練の一例を示す。学習フェーズでは、異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーションの動作を追跡し、追跡したアプリケーションの動作を処理して訓練データを生成し、異常検出モデルを訓練することができる。
一例として、図2は、組み込みシステム210を示す。組み込みシステム210は、図2に示す組み込みソフトウェアアプリケーション212のような、組み込みソフトウェアを実装するまたは含む任意のシステムであってもよい。別の組み込みシステムの実装例において、組み込みソフトウェアアプリケーション212の実行は、様々なコンピュータリソースを用いて実行されてもよい。場合によっては、組み込みソフトウェアアプリケーション212は、ファームウェア、例えば、マイクロコントローラ、システム・オン・チップ(SoC)または他のハードウェアの構成要素として、多くの場合、メモリ機能とプロセッサの能力が制限された状況で、実装されてもよい。他の場合において、組み込みソフトウェアアプリケーション212を実行するために、エミュレーションまたはシミュレーションシステムを利用してもよい。これは、組み込みソフトウェアアプリケーション212の実行が、実際の実行時の実装とは異なり、メモリ機能または処理能力の制限によって制約される必要がない場合に、学習フェーズ中に有利であり得る。図2に示す例では、組み込みシステム210はエミュレータ214を含む。エミュレータ214は、学習フェーズ中に異常検出モデルを訓練するために組み込みソフトウェアアプリケーション212を実行することができる。
ここでより詳細に説明するように、異常モデル訓練エンジン110は、機械学習により異常検出モデルを構築することができる。異常検出モデルは、アプリケーションの動作を正常または異常として特徴付けることができる。異常検出モデルを訓練するために、異常モデル訓練エンジン110は、学習フェーズにおける組み込みソフトウェアアプリケーション212の実行中にアプリケーションデータを収集することができる。そして、異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212の実行中にサンプリングされたアプリケーションデータからなる訓練データを用いて、異常検出モデルを訓練することができる。
本開示によれば、異常モデル訓練エンジン110は、異常検出モデルを訓練するために特定のタイプのアプリケーションデータをサンプリングすることができる。具体的には、異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212の実行中に、各サンプリング点で(i)動作量と(ii)アプリケーションパラメータを取得することができる。
動作量は、命令数などの、組み込みソフトウェアアプリケーション212の測定可能な動作の量を指してもよい。命令数を特定するために、異常モデル訓練エンジン110は、システムハードウェア(例えば、性能監視ユニット)、システムソフトウェア(例えば、オペレーティングシステム機能、APIなど)、またはその両方の組み合わせによる、追跡された命令実行にアクセスすることができる。組み込みソフトウェアアプリケーション212のための取得された命令数は、メモリアクセスコストとキャッシュのヒット/ミス比を無視する点において、有用であり得る。メモリアクセスコストとキャッシュのヒット/ミス比は、動作量にランダムな変動を与え、訓練された異常検出モデルの精度を低下させる。異常モデル訓練エンジン110が得ることができる別の動作量の例は、アプリケーション実行時間である。実行時間を測定するために、異常モデル訓練エンジン110は、CPUコアのサイクルカウンタにアクセスするか、またはシステムドライバを利用して、組み込みソフトウェアアプリケーション212の複数の実行時点間のサイクルデータを抽出することができる。
複数の実行時点で動作量を特定することにより、異常モデル訓練エンジン110は、正常な動作(すなわち、マルウェアの侵入の影響を受けない実行)中に、組み込みソフトウェアアプリケーション212によるアプリケーション動作の定量的指標を得ることができる。しかし、実行時間、命令数および単なる定量的な動作量は、組み込みソフトウェアの実行状態を不完全に示す可能性がある。実行時の挙動は、組み込みソフトウェアアプリケーション212の実行時のコンテキストに応じて増減する可能性がある。同じソフトウェア操作、タスクまたは実行スレッドでも、実行中に適用可能なアプリケーションパラメータに応じて実行時間が(著しく)異なる可能性がある。サンプリングされた動作量に影響を与える可能性があるアプリケーションパラメータの例には、メモリ条件、入力データサイズ、入力データの内容(例えば、高解像度データ対低解像度データ)、アプリケーション制御パラメータ(例えば、高精度および低精度動作モード)、システム電力制約などがある。
このような変動を考慮するために、異常モデル訓練エンジン110は、サンプリングされた動作量に適用可能なアプリケーションパラメータを得るために、組み込みソフトウェアアプリケーション212をサンプリングすることもできる。アプリケーションパラメータは、組み込みソフトウェアアプリケーション212の実行に影響を与える任意のシステム、アプリケーションまたはグローバルパラメータを指してもよい。異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212のアプリケーションパラメータを様々な方法でサンプリングすることができる。例えば、異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212のアプリケーションタスクまたはスレッドのために記憶されたパラメータを得るために、そのアプリケーションタスクまたはスレッドに割り当てられた静的メモリにアクセスすることができる。加えて、またはそれに代えて、異常モデル検出は、グローバルメモリに記憶されたグローバル変数にアクセスするか、または組み込みシステム210、組み込みソフトウェアアプリケーション212もしくはその両方の組み合わせに適用可能な長期の状態値を取得することができる。
一部の実装例において、異常モデル訓練エンジン110は、パラメータアクセス機能を実装することができる。この機能を介して、組み込みソフトウェアアプリケーション212は、それ自体、サンプリング中に、適用可能なアプリケーションパラメータを提供することができる。実装されるパラメータアクセス機能は、アプリケーションパラメータを非侵入的または非破壊的な方法で抽出するためのAPIの形式を取ってもよい。例えば、組み込みシステムは、入力データまたは動作パラメータ(例えば、組み込みソフトウェアアプリケーション212によって受信された入力通信フレームで指定される)を、通信コントローラメモリ、システムレジスタ、またはFIFOキューに格納してもよい。このようなメモリ構造へのメモリ読み出しアクセスは、破壊的操作、および/または、ドライバの優先レベルなしでアクセス不能なものでもよい。したがって、異常モデル訓練エンジン110によって提供されるパラメータアクセス機能は、組み込みソフトウェアアプリケーション212の実行中に、関連するアプリケーションパラメータをサンプリングするための非破壊的メカニズムを提供することができる。
別の実装される特徴として、異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212に提供される入力データを前処理して、適用可能なアプリケーションパラメータを抽出することができる。例えば、異常モデル訓練エンジン110は、画像またはビデオファイルの形式で入力を前処理して、ファイル指標、データパターンまたはマルチメディア特性を特定することができる。異常モデル訓練エンジン110は、これらのファイル指標、データパターンまたはマルチメディア特性を、組み込みソフトウェアアプリケーション212について特定のサンプリング点でサンプリングされるアプリケーションパラメータとして取得することができる。
本明細書に記載する様々な方法で、異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212の実行中に動作量とアプリケーションパラメータをサンプリングすることができる。動作量とアプリケーションパラメータがサンプリングされる特定の実行点は、異常モデル訓練エンジン110によって予め選択されてもよい。そのような特徴を説明するために、実行タイムライン220を図2に示す。この実行タイムライン220は、異常モデル訓練エンジン110が、組み込みソフトウェアアプリケーション212の疑似実行中にアプリケーションデータをサンプリングすることができる複数のサンプリング点を示す。実行タイムライン220に示すように、異常モデル訓練エンジン110は、動作量とアプリケーションパラメータを得るために組み込みソフトウェアアプリケーション212をサンプリングするサンプリング点s、s2、s3およびs4を選択することができる。
選択された各サンプリング点s1、s2、s3およびs4において、異常モデル訓練エンジン110は、サンプリング点に対応する動作量(例えば、前のサンプリング点以降のアプリケーション動作を示す)とアプリケーションパラメータを取得することができる。したがって、サンプリング点s2において、異常モデル訓練エンジン110は、前のサンプリング点s1からの動作量(例えば、組み込みソフトウェアアプリケーション212の実行された命令数)と、サンプリング点s2で有効なアプリケーションパラメータを特定することができる。図2では、異常モデル訓練エンジン110は、図示するサンプリング点s、s2、s3およびs4で組み込みソフトウェアアプリケーション212からサンプリングされる動作量231とアプリケーションパラメータ232の組を取得する。
実装によっては、異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212のアクティブ実行期間をカバーするように、組み込みソフトウェアアプリケーション212のサンプリング点を選択する。図2の実行タイムライン220は、組み込みソフトウェアアプリケーション212がアクティブである複数の期間を示している。この複数の期間は、実行タイムライン220に沿って、斜線を施したセクション(アクティブ実行期間とも呼ぶ)として描かれている。組み込みソフトウェアアプリケーション212は、組み込みシステムのコンピュータ資源の一部または全部が、組み込みソフトウェアアプリケーション212を実行するために積極的に使用されるとき、アクティブであると言うことができる。組み込みソフトウェアアプリケーション212は、組み込みシステムのコンピュータ資源が未使用またはアイドル状態であるときに、非アクティブ(またはアイドル状態)であると言うことができる。
多くの組み込みシステムでは、組み込みソフトウェアは、入力を受け取り、入力を処理し、出力を生成するように設計されている。組み込みソフトウェアアプリケーションは、システムの構成要素を監視するために物理システムでよく使用される。監視される入力は、そのような物理システムの動作中(例えば、特定の信号の感知、処理するデータファイルの受信など)に発生する可能性がある。組み込みソフトウェアのアクティブ実行期間は、入力が受信された後の期間と、対応する出力が生成されるまでの入力を処理する期間とを含み得る。出力が生成された後、後続の入力が受信されるまで、組み込みソフトウェアは非アクティブになり得る。
図2の実行タイムライン220には、組み込みソフトウェアアプリケーション212の一連のアクティブ実行期間と非アクティブ実行期間の一例が示されている。サンプリング点s1において、組み込みソフトウェアアプリケーション212は、入力の受け取りに応答して活性化(言い換えると、アクティブ実行期間に移行)し得る。組み込みソフトウェアアプリケーション212は、出力(図示せず)が生成されるとき、サンプリング点sまでアクティブ状態を保ち得る。サンプリング点s2からs3まで、組み込みソフトウェアアプリケーション212は、非アクティブ実行期間にあり、サンプリング点s3からs4までアクティブ実行を再開して、サンプリング点s3で受け取ったインプットを処理し得る。
異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212がアクティブ、非アクティブまたはその両方になるのに応答して、組み込みソフトウェアアプリケーション212をサンプリングすることを決定することができる。言い換えると、異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212が、受信された入力、生成された出力または両方の組み合わせに応答してサンプリングされるように、サンプリング点を選択することができる。さらに言い換えると、異常モデル訓練エンジン110は、所定のアクティブ実行期間ごとの動作量と、所定のアクティブ実行期間ごとの適用可能なアプリケーションパラメータを得られるように、組み込みソフトウェアアプリケーション212をサンプリングすることができる。(異常モデル訓練エンジン110は、図3に関連して以下により詳細に説明するように、タスクベースで組み込みソフトウェアアプリケーション212をサンプリングすることもできる。)そのようにして異常モデル訓練エンジン110は、動作量とアプリケーションパラメータを得るために組み込みソフトウェアアプリケーション212をサンプリングするサンプリング点を選択することができる。
サンプリングされた動作量とアプリケーションパラメータから、異常モデル訓練エンジン110は、異常検出モデルを訓練するための訓練データを構築することができる。図2において、異常モデル訓練エンジン110は、訓練データ240を生成する。異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212からサンプリングされた動作量231とアプリケーションパラメータ232の一部または全部を含むように訓練データ240を構築することができる。場合によっては、異常モデル訓練エンジン110は、サンプリングされたアプリケーションパラメータ232をフィルタリングして、関連するアプリケーションパラメータの特定のサブセット(例えば、組み込みソフトウェアアプリケーションの動作に最も影響する)を特定することができる。実際には、異常モデル訓練エンジン110は、パラメータ選択プロセスを実行して、異常検出モデルを訓練するための関連する機械学習機能を選択することができる。パラメータ選択プロセスを実行する際に、異常モデル訓練エンジン110は、統計的相関技術、整合性チェックまたは両方の組み合わせを使用して、アプリケーションの動作を特徴付けるためのアプリケーションパラメータの特定のサブセットを特定することができる。
異常モデル訓練エンジン110は、生成した訓練データ240を用いて異常検出モデルを構築することができる。図2において、異常モデル訓練エンジン110は、異常検出モデル250を訓練するための訓練セットとして、訓練データ240を提供する。異常検出モデル250を訓練するために、異常モデル訓練エンジン110は、任意の数の機械学習技術を利用することができる。例えば、異常検出モデル250は、任意の数の教師あり、半教師あり、教師なしまたは強化された学習モデルを実装して、サンプリングされた動作量とアプリケーションパラメータに基づいて組み込みソフトウェアアプリケーションの動作を特徴付けることができる。異常検出モデル250は、サポートベクターマシン、マルコフ連鎖、コンテキストツリー、ニューラルネットワーク、ベイジアンネットワークまたは様々な他の機械学習要素を含み得る。
特に、異常モデル訓練エンジン110は、異常検出モデル250を構築して、動作量とアプリケーションパラメータの入力に基づいて、組み込みソフトウェアアプリケーションが異常な動作を示しているか否かの判定を提供することができる。実装によっては、異常検出モデル250は、サポートベクターマシン(SVM)の形態を取り、動作量とアプリケーションパラメータの入力に対して異常判定を提供することができる。
異常検出モデル250によって提供される出力は、異常検出モデル250が組み込みソフトウェアアプリケーション212の異常な動作を識別したかどうかを示すバイナリ値であってもよい。別の例では、異常検出モデル250は、提供された動作量とアプリケーションパラメータの入力がアプリケーションの異常動作を示す確率値を提供してもよい。さらに別の例として、異常モデル訓練エンジン110は、アプリケーションパラメータの入力に対して予測動作量を提供してもよい。この予測動作量は、組み込みソフトウェアからサンプリングされた実行時の動作量と比較されることで、アプリケーションの異常動作を検出することができる。このような異常検出技術について、異常検出モデル250を用いて検討し、図4に関連して以下でさらに説明する。
上述したように、異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212からサンプリングされたアプリケーションデータから異常検出モデル250を構築することができる。図2の例では、異常モデル訓練エンジン110は、実行中にサンプリングされた動作量とアプリケーションパラメータを使用して異常検出モデル250を訓練する。実装によっては、異常モデル訓練エンジン110は、アプリケーションデータ(特に、動作量およびアプリケーションパラメータ)をサンプリングし、一般的なアプリケーション動作よりも細かい粒度で異常検出モデルを訓練することができる。例えば、異常モデル訓練エンジン110は、サンプリングして、タスク特有の動作を通常または異常として特徴付けることができる。このような機能について、次に図3で説明する。
図3は、異常モデル訓練エンジン110を用いたタスク特有の異常検出モデルの訓練の例を示す。アプリケーションタスク(タスク、実行スレッドまたはアプリケーションスレッドともぶ呼)は、組み込みソフトウェアの任意の実行シーケンス、例えば、特定のタスクを実行するために開始されたスレッド、または組み込みソフトウェアのインスタンスによって生成されたスレッドを指してもよい。また、アプリケーションタスクは、スケジューラまたはその他のオペレーティングシステムのロジックによって管理できるプログラム命令のシーケンスを指してもよい。組み込みソフトウェアの実行は、複数のアクティブタスクの実行を含み得る。この複数のアクティブタスクの実行は、コンテキストスイッチ、プリエンプション、および複数のアプリケーションタスクの実行シーケンス間の中断を伴い得る。異常モデル訓練エンジン110は、タスクベースで異常検出モデルを訓練することができる。この訓練は、タスクベースで組み込みアプリケーションの正常または異常な動作を特徴付けることをサポートすることができる。
一例として、図3は、図2に記載されている組み込みシステム210を示している。このシステムは、組み込みソフトウェアアプリケーション212と、学習フェーズ中にアプリケーションを疑似実行するためのエミュレータ214を含む。また、図3に示すように、実行タイムライン320の例は、組み込みソフトウェアアプリケーション212の一部として実行されている複数の異なるタスクを示している。実行タイムライン320において、タスクAとラベル付けされたアプリケーションタスクは、実行タイムライン320に沿って、斜線を施したセクション(タスクAのアクティブ実行期間とも呼ぶ)で、アクティブと示されている。また、実行タイムライン320には、タスクB,とラベル付けされた別のアプリケーションタスクが示されている。このアプリケーションタスクは、実行タイムライン320に沿って、垂直線を施したセクションを用いて、アクティブと示されている。
異常モデル訓練エンジン110は、組み込みソフトウェアアプリケーション212を十分なサンプリング点でサンプリングして、所定のアプリケーションタスクのタスク開始からタスク完了までの動作量とアプリケーションパラメータを特定することができる。これは、所定のアプリケーションタスクの実行が他のアプリケーションタスクにより先行される場合でも可能である。そのために異常モデル訓練エンジン110は、所定のアプリケーションタスクが開始し、一時停止し(例えば、プリエンプションまたはコンテキストスイッチにより)または完了する実行点で、組み込みソフトウェアアプリケーション212をサンプリングすることができる。図3に示す例では、実行タイムライン320には、サンプリング点s、s2、s3、s4、s5、s6およびs7が示されている。これらのサンプリング点では、異常モデル訓練エンジン110は、タスクAとタスクBの動作量とアプリケーションパラメータを得るために組み込みソフトウェアアプリケーション212をサンプリングする。
図3の例では、タスクAの実行は、タスクAに特有のアプリケーション入力(実行タイムライン320ではinput(A)とラベル付けされている)の受信に応答して開始される。また、この例では、組み込みソフトウェアアプリケーションのタスクBが優先され、タスクAの実行よりも先行する。タスクBの実行は、組み込みソフトウェアアプリケーション212によるタスク(実行タイムライン320において入力(B)とラベル付けされている)に特有の入力の受信に応じて開始される。そのため、サンプリング点s1(Input(A)に応じてタスクAの実行が開始される時)からサンプリング点s6(タスクAの実行が完了する時)までに、タスクBの2つの実行インスタンスがタスクの実行に先行する。図3に示すように、異常モデル訓練エンジン110は、タスクAが開始される時(サンプリング点s1およびs7)、タスクが開始される時(サンプリング点s2およびs4)、タスクAがプリエンプションされる時(また、サンプリング点s2およびs4)、タスクが完了する時(サンプリング点s3およびs5)、タスクが再開される時(また、サンプリング点s3およびs5)、タスクが完了する時(サンプリング点s6)といった実行点で、組み込みソフトウェアアプリケーション212をサンプリングすることができる。
異常モデル訓練エンジン110は、タスクをスタート、ポーズまたはストップする複数のポイントで組み込みソフトウェアアプリケーション212をサンプリングすることによって、タスクA全体の動作量を特定することができる。この特定は、タスクAがタスクBの実行インスタンスによって複数の実行点で先行される場合であっても可能である。図3において、異常モデル訓練エンジン110は、実行タイムライン320の間に、組み込みソフトウェアアプリケーション212から動作量331とアプリケーションパラメータ332をサンプリングする。サンプリングされた動作量331は、タスクBの少なくとも2つの動作量を含み得る。1つは、サンプリング点s2からs3までに実行されたタスクBのインスタンスの動作量であり、もう1つは、サンプリング点s4からs5までに実行されたタスクのインスタンスの動作量である。サンプリングされたアプリケーションパラメータ332は、タスクBの少なくとも2組のアプリケーションパラメータを含み得る。この2組のアプリケーションパラメータは、タスクBの各実行インスタンスに適用可能である。さらに、異常モデル訓練エンジン110は、サンプリング点s1で開始され、s6で完了するタスクAの実行インスタンスの動作量を取得することができる。異常モデル訓練エンジン110は、この動作量を、サンプリング点s1からs2、s3からs4、そしてs5からs6にサンプリングされた動作量の合計として特定することができる。同様の方法で、異常モデル訓練エンジン110は、動作量に対して、タスクAに適用可能な特定のアプリケーションパラメータを特定することができる。
したがって、異常モデル訓練エンジン110は、タスクベースで複数の実行点で組み込みソフトウェアアプリケーション212をサンプリングすることができる。その際、異常モデル訓練エンジン110は、所定のサンプリング点(例えば、タスクAはサンプリング点s2までアクティブである)で組み込みソフトウェアアプリケーション212によって実行される所定のアプリケーションタスクを識別することができる。サンプリング中の「アクティブである」アプリケーションタスクを識別する際、現在のスレッド、タスク、プロセスまたは他のシステムインジケータを示すOSシステムパラメータにアクセスしてもよい。
また、異常モデル訓練エンジン110は、異なるアプリケーションタスクについてサンプリングされたアプリケーションデータ間で区別される訓練セットを特に構築してもよい。図3において、異常モデル訓練エンジン110は、サンプリングされた動作量331とアプリケーションパラメータ332から訓練データ340を生成する。訓練データ340は、タスクベースで区別された複数の異なる訓練セットを含むように生成されてもよい。その際、訓練データ340は、組み込みソフトウェアアプリケーション212のタスクAとタスクBのための異なる訓練セットを含んでもよい。
異常モデル訓練エンジン110は、複数のタスク特有の異常検出モデルを含むように異常検出モデル250を構築することができる。その複数のタスク特有の異常検出モデルとは、例えば、図3においてモデル351および352として示されているタスクAとタスクBのタスク特有の異常検出モデルである。その際、異常モデル訓練エンジン110は、所定のタスク特有の異常検出モードを訓練するためのタスク特有の所定の訓練データのセットを提供してもよい。複数のタスク特有の異常検出モデルの訓練は、タスクベースでアプリケーションの異常動作を特徴付けることを支援することができる。実装によっては、異常モデル訓練エンジン110は、異常検出モデル250を複数のタスク特有の異常検出モデルとして構築することができる。例えば、組み込みソフトウェアアプリケーション212によってサポートされるアプリケーションタスクの一部または全部の各々について異なるモデルとして構築することができる。
さらに詳しく説明すると、タスク特有の異常検出モデル351および352は、アプリケーション動作のタスク特有の特徴付けを提供することができる。例えば、タスクAの異常検出モデル351は、タスクAに特有の動作量とアプリケーションパラメータの入力に基づいて、組み込みソフトウェアアプリケーション212のタスクAに特有の異常動作の判定を提供することができる。同様に、タスクBの異常検出モデル352は、組み込みソフトウェアアプリケーション212のタスクBに特有の異常動作の判定を提供することができる。異常モデル訓練エンジン110によって訓練される所定のタスク特有の異常検出モデルは、所定のタスクに適用可能なアプリケーションパラメータで特に訓練することができる。そのため、訓練されたタスク特有の異常検出モデルは、組み込みソフトウェアアプリケーション212の実行動作にタスクベースで影響を与えるタスク特有のコンテキストに特に調整され得る。
上述した方法のいずれにおいても、異常モデル訓練エンジン110は、学習フェーズにおける異常検出モデルの訓練を支援することができる。特に、異常モデル訓練エンジン110は、機械学習を使用して、組み込みアプリケーション動作を特徴付けるように構成された異常検出モデルを訓練することができる。その際、組み込みソフトウェアの実行中に適用可能な特定のアプリケーションパラメータを考慮することができる。訓練された異常検出モデルは、図4に関連して次に説明するように、組み込みソフトウェアアプリケーションの異常な動作を検出するために、実行フェーズ中にアクセスして使用することができる。
図4は、異常検出エンジン112を用いた、組み込みアプリケーションの動作の実行時の特徴付けの例を示す。図4において、組み込みシステム410の一例は、物理システムの一部として、例えば、タンクローリーの制動部品として実装される。別々に図示されているが、異常検出エンジン112と異常検出モデル250は、組み込みシステム410の一部であってもよい。また、例えば、メモリまたはプロセッサのような共通のコンピュータ資源を共有してもよい。
組み込みシステム410は、ハードウェアコンポーネント412(例えば、組み込みコントローラ)に組み込まれた組み込みソフトウェアアプリケーション212を含んでもよい。図4では、ハードウェアコンポーネント412は、物理システムにおいて無限に近い他の用途が考えられるが、タンクローリーのアンチロックブレーキセンサ414と通信する。図4に示すこの例では、ハードウェアコンポーネント412は、組み込みソフトウェアアプリケーション212を実行して、アンチロックブレーキセンサ414(組み込みソフトウェアアプリケーション212への入力)によって感知されたブレーキ状態(組み込みソフトウェアアプリケーション212への入力)を監視し、感知された状態に基づいて出力を生成することができる。そのようなタンクローリーの実世界での動作は、組み込みソフトウェアアプリケーション212の実行として特徴付けることができる(例えば、組み込みソフトウェアアプリケーション212が動作するように設計された物理システム内で)。
また、図4に示すように、異常検出エンジン112は、組み込みソフトウェアアプリケーション212の動作をその実行中に監視することができる。そのために異常検出エンジン112は、学習フェーズ中に(例えば、上述したように)組み込みソフトウェアアプリケーション212のために訓練された異常検出モデル250にアクセスすることができる。異常検出エンジン112は、特定のサンプリング点で組み込みソフトウェアアプリケーション212をサンプリングして、動作量とアプリケーションパラメータを取得することができる。その際、タスクベースで実行することもできる。異常検出エンジン112は、異常モデル訓練エンジン110と一致した方法で組み込みソフトウェアアプリケーション212をサンプリングすることができる。その際、本明細書(例えば、図2および3)に記載するサンプリング点選択機能のいずれかに従って実行することもできる。サンプリングされた動作量とアプリケーションパラメータは、異常検出モデル250への入力として提供されてもよい。異常検出モデル250を用いて、異常動作の判定を提供することができる。
図4を使って説明すると、組み込みソフトウェアアプリケーション212の実行中に、実行タイムライン420の例が示される。実行タイムライン420では、組み込みソフトウェアアプリケーション212のタスクAが、実行タイムライン420に沿って、斜線を施したセクションで、アクティブと示されている。また、タスクBのアクティブ実行期間が、実行タイムライン420に沿って、垂直線を施したセクションを用いて実行タイムライン420に示されている。異常検出エンジン112は、組み込みソフトウェアアプリケーションを、その実行中、複数のサンプリング点でサンプリングすることができる。サンプリング点には、アプリケーションタスクが開始される、一時停止する(例えば、プリエンプションされる)または完了する、任意の実行点が含まれる。図4に示すように、異常検出エンジン112は、実行タイムライン420のサンプリング点s、s2、s3、およびs4において、組み込みソフトウェアアプリケーション212をサンプリングする。
異常検出エンジン112は、組み込みソフトウェアアプリケーション212がサンプリングされる実行点に特有の、組み込みソフトウェアアプリケーション212の動作量431とアプリケーションパラメータ432を取得することができる。サンプリングされた動作量431とアプリケーションパラメータ432は、タスク特有のものであってもよい。例えば、サンプリング点sからsまでのタスクの命令数またはその他の動作量と、サンプリング点sからsまでのタスク特有のアプリケーションパラメータを含んでもよい。一致した方法で、サンプリングされた動作量431は、サンプリング点s1からs2およびs3からs4までのタスクAの動作量の合計と、タスクのこのアクティブ実行期間に有効なアプリケーションパラメータとを含んでもよい。
実装によっては、異常検出エンジン112は、組み込みソフトウェアアプリケーション212をサンプリングして、異常検出モデル250を訓練するために使用される機能と整合するアプリケーションパラメータを取得する。その際、異常検出エンジン112は、組み込みソフトウェアアプリケーション212または対応するアプリケーションタスクによって使用されるアプリケーションパラメータの特定のサブセットをサンプリングしてもよい。異常検出エンジン112によってサンプリングされるアプリケーションパラメータの特定のサブセットは、異常モデル訓練エンジン110によってパラメータ選択プロセス(タスクベースで実行されてもよい)で特定されるアプリケーションパラメータの特定のサブセットと同じであってもよい。言い換えると、異常検出エンジン112は、異常検出モデル250、351または352を訓練するために使用される(例えば、タスク特有の)アプリケーションパラメータの特定のサブセットをサンプリングし、これらのモデルを訓練するために使用されない他のアプリケーションパラメータについてはサンプリングしなくてもよい。
異常検出エンジン112は、サンプリングされた動作量431とアプリケーションパラメータ432を、組み込みソフトウェアアプリケーション212のアプリケーション動作を特徴付けるために、異常検出モデル250への入力として提供することができる。タスク特有の特徴付けのために、異常検出エンジン112は、複数のタスク特有の異常検出モデル(例えば、351および352)の中から、サンプリング点sからs2およびs3からs4でサンプリングされた動作量431とアプリケーションパラメータ432に使用するものを選択することができる。異常検出エンジン112は、組み込みソフトウェアアプリケーション212によって複数のサンプリング点で実行される所定のアプリケーションタスクに基づいて、そのようにする。例えば、タスクAについてサンプリングされた動作量とアプリケーションパラメータを、タスクAの異常検出モデル351への入力として提供し、タスクについてサンプリングされた動作量とアプリケーションパラメータを、タスクBの異常検出モデル352に提供する。
異常検出モデル250は、入力された動作量431とアプリケーションパラメータ432から生成される異常動作判定460を提供することができる。異常動作判定460は、異常検出モデル250(タスク特有の異常検出モデル351および352を含む)によってサポートされる任意のタイプの出力の形態をとることができる。出力例には、通常または異常なアプリケーションの動作、異常確率などを示すバイナリ値の出力が含まれ、それらのいずれもがタスク特有であってもよい。したがって、異常動作判定460は、タスク特有の出力を含むことができ、各出力は、組み込みソフトウェアアプリケーション212のタスク特有の動作が異常であるかどうかを特徴付けることができる。この特徴付けは、特にサンプリングされたアプリケーションパラメータに基づいて行われる。図4の例では、異常動作判定460は、タスクAとタスクBについてサンプリングされたアプリケーション動作が異常として特徴付けられるか否かを別々に示すことができる。
実装によっては、異常検出エンジン112は、組み込みソフトウェアアプリケーション212の非アクティブ実行期間中に、異常検出モデル250にアクセスしてもよい。組み込みシステム410は、コンピュータ/メモリ資源が限られたり、正確なタイミング制約を課されたりすることがある。異常検出のためのタイミング干渉または資源のオーバヘッドを低減するために、異常検出エンジン112は、実行中に、組み込みソフトウェアアプリケーション212が(例えば、サンプリング点s4で)非アクティブ実行期間に入ることを判定してもよい。そのような判定に応答して、異常検出エンジン112は、サンプリングされた入力(例えば、サンプリングされた動作量431とアプリケーションパラメータ432)を異常検出モデル250に提供し、組み込みソフトウェアアプリケーション212が、非アクティブ実行期間中(例えば、サンプリング点s4の後)に、異常な動作を示しているか否かを判定してもよい。
異常検出エンジン112は、異常動作判定260に基づいて、組み込みソフトウェアアプリケーション212が異常動作を示していることを判定することができる。異常動作判定260は、異常動作を伴う特定のアプリケーションタスクの識別子を含むことができる。異常動作を検出すると、異常検出エンジン112は、例えば、物理システムの中央監視システム、システム運用システム、または組み込みソフトウェアアプリケーション212がサポートする物理システムの動作を監視するように構成された他の論理エンティティに、異常アラートを提供することができる。したがって、異常検出エンジン112は、組み込みソフトウェアの実行中に異常なアプリケーション動作を検出することをサポートすることができる。
本明細書に記載するように、機械学習ベースの異常検出機能は、学習フェーズと実行フェーズにおいて提供することができる。サンプリングして、特に動作量とアプリケーションパラメータの両方を使用してモデルを訓練することで、本明細書に記載する機械学習ベースの異常検出機能は、組み込みソフトウェア異常な動作を識別することができる、効率的かつ正確なメカニズムを提供することができる。それらのサンプリングされた状況に基づいてアプリケーション動作を学習することにより、異常モデル訓練エンジン110と異常検出エンジン112は、マルウェアがシステムにどのように侵入するか(例えば、侵入の様式は識別される必要がない)に関係なく、異常な動作を識別することができる。さらに、未確認または未知のマルウェアの検出をサポートすることができる。動作量はアプリケーションパラメータと相関関係があるため、本明細書に記載する機械学習ベースの異常検出機能は、マルウェアの特定の攻撃パターンまたは特性に関する予備知識を必要としない。したがって、本明細書に記載する特徴は、アプリケーションセキュリティの有効性とロバスト性を向上させることができる。さらに、タスク特有の異常がタスク特有のモデルを介してサポートされるため、マルウェアの侵入の識別において細分性と柔軟性を向上させることができる。
図5は、異常検出モデルの学習フェーズの訓練をサポートするためにシステムが実行可能なロジック500の例を示す。例えば、システム100は、ロジック500を、ハードウェア、コンピュータが読み取り可能な媒体に記憶された実行可能命令、またはそれら両方の組み合わせとして実装してもよい。システム100は、異常モデル訓練エンジン110を用いてロジック500を実行してもよい。異常モデル訓練エンジン110を用いてシステム100は、機械学習を使用して組み込みソフトウェアアプリケーション用に異常検出モデルを訓練する方法として、ロジック500を実行してもよい。ロジック500の以下の説明は、一実施例として、異常モデル訓練エンジン110を用いて行う。しかし、システム100による他の様々な実施オプションが可能である。
ロジック500を実行する際に、異常モデル訓練エンジン110は、特定のサンプリング点で組み込みソフトウェアアプリケーションをサンプリングして、組み込みソフトウェアアプリケーションの動作量とアプリケーションパラメータを取得することができる(502)。また、異常モデル訓練エンジン110は、特定のサンプリング点で得られた動作量とアプリケーションパラメータに基づいて訓練データを生成し(504)、訓練データを用いて異常検出モデルを構築することができる(506)。異常モデル訓練エンジン110は、タスクベースを含めて、本明細書に記載の様々な方法のいずれによっても上記のステップ502、504および506を実行することができる。そのようにして異常モデル訓練エンジン110は、動作量とアプリケーションパラメータの入力に基づいて組み込みソフトウェアアプリケーションが異常な動作を示すか否かの判定を提供するように構成された異常検出モデルを訓練することができる。
図6は、組み込みソフトウェアの実行中に異常検出をサポートするためにシステムが実行可能なロジック600の例を示す。例えば、システム100は、ロジック600を、ハードウェア、コンピュータが読み取り可能な媒体に記憶された実行可能命令、またはそれら両方の組み合わせとして実装してもよい。システム100は、異常検出エンジン112を用いてロジック600を実行してもよい。異常検出エンジン112を用いてシステム100は、組み込みソフトウェアアプリケーションの実行中に異常な動作を検出する方法として、ロジック600を実行してもよい。ロジック600の以下の説明は、一実施例として、異常検出エンジン112を用いて行う。しかし、システム100による他の様々な実施オプションが可能である。
ロジック600を実行する際に、異常検出エンジン112は、組み込みソフトウェアアプリケーションの実行中、サンプリング点で組み込みソフトウェアアプリケーションをサンプリングすることができる(602)。その際、異常検出エンジン112は、実行中に動作量とアプリケーションパラメータを取得することができる。次に、異常検出エンジン112は、実行中に、組み込みソフトウェアアプリケーションが非アクティブ実行期間に入ることを判定することができる(604)。この判定は、例えば、組み込みソフトウェアアプリケーションが予定されたアプリケーションタスクの実行を完了することを判定したり、組み込みシステムのコンピュータ資源がアイドル状態または非アクティブ状態になったことを識別したりすることによって行われる。
組み込みソフトウェアアプリケーションが非アクティブ実行期間に入ったという判定に応答して、異常検出エンジン112は、組み込みソフトウェア用に訓練された異常検出モデルにアクセスし(606)、異常検出モデルへの入力として、実行中にサンプリングされた動作量とアプリケーションパラメータを提供することができる(608)。また、異常検出エンジン112は、提供した入力に対する異常検出モデルからの出力に基づいて、組み込みソフトウェアアプリケーションが異常な動作を示しているか否かを判定することができる(610)。
異常検出エンジン112は、タスクベースを含めて、本明細書に記載の様々な方法のいずれによっても上記のステップ602、604、606、608および610を実行することができる。そのようにして異常検出エンジン112は、組み込みソフトウェアアプリケーションの実行中に異常なアプリケーション動作を検出することができる。
図5および図6に示すロジックは、システムがサポート可能な、組み込みソフトウェアアプリケーション用の機械学習ベースの異常検出の一例を示している。ロジック500および/またはロジック600における追加のまたは代替のステップが、本明細書では検討されている。その中には、異常モデル訓練エンジン110、異常検出エンジン112、または両者の組み合わせに関して本明細書に記載されている任意の特徴に係るものも含まれる。
図7は、組み込みソフトウェアアプリケーションのための機械学習ベースの異常検出をサポートするシステム700の例を示す。システム700は、プロセッサ710を含んでよく、プロセッサ710は、単一または複数のプロセッサの形態をとることができる。プロセッサ710には、中央処理装置(CPU)、マイクロプロセッサ、またはコンピュータが読み取り可能な媒体上に記憶された命令を実行するのに適した任意のハードウェア装置が含まれてよい。システム700は、コンピュータが読み取り可能な媒体720を含んでもよい。コンピュータが読み取り可能な媒体720は、任意の非一時的な、電子的、磁気的、光学的またはその他の物理的な記憶装置であって、図7に示す異常モデル訓練命令722と異常検出命令724のような実行可能命令を記憶する記憶装置の形態をとることができる。したがって、コンピュータが読み取り可能な媒体720は、例えば、ダイナミックRAM(DRAM)のようなランダムアクセスメモリ(RAM)、フラッシュメモリ、スピントランスファートルクメモリ、電気的に消去可能なPROM(EEPROM)、ストレージドライブ、光ディスク等であってもよい。
システム700は、プロセッサ710を介して、コンピュータが読み取り可能な媒体720に記憶された命令を実行することができる。命令(例えば、異常モデル訓練命令722および異常検出命令724)を実行すると、システム700は、本明細書に記載する機械学習ベースの異常検出機能のいずれかを実行することができる。実行される機能には、異常モデル訓練エンジン110、異常検出エンジン112、またはそれら両方の組み合わせに関する任意の特徴に係るものが含まれる。
例えば、プロセッサ710により異常モデル訓練命令722を実行することで、システム700は、所定のサンプリング点で組み込みソフトウェアアプリケーションをサンプリングして、組み込みソフトウェアアプリケーションの前のサンプリング点以降の動作量と、組み込みソフトウェアアプリケーションのアプリケーションパラメータとを、所定のサンプリング点で取得することができる。また、プロセッサ710により異常モデル訓練命令722を実行することで、システム700は、所定のサンプリング点で得られた動作量とアプリケーションパラメータに基づいて訓練データを生成し、訓練データを用いて異常検出モデルを構築することができる。構築された異常検出モデルは、動作量とアプリケーションパラメータの入力に基づいて、組み込みソフトウェアアプリケーションが異常な動作を示しているか否かの判定を提供するように構成することができる。
プロセッサ710により異常検出命令724を実行することで、システム700は、組み込みソフトウェアアプリケーションの実行中に所定のサンプリング点でその組み込みソフトウェアアプリケーションをサンプリングして、その実行中に動作量とアプリケーションパラメータを取得し、かつ、その実行中に、組み込みソフトウェアアプリケーションが非アクティブ実行期間に入ることを判定することができる。さらに、プロセッサ710により異常検出命令724を実行することで、システム700は、応答して、動作量とアプリケーションパラメータの入力に基づいて、組み込みソフトウェアアプリケーションが異常な動作を示しているか否かの判定を提供するように構成された異常検出モデルにアクセスし、かつ、異常検出モデルへの入力として、実行中にサンプリングされた動作量とアプリケーションパラメータを提供し、かつ、提供した入力に対する異常検出モデルからの出力に基づいて、組み込みソフトウェアアプリケーションが異常な動作を示しているか否かを判定することができる。
本明細書に記載する任意の追加的または代替的な特徴は、異常モデル訓練命令722、異常検出命令724、またはそれら両方の組み合わせを用いて実現することができる。
異常モデル訓練エンジン110と異常検出エンジン112を含め、上述したシステム、方法、装置およびロジックは、ハードウェア、ロジック、回路、およびコンピュータが読み取り可能な媒体に記憶された実行可能命令の数多くの様々な組合せで、かつ、数多くの様々な方法で実装することができる。例えば、異常モデル訓練エンジン110、異常検出エンジン112、またはこれらの組合せは、コントローラ内の回路、マイクロプロセッサもしくは特定用途向け集積回路(ASIC)を含んでもよい。あるいは、個別論理もしくは構成要素群、または、単一の集積回路上に結合された、もしくは複数の集積回路に分散された、その他の種類のアナログもしくはデジタル回路の組合せで実現されてもよい。コンピュータプログラム製品などの製品には、記憶媒体と、その媒体上に記憶されたコンピュータが読み取り可能な命令が含まれ得る。その命令は、エンドポイント、コンピューターシステムまたは他の装置で実行されると、上記の記述のいずれかに係る動作をその装置に実行させる。実行される動作には、異常モデル訓練エンジン110、異常検出エンジン112、またはこれらの組合せの任意の特徴に係るものが含まれる。
異常モデル訓練エンジン110と異常検出エンジン112を含め、本明細書に記載のシステム、装置およびエンジンの処理能力は、複数のプロセッサおよびメモリのような複数のシステム構成要素の間で分散されてもよい。複数のシステム構成要素の中には、オプションとして、複数の分散処理システムまたはクラウド/ネットワーク構成要素が含まれてもよい。パラメータ、データベースおよびその他のデータ構造は、別々に記憶されて管理されてもよいし、単一のメモリまたはデータベースに組み込まれてもよいし、多くの様々な方法で論理的および物理的に編成されてもよいし、連結リスト、ハッシュテーブルまたは暗黙的記憶メカニズムなどのデータ構造を含む多くの方法で実装してもよい。プログラムは、単一プログラムの部分(例えば、サブルーチン)もしくは別々のプログラムであってもよいし、複数のメモリおよびプロセッサに分散されてもよいし、または、ライブラリ(例えば、共用ライブラリ)のように多くの様々な方法で実装してもよい。
以上、様々な例について説明したが、さらに多くの実装が可能である。


Claims (12)

  1. 異常モデル訓練エンジンと異常検出エンジンとを含んだシステムであって、
    前記異常モデル訓練エンジンは、
    組み込みソフトウェアアプリケーションを所定のサンプリング点でサンプリングして、前記組み込みソフトウェアアプリケーションの前のサンプリング点以降の動作量と、前記組み込みソフトウェアアプリケーションの前記所定のサンプリング点におけるアプリケーションパラメータとを取得し、
    前記サンプリング点について取得された前記動作量と前記アプリケーションパラメータに基づいて訓練データを生成し、
    前記組み込みソフトウェアアプリケーションの動作量とアプリケーションパラメータの入力に基づいて、前記組み込みソフトウェアアプリケーションが異常動作を示しているか否かについての判定を提供するように設定された異常検出モデルを、前記訓練データを用いて構築し、
    パラメータ選択プロセスを実行して、前記訓練データに含めるための、前記取得したアプリケーションパラメータの特定のサブセットを特定することによって、前記訓練データを生成し、該パラメータ選択プロセスを、統計的相関、整合性チェックまたは両方の組み合わせを用いて実行する、ように構成され、
    前記異常検出エンジンは、
    前記組み込みソフトウェアアプリケーションの実行中に前記所定のサンプリング点で前記組み込みソフトウェアアプリケーションをサンプリングして、該実行中の前記組み込みソフトウェアアプリケーションの動作量アプリケーションパラメータを取得し、
    前記異常検出モデルへの入力として、前記実行中にサンプリングされた前記動作量と前記アプリケーションパラメータを提供し、
    前記提供した入力に対する前記異常検出モデルからの出力に基づいて、前記組み込みソフトウェアアプリケーションが異常動作を示しているか否かを判定する、ように構成される、システム
  2. 前記異常モデル訓練エンジンは、前記組み込みソフトウェアアプリケーションの実行がエミュレータを用いて行われる学習フェーズの間に前記組み込みソフトウェアアプリケーションをサンプリングするように構成され、
    前記異常検出エンジンは、前記組み込みソフトウェアアプリケーションの実行が、前記組み込みソフトウェアアプリケーションが組み込まれているハードウェアコンポーネントを用いて行われる前記実行中に前記組み込みソフトウェアアプリケーションをサンプリングするように構成されている請求項1に記載のシステム。
  3. 前記異常モデル訓練エンジンは、
    前記所定のサンプリング点で前記組み込みソフトウェアアプリケーションによって実行されている所定のアプリケーションタスクを識別し、
    前記所定のアプリケーションタスクのタスク特有の異常検出モデルを含む複数のタスク特有の異常検出モデルを含むように、前記異常検出モデルを構築するようにさらに構成されている、請求項1に記載のシステム。
  4. 前記異常検出エンジンは、
    前記実行中に複数のサンプリング点で前記組み込みソフトウェアアプリケーションをサンプリングし、
    前記複数のサンプリング点で前記組み込みソフトウェアアプリケーションによって実行されている所定のアプリケーションタスクに基づいて、前記複数のサンプリング点でサンプリングされた前記組み込みソフトウェアアプリケーションの動作量アプリケーションパラメータに使用するモデルを前記複数のタスク特有の異常検出モデルの中から選択するようにさらに構成されている、請求項3に記載のシステム。
  5. 前記動作量には、前記前のサンプリング点以降に実行された命令数、前記前のサンプリング点以降の実行時間、または両方の組み合わせが含まれる、請求項1に記載のシステム。
  6. 前記異常モデル訓練エンジンは、前記組み込みソフトウェアアプリケーションによって記憶されたグローバル変数または静的変数から、前記所定のサンプリング点において、前記組み込みソフトウェアアプリケーションの前記アプリケーションパラメータを取得するように構成されている、請求項1に記載のシステム。
  7. 前記異常検出エンジンは、
    前記実行中に、前記組み込みソフトウェアアプリケーションが非アクティブ実行期間に入ることを判定し、
    前記組み込みソフトウェアアプリケーションが前記非アクティブ実行期間にある間に、前記異常検出モデルに対して前記入力を提供し、前記異常検出モデルを使用して、前記組み込みソフトウェアアプリケーションが異常動作を示しているか否かを判定するようにさらに構成されている、請求項1に記載のシステム。
  8. 組み込みシステムに実装される異常検出エンジンにより、
    前記組み込みシステムにおいて作動する組み込みソフトウェアアプリケーションの実行中に所定のサンプリング点で前記組み込みソフトウェアアプリケーションをサンプリングして、前記実行中に前記組み込みソフトウェアアプリケーションの動作量アプリケーションパラメータを取得する過程と
    前記実行中に、前記組み込みソフトウェアアプリケーションが非アクティブ実行期間に入ることを判定この判定に応答して、
    前記組み込みソフトウェアアプリケーションの動作量とアプリケーションパラメータの入力に基づいて、前記組み込みソフトウェアアプリケーションが異常動作を示しているか否かの判定を提供するように構成された異常検出モデルにアクセス
    前記異常検出モデルへの入力として、前記実行中に前記所定のサンプリング点でサンプリングされた前記動作量と前記アプリケーションパラメータを提供
    前記提供した入力に対する前記異常検出モデルからの出力に基づいて、前記組み込みソフトウェアアプリケーションが異常動作を示しているか否かを判定する過程とを実行し、
    異常モデル訓練エンジンにより、学習フェーズにおいて前記異常検出モデルを訓練する過程を実行し、
    該訓練は、
    前記組み込みソフトウェアアプリケーションを前記所定のサンプリング点でサンプリングして、前記組み込みソフトウェアアプリケーションの前のサンプリング点以降の動作量と、前記組み込みソフトウェアアプリケーションの前記所定のサンプリング点におけるアプリケーションパラメータとを取得し、
    前記所定のサンプリング点について取得された前記動作量と前記アプリケーションパラメータに基づいて訓練データを生成し、
    前記訓練データを用いて前記異常検出モデルを構築し、
    パラメータ選択プロセスを実行して、前記訓練データに含めるための、前記取得したアプリケーションパラメータの特定のサブセットを特定することによって、前記訓練データを生成し、該パラメータ選択プロセスを、統計的相関、整合性チェックまたは両方の組み合わせを用いて実行する、ことを含む、方法。
  9. 前記動作量には、前のサンプリング点以降に実行された命令数、前記前のサンプリング点以降の実行時間、または両方の組み合わせが含まれる、請求項8に記載の方法。
  10. 前記異常検出モデルは、複数あるアプリケーションタスクのそれぞれに特有とした複数の異常検出モデルを含む複数のタスク特有の異常検出モデルを含み、
    前記実行中に複数のサンプリング点で前記組み込みソフトウェアアプリケーションをサンプリングし、
    前記複数のサンプリング点で前記組み込みソフトウェアアプリケーションによって実行されている所定のアプリケーションタスクに基づいて、前記複数のサンプリング点でサンプリングされた前記組み込みソフトウェアアプリケーションの動作量アプリケーションパラメータに使用するモデルを前記複数のタスク特有の異常検出モデルの中から選択する、請求項8に記載の方法。
  11. 前記所定のサンプリング点での前記組み込みソフトウェアアプリケーションのサンプリングは、前記組み込みソフトウェアアプリケーションによって記憶されたグローバル変数または静的変数から、前記所定のサンプリング点において、前記組み込みソフトウェアアプリケーションの前記アプリケーションパラメータを取得することを含む、請求項8に記載の方法。
  12. プロセッサによって遂行される命令を入れた非一時的コンピュータ可読媒体であって、
    前記命令を遂行する前記プロセッサが、組み込みソフトウェアアプリケーションに関する異常検出モデルを訓練する異常モデル訓練エンジンとして動作し、
    該異常モデル訓練エンジンが、
    前記組み込みソフトウェアアプリケーションを所定のサンプリング点でサンプリングして、前記組み込みソフトウェアアプリケーションの前のサンプリング点以降の動作量と、前記組み込みソフトウェアアプリケーションの前記所定のサンプリング点におけるアプリケーションパラメータとを取得する過程と、
    前記サンプリング点について取得された前記動作量と前記アプリケーションパラメータに基づいて訓練データを生成する過程と、
    前記組み込みソフトウェアアプリケーションの動作量とアプリケーションパラメータの入力に基づいて、前記組み込みソフトウェアアプリケーションが異常動作を示しているか否かについての判定を提供するように設定された前記異常検出モデルを、前記訓練データを用いて構築する過程と、
    パラメータ選択プロセスを実行して、前記訓練データに含めるための、前記取得したアプリケーションパラメータの特定のサブセットを特定することによって、前記訓練データを生成し、該パラメータ選択プロセスを、統計的相関、整合性チェックまたは両方の組み合わせを用いて実行する過程とを実行する、ように構成される、非一時的なコンピュータ可読媒体
JP2021551570A 2019-03-05 2019-03-05 組み込みソフトウェアアプリケーションのための機械学習ベースの異常検出 Active JP7282195B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/020701 WO2020180300A1 (en) 2019-03-05 2019-03-05 Machine learning-based anomaly detections for embedded software applications

Publications (2)

Publication Number Publication Date
JP2022522474A JP2022522474A (ja) 2022-04-19
JP7282195B2 true JP7282195B2 (ja) 2023-05-26

Family

ID=65818632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021551570A Active JP7282195B2 (ja) 2019-03-05 2019-03-05 組み込みソフトウェアアプリケーションのための機械学習ベースの異常検出

Country Status (5)

Country Link
US (1) US20220147614A1 (ja)
EP (1) EP3918500B1 (ja)
JP (1) JP7282195B2 (ja)
CN (1) CN113508381B (ja)
WO (1) WO2020180300A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112019006821B4 (de) * 2019-03-06 2023-02-09 Mitsubishi Electric Corporation Angriffserfassungseinrichtung und angriffserfassungsprogramm
US11449711B2 (en) * 2020-01-02 2022-09-20 Applied Materials Isreal Ltd. Machine learning-based defect detection of a specimen
CN112764969A (zh) * 2020-12-31 2021-05-07 未鲲(上海)科技服务有限公司 应用软件的异常处理方法及相关设备
CN114327916B (zh) * 2022-03-10 2022-06-17 中国科学院自动化研究所 一种资源分配系统的训练方法、装置及设备
CN115408696B (zh) * 2022-11-02 2023-04-07 荣耀终端有限公司 应用识别方法及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070635A (ja) 2009-08-28 2011-04-07 Hitachi Ltd 設備状態監視方法およびその装置
JP2013143077A (ja) 2012-01-12 2013-07-22 Hitachi Ltd 制御装置の監視方法および制御装置監視システム
JP2015508927A (ja) 2012-09-20 2015-03-23 テンセント テクノロジー(シェンツェン) カンパニー リミテッドTencent Technology (Shenzhen) Company Limited ウイルススキャン方法及びウイルススキャン装置
JP2017199365A (ja) 2016-04-25 2017-11-02 ゼネラル・エレクトリック・カンパニイ 産業資産制御システム用のドメインレベル脅威検出
JP2017219947A (ja) 2016-06-06 2017-12-14 日本電信電話株式会社 異常検出装置、異常検出方法及び異常検出プログラム
WO2018230471A1 (ja) 2017-06-13 2018-12-20 ロゴヴィスタ株式会社 ウィルスの監視プログラム

Family Cites Families (164)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671811B1 (en) * 1999-10-25 2003-12-30 Visa Internation Service Association Features generation for use in computer network intrusion detection
US6519703B1 (en) * 2000-04-14 2003-02-11 James B. Joyce Methods and apparatus for heuristic firewall
US7448084B1 (en) * 2002-01-25 2008-11-04 The Trustees Of Columbia University In The City Of New York System and methods for detecting intrusions in a computer system by monitoring operating system registry accesses
US7752665B1 (en) * 2002-07-12 2010-07-06 TCS Commercial, Inc. Detecting probes and scans over high-bandwidth, long-term, incomplete network traffic information using limited memory
US7424489B1 (en) * 2004-01-23 2008-09-09 At&T Corp. Methods and apparatus for space efficient adaptive detection of multidimensional hierarchical heavy hitters
US20050229250A1 (en) * 2004-02-26 2005-10-13 Ring Sandra E Methodology, system, computer readable medium, and product providing a security software suite for handling operating system exploitations
FR2888071A1 (fr) * 2005-06-30 2007-01-05 France Telecom Module et systeme de communication pour la mise en oeuvre d'un systeme de gestion a distance d'equipements
US20070030842A1 (en) * 2005-07-18 2007-02-08 Walter Borden System for the analysis and monitoring of ip communications
CA2531410A1 (en) * 2005-12-23 2007-06-23 Snipe Network Security Corporation Behavioural-based network anomaly detection based on user and group profiling
US20070289013A1 (en) * 2006-06-08 2007-12-13 Keng Leng Albert Lim Method and system for anomaly detection using a collective set of unsupervised machine-learning algorithms
US8171545B1 (en) * 2007-02-14 2012-05-01 Symantec Corporation Process profiling for behavioral anomaly detection
US8015133B1 (en) * 2007-02-20 2011-09-06 Sas Institute Inc. Computer-implemented modeling systems and methods for analyzing and predicting computer network intrusions
IL195081A0 (en) * 2008-11-03 2011-08-01 Deutche Telekom Ag Acquisition of malicious code using active learning
US8516590B1 (en) * 2009-04-25 2013-08-20 Dasient, Inc. Malicious advertisement detection and remediation
US8549643B1 (en) * 2010-04-02 2013-10-01 Symantec Corporation Using decoys by a data loss prevention system to protect against unscripted activity
US20110295672A1 (en) * 2010-05-25 2011-12-01 Dimitriadis Christos K Methods and a system for detecting fraud in betting and lottery games
US9094291B1 (en) * 2010-12-14 2015-07-28 Symantec Corporation Partial risk score calculation for a data object
US8863256B1 (en) * 2011-01-14 2014-10-14 Cisco Technology, Inc. System and method for enabling secure transactions using flexible identity management in a vehicular environment
TWI534658B (zh) * 2011-03-25 2016-05-21 義守大學 資料輸入異常之警示方法
US8418249B1 (en) * 2011-11-10 2013-04-09 Narus, Inc. Class discovery for automated discovery, attribution, analysis, and risk assessment of security threats
US20140114442A1 (en) * 2012-10-22 2014-04-24 The Boeing Company Real time control system management
CN104335196B (zh) * 2012-10-22 2017-10-13 英特尔公司 用于传送数据的方法、装置和系统
US9141791B2 (en) * 2012-11-19 2015-09-22 Hewlett-Packard Development Company, L.P. Monitoring for anomalies in a computing environment
US20140157405A1 (en) * 2012-12-04 2014-06-05 Bill Joll Cyber Behavior Analysis and Detection Method, System and Architecture
JP6643085B2 (ja) * 2012-12-06 2020-02-12 ザ・ボーイング・カンパニーThe Boeing Company 脅威検出のためのコンテキスト・アウェア・ネットワーク・セキュリティ・モニタリング
US9378361B1 (en) * 2012-12-31 2016-06-28 Emc Corporation Anomaly sensor framework for detecting advanced persistent threat attacks
KR20150119895A (ko) * 2013-02-15 2015-10-26 퀄컴 인코포레이티드 다수의 분석기 모델 제공자들을 갖는 이동 디바이스에서의 온-라인 거동 분석 엔진
US9159035B1 (en) * 2013-02-23 2015-10-13 Fireeye, Inc. Framework for computer application analysis of sensitive information tracking
US9509688B1 (en) * 2013-03-13 2016-11-29 EMC IP Holding Company LLC Providing malicious identity profiles from failed authentication attempts involving biometrics
US8850597B1 (en) * 2013-03-14 2014-09-30 Ca, Inc. Automated message transmission prevention based on environment
US9208326B1 (en) * 2013-03-14 2015-12-08 Ca, Inc. Managing and predicting privacy preferences based on automated detection of physical reaction
US9055071B1 (en) * 2013-03-14 2015-06-09 Ca, Inc. Automated false statement alerts
US9047253B1 (en) * 2013-03-14 2015-06-02 Ca, Inc. Detecting false statement using multiple modalities
US8887300B1 (en) * 2013-03-14 2014-11-11 Ca, Inc. Automated message transmission prevention based on a physical reaction
US9256748B1 (en) * 2013-03-14 2016-02-09 Ca, Inc. Visual based malicious activity detection
WO2014149827A1 (en) * 2013-03-15 2014-09-25 REMTCS Inc. Artificial neural network interface and methods of training the same for various use cases
WO2014144857A2 (en) * 2013-03-15 2014-09-18 Power Fingerprinting Inc. Systems, methods, and apparatus to enhance the integrity assessment when using power fingerprinting systems for computer-based systems
KR101794116B1 (ko) * 2013-03-18 2017-11-06 더 트러스티스 오브 컬럼비아 유니버시티 인 더 시티 오브 뉴욕 하드웨어 특징들을 사용한 이상 프로세스들의 비감시된 검출
US9652617B1 (en) * 2013-06-25 2017-05-16 Amazon Technologies, Inc. Analyzing security of applications
US9166993B1 (en) * 2013-07-25 2015-10-20 Symantec Corporation Anomaly detection based on profile history and peer history
US20150067853A1 (en) * 2013-08-27 2015-03-05 Georgia Tech Research Corporation Systems and methods for detecting malicious mobile webpages
CN104517094A (zh) * 2013-09-30 2015-04-15 阿里巴巴集团控股有限公司 一种身份验证方法和身份验证装置
US9870465B1 (en) * 2013-12-04 2018-01-16 Plentyoffish Media Ulc Apparatus, method and article to facilitate automatic detection and removal of fraudulent user information in a network environment
US9747446B1 (en) * 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
CN103761481A (zh) * 2014-01-23 2014-04-30 北京奇虎科技有限公司 一种恶意代码样本自动处理的方法及装置
US10129288B1 (en) * 2014-02-11 2018-11-13 DataVisor Inc. Using IP address data to detect malicious activities
CN103825888A (zh) * 2014-02-17 2014-05-28 北京奇虎科技有限公司 网络威胁处理方法及设备
US8997226B1 (en) * 2014-04-17 2015-03-31 Shape Security, Inc. Detection of client-side malware activity
US9942254B1 (en) * 2014-07-10 2018-04-10 ThetaRay Ltd. Measure based anomaly detection
EP2975873A1 (en) * 2014-07-17 2016-01-20 Telefonica Digital España, S.L.U. A computer implemented method for classifying mobile applications and computer programs thereof
US20160057159A1 (en) * 2014-08-22 2016-02-25 Syracuse University Semantics-aware android malware classification
US9773112B1 (en) * 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US10027689B1 (en) * 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US20160191549A1 (en) * 2014-10-09 2016-06-30 Glimmerglass Networks, Inc. Rich metadata-based network security monitoring and analysis
US9483742B1 (en) * 2014-10-27 2016-11-01 Amazon Technologies, Inc. Intelligent traffic analysis to detect malicious activity
US9985984B1 (en) * 2014-10-27 2018-05-29 National Technology & Engineering Solutions Of Sandia, Llc Dynamic defense and network randomization for computer systems
US20160182542A1 (en) * 2014-12-18 2016-06-23 Stuart Staniford Denial of service and other resource exhaustion defense and mitigation using transition tracking
US9690933B1 (en) * 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
KR20160099160A (ko) * 2015-02-11 2016-08-22 한국전자통신연구원 명령어 집합의 행위 패턴을 엔-그램 방식으로 모델링하는 방법, 그 방법으로 동작하는 컴퓨팅 장치, 및 그 방법을 컴퓨팅 장치에서 실행하도록 구성되는 기록 매체에 저장된 프로그램
LU92657B1 (en) * 2015-02-16 2016-08-17 Universität des Saarlandes Mining sandboxes
EP3262815B1 (en) * 2015-02-24 2020-10-14 Cisco Technology, Inc. System and method for securing an enterprise computing environment
US20160306971A1 (en) * 2015-04-15 2016-10-20 Los Alamos National Security, Llc Automated identification and reverse engineering of malware
US10015175B2 (en) * 2015-04-16 2018-07-03 Los Alamos National Security, Llc Detecting anomalous behavior via user authentication graphs
US9594904B1 (en) * 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
WO2017014823A2 (en) * 2015-05-04 2017-01-26 Hasan Syed Kamran Method and device for managing security in a computer network
US10122740B1 (en) * 2015-05-05 2018-11-06 F5 Networks, Inc. Methods for establishing anomaly detection configurations and identifying anomalous network traffic and devices thereof
US20160359695A1 (en) * 2015-06-04 2016-12-08 Cisco Technology, Inc. Network behavior data collection and analytics for anomaly detection
US20160379136A1 (en) * 2015-06-26 2016-12-29 Qualcomm Incorporated Methods and Systems for Automatic Extraction of Behavioral Features from Mobile Applications
CN105095756A (zh) * 2015-07-06 2015-11-25 北京金山安全软件有限公司 可移植文档格式文档的检测方法和装置
US9992211B1 (en) * 2015-08-27 2018-06-05 Symantec Corporation Systems and methods for improving the classification accuracy of trustworthiness classifiers
GB201515394D0 (en) * 2015-08-28 2015-10-14 Status Today Ltd Predictive activity detection on a computer network
WO2017037444A1 (en) * 2015-08-28 2017-03-09 Statustoday Ltd Malicious activity detection on a computer network and network metadata normalisation
US20170061126A1 (en) * 2015-09-02 2017-03-02 Nehemiah Security Process Launch, Monitoring and Execution Control
US9641544B1 (en) * 2015-09-18 2017-05-02 Palo Alto Networks, Inc. Automated insider threat prevention
CN105335655A (zh) * 2015-09-22 2016-02-17 南京大学 一种基于敏感行为识别的安卓应用安全性分析方法
US10033747B1 (en) * 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
CN105320887A (zh) * 2015-10-12 2016-02-10 湖南大学 一种基于静态特征提取和选择的Android恶意应用检测方法
CN105205396A (zh) * 2015-10-15 2015-12-30 上海交通大学 一种基于深度学习的安卓恶意代码检测系统及其方法
US20170134405A1 (en) * 2015-11-09 2017-05-11 Qualcomm Incorporated Dynamic Honeypot System
CN105468977A (zh) * 2015-12-14 2016-04-06 厦门安胜网络科技有限公司 一种基于朴素贝叶斯的Android恶意软件分类方法和装置
CN105468995A (zh) * 2015-12-15 2016-04-06 吉林大学 以Oracle为核心的基于数据挖掘入侵检测系统
US9985982B1 (en) * 2015-12-21 2018-05-29 Cisco Technology, Inc. Method and apparatus for aggregating indicators of compromise for use in network security
CN106911637A (zh) * 2015-12-23 2017-06-30 北京奇虎科技有限公司 网络威胁处理方法和装置
CN106911640A (zh) * 2015-12-23 2017-06-30 北京奇虎科技有限公司 网络威胁处理方法和装置
CN109313541A (zh) * 2016-03-23 2019-02-05 戴特威瑟公司 用于显示和比较攻击遥测资源的用户界面
US9998484B1 (en) * 2016-03-28 2018-06-12 EMC IP Holding Company LLC Classifying potentially malicious and benign software modules through similarity analysis
US9838407B1 (en) * 2016-03-30 2017-12-05 EMC IP Holding Company LLC Detection of malicious web activity in enterprise computer networks
WO2017193036A1 (en) * 2016-05-05 2017-11-09 Cylance Inc. Machine learning model for malware dynamic analysis
US20170331844A1 (en) * 2016-05-13 2017-11-16 Sikorsky Aircraft Corporation Systems and methods for assessing airframe health
US20170337372A1 (en) * 2016-05-18 2017-11-23 Trustlook Inc. Maliciousness Categorization of Application Packages Based on Dynamic Analysis
US20170359376A1 (en) * 2016-06-14 2017-12-14 Cymmetria, Inc. Automated threat validation for improved incident response
US20170366562A1 (en) * 2016-06-15 2017-12-21 Trustlook Inc. On-Device Maliciousness Categorization of Application Programs for Mobile Devices
GB201610883D0 (en) * 2016-06-22 2016-08-03 Microsoft Technology Licensing Llc Privacy-preserving machine learning
US20180020024A1 (en) * 2016-07-14 2018-01-18 Qualcomm Incorporated Methods and Systems for Using Self-learning Techniques to Protect a Web Application
US20180018459A1 (en) * 2016-07-15 2018-01-18 Trustlook Inc. Notification of Maliciousness Categorization of Application Programs for Mobile Devices
US10045218B1 (en) * 2016-07-27 2018-08-07 Argyle Data, Inc. Anomaly detection in streaming telephone network data
US20180039779A1 (en) * 2016-08-04 2018-02-08 Qualcomm Incorporated Predictive Behavioral Analysis for Malware Detection
DE202017007517U1 (de) * 2016-08-11 2022-05-03 Twitter, Inc. Aggregatmerkmale für maschinelles Lernen
CN106339628A (zh) * 2016-08-16 2017-01-18 天津大学 基于微体系结构级别的硬件反病毒装置
US20180054449A1 (en) * 2016-08-18 2018-02-22 Qualcomm Incorporated Methods and Systems for Protecting Computing Devices from Non-Benign Software Applications via Collaborative Application Detonation
EP3293937A1 (en) * 2016-09-12 2018-03-14 Vectra Networks, Inc. Method and system for detecting malicious payloads
CN106503552A (zh) * 2016-09-19 2017-03-15 南京邮电大学 基于签名与数据流模式挖掘的Android恶意软件检测系统及方法
US10484411B1 (en) * 2016-10-07 2019-11-19 Hrl Laboratories, Llc System for anomaly detection on CAN bus data with sparse and low rank decomposition of transfer entropy matrix
US20180137401A1 (en) * 2016-11-16 2018-05-17 Microsoft Technology Licensing, Llc Security systems and methods using an automated bot with a natural language interface for improving response times for security alert response and mediation
CN106709332A (zh) * 2016-12-13 2017-05-24 江苏通付盾科技有限公司 应用检测的方法及装置
CN108229153A (zh) * 2016-12-21 2018-06-29 青岛祥智电子技术有限公司 一种高级持续性威胁攻击的判别方法
US9774726B1 (en) * 2016-12-22 2017-09-26 Microsoft Technology Licensing, Llc Detecting and preventing fraud and abuse in real time
CN106874760A (zh) * 2016-12-23 2017-06-20 浙江工业大学 一种基于层次式SimHash的Android恶意代码分类方法
CN106874761A (zh) * 2016-12-30 2017-06-20 北京邮电大学 一种安卓系统恶意应用检测方法及系统
KR20180081444A (ko) * 2017-01-06 2018-07-16 삼성전자주식회사 콘텐츠를 처리하는 장치 및 방법
WO2018128403A1 (en) * 2017-01-06 2018-07-12 Samsung Electronics Co., Ltd. Apparatus and method for processing content
CN108287992A (zh) * 2017-01-07 2018-07-17 长沙有干货网络技术有限公司 一种基于安卓的计算器学习的恶意程序检测系统
US20180198812A1 (en) * 2017-01-11 2018-07-12 Qualcomm Incorporated Context-Based Detection of Anomalous Behavior in Network Traffic Patterns
CN106612289A (zh) * 2017-01-18 2017-05-03 中山大学 一种基于sdn的网络协同异常检测方法
US10931694B2 (en) * 2017-02-24 2021-02-23 LogRhythm Inc. Processing pipeline for monitoring information systems
CN107103235A (zh) * 2017-02-27 2017-08-29 广东工业大学 一种基于卷积神经网络的Android恶意软件检测方法
CN106845240A (zh) * 2017-03-10 2017-06-13 西京学院 一种基于随机森林的Android恶意软件静态检测方法
CN106951782A (zh) * 2017-03-22 2017-07-14 中南大学 一种面向安卓应用的恶意代码检测方法
US11783046B2 (en) * 2017-04-26 2023-10-10 Elasticsearch B.V. Anomaly and causation detection in computing environments
CN107104973A (zh) * 2017-05-09 2017-08-29 北京潘达互娱科技有限公司 用户行为的校验方法及装置
CN107169351A (zh) * 2017-05-11 2017-09-15 北京理工大学 结合动态行为特征的Android未知恶意软件检测方法
CN107330326A (zh) * 2017-05-12 2017-11-07 中国科学院信息工程研究所 一种恶意木马检测处理方法及装置
US9882918B1 (en) * 2017-05-15 2018-01-30 Forcepoint, LLC User behavior profile in a blockchain
US20180337935A1 (en) * 2017-05-16 2018-11-22 Entit Software Llc Anomalous entity determinations
CN107181745A (zh) * 2017-05-16 2017-09-19 阿里巴巴集团控股有限公司 恶意消息识别方法、装置、设备和计算机存储介质
CN107273747A (zh) * 2017-05-22 2017-10-20 中国人民公安大学 勒索软件检测的方法
EP3407235A1 (en) * 2017-05-22 2018-11-28 Leap in Value S.L. A computer-implemented method, a system and a computer program for identifying malicious uri data items
CN107222472A (zh) * 2017-05-26 2017-09-29 电子科技大学 一种Hadoop集群下的用户行为异常检测方法
EP3425866A1 (en) * 2017-07-06 2019-01-09 Siemens Aktiengesellschaft Detecting an undefined action in an industrial system
CN107392016A (zh) * 2017-07-07 2017-11-24 四川大学 一种基于代理的Web数据库攻击行为检测系统
US10419468B2 (en) * 2017-07-11 2019-09-17 The Boeing Company Cyber security system with adaptive machine learning features
RU2673708C1 (ru) * 2017-07-17 2018-11-29 Акционерное общество "Лаборатория Касперского" Система и способ машинного обучения модели обнаружения вредоносных файлов
US9978067B1 (en) * 2017-07-17 2018-05-22 Sift Science, Inc. System and methods for dynamic digital threat mitigation
RU2654151C1 (ru) * 2017-08-10 2018-05-16 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных файлов с использованием обученной модели обнаружения вредоносных файлов
CN107392025B (zh) * 2017-08-28 2020-06-26 刘龙 基于深度学习的恶意安卓应用程序检测方法
KR101930293B1 (ko) * 2017-09-12 2018-12-18 연세대학교 산학협력단 정적 분석과 동적 분석을 이용하여 변종 악성코드를 식별하는 장치 및 방법
CN107832610A (zh) * 2017-09-25 2018-03-23 暨南大学 基于组合特征模式的Android恶意软件检测方法
US10706155B1 (en) * 2017-09-28 2020-07-07 Amazon Technologies, Inc. Provision and execution of customized security assessments of resources in a computing environment
RU2661533C1 (ru) * 2017-09-29 2018-07-17 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения признаков компьютерной атаки
KR101880628B1 (ko) * 2017-11-27 2018-08-16 한국인터넷진흥원 기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치
KR101839747B1 (ko) * 2017-11-27 2018-03-19 한국인터넷진흥원 악성코드 정보의 시각화 장치 및 그 방법
CN108090356A (zh) * 2017-12-08 2018-05-29 湖南大学 一种基于图像纹理和bp神经网络的恶意文件检测方法
CN107944274A (zh) * 2017-12-18 2018-04-20 华中科技大学 一种基于宽度学习的Android平台恶意应用离线检测方法
CN108234462A (zh) * 2017-12-22 2018-06-29 杭州安恒信息技术有限公司 一种基于云防护的智能拦截威胁ip的方法
CN108200030A (zh) * 2017-12-27 2018-06-22 深信服科技股份有限公司 恶意流量的检测方法、系统、装置及计算机可读存储介质
CN108345794A (zh) * 2017-12-29 2018-07-31 北京物资学院 恶意软件的检测方法及装置
CN108460277A (zh) * 2018-02-10 2018-08-28 北京工业大学 一种自动化恶意代码变种检测方法
CN108616498A (zh) * 2018-02-24 2018-10-02 国家计算机网络与信息安全管理中心 一种web访问异常检测方法和装置
KR101880686B1 (ko) * 2018-02-28 2018-07-20 에스지에이솔루션즈 주식회사 Ai 딥러닝 기반의 악성코드 탐지 시스템
CN108647518A (zh) * 2018-03-16 2018-10-12 广东工业大学 一种基于深度学习的Android平台恶意软件检测方法
CN108734469A (zh) * 2018-03-22 2018-11-02 阿里巴巴集团控股有限公司 确定待定用户风险标签的方法和装置
CN108681671A (zh) * 2018-05-21 2018-10-19 中国科学技术大学 一种Android移动攻击溯源方法
CN108710800A (zh) * 2018-05-22 2018-10-26 国家计算机网络与信息安全管理中心 一种安卓应用程序的加壳识别方法
CN108712427A (zh) * 2018-05-23 2018-10-26 北京国信安服信息安全科技有限公司 一种动态主动防御的网络安全方法及系统
CN108959924A (zh) * 2018-06-12 2018-12-07 浙江工业大学 一种基于词向量和深度神经网络的Android恶意代码检测方法
US10685159B2 (en) * 2018-06-27 2020-06-16 Intel Corporation Analog functional safety with anomaly detection
CN108846284A (zh) * 2018-06-29 2018-11-20 浙江工业大学 一种基于字节码图像和深度学习的Android恶意应用检测方法
CN108712448A (zh) * 2018-07-09 2018-10-26 四川大学 一种基于动态污点分析的注入式攻击检测模型
CN109190371A (zh) * 2018-07-09 2019-01-11 四川大学 一种基于行为图的Android恶意软件检测方法和技术
US20190050564A1 (en) * 2018-07-12 2019-02-14 Intel Corporation Protection for inference engine against model retrieval attack
CN109033839A (zh) * 2018-08-10 2018-12-18 天津理工大学 一种基于动态多特征的恶意软件检测方法
CN109213857A (zh) * 2018-08-29 2019-01-15 阿里巴巴集团控股有限公司 一种欺诈行为识别方法和装置
CN109284631A (zh) * 2018-10-26 2019-01-29 中国电子科技网络信息安全有限公司 一种基于大数据的文档脱敏系统及方法
CN109240807A (zh) * 2018-11-15 2019-01-18 成都网域复兴科技有限公司 一种基于vmi的恶意程序检测系统和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070635A (ja) 2009-08-28 2011-04-07 Hitachi Ltd 設備状態監視方法およびその装置
JP2013143077A (ja) 2012-01-12 2013-07-22 Hitachi Ltd 制御装置の監視方法および制御装置監視システム
JP2015508927A (ja) 2012-09-20 2015-03-23 テンセント テクノロジー(シェンツェン) カンパニー リミテッドTencent Technology (Shenzhen) Company Limited ウイルススキャン方法及びウイルススキャン装置
JP2017199365A (ja) 2016-04-25 2017-11-02 ゼネラル・エレクトリック・カンパニイ 産業資産制御システム用のドメインレベル脅威検出
JP2017219947A (ja) 2016-06-06 2017-12-14 日本電信電話株式会社 異常検出装置、異常検出方法及び異常検出プログラム
WO2018230471A1 (ja) 2017-06-13 2018-12-20 ロゴヴィスタ株式会社 ウィルスの監視プログラム

Also Published As

Publication number Publication date
EP3918500B1 (en) 2024-04-24
WO2020180300A1 (en) 2020-09-10
US20220147614A1 (en) 2022-05-12
EP3918500A1 (en) 2021-12-08
CN113508381B (zh) 2024-03-01
CN113508381A (zh) 2021-10-15
JP2022522474A (ja) 2022-04-19

Similar Documents

Publication Publication Date Title
JP7282195B2 (ja) 組み込みソフトウェアアプリケーションのための機械学習ベースの異常検出
US10452417B2 (en) Methods, apparatus, and articles of manufacture to virtualize performance counters
TWI534709B (zh) 用於進行虛擬機器分支和平行執行的電腦實施方法、電腦系統及電腦可讀取儲存媒體
US9875141B2 (en) Managing pools of dynamic resources
US20030135720A1 (en) Method and system using hardware assistance for instruction tracing with secondary set of interruption resources
US20170255539A1 (en) Obtaining application performance data for different performance events via a unified channel
US12093398B2 (en) Vulnerability analysis and reporting for embedded systems
US7506207B2 (en) Method and system using hardware assistance for continuance of trap mode during or after interruption sequences
US8677360B2 (en) Thread-related actions based on historical thread behaviors
US8286192B2 (en) Kernel subsystem for handling performance counters and events
JP2022550448A (ja) さまざまなアプリケーションプロセスのための初期データ配信
Ren et al. Camel: Smart, adaptive energy optimization for mobile web interactions
US9542294B2 (en) Method to apply perturbation for resource bottleneck detection and capacity planning
US9606825B2 (en) Memory monitor emulation for virtual machines
CN112035839A (zh) 一种竞态条件漏洞利用的检测方法及装置
Aichouch et al. Evaluation of the overheads and latencies of a virtualized RTOS
US11361077B2 (en) Kernel-based proactive engine for malware detection
US20230168925A1 (en) Computing task scheduling based on an intrusiveness metric
Di Sanzo et al. Markov chain-based adaptive scheduling in software transactional memory
Lurbe et al. DeepP: deep learning multi-program prefetch configuration for the IBM POWER 8
Lay et al. Improving the reliability of real-time embedded systems using innate immune techniques
CN112559276B (zh) 一种cpu使用率监控方法及装置
US20120144171A1 (en) Mechanism for Detection and Measurement of Hardware-Based Processor Latency
Biswas et al. Control Flow Integrity in IoT Devices with Performance Counters and DWT
CN113961921B (zh) 恶意程序检测方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230302

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230516

R150 Certificate of patent or registration of utility model

Ref document number: 7282195

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150