JP2019003598A - 異常な事象を検出するシステム及び方法 - Google Patents

異常な事象を検出するシステム及び方法 Download PDF

Info

Publication number
JP2019003598A
JP2019003598A JP2017198983A JP2017198983A JP2019003598A JP 2019003598 A JP2019003598 A JP 2019003598A JP 2017198983 A JP2017198983 A JP 2017198983A JP 2017198983 A JP2017198983 A JP 2017198983A JP 2019003598 A JP2019003598 A JP 2019003598A
Authority
JP
Japan
Prior art keywords
detected
events
event
determined
context
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.)
Granted
Application number
JP2017198983A
Other languages
English (en)
Other versions
JP6698056B2 (ja
Inventor
ブイ. モナスティルスキ アレクセイ
V Monastyrsky Alexey
ブイ. モナスティルスキ アレクセイ
エー. パヴリュシュチク ミハイル
A Pavlyushchik Mikhail
エー. パヴリュシュチク ミハイル
エム. ロマネンコ アレクセイ
M Romanenko Alexey
エム. ロマネンコ アレクセイ
ワイ. ゴロフキン マキシム
Y Golovkin Maxim
ワイ. ゴロフキン マキシム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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 Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of JP2019003598A publication Critical patent/JP2019003598A/ja
Application granted granted Critical
Publication of JP6698056B2 publication Critical patent/JP6698056B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/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
    • G06F21/54Monitoring 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 by adding security routines or objects to programs
    • 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
    • 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/561Virus type analysis
    • 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/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • 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/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/128Anti-malware arrangements, e.g. protection against SMS fraud or mobile malware
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • 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/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】オペレーティングシステムで発生する異常事象を検出するシステム及び方法を提供する。
【解決手段】方法において、検出ステップでは、オペレーティングシステムで発生する事象を検出し、決定ステップでは、前記検出された事象のコンテキストを決定し、形成ステップでは、前記決定されたコンテキストに対し選択された特徴量に基づいて、検出された事象の畳み込みを形成し、人気度判定ステップでは、複数のクライアント機器上で発生し検出された事象に対応する複数の検出された事象と、検出された事象に対応する複数の検出された事象の頻度に関連するデータを含むデータベースをポーリングすることによって、検出された事象に対し形成された畳み込みの人気度を判定し、異常事象判定ステップでは、前記判定された人気度が閾値未満である場合、前記検出された事象が異常事象であると判定する。
【選択図】図2

Description

本開示は、コンピュータセキュリティの分野に関し、より詳細には、機器ソフトウェアに存在する脆弱性の利用に対するコンピュータシステムのためのシステム及び方法に関する。
今日の技術社会における様々なソフトウェアアプリケーションの普及に伴い、コンピュータ機器に悪意のあるソフトウェアを浸透させる最も普及した方法の1つは、特定の機器にインストールされたソフトウェアに存在する脆弱性を利用することである。
脆弱性の悪用を防止するために、企業や個人は、脆弱性自体を排除するという形の受動的方法と、実際の脆弱性の悪用を検出するという形の能動的方法の両方を使用する。受動的方法は既知の脆弱性のみに使用される一方、能動的方法は既知の脆弱性と未知の脆弱性の両方に使用される。
既存の検出技術は、実際には既知の技術やメカニズムを使用して実際の脆弱性の悪用を検出することができるが、残念ながら悪用に際して新たな原理と仕組みを採用するような、脆弱性の悪用の新手法を検出し防止することはできない。例えば、シェルコード(即ち、ソフトウェアの脆弱性の悪用においてペイロードとして使用される小さなコード)の実行を不可能にするために、そのスタック内での実行を防止する技術が開発されてきたが、その領域においてリターン指向のプログラミングが登場した。一般にリターン指向のプログラミングはコンピュータセキュリティの悪用手法であり、攻撃者が実行不可能なメモリやコード署名等のセキュリティ防御のもとでコードを実行することを可能にする。
既存の防御技術は、リターン指向プログラミングに対して無力であることが証明されている。したがって、例えば、米国特許第5,002,303号は、これらの攻撃から保護するために開発された。これらの新しい解決法を考慮すると、コンピュータシステムの機能の正常動作からの偏差を検出する必要があり、このような偏差はシステムがソフトウェアの脆弱性を悪用する技術によって攻撃されたことを示す可能性がある。この問題を解決することで、脆弱性そのものを悪用するような、絶えず変化し改良している手法から、技術が変化しても不変である攻撃の外部兆候の検出に集中することが可能となる。
したがって、本明細書で開示するように、計算機器のオペレーティングシステムで発生する異常事象を検出するための例示的なシステム及び方法が提供される。特に、開示されたシステム及び方法は、機器のソフトウェアを実行するプロセス中にクライアント機器のオペレーティングシステムで発生する異常事象の検出を提供する。
本発明によれば、計算機器のオペレーティングシステムにおいて発生する異常事象を検出する方法であって、検出ステップと、事象決定ステップと、コンテキスト決定ステップと、形成ステップと、人気度判定ステップと、異常事象判定ステップとを備え、前記検出ステップでは、ソフトウェアプロセスの実行中に前記計算機器のオペレーティングシステムで発生する1つ以上の事象を検出し、前記決定ステップでは、前記検出ステップで検出された事象のコンテキストを決定し、前記形成ステップでは、前記決定ステップで決定されたコンテキストに対し選択された特徴量に基づいて、検出された1つ以上の事象の畳み込みを形成し、前記人気度判定ステップでは、複数のクライアント機器上で発生し検出された1つ以上の事象に対応する複数の検出された事象と、検出された少なくとも1つの事象に対応する複数の検出された事象の頻度に関連するデータを含むデータベースをポーリングすることによって、検出された1つ以上の事象に対し形成された畳み込みの人気度を判定し、前記異常事象判定ステップでは、前記人気度判定ステップで判定された前記人気度が閾値未満である場合、前記検出された1つ以上の事象が異常事象であると判定する、方法が提供される。
好ましくは、前記コンテキスト決定ステップは、検出された少なくとも1つの事象の発生時にコールスタックを決定することを含み、前記コールスタックは、その時点で実行されている一連の続き及び関数のリストと、前記一連の手続き及び関数を含むモジュールのリストと、モジュールへ転送される全てのパラメータのデータ及び値の種類とを提供する。
好ましくは、前記コンテキスト決定ステップは、前記検出された少なくとも1つのイベントの発生の瞬間に実行されたコードを含む前記ソフトウェアプロセスのアドレス空間のダンプと、少なくとも最後のブランチレコード及びブランチトレースストアからのジャンプに関するデータと、検出された少なくとも1つのイベントの発生前にソフトウェアプロセスにロードされたモジュールのリストとを備える。
好ましくは、前記形成ステップは、下記(1)〜(6)の少なくとも1つを含む、
(1)決定されたコンテキストに対し選択された特徴量の量子化と、決定されたコンテキストに対し選択された特徴量のソート、
(2)選択された特徴量のマージと、決定されたコンテキストに対し選択された特徴量のグループ化と、決定されたコンテキストに対し選択された特徴量のデータセットの構成、
(3)決定されたコンテキストに対し選択された特徴量の値の表化、
(4)決定されたコンテキストに対し選択された特徴量の値の計算、
(5)決定されたコンテキストに対し選択された特徴量の符号化、
(6)決定されたコンテキストに対し選択された特徴量の正規化。
好ましくは、第2の形成ステップと、頻度決定ステップとを更に備え、前記第2の形成ステップでは、決定されたコンテキストの選択された特徴量を文字列に畳み込み、ハッシュ値を生成することによって、検出された1つ以上の事象の畳み込みを形成し、 前記頻度決定ステップでは、生成されたハッシュ値をデータベース内のハッシュ値のリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する。
好ましくは、第3の形成ステップと、第4の形成ステップとを更に備え、前記第3の形成ステップでは、決定されたコンテキストの選択された特徴量を座標値に畳み込み、ベクトルを生成することによって、検出された1つ以上の事象の畳み込みを形成し、 前記第4の形成ステップでは、生成されたベクトル値をデータベース内のベクトルのリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する。
好ましくは、比較ステップと、異常判定ステップとを更に備え、前記比較ステップでは、検出された1つ以上の事象に対し形成された畳み込みを、以前に形成された安全事象の畳み込みのリストと比較し、前記異常判定ステップでは、検出された1つ以上の事象に対し形成された畳み込みが安全事象以前に形成された畳み込みのリストにない場合、検出された1つ以上の事象が異常事象であると判定する。
好ましくは、前記複数の検出された事象の頻度は、前記1つ以上の事象が検出された現時点における前記複数の検出された事象の総数、及びその時点において各機器が前記検出された1つ以上の事象を経験するようなクライアント機器の総数のうち、少なくとも1つを含む。
好ましくは、前記データベースのポーリングは、全てのアクセス可能なサブネットワーク内における複数の第1のクライアント機器に関連するグローバルデータベースのポーリング、及び機器の単一のサブネットワー内における複数の第2のクライアント機器に関連するローカルデータのポーリングのうち、少なくとも1つを含む。
好ましくは、前記検出された1つ以上の事象が異常事象であると判定された場合に、前記ソフトウェアプロセスを削除すること及び隔離することのうち少なくとも1つを更に含む。
本発明の別の観点によれば、計算機器のオペレーティングシステムにおいて発生する異常事象を検出するシステムであって、複数のクライアント機器で発生した複数の検出事象の頻度に関するデータを含むデータベースと、 コンピュータ・プロセッサによって、検出ステップと、事象決定ステップと、コンテキスト決定ステップと、形成ステップと、人気度判定ステップと、異常事象判定ステップと実行するように構成されるソフトウェアエージェントとを備え、前記検出ステップでは、ソフトウェアプロセスの実行中に前記計算機器のオペレーティングシステムで発生する1つ以上の事象を検出し、前記決定ステップでは、前記検出ステップで検出された事象のコンテキストを決定し、前記形成ステップでは、前記決定ステップで決定されたコンテキストに対し選択された特徴量に基づいて、検出された1つ以上の事象の畳み込みを形成し、前記人気度判定ステップでは、複数のクライアント機器上で発生し検出された1つ以上の事象に対応する複数の検出された事象と、検出された少なくとも1つの事象に対応する複数の検出された事象の頻度に関連するデータを含むデータベースをポーリングすることによって、検出された1つ以上の事象に対し形成された畳み込みの人気度を判定し、前記異常事象判定ステップでは、前記人気度判定ステップで判定された前記人気度が閾値未満である場合、前記検出された1つ以上の事象が異常事象であると判定する、
システムが提供される。
別の例示的な態様では、計算機器で発生する異常事象を検出する方法が提供される。この態様では、本方法は次のステップを含む:即ち、安全な計算機器のオペレーティングシステムで発生する1つ以上の安全事象を検出するステップと、安全な計算機器のオペレーティングシステムで発生し検出された1つ以上の安全事象のコンテキストを決定するステップと、検出された1つ以上の安全事象の決定されたコンテキストの選択された特徴量に基づき、検出された1つ以上の安全事象の1つ以上の畳み込みを形成するステップと、検出された1つ以上の安全事象の形成された1つ以上の畳み込みを1つ以上のデータベースに格納するステップと、ソフトウェアプロセスの実行中に計算機器のオペレーティングシステムで発生する1つ以上の未分類事象を検出するステップと、前記ソフトウェアプロセスの実行中にオペレーティングシステムで発生し検出された1つ以上の未分類事象のコンテキストを決定するステップと、検出された1つ以上の未分類事象の決定されたコンテキストの選択された特徴量に基づき、検出された1つ以上の未分類事象の畳み込みを形成するステップと、そして1つ以上のデータベースに格納された検出された1つ以上の安全事象の形成された1つ以上の畳み込みと比較することにより、検出された1つ以上の未分類事象の形成された畳み込みが悪意のあるものかどうかを判定するステップである。
別の例示的な態様では、計算機器において発生する異常事象を検出するためのシステムが開示される。この態様では、システムは1つ以上のデータベースを含み、次のことを行うように構成された第1のソフトウェアエージェントを含む:即ち、安全な計算機器のオペレーティングシステムで発生する1つ以上の安全事象を検出し、安全な計算機器のオペレーティングシステムで発生し検出された1つ以上の安全事象のコンテキストを決定し、検出された1つ以上の安全事象の決定されたコンテキストの選択された特徴量に基づき、検出された1つ以上の安全事象の1つ以上の畳み込みを形成し、検出された1つ以上の安全事象の形成された1つ以上の畳み込みを1つ以上のデータベースに格納するエージェントである。更に本システムは、コンピュータ・プロセッサによって実行される際に次のことを行うように構成された第2のソフトウェアエージェントを更に含む:即ち、ソフトウェアプロセスの実行中にコンピュータ機器のオペレーティングシステムで発生する1つ以上の未分類事象を検出し、ソフトウェアプロセスの実行中にオペレーティングシステムで発生し検出された1つ以上未分類事象のコンテキストを決定し、検出された少なくとも1つの分類されていない事象の決定されたコンテキストの選択された特徴に基づき、検出された1つ以上の未分類事象の畳み込みを形成し、そして検出された1つ以上の未分類事象が悪意のあるものであるかどうかを、検出された1つ以上の未分類事象に対し形成された畳み込みと1つ以上のデータベースに格納され検出済みの1つ以上の安全事象に対し形成された1つ以上の畳み込みと比較することにより判定するエージェントである。
本発明の例示的な態様に係る上述の簡略化した概要は、本発明の基本的な理解を提供するように機能するものである。この概要は、全ての企図された態様の広範な概要ではなく、全ての態様の重要な又は重要な要素を特定することも本発明の任意の又は全ての態様の範囲を描写することも意図されていない。唯一の目的は、以下の本発明のより詳細な説明の前置きとして、1つ又は複数の態様を簡略化した形で提示することである。前述の目的を達成するために、本発明の1つ又は複数の態様が記載され、これは特に特許請求の範囲において主張される特徴を含むものである。
添付の図面は、本明細書に組み込まれ、本明細書の一部を構成し、本発明の1つ又は複数の例示的な態様を示し、詳細な説明とともに、それらの基本原理及び実施形態を説明する役割を果たすものである。
例示的な態様によるクライアントにインストールされたソフトウェアの実行を監視するシステムのブロック図を示す。
例示的な態様による事象の畳み込みの人気度の評価に基づいて異常事象を検出する方法のフローチャートを示す。
例示的な態様による安全事象の畳み込みのセットを形成する方法のフローチャートを示す。
例示的な態様による安全事象の畳み込みのセットに基づいて異常事象を検出する方法のフローチャートを示す。
開示されたシステム及び方法が例示的な態様にしたがって実装され得る汎用コンピュータシステム(パーソナルコンピュータ又はサーバであり得る)の例を示す。
様々な態様が図面を参照して説明され、同様の参照番号は全体を通して同様の要素を指すために使用される。以下では、説明を目的として、1つ又は複数の態様の完全な理解を促進するために、多数の特定の詳細が示される。しかし、以下に記載する特定の設計詳細を採用することなく、以下に説明される任意の態様が実施され得ることは、幾つか又は全ての例において明らかであり得る。他の例では、1つ又は複数の態様の説明を容易にするために、周知の構造及び機器がブロック図形式で示されている。以下は、態様の根本的な理解を提供するために、1つ又は複数の側面の簡略化された概要を提示する。この要約は、全ての企図された態様の広範な概観ではなく、全ての態様の決定的又は重要な要素を特定することも、任意又は全ての態様の範囲を描写することも意図していない。
本明細書で説明するように、「モジュール」(又はプログラムモジュール)は、オペレーティングシステムカーネルモジュール又は動的ライブラリ等、開始されたプロセスの機能性を拡張するコードを含むプログラムオブジェクトと考えることができる。
本明細書で説明するように、「畳み込み」は、例えば、事象の特徴量が文字列に畳み込まれるインテリジェントハッシュ、又は事象の特徴量が座標などに畳み込まれるベクトルと考えることができる。一般に、事象の特徴量(以下、「特徴量」と呼ぶ)は、それらに対して数学的及び論理的演算を実行するために畳み込むことができる任意のオブジェクトである。例えば、特徴量の畳み込みは、特徴量を文字列表現、ベクトル表現、又はこれらの複合表現へと任意に変換することである。
本明細書で説明される「事象」は、オペレーティングシステム、サービス又はネットワークの特定の状態の識別された表現であり得る。事象に関する情報は、例えば何が起こったかを示すオペレーティングシステム(又はその一部)等のソフトウェアメッセージに含まれても良い。言い換えれば、オペレーティングシステムからの事象には、プログラムの動作に影響を及ぼす可能性のあるプログラムの「外側」のものが含まれる。このような事象は、プログラムが実行されている間はいつでも、そして殆どの順序で起こり得ることを理解されたい。更に、例示的な態様では、通常、多くの種類及び型を持つ事象がシステム内に存在し得る:例えば、プロセスの起動、モジュールの読み込み、ファイル操作、レジストリ操作、等である。更に、例示的な態様では、事象のコンテキストは、その発生に直接影響を与えるような事象の発生時におけるオペレーティングシステムの状態の全体である。コンテキストの内容例を以下に示す。
更に、一般に「異常」事象は、オペレーティングシステム、サービス又はネットワークの特定の状態の識別された現れであり、これまでに未知の状況が発生したことを示す。特定の例では、異常事象は、情報セキュリティポリシーの違反や防御手段の障害、又はセキュリティに関係する未知の状態の発生を示すようなシステム、サービス、又はネットワークの特定の状態の識別された表示のような、安全事象でもあり得る。
図1は、例示的な態様によるクライアントにインストールされたソフトウェアの実行を監視するシステムのブロック図を示す。図示するように、ソフトウェアエージェント110(即ち「エージェント」)がクライアント100の側にインストールされる。又、クライアント100のオペレーティングシステムにおいても、エージェント110に接続された1つ又は複数のインターセプタ120をインストールすることができる。特定の態様では、当業者には知られているように、ウインドウ(「ETW」)120aの事象トレースをインターセプタとして使用することができる。インターセプタ120は、エージェント110へ直接通知を送信することにより、及び/又はエージェント110が接続できるような事象のログ(例えば、 図1に示すが、ローカルデータベース160に記憶されている)にエントリーすることにより、オペレーティングシステムで発生した事象を検出しこの検出をエージェント110へ報告する。
更に、エージェント110は、インターセプタ120によって検出することができるシステム内のすべての可能性のある事象、又は関心のある種類の事象(プロセスの起動のみ等)について通知を受信することができる。エージェント110は、エージェントがインターセプタ120によって検出された関心のある事象を登録した後に使用される収集モジュール130を含むことができる。収集モジュール130は、登録された事象のコンテキストを取得する。特定の例では、事象のコンテキストは、事象の発生に先行するコールスタックと、事象の発生時に実行されたコードを含むメモリセクションのダンプとを含む。コールスタックを使用して、以下のうち1つ又は複数を取得することができる:即ち、特定の瞬間に実行される手続き及び関数のリスト、それらの手続き及び関数を含むモジュールのリスト、そして、例えばモジュールによってエクスポートされた関数の呼び出しの際にモジュールへと転送される全てのパラメータのタイプ及び値である。更に、コンテキストには、少なくとも「ラストブランチレコード」(「LBR」)と「ブランチトレースストア」(「BTS」)(インテルマイクロアーキテクチャーコードネールハラムパフォーマンスモニタリングユニットプログラミングガイドに記載されており、これらは参照により本明細書に組み込まれる)(メモリバッファとレジスタである)からのジャンプに関する情報を含む。この態様では、LBR及びBTSは、プログラム実行に関する情報、即ちジャンプ、実行ブランチ又は(所定のトレースを保持する)その他のアドレスを含む。特定の態様では、事象を検出すると、インターセプタ120はそのコンテキストを保存し、そしてそのコンテキストはエージェント110の収集モジュール130によって取得され(例えば、収集モジュール130に転送されるか、収集モジュール130によって要求される)、このような場合、収集モジュール130は必要なコンテキスト全体又はその一部を独立して受信する必要はない。
例示的な態様によれば、クライアント110及びサーバ200の一方又は両方は、畳み込み形成モジュール140を更に含むことができる。この態様では、収集モジュール130によって得られたコンテキストは、畳み込み形成モジュール140へ送られる。ある瞬間には、これは、クライアント100に存在する畳み込み形成モジュール140へ送信されても良く、別の瞬間には、サーバ200へ送信されても良い。畳み込み形成モジュール140は、受信されたコンテキストから特徴量(特徴量の例を後述する)を抽出し、畳み込みを形成/生成する。同様に、畳み込み形成モジュール140は、事象のコンテキストを変換する(下記参照)。前述のように、例示的な態様では、畳み込みは(特徴量が文字列に畳み込まれる)特定のハッシュだけでなく、(特徴が座標に畳み込まれる)ベクトル及びその他に対し最も広い意味として捉えられる。言い換えれば、事象の特徴量がそれらに数学的及び論理的演算を実行するために畳み込まれ得る任意のオブジェクトとして捉えられる。任意に与えられたアルゴリズムに対する事象の畳み込みの形成を使用して、例えばロシア特許公開第2,580,036号に記載されているように、得られた特徴量からファイルに対しハッシュが形成され、例えば、ロシア特許公開第2,614,557号又はHTMLページに記載されているように、ファイルに対しベクトルが形成される。ロシア特許公報第2,580,036号及びロシア特許公報第2,614,557号の内容は、その全体が参照により本明細書に組み込まれる。
更に、例示的な態様では、比較モジュール150は、サーバ200及び/又はクライアント110のいずれかの上に配置することができる。この比較モジュール150は、得られた事象の畳み込みの人気度を判定し、得られた畳み込みを、サーバ200と同様に相互作用するような、ローカルデータベース160又はリモートデータベース170に保持されている安全な畳み込みのセットに含まれる畳み込み等の他の畳み込みと比較するように構成される。ローカルデータベース160は又、以前に検出された事象のログ及び事象のコンテキスト、特にモジュールをプロセスにロードするような事象を保持する。
上述のシステムは、クライアント100にインストールされたソフトウェアの実行の監視に使用される。このような監視の結果、クライアント100にインストールされたソフトウェアの脆弱性が悪用された結果である異常事象がオペレーティングシステム上で検出される。本開示における用語「クライアント」100は、クライアント・サーバパラダイムとして使用されることに留意されたい。即ち、それはコンピューティングアーキテクチャの要素であり、ネットワークに対するものではない。クライアント100は、本開示において、サーバ200のインタフェースによって提供されるサービスを要求するようなネットワーク内の任意の計算機器、そしてサーバ200によって、クライアント100の上記エージェント110が相互作用するような任意の計算機器を意味し、エージェント110から集められたデータを取得しメッセージやコマンドを送付する(それによってクライアント100にサービスを提供する)。次に、クライアント100にインストールされたソフトウェアの実行を監視するために開示された方法によって実装され得る方法を説明する。
図2は、例示的な態様による事象の畳み込みの人気度の評価に基づき異常事象を検出する方法のフローチャートを示す。図示するように、ステップ210において、クライアント100側のオペレーティングシステムには、プロセスの実行中にクライアント100のオペレーティングシステムで発生する事象を登録するエージェント110が起動される。次に、ステップ220において、クライアント100のオペレーティングシステムにインストールされ、エージェント110に接続されたインターセプタ120は、オペレーティングシステムで発生した事象を検出し、エージェント110へ報告し、ステップ230において発生した事象を登録し、そして収集モジュール130を介しその事象のコンテキストを受け取る。
例示的な態様によれば、コンテキストは、例えば、少なくとも事象の発生時の呼び出しスタックを含み、そこでは所与の時点で実行されている一連の手続き及び関数のリスト、これらの一連の手順と関数を含むモジュールのリスト、そしてモジュールに転送されているデータのタイプ及び全てのパラメータ値、のうち1つ以上が呼び出しスタックから取得される。更に、コールスタックは、例えば、事象の発生時に実行されていたコードを含むプロセスのメモリセクション(アドレス空間)のダンプ、 LBRとBTSのうち少なくとも一方からのジャンプに関する情報、 及び/又は事象の発生に先立ってプロセスにロードされたモジュールのリスト(これに関する情報は、例えばローカルデータベース160に保持された事象のログへとアクセス可能である。)のうち少なくとも1つを含んでも良い。
コンテキストを取得すると、ステップ240において、畳み込み形成モジュール140は、これらの特徴量に基づき事象の畳み込み形成のための特徴量を選択する。特徴量を選択する前に、特定の瞬間に取得されたコンテキストを変換する必要がある。コンテキストの変換は、対処されている問題と分析の目的の観点から、データの表現と形式を最適化するための方法とアルゴリズムの複合である。コンテキストの変換は、コンテキストを含むデータの情報コンテンツを変更するという目標を設定しない。この変換は、データが最も効果的に使用されるような形式でコンテキストを提示するために実行される(変換の例を以下に示す)。
例示的な態様では、畳み込みを実行するためのデータの変換は、例えば、量子化、ソート、マージ(貼り付け)、グループ分け、データセット構成、値の表化、計算可能な値、データのコーディング、正規化(スケーリング)等である。
例えば、コールスタック(以下に例を示すダンプにも当てはまる)は、以下のように変換される:コールスタックに参加するモジュールのデバッグシンボルが取得され、コールスタックはデバッグシンボルの使用によって正規化される。
ダンプの逆アセンブリの結果にデバッグシンボルを適用する前:
デバッグシンボルを適用した後:
分解とエミュレーションを介し、取得されたダンプ(間接呼び出しの有無、位置独立コード、自己修正コード等)の一連の特徴量が得られる。変換後、特徴量が選択され、畳み込みが形成される。
示されているように、使用される特徴量は、次のようなものである:(事象のログから取得される)ロードされたモジュールの名前及びロードの順序、特定の瞬間に実装される一連の手順及び関数の名前、(コールスタックから取得した)これらのモジュールによってエクスポートされる一連の手順及び関数の呼び出しに先立つモジュールへ転送されるパラメータ値、ジャンプ(LBR、BTSからのジャンプ)に関する情報、間接呼び出しの有無、位置独立コード、自己変更コード(ダンプ)。畳み込みは、従来技術から知られている任意の方法によって形成することができる。コンテキストの変換は、畳み込みの形成と同様、クライアント100側又はサーバ200側のいずれかで行われ(これは、ソフトウェア実行の監視システムによって実行される全ての方法に当てはまる)、サーバ200側でのこれらの操作の実行のために、(変換のための)コンテキスト及び(畳み込みの形成のための)特徴量が、まずクライアント100によってサーバ200へと送られる。ステップ250では、特定の瞬間における事象の畳み込みの人気度が決定される。例示的な態様にでは、人気度は、データベース(ローカルデータベース160又はリモートデータベース170)をポーリングすることにより決定される。
更に、例示的な態様では、特定の方法によって計算されるように、人気度は、畳み込みの人気度が決定されている現在の瞬間における事象の検出総数、 及び/又はクライアント上の検出数に関わらず、現在の瞬間に畳み込み人気度が判定されている所定の事象が検出されたクライアント100の数であるとみなされ、クライアント上の検出数には無関係である。換言すれば、人気度は、例えば、クライアント機器100の検出された事象に対応するような検出された複数の事象の頻度に対し、複数の機器のセットにおける事象発生の頻度を判断するのに、考慮されている。現在の瞬間は、所定の時間(例えば、1マイクロ秒、1秒等)に亘って考慮できることを理解されたい。
人気度は、例えば調査された事象が検出されたサブネットワーク内で、大域的(全てのアクセス可能なサブネットワーク内での人気度)又は局所的(特定のサブネットワーク内のみでの人気度)であり得る。したがって、事象の畳み込みの人気度を決定するためにアクセスされるデータベース160及び170は、特定の場合にはサーバ200によって計算される、特定の数を保存する。ステップ260において、クライアント100上で検出された事象は、現在の瞬間における検出された事象の畳み込みの人気度が閾値未満である場合、異常であると判断される。この決定は、例えば、クライアント機器100上のエージェント(例えば比較モジュール150)及び/又はサーバ200上の比較モジュール150によって実行され得る。人気度がステップ260で決定された閾値よりも大きい場合、ステップ270で事象が安全と判定される。そうでなければ、人気が閾値よりも小さい場合、事象はステップ280で異常とみなされる。本明細書で更に説明されるように、検出された事象が異常であるかどうかの判断に基づき、クライアント100により適切な措置が取られ得る。
例示的な態様では、検出された事象が異常であるかどうかの判断に使用されるいくつかの技法が存在し得る。例えば、検出された事象は、次のような場合に事象に異常であると判断され得る。即ち、畳み込みの局所的な人気度が閾値以下である場合、事象の畳み込みの大域的な人気度が閾値以下である場合、及び/又は事象の畳み込みの局所的及び大域的な人気度が閾値以下である場合等である。
事象の畳み込みの大域的な人気度に対する閾値とサブネットワークにおける(局所的な)人気度は独立に割り当てられる。異常であると判断された事象は、後で更に調査され、必要に応じてエージェント110によりクライアント100上でブロックされる。例えば、検出された事象が異常であると判定された場合、クライアント機器100(及び/又はエージェント110)は、例えば、異常事象を実行したソフトウェアプロセスを削除する、そのソフトウェアプロセスを隔離する、及び/又はクライアント機器110のユーザに対しソフトウェアプロセスに悪意があると警告する等の修復アクションを実行するように構成されていても良い。
又、ソフトウェアの実行を監視するためのシステムは、安全事象(したがって、このシステムは任意の所与の事象の畳み込みを得るために使用され得る)及び安全事象の畳み込みのセットを形成するためにも使用される。このとき、セットはすでに存在していて、単に手法の実行時に補完されるか、或いは、手法の実行時にセットが作成されておらず、手法の実行のためのプロセスにおいて作成され埋め合わせられ始める場合もある。
図3は、例示的な態様における安全事象の畳み込みのセットを形成する方法のフローチャートを示す。本明細書で使用する「安全事象」は、脆弱性の悪用又は悪意のあるソフトウェアの実行の結果ではない「安全な」事象とみなすことができる。ステップ300において、安全であることが知られている少なくとも1つのクライアント100側のオペレーティングシステムにおいて(安全なクライアントとは、悪意のあるソフトウェアを含まないクライアントであり脆弱性の悪用による手法を実装するプロセスにおいて攻撃されることのないものを指す)、 クライアント100のオペレーティングシステムにおいて発生する少なくとも一種類の事象を登録するようなエージェント110(例えば、第1のソフトウェアエージェント)が起動され、ここで、事象の種類は、プロセスの開始、モジュールのローディング、ファイル操作、レジストリ操作のうち1つ又は複数である。
ステップ310において、クライアント100のオペレーティングシステムにインストールされ、エージェント110へと接続されたインターセプタ120は、オペレーティングシステムで発生する事象を検出する。次に、ステップ320において、エージェント110は、発生した事象を登録し、エージェント110の収集モジュール130によって、その事象のコンテキストを取得する。ここで、1つの可能なコンテキストの構成が上記で提示されている。コンテキストから、ステップ330において、畳み込み形成モジュール140は、特徴量を選択し、選択された特徴量に基づき事象の畳み込みを形成し、次に、ステップ340において事象の畳み込みを安全事象の畳み込みのセットへ加える。特定の例では、ステップ330〜340がサーバ200上で実行され(ステップ320でクライアント100から得られたコンテキストが「生の」又は既に変換された形式でサーバに中継される)、安全な畳み込みの事象のセットはリモートデータベース170に保持され、その後、任意の所与のクライアント100にロードされ得るか、又はクライアント100は、セット全体をローカルデータベース160にロードすることなく、データベース170のポーリングを構成することができる。
安全事象の畳み込みのセットは、クライアント100上の異常事象を検出するのに使用される。セット自体は、データベース160に局所的に格納されても、リモートデータベース170に遠隔的に格納されても良く、リモートデータベース170はクライアント100によってアクセスされても良い。
図4は、例示的な態様における安全事象の畳み込みのセットに基づき異常事象を検出する方法のフローチャートを示す。他の全ての方法と同様に、ステップ400では、クライアント100側のオペレーティングシステムにおいてクライアント100のオペレーティングシステムにおいて発生する事象を登録する別のエージェント110(例えば、第2のソフトウェアエージェント)が起動され、ステップ410では、オペレーティングシステムにインストールされ、エージェント110に接続されたインターセプタ120が、オペレーティングシステムで発生した事象を検出する。例えば、例示的な態様では、これらの新しい事象は、異常であるか(セキュリティ上)安全であるかが未決定のため、「未分類」と考えられる。次に、ステップ420において、エージェント110は、発生している未分類事象を登録し、その事象のコンテキストを取得する。ここで、コンテキストの1つの構造な実行が上記に示されている。コンテキストから、ステップ430において、特徴量が選択され、選択された特徴量に基づき未分類事象の畳み込みが形成される。取得された未分類事象の畳み込みは、ステップ440において、先に記載された方法によって形成されたセットからの(セキュリティ上)安全な事象以前に形成された畳み込みのグループと比較される。次に、ステップ450において、未分類事象は、比較の際に、検出された事象に対し形成された畳み込みが、指定された(セキュリティ上)安全な事象のセットにおける事象の畳み込みのグループからの任意の事象の畳み込みと一致しない場合、悪意があると判定される。そうでなければ、未分類の事象は、例えば、ステップ460に示すように安全とみなされる。一態様では、未分類の事象が異常であると判定された場合、その未分類の事象に関連付けられたソフトウェアプロセスは、クライアント機器から削除又は隔離され得る。
一般に、本開示では、エージェント110によって、インターセプタ120、収集モジュール130、畳み込み形成モジュール140、及び比較モジュール150は、例えば、実機器、システム、コンポーネント、集積回路(特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)等)のようなハードウェアを使用して、或いは、例えば「マイクロプロセッサシステムとプログラム命令のセット」等のソフトウェアとハードウェアを組合せて、そしてニューロシナプスチップ上に実現されるコンポーネント群、を用いて実装され得る。エージェント110、インターセプタ120、収集モジュール130、畳み込み形成モジュール140、及び比較モジュール150の機能性は、ハードウェアによってのみ実現されても良く、又、幾つかの機能はソフトウェアにより実現されハードウェアによっても幾つか実現されるといった組み合わせ形式で実現されても良い。他の形態では、エージェント110、インターセプタ120、収集モジュール130、畳み込み形成モジュール140、及び比較モジュール150の一部は、汎用コンピュータのプロセッサ上に実装されても良く(例えば、図5及び後述参照)、これはクライアント100及びサーバ200にも当てはまる。
具体的には、図5は、例示的な態様に従って、開示されたシステム及び方法が実装され得る汎用コンピュータシステム(パーソナルコンピュータ又はサーバであり得る)の例を示す。図示のように、コンピュータシステム20は、中央処理装置21、システムメモリ22、及び中央処理装置21に関連するメモリを含む様々なシステム構成要素を接続するシステムバス23を含む。システムバス23は、他のバスアーキテクチャと相互作用することができるバスメモリ又はバスメモリコントローラ、周辺バス及びローカルバスを含む、従来技術から公知の任意のバス構造のように実現される。システムメモリは、読み出し専用メモリ(ROM)24及びランダムアクセスメモリ(RAM)25を含む。基本入出力システム(BIOS)26は、パーソナルコンピュータ20の要素間の情報の転送を保証する基本的な手順、例えばROM24の使用によりオペレーティングシステムをロードするときのものなどを含む。
パーソナルコンピュータ20は、データを読み書きするためのハードディスク27と、リムーバブル磁気ディスク29に読み書きするための磁気ディスクドライブ28と、リムーバブル光ディスク31に読み書きするための光学ドライブ30とを含む。 CD−ROM、DVD−ROM、及び他の光情報媒体として使用することができる。ハードディスク27、磁気ディスクドライブ28、及び光ドライブ30は、それぞれハードディスクインターフェース32、磁気ディスクインターフェース33及び光ドライブインターフェース34を介してシステムバス23に接続されている。 ドライブ及び対応するコンピュータ情報媒体は、パーソナルコンピュータ20のコンピュータ命令、データ構造、プログラムモジュール及び他のデータを格納するための電力に依存しないモジュールである。
本開示は、ハードディスク27、リムーバブル磁気ディスク29及びリムーバブル光ディスク31を使用するシステムの実装を提供するが、他のタイプのコンピュータ情報媒体56を使用することも可能であることを理解されたい。 コントローラ55を介してシステムバス23に接続されたコンピュータ(ソリッドステートドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ(RAM)など)によって読み取り可能な形式でデータを格納する。
コンピュータ20は、記録されたオペレーティングシステム35が保持されるファイルシステム36と、追加のプログラムアプリケーション37と、他のプログラムモジュール38と、プログラムデータ39とを有する。ユーザは、入力装置(キーボード40、マウス42)を使用して、パーソナルコンピュータ20にコマンド及び情報を入力することができる。マイクロホン、ジョイスティック、ゲームコントローラ、スキャナなどの他の入力装置(図示せず)を使用することができる。このような入力装置は、通常、シリアルポート46を介してコンピュータシステム20に接続され、シリアルポート46は、システムバスに接続されるが、例えば、パラレルポート、ゲームポート又は ユニバーサルシリアルバス(USB)。モニタ47又は他のタイプの表示装置もまた、ビデオアダプタ48などのインタフェースを介してシステムバス23に接続される。モニタ47に加えて、パーソナルコンピュータは、スピーカ、プリンタなどの他の周辺出力装置(図示せず)を備えることができる。
パーソナルコンピュータ20は、1つ又は複数のリモートコンピュータ49へのネットワーク接続を使用して、ネットワーク環境内で動作することができる。リモートコンピュータ(又は複数のコンピュータ)49はまた、パーソナルコンピュータ20の性質を説明する上で、前述の要素の大部分又はすべてを有するパーソナルコンピュータ又はサーバである。ルータ、ネットワークステーション、ピアデバイス又は他のネットワークノードなど、他のデバイスもコンピュータネットワークに存在することができる。
ネットワーク接続は、有線及び/又は無線ネットワーク、広域コンピュータネットワーク(WAN)などのローカルエリアコンピュータネットワーク(LAN)50を形成することができる。このようなネットワークは、企業のコンピュータネットワーク及び社内ネットワークで使用され、一般にインターネットにアクセスします。LAN又はWANネットワークでは、パーソナルコンピュータ20は、ネットワークアダプタ又はネットワークインタフェース51を介してローカルエリアネットワーク50に接続される。ネットワークが使用される場合、パーソナルコンピュータ20は、インターネットなどの広域コンピュータネットワークとの通信を提供するために、モデム54又は他のモジュールを使用することができる。モデム54は、内部又は外部の装置であり、シリアルポート46によってシステムバス23に接続されている。ネットワーク接続は単なる例であり、ネットワークの正確な構成を示す必要はない、すなわち、実際には、ブルートゥースのような技術通信モジュールによって1つのコンピュータと他のコンピュータとの接続を確立する他の方法がある。
様々な態様において、本明細書に記載のシステム及び方法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実施されてもよい。 ソフトウェアで実施される場合、方法は、非一時的なコンピュータ可読媒体上に1つ以上の命令又はコードとして格納されてもよい。 コンピュータ可読媒体は、データ記憶装置を含む。 限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM、フラッシュメモリ、又は他のタイプの電気、磁気、又は光学記憶媒体、又は 所望のプログラムコードを命令又はデータ構造の形で運び、格納又は格納することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたし。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
更に、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。
本明細書で開示された様々な側面は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。更に、側面及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。

Claims (20)

  1. 計算機器のオペレーティングシステムにおいて発生する異常事象を検出する方法であって、
    検出ステップと、事象決定ステップと、コンテキスト決定ステップと、形成ステップと、人気度判定ステップと、異常事象判定ステップとを備え、
    前記検出ステップでは、ソフトウェアプロセスの実行中に前記計算機器のオペレーティングシステムで発生する1つ以上の事象を検出し、
    前記決定ステップでは、前記検出ステップで検出された事象のコンテキストを決定し、
    前記形成ステップでは、前記決定ステップで決定されたコンテキストに対し選択された特徴量に基づいて、検出された1つ以上の事象の畳み込みを形成し、
    前記人気度判定ステップでは、複数のクライアント機器上で発生し検出された1つ以上の事象に対応する複数の検出された事象と、検出された少なくとも1つの事象に対応する複数の検出された事象の頻度に関連するデータを含むデータベースをポーリングすることによって、検出された1つ以上の事象に対し形成された畳み込みの人気度を判定し、
    前記異常事象判定ステップでは、前記人気度判定ステップで判定された前記人気度が閾値未満である場合、前記検出された1つ以上の事象が異常事象であると判定する、
    方法。
  2. 請求項1に記載の方法において、
    前記コンテキスト決定ステップは、検出された少なくとも1つの事象の発生時にコールスタックを決定することを含み、前記コールスタックは、その時点で実行されている一連の続き及び関数のリストと、前記一連の手続き及び関数を含むモジュールのリストと、モジュールへ転送される全てのパラメータのデータ及び値の種類とを提供する、
    方法。
  3. 請求項1に記載の方法において、
    前記コンテキスト決定ステップは、前記検出された少なくとも1つのイベントの発生の瞬間に実行されたコードを含む前記ソフトウェアプロセスのアドレス空間のダンプと、少なくとも最後のブランチレコード及びブランチトレースストアからのジャンプに関するデータと、検出された少なくとも1つのイベントの発生前にソフトウェアプロセスにロードされたモジュールのリストとを備える、
    方法。
  4. 請求項1に記載の方法において、
    前記形成ステップは、下記(1)〜(6)の少なくとも1つを含む、
    (1)決定されたコンテキストに対し選択された特徴量の量子化と、決定されたコンテキストに対し選択された特徴量のソート、
    (2)選択された特徴量のマージと、決定されたコンテキストに対し選択された特徴量のグループ化と、決定されたコンテキストに対し選択された特徴量のデータセットの構成、
    (3)決定されたコンテキストに対し選択された特徴量の値の表化、
    (4)決定されたコンテキストに対し選択された特徴量の値の計算、
    (5)決定されたコンテキストに対し選択された特徴量の符号化、
    (6)決定されたコンテキストに対し選択された特徴量の正規化
    方法。
  5. 請求項1に記載の方法において、
    第2の形成ステップと、頻度決定ステップとを更に備え、
    前記第2の形成ステップでは、決定されたコンテキストの選択された特徴量を文字列に畳み込み、ハッシュ値を生成することによって、検出された1つ以上の事象の畳み込みを形成し、
    前記頻度決定ステップでは、生成されたハッシュ値をデータベース内のハッシュ値のリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する、
    方法。
  6. 請求項1に記載の方法において、
    第3の形成ステップと、第4の形成ステップとを更に備え、
    前記第3の形成ステップでは、決定されたコンテキストの選択された特徴量を座標値に畳み込み、ベクトルを生成することによって、検出された1つ以上の事象の畳み込みを形成し、
    前記第4の形成ステップでは、生成されたベクトル値をデータベース内のベクトルのリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する、
    方法。
  7. 請求項1に記載の方法において、
    比較ステップと、異常判定ステップとを更に備え、
    前記比較ステップでは、検出された1つ以上の事象に対し形成された畳み込みを、以前に形成された安全事象の畳み込みのリストと比較し、
    前記異常判定ステップでは、検出された1つ以上の事象に対し形成された畳み込みが安全事象以前に形成された畳み込みのリストにない場合、検出された1つ以上の事象が異常事象であると判定する、
    方法。
  8. 請求項1に記載の方法において、
    前記複数の検出された事象の頻度は、前記1つ以上の事象が検出された現時点における前記複数の検出された事象の総数、及びその時点において各機器が前記検出された1つ以上の事象を経験するようなクライアント機器の総数のうち、少なくとも1つを含む、
    方法。
  9. 請求項1に記載の方法において、
    前記データベースのポーリングは、全てのアクセス可能なサブネットワーク内における複数の第1のクライアント機器に関連するグローバルデータベースのポーリング、及び機器の単一のサブネットワー内における複数の第2のクライアント機器に関連するローカルデータのポーリングのうち、少なくとも1つを含む、
    方法。
  10. 請求項1に記載の方法において、
    前記検出された1つ以上の事象が異常事象であると判定された場合に、前記ソフトウェアプロセスを削除すること及び隔離することのうち少なくとも1つを更に含む、
    方法。
  11. 計算機器のオペレーティングシステムにおいて発生する異常事象を検出するシステムであって、
    複数のクライアント機器で発生した複数の検出事象の頻度に関するデータを含むデータベースと、 コンピュータ・プロセッサによって、検出ステップと、事象決定ステップと、コンテキスト決定ステップと、形成ステップと、人気度判定ステップと、異常事象判定ステップと実行するように構成されるソフトウェアエージェントとを備え、
    前記検出ステップでは、ソフトウェアプロセスの実行中に前記計算機器のオペレーティングシステムで発生する1つ以上の事象を検出し、
    前記決定ステップでは、前記検出ステップで検出された事象のコンテキストを決定し、
    前記形成ステップでは、前記決定ステップで決定されたコンテキストに対し選択された特徴量に基づいて、検出された1つ以上の事象の畳み込みを形成し、
    前記人気度判定ステップでは、複数のクライアント機器上で発生し検出された1つ以上の事象に対応する複数の検出された事象と、検出された少なくとも1つの事象に対応する複数の検出された事象の頻度に関連するデータを含むデータベースをポーリングすることによって、検出された1つ以上の事象に対し形成された畳み込みの人気度を判定し、
    前記異常事象判定ステップでは、前記人気度判定ステップで判定された前記人気度が閾値未満である場合、前記検出された1つ以上の事象が異常事象であると判定する、
    システム。
  12. 請求項11に記載のシステムにおいて、
    前記コンテキスト決定ステップは、検出された少なくとも1つの事象の発生時にコールスタックを決定することを含み、前記コールスタックは、その時点で実行されている一連の続き及び関数のリストと、前記一連の手続き及び関数を含むモジュールのリストと、モジュールへ転送される全てのパラメータのデータ及び値の種類とを提供する、
    システム。
  13. 請求項11に記載のシステムにおいて、
    前記コンテキスト決定ステップは、前記検出された少なくとも1つのイベントの発生の瞬間に実行されたコードを含む前記ソフトウェアプロセスのアドレス空間のダンプと、少なくとも最後のブランチレコード及びブランチトレースストアからのジャンプに関するデータと、検出された少なくとも1つのイベントの発生前にソフトウェアプロセスにロードされたモジュールのリストとを備える、
    システム。
  14. 請求項11に記載のシステムにおいて、
    前記形成ステップは、下記(1)〜(6)の少なくとも1つを含む、
    (1)決定されたコンテキストに対し選択された特徴量の量子化と、決定されたコンテキストに対し選択された特徴量のソート、
    (2)選択された特徴量のマージと、決定されたコンテキストに対し選択された特徴量のグループ化と、決定されたコンテキストに対し選択された特徴量のデータセットの構成、
    (3)決定されたコンテキストに対し選択された特徴量の値の表化、
    (4)決定されたコンテキストに対し選択された特徴量の値の計算、
    (5)決定されたコンテキストに対し選択された特徴量の符号化、
    (6)決定されたコンテキストに対し選択された特徴量の正規化
    システム。
  15. 請求項11に記載のシステムにおいて、
    前記ソフトウェアエージェントは、第2の形成ステップと、頻度決定ステップとを更に実行するように構成され、
    前記第2の形成ステップでは、決定されたコンテキストの選択された特徴量を文字列に畳み込み、ハッシュ値を生成することによって、検出された1つ以上の事象の畳み込みを形成し、
    前記頻度決定ステップでは、生成されたハッシュ値をデータベース内のハッシュ値のリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する、
    システム。
  16. 請求項11に記載のシステムにおいて、
    前記ソフトウェアエージェントは、第3の形成ステップと、第4の形成ステップとを更に実行するように構成され、
    前記第3の形成ステップでは、決定されたコンテキストの選択された特徴量を座標値に畳み込み、ベクトルを生成することによって、検出された1つ以上の事象の畳み込みを形成し、
    前記第4の形成ステップでは、生成されたベクトル値をデータベース内のベクトルのリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する、
    システム。
  17. 請求項11に記載のシステムにおいて、
    前記ソフトウェアエージェントは、比較ステップと、異常判定ステップとを更に実行するように構成され、
    前記比較ステップでは、検出された1つ以上の事象に対し形成された畳み込みを、以前に形成された安全事象の畳み込みのリストと比較し、
    前記異常判定ステップでは、検出された1つ以上の事象に対し形成された畳み込みが安全事象以前に形成された畳み込みのリストにない場合、検出された1つ以上の事象が異常事象であると判定する、
    システム。
  18. 請求項11に記載のシステムにおいて、
    前記複数の検出された事象の頻度は、前記1つ以上の事象が検出された現時点における前記複数の検出された事象の総数、及びその時点において各機器が前記検出された1つ以上の事象を経験するようなクライアント機器の総数のうち、少なくとも1つを含む、
    システム。
  19. 請求項11に記載のシステムにおいて、
    前記データベースのポーリングは、全てのアクセス可能なサブネットワーク内における複数の第1のクライアント機器に関連するグローバルデータベースのポーリング、及び機器の単一のサブネットワー内における複数の第2のクライアント機器に関連するローカルデータのポーリングのうち、少なくとも1つを含む、
    システム。
  20. 請求項11に記載のシステムにおいて、
    前記検出された1つ以上の事象が異常事象であると判定された場合に、前記ソフトウェアプロセスを削除すること及び隔離することのうち少なくとも1つを更に含む、
    システム。
JP2017198983A 2017-06-16 2017-10-13 異常な事象を検出するシステム及び方法 Active JP6698056B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2017121120 2017-06-16
RU2017121120A RU2651196C1 (ru) 2017-06-16 2017-06-16 Способ обнаружения аномальных событий по популярности свертки события
US15/720,334 US10489586B2 (en) 2017-06-16 2017-09-29 System and method of detecting anomalous events
US15/720,334 2017-09-29

Publications (2)

Publication Number Publication Date
JP2019003598A true JP2019003598A (ja) 2019-01-10
JP6698056B2 JP6698056B2 (ja) 2020-05-27

Family

ID=61976793

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017198983A Active JP6698056B2 (ja) 2017-06-16 2017-10-13 異常な事象を検出するシステム及び方法
JP2018131263A Active JP6726706B2 (ja) 2017-06-16 2018-07-11 コンボリューションのポピュラリティに基づいて異常なイベントを検出するシステムおよび方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018131263A Active JP6726706B2 (ja) 2017-06-16 2018-07-11 コンボリューションのポピュラリティに基づいて異常なイベントを検出するシステムおよび方法

Country Status (5)

Country Link
US (5) US10489586B2 (ja)
EP (1) EP3416083B1 (ja)
JP (2) JP6698056B2 (ja)
CN (2) CN109145592B (ja)
RU (1) RU2651196C1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021144978A1 (ja) * 2020-01-17 2021-07-22 三菱電機株式会社 攻撃推定装置、攻撃推定方法及び攻撃推定プログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2574209B (en) * 2018-05-30 2020-12-16 F Secure Corp Controlling Threats on a Computer System by Searching for Matching Events on other Endpoints
WO2019236088A1 (en) * 2018-06-07 2019-12-12 Hewlett-Packard Development Company, L.P. Comparing a generated event with a received record
US10911479B2 (en) 2018-08-06 2021-02-02 Microsoft Technology Licensing, Llc Real-time mitigations for unfamiliar threat scenarios
US10826756B2 (en) * 2018-08-06 2020-11-03 Microsoft Technology Licensing, Llc Automatic generation of threat remediation steps by crowd sourcing security solutions
CN109886016B (zh) * 2018-12-27 2021-01-12 慧安金科(北京)科技有限公司 用于检测异常数据的方法、设备和计算机可读存储介质
US11055405B1 (en) * 2019-04-30 2021-07-06 Splunk Inc. Anomaly event detection using frequent patterns
CN112364284B (zh) * 2020-11-23 2024-01-30 北京八分量信息科技有限公司 基于上下文进行异常侦测的方法、装置及相关产品
US20230269256A1 (en) * 2022-02-21 2023-08-24 Palo Alto Networks (Israel Analytics) Ltd. Agent prevention augmentation based on organizational learning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243034A (ja) * 2007-03-28 2008-10-09 Ntt Docomo Inc ソフトウェア挙動モデル化装置、ソフトウェア挙動モデル化方法、ソフトウェア挙動検証装置及びソフトウェア挙動検証方法
JP2017505935A (ja) * 2013-12-06 2017-02-23 クアルコム,インコーポレイテッド モバイルデバイスの挙動の効率的な分類のためにアプリケーション固有のモデルおよびアプリケーションの種類に固有のモデルを使用する方法およびシステム
US20170124319A1 (en) * 2015-10-29 2017-05-04 International Business Machines Corporation Using call stack snapshots to detect anomalous computer behavior

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023341A (en) * 1989-09-19 1991-06-11 Allergan, Inc. Compounds having a disubstituted acetylene moiety and retinoic acid-like biological activity
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
US7246156B2 (en) * 2003-06-09 2007-07-17 Industrial Defender, Inc. Method and computer program product for monitoring an industrial network
US8549638B2 (en) * 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
WO2008055156A2 (en) * 2006-10-30 2008-05-08 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for detecting an anomalous sequence of function calls
US8732825B2 (en) * 2008-05-28 2014-05-20 Symantec Corporation Intelligent hashes for centralized malware detection
US8566943B2 (en) * 2009-10-01 2013-10-22 Kaspersky Lab, Zao Asynchronous processing of events for malware detection
US9298910B2 (en) 2011-06-08 2016-03-29 Mcafee, Inc. System and method for virtual partition monitoring
US8584235B2 (en) * 2011-11-02 2013-11-12 Bitdefender IPR Management Ltd. Fuzzy whitelisting anti-malware systems and methods
US8839435B1 (en) 2011-11-04 2014-09-16 Cisco Technology, Inc. Event-based attack detection
CN102629310A (zh) * 2012-02-29 2012-08-08 卡巴斯基实验室封闭式股份公司 用于保护计算机系统免遭恶意对象活动侵害的系统和方法
US9378390B2 (en) * 2012-03-30 2016-06-28 Nokia Technologies Oy Method and apparatus for policy adaption based on application policy compliance analysis
CA2809516C (en) 2013-03-13 2016-11-08 Khalid Nawaf Alharbi Preventing stack buffer overflow attacks
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
RU2580036C2 (ru) 2013-06-28 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ создания гибкой свертки для обнаружения вредоносных программ
US9166997B1 (en) 2013-09-19 2015-10-20 Symantec Corporation Systems and methods for reducing false positives when using event-correlation graphs to detect attacks on computing systems
WO2015113052A1 (en) 2014-01-27 2015-07-30 Webroot Inc. Detecting and preventing execution of software exploits
US9977897B2 (en) 2014-07-16 2018-05-22 Leviathan Security Group, Inc. System and method for detecting stack pivot programming exploit
US9710648B2 (en) * 2014-08-11 2017-07-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
RU2614557C2 (ru) * 2015-06-30 2017-03-28 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных файлов на мобильных устройствах
RU2634173C1 (ru) 2016-06-24 2017-10-24 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения приложения удалённого администрирования

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243034A (ja) * 2007-03-28 2008-10-09 Ntt Docomo Inc ソフトウェア挙動モデル化装置、ソフトウェア挙動モデル化方法、ソフトウェア挙動検証装置及びソフトウェア挙動検証方法
JP2017505935A (ja) * 2013-12-06 2017-02-23 クアルコム,インコーポレイテッド モバイルデバイスの挙動の効率的な分類のためにアプリケーション固有のモデルおよびアプリケーションの種類に固有のモデルを使用する方法およびシステム
US20170124319A1 (en) * 2015-10-29 2017-05-04 International Business Machines Corporation Using call stack snapshots to detect anomalous computer behavior

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
池部 優佳, 外5名: "モバイル向け異常検知ソフトウェア", 情報処理学会研究報告(2006−MBL−39 モバイルコンピューティングとユビキタス通信 2006−I, vol. 第2006巻,第120号, JPN6019018740, 17 November 2006 (2006-11-17), pages 39 - 46, ISSN: 0004169362 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021144978A1 (ja) * 2020-01-17 2021-07-22 三菱電機株式会社 攻撃推定装置、攻撃推定方法及び攻撃推定プログラム

Also Published As

Publication number Publication date
US10489586B2 (en) 2019-11-26
US10558801B2 (en) 2020-02-11
US11366896B2 (en) 2022-06-21
CN109145592B (zh) 2022-09-13
CN109583194B (zh) 2023-08-22
US20180365415A1 (en) 2018-12-20
JP6698056B2 (ja) 2020-05-27
JP6726706B2 (ja) 2020-07-22
US20180365419A1 (en) 2018-12-20
JP2019079492A (ja) 2019-05-23
EP3416083A1 (en) 2018-12-19
US20200125726A1 (en) 2020-04-23
RU2651196C1 (ru) 2018-04-18
CN109583194A (zh) 2019-04-05
US20180365416A1 (en) 2018-12-20
CN109145592A (zh) 2019-01-04
US11216555B2 (en) 2022-01-04
US10528727B2 (en) 2020-01-07
EP3416083B1 (en) 2020-01-15
US20200104487A1 (en) 2020-04-02

Similar Documents

Publication Publication Date Title
JP6698056B2 (ja) 異常な事象を検出するシステム及び方法
RU2571723C2 (ru) Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения
US11522877B2 (en) Systems and methods for identifying malicious actors or activities
EP3899770B1 (en) System and method for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats
US11403389B2 (en) System and method of detecting unauthorized access to computing resources for cryptomining
US10839074B2 (en) System and method of adapting patterns of dangerous behavior of programs to the computer systems of users
US20200389472A1 (en) Stateful rule generation for behavior based threat detection
CN113282928B (zh) 恶意文件的处理方法、装置、系统、电子装置和存储介质
RU2706883C1 (ru) Система и способ снижения количества ложных срабатываний классифицирующих алгоритмов
JP2019521400A (ja) 推測的なエクスプロイトの試みの検出
US20170155683A1 (en) Remedial action for release of threat data
RU2634181C1 (ru) Система и способ обнаружения вредоносных компьютерных систем
RU2531565C2 (ru) Система и способ анализа событий запуска файлов для определения рейтинга их безопасности
US8060577B1 (en) Method and system for employing user input for file classification and malware identification
CN110602135A (zh) 网络攻击处理方法、装置以及电子设备
US11003772B2 (en) System and method for adapting patterns of malicious program behavior from groups of computer systems
US8364776B1 (en) Method and system for employing user input for website classification
RU2673711C1 (ru) Способ обнаружения аномальных событий на основании набора сверток безопасных событий
CN114900375A (zh) 一种基于ai图分析的恶意威胁侦测方法
EP3462354B1 (en) System and method for detection of anomalous events based on popularity of their convolutions

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190528

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190827

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20191028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191210

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200330

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: 20200421

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200427

R150 Certificate of patent or registration of utility model

Ref document number: 6698056

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250