KR20190030728A - 시스템 콜의 시퀀스를 이용한 이상 검출 - Google Patents

시스템 콜의 시퀀스를 이용한 이상 검출 Download PDF

Info

Publication number
KR20190030728A
KR20190030728A KR1020197004735A KR20197004735A KR20190030728A KR 20190030728 A KR20190030728 A KR 20190030728A KR 1020197004735 A KR1020197004735 A KR 1020197004735A KR 20197004735 A KR20197004735 A KR 20197004735A KR 20190030728 A KR20190030728 A KR 20190030728A
Authority
KR
South Korea
Prior art keywords
call
identifier
hash
sequence
translated
Prior art date
Application number
KR1020197004735A
Other languages
English (en)
Other versions
KR102408847B1 (ko
Inventor
샤르누비 모하메드 알
Original Assignee
2236008 온타리오 인크.
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 2236008 온타리오 인크. filed Critical 2236008 온타리오 인크.
Publication of KR20190030728A publication Critical patent/KR20190030728A/ko
Application granted granted Critical
Publication of KR102408847B1 publication Critical patent/KR102408847B1/ko

Links

Images

Classifications

    • 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/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/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)
  • 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

시스템 콜의 시퀀스를 이용한 이상 검출
본 발명은 콜 시퀀스 이상 검출에 관한 것으로, 특히 운영 시스템 콜에서의 이상 검출에 관한 것이다.
메지시 기반 운영 시스템에서, 운영 시스템의 대부분의 프로그램적 절차의 콜링 또는 호출은 메시징 시스템을 수반한다. 메시지 기반 운영 시스템에서, 운영 시스템의 프로그램적 절차의 호출은 대응하는 메시지가 발송자 프로세스로부터 수신자 프로세스로 메시징 시스템을 통해 전달되게 할 수 있다.
일부 예에서, 메시징 시스템은 마이크로커널로 구현된다. 마이크로커널은 운영 시스템을 구현하는데 필요한 비교적 적은 수의 서비스를 제공할 수 있다. 예를 들면, 마이크로커널의 서비스들은 하위 수준 어드레스 공간 관리, 프로세스 관리 및 프로세스간 통신(inter-process communication, IPC)을 포함할 수 있다. 메시징 시스템은 프로세스간 통신 서비스의 일부일 수 있다.
프로세스는 실행되는 컴퓨터 프로그램의 일례이다. 일부 운영 시스템에서, 프로세스는 명령어들을 동시에 실행하는 복수의 실행 스레드로 구성될 수 있다.
실시형태들은 이하의 도면 및 설명을 참조함으로써 더 잘 이해할 수 있다. 도면 내의 각종 컴포넌트는 반드시 일정한 축척을 갖는 것이 아니다. 각종 도면에서 동일한 참조 번호들은 도면 전체에 걸쳐서 대응하는 부분을 표시한다.
도 1은 메시지 기반 운영 시스템에서 콜 시퀀스 이상을 탐지하는 시스템의 예를 보인 도이다.
도 2는 예시적인 메시지를 보인 도이다.
도 3은 예시적인 프로필을 보인 도이다.
도 4는 콜 시퀀스 이상을 탐지하는 시스템의 예시적인 로직의 흐름도이다.
도 5는 메모리 및 프로세서를 포함한 시스템의 예를 보인 도이다.
메시지 기반 운영 시스템에서 콜 시퀀스 이상(call sequence anomaly)을 탐지하는 방법 및 시스템이 제공된다. 소프트웨어 공격 또는 다른 이상이 여기에서 설명하는 방법 및 시스템에 의해 검출될 수 있다. 제로 데이 공격이라고 부르는, 이전에 알려지지 않은 소프트웨어 취약성에 대한 공격조차도 검출될 수 있다. 다른 검출되는 이상은 예를 들면 소프트웨어 결함, 또는 하드웨어 고장이나 타임아웃과 같은 다른 특이 이벤트를 포함할 수 있다.
도 1은 메시지 기반 운영 시스템(OS)(102)에서 콜 시퀀스 이상을 검출하는 시스템(100)의 예를 보인 것이다. 시스템(100)은 OS(102) 내에서, 또는 대안적으로, 도 1에 도시된 것처럼, OS(102) 외측에서 실행하는 프로세스로서 실행하는 이상 검출기(104)를 포함할 수 있다. OS(102)는 하나 이상의 프로세스(106)(도 1에 P1, P2 및 P3로 표시됨)로부터 대응하는 메시지를 처리함으로써 운영 시스템 콜들의 호출을 취급한다. 부수적으로, OS(102)는 이상 검출기(104)가 OS(102) 외측의 프로세스로서 동작할 때 이상 검출기(104)에 의해 이루어진 운영 시스템 콜의 호출을 또한 취급한다. OS(102)는 소프트웨어 버스(108)를 통해 프로세스(106)들 간에 메시지를 전달하는 유사한 메카니즘을 통해 프로세스간 통신을 또한 취급할 수 있다. OS(102)는 일부 예에서 OS(102)의 메시지 전달 기능을 구현하는 마이크로커널(110)을 포함할 수 있다.
프로세스간 통신 외에, OS(102)는 일부 구현예에서 노드간 통신을 취급할 수 있다. 예를 들면, OS(102), 프로세스(106) 및 이상 검출기(104)는 제1 노드(112)에 포함되고, 제2 노드(114)는 운영 시스템과 하나 이상의 프로세스를 포함할 수 있다. 제1 노드(112)에서 하나 이상의 프로세스(106) 중의 임의의 프로세스는 제2 노드(114)의 목표 프로세스에 메시지를 전달하는 제1 노드(112)의 OS(102)에 메시지를 전달함으로써 제2 노드(114)의 목표 프로세스와 통신할 수 있다.
노드(112, 114)는 동일한 장치에 있을 수 있고, 또는 대안적으로 네트워크를 통해 통신하는 별도의 물리적 장치일 수 있다. 각 노드는 서버의 인스턴스, 가상 머신의 인스턴스, 컴퓨팅 장치, 또는 네트워크상의 임의의 다른 장치일 수 있고, 상기 장치는 실제 장치 또는 가상 장치일 수 있다.
이상 검출기(104)는 트레이너(116), 모니터(118) 및 핸들러(120)를 포함할 수 있다. 트레이너(116)는 정상 행동의 표시를 제공하는 프로필을 구축할 수 있다. 정상 행동은 공지된 행동 및/또는 미리 정해진 행동이다. 모니터(118)는 OS(102)로부터 수신된 호출 정보를 처리하고 임의의 이상을 검출할 수 있다. 특히, 모니터(118)는 프로필에 묘사된 미리 정해진 행동으로부터의 편차를 검출할 수 있다. 핸들러(120)는 임의의 검출된 이상에 반응할 수 있다. 예를 들면, 핸들러(120)는 이상의 검출에 응답하여 알람을 발생하거나 다른 방식으로 동작을 취할 수 있다.
트레이너(116)는 프로세스(106)가 정상 동작하에서 이루는 운영 시스템 프로그램적 절차의 호출 시퀀스를 식별하는 프로필(122)을 구축한다. 예를 들면, 도 1은 예시된 3개의 프로세스(106)(P1, P2 및 P3) 각각에 대하여 하나의 프로필씩, P1 프로필, P2 프로필 및 P3 프로필로 표시된 3개의 프로필(122)을 예시한다.
시스템 콜의 짧은 시퀀스는 프로세스의 정상 행동과 비정상 행동 간의 좋은 구별자이다. 시스템 콜의 짧은 시퀀스들의 집합은 정상 행동의 비교적 안정된 징후일 수 있다.
프로세스에서 실행되는 사소하지 않은 소프트웨어 프로그램의 경우에, 프로그램적 절차 호출의 완전한 집합이 막대할 수 있다. 그러나 호출의 국소(소형) 주문(ordering)은 프로세스의 더 긴 동작 주기 동안 현저하게 일관될 수 있다. 트레이너(116)의 동작을 설명하기 위한 예가 이하에서 제공된다.
예를 들면, 프로세스(106) 중의 하나는 하기의 순서: open(), read(), mmap(), mmap(), open(), getrlimit(), mmap() 및 close()로 하기의 운영 시스템 프로그램적 절차를 호출할 수 있다. 윈도우 크기(L)를 선택할 수 있고, 여기에서 윈도우 크기(L)는 윈도우에 포함되는 순차적 호출의 수를 표시한다. 호출의 수(k)는 윈도우 내의 제1 호출을 따른다(다시 말해서, k는 미리보기(lookahead) 크기이다). 윈도우 크기(L)는 미리보기 크기(k+1)와 같다. 아래의 표 1은 윈도우가 예시적인 호출 시퀀스, 즉 open(), read(), mmap(), mmap(), open(), getrlimit(), mmap() 및 close()에 걸쳐 슬라이드할 때 4개(k=3)의 윈도우 크기로 형성된 순차적 호출의 집합을 보인 것이다.
이전 콜 제2의 이전 콜 제3의 이전 콜
open N/A N/A N/A
read open N/A N/A
mmap read open N/A
mmap mmap read open
open mmap mmap read
getrlimit open mmap mmap
mmap getrlimit open mmap
close mmap getrlimit open
표 2는 윈도우 내의 제1콜에 의해 주문되고 간결하게 된 표 1로부터의 콜(호출)들을 예시한다. 간결하게 된 때, 각각의 위치(예를 들면, 이전 콜, 제2의 이전 콜 또는 제3의 이전 콜)에서의 호출은 그 각각의 위치에 대하여 수용 가능한 것으로 통합 정리된다. 예를 들면, 비록 동일한 시퀀스가 표 1에 리스트되지 않았다 하더라도 하기의 콜 시퀀스(가장 최근 호출로부터 가장 오래된 호출까지 정리된 것): mmap(), read(), read(), open()가 표 2에서 발견되는 것으로 고려될 것이다. 그 이유는 read()가 mmap() 콜에 대하여 제2의 이전 콜 위치에서 수용 가능한 것으로 고려되기 때문이다.
이전 콜 제2의 이전 콜 제3의 이전 콜
open mmap mmap read
read open N/A N/A
mmap read
mmap
getrlimit
open
read
open
open
mmap
getrlimit open mmap mmap
close mmap getrlimit open
콜 시퀀스에서의 이상은 프로세스를 모니터링하면서 프로세스에 의해 이루어진 운영 시스템 프로그램적 절차의 순차적 호출에 대하여 동일 크기의 윈도우를 슬라이딩함으로써 검출될 수 있다. 예를 들면, 프로세스는 모니터링되는 동안 하기의 순서: 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"이 선행된다.
이전 콜 제2의 이전 콜 제3의 이전 콜
open MMAP MMAP READ
read open N/A N/A
mmap read
mmap
getrlimit
open
read
open
N/A
open
mmap
getrlimit open MMAP mmap
close mmap getrlimit open
메시지 기반 OS(102)에서, 문제는 운영 시스템 프로그램적 절차 호출의 대부분(전부가 아닐 수 있음)은 운영 시스템(102)을 통하여 발송된 대응하는 메시지를 통해 이루어진다는 것일 수 있다. 각각의 메시지는 도 2에 도시된 메시지(202)와 유사한 형태를 가질 수 있고, 이것은 위에서 설명한 단순한 1 프로세스 방법 호출보다 더 복잡하다.
메시지(202)는 프로그램적 절차 식별자(204), 발송자 프로세스 식별자(206), 수신자 프로세스 식별자(208), 채널 식별자(210), 수신자 노드 식별자(212), 및/또는 프로그램적 절차에 전달되는 하나 이상의 파라미터(214)를 포함할 수 있다. 메시지(202)는 추가의 컴포넌트, 더 적은 수의 컴포넌트 또는 다른 컴포넌트를 포함할 수 있다. 예를 들면, 메시지(202)는 프로그램적 절차 식별자(204), 발송자 프로세스 식별자(206), 수신자 프로세스 식별자(208), 채널 식별자(210) 및/또는 수신자 노드 식별자(212)를 포함한 헤더(216)를 포함할 수 있다. 일부 예에서, 헤더(216)는 프로그램적 절차에 전달되는 파라미터(214)들의 표시(218)를 포함할 수 있다. 예를 들면, 파라미터(214)들의 표시(218)는 임의의 파라미터(214)의 최초 12 바이트를 포함한 고정 크기 값일 수 있다. 만일 파라미터가 전달되지 않거나 및/또는 12 바이트 미만의 파라미터가 파라미터로서 전달되면, 파라미터(214)들의 표시(218)는 고정 크기 값의 임의의 비사용 부분에 제로와 같은 플레이스 홀더(place holder)를 포함할 수 있다.
프로그램적 절차 식별자(204)는 호출된 프로그램적 절차의 임의의 식별자일 수 있다. 프로그램적 절차 식별자(204)는 프로그램적 절차의 텍스트 명, 프로그램적 절차를 식별하는 수치, 또는 프로그램적 절차를 식별하는 임의의 다른 값일 수 있다. 예를 들면, 프로그램적 절차 식별자는 프로세스(106)가 호출할 수 있는 OS(102)의 모든 프로그램적 절차에 OS(102)가 지정한 독특한 수일 수 있다.
발송자 프로세스 식별자(206)는 메시지(202)에서 식별된 프로그램적 절차를 호출한 프로세스(106)를 식별하는 임의의 식별자일 수 있다. 유사하게, 수신자 프로세스 식별자(208)는 메시지(202)를 수신할 프로세스(106)를 식별하는 임의의 식별자일 수 있다. 예를 들면, 수신자 프로세스 식별자(208)는 OS(102) 내에서 실행하는 프로세스, OS(102)에서 실행하는 임의의 프로세스(106) 및/또는 다른 노드에서의 임의의 프로세스를 식별할 수 있다. OS(102)는 프로세스 식별자(206, 208)가 노드(112, 114)의 리부트 후에도 동일하게 유지되도록 정적 프로세스 식별자(206, 208)를 지정할 수 있다. 예를 들면, OS(102)는 프로그램 실행파일(program executable)에 독특한 번호 또는 이름을 지정할 수 있다. 예를 들면, 일부 운영 시스템에서 파일들의 리스팅을 제공하는 "dir" 실행파일은 이름 "dir"가 지정될 수 있다. 프로그램 실행파일의 복수의 인스턴스화는, 일부 예에서, 프로세스 식별자(206, 208)에 추가되는 추가의 정보를 가질 수 있다. 예를 들면, "dir" 실행파일의 제2 인스턴스는 발송자 프로세스 식별자(206)로서 "dir-2"가 지정될 수 있다.
채널 식별자(210)는 프로세스들 간 및/또는 프로세스와 OS(102) 간의 통신 채널을 식별하는 임의의 식별자일 수 있다. 예를 들면, 프로세스가 생성하는 각각의 채널에 대하여, OS(102)는 순차적으로 높은 번호를 지정할 수 있다. 예시적인 예로서, 프로세스에 의해 생성된 제1 채널 식별자는 식별자 "1"이 지정되고, 프로세스에 의해 생성된 제2 채널 식별자는 식별자 "2"가 지정될 수 있다, 등.
수신자 노드 식별자(212)는 메시지(202)를 수신할 노드를 식별하는 임의의 식별자일 수 있다. 노드 식별자(212)의 예로는 정적 네트워크 어드레스, 매체 접근 제어 어드레스(MAC 어드레스), 이더넷 어드레스, 무선 하드웨어 어드레스, 정적 인터넷 프로토콜(IP) 어드레스 또는 임의의 다른 이러한 식별자가 있을 수 있다.
파라미터(214)는 파라미터가 프로그램적 절차에 전달되는 순서로 배열된 각 파라미터의 데이터 유형과 같은 파라미터들의 정의를 포함할 수 있다. 파라미터들의 정의는 일부 예에서 과부하된 프로그램적 절차들을 구별하는 데 유용할 수 있다(복수의 프로그램적 절차가 동일한 이름을 갖지만 다른 파라미터임). 대안적으로 또는 추가로, 파라미터(214)들은 프로그램적 절차에 입력으로서 전달되는 하나 이상의 실제 값을 포함할 수 있다.
이상 검출기(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)가 정상 동작 중에 만드는 운영 시스템 프로그램적 절차의 호출 시퀀스를 식별한다. 특히, 프로필(122)은 번역표(304) 또는 다른 적당한 번역 데이터 구조와 미리 정해진 콜 시퀀스(306)을 포함할 수 있다.
이상 검출기(104)의 트레이너(116)의 동작 중에, 트레이너(116)는 하나 이상의 프로세스(106)에 대하여 프로필(122)을 생성할 수 있다. 하나 이상의 프로세스(106)는 프로세스(106)의 정상적인 또는 예상된 행동을 표시하는 콜 시퀀스를 야기하는 통제된 환경에서 실행된다.
이상 검출기(104) 및/또는 트레이너(116)는 운영 시스템(102)의 프로그램적 절차가 호출된 것을 표시하는 메시지(202)를 수신할 수 있다. 예를 들면, 이상 검출기(104) 및/또는 트레이너(116)는 메시지(202)의 카피(및 프로그램적 절차 호출에 대응하는 다른 메시지들의 카피)를 실시간으로 수신하기 위해 OS(102)의 추적 특징(tracing feature)이 등록될 수 있다. 대안적으로, 이상 검출기(104) 및/또는 트레이너(116)는 OS(102)의 일부일 수 있고, 메시지(202)(및 프로그램적 절차 호출에 대응하는 다른 메시지들)의 카피를 실시간으로 수신하도록 구성될 수 있다. 또 다른 예로서, 이상 검출기(104) 및/또는 트레이너(116)는 프로그램적 절차가 호출된 후 실시간으로 또는 장시간 동안 추적 파일로부터 메시지(202)(및 운영 시스템(102)의 프로그램적 절차가 호출되었음을 표시하는 다른 메시지)를 판독할 수 있다.
이상 검출기(104) 및/또는 트레이너(116)는 전술한 바와 같이 메시지(202)에 기초하여 호출 해시(222)를 생성할 수 있다. 전술한 바와 같이, 메시지(202)에 기초하여 호출 해시(222)를 생성하는 것은 전체 메시지(202)의 해시를 생성하는 것 또는 메시지(202)의 하나 이상의 컴포넌트의 해시를 생성하는 것을 포함한다.
이상 검출기(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)가 그러한 표에 추가되어야 하면, 프로그램적 절차 식별자(204)가 상기 행에 포함될 수 있다.
번역표(304) 대신에 임의의 다른 적당한 데이터 구조를 이용할 수 있다. 예를 들면, 번역 데이터 구조는 프로그램적 절차 식별자를 포함한 키를 가진 제1 해시표, 및 제2 해시표를 포함한 대응하는 값들을 포함할 수 있다. 제2 해시표는 대응하는 프로그램적 절차 식별자에 대한 호출 해시를 포함한 키 및 대응하는 호출 식별자를 포함한 값들을 가질 수 있다.
메시지(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)가 상기 미리 정해진 콜 시퀀스(306)에 포함되어 있는지를 결정하는 것은 번역된 콜 시퀀스(308)의 내용과 일치하는 표 내의 행을 찾는 것보다 더 복잡할 수 있다. 예를 들면, 수용 가능한 호출들의 집합은 번역된 콜 시퀀스(308) 내의 이전 위치에 대하여 순차적으로 체크될 수 있다.
만일 번역된 콜 시퀀스(308)가 상기 미리 정해진 콜 시퀀스에 아직 포함되어 있지 않으면, 이상 검출기(104) 및/또는 트레이너(116)는 번역된 콜 시퀀스(308)를 상기 미리 정해진 콜 시퀀스(306)에 추가할 수 있다.
이상 검출기(104) 및/또는 트레이너(116)는 전술한 절차를 반복하여 하나 이상의 프로세스(106)에 대한 프로필을 개발할 수 있다. 반복할 때, 번역된 콜 시퀀스(308) 내의 호출 식별자는 시프트하여 가장 오래된 호출의 호출 식별자를 제거하고, 이것에 의해 다음 프로그램적 절차 호출의 호출 식별자를 위한 방을 만들 수 있다.
미리 정해진 콜 시퀀스(306)가 충분히 채워진 때, 각 프로세스(106)에 대한 프로필(122)을 이용하여 이상을 검출할 수 있다. 미리 정해진 콜 시퀀스(306)가 충분히 채워졌는지를 결정하기 위한 임의의 기법을 이용할 수 있다. 예를 들면, 트레이너(116)는 미리 정해진 시간 길이에 대하여 동작할 수 있다. 다른 예로서, 트레이너(116)는 번역된 콜 시퀀스(308)가 미리 정해진 콜 시퀀스(306)에서 미리 정해진 시간 백분율만큼 발견될 때까지 동작할 수 있다. 또 다른 예로서, 트레이너(116)는 미리 정해진 유즈 케이스(use case) 집합이 실행되는 동안 동작할 수 있다.
도 4는 메시지 기반 운영 시스템(102)에서 콜 시퀀스 이상을 검출하는 시스템(100)의 예시적인 로직의 흐름도를 보인 것이다. 로직은 추가의 동작, 다른 동작 또는 더 적은 수의 동작을 포함할 수 있다.
프로세스(106)가 시작된 때, 프로필(122)이 프로세스(106)에서 실행되는 소프트웨어 프로그램에 대하여 로드될 수 있다(402). 예를 들면, 모니터(118)는 프로세스(106)가 막 생성 또는 시작되었음을 표시하는 메시지를 OS(102)로부터 수신할 수 있다. 프로세스(106)는 프로세스 식별자에 의해 상기 메시지에서 식별될 수 있다. 모니터(118)는 동일한 프로세스 식별자를 가진 프로세스에 대하여 이전에 생성된 프로필(122)을 로드할 수 있다.
OS(102)의 프로그램적 절차의 호출이 이루어졌음을 표시하는 메시지(202)가 수신될 수 있다(404). 예를 들면, 모니터(118)는 상기 메시지(202)를 OS(102)로부터 수신할 수 있다. 전술한 바와 같이, 메시지(202)는 프로그램적 절차 식별자(204), 발송자 프로세스 식별자(206), 수신자 프로세스 식별자 및/또는 다른 컴포넌트들을 포함할 수 있다. 발송자 프로세스 식별자(206)는 이전에 로드된 프로필(122)에 대응하는 프로세스 식별자와 일치할 수 있다.
호출 해시(222)가 상기 메시지(202)에 기초하여 생성될 수 있다(220). 예를 들면, 모니터(118)는 메시지(202)의 프로그램적 절차 식별자(204), 발송자 프로세스 식별자(206), 수신자 프로세스 식별자 및/또는 다른 컴포넌트들에 기초하여 호출 해시(222)를 생성(220)할 수 있다.
호출 해시(222)는 전술한 바와 같이 호출 식별자(302)로 번역될 수 있다. 예를 들면, 모니터(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)를 중지하거나, 및/또는 시스템의 안전 수준을 변경하는 것과 같이 취급할 수 있다. 예를 들어, OS(102)가 자동차 조향 시스템을 제어하면, 자동차 조향 시스템을 불능으로 하는 것이 잠재적 소프트웨어 공격의 관점에서 더 안전한 동작 수준으로서 보여질 수 있기 때문에, 자동차 조향 시스템은 이상의 검출에 응답하여 스위치 오프될 수 있다. 핸들러(120)는 예를 들면 플러그 인(plug-in) 아키텍처를 이용하여 특정 응용에 대하여 맞춤화될 수 있다.
또한, 핸들러(120)는 이상 검출의 감도를 취급할 수 있다. 예를 들어서 만일 번역된 콜 시퀀스(308)가 이상으로서 식별(412)되면, 핸들러(120)는 이상을 즉시 검출하는 대신에 카운터를 증분시킬 수 있다. 핸들러(120)는 카운터가 임계치를 통과할 때까지 이상의 검출을 대기할 수 있다.
시스템(100)은 추가의 컴포넌트, 다른 컴포넌트 또는 더 적은 수의 컴포넌트로 구현될 수 있다. 예를 들면, 도 5는 메모리(504)와 프로세서(502)를 포함한 시스템(100)의 예를 보인 것이다.
프로세서(502)는 메모리(504)와 통신할 수 있다. 일례로서, 프로세서(502)는 추가의 요소, 예컨대 네트워크 인터페이스(도시 생략됨)와도 통신할 수 있다. 프로세서(502)의 예는 범용 프로세서, 중앙 처리 장치, 마이크로컨트롤러, 서버, 특수 용도 집적회로(ASIC), 디지털 신호 프로세서, 필드 프로그래머블 게이트 어레이(FPGA) 및/또는 디지털 회로, 아날로그 회로를 포함할 수 있다.
프로세서(502)는 로직을 실행하도록 동작하는 하나 이상의 장치일 수 있다. 로직은 프로세서(502)에 의해 실행된 때 프로세서(502)가 이상 검출기(104) 및/또는 시스템(100)의 로직에 의해 구현되는 특징들을 수행하게 하는, 메모리(504)에서 또는 다른 메모리에서 구체화되는 컴퓨터 실행가능 명령어들 또는 컴퓨터 코드를 포함할 수 있다. 컴퓨터 코드는 프로세서(502)에 의해 실행되는 명령어들을 포함할 수 있다.
메모리(504)는 데이터를 저장 및 검색 또는 이들의 임의 조합을 하기 위한 임의의 장치일 수 있다. 메모리(504)는 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거 가능한 프로그래머블 읽기 전용 메모리(EPROM) 또는 플래시 메모리와 같은 비휘발성 및/또는 휘발성 메모리를 포함할 수 있다. 대안적으로 또는 추가로, 메모리(504)는 광학적, 자기적(하드 드라이브) 또는 임의의 다른 형태의 데이터 저장 장치를 포함할 수 있다.
메모리(504)는 노드(112), 제2 노드(114), 이상 검출기(104), 트레이너(116), 모니터(118), 핸들러(120) 및/또는 OS(102)를 포함할 수 있다.
각각의 컴포넌트는 추가의 컴포넌트, 다른 컴포넌트 또는 더 적은 수의 컴포넌트를 포함할 수 있다. 예를 들면 이상 검출기(104)는 모니터(118)만을 포함할 수 있다. 다른 예로서, 메시지(202)는 파라미터(214)들의 표시(218)를 포함하지 않을 수 있다.
시스템(100)은 여러 가지 다른 방법으로 구현될 수 있다. 이상 검출기(104), 트레이너(116), 모니터(118) 및 핸들러(120)와 같은 각각의 모듈은 하드웨어 또는 하드웨어와 소프트웨어의 조합일 수 있다. 예를 들면, 각각의 모듈은 특수 용도 집적회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 회로, 디지털 논리 회로, 아날로그 회로, 이산 회로들의 조합, 게이트, 또는 임의의 다른 유형의 하드웨어 또는 이들의 조합을 포함할 수 있다. 대안적으로 또는 추가로, 각각의 모듈은 예컨대 모듈의 특징들 중 하나 이상을 구현하기 위해 프로세서(502) 또는 다른 프로세서에 의해 실행가능 명령어들을 포함하는 메모리(504)의 일부와 같은 메모리 하드웨어를 포함할 수 있다. 임의의 하나의 모듈이 프로세서에 의해 실행가능 명령어들을 포함하는 메모리의 일부를 포함할 때, 상기 모듈은 프로세서를 포함할 수도 있고 포함하지 않을 수도 있다. 일부 예에서, 각각의 모듈은 상기 메모리(504)의 일부, 또는 임의의 다른 하드웨어를 포함한 모듈 없이 대응하는 모듈의 특징들을 구현하기 위해 프로세서(502) 또는 다른 프로세서에 의해 실행가능 명령어들을 포함하는 다른 물리적 메모리일 수 있다. 포함된 하드웨어가 소프트웨어를 포함한 경우에도 각각의 모듈이 적어도 일부 하드웨어를 포함하기 때문에, 각각의 모듈은 하드웨어 모듈이라고 상호 교환적으로 부를 수 있다.
일부 특징들은 컴퓨터 판독가능 저장 매체에 저장되는 것으로 보여진다(예를 들면, 메모리 내의 컴퓨터 실행가능 명령어들 또는 데이터 구조로서 구현되는 로직으로서). 시스템 및 그 로직 및 데이터 구조의 전부 또는 일부는 하나 이상 유형의 컴퓨터 판독가능 저장 매체에 저장되거나 그러한 저장 매체에 걸쳐 분산되거나 또는 그러한 저장 매체로부터 판독될 수 있다. 컴퓨터 판독가능 저장 매체의 예로는 하드 디스크, 플로피 디스크, CD-ROM, 플래시 드라이브, 캐시, 휘발성 메모리, 비휘발성 메모리, RAM, 플래시 메모리, 또는 임의의 다른 유형의 컴퓨터 판독가능 저장 매체 또는 스토리지 매체 등이 있다. 컴퓨터 판독가능 저장 매체는 CD-ROM, 휘발성 메모리, 비휘발성 메모리, ROM, RAM, 또는 임의의 다른 적당한 저장 장치와 같은 임의 유형의 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다. 그러나 컴퓨터 판독가능 저장 매체는 신호 전파를 위한 일시적 전송 매체가 아니다.
시스템(100)의 처리 능력은 선택적으로 복수의 분산형 처리 시스템을 포함한 복수의 엔티티 중에, 예컨대 복수의 프로세서 및 메모리 중에 분산될 수 있다. 파라미터, 데이터베이스 및 다른 데이터 구조들은 별도로 저장 및 관리될 수 있고, 단일 메모리 또는 데이터베이스에 통합될 수 있고, 여러 가지 다른 방법으로 논리적으로 및 물리적으로 조직될 수 있고, 링크된 리스트, 해시표 또는 내재적 저장 메카니즘과 같은 다른 유형의 데이터 구조에 의해 구현될 수 있다. 프로그램 또는 회로와 같은 로직은 통합되거나 복수의 프로그램으로 분리될 수 있고, 수 개의 메모리 및 프로세서에 걸쳐 분산될 수 있고, 공유형 라이브러리(예를 들면, 동적 링크 라이브러리(DLL))와 같은 라이브러리에서 구현될 수 있다.
설명된 특정 구현예와 관계없이, 모든 설명은 제한하는 것이 아니라 예를 든 것이다. 예를 들면, 비록 구현예의 선택된 양태, 특징 또는 컴포넌트들이 메모리에 저장되는 것으로 묘사되지만, 시스템 또는 시스템들의 일부 또는 전부는 다른 컴퓨터 판독가능 저장 매체, 예를 들면 하드 디스크, 플래시 메모리 드라이브, 플로피 디스크 및 CD-ROM과 같은 이차 저장 장치에 저장되거나, 그러한 저장 장치에 걸쳐 분산되거나 그러한 저장 장치로부터 판독될 수 있다. 더욱이, 각종 모듈 및 화면 디스플레이 기능은 그러한 기능의 일 예이고, 유사한 기능을 포함한 임의의 다른 구성도 가능하다.
전술한 프로세스, 방법 및/또는 기법을 구현하는 각각의 로직, 소프트웨어 또는 명령어들은 컴퓨터 판독가능 저장 매체에서 제공될 수 있다. 도면에 예시되거나 여기에서 설명한 기능, 작용 또는 태스크들은 컴퓨터 판독가능 매체에 저장된 로직 또는 명령어들의 하나 이상의 집합에 응답하여 실행될 수 있다. 상기 기능, 작용 또는 태스크들은 특정 유형의 명령어 집합, 저장 매체, 프로세서 또는 처리 전략과 무관하고, 단독으로 또는 조합으로 동작하는 소프트웨어, 하드웨어, 집적회로, 펌웨어, 마이크로 코드 등에 의해 수행될 수 있다. 마찬가지로, 처리 전략은 다중 처리, 멀티태스킹, 병렬 처리 등을 포함할 수 있다. 일례로서, 명령어들은 로컬 시스템 또는 원격 시스템에 의해 판독하기 위한 분리형 미디어 장치에 저장된다. 다른 예로서, 로직 또는 명령어들은 컴퓨터 네트워크 또는 전화선을 통해 전송하도록 원격 위치에 저장된다. 또 다른 예로서, 로직 또는 명령어들은 주어진 컴퓨터, 중앙 처리 장치("CPU"), 그래픽 처리 장치("GPU") 또는 시스템에 저장된다.
또한, 비록 특정 컴포넌트들을 위에서 설명하였지만, 여기에서 설명한 방법, 시스템 및 제조 물품은 추가의 컴포넌트, 더 적은 수의 컴포넌트 또는 다른 컴포넌트를 포함할 수 있다. 예를 들면, 프로세서는 마이크로프로세서, 마이크로컨트롤러, 특수 용도 집적회로(ASIC), 이산 로직 또는 다른 유형의 회로 또는 로직의 조합으로서 구현될 수 있다. 유사하게, 메모리는 DRAM, SRAM, 플래시 또는 임의의 다른 유형의 메모리일 수 있다. 플래그, 데이터, 데이터베이스, 표, 엔티티 및 기타의 데이터 구조들은 별도로 저장 및 관리될 수 있고, 단일 메모리 또는 데이터베이스에 통합될 수 있고, 분산될 수 있고, 또는 여러 가지 다른 방법으로 논리적으로 및 물리적으로 조직될 수 있다. 컴포넌트들은 독립적으로 동작하거나 동일 프로그램 또는 장치의 일부일 수 있다. 컴포넌트들은 별도의 분리형 회로 기판과 같은 별도의 하드웨어에 존재하거나, 메모리로부터의 명령어들을 구현하기 위해 동일 메모리 및 프로세서와 같은 공통 하드웨어를 공유할 수 있다. 프로그램은 단일 프로그램의 일부일 수 있고, 별도의 프로그램일 수 있고, 또는 수 개의 메모리 및 프로세서에 걸쳐 분산될 수 있다.
제2 동작은 제2 동작이 제1 동작으로부터 직접 발생하든 간접적으로 발생하든 관계없이 제1 동작에 "응답"하여 이루어지는 것으로 말할 수 있다. 제2 동작은 제1 동작보다 실질적으로 뒤에 발생하며, 여전히 제1 동작에 응답하여 이루어질 수 있다. 유사하게, 제2 동작은 제1 동작과 제2 동작 사이에 중간 동작이 발생하는 경우 및 하나 이상의 중간 동작이 직접 제2 동작이 수행되게 하는 경우에도 제1 동작에 응답하여 이루어진다고 말할 수 있다. 예를 들면, 제2 동작은 제1 동작이 플래그를 설정하고 플래그가 설정될 때마다 제3 동작이 제2 동작을 나중에 개시하면 제1 동작에 응답하는 것일 수 있다.
대중의 이용을 명확히 하고 대중에 대한 통보를 제공하기 위하여, 구 "<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 (19)

  1. 메시지 기반 운영 시스템에서 콜 시퀀스 이상을 검출하는 방법에 있어서,
    운영 시스템의 프로그램적 절차의 호출을 표시하는 메시지- 상기 메시지는 프로그램적 절차 식별자, 발송자 프로세스 식별자 및 수신자 프로세스 식별자를 포함하고, 상기 프로그램적 절차의 호출은 상기 발송자 프로세스 식별자에 의해 식별된 프로세스로부터 이루어진 운영 시스템 프로그램적 절차의 일련의 호출들 중 하나의 호출임 -를 수신하는 단계와;
    적어도 상기 프로그램적 절차 식별자 및 상기 수신자 프로세스 식별자에 기초하여 호출 해시를 생성하는 단계와;
    상기 호출 해시를 호출 식별자로 번역하는 단계와;
    상기 일련의 호출을 위한 호출 식별자를 포함한 번역된 콜 시퀀스에 상기 호출 식별자를 포함시키는 단계와;
    상기 번역된 콜 시퀀스가 복수의 미리 정해진 콜 시퀀스- 상기 미리 정해진 콜 시퀀스는 각각 대응하는 호출 식별자를 포함하고, 상기 대응하는 호출 식별자는 각각 상기 호출 해시에 매핑되는 것임 -에 포함되어 있는지를 결정하는 단계와;
    상기 번역된 콜 시퀀스가 상기 미리 정해진 콜 시퀀스에 포함되어 있지 않으면 상기 번역된 콜 시퀀스를 이상(anomaly)으로서 식별하고, 그렇지 않으면 상기 번역된 콜 시퀀스가 이상이 아니라고 결정하는 단계를 포함한 콜 시퀀스 이상 검출 방법.
  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. 제16항에 있어서, 상기 프로세서는 상기 프로그램적 절차 식별자, 상기 발송자 프로세스 식별자, 상기 수신자 프로세스 식별자, 상기 채널 식별자, 상기 수신자 노드 식별자, 상기 프로그램적 절차의 파라미터들, 및/또는 상기 프로그램적 절차에 전달되는 파라미터들의 표시 중의 적어도 하나에 기초하여 상기 호출 해시를 생성하도록 구성된 것인 콜 시퀀스 이상 검출 시스템.
  18. 제13항 내지 제17항 중의 어느 한 항에 있어서, 상기 프로세서는 상기 번역된 콜 시퀀스를 이상으로서 식별한 것에 응답하여 보안 수준을 변경하도록 구성된 것인 콜 시퀀스 이상 검출 시스템.
  19. 제18항에 있어서, 상기 프로세서는 상기 번역된 콜 시퀀스를 이상으로서 식별한 것이 임계 이상 수(threshold number of anomalies)를 초과한다는 결정에 응답하여 보안 수준을 변경하도록 구성된 것인 콜 시퀀스 이상 검출 시스템.
KR1020197004735A 2016-07-19 2017-07-19 시스템 콜의 시퀀스를 이용한 이상 검출 KR102408847B1 (ko)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
KR20190030728A true KR20190030728A (ko) 2019-03-22
KR102408847B1 KR102408847B1 (ko) 2022-06-13

Family

ID=60988032

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197004735A KR102408847B1 (ko) 2016-07-19 2017-07-19 시스템 콜의 시퀀스를 이용한 이상 검출

Country Status (7)

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

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090241170A1 (en) * 2008-03-19 2009-09-24 Applied Identity Access, priority and bandwidth management based on application identity
US7900194B1 (en) * 2004-03-25 2011-03-01 Verizon Corporate Services Group Inc. Kernel-based intrusion detection using bloom filters

Family Cites Families (39)

* 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 日本ビクター株式会社 認証方法、コンテンツ送信側機器、コンテンツ受信側機器、認証システム
US6742124B1 (en) * 2000-05-08 2004-05-25 Networks Associates Technology, Inc. Sequence-based anomaly detection using a distance matrix
US6735703B1 (en) * 2000-05-08 2004-05-11 Networks Associates Technology, Inc. Multi-platform sequence-based anomaly detection wrapper
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
US20070107052A1 (en) * 2003-12-17 2007-05-10 Gianluca Cangini 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
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
US8244745B2 (en) * 2005-12-29 2012-08-14 Nextlabs, Inc. Analyzing usage information of an information management system
US7716240B2 (en) * 2005-12-29 2010-05-11 Nextlabs, Inc. Techniques and system to deploy policies intelligently
US8972449B2 (en) * 2005-12-29 2015-03-03 Nextlabs, Inc. Preventing conflicts of interests between two or more groups
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
JP4749915B2 (ja) * 2006-03-31 2011-08-17 株式会社日立製作所 Sip交換システム
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 日本電信電話株式会社 情報収集システムおよび情報収集方法
JP5191043B2 (ja) * 2008-04-21 2013-04-24 学校法人東京電機大学 プログラムの不正起動防止システム及び方法
CN102301374B (zh) 2009-02-16 2014-06-25 松下电器产业株式会社 非法模块确定装置、信息处理装置、非法模块确定方法、非法模块无效化系统及非法模块无效化方法
US8689236B2 (en) * 2010-05-28 2014-04-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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7900194B1 (en) * 2004-03-25 2011-03-01 Verizon Corporate Services Group Inc. Kernel-based intrusion detection using bloom filters
US20090241170A1 (en) * 2008-03-19 2009-09-24 Applied Identity Access, priority and bandwidth management based on application identity

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Alex C. Snoeren et al, "Single-Packet IP Traceback"(2002.12.) *

Also Published As

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

Similar Documents

Publication Publication Date Title
KR20190030728A (ko) 시스템 콜의 시퀀스를 이용한 이상 검출
US11902279B2 (en) Method, apparatus, system and storage medium for access control policy configuration
US9823942B2 (en) Virtual machine discovery and identification
EP3122077B1 (en) Resource notification method, local common service entity (cse) and resource notification system
US11032318B2 (en) Network monitoring based on distribution of false account credentials
CN110727942B (zh) 用于恶意软件检测的存储器跟踪
US11251976B2 (en) Data security processing method and terminal thereof, and server
KR102393913B1 (ko) 이상행위 탐지 장치, 방법 및 이를 포함하는 시스템
CN111950640B (zh) 交换机故障处理方法及装置
CN112559565A (zh) 一种异常检测方法、系统及装置
CN114205150B (zh) 容器环境的入侵防御方法及装置、电子设备、存储介质
CN116662426A (zh) 数据库连接的建立方法、装置、设备及介质
US10333966B2 (en) Quarantining an internet protocol address
US10171970B2 (en) Resource notification method and system, local CSE, remote CSE and storage medium
US11349926B1 (en) Protected smart contracts for managing internet of things devices
CN111221847B (zh) 监控数据存储方法、装置及计算机可读存储介质
CN109117221B (zh) 活动窗口的数据共享方法、装置、设备及存储介质
CN111367860A (zh) 文件刷新方法及装置
CN113595794B (zh) 网络设备告警信息优化方法、装置、设备及存储介质
KR101997695B1 (ko) 라이브 포렌식 기반 공격 탐지 장치 및 방법
US11290385B2 (en) Method and traffic processing unit for handling traffic in a communication network
US10917336B2 (en) Routing device with independent service subsystem
CN117762673A (zh) 访问请求处理方法、装置、存储介质及电子设备
CN118101675A (zh) 更新资源状态信息的方法、装置及存储介质
CN117494115A (zh) 容器环境下的反弹shell检测方法、装置、设备和介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant