CN109661652B - 使用系统调用序列的异常检测 - Google Patents

使用系统调用序列的异常检测 Download PDF

Info

Publication number
CN109661652B
CN109661652B CN201780054298.6A CN201780054298A CN109661652B CN 109661652 B CN109661652 B CN 109661652B CN 201780054298 A CN201780054298 A CN 201780054298A CN 109661652 B CN109661652 B CN 109661652B
Authority
CN
China
Prior art keywords
identifier
call
hash
translated
sequence
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
CN201780054298.6A
Other languages
English (en)
Other versions
CN109661652A (zh
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 CN109661652A publication Critical patent/CN109661652A/zh
Application granted granted Critical
Publication of CN109661652B publication Critical patent/CN109661652B/zh
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
    • 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
    • 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
    • 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)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

提供了在基于消息的操作系统中检测调用序列异常的系统和方法。可以接收指示调取操作系统的编程流程的消息。该消息可以包括编程流程标识符、发送方进程标识符和接收方进程标识符。可以基于该消息生成调取散列。可以将调取散列翻译为较小的调取标识符。调取标识符可以包括在已翻译的调用序列中,该已翻译的调用序列包括一系列调取的调取标识符。取决于已翻译的调用序列是否包括在先前生成的预定的调用序列中,该已翻译的调用序列可以被确定为异常或非异常。

Description

使用系统调用序列的异常检测
技术领域
本申请涉及调用序列异常检测,具体涉及操作系统调用中的异常检测。
背景技术
在基于消息的操作系统中,操作系统的大多数编程流程的调用(call)或调取(invocation)涉及消息传递系统。在基于消息的操作系统中,操作系统的编程流程的调取可导致对应的消息通过消息传递系统从发送方进程传递给接收方进程。
在一些示例中,消息传递系统在微内核中实现。微内核可以提供实现操作系统所需的相对少量的服务。例如,微内核的服务可以包括低级地址空间管理、进程管理和进程间通信(IPC)。消息传递系统可以是进程间通信服务的一部分。
进程是正在执行的计算机程序的实例。在一些操作系统中,进程可以由同时执行指令的多个执行线程组成。
附图说明
参考以下附图和描述可以更好地理解实施例。图中的组件不一定按比例绘制。此外,在附图中,相同的附图标记在不同视图中表示对应的部件。
图1示出了在基于消息的操作系统中检测调用序列异常的系统的示例;
图2示出了示例消息;
图3示出了示例简档;
图4示出了用于检测调用序列异常的系统的示例逻辑的流程图;以及
图5示出了包括存储器和处理器的系统的示例。
具体实施方式
提供了用于检测基于消息的操作系统中的调用序列异常的方法和系统。可以通过本文描述的方法和系统来检测软件攻击或其它异常。甚至可以检测到对以前未知的软件漏洞(称为零日攻击)的攻击。其它检测到的异常可能包括例如软件缺陷或其它不常见的事件,诸如硬件故障和超时。
图1示出了用于在基于消息的操作系统(OS)102中检测调用序列异常的系统100的示例。系统100可以包括在OS 102内执行的异常检测器104,或者替代地,如图1中所示,作为在OS 102外部执行的进程。OS 102通过处理来自一个或多个进程106(图1中指定为P1、P2和P3)的对应消息来处理操作系统调用的调取。顺便提及,当异常检测器104作为OS 102外部的进程运行时,OS 102还处理由异常检测器104做出的操作系统调用的调取。OS 102还可以通过类似机制处理进程间通信,通过软件总线108在进程106之间传递消息。在一些示例中,OS 102可以包括微内核110,微内核110实现OS102的消息传递功能。
除了进程间通信之外,OS 102可以在一些实现方式中处理节点间通信。例如,OS102、进程106和异常检测器104可以包括在第一节点112上,而第二节点114可以包括操作系统和一个或多个进程。第一节点112上的任何一个或多个进程106可以通过将消息传递给第一节点112的OS102来与第二节点114上的目标进程通信,该第一节点将消息传递给第二节点114上的目标进程。
节点112、114可以在同一设备上,或者替代地,在通过网络进行通信的单独物理设备上。每个节点可以是服务器的实例、虚拟机的实例、计算设备或网络上的任何其它设备,其中设备可以是真实的或虚拟的。
异常检测器104可以包括训练器116、监视器118和处理机120。训练器116可以构建简档,简档提供对正常行为的指示。正常行为是已知行为和/或预定行为。监视器118可以处理从OS 102接收的调取信息并检测任何异常。特别地,监视器118可以检测与简档中描述的预定行为的偏差。处理机120可以对任何检测到的异常做出反应。例如,处理机120可以响应于检测到异常而发出警报或以其它方式采取行动。
训练器116构建简档122,简档122标识进程106在正常操作下做出的操作系统编程流程的调取序列。例如,图1示出了三个简档122,指定为P1简档、P2简档和P3简档,针对所示的三个进程106中的每一个进程示出一个简档(P1、P2和P3)。
短系统调用序列是进程的正常行为和异常行为之间的良好区分器。短系统调用序列集可以是正常行为的相对稳定的识别标志(signature)。
对于在进程中执行的非平凡(non-trivial)软件程序,完整的编程流程调取集合可能是巨大的。然而,调取的本地(紧凑)排序可以在该进程的较长操作期间非常一致。下面提供一个示例来示出训练器116的操作。
例如,进程106中的一个进程可以按以下顺序调取以下操作系统编程流程:open(),read(),mmap(),mmap(),open(),getrlimit(),mmap()和close()。可以选择窗口大小L,其中窗口大小L指示要包括在窗口中的顺序调取的数量。在窗口中第一次调取之后的调取次数k(换句话说,k是先行(lookahead)大小)。窗口大小L等于先行大小k+1。下面的表1示出了当窗口滑过以下示例调用序列时的顺序调取集合(窗口大小为4(k=3)):open(),read(),mmap(),mmap(),open(),getrlimit(),mmap()和close()。
表1
表2示出了按窗口中的第一次调用排序的且紧凑的来自表1的调用(调取)。当紧凑时,相应位置(例如上一次调用,再上次调用或再再上一次调用)中的调取被合并为对于该相应位置是可接受的。例如,可以在表2中找到以下调用序列(从最近调取到最早调取排序):mmap(),read(),read(),open(),即使表1中未列出相同的序列。原因是在mmap()调用的再上一次调用位置认为read()是可接受的。
表2
可以通过在监视进程时对由进程做出的操作系统编程流程的顺序调取滑动相同大小的窗口来检测调用序列中的异常。例如,进程可以在被监视时按以下顺序调取以下操作系统编程流程:open,read,mmap,open,open,getrlimit,mmap,close。下面的表3示出了当与顺序调取集合进行比较时与表2的偏差,该顺序调取集合是在监视进程时窗口滑过由该进程做出的调用序列时形成的。偏差用大写形式表示。换句话说,在第1行的再上一次调用中,最后是“read”而不是“mmap”在“open”之前;在第1行的再再上一次调用中,最后是“open”而不是“read”在“open”之前;在第1行的上一次调用中,是“open”而不是“mmap”在“open”之前;并且在第3行的再上一次调用处,是“open”而不是“mmap”在“getrlimit”之前。
表3
在基于消息的OS 102中,问题可能是大多数(如果不是全部)操作系统编程流程调取是通过操作系统102发送的对应消息做出的。这些消息中的每一个可以具有类似于图2中所示消息202的格式,这比上述简单的单进程方法调取更复杂。
消息202可以包括编程流程标识符204、发送方进程标识符206、接收方进程标识符208、信道标识符210、接收方节点标识符212、和/或传递给编程流程的一个或多个参数214。消息202可以包括附加的、更少的或不同的组成部分。例如,消息202可以包括首部216,首部216包括编程流程标识符204、发送方进程标识符206、接收方进程标识符208、信道标识符210和/或接收方节点标识符212。在一些示例中,首部216可以包括对传递给编程流程的参数214的指示218。例如,对参数214的指示218可以是固定大小值,其包括参数214中的任何参数的前12个字节。如果没有传递参数和/或将小于12个字节的参数作为参数进行传递,则对参数214的指示218可以在该固定大小值的任何未使用部分中包括占位符,例如零。
编程流程标识符204可以是被调取的编程流程的任何标识符。编程流程标识符204可以是编程流程的文本名称、标识编程流程的数值,或标识编程流程的任何其它值。例如,编程流程标识符可以是OS 102分配给OS 102的可由进程106调取的所有编程流程的唯一编号。
发送方进程标识符206可以是标识调取消息202中所标识的编程流程的进程106的任何标识符。类似地,接收方进程标识符208可以是标识要接收消息的进程106的任何标识符。例如,接收方进程标识符208可以标识在OS 102内执行的进程、在OS 102上执行的任何进程106和/或另一节点上的任何进程。OS102可以分配静态进程标识符206、208,使得即使在重新启动节点112、114之后,进程标识符206、208也保持相同。例如,OS 102可以向程序可执行文件分配唯一的编号或名称。例如,可以为在一些操作系统上提供文件列表的“dir”可执行文件分配名称“dir”。在一些示例中,程序可执行文件的多个实例可以具有添加到进程标识符206、208的附加信息。例如,“dir”可执行文件的第二实例可以被分配“dir-2”作为发送方进程标识符206。
信道标识符210可以是标识进程之间和/或进程与OS 102之间的通信信道的任何标识符。例如,对于进程创建的每个信道,OS 102可以分配顺序更高的编号。作为示意性示例,由进程创建的第一信道标识符可以被分配标识符“1”,由进程创建的第二信道标识符可以被分配标识符“2”,等等。
接收方节点标识符212可以是标识要接收消息202的节点的任何标识符。节点标识符212的示例可以包括静态网络地址、媒体访问控制地址(MAC地址)、以太网地址、无线硬件地址、静态互联网协议(IP)地址或任何其它这样的标识符。
参数214可以包括参数的定义,诸如按参数被传递给编程流程的顺序排列的每个参数的数据类型。在一些示例中,对于区分过载的编程流程(多个编程流程具有相同的名称,但具有不同的参数)而言,参数的定义可能是有用的。替代地或另外地,参数214可以包括作为输入传递给编程流程的一个或多个实际值。
异常检测器104可以基于消息202生成(220)调取散列222。调取散列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中的特定进程在正常操作下做出的操作系统编程流程的调取序列。特别地,简档122可以包括翻译表304或其它合适的翻译数据结构,以及包括预定的调用序列306。
在异常检测器104的训练器116的操作期间,训练器116可以为一个或多个进程106生成简档122。该一个或多个进程106在受控环境中执行,产生表示进程106的正常或者预期行为的调用序列。
异常检测器104和/或训练器116可以接收指示操作系统102的编程流程被调取的消息202。例如,异常检测器104和/或训练器116可能已经向OS 102的跟踪特征注册,以便实时接收消息202的副本(以及对应于编程流程调取的其它消息的副本)。替代地,异常检测器104和/或训练器116可以是OS 102的一部分,并且可以被配置为实时接收消息202的副本(以及对应于编程流程调取的其它消息)。在又一示例中,异常检测器104和/或训练器116可以实时地或者在调取编程流程很长时间之后从跟踪文件中读取消息202(以及指示操作系统102的编程流程被调取的其它消息)。
如上所述,异常检测器104和/或训练器116可以基于消息202生成(220)调取散列222。如上所述,基于消息202生成(220)调取散列222包括生成整个消息202的散列或生成消息202的一个或多个组成部分的散列。
异常检测器104和/或训练器116可以将调取散列222翻译为调取标识符302。与调取散列222类似,调取标识符302是标识编程流程调取的标识符。然而,调取标识符302的大小小于调取散列222。
为了执行翻译,异常检测器104和/或训练器116可以使用翻译表304或其它翻译数据结构。翻译表304可以包括包含调取散列和对应的调取标识符的行。为了将调取散列222翻译为调取标识符302,可以在翻译表304中搜索具有与刚刚生成的调取散列222匹配的调取散列的行。如果存在这样的行,则从翻译表304的该行中读取调取标识符302。替代地,如果没有匹配的条目,则除了新分配的对应调取标识符302之外,可以将调取散列222添加到调取表304。调取标识符302可以是对调取表304中的行唯一(或对于任何其它翻译数据结构中的条目唯一)的任何标识符。
替代地或另外地,调取标识符可以是翻译表304中的行号。在这样的示例中,调取标识符可以不需要存储在翻译表304的行中。在一些示例中,行可以包括用于更快查找性能的编程流程标识符。在这样的示例中,可以搜索行以查找与消息202中的编程流程标识符204匹配的编程流程标识符,然后可以搜索所得到的匹配行以寻找调取散列222。如果需要将调取散列222添加到这样的表中,编程流程标识符204可以包括在行中。
可以使用任何其它合适的数据结构来代替翻译表304。例如,翻译数据结构可以包括第一散列表,该第一散列表具有包括编程流程标识符的密钥和包括第二散列表的对应值。第二散列表可以具有包括用于对应的编程流程标识符的调取散列的密钥和包括对应的调取标识符的值。
对在消息202中标识的编程流程的调取可以是在由消息202的发送方进程标识符206标识的进程106做出的一系列编程流程调取中的一个调取。利用获得的调取标识符302,调取标识符302现在可以包括在已翻译的调用序列308中,该已翻译的调用序列包括用于一系列编程流程调取的调取标识符。例如,已翻译的调用序列308可以包括识别在调取由调取散列222(以及调取标识符302)标识的编程流程之前发生的编程流程调取的调取标识符。已翻译的调用序列308中的调取标识符的数量可以等于窗口大小L。
异常检测器104和/或训练器116可以确定已翻译的调用序列308是否包括在预定的调用序列306中。每个预定的调用序列包括标识相应调用序列中的编程流程调取的调取标识符。预定的调用序列306中的调取标识符各自映射到翻译表304或其它翻译数据结构中的调取散列。预定的调用序列306可以存储在任何合适的数据结构中。例如,预定的调用序列306可以存储在调用序列置换表310中。预定的调用序列306可以是紧凑调用序列集合。如果是紧凑的,则预定的调用序列306可以针对当前编程流程调取的调取标识符302指示已翻译的调用序列308中的每个对应的先前位置的可接受调取标识符集合,其中任何先前位置的可接受调取标识符集合独立于已翻译的调用序列308中的其它先前位置的可接受调取标识符集合。因此,相比于在表中寻找与已翻译的调用序列308的内容相匹配的行,确定已翻译的调用序列308是否包括在预定的调用序列306中可能更加复杂。例如,可以针对已翻译的调用序列308中的先前位置顺序地检查可接受调取的集合。
如果已翻译的调用序列308尚未包括在预定的调用序列中,则异常检测器104和/或训练器116可以将已翻译的调用序列308添加到预定的调用序列306。
异常检测器104和/或训练器116可以重复上述过程以开发用于一个或多个进程106的简档122。当重复时,已翻译的调用序列308中的调取标识符可以被移位,移除最早调取的调取标识符从而为下一个编程流程调取的调取标识符腾出空间。
当预定的调用序列306被充分填充时,则可以使用每个进程106的简档122来检测异常。可以使用用于确定预定的调用序列306是否充分填充的任何技术。例如,训练器116可以操作预定的时间长度。在另一个示例中,训练器116可以操作,直到在预定的调用序列306中找到已翻译的调用序列308达预定的时间百分比。在又一个示例中,训练器116可以在执行预定的用例集合的同时操作。
图4示出了用于检测基于消息的操作系统102中的调用序列异常的系统100的示例逻辑的流程图。该逻辑可以包括附加的、不同的或更少的操作。
当进程106开始时,可以加载(402)用于在进程106中执行的软件程序的简档122。例如,监视器118可以从OS 102接收指示进程106刚刚产生或者开始的消息。可以通过进程标识符在消息中标识进程106。监视器118可以加载先前为具有相同进程标识符的进程生成的简档122。
可以接收(404)消息202,指示调取了OS 102的编程流程。例如,监视器118可以从OS 102接收消息202。如上所述,消息202可以包括编程流程标识符204、发送方进程标识符206、接收方进程标识符和/或其它组成部分。发送方进程标识符206可以匹配与先前加载的简档122相对应的进程标识符。
可以基于消息202生成(220)调取散列222。例如,监视器118可以基于编程流程标识符204、发送方进程标识符206、接收方进程标识符208和/或消息202的其它组成部分生成(220)调取散列222。
如上所述,可以将调取散列222翻译(406)成调取标识符302。例如,监视器118可以使用翻译表304将调取散列222翻译成调取标识符302。如果在翻译表304中找不到调取散列222,则可以将调取标识符302设置为占位符值,指示未知的调取。占位符将保证在预定的调用序列306中找不到已翻译的调用序列308。
可以将调取标识符302包括(408)在已翻译的调用序列308中。如上所述,已翻译的调用序列308包括用于一系列编程流程调取的调取标识符。如果已翻译的调用序列308的长度是包括调取标识符302之前的窗口大小L,则可以移除与最早调取相对应的调取标识符,以便为刚刚获得的调取标识符302腾出空间。替代地,如果已翻译的调用序列308的长度还不是窗口大小L,则操作可以返回以接收(404)指示进程106调取另一编程流程的下一消息。
可以确定(410)已翻译的调用序列308是否包括在简档122的预定的调用序列306中。例如,监视器118可以在预定的调用序列306中搜索已翻译的调用序列308。如上所述,这种搜索可以包括,例如,按顺序地检查已翻译的调用序列308中的每个位置的可接受调取标识符集合。
如果已翻译的调用序列308未包括在预定的调用序列306中,则可以将已翻译的调用序列308识别(412)为异常。否则,可以确定(414)已翻译的调用序列308不异常。
如果确定已翻译的调用序列308不异常,则操作可以返回以接收(404)指示进程106调取另一编程流程的下一消息。然而,如果已翻译的调用序列308被识别为异常,则操作可以通过例如发出警报来结束。
可替代地或另外地,如果已翻译的调用序列308被识别为异常,则可以采取任何类型的动作。例如,操作可以继续尝试通过返回以接收(404)指示进程106调取另一编程流程的下一消息来尝试检测异常。处理机120可以处理任何检测到的异常,诸如发出警报,减慢进程106,停止进程106,以及/或者改变系统的安全级别。例如,如果OS 102控制车辆转向系统,则车辆转向系统可以响应于检测到异常而关闭,因为考虑到潜在的软件攻击,禁用车辆转向系统可以被视为更安全的操作级别。可以使用例如插件架构为特定应用定制处理机120。
此外,处理机120可以处理异常检测的灵敏度。例如,如果已翻译的调用序列308被识别(412)为异常,则处理机120可以递增计数器而不是立即检测到异常。处理机120可以等待,直到计数器超过阈值之后才检测到异常。
系统100可以用附加的、不同的或更少的组件来实现。例如,图5示出了包括存储器504和处理器502的系统100的示例。
处理器502可以与存储器504通信。在一个示例中,处理器502还可以与诸如网络接口(未示出)的附加元件通信。处理器502的示例可以包括通用处理器、中央处理单元、微控制器、服务器、专用集成电路(ASIC)、数字信号处理器、现场可编程门阵列(FPGA)和/或数字电路、模拟电路。
处理器502可以是可操作以执行逻辑的一个或多个设备。该逻辑可以包括在存储器504或其它存储器中具体实施的计算机可执行指令或计算机代码,当由处理器502执行时,使得处理器502执行由异常检测器104和/或系统100的逻辑实现的特征。计算机代码可以包括可用处理器502执行的指令。
存储器504可以是用于存储和检索数据的任何设备或其任何组合。存储器504可以包括非易失性和/或易失性存储器,诸如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)或闪存。替代地或另外地,存储器504可以包括光学、磁(硬盘驱动器)或任何其它形式的数据存储设备。
存储器504可以包括节点112、第二节点114、异常检测器104、训练器116、监视器118、处理机120和/或OS102。
每个组件可以包括附加的、不同的或更少的组件。例如,异常检测器104可以仅包括监视器118。作为另一示例,消息202可以不包括对参数214的指示218。
系统100可以以许多不同方式实现。每个模块(诸如异常检测器104、训练器116、监视器118和处理机120)可以是硬件或硬件和软件的组合。例如,每个模块可以包括专用集成电路(ASIC)、现场可编程门阵列(FPGA)、电路、数字逻辑电路、模拟电路、分立电路的组合、门或任何其它类型的硬件或其组合。替代地或另外地,每个模块可以包括存储器硬件,诸如存储器504的一部分,例如其包括可用处理器502或其它处理器执行以实现模块的一个或多个特征的指令。当模块中的任何一个包括存储器的包括可用处理器执行的指令的部分时,模块可以包括或不包括处理器。在一些示例中,每个模块可以仅仅是存储器504或其它物理存储器的一部分,其包括可用处理器502或其它处理器执行的指令,以实现对应模块的特征而无需包括任何其它硬件的模块。因为即使当所包括的硬件包括软件时,每个模块也包括至少一些硬件,所以每个模块可以互换地称为硬件模块。
示出了一些特征存储在计算机可读存储介质中(例如,作为计算机可执行指令实现的逻辑或存储器中的数据结构)。系统及其逻辑和数据结构的全部或部分可以存储在一个或多个类型的计算机可读存储介质上,分布在其上或从其读取。计算机可读存储介质的示例可以包括硬盘、软盘、CD-ROM、闪存驱动器、高速缓存、易失性存储器、非易失性存储器、RAM、闪存或任何其它类型的一种或多种计算机可读存储介质。计算机可读存储介质可以包括任何类型的非暂时性计算机可读介质,诸如CD-ROM、易失性存储器、非易失性存储器、ROM、RAM或任何其它合适的存储设备。然而,计算机可读存储介质不是用于传播信号的暂时性传输介质。
系统100的处理能力可以分布在多个实体之间,诸如多个处理器和存储器之间,可选地包括多个分布式处理系统。参数、数据库和其它数据结构可以单独存储和管理,可以合并到单个存储器或数据库中,可以以许多不同的方式在逻辑上和物理上进行组织,并且可以用不同类型的数据结构实现,诸如链表、散列表或隐式存储机制。诸如程序或电路的逻辑可以在多个程序之间组合或分开,分布在若干存储器和处理器上,并且可以在诸如共享库(例如,动态链接库(DLL))之类的库中实现。
无论所描述的特定实现方式如何,所有讨论本质上是示例性的,而不是限制性的。例如,尽管实现方式的所选方面、特征或组件被描绘为存储在存储器中,但是一个或多个系统的全部或一部分可以存储在其它计算机可读存储介质上,分布在其上或从其读取,例如,二级存储设备,诸如硬盘、闪存驱动器、软盘和CD-ROM。此外,各种模块和屏幕显示功能仅是这种功能的一个示例,并且包含类似功能的任何其它配置都是可能的。
可以在计算机可读存储介质上提供用于实现上面讨论的进程、方法和/或技术的相应逻辑、软件或指令。可以响应于存储在计算机可读介质中或上的一组或多组逻辑或指令来执行附图中示出或本文描述的功能、动作或任务。功能、动作或任务独立于特定类型的各组指令、存储介质、处理器或处理策略,并且可以由单独或组合操作的软件、硬件、集成电路、固件、微代码等来执行。同样,处理策略可以包括多处理、多任务处理、并行处理等。在一个示例中,指令存储在可移动媒体设备上以供本地或远程系统读取。在其它示例中,逻辑或指令存储在远程位置以通过计算机网络或通过电话线传输。在其它示例中,逻辑或指令存储在给定计算机、中央处理单元(“CPU”)、图形处理单元(“GPU”)或系统内。
此外,尽管上文描述了特定组件,但本文描述的方法、系统和制品可以包括附加的、更少的或不同的组件。例如,处理器可以实现为微处理器、微控制器、专用集成电路(ASIC)、离散逻辑或其它类型的电路或逻辑的组合。类似地,存储器可以是DRAM、SRAM、闪存或任何其它类型的存储器。标志、数据、数据库、表格、实体和其它数据结构可以单独存储和管理,可以合并到单个存储器或数据库中,可以是分布式的,或者可以以许多不同的方式在逻辑上和物理上进行组织。组件可以独立操作或者是相同程序或装置的一部分。组件可以驻留在单独的硬件上,诸如单独的可移动电路板,或共享公共硬件,诸用于实现来自存储器的指令的相同存储器和处理器。程序可以是单个程序的多个部分、单独的程序,或分布在多个存储器和处理器上。
可以说第二动作是“响应于”第一动作,而不管第二动作是直接地还是间接地由第一动作引起。第二动作可以在比第一动作晚得多的时间发生,并且仍然响应于第一动作。类似地,即使在第一动作和第二动作之间发生介入动作,并且即使一个或多个介入动作直接导致第二动作被执行,也可以说第二动作响应于第一动作。例如,如果第一动作设置标志则第二动作可以响应于第一动作,并且每当设置标志时第三动作稍后启动第二动作。
为了阐明使用并在此向公众发布通知,短语“<A>、<B>、......和<N>中的至少一个”或“<A>、<B>、......<N>中的至少一个或其组合”或“<A>、<B>、.....和/或<N>”由申请人在最广泛的意义上进行定义,取代上文或下文中的任何其它隐含定义,除非申请人明确进行相反声明,是指选自包括A、B、......和N的组中的一个或多个元件。换句话说,短语是指元件A、B、......或N中的一个或多个的任何组合,包括单独的任何一个元件或与一个或多个其它元件组合的一个元件,其还可以组合包括未列出的其它元件。
虽然已经描述了各种实施例,但是对于本领域普通技术人员显而易见的是,更多的实施例和实现方式是可能的。因此,本文描述的实施例是示例,而不是唯一可能的实施例和实现方式。
本发明的主题还可以尤其涉及以下方面:
1.一种在基于消息的操作系统中检测调用序列异常的方法,所述方法包括:
接收指示调取操作系统的编程流程的消息,所述消息包括编程流程标识符、发送方进程标识符和接收方进程标识符,其中所述编程流程的调取是在由所述发送方进程标识符标识的进程做出的一系列操作系统编程流程调取中的一个调取;
至少基于所述编程流程标识符和所述接收方进程标识符生成调取散列;
将所述调取散列翻译为调取标识符;
将所述调取标识符包括在已翻译的调用序列中,所述已翻译的调用序列包括所述一系列调取的调取标识符;
确定所述已翻译的调用序列是否包括在多个预定的调用序列中,每个所述预定的调用序列包括对应的调取标识符,其中每个所述对应的调取标识符被映射到调取散列;以及
如果所述已翻译的调用序列不包括在所述预定的调用序列中,则将所述已翻译的调用序列识别为异常,否则确定所述已翻译的调用序列不异常。
2.根据方面1所述的方法,其中,调取散列还基于所述发送方进程标识符。
3.根据方面1至2中任一方面所述的方法,其中,所述消息包括对传递给所述编程流程的参数的指示,以及所述调取散列还基于所述对传递给所述编程流程的参数的指示。
4.根据方面1至3中任一方面所述的方法,其中,所述消息包括信道标识符,并且所述调取散列还基于所述信道标识符。
5.根据方面1至4中任一方面所述的方法,其中,所述消息包括接收方节点标识符,并且所述调取散列还基于所述接收方节点标识符。
6.根据方面1至5中任一方面所述的方法,其中,翻译所述调取散列包括在翻译表中搜索所述调取散列,所述翻译表包括与所述调取标识符相关联的调取散列。
7.根据方面6所述的方法,其中,所述调取标识符是包括所述调取散列的翻译表中的行号。
8.一种非暂时性计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令能够由处理器执行,所述计算机可执行指令包括可执行以进行以下操作的指令:
接收指示调取操作系统的编程流程的消息,所述消息包括编程流程标识符、发送方进程标识符和接收方进程标识符,其中所述编程流程的调取是在由所述发送方进程标识符标识的进程做出的一系列操作系统编程流程调取中的一个调取;
基于所述消息的至少一部分生成调取散列;
将所述调取散列翻译为调取标识符;
将所述调取标识符包括在已翻译的调用序列中,所述已翻译的调用序列包括所述一系列调取的调取标识符;
确定所述已翻译的调用序列是否包括在多个预定的调用序列中,每个所述预定的调用序列包括对应的调取标识符,其中每个所述对应的调取标识符被映射到调取散列;以及
如果所述已翻译的调用序列不包括在所述预定的调用序列中,则将所述已翻译的调用序列识别为异常,否则确定所述已翻译的调用序列不异常。
9.根据方面8所述的非暂时性计算机可读存储介质,其中,确定所述已翻译的调用序列是否包括在所述预定的调用序列中是基于在表中搜索所述已翻译的调用序列,所述表包括多行调取标识符集合,每个所述调取标识符在翻译数据结构中与对应的调取散列相关联。
10.根据方面8至9中任一方面所述的非暂时性计算机可读存储介质,其中,接收所述消息包括从跟踪文件中读取关于所述编程流程的调取的信息。
11.根据方面8至10中任一方面所述的非暂时性计算机可读存储介质,其中,接收所述消息包括以注册回调的形式从所述操作系统接收所述消息。
12.根据方面8至11中任一方面所述的非暂时性计算机可读存储介质,其中,生成所述调取散列包括应用散列函数,所述散列函数将任意大小的数据映射到固定大小的数据,所述散列函数被应用到包括所述编程流程标识符、所述发送方进程标识符和所述接收方进程标识符的数据。
13.一种用于在基于消息的操作系统中检测调用序列异常的系统,所述系统包括:
处理器,被配置为:
接收指示调取操作系统的编程流程的消息,所述消息包括编程流程标识符、发送方进程标识符和接收方进程标识符,其中所述编程流程的调取是在由所述发送方进程标识符标识的进程做出的一系列操作系统编程流程调取中的一个调取;
基于所述消息的至少一部分生成调取散列;
将所述调取散列翻译为调取标识符;
将所述调取标识符包括在已翻译的调用序列中,所述已翻译的调用序列包括所述一系列调取的调取标识符;
确定所述已翻译的调用序列是否包括在多个预定的调用序列中,每个所述预定的调用序列包括对应的调取标识符,其中每个所述对应的调取标识符被映射到调取散列;以及
如果所述已翻译的调用序列不包括在所述预定的调用序列中,则将所述已翻译的调用序列识别为异常,否则确定所述已翻译的调用序列不异常。
14.根据方面13所述的系统,其中,所述处理器被配置为:至少基于所述接收方进程标识符生成所述调取散列。
15.根据方面13至14中任一方面所述的系统,其中,所述处理器被配置为:至少基于所述发送方进程标识符和所述接收方进程标识符来生成所述调取散列。
16.根据方面13至15中任一方面所述的系统,其中,所述消息包括所述编程流程标识符、所述发送方进程标识符、所述接收方进程标识符、信道标识符、接收方节点标识符、所述编程流程的参数,和/或对传递给所述编程流程的参数的指示。
17.根据方面13至16中任一方面所述的系统,其中,所述处理器被配置为:基于所述编程流程标识符、所述发送方进程标识符、所述接收方进程标识符、所述信道标识符、所述接收方节点标识符、所述编程流程参数和/或所述对传递给所述编程流程的参数的指示中的至少一个来生成所述调取散列。
18.根据方面13至17中任一方面所述的系统,其中,所述处理器被配置为:响应于将所述已翻译的调用序列识别为异常,改变安全级别。
19.根据方面18所述的系统,其中,所述处理器被配置为:响应于确定将所述已翻译的调用序列识别为异常超过阈值异常数量,改变所述安全级别。

Claims (20)

1.一种检测调用序列异常的方法,所述方法包括:
接收指示调取操作系统的编程流程的消息,所述消息包括编程流程标识符、发送方进程标识符和接收方进程标识符,其中所述编程流程的调取是在由所述发送方进程标识符标识的进程做出的一系列操作系统的编程流程调取中的一个调取;
基于所述消息的至少一部分生成调取散列;
将所述调取散列翻译为调取标识符;
将所述调取标识符包括在已翻译的调用序列中,所述已翻译的调用序列包括所述一系列调取的调取标识符;
确定所述已翻译的调用序列是否包括在多个预定的调用序列中,每个所述预定的调用序列包括对应的调取标识符,其中每个所述对应的调取标识符被映射到调取散列;以及
如果所述已翻译的调用序列不包括在所述预定的调用序列中,则将所述已翻译的调用序列识别为异常,否则确定所述已翻译的调用序列为不异常。
2.根据权利要求1所述的方法,其中,所述调取散列至少基于所述接收方进程标识符生成。
3.根据权利要求1所述的方法,其中,所述调取散列至少基于所述发送方进程标识符和所述接收方进程标识符生成。
4.根据权利要求1所述的方法,其中,所述消息包括对传递给所述编程流程的参数的指示,以及所述调取散列还基于所述对传递给所述编程流程的参数的指示生成。
5.根据权利要求1所述的方法,其中,所述消息包括信道标识符,并且所述调取散列还基于所述信道标识符生成。
6.根据权利要求1所述的方法,其中,所述消息包括接收方节点标识符,并且所述调取散列还基于所述接收方节点标识符生成。
7.根据权利要求1至6中任一项所述的方法,其中,翻译所述调取散列包括在翻译表中搜索所述调取散列,所述翻译表包括与所述调取标识符相关联的调取散列。
8.根据权利要求7所述的方法,其中,所述调取标识符是包括所述调取散列的翻译表中的行号。
9.一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令能够由处理器执行,所述计算机可执行指令包括可执行以进行以下操作的指令:
接收指示调取操作系统的编程流程的消息,所述消息包括编程流程标识符、发送方进程标识符和接收方进程标识符,其中所述编程流程的调取是在由所述发送方进程标识符标识的进程做出的一系列操作系统的编程流程调取中的一个调取;
基于所述消息的至少一部分生成调取散列;
将所述调取散列翻译为调取标识符;
将所述调取标识符包括在已翻译的调用序列中,所述已翻译的调用序列包括所述一系列调取的调取标识符;
确定所述已翻译的调用序列是否包括在多个预定的调用序列中,每个所述预定的调用序列包括对应的调取标识符,其中每个所述对应的调取标识符被映射到调取散列;以及
如果所述已翻译的调用序列不包括在所述预定的调用序列中,则将所述已翻译的调用序列识别为异常,否则确定所述已翻译的调用序列为不异常。
10.根据权利要求9所述的计算机可读存储介质,其中,确定所述已翻译的调用序列是否包括在所述预定的调用序列中是基于在表中搜索所述已翻译的调用序列,所述表包括多行调取标识符集合,每个所述调取标识符在翻译数据结构中与对应的调取散列相关联。
11.根据权利要求9所述的计算机可读存储介质,其中,接收所述消息包括从跟踪文件中读取关于所述编程流程的调取的信息。
12.根据权利要求9所述的计算机可读存储介质,其中,接收所述消息包括以注册回调的形式从所述操作系统接收所述消息。
13.根据权利要求9至12中任一项所述的计算机可读存储介质,其中,生成所述调取散列包括应用散列函数,所述散列函数将任意大小的数据映射到固定大小的数据,所述散列函数被应用到包括所述编程流程标识符、所述发送方进程标识符和所述接收方进程标识符的数据。
14.一种用于检测调用序列异常的系统,所述系统包括:
处理器,被配置为:
接收指示调取操作系统的编程流程的消息,所述消息包括编程流程标识符、发送方进程标识符和接收方进程标识符,其中所述编程流程的调取是在由所述发送方进程标识符标识的进程做出的一系列操作系统的编程流程调取中的一个调取;
基于所述消息的至少一部分生成调取散列;
将所述调取散列翻译为调取标识符;
将所述调取标识符包括在已翻译的调用序列中,所述已翻译的调用序列包括所述一系列调取的调取标识符;
确定所述已翻译的调用序列是否包括在多个预定的调用序列中,每个所述预定的调用序列包括对应的调取标识符,其中每个所述对应的调取标识符被映射到调取散列;以及
如果所述已翻译的调用序列不包括在所述预定的调用序列中,则将所述已翻译的调用序列识别为异常,否则确定所述已翻译的调用序列为不异常。
15.根据权利要求14所述的系统,其中,所述处理器被配置为:至少基于所述接收方进程标识符生成所述调取散列。
16.根据权利要求14所述的系统,其中,所述处理器被配置为:至少基于所述发送方进程标识符和所述接收方进程标识符来生成所述调取散列。
17.根据权利要求14所述的系统,其中,所述消息包括所述编程流程标识符、所述发送方进程标识符、所述接收方进程标识符、信道标识符、接收方节点标识符、所述编程流程的参数,和/或对传递给所述编程流程的参数的指示。
18.根据权利要求17所述的系统,其中,所述处理器被配置为:基于所述编程流程标识符、所述发送方进程标识符、所述接收方进程标识符、所述信道标识符、所述接收方节点标识符、所述编程流程参数和/或所述对传递给所述编程流程的参数的指示中的至少一个来生成所述调取散列。
19.根据权利要求14至18中任一项所述的系统,其中,所述处理器被配置为:响应于将所述已翻译的调用序列识别为异常,改变安全级别。
20.根据权利要求19所述的系统,其中,所述处理器被配置为:响应于确定将所述已翻译的调用序列识别为异常的次数超过阈值异常数量,改变所述安全级别。
CN201780054298.6A 2016-07-19 2017-07-19 使用系统调用序列的异常检测 Active CN109661652B (zh)

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
CN109661652A CN109661652A (zh) 2019-04-19
CN109661652B true CN109661652B (zh) 2023-09-01

Family

ID=60988032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780054298.6A Active CN109661652B (zh) 2016-07-19 2017-07-19 使用系统调用序列的异常检测

Country Status (7)

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

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
US11138085B2 (en) 2018-10-09 2021-10-05 Argo AI, LLC Execution sequence integrity monitoring system
US11144375B2 (en) 2018-10-09 2021-10-12 Argo AI, LLC Execution sequence integrity parameter 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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060023700A1 (en) * 2002-12-26 2006-02-02 Oki Electric Industry Co., Ltd. Voice communications system
US20070274294A1 (en) * 2006-03-31 2007-11-29 Hitachi Communication Technologies, Ltd. Sip exchange system
CN104751055A (zh) * 2013-12-31 2015-07-01 北京启明星辰信息安全技术有限公司 一种基于纹理的分布式恶意代码检测方法、装置及系统
CN104751053A (zh) * 2013-12-30 2015-07-01 南京理工大学常熟研究院有限公司 移动智能终端软件的静态行为分析方法

Family Cites Families (37)

* 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
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
US9407662B2 (en) * 2005-12-29 2016-08-02 Nextlabs, Inc. Analyzing activity data of 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
WO2007110093A1 (en) * 2006-03-27 2007-10-04 Telecom Italia S.P.A. A method and system for identifying malicious messages in mobile communication networks, related network and computer program product therefor
JP5090661B2 (ja) * 2006-04-12 2012-12-05 株式会社エヌ・ティ・ティ・ドコモ ソフトウェア動作モデル化装置、ソフトウェア動作監視装置、ソフトウェア動作モデル化方法及びソフトウェア動作監視方法
US8135994B2 (en) * 2006-10-30 2012-03-13 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 学校法人東京電機大学 プログラムの不正起動防止システム及び方法
EP2397964A4 (en) 2009-02-16 2014-08-13 Panasonic Corp DEVICE FOR IDENTIFYING ILLEGAL MODULES, INFORMATION PROCESSING DEVICE, METHOD FOR IDENTIFYING ILLEGAL MODULES, IDENTIFICATION PROGRAM FOR ILLEGAL MODULES, INTEGRATED CIRCUIT, ILLEGAL MODULES DEACTIVATION SYSTEM, AND ILLEGAL MODULES DEACTIVATION DEVICE
WO2011149555A1 (en) * 2010-05-28 2011-12-01 The Mathworks, Inc. Message-based model verification
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
US10348724B2 (en) * 2014-04-07 2019-07-09 Barco N.V. Ad hoc one-time pairing of remote devices using online audio fingerprinting
US10074374B2 (en) * 2014-04-07 2018-09-11 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060023700A1 (en) * 2002-12-26 2006-02-02 Oki Electric Industry Co., Ltd. Voice communications system
US20070274294A1 (en) * 2006-03-31 2007-11-29 Hitachi Communication Technologies, Ltd. Sip exchange system
CN104751053A (zh) * 2013-12-30 2015-07-01 南京理工大学常熟研究院有限公司 移动智能终端软件的静态行为分析方法
CN104751055A (zh) * 2013-12-31 2015-07-01 北京启明星辰信息安全技术有限公司 一种基于纹理的分布式恶意代码检测方法、装置及系统

Also Published As

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

Similar Documents

Publication Publication Date Title
CN109661652B (zh) 使用系统调用序列的异常检测
US11429625B2 (en) Query engine for remote endpoint information retrieval
US20100251004A1 (en) Virtual machine snapshotting and damage containment
US9823942B2 (en) Virtual machine discovery and identification
WO2020244307A1 (zh) 一种漏洞检测方法及装置
US9026612B2 (en) Generating a custom parameter rule based on a comparison of a run-time value to a request URL
US9870314B1 (en) Update testing by build introspection
US20130185602A1 (en) Heap dump occurrence detection
US20170091044A1 (en) Replicating data in a data storage system
US11416614B2 (en) Statistical detection of firmware-level compromises
US10521327B2 (en) Non-coupled software lockstep
US10419306B2 (en) Determining the causation of events across multiple nodes using message properties
US20170010915A1 (en) Performing processing tasks using an auxiliary processing unit
CN117494115A (zh) 容器环境下的反弹shell检测方法、装置、设备和介质
US9361176B2 (en) Detecting the use of stale data values due to weak consistency
CN115373887A (zh) 故障根因确定方法、装置、电子设备及可读存储介质
CN115712665A (zh) 网络连接的处理方法、装置、设备及介质
CN117852043A (zh) 异常设备的确定方法、装置、电子设备以及存储介质
CN116186701A (zh) docker容器内反弹shell的检测方法、系统、终端及存储介质
CN114490366A (zh) Flutter内存泄漏的检测方法及装置
JP2017174354A (ja) 監視装置、監視方法、及びプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200525

Address after: Voight, Ontario, Canada

Applicant after: BlackBerry Ltd.

Address before: Rika Univ.

Applicant before: 2236008 Ontario Inc.

GR01 Patent grant
GR01 Patent grant