KR20180035835A - 확률적 프로세서 모니터링 - Google Patents

확률적 프로세서 모니터링 Download PDF

Info

Publication number
KR20180035835A
KR20180035835A KR1020187004756A KR20187004756A KR20180035835A KR 20180035835 A KR20180035835 A KR 20180035835A KR 1020187004756 A KR1020187004756 A KR 1020187004756A KR 20187004756 A KR20187004756 A KR 20187004756A KR 20180035835 A KR20180035835 A KR 20180035835A
Authority
KR
South Korea
Prior art keywords
map
processing component
population
data
activity
Prior art date
Application number
KR1020187004756A
Other languages
English (en)
Inventor
밀로쉬 메리악
토마스 그로컷
조나단 오스틴
제레인트 러프
Original Assignee
에이알엠 아이피 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에이알엠 아이피 리미티드 filed Critical 에이알엠 아이피 리미티드
Publication of KR20180035835A publication Critical patent/KR20180035835A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3075Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved in order to maintain consistency among the monitored data, e.g. ensuring that the monitored data belong to the same timeframe, to the same system or component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3082Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Abstract

제 1 처리 컴포넌트는 메모리에서 메모리 윈도우를 세그먼트화하고, 세그먼트화된 메모리 윈도우의 맵을 제공함으로써 적어도 하나의 데이터 버킷을 생성하고; 데이터 버킷에서 활동을 검출하기 위해 샘플링하고, 통계적 활동 데이터로 맵을 전사적으로 파퓰레이트하며; 또한 트리거에 응답하여, 맵의 파퓰레이션의 적어도 일부분을 제 2 처리 컴포넌트에 전달함으로써 통계적 활성 데이터를 샘플링해서 손실적으로 축적한다. 제 2 처리 컴포넌트는 전사적 맵의 파퓰레이션의 적어도 일부분을 수신 및 저장하고, 그것을 적어도 하나의 미리 저장된 맵 파퓰레이션과 비교하며, 또한 비정상 패터닝의 검출시에, "비정상 검출" 동작을 수행한다.

Description

확률적 프로세서 모니터링
본 발명은 프로세서 활동을 모니터링하는 기술에 관한 것으로서, 예를 들어 프로세서들의 파퓰레이션(population) 중 하나 이상에서 멀웨어(malware) 및 잘못된 코드 또는 데이터를 검출하는데 광범위하게 적용 가능하다.
인터넷의 등장으로, 데이터를 저장 및 처리할 수 있는 디바이스들의 상호 연결이 급속히 증가해 왔다. 현재, 소위 IoT(Internet of Things)의 개발과 함께, 종래에는 데이터를 저장 및 처리하도록 구비되어 있지 않았던 디바이스들이 이들을 행하도록 구비되고 있다. 일례는, 부패하기 쉬운 식품과 관련된 인코딩 데이터를 인식하고, 그 데이터를 디바이스 스토리지에 저장하고, 이어서, 네트워크를 통해 스마트 폰에 식품에 대한 임박한 "사용 기한" 날짜를 사용자에게 경고하는 기능이 구비된 가정용 냉장고가 그 예이다
디바이스들에 대한 이러한 확장된 기능들은 이점을 가져다 주지만 동시에 디바이스들은, 부정확한 프로그램에 의해 의도치 않게 발생했든지 또는 악성 코드가 의도적으로 삽입되었거나 또는 악의적이지 않은 실행 코드의 악영향을 미칠 수 있는 잘못된 데이터로 인해 발생했든지에 관계없이, 시스템 또는 광범위한 네트워크에 대한 위협들을 포함할 수 있는 잠재적으로 유해한 활동에 대해 불리하게 취약할 수 있다. 현대 디바이스들의 상호 연관성은 신뢰할 수 없는 코드 또는 데이터가 네트워크를 통해 널리 전파될 수 있음을 의미하므로, 앞으로 감염의 새로운 원인이 될 수 있는 다수의 디바이스들이 존재하게 된다.
종래의 방법으로 멀웨어 또는 잘못된 코드 및 데이터를 탐지하는 것은 리소스 집약적이기 때문에, 중요한 활동이기는 하지만, 생산적인 응용 목적을 위해 시스템 리소스들을 사용하는 것을 선호하여 이것이 무시되는 경우가 있을 수 있다. 종래의 시스템에서는, 프로세서 노드 실행의 영구적 또는 정규적 모니터링은 모니터 코드 자체 및 생성되는 축적 통계 데이터에 대해 많은 프로세서 사이클 및 많은 양의 스토리지를 소모할 수 있기 때문에, 엄청나게 많은 리소스를 필요로 할 수 있다.
특히, IoT(Internet of Things)에서는, 프로세서 메모리나 관련 스토리지에 매우 적은 코드와 데이터만 저장하게 되는 로우 풋프린트 비사용자 서비스 기술을 사용해야 하는 디바이스들(때로는 휴대용)에 사용할 수 있는 매우 컴팩트한 프로세서들이 많이 존재하게 되며, 따라서 사용 가능한 리소스의 가능한 많은 부분이 사용자에게 직접적인 유용성을 제공하는 서비스들에 전용될 수 있다.
본 명세서에 개시된 기술의 제 1 양태에서는, 통계적 활동 데이터를 샘플링해서 손실적으로 축적하기 위해 제 1 처리 컴포넌트를 동작시키는 기계 구현 방법이 제공되며, 상기 방법은 상기 처리 컴포넌트의 메모리에서 메모리 윈도우를 세그먼트화하고, 세그먼트화된 메모리 윈도우의 적어도 하나의 맵을 제공함으로써 적어도 하나의 데이터 버킷(data bucket)을 생성하는 단계; 상기 적어도 하나의 데이터 버킷에서 활동을 검출하기 위해 샘플링하고, 상기 적어도 하나의 맵을 통계적 활동 데이터로 전사적으로 파퓰레이트하는(surjectively populating) 단계; 및 트리거에 응답하여, 상기 적어도 하나의 맵의 파퓰레이션의 적어도 일부분을 제 2 처리 컴포넌트에 전달하는 단계를 포함한다.
제 2 양태에서는, 손실적으로 축적된 통계적 활동 데이터를 분석하기 위해 제 1 처리 컴포넌트와 협동하여 제 2 처리 컴포넌트를 동작시키는 기계 구현 방법이 제공되며, 상기 방법은 상기 제 1 처리 컴포넌트의 세그먼트화된 메모리 윈도우의 적어도 하나의 전사적 맵의 파퓰레이션의 적어도 일부분을 수신하는 단계; 상기 적어도 하나의 맵의 상기 파퓰레이션의 적어도 일부분을 저장하는 단계; 상기 적어도 하나의 맵의 상기 파퓰레이션을 적어도 하나의 미리 저장된 맵 파퓰레이션과 비교하는 단계; 및 상기 적어도 하나의 미리 저장된 맵에 대한 상기 적어도 하나의 맵의 비정상 패터닝 검출시에, 적어도 상기 제 1 처리 컴포넌트에 대하여 상기 제 2 처리 컴포넌트에 의한 "비정상 검출" 동작을 수행하는 단계를 포함한다.
제 3 및 제 4 양태에서는, 컴퓨터 판독가능 매체에 유형적으로 저장된 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품이 제공되며, 상기 컴퓨터 프로그램 코드는 제 1 또는 제 2 양태에 따른 방법의 단계들을 수행하도록 컴퓨터 시스템에 의해 실행 가능하다.
제 5 양태에서는, 통계적 활동 데이터를 샘플링 및 손실적으로 축적하기 위해 제 1 양태 또는 제 3 양태의 방법의 단계들을 수행하도록 되어 있는 제 1 처리 컴포넌트가 제공된다.
제 6 양태에서는, 적어도 제 1 처리 컴포넌트 및 제 2 처리 컴포넌트의 프로세서 파퓰레이션에서 멀웨어(malware)의 증상을 검출하기 위한 기계 구현 방법이 제공되며, 상기 방법은 상기 제 1 처리 컴포넌트에서 적어도 하나의 메모리 윈도우에 대하여 손실적으로 축적된 통계적 활동 표시의 전사적으로 파퓰레이트된 맵을 상기 제 2 처리 컴포넌트에서 수신하는 단계; 상기 전사적으로 파퓰레이트된 맵을, 상기 프로세서 파퓰레이션의 메모리 윈도우들에 대하여 손실적으로 축적된 활동 표시의 예상 맵과 비교하는 단계; 상기 예상 맵을 참조하여 상기 전사적으로 파퓰레이트된 맵에서 비정상 패턴을 검출하는 단계; 및 상기 멀웨어에 대하여 적어도 하나의 보호 동작을 수행하는 단계를 포함한다.
제 7 양태에서는, 적어도 제 1 처리 컴포넌트 및 제 2 처리 컴포넌트의 프로세서 파퓰레이션에서 잘못된 코드 기능의 증상을 검출하기 위한 기계 구현 방법이 제공되며, 상기 방법은 상기 제 1 처리 컴포넌트에서 적어도 하나의 메모리 윈도우에 대하여 손실적으로 축적된 통계적 활동 표시의 전사적으로 파퓰레이트된 맵을 상기 제 2 처리 컴포넌트에서 수신하는 단계; 상기 전사적으로 파퓰레이트된 맵을, 상기 프로세서 파퓰레이션의 메모리 윈도우들에 대하여 손실적으로 축적된 활동 표시의 예상 맵과 비교하는 단계; 상기 예상 맵을 참조하여 상기 전사적으로 파퓰레이트된 맵에서 비정상 패턴을 검출하는 단계; 및 상기 잘못된 코드 기능에 대하여 적어도 하나의 보호 동작을 수행하는 단계를 포함한다.
여기에 개시되는 기술 및 장치는 첨부된 도면을 참조하여 단지 예로서 설명될 것이다.
도 1은 프로세서 활동를 샘플링하고 맵핑하기 위해 처리 컴포넌트를 제어하는 방법을 나타낸 도면.
도 2는 맵핑된 데이터를 분석하기 위해 처리 컴포넌트를 제어하는 방법을 나타낸 도면.
도 3은 네트워크를 통해 통신하는 제 1 및 제 2 처리 컴포넌트를 나타낸 도면.
이제 도 1을 참조하면, 개시 단계(102)에서 시작하여 처리 컴포넌트에 대한 통계적 활동 데이터를 샘플링하고 손실적으로 축적하기 위해 제 1 처리 컴포넌트를 제어하는 기계 구현 방법(100)이 도시되어 있다. 메모리 윈도우 세그먼트화 단계(104)에서, 프로세서 메모리의 메모리 윈도우는 데이터 버킷들로 세그먼트화된다. 버킷 맵 생성 단계(106)에서, 데이터 버킷의 활동이 맵핑되는 버킷 맵이 제공된다. 이 맵은 예를 들어, 할당된 하드웨어 레지스터 또는 인-메모리 데이터 구조일 수 있다. 인-메모리 데이터 구조는 예를 들어, 어레이 또는 원형 버퍼일 수 있다.
활동 표시 샘플링 단계(108)에서는, 처리 컴포넌트가 프로세서 활동의 표시를 위해 데이터 버킷을 샘플링함에 따라 메인 처리 루프가 개시된다. 관심 대상인 프로세서 활동은 예를 들어, 판독 명령, 기록 명령, 실행 명령 및 건너뛰기 명령 중 하나 이상을 포함할 수 있다. 샘플링은, 예를 들어, 임의의 시간 간격, 프로그램 카운터에 의해 결정되는 간격으로, 또는 프로그램적으로 선택되는 명령 실행 시간에 의해 결정되는 간격으로 행해질 수 있다.
활동 검출 판정 포인트(110)에서 어떠한 데이터 버킷의 활동도 검출되지 않을 경우, 처리 컴포넌트가 루프 백하여 활동 표시 샘플링 단계(108)의 샘플링 동작을 계속한다. 활동 검출 판정 포인트(110)에서 데이터 버킷의 활동이 검출되는 경우, 맵 파퓰레이트 단계(112)에서는, 버킷 맵 생성 단계(106)에서 생성된 맵이 전사적으로(surjectively) 파퓰레이트된다.
예시적인 일 실시예에서, 맵은 프로그램 카운터 값들에 대한 데이터 액세스 어드레스들의 2차원 매트릭스를 포함한다. 이것은 다양한 코드 섹션들에 의해 메모리 내의 데이터에 대한 액세스 패턴의 손실 이미지를 제공한다. 공간 소모를 개선하기 위해, 선택된 데이터 액세스 어드레스들(예를 들어, 프로그램 스택 어드레스)이 손실적으로 축적되는 데이터에서 제외될 수도 있다. 상기 데이터 액세스 어드레스들의 선택된 어드레스 비트들은 매트릭스에 대한 데이터 액세스 어드레스 값들을 할당할 때 마스킹되거나 제거될 수 있다. 손실 축적 프로세스에는 데이터 액세스 어드레스들의 해싱(hashing)이 포함될 수 있다.
예를 들어, 프로그램 카운터 포인터들 또는 스택 포인터들과 같은 수집된 값들에 대한 타겟 버킷을 결정하기 위해, 다양한 해시 알고리즘들을 사용하여 그 값을 다음과 같은 버킷 식별자로 변환할 수 있다:
Bucket[HASH(ProgramCounter).bits(4)]++;
이것으로 프로그램 카운터 값의 해시를 계산하고, 하위 4 비트를 취하여, 가능한 2^4 = 16 버킷 중 하나를 1만큼 증가시킨다.
공간 소모를 개선하기 위해, 프로그램 스택 어드레스의 최하위 비트와 같은 선택된 데이터 액세스 어드레스 비트를 마스킹하거나 제거함으로써, 결과 해시 데이터 어드레스의 밀도 및 공간 요구사항을 감소시킬 수 있으며, 따라서 버킷 식별자는 다음과 같이 된다:
Bucket[HASH(ProgramCounter >> 12).bits(8)]++;
이에 따라, 프로그램 카운터가 2^12 = 4096 바이트 크기의 블록들로 절단된다. 하나의 블록 내의 각 프로그램 카운터 어드레스는 동일한 해시를 발생시킨다. 결과 해시가 8 비트로 감소되며, 그 결과 256개의 가능한 버킷이 생성된다.
다양한 필터를 적용하여 맵 파퓰레이션을 더 제한할 수 있다. 맵 파퓰레이트 단계(112)가 완료되면, 트리거 검출 테스트 단계(114)가 실행되어 트리거 기준의 충족을 테스트한다. 트리거 기준은 예를 들어, "맵 풀(map full)" 인디케이터, 비-오류 인터럽트, 실행 모드 변경, 콘텍스트 스위치, 또는 오류 인터럽트일 수 있다. 예를 들어, "맵 풀" 상태가 트리거로서 설정되고, 맵 파퓰레이트 단계(112) 이후에 그 상태가 검출되면, 트리거 검출 테스트 단계(114)는 포지티브(positive)를 리턴하게 된다. 트리거 검출 테스트 단계(114)에서 트리거 기준이 충족되지 않으면, 처리는 활동 표시 샘플링 단계(108)로 복귀한다. 트리거 검출 테스트 단계(114)에서 트리거 기준이 충족되면, 맵 파퓰레이션 전달 단계(116)에서, 맵 파퓰레이션의 적어도 일부분이 적어도 제 2 처리 컴포넌트로 전달되고, 방법(100)은 종료 단계(118)에서 종료된다. 당업자에게 명백한 바와 같이, 이러한 전달은 예를 들어 피어-투-피어 통신 프로토콜 또는 물리적으로 분리된 기계 복합체들 사이의 클라이언트-서버 통신 프로토콜을 사용하여 행해질 수 있거나, 또는 단일 기계 복합체 내의 가상 기계 투 가상 기계 통신 프로토콜을 사용하여 전달하는 것을 포함할 수 있다. 대안적으로, 이러한 전달은 처리 디바이스의 서브-컴포넌트들 사이에서의(예를 들어, 칩상의 하나의 도메인으로부터 다른 도메인으로의) 데이터 전송을 포함할 수 있다.
이에 따라, 제 1 노드가 버킷 맵을 파퓰레이트하여 그것을 적어도 제 2 처리 컴포넌트에 송신한 후에, 도 2의 방법이 개시된다. 도 2는 손실적으로 축적된 통계적 활동 데이터를 분석하기 위해 제 1 처리 컴포넌트와 협동하여 제 2 처리 컴포넌트를 동작시키는 방법(200)을 도시한 것이다. 개시 단계(202)에서 시작하여, 제 2 처리 컴포넌트는, 제 1 노드로부터 파퓰레이션 수신하는 단계(206)에서, 맵 파퓰레이션의 전부 또는 일부를 수신하고, 맵 파퓰레이션 저장 단계(206)에서, 그것을 제 2 처리 컴포넌트 스토리지에 저장한다. 사용되는 스토리지는 프로세서 메모리일 수도 있고, 기존의 파일 시스템이나 데이터베이스와 같은 외부 스토리지일 수도 있다.
시간이 지남에 따라, 제 2 처리 컴포넌트의 스토리지는 다량의 맵 데이터 세트를 축적하게 될 것이므로, 잘 알려진 통계 기술을 사용하여 처리 컴포넌트 파퓰레이션에 대한 통계 분석을 수행하여 정상적 및 비정상적 프로세서 동작의 일반-케이스 "포트레이트(portraits)"를 도출해낼 수 있게 된다. 따라서, 제 2 처리 컴포넌트는, 저장된 맵 파퓰레이션들과 비교 단계(208)에서, 수신된 버킷 맵 파퓰레이션을 저장된 맵 데이터와 비교하여, 일치점과 차이점을 찾아내게 된다. 수신된 맵 파퓰레이션이 정상적인 프로세서 동작을 나타내는 일반 케이스 "포트레이트"에 맞을 경우, 비정상 패턴 테스트 단계(210)에서는 비정상적인 패턴이 검출되지 않으며, 테스트 단계가 네거티브(negative)를 반환하고, 프로세스는 저장된 맵과의 비교 단계(208)에서의 추가 데이터 분석을 위한 준비 상태로 되돌아 간다. 비정상 패턴 테스트 단계(210)에서 비정상 패턴이 발견될 경우에는, 단계(212)에서 "비정상 검출" 동작이 수행되며, 프로세스 인스턴스는 종료 단계(214)에서 종료된다.
비정상 패턴 테스트 단계(210)에서 비정상 패턴이 발견되면, 다양한 "비정상 검출" 동작이 수행될 수 있다. 예를 들어, 비정상 패턴이 멀웨어(malware)의 존재를 나타내는 경우, 멀웨어 호스트를 불능화하는 것; 경고 인디케이터를 네트워크를 통해 제 1 처리 컴포넌트에게 또는 광범위하게 통신하는 것; 멀웨어 호스트의 실행 인스턴스들을 정지시키는 것; 멀웨어 호스트를 격리시키는 것; 또는 멀웨어 호스트의 신규 인스턴스의 실행 개시를 방지하는 것 등의 동작들이 취해질 수 있다. 추가 예로서, 비정상 패턴이 처리 컴포넌트 파퓰레이션의 일부분에 걸쳐 분포되는 공통 펌웨어 또는 소프트웨어 오류를 나타내는 경우, 추가 동작들은 파퓰레이션 내의 디바이스들의 제공자에게 통계 보고서를 제공하는 것; 및 비정상 패턴과 관련된 노드들로부터 추가 진단을 요청하는 것을 포함할 수 있다.
컴포넌트들을 동작시키기 위한 방법들(100 및 200)에 대하여 설명하였으며, 이제 도 3은 본 발명의 기술을 구현하기 위해 네트워크를 통해 통신할 수 있는 제 1 및 제 2 처리 컴포넌트를 포함하는 시스템을 도시한다. 따라서, 도 3은 데이터 버킷 생성기(302)를 포함하는 제 1 프로세서 노드(300)를 보여주고 있으며, 데이터 버킷 생성기(302)는 메모리(304) 내의 메모리 윈도우(306)를 복수의 데이터 버킷들(여기서는 버킷(308)에 의해 예시됨)로 세그먼트화하도록 동작할 수 있다. 데이터 버킷 생성기(302)는 또한 맵(318)을 생성하도록 동작 가능하다. 동작 시에, 제 1 프로세서 노드(300)는 실행 중에 메모리(304)의 일부분을 사용하는 프로그램들(여기서는 프로그램(310)에 의해 나타냄)을 실행한다. 샘플러(316)는 샘플링 활동을 수행하여 메모리 윈도우(306) 내의 하나 이상의 버킷들(308)에서 프로그램 활동을 검출하도록 구성된다. 버킷(308)의 예시적인 활동(314)이 여기에 도시되어 있다. 샘플러(316)는 활동(314)을 검출하여 맵(318)에 해당 활동의 존재를 전사적으로 맵핑하도록 동작 가능하다. 샘플러(316)는 샘플링을 위해 버킷들(308) 중 특정 하나를 무작위로 선택하기 위해 랜덤화기(330)에 따라 동작될 수 있다. 예시적인 대안들에서, 샘플러(316)는 프로그램 카운터(312)에 의해 생성되는 미리 정의된 트리거들에 따라 또는 여기에서는 명령어(328)로 도시된 미리 정의된 명령어들의 발생에 따라 동작될 수 있다. 명령어(328)는 예를 들어, 판독 명령어, 기록 명령어, 실행 명령어 또는 건너뛰기 명령어일 수 있다.
샘플러(316)는 활동 인디케이터들로 맵(318)을 파퓰레이트하며, 미리 결정된 트리거(320)가 그것의 기준 또는 기준들을 만족할 때까지 계속 작동할 수 있다. 트리거 기준은 예를 들어 "맵 풀" 인디케이터, 비-오류 인터럽트, 실행 모드 변경, 콘텍스트 스위치, 또는 오류 인터럽트일 수 있다. 트리거가 작동하기 전에는 하나 이상의 기준이 충족될 필요가 있을 수 있다. 트리거(320)가 그 기준을 만족하면, 통신 컴포넌트(322)(통신 컴포넌트)는 네트워크(324)를 통해 맵(318)의 파퓰레이션을 제 2 프로세서 노드(326)로 전달하도록 동작 가능하다. 네트워크(324)를 통한 전송으로 도시되어 있는 이러한 전달은 제 1 및 제 2 프로세서 노드들이 물리적으로 분리된 기계 복합체들에 위치하는 경우를 예시적으로 나타낸 것일 뿐이다. 이 시스템은 또한 단일 기계 복합체 내의 가상 기계 들로서 구현된 프로세서 노드들 사이에서 동작 가능할 수도 있다. 시스템은 또한 복수의 도메인들을 가진 단일 칩 내에서 동작할 수도 있다. 따라서, 통신 컴포넌트(322)에 의한 전달은 예를 들어 피어-투-피어 통신 프로토콜 또는 물리적으로 분리된 기계 복합체들 사이의 클라이언트-서버 통신 프로토콜을 사용하여 행해질 수 있으며, 또는 단일 기계 복합체 내의 가상 기계 투 가상 기계를 사용하는 전달을 포함할 수도 있다. 따라서, 예를 들어, 이상(異常)을 검출하고 이들을 적절히 처리하여 개선된 처리 컴포넌트 활동 모니터링을 달성하는 온-칩 또는 오프-칩 수단이 제공될 수도 있다.
또한, 도 3에는 제 1 프로세서 노드(300)와 네트워크(324)를 통해 맵(318)의 파퓰레이션을 송수신하도록 동작 가능한 대응 통신 컴포넌트(332)를 가진 제 2 프로세서 노드(326)가 도시되어 있다. 제 2 프로세서 노드(326)는 맵(318)의 파퓰레이션이 저장될 수 있는 저장소(334)를 포함한다. 사용되는 스토리지는 프로세서 메모리일 수도 있고, 또는 기존의 파일 시스템이나 데이터베이스와 같은 외부 스토리지일 수도 있다. 제 2 프로세서 노드(326)는 비교기(336)를 더 포함하며, 이 비교기(336)는 수신된 맵 파퓰레이션을 저장소(334)의 다른 맵 데이터와 비교하여, 일치점과 차이점을 찾도록 동작할 수 있다. 수신된 맵 파퓰레이션이 정상 프로세서 동작을 나타내는 일반 케이스 "포트레이트"에 맞으면, 비교기(336)에 의해 비정상적인 패턴이 감지되지 않는다. 그러나, 비교기(336)에 의해 비정상 패턴이 발견될 경우, 제 2 프로세서 노드(326)는 통신 컴포넌트(332)를 사용하여 이상이 있다는 인디케이터를 제 1 프로세서 노드(300)에게 전송하는 것과 같은, "비정상 검출" 동작을 수행하도록 더 동작 가능하다.
당업자는 노드들의 파퓰레이션의 단일 노드에서의 모니터 활동이, 프로세서 활동에서 비정상 동작을 검출하는 요구사항에 의해 제한될 수 있는 경우에는, 완벽한 추적이 아니라, 간소화 코드를 사용하여 프로세서 활동의 스파스 핑거프린트(sparse fingerprint)를 축적함으로써 프로세서에 대한 영향을 제한하는 방식의 확률적 모니터를 동작시킬 수 있다. 이러한 핑거프린트는 예를 들어 랜덤화기에 의해 또는 프로세서의 레퍼토리에서 프로그래밍 방식으로 선택된 트리거링 활동에 의해 제어되는, 공간 분산 또는 시간 간헐적 샘플링 방법을 사용하여 획득되는 데이터의 손실 축적을 포함할 수 있다. 또한, 노드 모니터의 출력들은 전사 맵핑에 의해 더욱 절약될 수 있으며, 이에 따라 소스(맵핑된 메모리) 및 타겟(맵)에서의 데이터 포인트들 사이에는 다-대-일 관계가 성립될 수 있다. 리소스 사용의 추가적인 절약은 처리 컴포넌트에서는 소량의 데이터만을 유지하고, 몇몇 일정하고 자주 발생하는 트리거의 동작 시에, 축적된 데이터를 처리를 위한 추가 노드 또는 노드들로 전송함으로써 달성될 수 있다. 이러한 기술은 하나의 추가 분석기 노드를 사용할 수 있으며, 또는 대안적으로는, 데이터를 분석하기 위해 처리 그리드 또는 협동 클라우드와 같은, 노드들의 분산 네트워크를 사용할 수도 있다. 또한, 모니터링의 목적은 노드 파퓰레이션 내의 놈(norm)과 관련하여 처리 컴포넌트의 비정상적 활동을 감지하는 것이므로, 원형 버퍼로 맵을 작동시키고 제 2 프로세서가 이상이 검출되었을 수도 있음을 나타낼 경우에만 데이터의 축적을 "고정(freezing)"하는 것으로 충분할 수 있다. 이 기술을 사용할 경우, 시스템은 일종의 플라이트-레코더(flight-recorder)로 작동하며, 조사가 필요한 상황이 발생했을 때만 데이터가 필요할 수 있으므로 상당한 양의 기록이 필요하지 않게 된다.
추가의 개선으로, 상이한 처리 특성을 차트로 나타내는 복수의 맵이 제공될 수도 있으며, 그러한 경우, 일정 기간에 대한 데이터의 수집, 축적 및 필터링을 달라지게 함으로써, 이상이 감지될 수도 있는 정교한 "랜드스케이프(landscape)"를 제공하는 맵들의 "오버레이"가 생성될 수 있다.
이러한 방식으로, 오리지널 노드에 보관된 데이터가 매우 적은 스토리지 리소스 소모로 유지될 수가 있으며, 오리지널 노드의 처리 요소들도 매우 적은 처리 전력 소모로 제한된다.
당업자라면 이해할 수 있는 바와 같이, 본 발명의 양태들은 시스템, 방법 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 본 발명의 양태들은 전체 하드웨어 구현, 전체 소프트웨어 구현, 또는 소프트웨어와 하드웨어 양태들을 결합한 구현의 형태를 취할 수 있다.
또한, 본 발명의 양태들은 컴퓨터 판독가능 프로그램 코드가 구현된 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 신호 매체 또는 컴퓨터 판독가능 저장 매체일 수 있다. 컴퓨터 판독가능 저장 매체는 예를 들어, 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 디바이스, 또는 전술한 것의 임의의 적합한 조합일 수 있으며, 이에 한정되지 않는다.
본 발명의 양태들에 대한 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 객체 지향 프로그래밍 언어들 및 종래의 절차적 프로그래밍 언어들을 포함하는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성될 수 있다. 프로그램 코드는 사용자의 컴퓨터 상에서 전체적으로, 사용자의 컴퓨터 상에서 부분적으로 및 원격 컴퓨터 상에서 부분적으로 또는 원격 컴퓨터 또는 서버 상에서 전체적으로 실행될 수 있다. 후자의 시나리오에서 원격 컴퓨터는 모든 종류의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있다. 코드 컴포넌트들은 절차, 방법 등으로 구현될 수 있고, 원시 명령어 세트의 직접 기계 명령어들 내지 하이-레벨 컴파일 또는 해석 언어 구성들의 임의의 추상화 레벨에서의 명령어들의 형태 또는 명령어들의 시퀀스들을 취할 수 있는 서브 컴포넌트들을 포함할 수 있다.
본 발명의 바람직한 실시예들에 따른 로직 방법의 전부 또는 일부가, 상기 방법의 단계들을 수행하도록 로직 엘리먼트들을 포함하는 로직 장치에 적합하게 구현될 수 있고, 그러한 로직 엘리먼트들은, 예를 들면, 프로그래밍 가능한 로직 어레이 또는 주문형 집적 회로(application-specific integrated circuit)에서의 로직 게이트들 등의 컴포넌트들을 포함할 수 있다는 것은 당업자에게 명백할 것이다. 또한, 그러한 로직 배치는, 고정 또는 전송 가능한 반송 매체를 사용하여 저장 및 전송될 수 있는, 예를 들면 가상 하드웨어 디스크립터 언어를 사용해서 그러한 어레이 또는 회로에 로직 구조들을 일시적으로 또는 영구적으로 구축하는 엘리먼트들을 가능하게 하는 것으로 구현될 수 있다.
일 대안에서, 본 발명의 일 실시예는, 컴퓨터 인프라스트럭처 또는 네트워크에서의 배치 및 실행 시에, 상기 컴퓨터 시스템 또는 네트워크로 하여금 상기 방법의 모든 단계들을 수행하게 하도록 동작 가능한 컴퓨터 프로그램 코드를 배치하는 단계들을 포함하는 서비스를 전개하는 컴퓨터 구형 방법의 형태로 실현될 수도 있다.
또 다른 대안에서, 본 발명의 바람직한 실시예는 컴퓨터 시스템 또는 네트워크에 로딩되어 동작될 때, 상기 컴퓨터 시스템이 방법의 모든 단계들을 수행하게 할 수 있는 기능적 컴퓨터 데이터 구조들을 포함하는 기능적 데이터를 갖는 데이터 캐리어의 형태로 실현될 수 있다.
본 발명의 범위를 일탈하지 않고 전술한 예시적인 실시예들에 많은 개선 및 수정들이 이루어질 수 있음은 당업자에게 명백할 것이다.

Claims (26)

  1. 통계적 활동 데이터를 샘플링해서 손실적으로 축적하기 위해 제 1 처리 컴포넌트를 동작시키는 기계 구현 방법으로서,
    상기 처리 컴포넌트의 메모리에서 메모리 윈도우를 세그먼트화하고, 세그먼트화된 메모리 윈도우의 적어도 하나의 맵을 제공함으로써 적어도 하나의 데이터 버킷(data bucket)을 생성하는 단계;
    상기 적어도 하나의 데이터 버킷에서 활동을 검출하기 위해 샘플링하고, 상기 적어도 하나의 맵을 통계적 활동 데이터로 전사적으로 파퓰레이트하는(surjectively populating) 단계; 및
    트리거에 응답하여, 상기 적어도 하나의 맵의 파퓰레이션의 적어도 일부분을 제 2 처리 컴포넌트에 전달하는 단계를 포함하는 기계 구현 방법.
  2. 제 1 항에 있어서,
    상기 전달하는 단계는 물리적으로 분리된 기계 복합체들 사이에서 피어-투-피어 및 클라이언트-서버 통신 프로토콜 중 적어도 하나를 이용해서 전달하는 단계를 포함하는 기계 구현 방법.
  3. 제 1 항에 있어서,
    상기 전달하는 단계는 가상 기계를 이용해서 단일의 기계 복합체 내의 가상 기계 통신 프로토콜에 전달하는 단계를 포함하는 기계 구현 방법.
  4. 제 1 항에 있어서,
    상기 활동을 검출하기 위해 샘플링하는 단계는 판독 명령어, 기록 명령어, 실행 명령어 및 건너뛰기 명령어 중 적어도 하나를 검출하기 위해 샘플링하는 단계를 포함하는 기계 구현 방법.
  5. 제 1 항에 있어서,
    상기 적어도 하나의 맵을 제공하는 단계는 하드웨어 레지스터를 할당하는 단계 및 인-메모리 데이터 구조를 할당하는 단계 중 적어도 하나의 단계를 포함하는 기계 구현 방법.
  6. 제 5 항에 있어서,
    상기 인-메모리 데이터 구조를 할당하는 단계는 어레이를 생성하는 단계를 포함하는 기계 구현 방법.
  7. 제 5 항에 있어서,
    상기 인-메모리 데이터 구조를 할당하는 단계는 원형 버퍼(circular buffer)를 생성하는 단계를 포함하는 기계 구현 방법.
  8. 제 1 항에 있어서,
    상기 샘플링하는 단계는 무작위의 시간 간격으로 샘플링하는 단계, 프로그램 카운터에 의해 결정된 간격으로 샘플링하는 단계, 및 프로그래밍적으로 선택된 명령어 실행 시간들에 의해 결정된 간격으로 샘플링하는 단계 중 적어도 하나의 단계를 포함하는 기계 구현 방법.
  9. 제 1 항에 있어서,
    상기 트리거에 응답하여 전달하는 단계는 "맵 풀(map full)" 인디케이터, 비-오류 인터럽트, 실행 모드 변경, 콘텍스트 스위치, 및 오류 인터럽트 중 적어도 하나에 대응하는 단계를 포함하는 기계 구현 방법.
  10. 제 1 항에 있어서,
    상기 적어도 하나의 맵은 서로 다른 특징들을 플롯하도록 되어 있는 복수의 맵을 포함하는 기계 구현 방법.
  11. 제 1 항에 있어서,
    상기 적어도 하나의 맵은 프로그램 카운터 값들에 대한 데이터 액세스 어드레스들의 2차원 매트릭스를 포함하는 기계 구현 방법.
  12. 제 11 항에 있어서,
    상기 데이터 액세스 어드레스들의 선택된 어드레스 비트들은 상기 매트릭스에 대하여 데이터 액세스 어드레스 값들을 할당할 때 마스킹 또는 제거되는 기계 구현 방법.
  13. 제 11 항 또는 제 12 항에 있어서,
    상기 손실적으로 축적하는 단계는 상기 데이터 액세스 어드레스들을 해싱하는 단계를 포함하는 기계 구현 방법.
  14. 손실적으로 축적된 통계적 활동 데이터를 분석하기 위해 제 1 처리 컴포넌트와 협동하여 제 2 처리 컴포넌트를 동작시키는 기계 구현 방법으로서,
    상기 제 1 처리 컴포넌트의 세그먼트화된 메모리 윈도우의 적어도 하나의 전사적 맵의 파퓰레이션의 적어도 일부분을 수신하는 단계;
    상기 적어도 하나의 맵의 상기 파퓰레이션의 적어도 일부분을 저장하는 단계;
    상기 적어도 하나의 맵의 상기 파퓰레이션을 적어도 하나의 미리 저장된 맵 파퓰레이션과 비교하는 단계; 및
    상기 적어도 하나의 미리 저장된 맵에 대한 상기 적어도 하나의 맵의 비정상 패터닝 검출시에, 적어도 상기 제 1 처리 컴포넌트에 대하여 상기 제 2 처리 컴포넌트에 의한 "비정상 검출" 동작을 수행하는 단계를 포함하는 기계 구현 방법.
  15. 제 14 항에 있어서,
    상기 "비정상 검출" 동작을 수행하는 단계는 상기 제 1 처리 컴포넌트에 대하여 "비정상 검출" 메시지를 통신하는 단계를 포함하는 기계 구현 방법.
  16. 컴퓨터 판독가능 매체에 유형적으로 저장된 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 코드는 제 1 항 내지 제 13 항 중 어느 한 항에 기재된 방법의 단계들을 수행하도록 컴퓨터 시스템에 의해 실행 가능한 컴퓨터 프로그램 제품.
  17. 컴퓨터 판독가능 매체에 유형적으로 저장된 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 코드는 제 14 항 또는 제 15 항에 기재된 방법의 단계들을 수행하도록 컴퓨터 시스템에 의해 실행 가능한 컴퓨터 프로그램 제품.
  18. 통계적 활동 데이터를 샘플링해서 손실적으로 축적하기 위해 제 1 항 내지 제 13 항 중 어느 한 항에 기재된 방법의 단계들을 수행하도록 되어 있는 제 1 처리 컴포넌트.
  19. 손실적으로 축적된 통계적 활동 데이터를 분석하기 위해 제 1 처리 컴포넌트와 협동하여 동작 가능하며, 제 14 항 또는 제 15 항에 기재된 방법의 단계들을 수행하도록 되어 있는 제 2 처리 컴포넌트.
  20. 적어도 제 1 처리 컴포넌트 및 제 2 처리 컴포넌트의 프로세서 파퓰레이션에서 멀웨어(malware)의 증상을 검출하기 위한 기계 구현 방법으로서,
    상기 제 1 처리 컴포넌트에서 적어도 하나의 메모리 윈도우에 대하여 손실적으로 축적된 통계적 활동 표시의 전사적으로 파퓰레이트된 맵을 상기 제 2 처리 컴포넌트에서 수신하는 단계;
    상기 전사적으로 파퓰레이트된 맵을, 상기 프로세서 파퓰레이션의 메모리 윈도우들에 대하여 손실적으로 축적된 활동 표시의 예상 맵과 비교하는 단계;
    상기 예상 맵을 참조하여 상기 전사적으로 파퓰레이트된 맵에서 비정상 패턴을 검출하는 단계; 및
    상기 멀웨어에 대하여 적어도 하나의 보호 동작을 수행하는 단계를 포함하는 기계 구현 방법.
  21. 제 20 항에 있어서,
    상기 적어도 하나의 보호 동작을 수행하는 단계는,
    멀웨어 호스트를 불능화하는 것;
    경고 인디케이터를 네트워크를 통해 통신하는 것;
    멀웨어 호스트의 실행 인스턴스들을 정지시키는 것;
    멀웨어 호스트를 격리시키는 것; 및
    멀웨어 호스트의 신규 인스턴스의 실행 개시를 방지하는 것 중 하나를 수행하는 단계를 포함하는 기계 구현 방법.
  22. 적어도 제 1 처리 컴포넌트 및 제 2 처리 컴포넌트의 프로세서 파퓰레이션에서 잘못된 코드 기능의 증상을 검출하기 위한 기계 구현 방법으로서,
    상기 제 1 처리 컴포넌트에서 적어도 하나의 메모리 윈도우에 대하여 손실적으로 축적된 통계적 활동 표시의 전사적으로 파퓰레이트된 맵을 상기 제 2 처리 컴포넌트에서 수신하는 단계;
    상기 전사적으로 파퓰레이트된 맵을, 상기 프로세서 파퓰레이션의 메모리 윈도우들에 대하여 손실적으로 축적된 활동 표시의 예상 맵과 비교하는 단계;
    상기 예상 맵을 참조하여 상기 전사적으로 파퓰레이트된 맵에서 비정상 패턴을 검출하는 단계; 및
    상기 잘못된 코드 기능에 대하여 적어도 하나의 보호 동작을 수행하는 단계를 포함하는 기계 구현 방법.
  23. 제 22 항에 있어서,
    상기 적어도 하나의 보호 동작을 수행하는 단계는,
    상기 파퓰레이션에 있어서 디바이스들의 제공자에게 통계적 리포트를 제공하는 단계; 및
    상기 비정상 패턴과 관련된 노드들로부터 추가적인 진단을 요청하는 단계 중 하나의 단계를 수행하는 단계를 포함하는 기계 구현 방법.
  24. 첨부 도면을 참조하여, 실질적으로 상술한 바와 같은 기계 구현 방법.
  25. 첨부 도면을 참조하여, 실질적으로 상술한 바와 같은 컴퓨터 프로그램 제품.
  26. 첨부 도면을 참조하여, 실질적으로 상술한 바와 같은 처리 컴포넌트.
KR1020187004756A 2015-07-31 2016-07-29 확률적 프로세서 모니터링 KR20180035835A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1513525.4 2015-07-31
GB1513525.4A GB2540949B (en) 2015-07-31 2015-07-31 Probabilistic Processor Monitoring
PCT/GB2016/052337 WO2017021706A1 (en) 2015-07-31 2016-07-29 Probabilistic processor monitoring

Publications (1)

Publication Number Publication Date
KR20180035835A true KR20180035835A (ko) 2018-04-06

Family

ID=54062965

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187004756A KR20180035835A (ko) 2015-07-31 2016-07-29 확률적 프로세서 모니터링

Country Status (5)

Country Link
US (1) US10810098B2 (ko)
KR (1) KR20180035835A (ko)
CN (1) CN107924358B (ko)
GB (1) GB2540949B (ko)
WO (1) WO2017021706A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200351293A1 (en) * 2019-04-30 2020-11-05 EMC IP Holding Company LLC Out-of-band management security analysis and monitoring

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3561576B2 (ja) * 1995-09-07 2004-09-02 パイオニア株式会社 多層ディスク再生装置
IL120632A0 (en) * 1997-04-08 1997-08-14 Zuta Marc Multiprocessor system and method
US6601149B1 (en) * 1999-12-14 2003-07-29 International Business Machines Corporation Memory transaction monitoring system and user interface
US6742101B2 (en) * 2001-06-29 2004-05-25 Fujitsu Limited Scalable and flexible method for address space decoding in a multiple node computer system
EP1278120A1 (de) * 2001-07-18 2003-01-22 Infineon Technologies AG Controller und Verfahren zum Ansteuern einer zentralen Verarbeitungseinheit für eine Speicheradressierung
US7373663B2 (en) * 2002-05-31 2008-05-13 Alcatel Canada Inc. Secret hashing for TCP SYN/FIN correspondence
US20040093516A1 (en) * 2002-11-12 2004-05-13 Hornbeek Marc William Anthony System for enabling secure remote switching, robotic operation and monitoring of multi-vendor equipment
US6701412B1 (en) 2003-01-27 2004-03-02 Sun Microsystems, Inc. Method and apparatus for performing software sampling on a microprocessor cache
US7526617B2 (en) * 2005-12-29 2009-04-28 Sap Ag System and method for memory management using memory windows
US8136124B2 (en) * 2007-01-18 2012-03-13 Oracle America, Inc. Method and apparatus for synthesizing hardware counters from performance sampling
US8782433B2 (en) * 2008-09-10 2014-07-15 Inside Secure Data security
CN101625735A (zh) * 2009-08-13 2010-01-13 西安理工大学 基于ls-svm分类和回归学习递归神经网络的fpga实现方法
US8949987B2 (en) * 2010-01-06 2015-02-03 Alcatel Lucent Computer security process monitor
US9501644B2 (en) * 2010-03-15 2016-11-22 F-Secure Oyj Malware protection
US8930589B2 (en) * 2010-08-26 2015-01-06 International Business Machines Corporation System, method and computer program product for monitoring memory access
RU2449348C1 (ru) * 2010-11-01 2012-04-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для антивирусной проверки на стороне сервера скачиваемых из сети данных
CA2743849C (en) * 2011-06-20 2019-03-05 Ibm Canada Limited - Ibm Canada Limitee Scalable group synthesis
US8849731B2 (en) * 2012-02-23 2014-09-30 Microsoft Corporation Content pre-fetching for computing devices
US9817742B2 (en) 2013-06-25 2017-11-14 Dell International L.L.C. Detecting hardware and software problems in remote systems
EP3570502B1 (en) * 2015-01-02 2021-08-04 Systech Corporation Control infrastructure
JP6513463B2 (ja) * 2015-04-17 2019-05-15 ルネサスエレクトロニクス株式会社 半導体集積回路
WO2017184157A1 (en) * 2016-04-22 2017-10-26 Hewlett-Packard Development Company, L.P. Determining the health of a storage drive

Also Published As

Publication number Publication date
GB2540949A (en) 2017-02-08
CN107924358B (zh) 2022-01-11
GB201513525D0 (en) 2015-09-16
US20180225188A1 (en) 2018-08-09
US10810098B2 (en) 2020-10-20
CN107924358A (zh) 2018-04-17
GB2540949B (en) 2019-01-30
WO2017021706A1 (en) 2017-02-09

Similar Documents

Publication Publication Date Title
US10282276B2 (en) Fingerprint-initiated trace extraction
US8473789B2 (en) Memory leak monitoring system and associated methods
CN111274583A (zh) 一种大数据计算机网络安全防护装置及其控制方法
US10341294B2 (en) Unauthorized communication detection system and unauthorized communication detection method
CN107276851B (zh) 一种节点的异常检测方法、装置、网络节点及控制台
US20200314130A1 (en) Attack detection device, attack detection method, and computer readable medium
CN111046011A (zh) 日志收集方法、系统、节点、电子设备及可读存储介质
CN111464513A (zh) 数据检测方法、装置、服务器及存储介质
CN106980572B (zh) 分布式系统的在线调试方法和系统
CN107491372A (zh) 一种针对Linux系统RPM包统计CPU占用率的方法及系统
US9654491B2 (en) Network filtering apparatus and filtering method
CN110647472A (zh) 崩溃信息统计方法、装置、计算机设备及存储介质
US8554908B2 (en) Device, method, and storage medium for detecting multiplexed relation of applications
CN114785567A (zh) 一种流量识别方法、装置、设备及介质
CN116324773A (zh) 用于保护智能合约免受攻击的方法和装置
CN108804914A (zh) 一种异常数据检测的方法及装置
US9916220B2 (en) Smart logging of trace data for storage systems
CN111654405B (zh) 通信链路的故障节点方法、装置、设备及存储介质
CN105825641A (zh) 一种业务报警方法和装置
KR20180035835A (ko) 확률적 프로세서 모니터링
JP2017199250A (ja) 計算機システム、データの分析方法、及び計算機
JP2017211806A (ja) 通信の監視方法、セキュリティ管理システム及びプログラム
JP2020004127A (ja) コンピュータ資産管理システムおよびコンピュータ資産管理方法
US11188378B2 (en) Management of control parameters in electronic systems
CN113076540B (zh) 一种攻击检测的方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
WITB Written withdrawal of application