KR20210102897A - 행동 위협 탐지를 위한 시스템 및 방법 - Google Patents
행동 위협 탐지를 위한 시스템 및 방법 Download PDFInfo
- Publication number
- KR20210102897A KR20210102897A KR1020217017510A KR20217017510A KR20210102897A KR 20210102897 A KR20210102897 A KR 20210102897A KR 1020217017510 A KR1020217017510 A KR 1020217017510A KR 20217017510 A KR20217017510 A KR 20217017510A KR 20210102897 A KR20210102897 A KR 20210102897A
- Authority
- KR
- South Korea
- Prior art keywords
- event
- target
- events
- client
- sequence
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Ultra Sonic Daignosis Equipment (AREA)
- Radar Systems Or Details Thereof (AREA)
Abstract
일부 실시예에서, 행동기반 컴퓨터 보안 시스템(behavioral computer security system)은 악성 소프트웨어 및 침입과 같은 위협에 대해 클라이언트 및 네트워크를 보호한다. 클라이언트 프로파일들의 세트는 클라이언트에서 발생하는 이벤트들의 훈련 코퍼스에 따라 구성되고, 이 때 각 클라이언트 프로파일은 보호되는 머신들의 서브세트를 나타내고, 각 클라이언트 프로파일은 클라이언트 개별 프로파일에 할당된 머신을 사용하는 정상 또는 기본 패턴을 나타낸다. 클라이언트 프로파일은 유사한 이벤트 통계를 가지는 머신들을 함께 그룹화 할 수 있다. 훈련 후, 클라이언트에서 탐지된 이벤트들은 비정상적인 행동을 탐지하기 위하여 상기 개별 클라이언트와 연관된 클라이언트 프로파일에 대해 선택적으로 분석된다. 일부 실시예에서, 개별 이벤트들은 다차원 이벤트 임베딩 공간을 사용하여 다른 이벤트들의 컨텍스트에서 분석된다.
Description
본 발명은 컴퓨터 보안 시스템 및 방법에 관한 것으로, 구체적으로 악성 소프트웨어 및/또는 컴퓨터 시스템 및/또는 통신 네트워크로의 침입을 탐지하기 위한 시스템 및 방법에 관한 것이다.
근래에는, 컴퓨터 및 네트워크 보안이 개인과 기업 모두에게 점점 더 중요해지고 있다. 전자 통신 기술의 급속한 발전, 일상 활동에서 소프트웨어에 대한 의존도 증가, 및 사물 인터넷(Internet of Things)의 출현으로 기업과 개인이 프라이버시의 상실 및 데이터 도용에 취약해졌다.
숙련된 공격자는 다양한 기술을 사용하여, 예를 들면 악성 소프트웨어에 의해 회사 컴퓨터에 설치된 백도어를 사용하여, 회사 네트워크에 침투하려고 시도할 수 있다. 그러고 나서 공격자는 민감한 정보에 대한 액세스 권한을 얻거나, 민감한 정보를 수정 또는 파괴할 수 있다. 다른 예시적인 공격은 특히, 물리적 보안 시스템(예를 들어, 도난 경보기)을 불능화시키거나 그렇지 않으면 무력화시키는 것, 스파이 소프트웨어를 설치하는 것, 그리고 상품 및 서비스의 제조 또는 유통을 제어하는 자동화 시스템(예를 들어, 전력망(power grid))을 방해하는 것을 포함한다.
컴퓨터 시스템 상에서 실행되는 소프트웨어는 인가받지 않은 침입 및 기타 악성 활동을 자동으로 탐지 및/또는 방지하는데 사용될 수 있다. 일반적으로 침입 탐지 시스템(intrusion detection system, IDS)으로 알려진 이러한 소프트웨어는 비정상적인 이벤트 또는 정책 위반에 대하여 네트워크 및/또는 컴퓨터 활동을 모니터링 할 수 있다. 일반적인 IDS는 관찰된 이벤트와 관련된 정보를 기록하고, 사용자 또는 네트워크 관리자에게 통지하고, 보고서를 생성한다. 일부 IDS는, 예를 들어 침입 탐지에 대한 응답으로 보안 설정을 변경함으로써(예컨대, 방화벽 재구성), 침입자가 악의적인 활동을 수행하는 것을 추가적으로 방지할 수 있다.
그러나, 소프트웨어 서비스는 점진적으로 탈지역화되고 정보 네트워크를 통해 흐르는 데이터의 양은 증가하고 있기 때문에, 보안 소프트웨어가 악의적인 활동의 지표에 대해 이러한 방대한 양의 정보를 면밀히 조사하는 것은 점점 더 실행하기 어렵게 되고 있다.
따라서, 보다 강력하고 가변형(scalable)의 침입 탐지 시스템 및 방법을 개발하는데 상당한 관심이 있다.
본 발명의 일 태양에 따르면, 본 발명의 서버 컴퓨터 시스템은, 타겟 클라이언트 시스템에서의 타겟 이벤트의 발생의 표시를 수신하는 것에 응답으로, 상기 타겟 이벤트를 포함하는 이벤트 시퀀스를 조립(assemble)하도록 구성된 적어도 하나의 하드웨어 프로세서를 포함하는데, 상기 이벤트 시퀀스의 모든 이벤트는 상기 타겟 클라이언트 시스템에서 발생한 것이고, 상기 이벤트 시퀀스의 구성원은 상기 이벤트 시퀀스의 각 이벤트의 발생 시간에 따라 배열된다. 상기 적어도 하나의 하드웨어 프로세서는, 상기 표시를 수신하는 것에 응답으로, 상기 타겟 클라이언트 시스템에 따라 복수의 파라미터 값들로부터 파라미터 값을 선택하도록, 그리고 행동 모델(behavior model)을 상기 파라미터 값으로 인스턴스화(instantiate)하도록 추가로 구성되는데, 상기 행동 모델은 상기 이벤트 시퀀스의 선택된 이벤트를 입력하도록 그리고 응답으로, 상기 이벤트 시퀀스가 상기 타겟 이벤트를 포함할 가능성을 나타내는 예측 표시자를 생성하도록 구성된다. 상기 적어도 하나의 하드웨어 프로세서는, 상기 행동 모델을 인스턴스화하는 것에 응답으로, 상기 예측 표시자에 따라 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 추가로 구성된다. 상기 복수의 파라미터 값들은 복수의 클라이언트 클러스터로 그룹화되는 복수의 클라이언트 시스템에서 발생한 이벤트의 훈련 코퍼스에 따라 결정된다. 상기 복수의 파라미터 값들의 각각은 상기 훈련 코퍼스의 특징적인 서브세트(distinct subset)에 따라서 결정되는데, 각각의 특징적인 서브세트는 복수의 클라이언트 클러스터의 특징적인 클러스터의 구성원에서 발생한다. 상기 파라미터 값을 선택하는 것은 상기 타겟 클라이언트 시스템에 따라 복수의 클라이언트 클러스터로부터 타겟 클러스터를 선택하는 것, 및 상기 타겟 클러스터에 따라 상기 파라미터 값을 선택하는 것을 포함한다.
본 발명의 다른 태양에 따르면, 본 발명의 컴퓨터로 구현되는 방법(computer-implemented method)은, 타겟 클라이언트 시스템에서의 타겟 이벤트의 발생의 표시를 수신하는 것에 응답으로, 상기 타겟 이벤트를 포함하는 이벤트 시퀀스를 조립하기 위하여 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 포함하는데, 상기 이벤트 시퀀스의 모든 이벤트는 상기 타겟 클라이언트 시스템에서 발생한 것이고, 상기 이벤트 시퀀스의 구성원은 상기 이벤트 시퀀스의 각 이벤트의 발생 시간에 따라 배열된다. 상기 방법은, 상기 표시를 수신하는 것에 응답으로, 상기 타겟 클라이언트 시스템에 따라 복수의 파라미터 값들로부터 파라미터 값을 선택하기 위하여 상기 컴퓨터 시스템의 적어도 하나의 프로세서를 채용하는 것을 추가로 포함한다. 상기 방법은, 상기 세트 파라미터 값을 선택하는 것에 응답으로, 행동 모델을 상기 파라미터 값으로 인스턴스화하기 위하여 상기 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가로 포함하는데, 상기 행동 모델은 상기 이벤트 시퀀스의 선택된 이벤트를 입력하도록 그리고 응답으로, 상기 이벤트 시퀀스가 상기 타겟 이벤트를 포함할 가능성을 나타내는 예측 표시자를 생성하도록 구성된다. 상기 방법은, 상기 행동 모델을 인스턴스화하는 것에 응답으로, 상기 예측 표시자에 따라 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하기 위하여 상기 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가로 포함한다. 상기 복수의 파라미터 값들은 복수의 클라이언트 클러스터로 그룹화되는 복수의 클라이언트 시스템에서 발생한 이벤트의 훈련 코퍼스에 따라 결정된다. 상기 복수의 파라미터 값들의 각각은 상기 훈련 코퍼스의 특징적인 서브세트에 따라서 결정되는데, 각각의 특징적인 서브세트는 복수의 클라이언트 클러스터의 특징적인 클러스터의 구성원에서 발생한다. 상기 파라미터 값을 선택하는 것은 상기 타겟 클라이언트 시스템에 따라 복수의 클라이언트 클러스터로부터 타겟 클러스터를 선택하는 것, 및 상기 타겟 클러스터에 따라 상기 파라미터 값을 선택하는 것을 포함한다.
본 발명의 또 다른 태양에 따르면, 본 발명의 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)는, 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서에 의하여 실행될 때, 상기 컴퓨터 시스템으로 하여금 타겟 클라이언트 시스템에서의 타겟 이벤트의 발생의 표시를 수신하는 것에 응답으로, 상기 타겟 이벤트를 포함하는 이벤트 시퀀스를 조립하도록 하는 명령들을 저장하는데, 상기 이벤트 시퀀스의 모든 이벤트는 상기 타겟 클라이언트 시스템에서 발생한 것이고, 상기 이벤트 시퀀스의 구성원은 상기 이벤트 시퀀스의 각 이벤트의 발생 시간에 따라 배열된다. 상기 명령들은 추가로 상기 컴퓨터 시스템으로 하여금 상기 표시를 수신하는 것에 응답으로, 상기 타겟 클라이언트 시스템에 따라 복수의 파라미터 값들로부터 파라미터 값을 선택하도록 하고, 그리고 상기 파라미터 값을 선택하는 것에 응답으로, 행동 모델을 상기 파라미터 값으로 인스턴스화하도록 하는데, 상기 행동 모델은 상기 이벤트 시퀀스의 선택된 이벤트를 입력하도록 그리고 응답으로, 상기 이벤트 시퀀스가 상기 타겟 이벤트를 포함할 가능성을 나타내는 예측 표시자를 생성하도록 구성된다. 상기 명령들은 추가로 상기 컴퓨터 시스템으로 하여금 상기 행동 모델을 인스턴스화하는 것에 응답으로, 상기 예측 표시자에 따라 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 한다. 상기 복수의 파라미터 값들은 복수의 클라이언트 클러스터로 그룹화되는 복수의 클라이언트 시스템에서 발생한 이벤트의 훈련 코퍼스에 따라 결정된다. 상기 복수의 파라미터 값들의 각각은 상기 훈련 코퍼스의 특징적인 서브세트에 따라서 결정되는데, 각각의 특징적인 서브세트는 복수의 클라이언트 클러스터의 특징적인 클러스터의 구성원에서 발생한다. 상기 파라미터 값을 선택하는 것은 상기 타겟 클라이언트 시스템에 따라 복수의 클라이언트 클러스터로부터 타겟 클러스터를 선택하는 것, 및 상기 타겟 클러스터에 따라 상기 파라미터 값을 선택하는 것을 포함한다.
본 발명의 전술한 태양들 및 장점은 후술하는 상세한 설명 및 도면을 참조로 이해하면 더욱 잘 이해될 것이다.
도 1은 본 발명의 일부 실시예에 따른 침입 탐지 시스템으로서 작동하는 보안 서버와, 몇몇의 예시적인 상호 연결된 클라이언트 시스템을 보여주는 도면.
도 2는 본 발명의 일부 실시예에 따른 클라이언트 시스템을 보호하기 위하여 수행되는 예시적인 데이터 교환을 보여주는 도면.
도 3a는 본 발명의 일부 실시예에 따른 클라이언트 시스템의 예시적인 하드웨어 구성을 보여주는 도면.
도 3b는 본 발명의 일부 실시예에 따른 보안 서버의 예시적인 하드웨어 구성을 보여주는 도면.
도 4는 본 발명의 일부 실시예에 따른 보호된 클라이언트 시스템에서 실행되는 예시적인 소프트웨어 구성요소를 보여주는 도면.
도 5는 본 발명의 일부 실시예에 따른 보안 서버의 예시적인 소프트웨어 아키텍처(architecture)를 보여주는 도면.
도 6은 본 발명의 일부 실시예에 따른 프로파일링 엔진의 예시적인 작동(operation)을 보여주는 도면.
도 7은 본 발명의 일부 실시예에 따른 프로파일링 엔진에 의해 수행되는 단계들의 예시적인 시퀀스를 보여주는 도면.
도 8a는 본 발명의 일부 실시예에 따른 이벤트 인코더(event encoder)의 예시적인 훈련을 보여주는 도면.
도 8b는 본 발명의 일부 실시예에 따른 이벤트 인코더의 다른 예시적인 훈련을 보여주는 도면.
도 9는 도 8a의 구성에서 이벤트 디코더(event decoder)를 훈련시키기 위하여 수행되는 단계들의 예시적인 시퀀스 보여주는 도면.
도 10은 본 발명의 일부 실시예에 따른 예시적인 이벤트 임베딩 공간 및 예시적인 이벤트 클러스트(event cluster)들의 세트를 보여주는 도면.
도 11은 본 발명의 일부 실시예에 따른 예시적인 클라이언트 프로파일 공간 및 클라이언트 클러스터들의 세트를 보여주는 도면.
도 12는 본 발명의 일부 실시예에 따른 클라이언트 시스템의 예시적인 이벤트 프로파일을 보여주는 도면.
도 13은 본 발명의 일부 실시예에 따른 이상 탐지기의 예시적인 구성요소 및 작동을 보여주는 도면.
도 14는 본 발명의 일부 실시예에 따른, 훈련 중에 이상 탐지기에 의해 수행되는 단계들의 예시적인 시퀀스를 보여주는 도면.
도 15는 본 발명의 일부 실시예에 따른 이상 탐지기의 일부를 형성하는 행동 모델의 예시적인 구성요소를 보여주는 도면.
도 16은 본 발명의 일부 실시예에 따른 훈련된 이상 탐지기에 의해 수행되는 단계들의 예시적인 시퀀스를 보여주는 도면.
도 17a는 실제 컴퓨터 보안 위협을 탐지하기 위하여 본 발명의 일부 실시예를 채용하는 것을 포함하는 실험의 결과를 보여주는 도면.
도 17b는 실제 컴퓨터 보안 위협을 탐지하기 위하여 일부 실시예를 사용한 다른 실험 결과를 보여주는 도면.
도 1은 본 발명의 일부 실시예에 따른 침입 탐지 시스템으로서 작동하는 보안 서버와, 몇몇의 예시적인 상호 연결된 클라이언트 시스템을 보여주는 도면.
도 2는 본 발명의 일부 실시예에 따른 클라이언트 시스템을 보호하기 위하여 수행되는 예시적인 데이터 교환을 보여주는 도면.
도 3a는 본 발명의 일부 실시예에 따른 클라이언트 시스템의 예시적인 하드웨어 구성을 보여주는 도면.
도 3b는 본 발명의 일부 실시예에 따른 보안 서버의 예시적인 하드웨어 구성을 보여주는 도면.
도 4는 본 발명의 일부 실시예에 따른 보호된 클라이언트 시스템에서 실행되는 예시적인 소프트웨어 구성요소를 보여주는 도면.
도 5는 본 발명의 일부 실시예에 따른 보안 서버의 예시적인 소프트웨어 아키텍처(architecture)를 보여주는 도면.
도 6은 본 발명의 일부 실시예에 따른 프로파일링 엔진의 예시적인 작동(operation)을 보여주는 도면.
도 7은 본 발명의 일부 실시예에 따른 프로파일링 엔진에 의해 수행되는 단계들의 예시적인 시퀀스를 보여주는 도면.
도 8a는 본 발명의 일부 실시예에 따른 이벤트 인코더(event encoder)의 예시적인 훈련을 보여주는 도면.
도 8b는 본 발명의 일부 실시예에 따른 이벤트 인코더의 다른 예시적인 훈련을 보여주는 도면.
도 9는 도 8a의 구성에서 이벤트 디코더(event decoder)를 훈련시키기 위하여 수행되는 단계들의 예시적인 시퀀스 보여주는 도면.
도 10은 본 발명의 일부 실시예에 따른 예시적인 이벤트 임베딩 공간 및 예시적인 이벤트 클러스트(event cluster)들의 세트를 보여주는 도면.
도 11은 본 발명의 일부 실시예에 따른 예시적인 클라이언트 프로파일 공간 및 클라이언트 클러스터들의 세트를 보여주는 도면.
도 12는 본 발명의 일부 실시예에 따른 클라이언트 시스템의 예시적인 이벤트 프로파일을 보여주는 도면.
도 13은 본 발명의 일부 실시예에 따른 이상 탐지기의 예시적인 구성요소 및 작동을 보여주는 도면.
도 14는 본 발명의 일부 실시예에 따른, 훈련 중에 이상 탐지기에 의해 수행되는 단계들의 예시적인 시퀀스를 보여주는 도면.
도 15는 본 발명의 일부 실시예에 따른 이상 탐지기의 일부를 형성하는 행동 모델의 예시적인 구성요소를 보여주는 도면.
도 16은 본 발명의 일부 실시예에 따른 훈련된 이상 탐지기에 의해 수행되는 단계들의 예시적인 시퀀스를 보여주는 도면.
도 17a는 실제 컴퓨터 보안 위협을 탐지하기 위하여 본 발명의 일부 실시예를 채용하는 것을 포함하는 실험의 결과를 보여주는 도면.
도 17b는 실제 컴퓨터 보안 위협을 탐지하기 위하여 일부 실시예를 사용한 다른 실험 결과를 보여주는 도면.
이하의 설명에서, 구조들 사이에서 언급된 모든 연결들은 직접적인 동작 연결들(operative connections) 또는 매개 구조들을 통한 간접적인 동작 연결들일 수 있는 것으로 이해된다. 구성 요소들의 세트는 하나 이상의 구성 요소를 포함한다. 구성 요소의 임의의 열거는 적어도 하나의 구성 요소를 언급하는 것으로 이해된다. 복수의 구성 요소는 적어도 2개의 구성 요소를 포함한다. 달리 구체화되지 않는다면, "또는(or)"의 임의의 사용은 다른 구성을 "배제하지 않는 또는(non-exclusive or)"을 의미한다. 달리 요구되지 않는다면, 기술된 어떠한 방법 단계들도 설명된 특정 순서로 반드시 실행될 필요는 없다. 제2 구성 요소로부터 유도되는 제1 구성 요소(예컨대, 데이터)는 제2 구성 요소와 동일한 제1 구성 요소는 물론, 제2 구성 요소 그리고 선택적으로는 다른 데이터를 처리하는 것에 의해 생성된 제1 구성 요소를 포함한다. 파라미터에 따라 결정 또는 판정하는 것은 파라미터에 따라 그리고 선택적으로는 다른 데이터에 따라 결정 또는 판정하는 것을 포함한다. 달리 구체화되지 않는다면, 일부 수량/데이터의 표시자는 수량/데이터 그 자체, 또는 수량/데이터 그 자체와 상이한 표시자일 수 있다. 컴퓨터 프로그램은 과업을 수행하는 프로세서 명령들의 시퀀스이다. 본 발명의 일부 실시예들에서 설명되는 컴퓨터 프로그램들은 독립형 소프트웨어 개체들 또는 다른 컴퓨터 프로그램들의 서브-개체들(예를 들어, 서브루틴들, 라이브러리들)일 수 있다. 달리 구체화되지 않는다면, 컴퓨터 보안은 불법적인 액세스, 수정 및/또는 파괴로부터 장치와 데이터를 보호하는 것을 포함한다. 컴퓨터 판독 가능 매체는 자성, 광, 및 반도체 저장 매체와 같은 비-일시적 매체(non-transitory medium)(예컨대, 하드 드라이브, 광 디스크, 플래시 메모리, DRAM)는 물론, 전도성 케이블 및 파이버 옵틱 링크와 같은 통신 링크들을 포함한다. 일부 실시예들에 따르면, 본 발명은, 그 중에서도, 본원에 설명된 방법들을 수행하기 위해 프로그래밍된 하드웨어(예컨대, 하나 이상의 프로세서들)는 물론, 본원에서 설명된 방법들을 수행하기 위한 명령들을 인코딩하는 컴퓨터-판독 가능 매체를 포함하는 컴퓨터 시스템을 제공한다.
후술하는 설명은 본 발명의 실시예들을 예시적으로 설명하는 것이며, 반드시 제한적인 것은 아니다.
도 1은 본 발명의 일부 실시예에 따른 컴퓨터 보안 위협으로부터 보호된 클라이언트 시스템들(10a-h)의 예시적인 세트를 보여준다. 클라이언트 시스템들(10a-h)은 총칭적으로 프로세서, 메모리, 및 통신 인터페이스를 가지는 임의의 전자 장치를 나타낸다. 예시적인 클라이언트 시스템들(10a-h)은 특히 개인용 컴퓨터, 랩탑, 태블릿 컴퓨터, 모바일 통신 장치(mobile telecommunication device)(예를 들어서, 스마트폰), 미디어 플레이어, TV, 게임 컨솔, 홈 어플라이언스(예를 들어서, 냉장고, 인텔리전트 난방 및/또는 조명 시스템), 및 웨어러블 장치들(예를 들어서, 스마트워치, 피트니스 장비)을 포함한다. 클라이언트 시스템들(10a-h)은 다양한 소프트웨어, 예컨대 특히 문서 처리, 게이밍, 전자 메시징, 및 소셜 미디어 어플리케이션을 실행할 수 있다. 일부 클라이언트는 원격 콘텐트 서버(17)와, 예를 들어 인터넷 브라우징과, 정보를 교환할 수 있다.
도시된 클라이언트 시스템들은 로컬 네트워크들(12a-b)에 의해 연결되고, 광역 네트워크(wide area network, WAN) 또는 인터넷과 같은 확장 네트워크(extended network)(14)에 추가적으로 연결된다. 일 예에서, 클라이언트 시스템들(10a-d)은 홈 네트워크(12a)에 의해 상호 연결된, 가족의 전자 장치들을 나타낸다. 한편, 클라이언트 시스템들(10e-g)은 사무실 건물 내부의 개별 컴퓨터들 및/또는 기업 메인 프레임을 나타낼 수 있다. 그리고 로컬 네트워크(12b)는 기업 네트워크(예를 들어, 근거리 통신망(local area network, LAN)의 한 부분을 나타낼 수 있다.
라우터는 다수의 클라이언트 시스템들 사이의 통신 및/또는 확장 네트워크(14)에 대한 개별 클라이언트들의 액세스를 가능하게 하는 전자 기기를 포함한다. 도 1의 예에서, 라우터들(15a-b)은 로컬 네트워크들(12a-b) 상에서 클라이언트들을 상호 연결하거나 그리고/또는 클라이언트들(10a-g)이 인터넷에 액세스 할 수 있게 한다. 라우터들(15a-b)은 각각의 로컬 네트워크들(12a-b)과 확장 네트워크(14) 사이에서 게이트웨이(gateway)로서 작동할 수 있고, 클라이언트 시스템들(10a-g)에게 네트워크 서비스들의 세트를 추가로 제공할 수 있다. 이러한 서비스들에는, 예를 들어 클라이언트 시스템들(10a-g)에게 네트워크 구성 파라미터를 배포하는 것(예컨대, 동적 호스트 설정 규약(Dynamic Host Configuration Protocol, DHCP)을 통한 네트워크 주소 할당), 및 네트워크 노드들의 시퀀스를 통해 통신을 라우팅하는 것이 포함된다. 예시적인 클라이언트 시스템(10h)과 같은 일부 클라이언트 시스템들은, 예를 들어 전기통신 중계(telecommunication relay)를 통해, 확장 네트워크(14)에 직접 연결될 수 있다.
도 1은 확장 네트워크(14)에 연결된 보안 서버(16)를 추가로 보여준다. 서버(16)는 총칭적으로 서로 물리적으로 근접할 수 있거나 그렇지 않은 통신 가능하게 연결된 컴퓨터 시스템들의 세트를 나타낸다. 서버(16)는 악성 소프트웨어 및 침입과 같은 컴퓨터 보안 위협들에 대해서 클라이언트 시스템들(10a-h)을 보호한다. 일부 실시예에서, 이러한 보호는 클라이언트 시스템에서 발생하는 의심스러운 활동, 예를 들어 개별 클라이언트 시스템을 제어하는 공격자의 행위를 탐지하는 것을 포함한다.
보안 서버(16)와 클라이언트 시스템(10) 사이의 예시적인 데이터 교환은 도 2에 도시된다. 클라이언트 시스템(10)은 도 1에서 임의의 클라이언트(10a-h)를 나타낼 수 있다. 일부 실시예에서, 서버(16)는 클라이언트 시스템(10)으로부터 이벤트 표시자(event indicator)(20a)를 수신하도록 구성되고, 표시자(20a)는 클라이언트(10)에서 소프트웨어의 실행 중에 특정 유형의 이벤트의 발생을 나타낸다. 이러한 이벤트들의 예로는 특히, 프로세스/스레드의 개시(launch)(예컨대, 사용자가 어플리케이션을 개시함, 부모 프로세스가 자식 프로세스를 생성함 등), 개별 클라이언트 시스템의 입력 장치에 액세스하려는 시도(예컨대, 카메라, 마이크), 로컬 또는 원격 네트워크 리소스에 액세스하려는 시도(예컨대, 특정 URL에 액세스하려는 하이퍼텍스트 전송 규약(hypertext transfer protocol, HTTP) 요청, 로컬 네트워크 상에서 문서 저장소에 액세스 하려는 시도), 특정한 통합 자원 식별자 스킴(uniform resource identifier scheme)으로 형성된 요청(예컨대, mailto: 또는 ftp: 요청), 특정 프로세서 명령의 실행(예컨대, 시스템 호출), 라이브러리를 로드하려는 시도(예컨대, DLL(dynamic linked library)), 새로운 디스크 파일을 생성하려는 시도, 디스크의 특정 위치에서 읽거나 쓰려는 시도(예컨대, 기존 파일을 덮어쓰기 하려는 시도, 특정 폴더 또는 문서를 열려는 시도), 및 전자 메시지를 전송하려는 시도(예컨대, 이메일, 단문 메시지 서비스(short message service, SMS) 등)가 포함된다. 일부 실시예에서, 비활성 기간, 즉 이벤트 사이의 시간 간격(time gap) 및/또는 개별 클라이언트 시스템이 유휴 상태이거나, 사용자 활동이 등록되지 않거나, 또는 내부 시스템 작업만을 수행하는 경우의 시간 인터벌(time interval) 또한 이벤트로서 자격을 가지며, 이벤트 표시자를 통해 보안 서버에 보고될 수 있다. 이러한 비활성 기간은 짧은 시간 간격(예를 들어, 몇 초 정도) 및 긴 시간 간격(예를 들어, 몇 분 내지 몇 시간 정도)으로 더 구분될 수 있다. 탐지된 이벤트는 그 자체로 악성을 나타낼 수도 있고, 그렇지 않을 수도 있고; 일부 이벤트는 다른 이벤트와 함께 발생할 때 그리고/또는 특정 시퀀스에서 발생할 때 악성을 나타낼 수 있다. 다른 이벤트는 이들이 하루 중 특정 시간에 발생하거나 또는 비정상적인 빈도로 발생할 때, 예를 들어 몇 초의 인터벌로 특정 디스크 폴더에서 1000회 읽기 시퀀스가 발생할 때, 악성일 수 있다.
각각의 이벤트 표시자(20a)는 특히 개별 이벤트 유형의 표시자 및 개별 이벤트가 발생한 시점을 나타내는 타임스탬프를 포함할 수 있다. 이벤트 표시자(20a)는 개별 클라이언트 시스템의 식별자(클라이언트 ID) 및/또는 개별 클라이언트 시스템을 현재 작동시키는 사용자의 표시자(사용자 ID)를 추가로 포함할 수 있다. 예를 들어, 통신된 이벤트가 프로세스 생성을 포함하는 경우, 사용자 표시자는 부모 프로세스의 소유자를 나타낼 수 있다. 이벤트 표시자(20a)는 프로세스 이름, 개시되는 프로세스의 파일 시스템 위치/경로, 네트워크 주소(예컨대, 인터넷 프로토콜(Internet protocol, IP) 주소), HTTP 요청의 URL(universal resource locator) 등과 같은 다른 파라미터들을 인코딩할 수 있다.
일부 실시예에서, 서버(16)는 또한 도 2에서 이벤트 표시자(20b)로 도시된 바와 같이, 라우터들(15a-b)로부터 정보를 수확할 수 있다. 이러한 이벤트 표시자는 예를 들어, 개별 라우터/게이트웨이에 연결된 클라이언트 시스템에 의해 발행된 네트워크 액세스 요청과 같은 네트워크 이벤트의 표시자를 포함할 수 있다. 예를 들어, 이벤트 표시자(20b)는 발신 IP 주소(originating IP address), 목적지 IP 주소(destination IP address), 타임스탬프, 및 페이로드 크기를 포함할 수 있다. 일부 실시예에서, 이벤트 표시자(20b)는 다양한 데이터 프로세싱 프로토콜(예컨대, 네트워크 플로우(network flow), 네트워크 로그 등)에 따라 개별 라우터에 의해 집계된 클라이언트 이벤트 데이터를 포함한다.
보안 서버(16)는 클라이언트 시스템들(10a-h)의 서브세트를 운영하는 기본적인(baseline), 정상적인, 및/또는 합법적인 방식을 나타내는 사용자 행동 모델들의 세트를 유지한다. 이러한 행동 모델은 본 명세서에서 클라이언트 프로파일로 간주된다. 이러한 행동 모델의 파라미터들은 도 1에서 프로파일 데이터베이스(19)로 총칭적으로 표시되고, 이하에서 상술되는 바와 같이 이벤트 및/또는 클라이언트 클러스터링 알고리즘의 출력을 포함할 수 있다. 프로파일이 클라이언트 또는 이벤트 클러스터에 의해 표현되는 하나의 예시적인 실시예에서, 개별 프로파일의 파라미터들은 클러스터 중심(cluster centroid)의 좌표 및 다양한 축을 따라 개별 클러스터의 범위를 나타내는 숫자들의 세트를 포함할 수 있다. 다른 프로파일 파라미터들은 특히 개별 클러스터의 이심률 측정치(eccentricity measure), 및 클러스터 구성원들과 클러스터 중심 사이의 평균 거리를 특히 포함할 수 있다. 클라이언트 프로파일은 아래에 나타낸 바와 같이 지도 또는 비지도 학습 방법 및 알고리즘을 사용하여 자동으로 생성될 수 있다.
클라이언트 프로파일은 단일 사용자의 행동을 캡쳐하거나 또는 다수의 사용자의 행동을 집합적으로 캡쳐할 수 있다. 일부 예시를 제공하기 위하여, 스마트폰은 주로 단일 사용자에 의해 사용될 수 있으므로, 개별 스마트폰에 부속된(attached) 클라이언트 프로파일은 기본적으로 이의 주사용자(primary user)의 기본 행동을 캡쳐할 수 있다. 그에 반해서, 대학 컴퓨터실에 속한 컴퓨터들은 여러 다른 학생들에 의해 사용될 수 있고, 이러한 머신(컴퓨터)들 중 하나에 부속된 클라이언트 프로파일은 모든 개별 학생들의 기본 행동을 집합적으로 나타낼 수 있다. 하나의 클라이언트 프로파일은 단일 클라이언트 시스템/물리적 머신(예를 들어, 스마트폰, 랩탑)에 부속될 수 있다. 일부 실시예에서, 하나의 클라이언트 프로파일은 복수의 물리적 머신을 집합적으로 나타낼 수 있다. 그러한 일 예에서, 도 1의 클라이언트 시스템들(10a-d)은 특정 가족 구성원의 정상 또는 기본 행동을 캡쳐하는 단일 클라이언트 프로파일에 의해 집합적으로 표현될 수 있다. 다른 예에서, 하나의 클라이언트 프로파일은 기업의 회계 부서 내 모든 컴퓨터들을 나타내는데 사용되는 반면, 또 다른 클라이언트 프로파일은 각각의 기업의 연구 및 개발팀에 의해 사용되는 모든 컴퓨터들을 나타낸다. 물리적 머신이 다양한 분산 사용자들을 위해 복수의 가상 머신을 실행할 수 있는 가상 데스크탑 인프라(Virtual Desktop Infrastructure, VDI) 환경과 같은 클라우드 컴퓨팅 실시예에서, 하나의 클라이언트 프로파일은 개별 물리적 머신에서 실행되는 다수의 가상 머신에 부속될 수 있다.
일부 실시예에서, 단일 사용자는 복수의 특징적인(distinct) 클라이언트 프로파일들에 의해 표현될 수 있다. 예를 들어서, 동일한 사람이 직장에 있는 동안 하나의 클라이언트 프로파일/기본 행동을 가지고, 집에 있는 동안 특징적인 클라이언트 프로파일/기본 행동을 가질 수 있다. 클라이언트 프로파일의 다른 예는 특정 연령 그룹(예: 10대), 특정 개인 관심사(예: 게임), 특정 직업(예: 엔지니어, 아티스트, 교육자) 등의 사용자와 연관될 수 있다. 또 다른 예시적인 실시예에서, 특징적인 클라이언트 프로파일은 특징적인 컴퓨터 활동, 예를 들어 특징적인 컴퓨터 프로그램을 사용하는 것: 인터넷 브라우징, 소셜 미디어 사용, 사무 작업 활동 등에 대응할 수 있다. 또 다른 예시적인 클라이언트 프로파일은 특징적인 장치 유형(예를 들어 스마트폰 vs. PC)에 부속될 수 있다. 집합적인 프로파일은, 예를 들면 회사 X의 엔지니어가 인터넷을 브라우징하는 일반적인/기본 방식을 나타내는 클라이언트 프로파일과 같이, 더 복잡한 기준에 따라 고안될 수 있다. 이러한 또 다른 예시적인 프로파일은 젊은이들이 태블릿 컴퓨터를 사용하는 전형적인 방식을 나타낼 수 있다.
이벤트 표시자들(20a-b)의 서브세트는 이하에 상세히 나타낸 바와 같이 클라이언트 프로파일을 도출하기 위하여 추가로 사용되는 이벤트 코퍼스를 형성하기 위해 수집될 수 있다. 이벤트 표시자들의 다른 서브세트는 보안 위협을 탐지하는데 사용될 수 있다. 예를 들어, 이벤트 표시자들(20a-b)을 수신하는 것에 응답으로, 보안 서버(16)는 개별 이벤트 표시자에 의해 통신된 이벤트가 개별 클라이언트 표시자에 따라 선택된 클라이언트 프로파일과 일치하는지 여부를 결정할 수 있다. 달리 말하면, 보안 서버(16)는 개별 이벤트가 개별 클라이언트 프로파일에 인코딩 된 정상/기본 행동의 패턴과 매칭되는지 여부를 결정할 수 있다. 아닌 경우, 상기 개별 이벤트는 의심스러운 활동을 나타낼 수 있고, 이 경우 일부 실시예는 예를 들어 보안 경고들(22a-b)을 개별 클라이언트 시스템에 그리고/또는 개별 클라이언트 시스템의 관리자에게 전송하는 것과 같은 보호 조치를 취할 수 있다. 보호 조치의 다른 예에서, 일부 실시예는 의심스러운 클라이언트 시스템과 동일한 로컬 네트워크에 속하는 라우터로 하여금 의심스러운 개별 클라이언트 시스템으로의 그리고/또는 의심스러운 개별 클라이언트 시스템으로부터의 통신을 차단하도록 지시한다. 클라이언트 프로파일 및 보안 서버(16)에 의한 이벤트 표시자의 프로세싱은 이하에서 상술된다.
도 3a는 본 발명의 일부 실시예에 따른 클라이언트 시스템의 예시적인 하드웨어 구성을 보여준다. 클라이언트 시스템(10)은 도 1의 클라이언트 시스템들(10a-h) 중 임의의 것을 나타낼 수 있다. 명료성을 위하여, 도시된 클라이언트 시스템은 컴퓨터 시스템이다. 모바일 전화기, 태블릿 컴퓨터, 및 웨어러블 장치와 같은 다른 클라이언트 시스템은 약간 다른 구성을 가질 수 있다. 프로세서(32)는 신호 및/또는 데이터의 세트로 산술 및/또는 논리 연산을 실행하도록 구성된 물리적 장치(예컨대, 반도체 기판에 형성된 멀티-코어 집적 회로, 마이크로프로세서)를 포함한다. 그러한 신호 또는 데이터는 프로세서 명령의 형태로, 예를 들어서, 머신 코드로, 인코딩되고 프로세서(32)에 전달될 수 있다. 메모리 유닛(34)은 연산들을 실행하는 과정에서 프로세서(32)에 의해 액세스되거나 생성되는 데이터/신호들을 저장하는 휘발성 컴퓨터-판독 가능 매체(예컨대, 동적 랜덤 액세스 메모리(dynamic random-access memory, DRAM))를 포함할 수 있다.
입력 장치(36)는 사용자가 클라이언트 시스템(10)으로 데이터 및/또는 명령들을 도입할 수 있게 하는 개별 하드웨어 인터페이스 및/또는 어댑터를 포함하는, 특히 컴퓨터 키보드, 마우스, 및 마이크를 포함할 수 있다. 출력 장치(38)는 특히 모니터와 같은 디스플레이 장치 및 스피커는 물론, 개별 클라이언트 시스템이 사용자에게 데이터를 통신하게 할 수 있는 그래픽 카드와 같은 하드웨어 인터페이스/어댑터를 포함할 수 있다. 일부 실시예들에서, 입력 장치(36)와 출력 장치(38)는 하드웨어의 공통적인 부품을 공유할 수 있다(예: 터치 스크린). 저장 장치(42)는 소프트웨어 명령들 및/또는 데이터의 비휘발성 저장, 판독, 및 기록을 가능하게 하는 컴퓨터-판독 가능 매체를 포함한다. 예시적인 저장 장치는 자성 및 광 디스크들 및 플래시 메모리 장치들은 물론, CD 및/또는 DVD 디스크들 및 드라이브들과 같은 소거 가능 매체를 포함한다. 네트워크 어댑터(44)들은 클라이언트 시스템(10)이 전자 통신 네트워크(예컨대, 도 1에서 네트워크들(12, 14))에 연결될 수 있게 하거나, 그리고/또는 다른 장치들/컴퓨터 시스템들에 연결될 수 있게 한다.
컨트롤러 허브(40)는 프로세서(32)와 클라이언트 시스템(10)의 나머지 하드웨어 구성요소들 사이의 통신을 가능하게 하는 복수의 시스템, 주변, 및/또는 칩셋 버스들, 및/또는 다른 모든 회로망을 총칭적으로 나타낸다. 예를 들어, 컨트롤러 허브(40)는 메모리 컨트롤러, 입력/출력(I/O) 컨트롤러, 및 인터럽트 컨트롤러(interrupt controller)를 포함할 수 있다. 하드웨어 제조사에 따라서, 일부 이러한 컨트롤러들은 단일 집적 회로로 통합될 수 있고, 그리고/또는 프로세서와 통합될 수 있다. 다른 예에서, 컨트롤러 허브(40)는 프로세서(32)를 메모리(34)에 연결시키는 노스브리지(northbridge) 및/또는 프로세서(32)를 장치들(36, 38, 42 및 44)에 연결시키는 사우스브리지(southbridge)를 포함할 수 있다.
도 3b는 본 발명의 일부 실시예에 따른 보안 서버(16)의 예시적인 하드웨어 구성을 보여준다. 서버(16)는 적어도 하나의 하드웨어 프로세서(132)(예: 마이크로프로세서, 멀티 코어 집적 회로), 물리적 메모리(134)(예: DRAM), 서버 저장 장치(142), 및 서버 네트워크 어댑터(들)(144)의 세트를 포함한다. 서버 프로세서(132)는 중앙 처리 장치(central processing unit, CPU) 및/또는 그래픽 처리 장치(graphics processing units, GPU)의 배열을 포함할 수 있다. 어댑터들(144)은 보안 서버(16)가 통신 네트워크(14)에 연결될 수 있게 하는 네트워크 카드 및 다른 통신 인터페이스를 포함할 수 있다. 서버 저장 장치(142)는 이벤트 표시자 및/또는 클라이언트 프로파일 파라미터와 같은 데이터를 저장할 수 있다. 일부 실시예에서, 서버(16)는 클라이언트 시스템(10)의 입력/출력 장치(36 및 38) 각각과 기능면에서 유사할 수 있는 입력 및 출력 장치를 더 포함한다.
도 4는 본 발명의 일부 실시예에 따른 클라이언트 시스템(10)에서 실행되는 예시적인 소프트웨어 구성요소를 보여준다. 이러한 소프트웨어는 클라이언트 시스템(10)의 하드웨어와 개별 클라이언트 시스템에서 실행되는 사용자 어플리케이션(48)과 같은 다른 컴퓨터 프로그램 사이에 인터페이스를 제공하는 운영 시스템(operating system, OS)(46)을 포함할 수 있다. 예시적인 운영 시스템에는 특히 Windows®, MacOS®, iOS®, 및 Android®가 포함된다. 사용자 어플리케이션(48)은 특히 워드 프로세싱, 이미지 프로세싱, 스프레드시트, 캘린더, 온라인 게임, 소셜 미디어, 웹 브라우저, 및 전자 통신 어플리케이션과 같은 임의의 어플리케이션을 총괄적으로 나타낸다. 일부 실시예에서, 보안 어플리케이션(50)은 악성 소프트웨어 및 침입과 같은 컴퓨터 보안 위협들에 대해서 클라이언트 시스템(10)을 보호하도록 구성된다. 다른 기능들 중에서, 보안 어플리케이션(50)은 이벤트 표시자를 보안 서버(16)에 전송하도록, 그리고/또는 보안 경고를 수신하도록 구성된다. 일부 실시예에서, 어플리케이션(50)은 이벤트 수확기(event harvester)(52) 및 네트워크 필터(53)를 추가로 포함한다. 네트워크 필터(53)의 일부 기능은 하드웨어에서 직접 구현될 수 있다. 클라이언트 시스템(10)이 가상 머신 내에서 OS(46) 및 어플리케이션(48)이 실행되는 하드웨어 가상화 플랫폼을 운영하는 경우(예를 들어, 클라우드 컴퓨팅 환경에서), 이벤트 수확기(52) 및/또는 네트워크 필터(53)는 개별 가상 머신 외부에서, 예를 들면 개별 가상 머신을 노출시키는 하이퍼바이저의 레벨에서, 인트로스펙션(introspection)으로 본 기술 분야에서 알려진 기술을 사용하여 실행될 수 있다.
이벤트 수확기(52)는 클라이언트 시스템(10)에 의한 소프트웨어의 실행 중에 발생하는 다양한 이벤트들을 탐지하도록 구성된다. 일부 실시예들은 개별 이벤트의 발생 시간을 기록하기 위하여 각각의 탐지된 이벤트를 타임스탬핑 할 수 있다. 모니터링되는 이벤트들은 머신 및/또는 운영 시스템 특이적일 수 있다. 예시적인 이벤트들에는 특히 프로세스 개시, 프로세스 종료, 자식 프로세스의 스포닝(spawning, 생성), 주변 장치(예컨대, 하드 디스크, 네트워크 어댑터)에 대한 액세스 요청, 커맨드 라인 인터페이스(command-line interface)로의 사용자에 의한 커맨드(command, 명령어) 입력 등이 포함된다. 이러한 하드웨어 및/또는 소프트웨어 이벤트들은 컴퓨터 보안 기술 분야에 알려진 임의의 방법, 예를 들어 운영 시스템의 특정 기능 후킹(hooking), 시스템 호출 탐지, 파일 시스템 미니필터 채용, 특정 메모리 주소로부터 코드를 실행하려는 시도를 탐지하기 위한 메모리 액세스 허가(access permission, 접근 권한) 변경 등을 사용하여 탐지될 수 있다.
일부 실시예들은 OS(46)에 내장된 시스템 로깅 툴(예컨대, UNIX®의 Syslog)을 사용하여 하드웨어 및/또는 소프트웨어 이벤트를 모니터링한다. 이러한 툴은 각 이벤트에 대한 타임스탬프, 이벤트 유형을 식별하는 숫자 코드, 개별 이벤트를 생성한 프로세스 또는 어플리케이션의 유형의 표시자, 및 다른 이벤트 파라미터들을 포함하는 이벤트 디스크립터(event descriptor)의 리스트를 생성할 수 있다. 보안 어플리케이션(50)은 이벤트 표시자를 생성(formulate)하기 위해 개별 시스템 로그로부터 이러한 정보를 추출할 수 있다. 예시적인 syslog 엔트리는 이하에서 제공된다:
<30>Feb 8 21:36:51 dtm charon: 12[IKE] establishing CHILD_SA dtmhq5{5}
<30>Feb 8 21:36:51 dtm charon: 12[IKE] establishing CHILD_SA dtmhq5{5}
<187>Feb 8 21:37:56 example.domain.biz dhcpd: DHCPDISCOVER from 0c:14:7b:11: 14:64 via eth1: network eth1: no free leases
네트워크 필터(53)는 클라이언트 시스템(10)과 다른 파티(party) 사이에 네트워크들(12-14)을 통한 전자 통신 중에 발생하는 네트워크 이벤트들의 세트를 탐지한다. 네트워크 필터(53)에 의해 탐지되는 예시적인 이벤트는 특히 클라이언트 시스템(10)과 다른 네트워크 엔터티 사이의 연결 설정의 일부를 형성하는 이벤트(예를 들어, 네트워크 주소 요청, 네트워크 주소 전송, 핸드셰이크(handshake) 이벤트 등), 암호화된 연결을 구성하는 이벤트(보안 소켓 계층(secure socket layer, SSL), 가상 사설 네트워크(virtual private network, VPN)), 데이터 전송, 및 데이터 수신을 포함한다. 일부 실시예에서, 네트워크 필터(53)는 인터셉트된 네트워크 트래픽으로부터 메타데이터를 수집한다. 이러한 메타데이터는, 예를 들어 발신 네트워크 주소(예: 인터넷 프로토콜(IP) 주소), 목적지 주소, 데이터 패킷의 타임스탬프, 통신 프로토콜 유형의 표시자, 및 데이터 패킷의 크기를 포함할 수 있다. 다른 예시적인 메타데이터는 개별 통신/데이터 패킷을 전송하는 하이퍼텍스트 전송 규약(HTTP) 사용자 에이전트의 유형의 표시자를 포함할 수 있다. 일부 실시예는 통신 메타데이터를 네트워크 플로우로 본 기술 분야에 알려진 특수한 데이터 구조로 조직한다(예컨대, Cisco Systems, Inc.의 NetFlow®). 표 1은 본 발명의 일부 실시예에 따른 플로우로 표현되는 통신 메타데이터의 예를 보여준다.
표 1
일부 실시예에서, 보안 어플리케이션(50)은 하드웨어, 소프트웨어, 및/또는 수확기(52) 및 네트워크 필터(53)에 의해 탐지된 네트워크 이벤트에 따라 이벤트 표시자를 형성한다. 어플리케이션(50)은 특히 이벤트 표시자를 전송하거나 그리고/또는 보안 통지를 수신하기 위하여 보안 서버(16)와의 통신을 추가로 관리할 수 있다.
선택적인 실시예에서, 위에서 나타낸 바와 같이 클라이언트에서 네트워크 통신을 프로세싱하는 대신에, 네트워크 필터(53) 및/또는 라우터(15)가 클라이언트 시스템(10)으로 들어오는 그리고/또는 클라이언트 시스템(10) 밖으로 나가는 전자 통신의 적어도 일부를 보안 서버(16)로 리-라우팅하도록 구성될 수 있다. 예를 들어서, 클라이언트 시스템(10)의 네트워크 구성 파라미터는 서버(16)를 기본 네트워크 게이트웨이로 표시하도록 설정될 수 있다. 일부 실시예는 그러고 나서 개별의 리-라우팅된 트래픽으로부터 이벤트 표시자를 추출하기 위해 보안 서버(16)를 채용한다.
도 5는 본 발명의 일부 실시예에 따른 보안 서버(16)에서 실행되는 예시적인 소프트웨어를 보여준다. 도시된 소프트웨어는 프로파일링 엔진(60) 및 경고 관리기(alert manager)(64)에 추가로 연결되는 이상 탐지기(anomaly detector)(62)를 포함한다. 통상의 기술자는 예시된 모든 구성요소가 동일한 머신/프로세서 상에서 실행될 필요가 없다는 것을 이해할 것이며, 예를 들어서, 프로파일링 엔진(60)은 전용 프로세서 클러스터 상에서 실행되는 반면 이상 탐지기(62)의 인스턴스(instance)는 다른 머신/프로세서 상에서 실행될 수 있다.
일부 실시예에서, 프로파일링 엔진(60)은 클라이언트 시스템들의 세트(예컨대, 도 1의 클라이언트들(10a-h)의 서브세트)에서 발생하는 이벤트를 분석하도록, 그리고 개별 클라이언트 시스템을 운영하는 기본적인, 정상적인, 및/또는 합법적인 방식을 나타내는 복수의 클라이언트 프로파일들을 구성(construct)하도록 구성된다. 클라이언트로부터 수신된 이벤트 표시자들(20a-b)의 서브세트는 도 1, 도 5, 및 도 6에서 코퍼스(18)로 표시된 훈련 이벤트 코퍼스를 취합(assemble)하는데 사용될 수 있다. 그러고 나서 프로파일은 이벤트 코퍼스(18)에 따라 결정된다. 클라이언트 프로파일을 결정하는 것은 특히 이하에 더욱 상술된 바와 같이, 추상적인 다차원 이벤트 공간에서 이벤트를 표현하고 데이터 클러스터링 절차를 수행하는 것을 포함할 수 있다. 구성된 프로파일은 그러고 나서 프로파일 데이터베이스(19)에 엔트리(entry)로서 저장될 수 있다. 예시적인 프로파일 데이터베이스 엔트리는 클러스터 중심의 좌표들의 세트, 클러스터의 직경 및/또는 이심률의 측정치 등과 같은 프로파일 파라미터들의 세트를 포함한다.
도 6은 프로파일링 엔진(60)의 예시적인 구성요소 및 작동을 보여준다. 일부 실시예에서, 엔진(60)은 이벤트 인코더(70), 이벤트 클러스터링 엔진(72), 및 이벤트 인코더(70) 및 이벤트 클러스터링 엔진(72)에 연결된 클라이언트 클러스터링 엔진(74)을 포함한다. 프로파일링 엔진에 의해 수행되는 단계들의 예시적인 시퀀스는 도 7에 도시된다.
단계들(202-204-206)의 시퀀스에서, 프로파일링 엔진(60)은 선택된 클라이언트 시스템 및/또는 라우터(들)로부터 수신된 이벤트 표시자에 따라 훈련 이벤트 코퍼스(18)를 취합할 수 있다. 일부 실시예는 일부 축적(accumulation) 조건이 만족될 때까지 이벤트 표시자를 축적한다. 축적 조건은 이벤트의 수에 따라(100만 개의 이벤트의 코퍼스를 수집), 시간 조건에 따라(예를 들어, 1시간 인터벌 내에 수신된 모든 이벤트를 기록하는 등), 클라이언트 시스템 및/또는 사용자의 신원에 따라(예를 들어, 회사 X, IP 범위 Y, 가입 계정 Z로부터 수신된 모든 이벤트를 기록하는 등), 또는 본 기술 분야에 알려진 임의의 다른 방법에 따라 결정될 수 있다. 개별적 이벤트는 이들의 출처에 따라 라벨링 될 수 있고, 개별 이벤트가 발생했거나, 또는 탐지되었거나, 또는 보안 서버(16)에서 수신된 시점 등을 특징짓는 타임스탬프를 포함할 수 있다. 일부 실시예에서, 이벤트 코퍼스(18)는 주기적으로 그리고/또는 새로 수신된 이벤트 표시자의 통합에 의한 요청시(on demand) 갱신(refresh)된다.
일부 실시예에서, 이벤트 인코더(70)(도 6)는 클라이언트 시스템에서 발생한 이벤트를 특징짓는 데이터를 포함하는 이벤트 레코드(event record)(26)를 입력하도록, 그리고 응답으로, 본 기술 분야에서 일반적으로 임베딩 공간(embedding space)으로 간주되는 추상적인 다차원 공간에서 벡터로서 개별 이벤트의 표현(representation)을 포함하는 이벤트 벡터(28a)를 출력하도록 구성된다. 예시적인 임베딩 공간은 축(axis)들의 세트로 확장되며, 각 축은 특유한 이벤트 특징을 나타낸다. 예시적인 특징은 특히 네트워크 이벤트의 경우, 소스 IP 주소, 소스 포트, 목적지 IP 주소, 목적지 포트, 및 전송 프로토콜의 표시자를 포함할 수 있다. 다른 예에서, 임베딩 공간의 각 축은 이벤트 특징들의 선형 조합에 대응한다(예를 들어, 주요 구성요소/특이값 분해(Singular Value Decomposition) 실시예에서). 바람직한 실시예에서, 이벤트는 개별 이벤트에 선행 및/또는 후행하는 다른 이벤트의 컨텍스트(context)에서 분석된다. 이러한 경우에, 인코더(70)는 컨텍스트들의 임베딩 공간에서 벡터로서 이벤트들을 나타내도록 구성되며, 이 때 유사한 컨텍스트들에서 주로 발생하는 두 이벤트는 상대적으로 서로 가깝게 위치한다. 일부 실시예는 이벤트 어휘(vocabulary) N의 크기, 즉, 개별 보안 시스템이 모니터링하는 특징적인 이벤트 유형의 수에 따라서 임베딩 공간의 차원(dimensionality)을 선택한다(이벤트 어휘에 대한 자세한 내용은 아래 참조). 예를 들어, 이벤트 공간의 차원은 N의 2차 루트의 또는 N의 로그의 차수(the order of the quadratic root of N, or of a logarithm of N)일 수 있다. 본 발명의 통상적인 실시예는 수백 내지 수천 차원을 갖는 임베딩 컨텍스트 공간을 사용한다.
이벤트 인코더(70)는 자동화된 데이터 프로세싱 기술 분야에 알려진 임의의 방법을 사용하여 구성될 수 있다. 바람직한 실시예에서, 인코더(70)는 인공 지능 시스템, 예를 들어 다층 인공 신경망(예컨대, 순환 및/또는 피드-포워드 신경망(recurrent and/or feed-forward neural network))을 포함한다. 이벤트 벡터의 원하는 표현을 얻기 위하여, 인코더(70)의 파라미터들은 일부 성능 조건이 만족될 때까지 튜닝될 수 있다. 이러한 튜닝(tuning)은 본 명세서에서 훈련(training)이라고 지칭되며, 도 7에서 단계(208)로 표현된다. 신경망 실시예에서, 이벤트 인코더(70)의 예시적인 튜닝가능한 파라미터는 특히 시냅스 가중치(synapse weight)들의 세트를 포함한다. 일부 실시예에서, 인코더(70) 훈련은 임베딩 공간 자체를 구성하는 것에 해당한다. 달리 말하면, 임베딩 공간은 미리 결정되지 않고, 대신에 이벤트 코퍼스(18)의 구성과 선택된 훈련 절차에 따라 달라진다.
예시적인 훈련 절차는 도 8a 및 도 8b에 도시되고, Skip-gram 알고리즘 및 Continuous Bag-of-Words 알고리즘과 같은 Word2vec 알고리즘 버전들을 포함한다. 이러한 실시예에서, 이벤트는 별개로 분석되는 것이 아니라, 발생 또는 탐지 시간에 따라 정렬된 다수의 이벤트로 구성된 이벤트 시퀀스(25)의 구성 요소로서 분석된다. 일부 실시예에서, 개별 시퀀스의 모든 이벤트들은 이들이 동일한 클라이언트 시스템에서 발생하도록 선택된다. 이벤트 시퀀스(25)는 중앙 이벤트 E 0 및 상기 중앙 이벤트에 선행하는 이벤트들 E -k... E -1 (k≥0)의 서브세트 및/또는 상기 중앙 이벤트에 후행하는 이벤트들 E 1... E p (p≥0)의 서브세트로 구성된 이벤트 컨텍스트를 포함한다. 통상적인 실시예는 p가 2 내지 5의 범위에 있는 대칭 이벤트 컨텍스트 (p=k)를 사용한다. 각각의 개별적인 이벤트 E i (-k≤i≤p)는 숫자들의 N×1 벡터로 표현될 수 있고, 이 때 각 라인(line)은 특징적인 이벤트 유형(예: 브라우저 개시, 파일 다운로드 시작, 디스크에 데이터 쓰기 등)을 나타내고, N은 이벤트 유형의 "어휘" 크기를 나타내며, 0이 아닌 요소(element)는 개별 이벤트가 개별 이벤트 유형의 것임을 나타낸다. 이러한 표현은 본 기술 분야에서 일반적으로 1-핫 인코딩(1-hot encoding)으로 알려져 있다. 이벤트 어휘의 예시적인 크기 N은 수백 내지 수천의 특징적인 이벤트 유형의 범위에 있지만, 특정 어플리케이션에 대해 수백만까지 증가될 수 있다. 통상의 기술자는 본 명세서에서 사용된 원-핫 인코딩은 단지 예로서 사용된 것이며, 본 발명의 범위를 제한하지 않는다는 것을 이해할 것이다.
예시적인 훈련 절차에서, 이벤트 인코더는 이벤트 디코더와 쌍을 이루고, 공동 훈련되며, 둘 모두는 피드-포워드 및/또는 순환 신경망의 일부를 포함할 수 있다. 일반적으로, 인코더-디코더 쌍은 훈련 시퀀스의 제1 서브세트(예를 들어, 중앙 이벤트 E 0 )를 입력하도록, 그리고 개별 시퀀스의 제2 서브세트(예를 들어, 일부 컨텍스트 이벤트 E i , i≠0)에 대한 "예측"을 출력하도록 구성될 수 있다. 도 8a 및 도 8b의 예에서 상기 예측은 원-핫 벡터로 도시되고, 선택적인 실시예는 다른 표현을 사용할 수 있다. 예를 들어, 예측은 숫자들의 N-차원 벡터로 표현될 수 있고, 각 숫자는 대응하는 이벤트 유형이 제2 서브세트에 존재할 가능성을 나타낸다.
도 8a에 도시된 Skip-gram 훈련 절차에서, 인코더-디코더 쌍은 중앙 이벤트 E 0 를 고려하여 올바른 이벤트 컨텍스트를 생성하도록 훈련된다. 이벤트 코퍼스(18)에서 얻은 이벤트들의 각 시퀀스에 대해, 인코더(70a)는 중앙 이벤트 E 0 의 원-핫 인코딩을 입력하도록, 그리고 임베딩 컨텍스트 공간에서 중앙 이벤트 E 0 의 표현을 포함하는 이벤트 벡터(28c)를 생성하도록 구성된다. 차례로, 디코더(76a)는 이벤트 벡터(28c)를 입력하고, 개별 이벤트 시퀀스의 "예측된" 컨텍스트 이벤트 E i (i≠0)를 각각 나타내는, 복수의 추측되는 벡터들을 출력하도록 구성된다. 상기 인코더-디코더 쌍은 그러고 나서 예측 에러(prediction error)를 감소시키기 위한 노력으로, 즉, "예측된" 컨텍스트와 개별 훈련 시퀀스들의 실제 컨텍스트 사이의 미스매치를 정정하기 위해, 인코더(70a) 및/또는 디코더(76a)의 파라미터들을 조정함으로써 훈련될 수 있다.
Continuous Bag-of-Words 훈련 알고리즘을 사용하는 선택적인 훈련 절차는 개별 이벤트 컨텍스트를 고려하여 훈련 시퀀스의 올바른 중앙 이벤트 E 0 를 생성하는 것을 목표로 한다. 도 8b에 도시된 그러한 일 예에서, 이벤트 인코더(70b)는 시퀀스(25)의 컨텍스트 이벤트들 E i (i≠0)를 나타내는 원-핫 벡터들의 세트를 입력하도록, 그리고 각각의 개별 컨텍스트 이벤트에 대해 결정된 임베디드 이벤트 벡터들(28d-f)을 출력하도록 구성된다. 도 8a에 도시된 Skip-gram 실시예와는 대조적으로, 인코더(70b)는 이제 복수의 이벤트 벡터들(28d-f)을 입력하도록, 그리고 시퀀스(25)의 중앙 이벤트 E 0 에 대한 예측 또는 "추측"을 생성하도록 구성되는 이벤트 디코더(76b)와 쌍을 이룬다. 상기 인코더-디코더 쌍은 그러고 나서 예측 에러, 즉, "예측된" 중앙 이벤트와 개별 훈련 시퀀스들의 실제 중앙 이벤트 사이의 미스매치를 감소시키기 위한 노력으로, 인코더(70b) 및/또는 디코더(76b)의 파라미터들을 조정함으로써 훈련될 수 있다.
이벤트 인코더의 훈련을 구현하는 단계들의 예시적인 시퀀스는 도 9에 도시된다. 단계(222)는 이벤트 코퍼스(18)로부터 이벤트 레코드들의 세트를 검색하고, 이벤트 타임스탬프에 따라서 그리고 개별 이벤트의 소스(즉, 개별 이벤트가 발생한 클라이언트 시스템)에 따라서 이벤트 시퀀스(25)를 식별한다. Skip-gram 실시예에서, 단계(224)는 그러고 나서 이벤트 인코더(70a)를 실행하여 이벤트 E 0 의 임베딩 공간 표현을 생성한다(도 8a의 이벤트 벡터(28c)). 단계(226)에서, 프로파일링 엔진(60)은 이벤트 디코더(76a)를 실행하여 시퀀스(25) 내에서 중앙 이벤트 E 0 에 선행하는 그리고/또는 후행하는 이벤트들에 대한 예측들 또는 "추측들"의 세트를 생성한다. 단계(228)는 각각의 예측된 컨텍스트 이벤트를 시퀀스(25)의 개별 실제 컨텍스트 이벤트 E i (i≠0)와 비교하고, 이에 따라 수치적 예측 에러를 결정한다. 비용 함수(cost function) 또는 목적 함수(objective function)로 해석될 수 있는 상기 예측 에러는 인공 지능 기술 분야에서 알려진 임의의 방법에 따라 계산될 수 있다. 이러한 계산은 예측된 이벤트와 실제 이벤트 사이의 거리, 예를 들어 르벤슈타인(Levenshtein), 유클리드(Euclidean), 또는 코사인(cosine) 거리를 결정하는 것을 포함할 수 있다. 일부 실시예는 교차 엔트로피 척도(cross entropy measure)에 따라 목적 함수를 결정한다. 단계(230)에서, 프로파일링 엔진은 계산된 예측 에러를 최소화하는 방향으로 인코더(70a)의 파라미터들을 조정할 수 있다. 훈련에 사용되는 일부 예시적인 알고리즘은 특히 경사도 하강(gradient descent)을 사용하는 역전파(backpropagation), 모의 어닐링(simulated annealing), 및 유전 알고리즘(genetic algorithms)을 포함한다. 일부 실시예는 그러고 나서 종료 조건이 만족될 때까지, 예를 들어 이벤트 코퍼스(18)에 대한 평균 예측 에러가 소정의 임계값 아래로 떨어질 때까지, 단계들(222-230)을 반복한다. 다른 실시예에서, 훈련은 소정의 양의 시간 동안, 또는 소정의 반복 횟수 동안 계속된다. 통상의 기술자는 도 9에 도시된 단계들의 시퀀스가 약간의 적응으로 Bag-of-Words 실시예(도 8b)에 동등하게 적합하다는 것을 이해할 것이다.
전술한 바와 같이 이벤트 인코더를 훈련시키는 것에 응답으로, 일부 실시예는 생성된 임베딩 공간을 추가로 변환하여 이의 차원을 감소시킨다. 이 작동은 예를 들어 주성분 분석(principal component analysis, PCA) 또는 특이값 분해(singular value decomposition, SVD)와 같은 임의의 데이터 차원 감소 알고리즘을 포함할 수 있다.
훈련 및 선택적 차원 감소(도 7의 단계(208)) 이후, 이벤트 인코더(70)는 이벤트 컨텍스트의 다차원 임베딩 공간에서 벡터로 각 이벤트를 나타낼 수 있고, 이 때 동일한 이벤트 컨텍스트 내에서 자주 발생하는 두 이벤트는 유사한 위치를 차지한다. 달리 말하면, 이러한 두 이벤트는 다른 컨텍스트에서 주로 발생하는 두 이벤트 사이의 거리보다 작은 거리로 임베딩 공간에서 분리된다.
프로파일링 엔진(60)의 구성요소로 돌아가서(도 6), 이벤트 클러스터링 엔진(74)은 훈련된 이벤트 인코더(70)에 의해 생성되고 훈련 코퍼스(18)의 구성원들을 나타내는 이벤트 벡터들을 임베딩 공간 내 각 이벤트 벡터의 위치에 따라 클러스터로 조직하도록 구성된다(도 7의 단계(207)도 참조). 일부 실시예에서, 클러스터는 임베딩 공간에서 상대적으로 서로 가까운 복수의 이벤트들, 또는 달리 말하면, 임베딩 공간에서 상대적으로 작은 이벤트간 거리를 특징으로 하는 복수의 이벤트들을 포함한다. 선택적인 실시예에서, 클러스터는 임베딩 공간의 클러스터 특이적 영역(cluster-specific region)을 차지하는 이벤트들로 구성된다. 이러한 영역은 상호 배타적이거나 또는 부분적으로 겹칠 수 있다. 도 10은 본 발명의 일부 실시예에 따른 예시적인 임베딩 공간 및 이벤트 클러스터들(80a-b)의 세트를 보여준다. 도시된 축들은, 예를 들어, 도시된 이벤트 벡터들(벡터들(28g-h-k))의 제1 및 제2 주요 구성요소들을 포함할 수 있다. 이벤트 컨텍스트들의 임베딩 공간을 사용하는 실시예에서, 클러스터는 유사한 이벤트 컨텍스트 내에서 주로 발생하는 이벤트들을 선택적으로 포함할 수 있다. 또한, 동일한 클러스터는 다양한 클라이언트 시스템들에서 발생하는 그리고/또는 다양한 사용자들의 활동을 나타내는 이벤트들을 포함할 수 있다.
이벤트 클러스터를 구성하기 위해, 프로파일링 엔진(60)은 본 기술 분야에 알려진 임의의 데이터 클러스터링 알고리즘, 예를 들어, k-평균 알고리즘의 변형을 채용할 수 있다. 다른 예시적인 실시예는 퍼셉트론(perceptron)들의 세트를 훈련시켜 임베딩 공간을 특징적인 영역으로 만들고(carve), 각 영역 내에 위치한 이벤트 벡터들을 특징적인 이벤트 클러스터에 할당할 수 있다. 클러스터 및/또는 영역의 수는 미리 결정될 수 있거나(예를 들어, 보호되는 클라이언트 시스템 및/또는 모니터링되는 이벤트 유형의 수에 따라), 또는 클러스터링 알고리즘 자체에 의해 동적으로 결정될 수 있다. 이벤트 클러스터링의 결과는 이벤트 클러스터 파라미터들(54)의 세트를 포함하며(도 6), 이는 예를 들어, 각각의 클러스터에 대해, 클러스터 중심의 좌표 및 클러스터 정도의 측정치(measure of the cluster's extent)(예: 직경 및/또는 이심률)를 포함할 수 있다. 다른 예시적인 클러스터 파라미터들(54)은 특히 개별 클러스터의 구성원들의 리스트, 및 개별 클러스터의 대표적/원형적(representative/archetypal)인 것으로 간주되는 개별 클러스터의 선택된 구성원을 포함할 수 있다. 클러스터 파라미터들은 클라이언트 클러스터링 엔진(74)으로 전달될 수 있다.
클라이언트 클러스터링 엔진(74)(도 6)은 이벤트 클러스터링 엔진(72)에 의해 연산된 이벤트 클러스터들에 따라 클라이언트 프로파일들의 세트를 결정하도록 구성된다. 이러한 클라이언트 프로파일들은 도 11에 도시된다. 일부 실시예에서, 각 클라이언트 프로파일은 보호되는 클라이언트 시스템들(10a-h)의 선택된 서브세트(클러스터)를 포함한다. 일부 클라이언트 프로파일들은 다수의 클라이언트 클러스터들을 포함할 수 있다. 일부 실시예에서, 클라이언트 프로파일은 개별 클라이언트 클러스터의 실제 구성원일 수 있는 프로파일 원형(archetype), 또는 프로파일 공간에서 특정 위치를 특징으로 하는 가상의 클라이언트 시스템을 포함할 수 있다. 예를 들어, 프로파일 원형은 클라이언트 클러스터링 엔진(74)에 의해 결정된 클라이언트 클러스터의 중심을 포함할 수 있다.
클라이언트 프로파일을 연산하기 위해, 클라이언트 클러스터링 엔진(74)의 일부 실시예는 개별 클라이언트 시스템들에서 발생하는 이벤트들의 전형적인 분포를 나타내는 이벤트 프로파일에 따라 클라이언트 시스템들(10a-h)을 클러스터들에 할당한다. 하나의 예시적인 실시예에서, 클라이언트 시스템의 이벤트 프로파일은, 개별 클라이언트 시스템에서 발생하는 이벤트의 수에 따라 각각 결정되고 이벤트 클러스터링 엔진(72)에 의해 이전에 결정된 특징적인 이벤트 클러스터에 속하는 숫자들의 벡터를 포함한다. 도 12에 도시된 예에서, 이벤트 프로파일의 각 구성요소는 개별 클라이언트 시스템으로부터 이용가능한 이벤트의 총 수의 부분(fraction)으로 결정된, 개별 이벤트 클러스터 Ci에 속하는 이벤트의 비율을 나타내는 클러스터 충성 지표(cluster allegiance measure)에 따라 결정된다. 예를 들어서, 이벤트 클러스터링 엔진(72)이 3개의 이벤트 클러스터 C1, C2, 및 C3를 식별한 경우, 이벤트 프로파일 벡터 [0.1, 0.75, 0.15]는 개별 클라이언트 시스템에서 발생하는 이벤트의 10%가 이벤트 클러스터 C1에 속하는 한편, 이벤트의 75%는 이벤트 클러스터 C2에 속하며, 이벤트의 15%는 이벤트 클러스터 C3에 속하는 클라이언트 시스템을 나타낼 수 있다.
도 11에 도시된 예시적인 실시예에서, 각 클라이언트 시스템은 개별 이벤트 프로파일에 따라 다차원 프로파일 공간으로 표현된다. 달리 말하면, 클라이언트 시스템의 각 좌표는 개별 클라이언트의 이벤트 프로파일의 구성요소를 나타낸다. 도 11은 3개의 예시적인 클라이언트 클러스터들/프로파일들(82a-c)을 보여준다. 통상의 기술자는 머신 러닝(machine learning) 또는 데이터 마이닝(data mining) 기술 분야에 알려져 있는 임의의 방법을 사용하여 이러한 프로파일들을 구성할 수 있고, 예시적인 방법은 특히 k-평균 클러스터링 알고리즘 및 신경망의 변형을 포함한다. 선택적인 실시예는 클라이언트 시스템을 클러스터에 할당하는 다른 기준을 사용하거나, 개별 클라이언트의 이벤트 프로파일에 이러한 기준을 추가하여 사용할 수 있다. 예시적인 추가의 클라이언트 클러스터링 기준은 특히 개별 클라이언트 시스템의 소유자 및/또는 사용자, 개별 클라이언트 시스템의 네트워크 주소, 개별 클라이언트 시스템의 장치 유형 등을 포함한다. 예를 들어서, 동일한 가족, 동일한 회사, 또는 동일한 네트워크 도메인에 속하는 클라이언트들은 동일한 클러스터에 함께 그룹화될 수 있다.
클라이언트 클러스터링 후, 프로파일링 엔진(60)은 각 클러스터/프로파일에 할당된 클라이언트 시스템들의 리스트, 클러스터 원형들의 좌표들(예: 중심들), 클러스터 직경들 등과 같은 클러스터 파라미터들을 프로파일 데이터베이스(19)에 저장할 수 있다.
도 13은 본 발명의 일부 실시예에 따른 이상 탐지기(62)의 예시적인 구성요소 및 작동을 보여준다(도 5 또한 참조). 이상 탐지기(62)는 다양한 클라이언트 시스템들에서 발생하는 이벤트들을 나타내는 이벤트 표시자들을 포함하는 이벤트 스트림(event stream)(24)을 수신하고, 응답으로, 개별 이벤트들이 악성 소프트웨어의 침입 또는 실행과 같은 보안 위협을 나타내는지 여부를 나타내는 보안 라벨(security label)(88)을 출력하도록 구성된다. 일부 실시예에서, 이상 탐지기(62)는, 보호되는 클라이언트 시스템에서 발생하는 이벤트를 나타내는 이벤트 통지를 수신하는 것에 응답으로, 개별 이벤트에 따라 클라이언트 프로파일을 선택하도록 구성되는 프로파일 관리기(profile manager)(84)를 포함한다. 프로파일 관리기(84)는 개별 이벤트가 개별 프로파일에 의해 표현되는 정상/기본 행동의 패턴에 맞는지(fit) 여부를 결정하도록 구성된 행동 모델(86)에 추가로 연결된다. 아닌 경우, 개별 이벤트는 이상으로 간주될 수 있고, 따라서 개별 클라이언트 시스템에 대한 공격 가능성을 나타내는 것으로 간주될 수 있다.
이하에 나타낸 바와 같이 이상 탐지를 수행하기 위한 준비 과정에서, 이상 탐지기(62)의 일부 실시예는 프로파일링 엔진(60)의 출력을 사용하여 먼저 이벤트 코퍼스에서 훈련된다. 이상 탐지기(62)를 훈련시키는 것의 한 가지 목적은 프로파일링 엔진(60)에 의해 식별된 각 클라이언트 프로파일에 대해 정상/기본 사용자 행동을 결정하기 위한 것이다. 훈련은 종료 기준이 만족될 때까지 행동 모델(86)의 파라미터들의 세트를 조정하는 것을 포함한다. 이상 탐지기(62) 훈련에 사용되는 이벤트 코퍼스는 프로파일링 엔진(60)의 구성요소를 훈련시키는데 사용되는 훈련 코퍼스(18)와는 상이할 수 있다.
도 14는 본 발명의 일부 실시예에 따른 훈련 절차 중에 이상 탐지기(62)에 의해 수행되는 단계들의 예시적인 시퀀스를 보여준다. 클라이언트 프로파일들의 세트를 구성하는 이상 엔진(60)에 대한 응답으로, 단계(242)는 프로파일 데이터베이스(19)로부터 하나의 이러한 클라이언트 프로파일을 선택한다. 일부 실시예에서, 각각의 이러한 클라이언트 프로파일은, 예를 들어 도 11의 클러스터(82a)와 같은 클라이언트 클러스터들의 세트를 포함한다. 각각의 클라이언트 클러스터는 보호되는 클라이언트 시스템들의 선택된 서브세트를 추가로 포함한다. 단계(244)는 개별 프로파일/클러스터와 연관된 임의의 클라이언트 시스템에서 발생하는 것으로 등록된 이벤트들의 훈련 세트를 선택할 수 있다. 일부 실시예에서, 단계(244)는 전술한 바와 같이 클라이언트 프로파일을 구성하기 위해 이미 사용된 훈련 코퍼스(18)로부터 이벤트들의 훈련 세트를 선택하는 것을 포함할 수 있다. 추가적인 단계(246)는 행동 모델(86)을 훈련시키기 위한 훈련 코퍼스로서 이벤트들의 개별적인 훈련 세트를 사용할 수 있다.
일부 실시예에서, 행동 모델(86)은 프로파일링 엔진(60)의 일부 구성요소와 구조 및 기능 면에서 유사한 구성요소를 포함한다. 예를 들어서, 모델(86)의 일부 실시예는 도 15에 도시된 바와 같이 인코더-디코더 쌍을 포함하고, 이는 신경망 기술을 사용하여 구성될 수 있고 알고리즘들 중 Word2vec 패밀리의 구성원에 따라 훈련될 수 있다(도 8a 및 도 8b와 관련하여 전술된 내용 참조). 행동 모델(86)을 훈련시키는 것은 그러고 나서 이벤트 임베딩 공간에서 벡터로서 개별 클라이언트 클러스터/프로파일로부터 각 이벤트를 나타내는 것을 목표로, 인코더(70c) 및/또는 디코더(76c)의 파라미터들(예를 들어, 시냅스 가중치들의 세트)을 조정하는 것에 해당할 수 있다. 바람직한 실시예에서, 인코더(70c)는 이벤트 시퀀스의 컨텍스트에서 각 이벤트를 분석하고, 유사한 컨텍스트들에서 주로 발생하는 이벤트들이 다른 컨텍스트들에서 발생하는 이벤트들과 비교하여 작은 거리로 분리되는 임베딩 공간을 생성한다. 그러나, 인코더(70c)의 훈련 결과인 이벤트 임베딩 공간(즉, 축의 의미, 이벤트간 거리의 크기 등)은 이벤트 인코더(70)의 훈련 결과인 이벤트 임베딩 공간과 실질적으로 다를 수 있는데, 이는 두 인코더에 대해 사용된 훈련 코퍼스들이 다르기 때문이다.
바람직한 실시예에서, 단계(246)는 Bag-of-Words 알고리즘의 버전을 사용하여 인코더-디코더 쌍을 훈련시키는 것을 포함한다(도 8b 참조). 하나의 이러한 예에서, 인코더-디코더 쌍(도 15)은 현재 분석되는 이벤트 시퀀스의 이벤트 컨텍스트를 나타내는 복수의 이벤트들 E -k ,...E -1 , E 1 , ... E p 을 수신하도록, 그리고 N-차원 예측 스코어 벡터(90)를 생성하도록 구성되며, 이 때 각 요소는 특징적인 이벤트 유형과 연관되고, 각 요소는 개별 이벤트 시퀀스의 중앙 이벤트가 개별 이벤트 유형의 것일 가능성을 나타낸다. 예를 들어, 더 높은 스코어 값은 개별 이벤트 유형이 더 낮은 스코어를 갖는 다른 이벤트 유형보다 개별적인 이벤트 시퀀스의 중앙 이벤트로서 발생할 가능성이 높다는 것을 나타낼 수 있다. 이러한 실시예에서, 모델(86)의 예시적인 훈련은 단계(244)(도 14)에서 식별된 이벤트들의 서브세트로부터 이벤트 시퀀스를 선택하는 것, 개별 시퀀스의 이벤트 컨텍스트를 인코더(70c)에 입력하는 것, 개별 이벤트 시퀀스의 중앙 이벤트 E 0 에 대한 예측을 생성하기 위해 디코더(76c)를 실행하는 것, 그리고 인코더(70c) 및/또는 디코더(76c)를 형성하는 신경망을 통해 예측 에러를 역전파함으로써 잘못된 예측을 처단(즉, 배제, punishing)하는 것을 포함할 수 있다. 성공적인 훈련에 대한 응답으로, 단계(248)는 훈련된 행동 모델의 파라미터 값들을 저장할 수 있다. 훈련 절차는 프로파일링 엔진(60)에 의해 식별된 각 클라이언트 프로파일에 대해 반복될 수 있다.
도 16은 본 발명의 일부 실시예에 따른 컴퓨터 보안 위협에 대해 타겟 클라이언트 시스템(예컨대 도 1의 클라이언트들(10a-h))을 보호하기 위해 이상 탐지기(62)에 의해 수행되는 단계들의 예시적인 시퀀스를 보여준다. 타겟 클라이언트 시스템은 전술한 바와 같이 행동 모델 및/또는 클라이언트 프로파일을 생성한 이벤트들의 훈련 코퍼스를 제공하는 클라이언트들의 서브세트의 구성원일 수 있거나 아닐 수 있다. 상기 타겟 클라이언트 시스템을 보호하기 위하여, 이벤트들은 상기 타겟 클라이언트 시스템 및/또는 라우터들(15a-b)과 같은 다른 장치에서 탐지될 수 있고(도 1 참조), 이벤트 표시자의 형태로 보안 서버(16)에 통신될 수 있다. 이러한 이벤트 표시자는 그러고 나서 이들의 소스, 이벤트 유형, 타이밍, 서비스 계정 설정 등에 따라 사전 처리되고, 이벤트 스트림(24)으로 조직될 수 있다. 이벤트들은 개별적으로 또는 일괄적으로 처리될 수 있다. 상기 타겟 클라이언트 시스템으로부터 이벤트 표시자를 수신하는 것에 응답으로, 단계(254)에서 이상 탐지기(62)는 개별 이벤트 표시자에 따라 분석하기 위하여 이벤트 시퀀스를 조립(assemble)할 수 있다. 단계(254)는 이벤트 소스를 식별하는 것(즉, 개별 이벤트가 발생한 클라이언트 시스템), 이벤트 시퀀스를 형성하기 위해 이벤트 스트림(24)으로부터 복수의 다른 이벤트들을 선택하는 것을 포함할 수 있다. 일부 실시예에서, 상기 시퀀스의 구성원들은 이들이 모두 동일한 타겟 클라이언트 시스템에서 유래하도록 선택된다. 다른 예에서, 상기 시퀀스의 모든 구성원들은, 예를 들어 네트워크 서브도메인, 또는 공통 IP 주소와 같이, 클라이언트 시스템들의 미리 결정된 서브세트에서 발생해야 한다. 선택된 이벤트들은 또한, 예컨대 들어오는 이벤트 표시자와 함께 제공되는 타임스탬프를 이용하여, 이들의 발생 및/또는 탐지 시간에 따라 정렬될 수 있다. 상기 이벤트 시퀀스는, 예를 들어 중앙 이벤트 및 이벤트 컨텍스트를 식별하는 것과 같이, 부분들로 더 나뉘어질 수 있다(예컨대 도 8a 참조).
단계(256)에서, 프로파일 관리기(84)는 개별 이벤트 표시자에 따라, 예를 들어 개별 이벤트가 발생한 타겟 클라이언트 시스템의 신원(identity)에 따라, 클라이언트 프로파일을 선택할 수 있다. 상기 개별 타겟 클라이언트 시스템이 클라이언트 프로파일의 개발을 위해 그리고/또는 행동 모델의 훈련을 위해 훈련 이벤트들을 제공한 경우, 단계(256)는 상기 개별 타겟 클라이언트 시스템을 구성원으로서 가지는 클라이언트 프로파일/클러스터를 선택하는 것을 포함할 수 있다. 다른 프로파일 선택 기준 또한 사용될 수 있다. 예를 들어, 단계(256)는 예컨대 타겟 클라이언트 시스템의 위치를 클러스터 원형들 또는 중심들의 세트와 비교함으로써 클라이언트 프로파일 공간 내 타겟 클라이언트 시스템의 위치에 따라 클라이언트 프로파일을 선택하는 것(도 11 참조), 및 중심이 상기 타겟 클라이언트 시스템과 가장 가까운 클러스터/프로파일을 선택하는 것을 포함할 수 있다. 하나의 그러한 예에서, 클라이언트 프로파일은 상기 타겟 클라이언트 시스템에 대해 결정된 이벤트 프로파일에 따라서(예컨대, 특정 이벤트 카테고리/클러스터에 맞는 타겟 클라이언트 시스템으로부터 수신된 이벤트들의 수에 따라서) 선택될 수 있다. 다른 클라이언트 프로파일 선택 기준은 상기 타겟 클라이언트 시스템의 네트워크 주소에 따라서(예컨대, 상기 타겟 클라이언트 시스템과 동일한 IP 주소를 가지는 클라이언트들을 포함하는 클라이언트 프로파일을 선택), 상기 타겟 클라이언트 시스템의 소유자/사용자에 따라서(예컨대, 상기 타겟 클라이언트 시스템과 동일한 가정의 구성원들을 포함하는 프로파일을 선택) 등과 같이 클라이언트 프로파일을 선택하는 것을 포함할 수 있다.
추가의 단계(258)에서, 이상 탐지기는 선택된 개별 클라이언트 프로파일에 특이적인 파라미터 값으로 행동 모델(86)을 인스턴스화(instantiate) 할 수 있다. 일부 실시예에서, 프로파일 특이적 인스턴스 생성(profile-specific instantiation) 후, 모델(86) 실행(단계(260))은 상기 개별 클라이언트 프로파일과 연관된 이벤트 임베딩 공간에서 개별 이벤트 시퀀스의 이벤트들을 투영(projecting)하는 것을 포함한다.
이제 단계(262)는 개별 이벤트 시퀀스의 이벤트(들)이 개별 클라이언트 프로파일과 연관된 정상/기본 사용자 행동을 나타내는지 아닌지 여부를 결정할 수 있다. 일 실시예에서, 단계(260)에서, 개별 시퀀스의 이벤트 컨텍스트(E i , i≠0)를 행동 모델(86)에 공급(feeding)하는 것, 및 상기 개별 시퀀스의 예측 스코어 벡터(90)를 연산하는 것이 포함된다. 단계(262)는 그러고 나서 시퀀스의 실제 중앙 이벤트 E 0 의 이벤트 유형에 대응하는 벡터(90)의 요소를 식별하는 것, 및 개별 스코어를 소정의 임계값(예: 0.95)와 비교하는 것을 포함할 수 있다. 일부 실시예에서, 임계값보다 낮은 스코어 값은 개별 이벤트 E 0 가 상기 개별 이벤트 컨텍스트에서 발생할 가능성이 실질적으로 낮음을 나타내고, 따라서 잠재적인 컴퓨터 보안 위협과 일치하는 이상을 나타낸다. 일부 실시예에서, 보안 서버(16)의 사용자 또는 관리자는 임계값의 수치를 조절함으로써 방법의 민감도를 조정할 수 있다. 하나의 그러한 예에서, 상이한 임계값 수치들은 클라이언트 시스템들의 상이한 그룹들과 연관된다.
선택적인 실시예에서, 단계(260)는 개별 클라이언트 프로파일에 특이적인 이벤트 임베딩 공간에서 시퀀스의 이벤트 E i 의 표현을 결정하기 위해 모델(86)을 사용하는 것을 포함할 수 있다. 단계(262)는 그러고 나서 이벤트 E i 가 상기 임베딩 공간 내 상기 개별 이벤트의 위치에 따라서 상기 개별 클라이언트 프로파일에 대한 정상 행동의 패턴에 맞는지 여부를 결정하는 것을 포함할 수 있다. 예를 들어, 이벤트가 훈련 이벤트들의 클러스터 내에 위치할 때(예를 들어, 소정의 임계값보다 클러스터 중심에 가까울 때), 상기 이벤트는 정상으로 간주될 수 있다. 다른 예에서, 이벤트가 임베딩 공간의 특정 영역에 위치하는 경우 정상/양성(benign)으로 간주될 수 있고, 다른 영역에 위치하는 경우 이상(anomalous)으로 간주될 수 있다.
상기 시퀀스의 이벤트(예: E 0 )가 이상으로 간주되거나, 또는 달리 말해 개별 클라이언트 프로파일에 대한 훈련을 통해 설정된 정상 패턴에 맞지 않는 경우, 단계(264)는 추가 분석을 위해 상기 개별 이벤트를 표시할 수 있다. 일부 실시예에서, 이상은 보안 서버(16)의 경고 관리기(64)에 의한 보안 경고의 전송을 트리거(trigger) 할 수 있다(도 5 참조). 보안 경고는 이상 이벤트가 발생한 클라이언트 시스템에게 그리고/또는 개별 클라이언트 시스템의 관리자에게 전달될 수 있다. 이상 이벤트의 사건 또한 수집될 수 있고 추가 분석을 위해 컴퓨터 보안 연구소에 보고될 수 있다.
상술한 예시적 시스템들과 방법들은 악성 소프트웨어 및 침입과 같은 컴퓨터 보안 위협들의 효율적 탐지를 가능하게 한다. 기술된 시스템들 및 방법들은 컴퓨터 보안에 대한 행동적 접근법을 구현하며, 이 때 정상/기본 사용자 행동은 이벤트들의 훈련 코퍼스에 따라 시스템에 의해 자동으로 추론되고, 기본 행동 패턴으로부터의 이탈은 위협을 나타낼 수 있다.
일부 실시예는 복수의 클라이언트 시스템들, 예를 들어 컴퓨터, 모바일 전화기, 네트워크 기기, 및 가상 머신에서 발생하는 다양한 이벤트를 탐지한다. 예시적인 이벤트들에는 특히, 특정 프로세스 개시, 특정 파일 또는 네트워크 위치에 액세스하려는 시도, 및 특정 포트 및 주소 액세스와 같은 네트워크 트래픽 이벤트가 포함된다. 통상의 기술자는 본 명세서에서 설명되는 시스템들 및 방법들이 특히 소셜 미디어에서 사용자의 활동, 사용자의 브라우징 히스토리, 및 사용자의 게이밍 활동과 관련된 이벤트들과 같은 다른 종류의 이벤트들에 적용될 수 있음을 이해할 것이다. 이벤트 통지들은 보안 서버에서 집계(aggregate)된다. 이러한 이벤트들의 집합은 클라이언트 프로파일들의 세트를 구성하기 위한 훈련 코퍼스로 사용될 수 있으며, 이 때 각 클라이언트 프로파일은 단일 사용자, 단일 머신, 또는 다수의 사용자들/머신들을 나타낼 수 있다. 일부 실시예에서, 각 클라이언트 프로파일은 클라이언트 시스템들의 서브세트 및/또는 개별 서브세트 클라이언트 시스템들에서 발생한 이벤트들의 서브세트를 포함한다. 각 클라이언트 프로파일은 개별 클라이언트 시스템들의 정상 및/또는 양성 사용 패턴을 나타낼 수 있다. 이러한 클라이언트 프로파일들은 그러고 나서 컴퓨터 보안 위협을 나타낼 수 있는 이상 행동의 사건들을 탐지하는데 사용될 수 있다.
일부 종래의 컴퓨터 보안은 악성을 나타내는 행동을 정량화하는 규칙들의 세트에 따라 작동한다. 개발자들은 일반적으로 매우 다양한 클라이언트들에게 이러한 솔루션을 제공하는데 관심이 있기 때문에, 행동 규칙들은 대개 일반적이며 특정 사용자들에게 맞춰 만들어지지는 않는다. 그러나, 실제로, 사용자들은 매우 이질적(heterogeneous)이다. 동일한 회사 또는 가족 내에서도, 각 구성원이 컴퓨터를 사용하는 방식은 상당히 다를 수 있다. 소프트웨어 개발자 또는 엔지니어에게 정상으로 간주될 수 있는 작업들의 세트는 회계 부서의 컴퓨터에서 탐지될 때 매우 이례적일 수 있다. 또한, 동일한 사용자는 직장에서와 가정에서 상당히 다른 행동을 가질 수 있다. 따라서 일반적인 행동 규칙들은 실제 사용자들의 다양성 및 특이성을 포착하지 못할 수 있다. 이러한 종래 시스템과는 대조적으로, 본 발명의 일부 실시예에서, 각 클라이언트 시스템에서 발생하는 이벤트들은 개별 클라이언트 시스템 자체의 그리고/또는 유사한 클라이언트들의 정상/기본 행동을 캡쳐하는 모델에 대해 선택적으로 검토되고 분석된다. 달리 말하면, 행동에 관한 "정상"의 경계는 특정 클라이언트 머신, 특정 사용자 그룹(예를 들어, 회사의 특정 부서, 가족의 구성원, 특정 연령 그룹) 등과 같이 실질적인 특이성을 가지고 정의될 수 있다.
소프트웨어 및 인터넷 사용의 확산으로 인해, 예를 들어 각 개별 사용자에게 부속된 프로파일과 같이 매우 특정한 행동 프로파일을 개발하기 위한 시도는 비합리적인 연산 리소스를 필요로 할 수 있고, 따라서 비현실적일 수 있다. 또한, 개별 사용자들/머신들로부터 이벤트를 수집하는 것은 통계적으로 견고한 행동 모델을 개발하기에 충분한 데이터를 제공하지 못할 수 있다. 이러한 접근법과 대조적으로, 본 발명의 일부 실시예는 다수의 사용자들 및/또는 머신들을 단일 클라이언트 프로파일로 그룹화하여 특이성, 견고성, 및 연산 비용 사이의 유용한 균형(trade-off)을 보장한다. 또한, 사용자들 및 머신들이 프로파일로 그룹화되는 방식은 그 자체로 행동 기준을 기반으로 하여 이러한 그룹화가 특이성을 유지하도록 한다. 일부 실시예에서, 각 클라이언트 프로파일은 실질적으로 유사한 이벤트 프로파일들을 가지는 사용자들/머신들을 함께 그룹화한다. 달리 말하면, 클라이언트 프로파일의 모든 구성원들은 상기 구성원 머신에서 발생하는 이벤트들의 통계 측면에서 유사한 기본 행동을 나타낸다(display).
일부 종래의 컴퓨터 보안 시스템들 및 방법들은 대부분 개별 이벤트들을 분석한다. 컴퓨터 시스템의 작동 중에 발생하는 많은 이벤트들(예컨대, 파일 열기, 웹페이지 액세스)은 별개로 취해지는 경우 악성을 나타내지 않을 수 있다. 그러나, 이들이 예를 들어 특정 작동들의 시퀀스와 같이 다른 이벤트들의 컨텍스트에서 발생한 경우, 이들은 악성일 수 있다. 보다 통상적인 솔루션들과는 대조적으로, 본 발명의 일부 실시예는 컨텍스트에서 이벤트들을 명확하게 분석하고, 따라서 이러한 이벤트 상관 상황에 더 적합하다. 바람직한 실시예는 동일한 이벤트 컨텍스트에서 상대적으로 높은 빈도로 발생하는 이벤트들의 쌍이 동일한 이벤트 컨텍스트에서 덜 빈번하게 발생하는 이벤트들의 다른 쌍보다 작은 거리로 분리된다는 특징적인 특성을 가지는 다차원 임베딩 공간에서 벡터로서 개별 이벤트들을 나타낸다.
성공적인 행동 모델링은 다수(예: 수백 또는 수천)의 특징적인 이벤트 유형들을 탐지하는 것이 필요할 수 있지만, 모든 이벤트 유형들이 행동 모델링에서 동등하게 중요하지는 않을 수 있다. 다수의 소스로부터 수신된 이러한 수많은 이벤트 유형들에 대한 통계 데이터를 수집하고 분석하는 것은 비현실적일 수 있다. 이러한 문제를 해결하기 위하여, 일부 실시예는 이벤트들 사이의 유사성 정도에 따라 이벤트들을 이벤트 카테고리 또는 클러스터로 그룹화하고, 따라서 보다 견고하고 그리고/또는 관련있는 통계를 생성한다. 클라이언트 프로파일의 구성은 이러한 의미있는 차원 감소에 의해 실질적으로 가능해질 수 있다. 이벤트 유사성은 여러 기준에 따라, 예를 들면, 이벤트 임베딩 공간에서 두 이벤트를 분리하는 거리에 따라 결정될 수 있다. 바람직한 실시예에서, 두 이벤트가 동일한 컨텍스트에서 주로 발생한다면 이들은 유사한 것으로 간주될 수 있다(예를 들어, 이벤트 A 및 B는, A 및 B 모두 빈번하게 이벤트 X가 선행되고 그리고/또는 이벤트 Y가 후행되는 경우, 즉 예시적인 시퀀스 XAY 및 XBY와 같을 때, 유사한 것으로 간주된다).
도 17a 및 도 17b는 전술한 시스템들 및 방법들의 일부를 컴퓨터 보안 위협 탐지에 적용한 실험을 보여준다. 다수의 모니터링되는 클라이언트들로부터 수집된 이벤트들의 이벤트 코퍼스는 위에서 나타낸 바와 같이 프로파일링 엔진의 구성요소들을 훈련시키는데 사용되었고, 그 결과 상기 모니터링되는 클라이언트들은 11개의 클라이언트 클러스터들/프로파일들로 나뉘어졌다. 이벤트들은 15 차원 임베딩 공간에서 각 이벤트의 표현에 따라 이벤트 카테고리들로 분류(binning)되었다. 개별 클라이언트 클러스터들 각각에 대해 프로파일 특이적 행동 모델들(profile-specific behavior models)이 개발되었다. 그러고 나서 특정 유형의 공격이 테스트 머신에서 행해졌다. 상기 테스트 머신으로부터 수확된 이벤트 시퀀스들은 동작 모델들 각각에 특이적인 파라미터들과 함께, 차례로, 인스턴스화 되는 이상 탐지기에 공급되었다. 일부 이러한 이벤트 시퀀스들은 이상으로 탐지되었다.
도 17a는 스코어 1이 이상의 100% 확실성을 나타내는 척도로 표현되는 클러스터 특이적 이상 스코어(cluster-specific anomaly scores)를 보여준다(예를 들어, 상기 테스트 머신으로부터 수신한 이벤트 시퀀스의 적어도 하나의 이벤트가 훈련에서 보이지 않았음). 그래프는 비정상적인 이벤트 시퀀스들에 대한 평균 스코어 값 및 관련 표준 편차를 나타낸다. 도면은 동일한 시퀀스(들)이 클러스터 특이적인 특정 수준의 이상(anomaly)으로 간주될 수 있음을 보여준다. 다르게 말하면, 동일한 이벤트 시퀀스들이 다른 것들에 비해 특정 클라이언트들에서 "덜 비정상적인 것"으로 간주될 수 있다. 예를 들어, 클러스터 1, 2, 및 7과 연관된 행동 모델들은 다른 모델들보다 상대적으로 높은 효율로 공격을 탐지할 뿐만 아니라, 상기 공격과 연관된 모든 이벤트 시퀀스들은 "동등하게 비정상적인 것"으로 간주된다. 대조적으로, 클러스터 0 및 9와 연관된 모델들은 동일한 공격의 일부 이벤트 시퀀스들을 다른 것들보다 "덜 비정상적인 것"으로 나타낸다.
도 17b는 3 개의 특징적인 유형의 공격에 대해 달성된 프로파일 특이적 평균 탐지율(profile-specific average detection rates)을 보여준다. 각 유형의 공격 중에 테스트 머신으로부터 수집된 이벤트 시퀀스들은 11 개의 프로파일 특이적 훈련 행동 모델(profile-specific trained behavior models) 각각을 사용하여 분석되었다. 탐지율은 모델 및 공격의 유형에 따라 다르며, 이는 본 명세서에서 설명된 시스템들 및 방법들의 일부의 특이성을 추가로 입증한다.
이러한 실험 결과는 본 발명의 일부 실시예들의 또 다른 잠재적인 적용을 나타낸다. 중앙화된 컴퓨터 보안 솔루션은 클라이언트 프로파일에 의해 식별된 클라이언트들의 세트 각각에 대해 그리고/또는 각 클라이언트 클러스터의 원형과 유사성을 지닌 다른 클라이언트들에 대해 보호 전략을 선택적으로 개발할 수 있다. 일부 실시예는 본 명세서에 설명된 방법들이 만족스러운 수준의 보안을 제공하는 클라이언트의 클러스터, 및 추가적인 보안 방안을 필요로 하는 다른 클라이언트의 클러스터를 식별할 수 있다. 클라이언트들의 각 클러스터에 대해 보호를 적합하게 하는 것(tailoring)은 사용자 경험을 향상시키고, 불필요한 연산 비용을 감소시킬 수 있다.
상기의 실시예들이 본 발명의 범위를 벗어나지 않는다면 다양한 방법으로 변경될 수 있음은 통상의 기술자에게 당연한 것이다. 따라서 본 발명의 범위는 이하의 청구항과 그들의 법적 균등물에 의해서 결정되어야 한다.
Claims (23)
- 타겟 클라이언트 시스템에서의 타겟 이벤트의 발생의 표시를 수신하는 것에 응답으로, 상기 타겟 이벤트를 포함하는 이벤트 시퀀스를 조립(assemble)하고(상기 이벤트 시퀀스의 모든 이벤트는 상기 타겟 클라이언트 시스템에서 발생한 것이고, 상기 이벤트 시퀀스의 구성원은 상기 이벤트 시퀀스의 각 이벤트의 발생 시간에 따라 배열됨);
상기 표시를 수신하는 것에 응답으로, 상기 타겟 클라이언트 시스템에 따라 복수의 파라미터 값들로부터 파라미터 값을 선택하고;
상기 파라미터 값을 선택하는 것에 응답으로, 행동 모델(behavior model)을 상기 파라미터 값으로 인스턴스화(instantiate)하고(상기 행동 모델은 상기 이벤트 시퀀스의 선택된 이벤트를 입력하도록 그리고 응답으로, 상기 이벤트 시퀀스가 상기 타겟 이벤트를 포함할 가능성을 나타내는 예측 표시자를 생성하도록 구성됨); 그리고
상기 행동 모델을 인스턴스화하는 것에 응답으로, 상기 예측 표시자에 따라 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 구성되며,
상기 복수의 파라미터 값들은 복수의 클라이언트 클러스터로 그룹화되는 복수의 클라이언트 시스템에서 발생한 이벤트의 훈련 코퍼스에 따라 결정되고;
상기 복수의 파라미터 값들의 각각은 상기 훈련 코퍼스의 특징적인 서브세트(distinct subset)에 따라서 결정되고(각각의 특징적인 서브세트는 복수의 클라이언트 클러스터의 특징적인 클러스터의 구성원에서 발생함); 그리고
상기 파라미터 값을 선택하는 것은 상기 타겟 클라이언트 시스템에 따라 복수의 클라이언트 클러스터로부터 타겟 클러스터를 선택하는 것, 및 상기 타겟 클러스터에 따라 상기 파라미터 값을 선택하는 것을 포함하는 것을 특징으로 하는 적어도 하나의 하드웨어 프로세서를 포함하는 서버 컴퓨터 시스템. - 제1항에 있어서,
상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하는 것은:
상기 예측 표시자를 소정의 임계값(threshold)과 비교하는 것;
응답으로, 상기 비교가 상기 이벤트 시퀀스가 상기 타겟 이벤트를 포함할 가능성이 있음을 나타내는 경우, 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내지 않는다고 결정하는 것; 그리고
상기 비교가 상기 이벤트 시퀀스가 상기 타겟 이벤트를 포함하지 않을 가능성이 있음을 나타내는 경우, 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타낸다고 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하는 것은:
상기 예측 표시자에 따라 예측되는 이벤트를 결정하는 것;
상기 예측되는 이벤트를 상기 타겟 이벤트와 비교하는 것; 그리고
응답으로, 상기 비교 결과에 따라 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 이벤트 시퀀스는 중앙 이벤트(central event) 및 이벤트 컨텍스트를 포함하고, 상기 이벤트 컨텍스트는 상기 중앙 이벤트 이전에 발생하는 이벤트들의 제1 서브세트 및 상기 중앙 이벤트 이후에 발생하는 이벤트들의 제2 서브세트를 포함하고;
상기 선택된 이벤트는 상기 이벤트 컨텍스트의 구성원이고; 그리고
상기 예측 표시자는 상기 타겟 이벤트가 상기 이벤트 시퀀스의 상기 중앙 이벤트일 가능성을 나타내는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 행동 모델은 이벤트 임베딩 공간(event embedding space)에서 상기 타겟 이벤트의 위치를 나타내는 좌표들의 세트를 결정하도록 구성된 이벤트 인코더를 포함하고; 그리고
상기 하드웨어 프로세서는 상기 위치에 따라 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 추가적으로 구성되는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 복수의 클라이언트 시스템을 클러스터로 그룹화하는 것은:
상기 훈련 코퍼스의 훈련 이벤트가 상기 훈련 코퍼스의 다른 이벤트들의 선택된 컨텍스트에서 발생하는지 여부에 따라 복수의 이벤트 카테고리를 구성(constructing)하는 것;
상기 복수의 이벤트 카테고리를 구성하는 것에 응답으로, 각 클라이언트 시스템의 이벤트 프로파일에 따라 상기 각 클라이언트 시스템의 클러스터 할당을 결정하는 것(상기 이벤트 프로파일은 상기 각 클라이언트 시스템에서 발생하고 상기 복수의 이벤트 카테고리의 선택된 이벤트 카테고리에 속하는 이벤트의 수(count)에 따라 결정됨)을 포함하는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 파라미터 값은 상기 타겟 클러스터의 구성원에서 발생한 이벤트에서의 상기 행동 모델의 또 다른 인스턴스 훈련 결과에 따라 결정되고, 상기 행동 모델의 또 다른 인스턴스를 훈련시키는 것은:
중앙 이벤트 및 이벤트 컨텍스트를 갖는 이벤트의 훈련 시퀀스를 조립하는 것;
상기 훈련 시퀀스의 상기 이벤트 컨텍스트를 수신하는 것에 응답으로, 상기 중앙 이벤트가 상기 훈련 시퀀스에 속할 가능성을 나타내는 훈련 예측을 생성하기 위하여, 상기 행동 모델의 또 다른 인스턴스를 채용하는 것; 그리고
상기 훈련 예측에 따라 상기 파라미터 값을 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 타겟 클라이언트 시스템이 상기 타겟 클러스터의 구성원인지 여부에 따라 상기 타겟 클러스터를 선택하도록 추가적으로 구성되는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 타겟 클러스터를 선택하는 것은:
다차원 임베딩 공간(multidimensional embedding space)에서 상기 타겟 클라이언트 시스템의 위치를 나타내는 좌표들의 세트를 결정하는 것; 그리고
응답으로, 상기 좌표들의 세트에 따라 상기 타겟 클러스터를 선택하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템. - 제9항에 있어서,
상기 타겟 클러스터를 추가적으로 상기 임베딩 공간에서 상기 타겟 클러스터의 구성원의 위치를 나타내는 좌표들의 또 다른 세트에 따라서 선택하도록 구성되는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 타겟 이벤트는 상기 타겟 클라이언트 시스템에서의 선택된 프로세스의 개시를 포함하는 것을 특징으로 하는 컴퓨터 시스템. - 컴퓨터로 구현되는 방법(computer-implemented method)으로서,
타겟 클라이언트 시스템에서의 타겟 이벤트의 발생의 표시를 수신하는 것에 응답으로, 상기 타겟 이벤트를 포함하는 이벤트 시퀀스를 조립하기 위하여 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것(상기 이벤트 시퀀스의 모든 이벤트는 상기 타겟 클라이언트 시스템에서 발생한 것이고, 상기 이벤트 시퀀스의 구성원은 상기 이벤트 시퀀스의 각 이벤트의 발생 시간에 따라 배열됨);
상기 표시를 수신하는 것에 응답으로, 상기 타겟 클라이언트 시스템에 따라 복수의 파라미터 값들로부터 파라미터 값을 선택하기 위하여 상기 컴퓨터 시스템의 적어도 하나의 프로세서를 채용하는 것;
상기 세트 파라미터 값을 선택하는 것에 응답으로, 행동 모델을 상기 파라미터 값으로 인스턴스화하기 위하여 상기 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것(상기 행동 모델은 상기 이벤트 시퀀스의 선택된 이벤트를 입력하도록 그리고 응답으로, 상기 이벤트 시퀀스가 상기 타겟 이벤트를 포함할 가능성을 나타내는 예측 표시자를 생성하도록 구성됨); 그리고
상기 행동 모델을 인스턴스화하는 것에 응답으로, 상기 예측 표시자에 따라 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하기 위하여 상기 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것;을 포함하고,
상기 복수의 파라미터 값들은 복수의 클라이언트 클러스터로 그룹화되는 복수의 클라이언트 시스템에서 발생한 이벤트의 훈련 코퍼스에 따라 결정되고;
상기 복수의 파라미터 값들의 각각은 상기 훈련 코퍼스의 특징적인 서브세트에 따라서 결정되고(각각의 특징적인 서브세트는 복수의 클라이언트 클러스터의 특징적인 클러스터의 구성원에서 발생함); 그리고
상기 파라미터 값을 선택하는 것은 상기 타겟 클라이언트 시스템에 따라 복수의 클라이언트 클러스터로부터 타겟 클러스터를 선택하는 것, 및 상기 타겟 클러스터에 따라 상기 파라미터 값을 선택하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제12항에 있어서,
상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하는 것은:
상기 예측 표시자를 소정의 임계값과 비교하는 것;
응답으로, 상기 비교가 상기 이벤트 시퀀스가 상기 타겟 이벤트를 포함할 가능성이 있음을 나타내는 경우, 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내지 않는다고 결정하는 것; 그리고
상기 비교가 상기 이벤트 시퀀스가 상기 타겟 이벤트를 포함하지 않을 가능성이 있음을 나타내는 경우, 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타낸다고 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제12항에 있어서,
상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하는 것은:
상기 예측 표시자에 따라 예측되는 이벤트를 결정하는 것;
상기 예측되는 이벤트를 상기 타겟 이벤트와 비교하는 것; 그리고
응답으로, 상기 비교 결과에 따라 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제12항에 있어서,
상기 이벤트 시퀀스는 중앙 이벤트 및 이벤트 컨텍스트를 포함하고, 상기 이벤트 컨텍스트는 상기 중앙 이벤트 이전에 발생하는 이벤트들의 제1 서브세트 및 상기 중앙 이벤트 이후에 발생하는 이벤트들의 제2 서브세트를 포함하고;
상기 선택된 이벤트는 상기 이벤트 컨텍스트의 구성원이고; 그리고
상기 예측 표시자는 상기 타겟 이벤트가 상기 이벤트 시퀀스의 상기 중앙 이벤트일 가능성을 나타내는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제12항에 있어서,
상기 행동 모델은 이벤트 임베딩 공간에서 상기 타겟 이벤트의 위치를 나타내는 좌표들의 세트를 결정하도록 구성된 이벤트 인코더를 포함하고; 그리고
상기 적어도 하나의 하드웨어 프로세서는 상기 위치에 따라 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 추가적으로 구성되는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제12항에 있어서,
상기 복수의 클라이언트 시스템을 클러스터로 그룹화하는 것은:
상기 훈련 코퍼스의 훈련 이벤트가 상기 훈련 코퍼스의 다른 이벤트들의 선택된 컨텍스트에서 발생하는지 여부에 따라 복수의 이벤트 카테고리를 구성하는 것;
상기 복수의 이벤트 카테고리를 구성하는 것에 응답으로, 각 클라이언트 시스템의 이벤트 프로파일에 따라 상기 각 클라이언트 시스템의 클러스터 할당을 결정하는 것(상기 이벤트 프로파일은 상기 각 클라이언트 시스템에서 발생하고 상기 복수의 이벤트 카테고리의 선택된 이벤트 카테고리에 속하는 이벤트의 수에 따라 결정됨)을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제12항에 있어서,
상기 파라미터 값은 상기 타겟 클러스터의 구성원에서 발생한 이벤트에서의 상기 행동 모델의 또 다른 인스턴스 훈련 결과에 따라 결정되고, 상기 행동 모델의 또 다른 인스턴스를 훈련시키는 것은:
중앙 이벤트 및 이벤트 컨텍스트를 갖는 이벤트의 훈련 시퀀스를 조립하는 것;
상기 훈련 시퀀스의 상기 이벤트 컨텍스트를 수신하는 것에 응답으로, 상기 중앙 이벤트가 상기 훈련 시퀀스에 속할 가능성을 나타내는 훈련 예측을 생성하기 위하여, 상기 행동 모델의 또 다른 인스턴스를 채용하는 것; 그리고
상기 훈련 예측에 따라 상기 파라미터 값을 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제12항에 있어서,
상기 타겟 클라이언트 시스템이 상기 타겟 클러스터의 구성원인지 여부에 따라 상기 타겟 클러스터를 선택하는 것을 추가적으로 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제12항에 있어서,
상기 타겟 클러스터를 선택하는 것은:
다차원 임베딩 공간에서 상기 타겟 클라이언트 시스템의 위치를 나타내는 좌표들의 세트를 결정하는 것; 그리고
응답으로, 상기 좌표들의 세트에 따라 상기 타겟 클러스터를 선택하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제20항에 있어서,
상기 타겟 클러스터를 추가적으로 상기 임베딩 공간에서 상기 타겟 클러스터의 구성원의 위치를 나타내는 좌표들의 또 다른 세트에 따라서 선택하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제12항에 있어서,
상기 타겟 이벤트는 상기 타겟 클라이언트 시스템에서의 선택된 프로세스의 개시를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서에 의하여 실행될 때, 상기 컴퓨터 시스템으로 하여금:
타겟 클라이언트 시스템에서의 타겟 이벤트의 발생의 표시를 수신하는 것에 응답으로, 상기 타겟 이벤트를 포함하는 이벤트 시퀀스를 조립하고(상기 이벤트 시퀀스의 모든 이벤트는 상기 타겟 클라이언트 시스템에서 발생한 것이고, 상기 이벤트 시퀀스의 구성원은 상기 이벤트 시퀀스의 각 이벤트의 발생 시간에 따라 배열됨);
상기 표시를 수신하는 것에 응답으로, 상기 타겟 클라이언트 시스템에 따라 복수의 파라미터 값들로부터 파라미터 값을 선택하고;
상기 파라미터 값을 선택하는 것에 응답으로, 행동 모델을 상기 파라미터 값으로 인스턴스화하고(상기 행동 모델은 상기 이벤트 시퀀스의 선택된 이벤트를 입력하도록 그리고 응답으로, 상기 이벤트 시퀀스가 상기 타겟 이벤트를 포함할 가능성을 나타내는 예측 표시자를 생성하도록 구성됨); 그리고
상기 행동 모델을 인스턴스화하는 것에 응답으로, 상기 예측 표시자에 따라 상기 타겟 이벤트가 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 하고,
상기 복수의 파라미터 값들은 복수의 클라이언트 클러스터로 그룹화되는 복수의 클라이언트 시스템에서 발생한 이벤트의 훈련 코퍼스에 따라 결정되고;
상기 복수의 파라미터 값들의 각각은 상기 훈련 코퍼스의 특징적인 서브세트에 따라서 결정되고(각각의 특징적인 서브세트는 복수의 클라이언트 클러스터의 특징적인 클러스터의 구성원에서 발생함); 그리고
상기 파라미터 값을 선택하는 것은 상기 타겟 클라이언트 시스템에 따라 복수의 클라이언트 클러스터로부터 타겟 클러스터를 선택하는 것, 및 상기 타겟 클러스터에 따라 상기 파라미터 값을 선택하는 것을 포함하도록 하는 명령들을 저장하는 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/215,251 | 2018-12-10 | ||
US16/215,251 US11153332B2 (en) | 2018-12-10 | 2018-12-10 | Systems and methods for behavioral threat detection |
PCT/EP2019/084312 WO2020120429A1 (en) | 2018-12-10 | 2019-12-10 | Systems and methods for behavioral threat detection |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210102897A true KR20210102897A (ko) | 2021-08-20 |
KR102403629B1 KR102403629B1 (ko) | 2022-05-31 |
Family
ID=68841136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217017510A KR102403629B1 (ko) | 2018-12-10 | 2019-12-10 | 행동 위협 탐지를 위한 시스템 및 방법 |
Country Status (11)
Country | Link |
---|---|
US (1) | US11153332B2 (ko) |
EP (1) | EP3895048B1 (ko) |
JP (1) | JP7389806B2 (ko) |
KR (1) | KR102403629B1 (ko) |
CN (1) | CN113168469B (ko) |
AU (1) | AU2019400060B2 (ko) |
CA (1) | CA3120423C (ko) |
ES (1) | ES2946062T3 (ko) |
IL (1) | IL283698B2 (ko) |
SG (1) | SG11202105054UA (ko) |
WO (1) | WO2020120429A1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10805331B2 (en) | 2010-09-24 | 2020-10-13 | BitSight Technologies, Inc. | Information technology security assessment system |
US10521583B1 (en) | 2018-10-25 | 2019-12-31 | BitSight Technologies, Inc. | Systems and methods for remote detection of software through browser webinjects |
KR102165494B1 (ko) * | 2018-12-28 | 2020-10-14 | 네이버 주식회사 | 온라인 서비스에서의 비정상 사용 행위 식별 방법, 장치 및 컴퓨터 프로그램 |
US11032244B2 (en) | 2019-09-30 | 2021-06-08 | BitSight Technologies, Inc. | Systems and methods for determining asset importance in security risk management |
US11023585B1 (en) | 2020-05-27 | 2021-06-01 | BitSight Technologies, Inc. | Systems and methods for managing cybersecurity alerts |
US20220284433A1 (en) * | 2021-03-04 | 2022-09-08 | Capital One Services, Llc | Unidimensional embedding using multi-modal deep learning models |
CN115456789B (zh) * | 2022-11-10 | 2023-04-07 | 杭州衡泰技术股份有限公司 | 基于交易模式识别的异常交易检测方法及其系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140059227A (ko) * | 2011-09-09 | 2014-05-15 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 이벤트들의 시퀀스에서의 시간적 위치에 따른 기준 베이스라인에 기초하여 이벤트들의 평가를 위한 시스템 및 방법 |
US20170140384A1 (en) * | 2015-11-12 | 2017-05-18 | Fair Isaac Corporation | Event sequence probability enhancement of streaming fraud analytics |
US20180004961A1 (en) * | 2014-10-06 | 2018-01-04 | Exabeam, Inc. | System, method, and computer program product for detecting and assessing security risks in a network |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6526405B1 (en) * | 1999-12-17 | 2003-02-25 | Microsoft Corporation | Determining similarity between event types in sequences |
AU2001262958A1 (en) | 2000-04-28 | 2001-11-12 | Internet Security Systems, Inc. | Method and system for managing computer security information |
US6742124B1 (en) | 2000-05-08 | 2004-05-25 | Networks Associates Technology, Inc. | Sequence-based anomaly detection using a distance matrix |
US6973577B1 (en) | 2000-05-26 | 2005-12-06 | Mcafee, Inc. | System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state |
US7818797B1 (en) | 2001-10-11 | 2010-10-19 | The Trustees Of Columbia University In The City Of New York | Methods for cost-sensitive modeling for intrusion detection and response |
US7035863B2 (en) | 2001-11-13 | 2006-04-25 | Koninklijke Philips Electronics N.V. | Method, system and program product for populating a user profile based on existing user profiles |
US7234166B2 (en) | 2002-11-07 | 2007-06-19 | Stonesoft Corporation | Event sequence detection |
US7716739B1 (en) | 2005-07-20 | 2010-05-11 | Symantec Corporation | Subjective and statistical event tracking incident management system |
JP2007242002A (ja) | 2006-02-10 | 2007-09-20 | Mitsubishi Electric Corp | ネットワーク管理装置及びネットワーク管理方法及びプログラム |
WO2008055156A2 (en) | 2006-10-30 | 2008-05-08 | The Trustees Of Columbia University In The City Of New York | Methods, media, and systems for detecting an anomalous sequence of function calls |
US8448249B1 (en) | 2007-07-31 | 2013-05-21 | Hewlett-Packard Development Company, L.P. | Methods and systems for using lambda transitions for processing regular expressions in intrusion-prevention systems |
US8719936B2 (en) | 2008-02-01 | 2014-05-06 | Northeastern University | VMM-based intrusion detection system |
US20090328215A1 (en) | 2008-06-30 | 2009-12-31 | Microsoft Corporation | Semantic networks for intrusion detection |
GB0816556D0 (en) | 2008-09-10 | 2008-10-15 | Univ Napier | Improvements in or relating to digital forensics |
US8370931B1 (en) | 2008-09-17 | 2013-02-05 | Trend Micro Incorporated | Multi-behavior policy matching for malware detection |
US20120137367A1 (en) * | 2009-11-06 | 2012-05-31 | Cataphora, Inc. | Continuous anomaly detection based on behavior modeling and heterogeneous information analysis |
US8661034B2 (en) | 2010-02-03 | 2014-02-25 | Gartner, Inc. | Bimodal recommendation engine for recommending items and peers |
US8752171B2 (en) | 2010-09-03 | 2014-06-10 | Mcafee, Inc. | Behavioral tracking system, method, and computer program product for undoing events based on user input |
US8572239B2 (en) | 2010-09-20 | 2013-10-29 | Microsoft Corporation | Node clustering |
US20120278354A1 (en) | 2011-04-29 | 2012-11-01 | Microsoft Corporation | User analysis through user log feature extraction |
US8881289B2 (en) | 2011-10-18 | 2014-11-04 | Mcafee, Inc. | User behavioral risk assessment |
US8839435B1 (en) | 2011-11-04 | 2014-09-16 | Cisco Technology, Inc. | Event-based attack detection |
US9129227B1 (en) | 2012-12-31 | 2015-09-08 | Google Inc. | Methods, systems, and media for recommending content items based on topics |
US9679131B2 (en) | 2013-01-25 | 2017-06-13 | Cybereason Inc. | Method and apparatus for computer intrusion detection |
US20140230062A1 (en) | 2013-02-12 | 2014-08-14 | Cisco Technology, Inc. | Detecting network intrusion and anomaly incidents |
US9225737B2 (en) | 2013-03-15 | 2015-12-29 | Shape Security, Inc. | Detecting the introduction of alien content |
US9166993B1 (en) | 2013-07-25 | 2015-10-20 | Symantec Corporation | Anomaly detection based on profile history and peer history |
GB2519941B (en) | 2013-09-13 | 2021-08-25 | Elasticsearch Bv | Method and apparatus for detecting irregularities on device |
US10346465B2 (en) | 2013-12-20 | 2019-07-09 | Qualcomm Incorporated | Systems, methods, and apparatus for digital composition and/or retrieval |
US20170039198A1 (en) * | 2014-05-15 | 2017-02-09 | Sentient Technologies (Barbados) Limited | Visual interactive search, scalable bandit-based visual interactive search and ranking for visual interactive search |
US9985979B2 (en) | 2014-11-18 | 2018-05-29 | Vectra Networks, Inc. | Method and system for detecting threats using passive cluster mapping |
US9652316B2 (en) | 2015-03-31 | 2017-05-16 | Ca, Inc. | Preventing and servicing system errors with event pattern correlation |
US9536072B2 (en) * | 2015-04-09 | 2017-01-03 | Qualcomm Incorporated | Machine-learning behavioral analysis to detect device theft and unauthorized device usage |
US20160335432A1 (en) | 2015-05-17 | 2016-11-17 | Bitdefender IPR Management Ltd. | Cascading Classifiers For Computer Security Applications |
US20160352759A1 (en) | 2015-05-25 | 2016-12-01 | Yan Zhai | Utilizing Big Data Analytics to Optimize Information Security Monitoring And Controls |
CN105989849B (zh) | 2015-06-03 | 2019-12-03 | 乐融致新电子科技(天津)有限公司 | 一种语音增强方法、语音识别方法、聚类方法及装置 |
WO2017100534A1 (en) | 2015-12-11 | 2017-06-15 | Servicenow, Inc. | Computer network threat assessment |
JP6679943B2 (ja) | 2016-01-15 | 2020-04-15 | 富士通株式会社 | 検知プログラム、検知方法および検知装置 |
US9762611B2 (en) | 2016-02-16 | 2017-09-12 | Cylance Inc. | Endpoint-based man in the middle attack detection using machine learning models |
US10218726B2 (en) | 2016-03-25 | 2019-02-26 | Cisco Technology, Inc. | Dynamic device clustering using device profile information |
WO2018013982A1 (en) | 2016-07-14 | 2018-01-18 | Google Llc | Classifying images using machine learning models |
US10832165B2 (en) | 2016-12-02 | 2020-11-10 | Facebook, Inc. | Systems and methods for online distributed embedding services |
US10552501B2 (en) | 2017-03-28 | 2020-02-04 | Oath Inc. | Multilabel learning via supervised joint embedding of documents and labels |
US10726128B2 (en) | 2017-07-24 | 2020-07-28 | Crowdstrike, Inc. | Malware detection using local computational models |
US12061954B2 (en) | 2017-10-27 | 2024-08-13 | Intuit Inc. | Methods, systems, and computer program product for dynamically modifying a dynamic flow of a software application |
US20190296933A1 (en) | 2018-03-20 | 2019-09-26 | Microsoft Technology Licensing, Llc | Controlling Devices Based on Sequence Prediction |
US11636287B2 (en) | 2018-03-28 | 2023-04-25 | Intuit Inc. | Learning form-based information classification |
US20190340615A1 (en) * | 2018-05-04 | 2019-11-07 | International Business Machines Corporation | Cognitive methodology for sequence of events patterns in fraud detection using event sequence vector clustering |
-
2018
- 2018-12-10 US US16/215,251 patent/US11153332B2/en active Active
-
2019
- 2019-12-10 WO PCT/EP2019/084312 patent/WO2020120429A1/en unknown
- 2019-12-10 EP EP19817694.3A patent/EP3895048B1/en active Active
- 2019-12-10 SG SG11202105054UA patent/SG11202105054UA/en unknown
- 2019-12-10 CN CN201980081446.2A patent/CN113168469B/zh active Active
- 2019-12-10 AU AU2019400060A patent/AU2019400060B2/en active Active
- 2019-12-10 ES ES19817694T patent/ES2946062T3/es active Active
- 2019-12-10 JP JP2021533157A patent/JP7389806B2/ja active Active
- 2019-12-10 KR KR1020217017510A patent/KR102403629B1/ko active IP Right Grant
- 2019-12-10 CA CA3120423A patent/CA3120423C/en active Active
- 2019-12-10 IL IL283698A patent/IL283698B2/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140059227A (ko) * | 2011-09-09 | 2014-05-15 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 이벤트들의 시퀀스에서의 시간적 위치에 따른 기준 베이스라인에 기초하여 이벤트들의 평가를 위한 시스템 및 방법 |
US20180004961A1 (en) * | 2014-10-06 | 2018-01-04 | Exabeam, Inc. | System, method, and computer program product for detecting and assessing security risks in a network |
US20170140384A1 (en) * | 2015-11-12 | 2017-05-18 | Fair Isaac Corporation | Event sequence probability enhancement of streaming fraud analytics |
Also Published As
Publication number | Publication date |
---|---|
JP7389806B2 (ja) | 2023-11-30 |
CA3120423A1 (en) | 2020-06-18 |
EP3895048B1 (en) | 2023-04-05 |
JP2022512195A (ja) | 2022-02-02 |
AU2019400060A1 (en) | 2021-06-03 |
WO2020120429A1 (en) | 2020-06-18 |
SG11202105054UA (en) | 2021-06-29 |
IL283698B1 (en) | 2024-01-01 |
EP3895048A1 (en) | 2021-10-20 |
US20200186546A1 (en) | 2020-06-11 |
KR102403629B1 (ko) | 2022-05-31 |
IL283698B2 (en) | 2024-05-01 |
ES2946062T3 (es) | 2023-07-12 |
AU2019400060B2 (en) | 2024-01-11 |
US11153332B2 (en) | 2021-10-19 |
CN113168469A (zh) | 2021-07-23 |
CA3120423C (en) | 2024-05-28 |
IL283698A (en) | 2021-07-29 |
CN113168469B (zh) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102403622B1 (ko) | 행동 위협 탐지를 위한 시스템 및 방법 | |
KR102403629B1 (ko) | 행동 위협 탐지를 위한 시스템 및 방법 | |
KR102404041B1 (ko) | 행동 위협 탐지를 위한 시스템 및 방법 | |
AU2019398304B2 (en) | Systems and methods for behavioral threat detection | |
RU2803399C2 (ru) | Системы и способы детектирования поведенческих угроз | |
RU2772549C1 (ru) | Системы и способы детектирования поведенческих угроз | |
RU2778630C1 (ru) | Системы и способы детектирования поведенческих угроз |
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 |