JP6968145B2 - システム呼び出しのシーケンスを用いた異常検出 - Google Patents

システム呼び出しのシーケンスを用いた異常検出 Download PDF

Info

Publication number
JP6968145B2
JP6968145B2 JP2019502667A JP2019502667A JP6968145B2 JP 6968145 B2 JP6968145 B2 JP 6968145B2 JP 2019502667 A JP2019502667 A JP 2019502667A JP 2019502667 A JP2019502667 A JP 2019502667A JP 6968145 B2 JP6968145 B2 JP 6968145B2
Authority
JP
Japan
Prior art keywords
identifier
activation
hash
call sequence
program procedure
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
JP2019502667A
Other languages
English (en)
Other versions
JP2019527429A (ja
Inventor
シャーノービー, モハメド アル
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.)
BlackBerry Ltd
Original Assignee
BlackBerry Ltd
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 BlackBerry Ltd filed Critical BlackBerry Ltd
Publication of JP2019527429A publication Critical patent/JP2019527429A/ja
Application granted granted Critical
Publication of JP6968145B2 publication Critical patent/JP6968145B2/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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Description

(技術分野)
本願は、呼び出しシーケンス異常検出、特に、オペレーティングシステム呼び出しにおける異常検出に関する。
メッセージベースのオペレーティングシステムでは、オペレーティングシステムの殆どのプログラムプロシージャの呼び出しまたは起動は、メッセージングシステムを伴う。メッセージベースのオペレーティングシステムでは、オペレーティングシステムのプログラムプロシージャの起動は、対応するメッセージがメッセージングシステムを通して送信側プロセスから受信側プロセスに渡されることをもたらし得る。
いくつかの例では、メッセージングシステムは、マイクロカーネル内に実装される。マイクロカーネルは、オペレーティングシステムを実装するために必要とされる比較的少数のサービスを提供し得る。例えば、マイクロカーネルのサービスは、低レベルアドレス空間管理、プロセス管理、およびプロセス間通信(IPC)を含み得る。メッセージングシステムは、プロセス間通信サービスの一部であり得る。
プロセスは、実行されているコンピュータプログラムのインスタンスである。いくつかのオペレーティングシステムでは、プロセスは、命令を並列して実行する複数の実行スレッドから構成され得る。
メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出する方法およびシステムが、提供される。ソフトウェア攻撃または他の異常が、本明細書に説明される方法およびシステムによって検出され得る。ゼロデイ攻撃として公知である、以前まで不明であったソフトウェア脆弱性に対する攻撃であっても、検出され得る。他の検出される異常は、例えば、ソフトウェア欠陥またはハードウェア障害およびタイムアウト等の他の通常ではないイベントを含み得る。
本発明はさらに、例えば、以下を提供する。
(項目1)
メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出する方法であって、前記方法は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における1回の起動である、ことと、
少なくとも前記プログラムプロシージャ識別子および前記受信側プロセス識別子に基づいて、起動ハッシュを生成することと、
前記起動ハッシュを起動識別子に変換することと、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むことと、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定することと
を含む、方法。
(項目2)
前記起動ハッシュは、前記送信側プロセス識別子にも基づく、項目1に記載の方法。
(項目3)
前記メッセージは、前記プログラムプロシージャに渡されるパラメータの指示を含み、前記起動ハッシュは、前記プログラムプロシージャに渡されるパラメータの指示にも基づく、項目1または項目2に記載の方法。
(項目4)
前記メッセージは、チャネル識別子を含み、前記起動ハッシュは、前記チャネル識別子にも基づく、項目1−3のうちのいずれか1項に記載の方法。
(項目5)
前記メッセージは、受信側ノード識別子を含み、前記起動ハッシュは、前記受信側ノード識別子にも基づく、項目1−4のうちのいずれか1項に記載の方法。
(項目6)
前記起動ハッシュを変換することは、前記起動識別子に関連付けられた起動ハッシュを備えている変換テーブルにおいて前記起動ハッシュに対して検索することを含む、項目1−5のうちのいずれか1項に記載の方法。
(項目7)
前記起動識別子は、前記起動ハッシュを含む前記変換テーブルにおける行番号である、項目6に記載の方法。
(項目8)
コンピュータ実行可能命令を備えている非一過性コンピュータ読み取り可能な記憶媒体であって、前記コンピュータ実行可能命令は、プロセッサによって実行可能であり、前記コンピュータ実行可能命令は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信するために実行可能な命令であって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における1回の起動である、命令と、
前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成するために実行可能な命令と、
前記起動ハッシュを起動識別子に変換するために実行可能な命令と、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むために実行可能な命令と、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定するために実行可能な命令であって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、命令と、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定するために実行可能な命令と
を備えている、非一過性コンピュータ読み取り可能な記憶媒体。
(項目9)
前記変換された呼び出しシーケンスが、前記事前決定された呼び出しシーケンスに含まれているかどうかの決定は、テーブルにおける前記変換された呼び出しシーケンスに対する検索に基づき、前記テーブルは、起動識別子の組の行を備え、前記起動識別子の各々は、変換データ構造において対応する起動ハッシュに関連付けられている、項目8に記載の非一過性コンピュータ読み取り可能な記憶媒体。
(項目10)
前記メッセージの受信は、トレースファイルからの前記プログラムプロシージャの前記起動についての情報の読み取りを含む、項目8または項目9に記載の非一過性コンピュータ読み取り可能な記憶媒体。
(項目11)
前記メッセージの受信は、前記オペレーティングシステムからの登録されたコールバックの形態における前記メッセージの受信を含む、項目8−10のうちのいずれか1項に記載の非一過性コンピュータ読み取り可能な記憶媒体。
(項目12)
前記起動ハッシュの生成は、恣意的サイズのデータを固定サイズのデータにマッピングするハッシュ関数の適用を含み、前記ハッシュ関数は、前記プログラムプロシージャ識別子と、前記送信側プロセス識別子と、前記受信側プロセス識別子とを含むデータに適用される、項目8−11のうちのいずれか1項に記載の非一過性コンピュータ読み取り可能な記憶媒体。
(項目13)
メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出するためのシステムであって、前記システムは、プロセッサを備え、
前記プロセッサは、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における1回の起動である、ことと、
前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成することと、
前記起動ハッシュを起動識別子に変換することと、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むことと、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定することと
を行うように構成されている、システム。
(項目14)
前記プロセッサは、少なくとも前記受信側プロセス識別子に基づいて、前記起動ハッシュを生成するように構成されている、項目13に記載のシステム。
(項目15)
前記プロセッサは、少なくとも前記送信側プロセス識別子および前記受信側プロセス識別子に基づいて、前記起動ハッシュを生成するように構成されている、項目13または項目14に記載のシステム。
(項目16)
前記メッセージは、前記プログラムプロシージャ識別子、前記送信側プロセス識別子、前記受信側プロセス識別子、チャネル識別子、受信側ノード識別子、前記プログラムプロシージャのパラメータ、および/または前記プログラムプロシージャに渡される前記パラメータの指示を備えている、項目13−15のうちのいずれか1項に記載のシステム。
(項目17)
前記プロセッサは、前記プログラムプロシージャ識別子、前記送信側プロセス識別子、前記受信側プロセス識別子、前記チャネル識別子、前記受信側ノード識別子、前記プログラムプロシージャのパラメータ、および/または前記プログラムプロシージャに渡されるパラメータの指示のうちの少なくとも1つに基づいて、前記起動ハッシュを生成するように構成されている、項目16に記載のシステム。
(項目18)
前記プロセッサは、異常としての前記変換された呼び出しシーケンスの識別に応答して、セキュリティレベルを変更するように構成されている、項目13−17のうちのいずれか1項に記載のシステム。
(項目19)
前記プロセッサは、異常としての前記変換された呼び出しシーケンスの前記識別がある閾値数の異常を超えているという決定に応答して、前記セキュリティレベルを変更するように構成されている、項目18に記載のシステム。
実施形態は、以下の図面および説明を参照してより深く理解され得る。図における構成要素は、必ずしも、縮尺通りではない。さらに、図では、同様の参照番号は、異なる図全体を通して対応する部分を指定する。
図1は、メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出するためのシステムの例を図示する。 図2は、例示的メッセージを図示する。 図3は、例示的プロファイルを図示する。 図4は、呼び出しシーケンス異常を検出するためのシステムの例示的論理のフロー図を図示する。 図5は、メモリとプロセッサとを含むシステムの例を図示する。
図1は、メッセージベースのオペレーティングシステム(OS)102における呼び出しシーケンス異常を検出するためのシステム100の例を図示する。システム100は、OS102内で実行されるか、または代替として、図1に示されるように、OS102の外側で実行されるプロセスとしての異常検出器104を含み得る。OS102は、1つ以上のプロセス106(図1にP1、P2、およびP3と指定される)からの対応するメッセージを処理することによって、オペレーティングシステム呼び出しの起動を取り扱う。付随して、OS102は、異常検出器104がOS102の外側のプロセスとして起動する場合、異常検出器104によって生じるオペレーティングシステム呼び出しの起動も取り扱う。OS102は、類似する機構を通してプロセス間通信も取り扱い、ソフトウェアバス108を経由してプロセス106間でメッセージを渡し得る。OS102は、いくつかの例では、OS102のメッセージ渡し機能性を実装するマイクロカーネル110を含み得る。
プロセス間通信に加えて、OS102は、いくつかの実装では、ノード間通信を取り扱い得る。例えば、OS102、プロセス106、および異常検出器104は、第1のノード112上に含まれ得る一方、第2のノード114は、オペレーティングシステムと、1つ以上のプロセスとを含み得る。第1のノード112上の1つ以上のプロセス106のいずれかは、第1のノード112のOS102にメッセージを渡すことによって、第2のノード114上の標的プロセスと通信し得、OS102は、メッセージを第2のノード114上の標的プロセスに送達する。
ノード112、114は、同じデバイス上にあるか、または代替として、ネットワークを経由して通信する別個の物理的デバイス上にあり得る。各ノードは、サーバのインスタンス、仮想マシンのインスタンス、コンピューティングデバイス、またはネットワーク上の任意の他のデバイスであり得、デバイスは、現実または仮想のものであり得る。
異常検出器104は、トレーナ116と、モニタ118と、ハンドラ120とを含み得る。トレーナ116は、通常の挙動の指示を提供するプロファイルを構築し得る。通常の挙動は、既知の挙動および/または事前決定された挙動である。モニタ118は、OS102から受信された起動情報を処理し、任意の異常を検出し得る。特に、モニタ118は、プロファイルにおいて記述される事前決定された挙動からの逸脱を検出し得る。ハンドラ120は、任意の検出された異常に反応し得る。例えば、ハンドラ120は、異常の検出に応答して、アラームを発するか、または別様に措置を講じ得る。
トレーナ116は、プロセス106が通常の動作下で生じるオペレーティングシステムプログラムプロシージャの起動のシーケンスを識別するプロファイル122を構築する。例えば、図1は、P1プロファイル、P2プロファイル、およびP3プロファイルと指定される3つのプロファイル122を図示し、3つのプロセス106の各々のための1つのプロファイルが、図示される(P1、P2、およびP3)。
システム呼び出しの短いシーケンスは、プロセスの通常の挙動および異常な挙動間の良好な判別基準である。システム呼び出しの短いシーケンスの集合は、通常の挙動の比較的に安定したシグネチャであり得る。
プロセスにおいて実行される重要なソフトウェアプログラムに対して、プログラムプロシージャ起動の完全な組は、膨大であり得る。しかしながら、起動のローカルな(コンパクトな)順序付けは、プロセスのより長い期間の動作にわたって著しく一貫し得る。トレーナ116の動作を例証するための例が、下記に提供される。
例えば、プロセス106のうちの1つは、以下の順序において以下のオペレーティングシステムプログラムプロシージャを起動し得る:open()、read()、mmap()、mmap()、open()、getrlimit()、mmap()、およびclose()。ウィンドウサイズLが、選択され得、ウィンドウサイズLは、ウィンドウ内に含むべき連続した起動の数を示す。起動の数kが、ウィンドウ内で第1の起動に続く(言い換えると、kは、先読みサイズである)。ウィンドウサイズLは、先読みサイズk+1に等しい。下記の表1は、ウィンドウが起動の例示的シーケンスを横断してスライドする場合の4(k=3)のウィンドウサイズで形成される連続した起動の組を図示する:open()、read()、mmap()、mmap()、open()、getrlimit()、mmap()、およびclose()。
Figure 0006968145
表2は、ウィンドウ内の第1の呼び出しによって順序付けられ、圧縮された表1からの呼び出し(起動)を図示する。圧縮されると、それぞれの位置における起動(前の呼び出し、2つ前の呼び出し、または3つ前の呼び出し等)は、そのそれぞれの位置に対して許容可能であるように統合される。例えば、以下の呼び出しシーケンス(直近の起動から最も古い起動に順序付けられる)は、同じシーケンスが表1にリストアップされていないが、表2に見出されると見なされるであろう:mmap()、read()、read()、open()。その理由は、read()がmmap()呼び出しに対する2つ前の呼び出し位置において許容可能と見なされるからである。
Figure 0006968145
呼び出しシーケンスにおける異常は、プロセスが監視されている間、プロセスによって生じるオペレーティングシステムプログラムプロシージャの連続した起動にわたって同じサイズのウィンドウをスライドさせることによって検出され得る。例えば、プロセスは、監視されている間、以下の順序における以下のオペレーティングシステムプログラムプロシージャを起動し得る:open、read、mmap、open、open、getrlimit、mmap、close。下記の表3は、ウィンドウが、プロセスが監視されている間、プロセスによって生じる起動のシーケンスを横断してスライドする場合に形成される連続した起動の組と比較した場合の表2からの逸脱を図示する。逸脱は、大文字で示される。言い換えると、「open」は、最終的に、1行目における2つ前の呼び出しでは「mmap」の代わりに「read」によって先行され、「open」は、最終的に、1行目における3つ前の呼び出しでは「read」の代わりに「open」によって先行され、「open」は、1行目における前の呼び出しでは「mmap」の代わりに「open」によって先行され、「getrlimit」は、最終的に、3行目における2つ先の呼び出しでは「mmap」の代わりに「open」によって先行される。
Figure 0006968145
メッセージベースのOS102では、問題は、オペレーティングシステムプログラムプロシージャ起動の(全てではないが)大部分が、オペレーティングシステム102を通して送信される対応するメッセージを通して生じることであり得る。メッセージの各々は、図2に示されるメッセージ202と類似するフォーマットを有し得、それは、上で説明される単純な1つのプロセス方法起動よりも複雑である。
メッセージ202は、プログラムプロシージャ識別子204、送信側プロセス識別子206、受信側プロセス識別子208、チャネル識別子210、受信側ノード識別子212、および/または、プログラムプロシージャに渡される1つ以上のパラメータ214を含み得る。メッセージ202は、追加の、より少ない、または異なるコンポーネントを含み得る。例えば、メッセージ202は、プログラムプロシージャ識別子204、送信側プロセス識別子206、受信側プロセス識別子208、チャネル識別子210、および/または受信側ノード識別子212を含むヘッダ216を含み得る。いくつかの例では、ヘッダ216は、プログラムプロシージャに渡されるパラメータ214の指示218を含み得る。例えば、パラメータ214の指示218は、パラメータ214のいずれかの最初の12バイトを含む固定サイズ値であり得る。いかなるパラメータも渡されない場合、および/または、12バイトを下回るパラメータがパラメータとして渡される場合、パラメータ214の指示218は、固定サイズ値の任意の使用されていない部分においてゼロ等のプレースホルダを含み得る。
プログラムプロシージャ識別子204は、起動されたプログラムプロシージャの任意の識別子であり得る。プログラムプロシージャ識別子204は、プログラムプロシージャのテキスト名、プログラムプロシージャを識別する数値、またはプログラムプロシージャを識別する任意の他の値であり得る。例えば、プログラムプロシージャ識別子は、プロセス106が起動し得るOS102のプログラムプロシージャの全てにOS102が割り当てた一意の番号であり得る。
送信側プロセス識別子206は、メッセージ202において識別されるプログラムプロシージャを起動したプロセス106を識別する任意の識別子であり得る。同様に、受信側プロセス識別子208は、メッセージ202を受信すべきプロセス106を識別する任意の識別子であり得る。例えば、受信側プロセス識別子208は、OS102内で実行されるプロセス、OS102上で実行されるプロセス106のうちの任意のもの、および/または別のノード上の任意のプロセスを識別し得る。OS102は、プロセス識別子206、208がノード112、114の再起動後であっても同じままであるように、静的プロセス識別子206、208を割り当て得る。例えば、OS102は、一意の番号または名称をプログラム実行ファイルに割り当て得る。例えば、いくつかのオペレーティングシステム上でファイルの一覧表を提供する「dir」実行ファイルは、「dir」という名称を割り当てられ得る。プログラム実行ファイルの複数のインスタンス化は、いくつかの例では、プロセス識別子206、208に追加される追加の情報を有し得る。例えば、「dir」実行ファイルの第2のインスタンスは、送信側プロセス識別子206として「dir−2」を割り当てられ得る。
チャネル識別子210は、プロセス間および/またはプロセスとOS102との間の通信チャネルを識別する任意の識別子であり得る。例えば、プロセスが作成する各チャネルのために、OS102は、連続的により大きい数を割り当て得る。例証的例として、プロセスによって作成される第1のチャネル識別子は、識別子「1」を割り当てられ得、プロセスによって作成される第2のチャネル識別子は、識別子「2」を割り当てられ得、以下同様である。
受信側ノード識別子212は、メッセージ202を受信すべきノードを識別する任意の識別子であり得る。ノード識別子212の例は、静的ネットワークアドレス、メディアアクセス制御アドレス(MACアドレス)、イーサネット(登録商標)アドレス、無線ハードウェアアドレス、静的インターネットプロトコル(IP)アドレス、または任意の他のそのような識別子を含み得る。
パラメータ214は、パラメータがプログラムプロシージャに渡される順序で配列される各パラメータのデータタイプ等のパラメータの定義を含み得る。パラメータの定義は、いくつかの例では、オーバーロード(複数のプログラムプロシージャが、同じ名称を有するが、異なるパラメータを有する)されているプログラムプロシージャ間を区別するために有用であり得る。代替として、または加えて、パラメータ214は、入力としてプログラムプロシージャに渡される1つ以上の実際の値を含み得る。
異常検出器104は、メッセージ202に基づいて、起動ハッシュ222を生成し得る(220)。起動ハッシュ222は、メッセージ202の全てまたは任意の部分の非暗号ハッシュであり得る。代替として、起動ハッシュ222は、メッセージ202の全てまたは任意の部分の暗号ハッシュであり得る。異常検出器104は、任意の好適なハッシュ関数を使用して起動ハッシュ222を生成し得る。ハッシュ関数は、恣意的サイズのデータを固定サイズのデータにマッピングする任意の関数であり得る。異常検出器104がプロセス106をリアルタイムで監視するように構成される場合、選定されるハッシュ関数は、比較的に迅速に完了するものであり得る。起動ハッシュ222は、32ビット、64ビット、または任意の他のサイズであり得る。
一例では、起動ハッシュ222は、プログラムプロシージャ識別子204および受信側プロセス識別子208のハッシュであり得る。代替として、起動ハッシュ222は、プログラムプロシージャ識別子204、送信側プロセス識別子206、および受信側プロセス識別子208のハッシュであり得る。代替として、起動ハッシュ222は、プログラムプロシージャ識別子204、送信側プロセス識別子206、受信側プロセス識別子208、チャネル識別子210、受信側ノード識別子212、および/またはプログラムプロシージャに渡されるパラメータ214の指示218のハッシュであり得る。言い換えると、起動ハッシュ222は、メッセージ202および/またはメッセージ202のコンポーネントの任意の組み合わせのハッシュであり得る。
起動ハッシュ222は、プログラムプロシージャ起動を識別する革新的構造である。ハッシュ関数に渡されるメッセージ202のコンポーネントが多いほど、プログラムプロシージャ起動は、より綿密に識別される。例えば、受信側ノード識別子212をハッシュ関数に渡すことは、起動がその他の点で同じである場合であっても、起動ハッシュ222に複数のノードへの起動を区別させるであろう。
起動ハッシュ222は比較的にサイズが大きくあり得るので、革新的変換機構が、提供される。図3は、変換機構を具現化するプロファイル122の例を図示する。上で先に示されるように、プロファイル122は、プロセス106のうちの特定の1つが通常の動作下で生じるオペレーティングシステムプログラムプロシージャの起動のシーケンスを識別する。特に、プロファイル122は、変換テーブル304または他の好適な変換データ構造と、事前決定された呼び出しシーケンス306とを含み得る。
異常検出器104のトレーナ116の動作中、トレーナ116は、1つ以上のプロセス106のためのプロファイル122を生成し得る。制御された環境で実行される1つ以上のプロセス106は、プロセス106の通常の、または予期される挙動を表す呼び出しシーケンスをもたらす。
異常検出器104および/またはトレーナ116は、オペレーティングシステム102のプログラムプロシージャが起動されたことを示すメッセージ202を受信し得る。例えば、異常検出器104および/またはトレーナ116は、リアルタイムでメッセージ202のコピー(およびプログラムプロシージャ起動に対応する他のメッセージのコピー)を受信するために、OS102の追跡特徴に登録していることもある。代替として、異常検出器104および/またはトレーナ116は、OS102の一部であり得、リアルタイムでメッセージ202(およびプログラムプロシージャ起動に対応する他のメッセージ)のコピーを受信するように構成され得る。なお別の例では、異常検出器104および/またはトレーナ116は、リアルタイムで、またはプログラムプロシージャが起動されてからかなり後、トレースファイルからのメッセージ202(およびオペレーティングシステム102のプログラムプロシージャが起動されたことを示す他のメッセージ)を読み取り得る。
異常検出器104および/またはトレーナ116は、上で説明されるように、メッセージ202に基づいて、起動ハッシュ222を生成し得る(220)。上で説明されるように、メッセージ202に基づいて起動ハッシュ222を生成すること(220)は、メッセージ202全体のハッシュを生成することまたはメッセージ202の1つ以上のコンポーネントのハッシュを生成することを含む。
異常検出器104および/またはトレーナ116は、起動ハッシュ222を起動識別子302に変換し得る。起動ハッシュ222と同様に、起動識別子302は、プログラムプロシージャ起動を識別する識別子である。しかしながら、起動識別子302は、起動ハッシュ222よりもサイズが小さい。
変換を実施するために、異常検出器104および/またはトレーナ116は、変換テーブル304または他の変換データ構造を使用し得る。変換テーブル304は、起動ハッシュおよび対応する起動識別子を備えている行を含み得る。起動ハッシュ222を起動識別子302に変換するために、変換テーブル304は、ちょうど生成された起動ハッシュ222と合致する起動ハッシュを有する行に対して検索され得る。そのような行が存在する場合、起動識別子302は、変換テーブル304のその行から読み取られる。代替として、いかなる合致するエントリも存在しない場合、起動ハッシュ222は、新しく割り当てられた対応する起動識別子302に加えて、起動テーブル304に追加され得る。起動識別子302は、起動テーブル304における行に特有である(または任意の他の変換データ構造におけるエントリに特有である)任意の識別子であり得る。
代替として、または加えて、起動識別子は、変換テーブル304における行番号であり得る。そのような例では、起動識別子は、変換テーブル304の行内に記憶される必要がないこともある。いくつかの例では、行は、より速い検索性能のためにプログラムプロシージャ識別子を含み得る。そのような例では、行は、メッセージ202内のプログラムプロシージャ識別子204と合致するプログラムプロシージャ識別子に対して検索され得、結果として生じる合致する行は、次いで、起動ハッシュ222に対して検索され得る。起動ハッシュ222がそのようなテーブルに追加される必要がある場合、プログラムプロシージャ204が、行内に含まれ得る。
任意の他の好適なデータ構造が、変換テーブル304の代わりに使用され得る。例えば、変換データ構造は、プログラムプロシージャ識別子を備えているキーと、第2のハッシュテーブルを備えている対応する値とを有する第1のハッシュテーブルを含み得る。第2のハッシュテーブルは、対応するプログラムプロシージャ識別子に対する起動ハッシュを備えているキーと、対応する起動識別子を備えている値とを有し得る。
メッセージ202において識別されるプログラムプロシージャの起動は、メッセージ202の送信側プロセス識別子206によって識別されるプロセス106から生じるプログラムプロシージャの一連の起動における1回の起動であり得る。起動識別子302が取得されると、起動識別子302は、ここで、一連のプログラムプロシージャ起動のための起動識別子を備えている変換された呼び出しシーケンス308内に含まれ得る。例えば、変換された呼び出しシーケンス308は、起動ハッシュ222によって(および起動識別子302によって)識別されるプログラムプロシージャの起動前に生じたプログラムプロシージャ起動を識別する起動識別子を含み得る。変換された呼び出しシーケンス308における起動識別子の数は、ウィンドウサイズLに等しくあり得る。
異常検出器104および/またはトレーナ116は、変換された呼び出しシーケンス308が事前決定された呼び出しシーケンス306内に含まれるかどうかを決定し得る。事前決定された呼び出しシーケンスの各々は、それぞれの呼び出しシーケンス内のプログラムプロシージャ起動を識別する起動識別子を備えている。事前決定された呼び出しシーケンス306内の起動識別子の各々は、変換テーブル304または他の変換データ構造内の起動ハッシュにマッピングされる。事前決定された呼び出しシーケンス306は、任意の好適なデータ構造内に記憶され得る。例えば、事前決定された呼び出しシーケンス306は、呼び出しシーケンス置換テーブル310内に記憶され得る。事前決定された呼び出しシーケンス306は、呼び出しシーケンスのコンパクトな組であり得る。コンパクトである場合、事前決定された呼び出しシーケンス306は、現在のプログラムプロシージャ起動の起動識別子302に対して、変換された呼び出しシーケンス308内の各対応する以前の位置に対して許容可能な起動識別子の組を示し得、任意の以前の位置に対する許容可能な起動識別子の組は、変換された呼び出しシーケンス308内の他の以前の位置に対する許容可能な起動識別子の組から独立している。故に、変換された呼び出しシーケンス308が事前決定された呼び出しシーケンス306内に含まれるかどうかを決定することは、変換された呼び出しシーケンス308の内容と合致するテーブル内の行を探すことよりも複雑であり得る。例えば、許容可能な起動の組は、変換された呼び出しシーケンス308内の以前の位置に対して連続してチェックされ得る。
変換された呼び出しシーケンス308が事前決定された呼び出しシーケンス内にまだ含まれていない場合、異常検出器104および/またはトレーナ116は、変換された呼び出しシーケンス308を事前決定された呼び出しシーケンス306に追加し得る。
異常検出器104および/またはトレーナ116は、プロセス106のうちの1つ以上のものに対するプロファイル122を開発するために、上で説明されるプロシージャを繰り返し得る。繰り返すとき、変換された呼び出しシーケンス308内の起動識別子は、シフトされ、最も古い起動のための起動識別子を除去し、それによって、次のプログラムプロシージャ起動の起動識別子のための場所を空け得る。
事前決定された呼び出しシーケンス306が十分に投入されると、プロセス106の各々のためのプロファイル122は、異常を検出するために使用され得る。事前決定された呼び出しシーケンス306が十分に投入されているかどうかを決定するための任意の技法が、使用され得る。例えば、トレーナ116は、事前決定された長さの時間にわたって動作し得る。別の例では、トレーナ116は、変換された呼び出しシーケンス308が、事前決定された呼び出しシーケンス306においてその時間の事前決定された割合見出されるまで動作し得る。なお別の例では、トレーナ116は、事前決定された使用事例の組が実行される間、動作し得る。
図4は、メッセージベースのオペレーティングシステム102における呼び出しシーケンス異常を検出するためのシステム100の例示的論理のフロー図を図示する。論理は、追加の、異なる、またはより少ない動作を含み得る。
プロセス106が開始されると、プロファイル122が、プロセス106において実行されるソフトウェアプログラムのためにロードされ得る(402)。例えば、モニタ118は、プロセス106がちょうど生成または開始されたことを示すメッセージをOS102から受信し得る。プロセス106は、プロセス識別子によってメッセージにおいて識別され得る。モニタ118は、同じプロセス識別子を有していたプロセスに関して以前に生成されたプロファイル122をロードし得る。
OS102のプログラムプロシージャの起動が生じたことを示すメッセージ202が、受信され得る(404)。例えば、モニタ118は、OS102からメッセージ202を受信し得る。上で説明されるように、メッセージ202は、プログラムプロシージャ識別子204、送信側プロセス識別子206、受信側プロセス識別子、および/または他のコンポーネントを含み得る。送信側プロセス識別子206は、先にロードされたプロファイル122に対応するプロセス識別子と合致し得る。
起動ハッシュ222が、メッセージ202に基づいて生成され得る(220)。例えば、モニタ118は、プログラムプロシージャ識別子204、送信側プロセス識別子206、受信側プロセス識別子208、および/またはメッセージ202の他のコンポーネントに基づいて、起動ハッシュ222を生成し得る(220)。
起動ハッシュ222は、上で説明されるように、起動識別子302に変換され得る(406)。例えば、モニタ118は、変換テーブル304を使用して、起動ハッシュ222を起動識別子302に変換し得る。起動ハッシュ222が変換テーブル304内に見出されることができない場合、起動識別子302は、未知の起動を示すプレースホルダ値に設定され得る。プレースホルダは、変換された呼び出しシーケンス308が事前決定された呼び出しシーケンス306内で見出されないことを保証するであろう。
起動識別子302が、変換された呼び出しシーケンス308内に含まれ得る(408)。上で説明されるように、変換された呼び出しシーケンス308は、プログラムプロシージャの一連の起動に対する起動識別子を備えている。変換された呼び出しシーケンス308の長さが、起動識別子302を含む前のウィンドウサイズLである場合、最も古い起動に対応する起動識別子は、ちょうど取得された起動識別子302のための場所を空けるために除去され得る。代替として、変換された呼び出しシーケンス308の長さが、まだウィンドウサイズLではない場合、動作は、プロセス106が別のプログラムプロシージャを起動したことを示す次のメッセージを受信する(404)ために戻り得る。
変換された呼び出しシーケンス308がプロファイル122の事前決定された呼び出しシーケンス306内に含まれるかどうかの決定(410)が、行われ得る。例えば、モニタ118は、変換された呼び出しシーケンス308に対して事前決定された呼び出しシーケンス306を検索し得る。上で説明されるように、そのような検索は、例えば、変換された呼び出しシーケンス308における各位置に対して許容可能な起動識別子の組を連続してチャックすることを伴い得る。
変換された呼び出しシーケンス308が事前決定された呼び出しシーケンス306内に含まれない場合、変換された呼び出しシーケンス308は、異常として識別され得る(412)。そうでなければ、変換された呼び出しシーケンス308は、異常ではないと決定され得る(414)。
変換された呼び出しシーケンス308が異常ではないと決定される場合、動作は、プロセス106が別のプログラムプロシージャを起動したことを示す次のメッセージを受信する(404)ために戻り得る。しかしながら、変換された呼び出しシーケンス308が異常として識別される場合、動作は、例えば、アラームを発することによって終了し得る。
代替として、または加えて、変換された呼び出しシーケンス308が異常として識別される場合、任意のタイプの措置が、講じられ得る。例えば、動作は、プロセス106が別のプログラムプロシージャを起動したことを示す次のメッセージを受信する(404)ために戻ることによって、異常を継続して検出しようとし得る。ハンドラ120は、アラームを発すること、プロセス106を減速させること、プロセス106を停止すること、および/または、システムの安全レベルを改変すること等、任意の検出された異常を取り扱い得る。例えば、OS102が車両操向システムを制御する場合、車両操向システムは、車両操向システムを動作停止させることが潜在的ソフトウェア攻撃の観点からより安全な動作レベルと見なされ得るので、異常の検出に応答してオフに切り替え得る。ハンドラ120は、例えば、プラグインアーキテクチャを使用して、特定の用途のためにカスタマイズされ得る。
さらに、ハンドラ120は、異常検出の感受性を取り扱い得る。例えば、変換された呼び出しシーケンス308が異常として識別される(412)場合、ハンドラ120は、直ちに異常を検出する代わりに、カウンタをインクリメントさせ得る。ハンドラ120は、カウンタがある閾値を過ぎるまで異常を検出することを待ち得る。
システム100は、追加の、異なる、またはより少ないコンポーネントとともに実装され得る。例えば、図5は、メモリ504と、プロセッサ502とを含むシステム100の例を図示する。
プロセッサ502は、メモリ504と通信し得る。一例では、プロセッサ502は、ネットワークインターフェース(図示せず)等の追加の要素とも通信し得る。プロセッサ502の例は、汎用プロセッサ、中央処理ユニット、マイクロコントローラ、サーバ、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、および/またはデジタル回路、アナログ回路を含み得る。
プロセッサ502は、論理を実行するために動作可能な1つ以上のデバイスであり得る。論理は、プロセッサ502によって実行されると、プロセッサ502に、異常検出器104および/またはシステム100の論理によって実装される特徴を実施させる、メモリ504内または他のメモリ内で具現化されるコンピュータ実行可能命令もしくはコンピュータコードを含み得る。コンピュータコードは、プロセッサ502を用いて実行可能な命令を含み得る。
メモリ504は、データまたはそれらの任意の組み合わせを記憶および読み出すための任意のデバイスであり得る。メモリ504は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、またはフラッシュメモリ等の不揮発性および/もしくは揮発性メモリを含み得る。代替として、または加えて、メモリ504は、光学、磁気(ハードドライブ)、または任意の他の形態のデータ記憶デバイスを含み得る。
メモリ504は、ノード112、第2のノード114、異常検出器104、トレーナ116、モニタ118、ハンドラ120、および/またはOS102を含み得る。
各コンポーネントは、追加の、異なる、またはより少ないコンポーネントを含み得る。例えば、異常検出器104は、モニタ118のみを含み得る。別の例として、メッセージ202は、パラメータ214の指示218を含まないこともある。
システム100は、多くの異なる方法で実装され得る。異常検出器104、トレーナ116、モニタ118、およびハンドラ120等の各モジュールは、ハードウェアまたはハードウェアおよびソフトウェアの組み合わせであり得る。例えば、各モジュールは、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、回路、デジタル論理回路、アナログ回路、離散回路の組み合わせ、ゲート、または任意の他のタイプのハードウェアもしくはそれらの組み合わせを含み得る。代替として、または加えて、各モジュールは、例えば、モジュールの特徴のうちの1つ以上のものを実装するためにプロセッサ502もしくは他のプロセッサを用いて実行可能な命令を備えている、メモリ504の一部等のメモリハードウェアを含み得る。モジュールのうちのいずれか1つが、プロセッサを用いて実行可能な命令を備えているメモリの一部を含むとき、モジュールは、プロセッサを含むことも、含まないこともある。いくつかの例では、各モジュールは、任意の他のハードウェアを含むモジュールを伴わずに対応するモジュールの特徴を実装するためにプロセッサ502または他のプロセッサを用いて実行可能な命令を備えているメモリ504もしくは他の物理的メモリの一部のみであり得る。各モジュールは、含まれるハードウェアがソフトウェアを備えているときであっても、少なくともいくつかのハードウェアを含むので、各モジュールは、ハードウェアモジュールと同義的に称され得る。
コンピュータ読み取り可能な記憶媒体内に記憶されるいくつかの特徴が、示される(例えば、コンピュータ実行可能命令として実装される論理として、またはメモリ内のデータ構造として)。システムならびにその論理およびデータ構造の全てまたは一部は、1つ以上のタイプのコンピュータ読み取り可能な記憶媒体上に記憶されるか、それを横断して分散されるか、もしくはそれから読み取られ得る。コンピュータ読み取り可能な記憶媒体の例は、ハードディスク、フロッピディスク、CD−ROM、フラッシュドライブ、キャッシュ、揮発性メモリ、不揮発性メモリ、RAM、フラッシュメモリ、または任意の他のタイプのコンピュータ読み取り可能な記憶媒体もしくは複数の記憶媒体を含み得る。コンピュータ読み取り可能な記憶媒体は、CD−ROM、揮発性メモリ、不揮発性メモリ、ROM、RAM、または任意の他の好適な記憶デバイス等の任意のタイプの非一過性コンピュータ読み取り可能な媒体を含み得る。しかしながら、コンピュータ読み取り可能な記憶媒体は、信号を伝搬するための一過性伝送媒体ではない。
システム100の処理能力は、随意に、複数の分散処理システムを含む、複数のプロセッサおよびメモリ間等、複数のエンティティ間で分散され得る。パラメータ、データベース、および他のデータ構造は、別個に記憶および管理され得、単一のメモリまたはデータベースに組み込まれ得、多くの異なる方法で論理的かつ物理的に編成され得、リンクリスト、ハッシュテーブル、または暗示的記憶機構等の異なるタイプのデータ構造を用いて実装され得る。プログラムまたは回路等の論理は、複数のプログラム間で組み合わせられるか、または分割され、いくつかのメモリおよびプロセッサを横断して分散され得、共有ライブラリ(例えば、ダイナミックリンクライブラリ(DLL))等のライブラリ内で実装され得る。
議論は全て、説明される特定の実装にもかかわらず、限定ではなく、本質的に例示的である。例えば、実装の選択される側面、特徴、またはコンポーネントは、メモリ内に記憶されるものとして描写されるが、システムまたは複数のシステムの全てもしくは一部は、他のコンピュータ読み取り可能な記憶媒体、例えば、ハードディスク、フラッシュメモリドライブ、フロッピディスク、およびCD−ROM等の二次記憶デバイス上に記憶される、それを横断して分散される、またはそれから読み取られ得る。さらに、種々のモジュールおよびスクリーンディスプレイ機能性は、そのような機能性の一例にすぎず、類似する機能性を包含する任意の他の構成が、可能である。
上で議論されるプロセス、方法、および/または技法を実装するためのそれぞれの論理、ソフトウェア、もしくは命令は、コンピュータ読み取り可能な記憶媒体上に提供され得る。図に図示される、または本明細書に説明される機能、行為、もしくはタスクは、コンピュータ読み取り可能な媒体内またはその上に記憶される論理もしくは命令の1つ以上の組に応答して実行され得る。機能、行為、またはタスクは、特定のタイプの命令セット、記憶媒体、プロセッサ、もしくは処理方略から独立し、ソフトウェア、ハードウェア、集積回路、ファームウェア、マイクロコード、および同等物によって実施され、単独で、または組み合わせにおいて動作し得る。同様に、処理方略は、マルチ処理、マルチタスキング、並列処理、および同等物を含み得る。一例では、命令は、ローカルまたは遠隔システムによる読み取りのために取り外し可能メディアデバイス上に記憶される。他の例では、論理または命令は、コンピュータネットワークを通した、または電話回線を経由する転送のために遠隔場所において記憶される。また他の例では、論理または命令は、所与のコンピュータ、中央処理ユニット(「CPU」)、グラフィックス処理ユニット(「GPU」)、またはシステム内に記憶される。
さらに、具体的コンポーネントが上で説明されるが、本明細書に説明される方法、システム、および製造品は、追加の、より少ない、または異なるコンポーネントを含み得る。例えば、プロセッサは、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)、離散論理、または他のタイプの回路もしくは論理の組み合わせとして実装され得る。同様に、メモリは、DRAM、SRAM、Flash、または任意の他のタイプのメモリであり得る。フラグ、データ、データベース、テーブル、エンティティ、および他のデータ構造は、別個に記憶および管理され、単一のメモリもしくはデータベースに組み込まれ、分散され、または多くの異なる方法で論理的かつ物理的に編成され得る。コンポーネントは、独立して動作するか、または同じプログラムもしくは装置の一部であり得る。コンポーネントは、別個の取り外し可能回路基板等の別個のハードウェア上に常駐するか、またはメモリからの命令を実装するために同じメモリおよびプロセッサ等の共通ハードウェアを共有し得る。プログラムは、単一のプログラムの一部であり、別個のプログラムであり、または、いくつかのメモリおよびプロセッサを横断して分散され得る。
第2の措置が、第2の措置が第1の措置から直接または間接的にもたらされるかにかかわらず、第1の措置に「応答している」と考えられ得る。第2の措置は、第1の措置よりも実質的に後の時間に起こり、依然として、第1の措置に応答し得る。同様に、第2の措置は、介入措置が第1の措置と第2の措置との間で起こる場合であっても、および介入措置のうちの1つ以上のものが直接第2の措置が実施されるようにする場合であっても、第1の措置に応答していると考えられ得る。例えば、第1の措置がフラグを設定し、第3の措置がフラグが設定されるときは常に第2の措置を後で開始する場合、第2の措置は、第1の措置に応答し得る。
公共への告示の使用を明瞭化し、本明細書によってそれを提供するために、語句「<A>、<B>、・・・および<N>のうちの少なくとも1つ」または「<A>、<B>、・・・<N>、またはそれらの組み合わせのうちの少なくとも1つ」もしくは「<A>、<B>、・・・および/または<N>」は、本出願者によって広い意味で定義され、そうではないことが本出願者によって明確に主張されない限り、本明細書の前後の任意の他の含意される定義に優先し、A、B、・・・およびNから成る群から選択される1つ以上の要素を意味する。言い換えると、その語句は、任意の1つの要素のみを含む、または列挙されない追加の要素もまた組み合わせにおいて含み得る他の要素のうちの1つ以上のものとの組み合わせにおける1つの要素を含む、要素A、B、・・・またはNのうちの1つ以上のものの任意の組み合わせを意味する。
種々の実施形態が説明されたが、多くのさらなる実施形態および実装が可能であることが、当業者に明白となるであろう。故に、本明細書に説明される実施形態は、例であり、唯一の可能な実施形態および実装ではない。
本開示の主題は、とりわけ、以下の側面に関し得る。
1. メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出する方法であって、方法は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、プログラムプロシージャの起動は、送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における1回の起動である、ことと、
少なくともプログラムプロシージャ識別子および受信側プロセス識別子に基づいて、起動ハッシュを生成することと、
起動ハッシュを起動識別子に変換することと、
一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに起動識別子を含むことと、
変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
変換された呼び出しシーケンスが事前決定された呼び出しシーケンスに含まれていない場合、変換された呼び出しシーケンスを異常として識別し、そうでなければ、変換された呼び出しシーケンスが異常ではないと決定することと
を含む、方法。
2. 起動ハッシュは、送信側プロセス識別子にも基づく、側面1に記載の方法。
3. メッセージは、プログラムプロシージャに渡されるパラメータの指示を含み、起動ハッシュは、プログラムプロシージャに渡されるパラメータの指示にも基づく、側面1−2のいずれかに記載の方法。
4. メッセージは、チャネル識別子を含み、起動ハッシュは、チャネル識別子にも基づく、側面1−3のいずれかに記載の方法。
5. メッセージは、受信側ノード識別子を含み、起動ハッシュは、受信側ノード識別子にも基づく、側面1−4のいずれかに記載の方法。
6. 起動ハッシュを変換することは、起動識別子に関連付けられた起動ハッシュを備えている変換テーブルにおいて起動ハッシュに対して検索することを含む、側面1−5のいずれかに記載の方法。
7. 起動識別子は、起動ハッシュを含む変換テーブルにおける行番号である、側面6に記載の方法。
8. コンピュータ実行可能命令を備えている非一過性コンピュータ読み取り可能な記憶媒体であって、コンピュータ実行可能命令は、プロセッサによって実行可能であり、コンピュータ実行可能命令は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信するために実行可能な命令であって、メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、プログラムプロシージャの起動は、送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における1回の起動である、命令と、
メッセージの少なくとも一部に基づいて、起動ハッシュを生成するために実行可能な命令と、
起動ハッシュを起動識別子に変換するために実行可能な命令と、
一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに起動識別子を含むために実行可能な命令と、
変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定するために実行可能な命令であって、事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、対応する起動識別子の各々は、起動ハッシュにマッピングされる、命令と、
変換された呼び出しシーケンスが事前決定された呼び出しシーケンスに含まれていない場合、変換された呼び出しシーケンスを異常として識別し、そうでなければ、変換された呼び出しシーケンスが異常ではないと決定するために実行可能な命令と
を備えている、非一過性コンピュータ読み取り可能な記憶媒体。
9. 変換された呼び出しシーケンスが、事前決定された呼び出しシーケンスに含まれているかどうかの決定は、テーブルにおいて変換された呼び出しシーケンスに対する検索に基づき、テーブルは、起動識別子の組の行を備え、起動識別子の各々は、変換データ構造において対応する起動ハッシュに関連付けられている、側面8に記載の非一過性コンピュータ読み取り可能な記憶媒体。
10. メッセージの受信は、トレースファイルからのプログラムプロシージャの起動についての情報の読み取りを備えている、側面8−9のいずれかに記載の非一過性コンピュータ読み取り可能な記憶媒体。
11. メッセージの受信は、オペレーティングシステムからの登録されたコールバックの形態におけるメッセージの受信を備えている、側面8−10のいずれかに記載の非一過性コンピュータ読み取り可能な記憶媒体。
12. 起動ハッシュの生成は、恣意的サイズのデータを固定サイズのデータにマッピングするハッシュ関数の適用を備え、ハッシュ関数は、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを備えているデータに適用される、側面8−11のいずれかに記載の非一過性コンピュータ読み取り可能な記憶媒体。
13. メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出するためのシステムであって、プロセッサを備え、
プロセッサは、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、プログラムプロシージャの起動は、送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における1回の起動である、ことと、
メッセージの少なくとも一部に基づいて、起動ハッシュを生成することと、
起動ハッシュを起動識別子に変換することと、
一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに起動識別子を含むことと、
変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定し、事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
変換された呼び出しシーケンスが事前決定された呼び出しシーケンスに含まれていない場合、変換された呼び出しシーケンスを異常として識別し、そうでなければ、変換された呼び出しシーケンスが異常ではないと決定することと
を行うように構成されている、システム。
14. プロセッサは、少なくとも受信側プロセス識別子に基づいて、起動ハッシュを生成するように構成されている、側面13に記載のシステム。
15. プロセッサは、少なくとも送信側プロセス識別子および受信側プロセス識別子に基づいて、起動ハッシュを生成するように構成されている、側面13−14のいずれかに記載のシステム。
16. メッセージは、プログラムプロシージャ識別子、送信側プロセス識別子、受信側プロセス識別子、チャネル識別子、受信側ノード識別子、プログラムプロシージャのパラメータ、および/またはプログラムプロシージャに渡されるパラメータの指示を備えている、側面13−15のいずれかに記載のシステム。
17. プロセッサは、プログラムプロシージャ識別子、送信側プロセス識別子、受信側プロセス識別子、チャネル識別子、受信側ノード識別子、プログラムプロシージャのパラメータ、および/またはプログラムプロシージャに渡されるパラメータの指示のうちの少なくとも1つに基づいて、起動ハッシュを生成するように構成されている、側面13−16のいずれかに記載のシステム。
18. プロセッサは、異常としての変換された呼び出しシーケンスの識別に応答して、セキュリティレベルを変更するように構成されている、側面13−17のいずれかに記載のシステム。
19. プロセッサは、異常としての変換された呼び出しシーケンスの識別がある閾値数の異常を超えているという決定に応答して、セキュリティレベルを変更するように構成されている、側面18に記載のシステム。

Claims (20)

  1. 呼び出しシーケンス異常を検出するためのシステムを動作させる方法であって、前記システムは、プロセッサを備え、前記方法は、
    前記プロセッサが、オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における1回の起動である、ことと、
    前記プロセッサが、前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成することと、
    前記プロセッサが、前記起動ハッシュを起動識別子に変換することと、
    前記プロセッサが、前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むことと、
    前記プロセッサが、前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
    前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記プロセッサが、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定することと
    を含む、方法。
  2. 前記起動ハッシュは、少なくとも前記受信側プロセス識別子に基づく、請求項1に記載の方法。
  3. 前記起動ハッシュは、少なくとも前記送信側プロセス識別子と前記受信側プロセス識別子とに基づく、請求項1に記載の方法。
  4. 前記メッセージは、前記プログラムプロシージャに渡されるパラメータの指示を含み、前記起動ハッシュは、前記プログラムプロシージャに渡されるパラメータの指示にも基づく、請求項13のうちのいずれか1項に記載の方法。
  5. 前記メッセージは、チャネル識別子を含み、前記起動ハッシュは、前記チャネル識別子にも基づく、請求項14のうちのいずれか1項に記載の方法。
  6. 前記メッセージは、受信側ノード識別子を含み、前記起動ハッシュは、前記受信側ノード識別子にも基づく、請求項15のうちのいずれか1項に記載の方法。
  7. 前記プロセッサが、前記起動ハッシュを変換することは、前記プロセッサが、前記起動識別子に関連付けられた起動ハッシュを備えている変換テーブルにおいて前記起動ハッシュに対して検索することを含む、請求項16のうちのいずれか1項に記載の方法。
  8. 前記起動識別子は、前記起動ハッシュを含む前記変換テーブルにおける行番号である、請求項7に記載の方法。
  9. コンピュータ実行可能命令を備えているコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ実行可能命令は、プロセッサによって実行可能であり、前記コンピュータ実行可能命令は、
    オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信するために実行可能な命令であって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における1回の起動である、命令と、
    前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成するために実行可能な命令と、
    前記起動ハッシュを起動識別子に変換するために実行可能な命令と、
    前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むために実行可能な命令と、
    前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定するために実行可能な命令であって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、命令と、
    前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定するために実行可能な命令と
    を備えている、コンピュータ読み取り可能な記憶媒体。
  10. 前記変換された呼び出しシーケンスが、前記事前決定された呼び出しシーケンスに含まれているかどうかの決定は、テーブルにおける前記変換された呼び出しシーケンスに対する検索に基づき、前記テーブルは、起動識別子の組の行を備え、前記起動識別子の各々は、変換データ構造において対応する起動ハッシュに関連付けられている、請求項9に記載のコンピュータ読み取り可能な記憶媒体。
  11. 前記メッセージの受信は、トレースファイルからの前記プログラムプロシージャの前記起動についての情報の読み取りを含む、請求項9または請求項10に記載のコンピュータ読み取り可能な記憶媒体。
  12. 前記メッセージの受信は、前記オペレーティングシステムからの登録されたコールバックの形態における前記メッセージの受信を含む、請求項911のうちのいずれか1項に記載のコンピュータ読み取り可能な記憶媒体。
  13. 前記起動ハッシュの生成は、恣意的サイズのデータを固定サイズのデータにマッピングするハッシュ関数の適用を含み、前記ハッシュ関数は、前記プログラムプロシージャ識別子と、前記送信側プロセス識別子と、前記受信側プロセス識別子とを含むデータに適用される、請求項912のうちのいずれか1項に記載のコンピュータ読み取り可能な記憶媒体。
  14. 呼び出しシーケンス異常を検出するためのシステムであって、前記システムは、プロセッサを備え、
    前記プロセッサは、
    オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における1回の起動である、ことと、
    前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成することと、
    前記起動ハッシュを起動識別子に変換することと、
    前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むことと、
    前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
    前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定することと
    を行うように構成されている、システム。
  15. 前記プロセッサは、少なくとも前記受信側プロセス識別子に基づいて、前記起動ハッシュを生成するように構成されている、請求項14に記載のシステム。
  16. 前記プロセッサは、少なくとも前記送信側プロセス識別子および前記受信側プロセス識別子に基づいて、前記起動ハッシュを生成するように構成されている、請求項14または請求項15に記載のシステム。
  17. 前記メッセージは、前記プログラムプロシージャ識別子、前記送信側プロセス識別子、前記受信側プロセス識別子、チャネル識別子、受信側ノード識別子、前記プログラムプロシージャのパラメータ、および/または前記プログラムプロシージャに渡される前記パラメータの指示を備えている、請求項1416のうちのいずれか1項に記載のシステム。
  18. 前記プロセッサは、前記プログラムプロシージャ識別子、前記送信側プロセス識別子、前記受信側プロセス識別子、前記チャネル識別子、前記受信側ノード識別子、前記プログラムプロシージャのパラメータ、および/または前記プログラムプロシージャに渡されるパラメータの指示のうちの少なくとも1つに基づいて、前記起動ハッシュを生成するように構成されている、請求項17に記載のシステム。
  19. 前記プロセッサは、異常としての前記変換された呼び出しシーケンスの識別に応答して、セキュリティレベルを変更するように構成されている、請求項1418のうちのいずれか1項に記載のシステム。
  20. 前記プロセッサは、異常としての前記変換された呼び出しシーケンスの前記識別がある閾値数の異常を超えているという決定に応答して、前記セキュリティレベルを変更するように構成されている、請求項19に記載のシステム。
JP2019502667A 2016-07-19 2017-07-19 システム呼び出しのシーケンスを用いた異常検出 Active JP6968145B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/213,874 US10241847B2 (en) 2016-07-19 2016-07-19 Anomaly detection using sequences of system calls
US15/213,874 2016-07-19
PCT/CA2017/050869 WO2018014129A1 (en) 2016-07-19 2017-07-19 Anomaly detection using sequences of system calls

Publications (2)

Publication Number Publication Date
JP2019527429A JP2019527429A (ja) 2019-09-26
JP6968145B2 true JP6968145B2 (ja) 2021-11-17

Family

ID=60988032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019502667A Active JP6968145B2 (ja) 2016-07-19 2017-07-19 システム呼び出しのシーケンスを用いた異常検出

Country Status (7)

Country Link
US (2) US10241847B2 (ja)
EP (1) EP3488346B1 (ja)
JP (1) JP6968145B2 (ja)
KR (1) KR102408847B1 (ja)
CN (1) CN109661652B (ja)
CA (1) CA3030927A1 (ja)
WO (1) WO2018014129A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10241847B2 (en) * 2016-07-19 2019-03-26 2236008 Ontario Inc. Anomaly detection using sequences of system calls
US10891370B2 (en) * 2016-11-23 2021-01-12 Blackberry Limited Path-based access control for message-based operating systems
US10599845B2 (en) * 2016-12-13 2020-03-24 Npcore, Inc. Malicious code deactivating apparatus and method of operating the same
US11144375B2 (en) 2018-10-09 2021-10-12 Argo AI, LLC Execution sequence integrity parameter monitoring system
US11138085B2 (en) 2018-10-09 2021-10-05 Argo AI, LLC Execution sequence integrity monitoring system
CN111506513B (zh) * 2020-06-04 2021-06-22 南京大学 一种基于层次化模型的文件系统测试方法
CN112231174B (zh) * 2020-09-30 2024-02-23 中国银联股份有限公司 异常告警方法、装置、设备及存储介质
US11789743B2 (en) * 2021-01-15 2023-10-17 Tenable, Inc. Host operating system identification using transport layer probe metadata and machine learning

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2136367A1 (en) * 1993-12-20 1995-06-21 John Scott Anderson Dynamically specifying invocations in compiled objects
JP3985461B2 (ja) 2000-05-02 2007-10-03 日本ビクター株式会社 認証方法、コンテンツ送信側機器、コンテンツ受信側機器、認証システム
US6735703B1 (en) * 2000-05-08 2004-05-11 Networks Associates Technology, Inc. Multi-platform sequence-based anomaly detection wrapper
US6742124B1 (en) * 2000-05-08 2004-05-25 Networks Associates Technology, Inc. Sequence-based anomaly detection using a distance matrix
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US7162741B2 (en) * 2001-07-30 2007-01-09 The Trustees Of Columbia University In The City Of New York System and methods for intrusion detection with dynamic window sizes
WO2004059961A1 (en) * 2002-12-26 2004-07-15 Oki Electric Industry Co., Ltd. Voice communications system
WO2005059720A1 (en) * 2003-12-17 2005-06-30 Telecom Italia S.P.A. Method and apparatus for monitoring operation of processing systems, related network and computer program product therefor
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
US7900194B1 (en) 2004-03-25 2011-03-01 Verizon Corporate Services Group Inc. Kernel-based intrusion detection using bloom filters
US20060190218A1 (en) * 2005-02-22 2006-08-24 Agrawal Subhash C Generative instrumentation framework
US7954112B2 (en) * 2005-05-20 2011-05-31 Microsoft Corporation Automatic recovery from failures of messages within a data interchange
US8544058B2 (en) * 2005-12-29 2013-09-24 Nextlabs, Inc. Techniques of transforming policies to enforce control in an information management system
WO2007120360A2 (en) * 2005-12-29 2007-10-25 Blue Jungle Information management system
US7716240B2 (en) * 2005-12-29 2010-05-11 Nextlabs, Inc. Techniques and system to deploy policies intelligently
EP1999925B1 (en) * 2006-03-27 2011-07-06 Telecom Italia S.p.A. A method and system for identifying malicious messages in mobile communication networks, related network and computer program product therefor
JP4749915B2 (ja) * 2006-03-31 2011-08-17 株式会社日立製作所 Sip交換システム
JP5090661B2 (ja) * 2006-04-12 2012-12-05 株式会社エヌ・ティ・ティ・ドコモ ソフトウェア動作モデル化装置、ソフトウェア動作監視装置、ソフトウェア動作モデル化方法及びソフトウェア動作監視方法
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
JP4938576B2 (ja) * 2007-07-24 2012-05-23 日本電信電話株式会社 情報収集システムおよび情報収集方法
US9240945B2 (en) 2008-03-19 2016-01-19 Citrix Systems, Inc. Access, priority and bandwidth management based on application identity
JP5191043B2 (ja) * 2008-04-21 2013-04-24 学校法人東京電機大学 プログラムの不正起動防止システム及び方法
CN102301374B (zh) 2009-02-16 2014-06-25 松下电器产业株式会社 非法模块确定装置、信息处理装置、非法模块确定方法、非法模块无效化系统及非法模块无效化方法
WO2011149552A1 (en) * 2010-05-28 2011-12-01 The Mathworks, Inc. Message-based modeling
JP2011258019A (ja) * 2010-06-09 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> 異常検知装置、異常検知プログラムおよび異常検知方法
US20140281539A1 (en) * 2012-03-30 2014-09-18 Goldman, Sachs & Co. Secure Mobile Framework With Operating System Integrity Checking
US8931101B2 (en) * 2012-11-14 2015-01-06 International Business Machines Corporation Application-level anomaly detection
US9146787B2 (en) * 2013-11-07 2015-09-29 Accenture Global Services Limited Analytics for application programming interfaces
CN104751053A (zh) * 2013-12-30 2015-07-01 南京理工大学常熟研究院有限公司 移动智能终端软件的静态行为分析方法
CN104751055B (zh) * 2013-12-31 2017-11-03 北京启明星辰信息安全技术有限公司 一种基于纹理的分布式恶意代码检测方法、装置及系统
US10074374B2 (en) * 2014-04-07 2018-09-11 Barco N.V. Ad hoc one-time pairing of remote devices using online audio fingerprinting
US10348724B2 (en) * 2014-04-07 2019-07-09 Barco N.V. Ad hoc one-time pairing of remote devices using online audio fingerprinting
US9832213B2 (en) * 2014-10-31 2017-11-28 Cyber Crucible Inc. System and method for network intrusion detection of covert channels based on off-line network traffic
US10372906B2 (en) * 2015-02-17 2019-08-06 International Business Machines Corporation Behavioral model based on short and long range event correlations in system traces
US20160342453A1 (en) * 2015-05-20 2016-11-24 Wanclouds, Inc. System and methods for anomaly detection
US10536357B2 (en) * 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US9699205B2 (en) * 2015-08-31 2017-07-04 Splunk Inc. Network security system
JP5933797B1 (ja) * 2015-10-07 2016-06-15 株式会社ソリトンシステムズ ログ情報生成装置及びプログラム並びにログ情報抽出装置及びプログラム
US9817971B2 (en) * 2015-10-29 2017-11-14 International Business Machines Corporation Using call stack snapshots to detect anomalous computer behavior
US9892253B1 (en) * 2016-06-20 2018-02-13 Amazon Technologies, Inc. Buffer overflow exploit detection
US10241847B2 (en) 2016-07-19 2019-03-26 2236008 Ontario Inc. Anomaly detection using sequences of system calls

Also Published As

Publication number Publication date
US20190220334A1 (en) 2019-07-18
CN109661652A (zh) 2019-04-19
US10241847B2 (en) 2019-03-26
KR20190030728A (ko) 2019-03-22
WO2018014129A1 (en) 2018-01-25
US10656981B2 (en) 2020-05-19
CN109661652B (zh) 2023-09-01
CA3030927A1 (en) 2018-01-25
JP2019527429A (ja) 2019-09-26
KR102408847B1 (ko) 2022-06-13
US20180024874A1 (en) 2018-01-25
EP3488346B1 (en) 2024-01-24
EP3488346A4 (en) 2019-12-11
EP3488346A1 (en) 2019-05-29

Similar Documents

Publication Publication Date Title
JP6968145B2 (ja) システム呼び出しのシーケンスを用いた異常検出
EP3547170B1 (en) Blockchain-based consensus method and device
US10599662B2 (en) Query engine for remote endpoint information retrieval
US9823942B2 (en) Virtual machine discovery and identification
US12003527B2 (en) Automatically detecting vulnerability regressions
CN110232279A (zh) 一种漏洞检测方法及装置
JP2017191604A (ja) エクスプロイトアクティビティーの相関ベースの検知
US11251976B2 (en) Data security processing method and terminal thereof, and server
US10394820B2 (en) Constructing and querying a bloom filter to detect the absence of data from one or more endpoints
JP2017068691A (ja) 診断プログラム、診断方法および診断装置
GB2589790A (en) Security of server hosting remote application
AU2016253706B2 (en) Data structure and algorithm to track machines
CN107635002A (zh) 一种容器化应用的访问方法及装置
JP2021077373A (ja) 脅威検出方法及びコンピュータ装置
JP6821089B2 (ja) ホストシステム内の同じ場所にあるコンテナの監視
WO2017099066A1 (ja) 診断装置、診断方法、及び、診断プログラムが記録された記録媒体
WO2017099062A1 (ja) 診断装置、診断方法、及び、診断プログラムが記録された記録媒体
WO2015116195A1 (en) Performing processing tasks using an auxiliary processing unit
US20240289464A1 (en) Techniques for the unification of raw cyber data collected from different sources for vulnerability management
CN111476663B (zh) 一种数据处理方法、装置、节点设备及存储介质
US20240289435A1 (en) Techniques for the execution of workflows on uber objects and compact representation in storage thereof
CN117494115A (zh) 容器环境下的反弹shell检测方法、装置、设备和介质
JP6749508B2 (ja) 攻撃検知装置
JP2009080753A (ja) 異常検知システム及び異常検知プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190319

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200612

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20200622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210901

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211026

R150 Certificate of patent or registration of utility model

Ref document number: 6968145

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150