KR20230156262A - 기계 학습 기반 멀웨어 검출을 위한 시스템 및 방법 - Google Patents

기계 학습 기반 멀웨어 검출을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20230156262A
KR20230156262A KR1020230057455A KR20230057455A KR20230156262A KR 20230156262 A KR20230156262 A KR 20230156262A KR 1020230057455 A KR1020230057455 A KR 1020230057455A KR 20230057455 A KR20230057455 A KR 20230057455A KR 20230156262 A KR20230156262 A KR 20230156262A
Authority
KR
South Korea
Prior art keywords
network data
malware
source
communication interval
dyads
Prior art date
Application number
KR1020230057455A
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 KR20230156262A publication Critical patent/KR20230156262A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)

Abstract

방법은 비나인 네트워크 데이터 및 멀웨어 네트워크 데이터를 포함하는 네트워크 데이터의 트레이닝 세트를 획득하는 단계; 상기 네트워크 데이터의 트레이닝 세트 내의 각각의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 특징 추출 엔진을 관여시키는 단계; 상기 다이애드들의 세트를 사용하여, 상기 비나인 네트워크 데이터와 상기 멀웨어 네트워크 데이터 사이를 구별하도록 기계 학습 엔진을 트레이닝하는 단계를 포함한다.

Description

기계 학습 기반 멀웨어 검출을 위한 시스템 및 방법{SYSTEM AND METHOD FOR MACHINE LEARNING BASED MALWARE DETECTION}
본 개시내용은 기계 학습에 관한 것으로, 특히 기계 학습 기반 멀웨어 검출(machine learning based malware detection)을 위한 시스템 및 방법에 관한 것이다.
명령 및 제어는 공격자들이 지속성을 유지하고, 감염된 호스트들과 통신하고, 데이터를 유출하고 명령들을 발행하는 것을 허용하는 착취 후 전술(post-exploitation tactic)이다. 호스트가 감염되면, 멀웨어는 공격자에게 명령 및 제어 채널을 설정한다. 검출을 피하기 위해, 에이전트들은 종종 오랜 기간 동안 휴면 상태에 있고, 추가의 명령어들을 위해 서버와 주기적으로 통신한다. 이들 간헐적인 통신은 멀웨어 비컨(malware beacon)들이라고 지칭된다.
네트워크 데이터에서 멀웨어 비컨들의 존재를 검출하는 것은 여러 가지 이유로 인해 어렵다. 예를 들어, 이식된 에이전트들에 대한 체크인 간격(check-in interval)이 달라지고 대부분의 명령 및 제어 시스템들은 예를 들어 콜백 시간(callback time)에 랜덤 지터(random jitter)를 추가하는 것 등에 의해 검출을 피하기 위한 내장 기법들을 갖는다. 다른 예로서, 멀웨어 비컨들은 종종 DNS 또는 HTTP 요청들과 같은 정상 통신들을 모방함으로써 네트워크 데이터로서 위장된다.
이제 본 출원의 예시적인 실시예들을 도시하는 첨부 도면들을 예로서 참조한다.
도 1은 실시예에 따른 기계 학습 기반 멀웨어 검출을 위한 시스템의 하이-레벨 블록도를 도시한다.
도 2는 실시예에 따른 멀웨어 검출을 위해 기계 학습 엔진을 트레이닝하기 위한 방법을 예시하는 흐름도를 제공한다.
도 3a는 도 2의 방법에 따라 기계 학습 엔진을 트레이닝하기 위해 사용되는 멀웨어 네트워크 데이터의 데이터 송신들을 도시하는 그래프이다.
도 3b는 도 2의 방법에 따라 기계 학습 엔진을 트레이닝하기 위해 사용되는 비나인 네트워크 데이터(benign network data)의 데이터 송신들을 도시하는 그래프이다.
도 4a는 도 2의 방법에 따라 기계 학습 엔진을 트레이닝하기 위해 사용되는 멀웨어 네트워크 데이터의 통신 간격들을 도시하는 그래프이다.
도 4b는 도 2의 방법에 따라 기계 학습 엔진을 트레이닝하기 위해 사용되는 비나인 네트워크 데이터의 통신 간격들을 도시하는 그래프이다.
도 5는 기계 학습 기반 멀웨어 검출을 위한 방법을 예시하는 흐름도를 제공한다.
도 6은 블랙리스트에 인터넷 프로토콜 주소를 추가하기 위한 방법을 예시하는 흐름도를 제공한다.
도 7은 실시예에 따른 예시적인 컴퓨팅 디바이스의 하이-레벨 블록도를 도시한다.
도면들에서는 유사한 참조 번호들이 유사한 요소들 및 특징들을 나타내기 위해 사용된다.
따라서, 일 양태에서는 비나인 네트워크 데이터 및 멀웨어 네트워크 데이터를 포함하는 네트워크 데이터의 트레이닝 세트를 획득하는 단계; 상기 네트워크 데이터의 트레이닝 세트 내의 각각의 소스-목적지 쌍(source-destination pair)에 대한 다이애드(dyad)들의 세트를 생성하기 위해 특징 추출 엔진을 관여시키는(engage) 단계; 상기 다이애드들의 세트를 사용하여, 상기 비나인 네트워크 데이터와 상기 멀웨어 네트워크 데이터 사이를 구별하도록 기계 학습 엔진을 트레이닝하는 단계를 포함하는 방법이 제공된다.
하나 이상의 실시예에서, 상기 방법은 적어도 하나의 소스-목적지 쌍에 대한 적어도 하나의 새로운 이벤트를 식별하는 네트워크 데이터를 획득하는 단계; 상기 적어도 하나의 새로운 이벤트와 연관된 상기 적어도 하나의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 상기 특징 추출 엔진을 관여시키는 단계; 및 상기 적어도 하나의 새로운 이벤트와 연관된 상기 적어도 하나의 소스-목적지 쌍에 대한 상기 다이애드들의 세트를 분류를 위해 상기 기계 학습 엔진에 송신하는 단계를 더 포함한다.
하나 이상의 실시예에서, 상기 방법은, 상기 기계 학습 엔진으로부터, 상기 적어도 하나의 소스-목적지 쌍을 비나인 또는 멀웨어 중 하나로서 분류하는 데이터를 수신하는 단계를 더 포함한다.
하나 이상의 실시예에서, 상기 방법은 상기 기계 학습 엔진으로부터, 상기 적어도 하나의 소스-목적지 쌍을 멀웨어로서 분류하는 데이터를 수신하는 단계; 및 상기 소스 또는 상기 목적지 중 적어도 하나의 인터넷 프로토콜 주소를 블랙리스트에 추가하는 단계를 더 포함한다.
하나 이상의 실시예에서, 상기 방법은 트레이닝 멀웨어 서버를 사용하여, 상기 멀웨어 네트워크 데이터가 상기 트레이닝 멀웨어 서버와 연관되는 것으로 알려진 인터넷 프로토콜 주소를 포함하도록 상기 멀웨어 네트워크 데이터를 생성하는 단계를 더 포함한다.
하나 이상의 실시예에서, 상기 멀웨어 네트워크 데이터는 통신 간격, 지터 양, 또는 데이터 채널 중 적어도 하나를 변경함으로써 멀웨어 비컨들을 모방하도록 생성된다.
하나 이상의 실시예에서, 각각의 소스-목적지 쌍에 대한 상기 다이애드들의 세트는 통신 간격 스큐(communication interval skew) 및 통신 간격 첨도(communication interval kurtosis)를 포함한다.
하나 이상의 실시예에서, 상기 멀웨어 네트워크 데이터는 상기 비나인 네트워크 데이터보다 더 일관된 통신 간격 스큐를 포함한다.
하나 이상의 실시예에서, 상기 멀웨어 네트워크 데이터는 상기 비나인 네트워크 데이터보다 더 균일하게 클러스터링되는 통신 간격 첨도를 포함한다.
하나 이상의 실시예에서, 상기 다이애드들의 세트는 플로우 이벤트(flow event)들의 수, 다운 바이트들의 평균, 다운 바이트들의 표준 편차, 업 바이트들의 평균, 업 바이트들의 표준 편차, 통신 간격 평균, 통신 간격 표준 편차, 통신 간격 스큐, 통신 간격 첨도, 목적지에 접속한 로컬 엔드포인트들의 수 및 로컬 엔드포인트가 접속한 원격 엔드포인트들의 수를 포함한다.
다른 양태에 따르면, 적어도 하나의 프로세서; 및 상기 적어도 하나의 프로세서에 결합되고 명령어들을 저장하는 메모리를 포함하는 시스템이 제공되며, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서를, 비나인 네트워크 데이터 및 멀웨어 네트워크 데이터를 포함하는 네트워크 데이터의 트레이닝 세트를 획득하고; 상기 네트워크 데이터의 트레이닝 세트 내의 각각의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 특징 추출 엔진을 관여시키고; 상기 다이애드들의 세트를 사용하여, 상기 비나인 네트워크 데이터와 상기 멀웨어 네트워크 데이터 사이를 구별하도록 기계 학습 엔진을 트레이닝하도록 구성한다.
하나 이상의 실시예에서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서를 또한, 적어도 하나의 소스-목적지 쌍에 대한 적어도 하나의 새로운 이벤트를 식별하는 네트워크 데이터를 획득하고; 상기 적어도 하나의 새로운 이벤트와 연관된 상기 적어도 하나의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 상기 특징 추출 엔진을 관여시키고; 상기 적어도 하나의 새로운 이벤트와 연관된 상기 적어도 하나의 소스-목적지 쌍에 대한 상기 다이애드들의 세트를 분류를 위해 상기 기계 학습 엔진에 송신하도록 구성한다.
하나 이상의 실시예에서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서를 또한, 상기 기계 학습 엔진으로부터, 상기 적어도 하나의 소스-목적지 쌍을 비나인 또는 멀웨어 중 하나로서 분류하는 데이터를 수신하도록 구성한다.
하나 이상의 실시예에서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서를 또한, 상기 기계 학습 엔진으로부터, 상기 적어도 하나의 소스-목적지 쌍을 멀웨어로서 분류하는 데이터를 수신하고; 상기 소스 또는 상기 목적지 중 적어도 하나의 인터넷 프로토콜 주소를 블랙리스트에 추가하도록 구성한다.
하나 이상의 실시예에서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서를 또한, 트레이닝 멀웨어 서버를 사용하여, 상기 멀웨어 네트워크 데이터가 상기 트레이닝 멀웨어 서버와 연관되는 것으로 알려진 인터넷 프로토콜 주소를 포함하도록 상기 멀웨어 네트워크 데이터를 생성하도록 구성한다.
하나 이상의 실시예에서, 상기 멀웨어 네트워크 데이터는 통신 간격, 지터 양, 또는 데이터 채널 중 적어도 하나를 변경함으로써 멀웨어 비컨들을 모방하도록 생성된다.
하나 이상의 실시예에서, 각각의 소스-목적지 쌍에 대한 상기 다이애드들의 세트는 통신 간격 스큐 및 통신 간격 첨도를 포함한다.
하나 이상의 실시예에서, 상기 멀웨어 네트워크 데이터는 상기 비나인 네트워크 데이터보다 더 일관된 통신 간격 스큐 또는 상기 비나인 네트워크 데이터보다 더 균일하게 클러스터링되는 통신 간격 첨도 중 적어도 하나를 포함한다.
하나 이상의 실시예에서, 상기 다이애드들의 세트는 플로우 이벤트들의 수, 다운 바이트들의 평균, 다운 바이트들의 표준 편차, 업 바이트들의 평균, 업 바이트들의 표준 편차, 통신 간격 평균, 통신 간격 표준 편차, 통신 간격 스큐, 통신 간격 첨도, 목적지에 접속한 로컬 엔드포인트들의 수 및 로컬 엔드포인트가 접속한 원격 엔드포인트들의 수를 포함한다.
다른 양태에 따르면 프로세서 실행 가능 명령어들이 저장되어 있는 비일시적 컴퓨터 판독 가능 매체가 제공되며, 상기 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서가 비나인 네트워크 데이터 및 멀웨어 네트워크 데이터를 포함하는 네트워크 데이터의 트레이닝 세트를 획득하게 하고; 상기 네트워크 데이터의 트레이닝 세트 내의 각각의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 특징 추출 엔진을 관여시키게 하고; 상기 다이애드들의 세트를 사용하여, 상기 비나인 네트워크 데이터와 상기 멀웨어 네트워크 데이터 사이를 구별하도록 기계 학습 엔진을 트레이닝하게 한다.
본 개시내용의 다른 예시적인 실시예들은 도면들과 함께 다음의 상세한 설명의 검토로부터 본 기술분야의 통상의 기술자들에게 명백할 것이다.
본 출원에서, "및/또는"이라는 용어는, 열거된 요소들 중 어느 하나만을, 임의의 부분 조합을, 또는 요소들 전부를 포함하여, 열거된 요소들의 모든 가능한 조합 및 부분 조합을 커버하도록 의도되어 있으며, 반드시 추가적인 요소들을 배제하는 것은 아니다.
본 출원에서, "... 또는 ... 중 적어도 하나"라는 문구는, 열거된 요소들 중 어느 하나만을, 임의의 부분 조합을, 또는 요소들 전부를 포함하여, 열거된 요소들 중 어느 하나 이상을 커버하도록 의도되어 있으며, 반드시 임의의 추가적인 요소들을 배제하는 것은 아니고, 반드시 요소들 전부를 필요로 하는 것은 아니다.
도 1은 실시예에 따른 기계 학습 기반 멀웨어 검출을 위한 시스템(100)의 하이-레벨 블록도이다. 시스템(100)은 서버 컴퓨터 시스템(110) 및 데이터 저장소(120)를 포함한다.
데이터 저장소(120)는 다양한 데이터 레코드들을 포함할 수 있다. 데이터 레코드들 중 적어도 일부는 네트워크 데이터를 포함할 수 있다. 네트워크 데이터는 비나인 네트워크 데이터 및 멀웨어 네트워크 데이터를 포함하는 네트워크 데이터의 트레이닝 세트를 포함할 수 있다. 기술되는 바와 같이, 비나인 네트워크 데이터는 비나인인 것으로 알려진, 즉 멀웨어를 포함하지 않는 것으로 알려진 네트워크 데이터를 포함할 수 있다. 멀웨어 네트워크 데이터는 멀웨어인 것으로 알려진 네트워크 데이터를 포함할 수 있다. 각각의 네트워크 로그는 플로우 이벤트라고 지칭될 수 있다.
하나 이상의 실시예에서, 데이터 저장소(120)에 저장된 네트워크 데이터는 네트워크 로그들을 포함할 수 있는데, 여기서 각각의 네트워크 로그는 특정의 목적지와 특정의 원격 엔드포인트 사이의 플로우 이벤트이다. 각각의 네트워크 로그는 타임스탬프, 소스 인터넷 프로토콜(IP) 주소, 목적지 IP 주소, 소스 포트, 목적지 포트 등을 포함할 수 있다. 네트워크 로그는 예를 들어 패킷 크기들, 업/다운 바이트들 등과 같은 데이터 송신 정보를 더 포함할 수 있다.
데이터 저장소(120)는 신뢰되는 것으로 알려진 IP 주소들을 포함하는 하나 이상의 화이트리스트를 추가로 유지할 수 있고, 멀웨어인 것으로 알려진 IP 주소들을 포함하는 하나 이상의 블랙리스트를 유지할 수 있다. 기술되는 바와 같이, 하나 이상의 화이트리스트는 화이트리스트된 IP 주소와 연관된 임의의 플로우 이벤트들이 분류의 대상이 아닐 수 있도록 참고될 수 있다. 유사하게, 하나 이상의 블랙리스트는 블랙리스트된 IP 주소와 연관된 임의의 플로우 이벤트들이 차단될 수 있거나 경보가 발생될 수 있도록 참고될 수 있다.
데이터 저장소(120)는 임계 기간 내에 발생한 네트워크 데이터만을 저장할 수 있다. 예를 들어, 데이터 저장소(120)는 지난 7일 동안의 네트워크 데이터만을 저장할 수 있으며, 그에 따라 7일보다 오래된 네트워크 데이터는 드롭하거나, 소거하거나 또는 달리 삭제할 수 있다.
하나 이상의 실시예에서, 시스템(100)은 멀웨어 엔진(130), 특징 추출 엔진(140), 및 기계 학습 엔진(150)을 포함한다. 멀웨어 엔진(130) 및 특징 추출 엔진(140)은 서버 컴퓨터 시스템(110)과 통신한다. 멀웨어 엔진(130)은 네트워크 데이터를 로컬로 로그할 수 있고, 로그된 네트워크 데이터를 서버 컴퓨터 시스템(110)을 통해 데이터 저장소(120)로 내보낼 수 있다. 기계 학습 엔진(150)은 특징 추출 엔진(140) 및 서버 컴퓨터 시스템(110)과 통신한다. 멀웨어 엔진(130), 특징 추출 엔진(140) 및 기계 학습 엔진(150)은 상이한 환경들에서의 개별 컴퓨팅 디바이스들일 수 있다.
멀웨어 엔진(130)은 기계 학습 엔진(150)을 트레이닝하기 위해 사용될 수 있는 멀웨어 네트워크 데이터를 생성하도록 구성될 수 있다. 멀웨어 네트워크 데이터는 소스와 목적지 쌍 사이에서 통신되는 멀웨어 비컨들을 포함할 수 있다. 하나 이상의 실시예에서, 멀웨어 엔진은 트레이닝 멀웨어 서버와 같은 가상 서버 및 하나 이상의 가상 컴퓨팅 디바이스를 포함할 수 있고, 가상 서버와 하나 이상의 가상 컴퓨팅 디바이스 사이의 통신이 멀웨어 네트워크 데이터로서 로그될 수 있다.
멀웨어 엔진(130)은, 예를 들어, 비컨 간격, 지터 양, 데이터 채널들 등을 변경함으로써 멀웨어 네트워크 데이터를 생성하도록 구성될 수 있으며, 이러한 방식으로 광범위한 비컨 난독화가 획득된다. 멀웨어 네트워크 데이터는 트레이닝 멀웨어 서버의 IP 주소를 포함할 수 있고, 이는 기계 학습 엔진(150)을 트레이닝하기 위해 사용될 수 있다. 예를 들어, 트레이닝 멀웨어 서버의 IP 주소를 포함하는 임의의 네트워크 로그들이 멀웨어 네트워크 데이터로서 식별될 수 있다.
기술되는 바와 같이, 멀웨어 엔진(130)에 의해 생성된 멀웨어 네트워크 데이터는 데이터 저장소(120)에 저장되어 기계 학습 엔진(150)을 트레이닝하기 위해 사용될 수 있다.
특징 추출 엔진(140)은 데이터 저장소(120)로부터 수신된 네트워크 데이터를 분석하여 네트워크 데이터의 각각의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하도록 구성된다. 네트워크 데이터의 각각의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해, 특징 추출 엔진(140)은 네트워크 데이터를 분석하여 소스-목적지 쌍에 의해 네트워크 데이터를 분류할 수 있다. 각각의 소스-목적지 쌍에 대해, 다이애드들의 세트는 플로우 이벤트들의 수, 다운 바이트들의 평균, 다운 바이트들의 표준 편차, 업 바이트들의 평균, 업 바이트들의 표준 편차, 통신 간격 평균, 통신 간격 표준 편차, 통신 간격 스큐, 통신 간격 첨도, 목적지에 접속한 로컬 엔드포인트들의 수 및 로컬 엔드포인트가 접속한 원격 엔드포인트들의 수를 포함할 수 있다.
플로우 이벤트들의 수는 소스-목적지 쌍에 대한 네트워크 데이터에서 몇개의 플로우 이벤트가 발생하는지에 대한 카운트를 포함할 수 있다. 각각의 네트워크 로그가 플로우 이벤트이므로, 특징 추출 엔진(140)은 네트워크 데이터의 소스-목적지 쌍에 대한 네트워크 로그들의 수를 카운트할 수 있으며, 이는 소스-목적지 쌍당 플로우 이벤트들의 수를 결정할 수 있다.
각각의 소스-목적지 쌍에 대한 다운 바이트들의 평균은 소스-목적지 쌍에 대한 네트워크 데이터의 모든 플로우 이벤트들에 대한 소스-목적지 쌍에 대한 다운 바이트들의 평균 크기를 계산함으로써 생성될 수 있다.
각각의 소스-목적지 쌍에 대한 다운 바이트들의 표준 편차는 소스-목적지 쌍에 대한 네트워크 데이터의 모든 플로우 이벤트들에 대한 소스-목적지 쌍에 대한 다운 바이트들의 표준 편차를 계산함으로써 생성될 수 있다.
각각의 소스-목적지 쌍에 대한 업 바이트들의 평균은 소스-목적지 쌍에 대한 네트워크 데이터의 모든 플로우 이벤트들에 대한 소스-목적지 쌍에 대한 업 바이트들의 평균 크기를 계산함으로써 생성될 수 있다.
각각의 소스-목적지 쌍에 대한 업 바이트들의 표준 편차는 소스-목적지 쌍에 대한 네트워크 데이터의 모든 플로우 이벤트들에 대한 소스-목적지 쌍에 대한 업 바이트들의 표준 편차를 계산함으로써 생성될 수 있다.
통신 간격 평균은 플로우 이벤트들 사이의 초들의 평균을 포함할 수 있고 플로우 이벤트들 사이의 초들의 평균을 계산함으로써 생성될 수 있다. 플로우 이벤트들 사이의 초들은 인접한 플로우 이벤트들 사이의 시간량일 수 있다는 것이 이해될 것이다.
통신 간격 표준 편차는 플로우 이벤트들 사이의 초들의 표준 편차를 포함할 수 있고 플로우 이벤트들 사이의 초들의 표준 편차를 계산함으로써 생성될 수 있다.
통신 간격 스큐는 분포가 하나의 단부를 향해 얼마나 스큐되는지를 나타내는 메트릭을 포함할 수 있다.
통신 간격 첨도는 확률 분포의 테일드니스(tailedness)를 나타내는 메트릭을 포함할 수 있다. 통신 간격 첨도는 분포의 중심에 대한 분포의 꼬리의 결합된 가중치의 측정치를 결정함으로써 생성될 수 있다.
목적지에 접속한 로컬 엔드포인트들의 수는 네트워크 데이터에서 목적지와의 플로우 이벤트를 가진 로컬 엔드포인트들의 카운트를 포함할 수 있다.
로컬 엔드포인트가 접속한 원격 엔드포인트들의 수는 네트워크 데이터에서 소스와의 하나 이상의 플로우 이벤트를 가진 원격 엔드포인트들의 카운트를 포함할 수 있다.
기계 학습 엔진(150)은 하나 이상의 기계 학습 모델을 포함하거나 이를 이용할 수 있다. 예를 들어, 기계 학습 엔진(150)은 예를 들어 네트워크 데이터를 멀웨어 네트워크 데이터 또는 비나인 네트워크 데이터 중 하나로서 분류하도록 트레이닝될 수 있는 랜덤 포레스트 분류기와 같은 분류기일 수 있다. 사용될 수 있는 다른 기계 학습 방법들은 서포트 벡터 머신들, 예를 들어 AdaBoost(TM) 및 XGBoost(TM)와 같은 결정 트리 기반 부스팅 방법들을 포함한다.
하나 이상의 실시예에서, 트레이닝 네트워크 데이터를 사용하여 특징 추출 엔진에 의해 생성된 다이애드들의 세트는 멀웨어 검출을 위해 기계 학습 엔진(150)을 트레이닝하기 위해 사용될 수 있다.
도 2는 실시예에 따른 멀웨어 검출을 위해 기계 학습 엔진을 트레이닝하기 위해 서버 컴퓨터 시스템(110)에 의해 수행되는 동작들을 나타내는 흐름도이다. 동작들은 서버 컴퓨터 시스템(110)에 의해 수행될 수 있는 방법(200)에 포함될 수 있다. 예를 들어, 서버 컴퓨터 시스템(110)의 메모리에 저장된 컴퓨터 실행 가능 명령어들은, 서버 컴퓨터 시스템의 프로세서에 의해 실행될 때, 서버 컴퓨터 시스템(110)을 방법(200) 또는 그 일부를 수행하도록 구성할 수 있다. 서버 컴퓨터 시스템(110)은 동작들 중 적어도 일부를 멀웨어 엔진(130), 특징 추출 엔진(140) 및/또는 기계 학습 엔진(150)에 오프로드할 수 있다는 것이 이해될 것이다.
방법(200)은 비나인 네트워크 데이터 및 멀웨어 네트워크 데이터를 포함하는 네트워크 데이터의 트레이닝 세트를 획득하는 단계(단계 210)를 포함한다.
하나 이상의 실시예에서, 서버 컴퓨터 시스템(110)은 데이터 저장소(120)로부터 네트워크 데이터의 트레이닝 세트를 획득할 수 있다. 언급된 바와 같이, 멀웨어 네트워크 데이터는 멀웨어 엔진(130)에 의해 생성될 수 있다. 비나인 네트워크 데이터는 비나인인 것으로 알려진 네트워크 데이터를 포함하고, 멀웨어 네트워크 데이터는 멀웨어인 것으로 알려진 네트워크 데이터를 포함한다.
도 3a는 기계 학습 엔진을 트레이닝하기 위해 사용되는 멀웨어 네트워크 데이터의 데이터 송신들을 도시하는 그래프이다.
도 3b는 기계 학습 엔진을 트레이닝하기 위해 사용되는 비나인 네트워크 데이터의 데이터 송신들을 도시하는 그래프이다.
도 3a와 도 3b를 비교하면, 멀웨어 네트워크 데이터는 매우 일관된 패킷 크기들을 포함하고, 비나인 네트워크 데이터는 일관되지 않은 데이터 패턴들 및 패킷 크기들을 갖는다는 것을 알 수 있다.
도 4a는 기계 학습 엔진을 트레이닝하기 위해 사용되는 멀웨어 네트워크 데이터의 통신 간격들을 도시하는 그래프이다.
도 4b는 기계 학습 엔진을 트레이닝하기 위해 사용되는 비나인 네트워크 데이터의 통신 간격들을 도시하는 그래프이다.
도 4a와 도 4b를 비교하면, 멀웨어 네트워크 데이터는 일관되고 규칙적인 통신 간격들을 포함하고, 비나인 네트워크 데이터는 긴 비활동 기간들을 포함하는 통신 간격들을 포함하고 영에 가까운 많은 수의 통신 간격들을 갖는다는 것을 알 수 있다.
하나 이상의 실시예에서, 멀웨어 네트워크 데이터는 비나인 네트워크 데이터보다 더 일관된 통신 간격 스큐를 포함할 수 있고/있거나 비나인 네트워크 데이터보다 더 균일하게 클러스터링되는 통신 간격 첨도를 포함할 수 있다.
방법(200)은 네트워크 데이터의 트레이닝 세트 내의 각각의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 특징 추출 엔진을 관여시키는 단계(단계 220)를 포함한다.
언급된 바와 같이, 네트워크 데이터의 각각의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해, 특징 추출 엔진(140)은 네트워크 데이터를 분석하여 소스-목적지 쌍에 의해 네트워크 데이터를 분류할 수 있다. 각각의 소스-목적지 쌍에 대해, 다이애드들의 세트는 플로우 이벤트들의 수, 다운 바이트들의 평균, 다운 바이트들의 표준 편차, 업 바이트들의 평균, 업 바이트들의 표준 편차, 통신 간격 평균, 통신 간격 표준 편차, 통신 간격 스큐, 통신 간격 첨도, 목적지에 접속한 로컬 엔드포인트들의 수 및 로컬 엔드포인트가 접속한 원격 엔드포인트들의 수를 포함할 수 있다.
방법(200)은 다이애드들의 세트를 사용하여, 비나인 네트워크 데이터와 멀웨어 네트워크 데이터 사이를 구별하도록 기계 학습 엔진을 트레이닝하는 단계(단계 230)를 포함한다.
다이애드들의 세트는 기계 학습 엔진에 공급되고, 네트워크 데이터를 비나인 네트워크 데이터 또는 멀웨어 네트워크 데이터로서 분류하도록 기계 학습 엔진을 트레이닝하기 위해 사용된다. 트레이닝되면, 기계 학습 엔진은 네트워크 데이터를 비나인 네트워크 데이터 또는 멀웨어 네트워크 데이터 중 하나로서 분류할 수 있다.
기계 학습 엔진(150)이 랜덤 포레스트 분류기를 포함하는 실시예들에서, 다이애드들의 세트는 비나인 네트워크 데이터를 나타내는 영(0)으로 라벨링될 수 있거나 멀웨어 네트워크 데이터를 나타내는 일(1)로 라벨링될 수 있다. 또한, 모델을 데이터에 피팅하기 위해 패키지 함수가 사용될 수 있다. 예를 들어, 피팅 방법은 랜덤 포레스트 분류기와 연관된 각각의 결정 트리에 대해 사용될 수 있고, 피팅 방법은 특징을 선택하고 그 특징에 기초하여 네트워크 데이터가 분할되도록 수치 값을 선택하는 단계를 포함할 수 있다. 이러한 방식으로, 각각의 분할 데이터 청크의 순도가 최대화된다. 이는 각각의 결정 트리에 대해 여러 번 반복될 수 있으며, 그에 따라 분류기는 예측 작업을 위해 트레이닝된다.
도 5는 실시예에 따른 기계 학습 기반 멀웨어 검출을 위해 수행되는 동작들을 나타내는 흐름도이다. 동작들은 서버 컴퓨터 시스템(110)에 의해 수행될 수 있는 방법(500)에 포함될 수 있다. 예를 들어, 서버 컴퓨터 시스템(110)의 메모리에 저장된 컴퓨터 실행 가능 명령어들은, 서버 컴퓨터 시스템의 프로세서에 의해 실행될 때, 서버 컴퓨터 시스템(110)을 방법(500) 또는 그 일부를 수행하도록 구성할 수 있다.
방법(500)은 적어도 하나의 소스-목적지 쌍에 대한 적어도 하나의 새로운 이벤트를 식별하는 네트워크 데이터를 획득하는 단계(단계 510)를 포함한다.
하나 이상의 실시예에서, 데이터 저장소(120)는 네트워크 데이터의 형태로 새로운 플로우 이벤트들을 수신할 수 있고, 이는 예를 들어 1분마다, 5분마다, 30분마다, 1시간마다, 24시간마다 등과 같이 주기적으로 행해질 수 있다. 구체적으로, 서버 컴퓨터 시스템(110)은 새로운 플로우 이벤트들에 대한 요청을 그에 접속된 하나 이상의 소스 또는 목적지 컴퓨터 시스템에 송신할 수 있고, 새로운 플로우 이벤트들은 네트워크 데이터의 형태로 수신될 수 있다. 서버 컴퓨터 시스템(110)은 수신된 네트워크 데이터를 저장을 위해 데이터 저장소(120)에 송신할 수 있다.
서버 컴퓨터 시스템(110)은 적어도 하나의 새로운 이벤트를 분석하여 적어도 하나의 새로운 이벤트가 신뢰되는 것으로 알려진 소스-목적지 쌍과 연관되어 있는지 여부를 결정할 수 있다. 예를 들어, 서버 컴퓨터 시스템(110)은, 적어도 하나의 새로운 이벤트가 신뢰되는 것으로 알려진 소스-목적지 쌍과 연관되어 있음을 결정하기 위해 신뢰되는 것으로 알려진 IP 주소들의 리스트를 포함하는 데이터 저장소(120)에 저장된 화이트리스트를 참고할 수 있다. 적어도 하나의 새로운 이벤트가 신뢰되는 것으로 알려진 소스-목적지 쌍과 연관되어 있다는 결정에 응답하여, 서버 컴퓨터 시스템(110)은 적어도 하나의 새로운 이벤트를 드롭하고 어떠한 추가 액션도 취하지 않을 수 있다.
적어도 하나의 새로운 이벤트가 신뢰되는 것으로 알려진 소스-목적지 쌍과 연관되어 있지 않다는 결정에 응답하여, 서버 컴퓨터 시스템(110)은 적어도 하나의 소스-목적지 쌍에 대해 이용 가능한 모든 네트워크 데이터에 대한 요청을 데이터 저장소(120)에 송신할 수 있다. 달리 말하면, 서버 컴퓨터 시스템(110)은 단지 적어도 하나의 새로운 이벤트와 연관된 네트워크 데이터를 요청하는 것이 아니라, 오히려 서버 컴퓨터 시스템(110)은 적어도 하나의 새로운 이벤트와 연관된 적어도 하나의 소스-목적지 쌍에 대한 모든 이용 가능한 네트워크 데이터를 요청한다.
방법(500)은 적어도 하나의 새로운 이벤트와 연관된 적어도 하나의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 특징 추출 엔진을 관여시키는 단계(단계 520)를 포함한다.
서버 컴퓨터 시스템(110)에 의해 획득된 네트워크 데이터는 적어도 하나의 새로운 이벤트와 연관된 적어도 하나의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 특징 추출 엔진에 송신된다. 언급된 바와 같이, 상기 다이애드들의 세트는 플로우 이벤트들의 수, 다운 바이트들의 평균, 다운 바이트들의 표준 편차, 업 바이트들의 평균, 업 바이트들의 표준 편차, 통신 간격 평균, 통신 간격 표준 편차, 통신 간격 스큐, 통신 간격 첨도, 목적지에 접속한 로컬 엔드포인트들의 수 및 로컬 엔드포인트가 접속한 원격 엔드포인트들의 수를 포함할 수 있다.
방법(500)은 다이애드들의 세트를 분류를 위해 기계 학습 엔진에 송신하는 단계(단계 530)를 포함한다.
다이애드들의 세트는 분류를 위해 기계 학습 엔진에 송신된다.
방법(500)은 기계 학습 엔진으로부터, 소스-목적지 쌍을 비나인 또는 멀웨어 중 하나로서 분류하는 데이터를 수신하는 단계(단계 540)를 포함한다.
언급된 바와 같이, 기계 학습 엔진은 네트워크 데이터를 비나인 네트워크 데이터 또는 멀웨어 네트워크 데이터 중 하나로서 분류하도록 트레이닝된다. 구체적으로, 기계 학습 엔진은 다이애드들의 세트를 분석하여 네트워크 데이터를 비나인 네트워크 데이터 또는 멀웨어 네트워크 데이터로서 분류한다.
기계 학습 엔진은 소스-목적지 쌍을 비나인 또는 멀웨어 중 하나로서 분류할 수 있고, 이는 네트워크 데이터를 비나인 네트워크 데이터 또는 멀웨어 네트워크 데이터로서 분류하는 것에 기초할 수 있다. 예를 들어, 네트워크 데이터가 멀웨어 네트워크 데이터로서 분류되는 실시예들에서는, 적어도 하나의 소스-목적지 쌍은 멀웨어로서 분류될 수 있다.
적어도 하나의 소스-목적지 쌍이 비나인으로서 분류되는 실시예들에서는, 서버 컴퓨터 시스템(110)은 어떠한 추가 액션도 요구되지 않다고 결정할 수 있다.
적어도 하나의 소스-목적지 쌍이 멀웨어로서 분류되는 실시예들에서는, 서버 컴퓨터 시스템(110)은 하나 이상의 교정 액션을 수행할 수 있다. 예를 들어, 서버 컴퓨터 시스템(110)은 소스-목적지 쌍이 멀웨어임을 나타내는 플래그 또는 경보를 발생시킬 수 있다.
다른 예에서, 서버 컴퓨터 시스템(110)은 소스-목적지 쌍의 소스 또는 목적지 중 적어도 하나를 블랙리스트에 추가할 수 있다. 도 6은 실시예에 따른 인터넷 프로토콜 주소를 블랙리스트에 추가하기 위해 수행되는 동작들을 나타내는 흐름도이다. 동작들은 서버 컴퓨터 시스템(110)에 의해 수행될 수 있는 방법(600)에 포함될 수 있다. 예를 들어, 서버 컴퓨터 시스템(110)의 메모리에 저장된 컴퓨터 실행 가능 명령어들은, 서버 컴퓨터 시스템의 프로세서에 의해 실행될 때, 서버 컴퓨터 시스템(110)을 방법(600) 또는 그 일부를 수행하도록 구성할 수 있다.
방법(600)은 기계 학습 엔진으로부터, 소스-목적지 쌍을 멀웨어로서 분류하는 데이터를 수신하는 단계(단계 610)를 포함한다.
기계 학습 엔진은 방법(500)을 참조하여 본 명세서에 기술된 것과 유사한 동작들을 수행할 수 있고, 소스-목적지 쌍을 멀웨어로서 분류할 수 있다. 이에 응답하여, 서버 컴퓨터 시스템(110)은 기계 학습 엔진으로부터, 소스-목적지 쌍을 멀웨어로서 분류하는 데이터를 수신할 수 있다.
방법(600)은 소스 또는 목적지 중 적어도 하나의 인터넷 프로토콜 주소를 블랙리스트에 추가하는 단계(단계 620)를 포함한다.
서버 컴퓨터 시스템(110)은 그와 연관된 네트워크 데이터를 분석함으로써 소스 또는 목적지 중 적어도 하나의 IP 주소를 결정할 수 있다. 서버 컴퓨터 시스템(110)은 데이터 저장소(120)에, 그에 의해 유지된 블랙리스트에 IP 주소를 추가하라는 신호를 송신할 수 있다.
목적지의 IP 주소를 멀웨어로서 식별하는 것에 더하여 또는 그의 대안으로, 하나 이상의 실시예에서, FQDM(fully qualified domain name)이 멀웨어로서 식별될 수 있다는 것이 이해될 것이다.
언급된 바와 같이, 서버 컴퓨터 시스템(110)은 컴퓨팅 디바이스이다. 도 7은 예시적인 컴퓨팅 디바이스(700)의 하이-레벨 블록도를 도시한다. 예시된 바와 같이, 예시적인 컴퓨팅 디바이스(700)는 프로세서(710), 메모리(720), 및 I/O 인터페이스(730)를 포함한다. 예시적인 컴퓨팅 디바이스(700)의 전술한 모듈들은 버스(740)를 통해 통신하고 버스(740)에 의해 서로 통신적으로 결합된다.
프로세서(710)는 하드웨어 프로세서를 포함하며, 예를 들어, ARM, x86, MIPS, 또는 PowerPC(TM) 명령어 세트들을 이용하는 하나 이상의 프로세서를 포함할 수 있다. 예를 들어, 프로세서(710)는 Intel(TM) Core(TM) 프로세서들, Qualcomm(TM) Snapdragon(TM) 프로세서들 등을 포함할 수 있다.
메모리(720)는 물리적 메모리를 포함한다. 메모리(720)는 랜덤 액세스 메모리, 판독 전용 메모리, 예를 들어, 플래시 메모리, 솔리드-스테이트 드라이브 등과 같은 영구 저장소를 포함할 수 있다. 판독 전용 메모리 및 영구 저장소는 컴퓨터 판독 가능 매체이고, 더 특정하게는, 각각 비일시적 컴퓨터 판독 가능 저장 매체로 간주될 수 있다. 컴퓨터 판독 가능 매체는 예시적인 컴퓨팅 디바이스(700)의 전체 동작을 통제하는 소프트웨어에 의해 관리될 수 있는 것과 같은 파일 시스템을 사용하여 조직될 수 있다.
I/O 인터페이스(730)는 입력/출력 인터페이스이다. I/O 인터페이스(730)는 예시적인 컴퓨팅 디바이스(700)가 입력을 수신하고 출력을 제공하는 것을 가능하게 한다. 예를 들어, I/O 인터페이스(730)는 예시적인 컴퓨팅 디바이스(700)가 사용자로부터 입력을 수신하거나 사용자에게 출력을 제공하는 것을 가능하게 할 수 있다. 다른 예에서, I/O 인터페이스(730)는 예시적인 컴퓨팅 디바이스(700)가 컴퓨터 네트워크와 통신하는 것을 가능하게 할 수 있다. I/O 인터페이스(730)는 예시적인 컴퓨팅 디바이스(700)를, 예를 들어, 키보드, 디스플레이 스크린, 마우스 또는 트랙볼과 같은 포인팅 디바이스, 지문 판독기, 통신 모듈, 하드웨어 보안 모듈(HSM)(예를 들어, 신뢰 플랫폼 모듈(TPM)) 등과 같은 하나 이상의 I/O 디바이스와 상호 접속하는 역할을 할 수 있다. I/O 인터페이스(730)의 가상 대응물들 및/또는 I/O 인터페이스(730)를 통해 액세스되는 디바이스들이, 예를 들어, 호스트 운영 체제에 의해 제공될 수 있다.
명령어들을 포함하는 소프트웨어가 컴퓨터 판독 가능 매체로부터 프로세서(710)에 의해 실행된다. 예를 들어, 호스트 운영 체제에 대응하는 소프트웨어가 메모리(720)의 영구 저장소 또는 플래시 메모리로부터 랜덤 액세스 메모리로 로딩될 수 있다. 추가적으로 또는 대안적으로, 소프트웨어가 메모리(720)의 판독 전용 메모리로부터 직접 프로세서(710)에 의해 실행될 수 있다. 다른 예에서는, 소프트웨어가 I/O 인터페이스(730)를 통해 액세스될 수 있다.
멀웨어 엔진(130), 특징 추출 엔진(140), 및 기계 학습 엔진(150)은 또한 본 명세서에 기술된 것과 유사한 컴퓨팅 디바이스들일 수 있다는 것이 이해될 것이다.
위에 기술된 다양한 예시적인 방법들의 위에 기술된 동작들 중 일부 또는 전부가 예시된 것들과 다른 순서들로 수행될 수도 있고/있거나 그 방법들의 전체 동작을 변화시키지 않고 동시에 수행될 수도 있다는 것이 이해될 것이다.
위에 제시된 다양한 실시예들은 예들에 불과하며 결코 본 출원의 범위를 제한하려고 의도된 것은 아니다. 본 기술분야의 통상의 기술자들에게는 본 명세서에 기술된 혁신들의 변형들이 명백할 것이며, 그러한 변형들은 본 출원의 의도된 범위 내에 있다. 특히, 위에 기술된 예시적인 실시예들 중 하나 이상으로부터의 특징들을 선택하여 위에 명시적으로 기술되어 있지 않을 수 있는 특징들의 부분 조합을 포함하는 대안적인 예시적인 실시예들을 생성할 수 있다. 또한, 위에 기술된 예시적인 실시예들 중 하나 이상으로부터의 특징들을 선택 및 조합하여 위에 명시적으로 기술되어 있지 않을 수 있는 특징들의 조합을 포함하는 대안적인 예시적인 실시예들을 생성할 수 있다. 그러한 조합들 및 부분 조합들에 적합한 특징들이 본 출원을 전체적으로 검토할 때 본 기술 분야의 통상의 기술자들에게는 쉽게 명백할 것이다. 본 명세서 및 인용된 청구항들에서 기술된 주제는 기술에서의 모든 적합한 변경들을 커버하고 포괄하고자 한다.

Claims (20)

  1. 방법으로서,
    비나인 네트워크 데이터(benign network data) 및 멀웨어 네트워크 데이터(malware network data)를 포함하는 네트워크 데이터의 트레이닝 세트를 획득하는 단계;
    상기 네트워크 데이터의 트레이닝 세트 내의 각각의 소스-목적지 쌍(source-destination pair)에 대한 다이애드(dyad)들의 세트를 생성하기 위해 특징 추출 엔진(feature extraction engine)을 관여시키는(engage) 단계; 및
    상기 다이애드들의 세트를 사용하여, 상기 비나인 네트워크 데이터와 상기 멀웨어 네트워크 데이터 사이를 구별하도록 기계 학습 엔진을 트레이닝하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    적어도 하나의 소스-목적지 쌍에 대한 적어도 하나의 새로운 이벤트를 식별하는 네트워크 데이터를 획득하는 단계;
    상기 적어도 하나의 새로운 이벤트와 연관된 상기 적어도 하나의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 상기 특징 추출 엔진을 관여시키는 단계; 및
    상기 적어도 하나의 새로운 이벤트와 연관된 상기 적어도 하나의 소스-목적지 쌍에 대한 상기 다이애드들의 세트를 분류를 위해 상기 기계 학습 엔진에 송신하는 단계
    를 더 포함하는, 방법.
  3. 제2항에 있어서,
    상기 기계 학습 엔진으로부터, 상기 적어도 하나의 소스-목적지 쌍을 비나인 또는 멀웨어 중 하나로서 분류하는 데이터를 수신하는 단계를 더 포함하는, 방법.
  4. 제2항에 있어서,
    상기 기계 학습 엔진으로부터, 상기 적어도 하나의 소스-목적지 쌍을 멀웨어로서 분류하는 데이터를 수신하는 단계; 및
    상기 소스 또는 상기 목적지 중 적어도 하나의 인터넷 프로토콜 주소를 블랙리스트에 추가하는 단계
    를 더 포함하는, 방법.
  5. 제1항에 있어서,
    트레이닝 멀웨어 서버를 사용하여, 상기 멀웨어 네트워크 데이터가 상기 트레이닝 멀웨어 서버와 연관되는 것으로 알려진 인터넷 프로토콜 주소를 포함하도록 상기 멀웨어 네트워크 데이터를 생성하는 단계를 더 포함하는, 방법.
  6. 제5항에 있어서, 상기 멀웨어 네트워크 데이터는 통신 간격(communication interval), 지터 양(jitter amount), 또는 데이터 채널 중 적어도 하나를 변경함으로써 멀웨어 비컨(malware beacon)들을 모방하도록 생성되는 것인, 방법.
  7. 제1항에 있어서, 각각의 소스-목적지 쌍에 대한 상기 다이애드들의 세트는 통신 간격 스큐(communication interval skew) 및 통신 간격 첨도(communication interval kurtosis)를 포함하는 것인, 방법.
  8. 제1항에 있어서, 상기 멀웨어 네트워크 데이터는 상기 비나인 네트워크 데이터보다 더 일관된 통신 간격 스큐를 포함하는 것인, 방법.
  9. 제1항에 있어서, 상기 멀웨어 네트워크 데이터는 상기 비나인 네트워크 데이터보다 더 균일하게 클러스터링되는 통신 간격 첨도를 포함하는 것인, 방법.
  10. 제1항에 있어서, 상기 다이애드들의 세트는 플로우 이벤트(flow event)들의 수, 다운 바이트들의 평균, 다운 바이트들의 표준 편차, 업 바이트들의 평균, 업 바이트들의 표준 편차, 통신 간격 평균, 통신 간격 표준 편차, 통신 간격 스큐, 통신 간격 첨도, 상기 목적지에 접속한 로컬 엔드포인트들의 수 및 로컬 엔드포인트가 접속한 원격 엔드포인트들의 수를 포함하는 것인, 방법.
  11. 시스템으로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합되고 명령어들을 저장하는 메모리
    를 포함하고, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서를,
    비나인 네트워크 데이터 및 멀웨어 네트워크 데이터를 포함하는 네트워크 데이터의 트레이닝 세트를 획득하고;
    상기 네트워크 데이터의 트레이닝 세트 내의 각각의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 특징 추출 엔진을 관여시키고;
    상기 다이애드들의 세트를 사용하여, 상기 비나인 네트워크 데이터와 상기 멀웨어 네트워크 데이터 사이를 구별하도록 기계 학습 엔진을 트레이닝하도록
    구성하는 것인, 시스템.
  12. 제11항에 있어서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서를 또한,
    적어도 하나의 소스-목적지 쌍에 대한 적어도 하나의 새로운 이벤트를 식별하는 네트워크 데이터를 획득하고;
    상기 적어도 하나의 새로운 이벤트와 연관된 상기 적어도 하나의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 상기 특징 추출 엔진을 관여시키고;
    상기 적어도 하나의 새로운 이벤트와 연관된 상기 적어도 하나의 소스-목적지 쌍에 대한 상기 다이애드들의 세트를 분류를 위해 상기 기계 학습 엔진에 송신하도록
    구성하는 것인, 시스템.
  13. 제12항에 있어서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서를 또한,
    상기 기계 학습 엔진으로부터, 상기 적어도 하나의 소스-목적지 쌍을 비나인 또는 멀웨어 중 하나로서 분류하는 데이터를 수신하도록 구성하는 것인, 시스템.
  14. 제13항에 있어서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서를 또한,
    상기 기계 학습 엔진으로부터, 상기 적어도 하나의 소스-목적지 쌍을 멀웨어로서 분류하는 데이터를 수신하고;
    상기 소스 또는 상기 목적지 중 적어도 하나의 인터넷 프로토콜 주소를 블랙리스트에 추가하도록
    구성하는 것인, 시스템.
  15. 제12항에 있어서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서를 또한,
    트레이닝 멀웨어 서버를 사용하여, 상기 멀웨어 네트워크 데이터가 상기 트레이닝 멀웨어 서버와 연관되는 것으로 알려진 인터넷 프로토콜 주소를 포함하도록 상기 멀웨어 네트워크 데이터를 생성하도록
    구성하는 것인, 시스템.
  16. 제15항에 있어서, 상기 멀웨어 네트워크 데이터는 통신 간격, 지터 양, 또는 데이터 채널 중 적어도 하나를 변경함으로써 멀웨어 비컨들을 모방하도록 생성되는 것인, 시스템.
  17. 제12항에 있어서, 각각의 소스-목적지 쌍에 대한 상기 다이애드들의 세트는 통신 간격 스큐 및 통신 간격 첨도를 포함하는 것인, 시스템.
  18. 제12항에 있어서, 상기 멀웨어 네트워크 데이터는 상기 비나인 네트워크 데이터보다 더 일관된 통신 간격 스큐 또는 상기 비나인 네트워크 데이터보다 더 균일하게 클러스터링되는 통신 간격 첨도 중 적어도 하나를 포함하는 것인, 시스템.
  19. 제12항에 있어서, 상기 다이애드들의 세트는 플로우 이벤트들의 수, 다운 바이트들의 평균, 다운 바이트들의 표준 편차, 업 바이트들의 평균, 업 바이트들의 표준 편차, 통신 간격 평균, 통신 간격 표준 편차, 통신 간격 스큐, 통신 간격 첨도, 상기 목적지에 접속한 로컬 엔드포인트들의 수 및 로컬 엔드포인트가 접속한 원격 엔드포인트들의 수를 포함하는 것인, 시스템.
  20. 프로세서 실행 가능 명령어들이 저장되어 있는 비일시적 컴퓨터 판독 가능 매체로서, 상기 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서가,
    비나인 네트워크 데이터 및 멀웨어 네트워크 데이터를 포함하는 네트워크 데이터의 트레이닝 세트를 획득하게 하고;
    상기 네트워크 데이터의 트레이닝 세트 내의 각각의 소스-목적지 쌍에 대한 다이애드들의 세트를 생성하기 위해 특징 추출 엔진을 관여시키게 하고;
    상기 다이애드들의 세트를 사용하여, 상기 비나인 네트워크 데이터와 상기 멀웨어 네트워크 데이터 사이를 구별하도록 기계 학습 엔진을 트레이닝하게 하는 것인, 프로세서 실행 가능 명령어들이 저장되어 있는 비일시적 컴퓨터 판독 가능 매체.
KR1020230057455A 2022-05-05 2023-05-03 기계 학습 기반 멀웨어 검출을 위한 시스템 및 방법 KR20230156262A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/737,446 US20230362177A1 (en) 2022-05-05 2022-05-05 System and method for machine learning based malware detection
US17/737,446 2022-05-05

Publications (1)

Publication Number Publication Date
KR20230156262A true KR20230156262A (ko) 2023-11-14

Family

ID=86271966

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230057455A KR20230156262A (ko) 2022-05-05 2023-05-03 기계 학습 기반 멀웨어 검출을 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US20230362177A1 (ko)
EP (1) EP4274160A1 (ko)
JP (1) JP2023165633A (ko)
KR (1) KR20230156262A (ko)
CN (1) CN117009963A (ko)
CA (1) CA3197673A1 (ko)

Also Published As

Publication number Publication date
CA3197673A1 (en) 2023-11-05
US20230362177A1 (en) 2023-11-09
JP2023165633A (ja) 2023-11-16
EP4274160A1 (en) 2023-11-08
CN117009963A (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
US11902120B2 (en) Synthetic data for determining health of a network security system
US10666686B1 (en) Virtualized exploit detection system
US10469512B1 (en) Optimized resource allocation for virtual machines within a malware content detection system
US9124621B2 (en) Security alert prioritization
US10432650B2 (en) System and method to protect a webserver against application exploits and attacks
US10997289B2 (en) Identifying malicious executing code of an enclave
CN111274583A (zh) 一种大数据计算机网络安全防护装置及其控制方法
US11368479B2 (en) Methods and apparatus to identify and report cloud-based security vulnerabilities
US10979446B1 (en) Automated vulnerability chaining
JP2016508353A (ja) ネットワークメタデータを処理する改良されたストリーミング方法およびシステム
US10757029B2 (en) Network traffic pattern based machine readable instruction identification
US10581902B1 (en) Methods for mitigating distributed denial of service attacks and devices thereof
US10129277B1 (en) Methods for detecting malicious network traffic and devices thereof
CN113238923B (zh) 基于状态机的业务行为溯源方法及系统
US8887291B1 (en) Systems and methods for data loss prevention for text fields
US11870693B2 (en) Kernel space based capture using intelligent packet selection paradigm and event output storage determination methodology
US11496394B2 (en) Internet of things (IoT) device identification on corporate networks via adaptive feature set to balance computational complexity and model bias
KR20230156262A (ko) 기계 학습 기반 멀웨어 검출을 위한 시스템 및 방법
JP2022541250A (ja) インラインマルウェア検出
US20240028713A1 (en) Trust-based workspace instantiation