KR102323290B1 - 알려진 및/또는 알려지지 않은 사이버 보안 위협들의 모폴로지들을 분석함으로써 데이터 이상들을 검출하기 위한 시스템 및 방법 - Google Patents

알려진 및/또는 알려지지 않은 사이버 보안 위협들의 모폴로지들을 분석함으로써 데이터 이상들을 검출하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102323290B1
KR102323290B1 KR1020217002942A KR20217002942A KR102323290B1 KR 102323290 B1 KR102323290 B1 KR 102323290B1 KR 1020217002942 A KR1020217002942 A KR 1020217002942A KR 20217002942 A KR20217002942 A KR 20217002942A KR 102323290 B1 KR102323290 B1 KR 102323290B1
Authority
KR
South Korea
Prior art keywords
data
data object
value
model
block
Prior art date
Application number
KR1020217002942A
Other languages
English (en)
Other versions
KR20210114916A (ko
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 KR20210114916A publication Critical patent/KR20210114916A/ko
Application granted granted Critical
Publication of KR102323290B1 publication Critical patent/KR102323290B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Virology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본 문헌은 이상 데이터 파일들을 검출하고 검출된 이상 데이터 파일들이 데이터 스토리지에 저장되는 것을 방지하기 위한 시스템 및 방법을 설명한다. 특히, 이 시스템 및 방법은 각각의 데이터 파일을 데이터의 블록들로 분할함으로써 이상 데이터 파일들을 검출하여, 데이터의 각각의 블록에 대해 엔트로피 값들이 획득되고, 이 정보는 수집분석되고 후속하여 머신 학습 모델에서 사용되어 데이터 파일의 보안 레벨을 확인한다.

Description

알려진 및/또는 알려지지 않은 사이버 보안 위협들의 모폴로지들을 분석함으로써 데이터 이상들을 검출하기 위한 시스템 및 방법
본 발명은 이상 데이터 파일들을 검출하고 검출된 이상 데이터 파일들이 데이터 스토리지에 저장되는 것을 방지하기 위한 시스템 및 방법에 관한 것이다. 특히, 이 시스템 및 방법은 각각의 데이터 파일을 데이터의 블록들로 분할함으로써 이상 데이터 파일들을 검출하여, 데이터의 각각의 블록에 대해 엔트로피 값들이 획득되고, 이 정보는 수집분석(collate)되고 후속하여 머신 학습 모델에서 사용되어 데이터 파일의 보안 레벨을 확인한다.
오늘날의 디지털 시대에, 컴퓨터 시스템들은 점점 다양한 형태 및 타입의 악성 사이버 공격을 받는다. 이러한 공격들의 목적은 컴퓨터 시스템에 불법적으로 액세스하는 것이고, 전형적으로 시스템 관리자가 알지 못하는 사이에 컴퓨터 시스템에 설치된 악성 소프트웨어("멀웨어(malware)"로도 알려짐)를 통해 수행된다. 멀웨어는 다수의 방식을 통해, 시스템의 네트워크(예를 들어, 이메일 또는 웹사이트)로부터, 시스템에 삽입된 CD-ROM을 통해 또는 시스템에 연결된 외부 저장 디바이스를 통해 컴퓨터 시스템에 설치될 수 있다. 멀웨어가 시스템에 대한 액세스를 얻으면, 시스템의 보안을 침해하고(예를 들어, 백도어 생성), 민감한 정보에 액세스하고, 중요한 파일들을 삭제하여 시스템에 장애를 일으켜서 치명적인 피해를 입힐 수 있다.
멀웨어가 설치되면, 검출하기가 훨씬 더 어려워지고 이는 컴퓨터 시스템이 공격자에 의해 쉽게 손상되는 것을 허용한다는 것이 일반적으로 합의되어 있다.
이러한 문제를 해결하기 위해, 본 기술분야의 통상의 기술자들은 이러한 멀웨어 또는 데이터가 컴퓨터 시스템을 감염시키기 전에 식별될 것을 제안하였다. 일단 식별되면, 멀웨어는 멀웨어에 의해 야기될 수 있는 피해의 정도가 더 잘 이해되고 재발 방지될 수 있도록 분류될 수 있다. 멀웨어를 식별하기 위해 제안된 다양한 기법들 중에는, 데이터베이스가 보호된 컴퓨터 시스템들에 영향을 미치는 알려진 악성 엔티티들을 필터링하는 데 사용될 수 있도록 데이터베이스를 업데이트하기 위해 사용되는 시간적 분석 및 라이브 업데이트 접근법들이 포함된다.
처음에, 가장 명백한 방식은 프로그램이 실행중일 때 시스템 관리자가 의심스러운 프로그램을 수동으로 분석하는 것이다. 그 다음, 관리자는 그 결과를 관찰하여 프로그램이 멀웨어 또는 신뢰할 수 있는 소프트웨어로서 취급될지를 결정한다. 관리자의 프로그램 분석 동안, 관리자는 프로그램을 디컴파일(decompile)하여 특정 코드 라인들을 조사하거나 컴퓨터 시스템 및/또는 외부 연락처들과 상호작용하는 애플리케이션 프로그램 인터페이스(application program interface, API) 호출들에 특별한 주의를 기울여 이 호출들이 악의적인 행동을 나타내는지를 결정할 수 있다. 이러한 접근법은 철저하고 상세할 수 있지만, 극히 시간 소모적이고 비효율적이다. 따라서, 본 기술분야의 통상의 기술자들은 대안적인 자동화된 방법을 제안하였다.
시간적 분석 접근법에서, 영향을 받은 시스템 내의 모든 활동들은 시간에 따라 분류 및 검토되어 특정 기간 내에 발생하는 의심스러운 이벤트들이 면밀히 검사될 수 있게 한다. 그러한 이벤트들은 파일 액세스/설치/삭제/수정; 사용자 엔트리들의 로그들; 개시되거나 종료된 프로세스들(배경 프로세스들 포함); 그 기간 동안 원격으로 액세스된 네트워크 포트들 등을 포함할 수 있다. 멀웨어가 설치될 수 있게 한 이벤트가 검출되면, 컴퓨터 시스템의 위협 분류 시스템은 그러한 이벤트의 재발을 방지하기 위해 그에 따라 업데이트될 수 있다.
파일들 및 이벤트 로그들과 같은 정적 이력 데이터를 검토하는 것에 대한 대안은, 공격자가 어떻게 수정했는지를 식별하기 위해 컴퓨터 시스템이 사용 중인 동안 라이브 프로그램들, 프로그램들이 실행 중일 때 시스템 메모리 콘텐츠, 현재 네트워크 포트 활동, 및 다른 타입들의 메타데이터를 검사하는 라이브 업데이트 방법이다. 그 다음, 이 방법으로부터 획득된 정보는 시스템의 위협 분류 시스템을 업데이트하기 위해 사용될 수 있다.
업데이트된 위협 분류 시스템은 그 후 시스템에 도입될 새로운 파일들을 검토하기 위해 사용될 수 있다. 이것은 새로운 파일들의 특성들을 그의 알려진 이전에 발견된 파일들의 데이터베이스와 비교함으로써 행해진다. 이러한 비교들은 통상적으로 비교될 데이터를 암호적으로 해싱(hashing)함으로써, 즉, 데이터를 콤팩트한 수치 표현으로 변환하는 수학적 함수를 적용함으로써 행해진다. 그 다음, 동일한 알고리즘을 사용하여 생성된 2개의 해시가 상이한 경우, 이는 새로운 파일이 손상되었을 수 있다는 것을 암시하는 것으로 가정한다.
앞서 제안된 접근법들의 단점은, 제로-데이 타입의 멀웨어들이 컴퓨터 시스템들에 영향을 미치는 것을 방지하지 않으며 이전에 검출된 동일한 멀웨어의 재발을 방지하는 데에만 유용하다는 것이다. 다시 말해서, 이러한 멀웨어에 약간의 수정이 행해지면, 멀웨어가 시스템의 방어를 통과하여 컴퓨터 시스템에 영향을 미칠 가능성이 높다.
잠재적으로 손상된 컴퓨터 시스템 상의 의심스러운 활동을 식별하기 위해 제안된 다른 기법들은 종종 대량의 데이터를 생성하며, 이들 모두는 위협 분류 시스템들을 업데이트하는 데 사용될 수 있기 전에 검토되고 해석되어야 한다. 더 복잡한 문제로, 멀웨어 자체는 지속적으로 진화하고 있으며, 다양한 방법을 이용하여 그들의 존재를 위장함으로써, 기존의 검출 방법론을 회피하는 새로운 방식들을 개발하여, 컴퓨터 보안 시스템들의 작업을 훨씬 더 어렵게 만든다. 이들 기법들 중 일부는 시스템의 로그 파일 엔트리들, 파일 수정/액세스 날짜들, 및 시스템 프로세스들과 같은 시스템에 대한 그들의 엔트리의 표시자들을 삭제하는 것을 포함한다. 이상의 내용에 부가하여, 멀웨어 자체의 아이덴티티가 그의 이름 또는 실행 프로파일을 변경하여 무해한 것처럼 보이도록 난독화됨으로써 멀웨어를 효과적으로 위장할 수 있다.
그러나, 데이터가 암호화되거나, 압축되거나, 또는 (난독화 방법에 따라) 난독화될 때, 그의 엔트로피 값, 또는 그의 랜덤성 척도(measure of randomness)는 "조직화된" 데이터의 것보다 더 높은 경향이 있다. 다시 말해서, 사용자 생성 문서들 및 컴퓨터 프로그램들은 일반적으로 디버깅의 용이성을 위해 구조화된 조직화된 방식으로 되는 경향이 있는 반면, 암호화된 데이터는 상당한 정도의 엔트로피를 갖는 경향이 있다.
엔트로피의 척도가 멀웨어 또는 공격자의 숨겨진 데이터 저장소를 식별하는 보장된 방법이 아니라는 것이 인정된다. 유효 프로그램(valid program)은 컴퓨터 시스템 상에 저장된 암호화된, 또는 더 일반적으로, 압축된 정보를 가질 수 있다. 그러나, 매우 기본적인 레벨에서, 엔트로피의 검사는 잠재적으로 문제가 있는 프로그램들을 식별하기 위한 우수한 초기 필터를 제공한다. 그렇게 함으로써, 이것은 매우 상세히 분석될 필요가 있는 데이터의 양을 크게 감소시킨다.
그러나, 데이터 블록에 대해 엔트로피 값이 생성되는 방식으로 인해, 실제로 그 데이터 블록의 특정 섹션들이 멀웨어의 작은 난독화된 블록들을 포함할 수 있을 때 데이터 블록이 낮은 엔트로피 값을 반환할 수 있는 가능성이 있다. 이러한 시나리오는 공격자가 비교적 낮은 엔트로피를 갖는 데이터 블록 내에 암호화된 멀웨어를 놓음으로써 멀웨어의 존재를 효과적으로 감출 때 발생할 수 있다.
위의 관점에서, 검출 프로세스 동안 생성되는 거짓 양성(false positive)의 수를 감소시키면서 컴퓨터 시스템 내의 멀웨어의 존재를 검출하기 위해 엔트로피의 강건한 측정을 도출하는 기법이 가장 바람직하다.
위의 이유들로 인해, 본 기술분야의 통상의 기술자들은 데이터 파일들에 대한 적합한 엔트로피 값을 생성할 수 있고, 그에 의해, 이러한 엔트로피 값들 및 데이터 파일에 관한 다른 정보가 감독 머신 학습 모델에 제공되어, 그러한 파일들이 컴퓨터 시스템의 저장 디바이스에 저장되기 전에 이상 데이터 파일들을 검출 및 식별할 수 있는 시스템 및 방법을 찾기 위해 지속적으로 노력하고 있다.
본 발명에 따른 실시예들에 의해 제공되는 시스템들 및 방법들에 의해 위의 그리고 다른 문제들이 해결되고 본 기술분야의 진보가 이루어진다.
본 발명에 따른 시스템들 및 방법들의 실시예들의 제1 이점은 제로-데이 타입 이상 파일들이 효과적이고 효율적으로 식별될 수 있다는 것이다.
본 발명에 따른 시스템들 및 방법들의 실시예들의 제2 이점은 아직 위협들로서 라벨링되거나 식별되지 않은 이상 파일들이 차단될 것이고 이 정보는 이러한 유사한 멀웨어의 진화들을 방지하기 위해 시스템의 위협 식별자를 훈련하는 데 사용될 것이라는 점이다.
본 발명에 따른 시스템들 및 방법들의 실시예들의 제3 이점은 시스템에 도입된 파일의 타입에 관계없이 파일이 분석되어 그의 위협 값을 결정할 것이라는 점이다.
본 발명에 따른 시스템들 및 방법들의 실시예들의 제4 이점은, 시스템에 도입된(그리고 임의의 데이터 파일들을 포함하지 않을 수 있는) 파일의 타입 및/또는 크기에 관계없이, 데이터 플래시 제어기의 프런트-엔드 관리자가 파일에 의해 실행되는 커맨드들을 지속적으로 샘플링하도록 구성될 때 파일에 의해 개시된 임의의 판독/기입/오버라이트 커맨드들이 분석될 것이라는 점이다. 샘플링 주기는 수백 밀리초 내지 수십 초 사이에서 변할 수 있고, 그렇게 함으로써, 시스템이 랜섬웨어 공격을 받는 것을 방지할 수 있다.
위의 이점들은 다음의 방식으로 동작하는 본 발명에 따른 방법의 실시예들에 의해 제공된다.
본 발명의 제1 양태에 따르면, 수신된 데이터 객체에서 데이터 이상들(data anomalies)을 검출하기 위한 시스템이 개시되고, 이 시스템은: 처리 유닛; 및 처리 유닛에 의해 판독가능한 비-일시적 매체를 포함하고, 매체는, 처리 유닛에 의해 실행될 때, 처리 유닛으로 하여금: 데이터 객체의 디지털 서명 및 파일 타입에 기초하여 데이터 객체의 보안 태세(security posture)를 결정하게 하고; 보안 태세 및 보안 태세와 연관된 데이터 객체의 특징들에 기초하여 타입-보안-플랫폼(type-security-platform, TSP) 룩업 테이블을 생성하고, TSP 룩업 테이블에 기초하여 수신된 데이터 객체에 대한 난독화 값(obfuscation value) 및 포렌식 값(forensic value)을 생성하게 하고; 데이터 객체에 대한 디스어셈블된 값(disassembled value) 또는 해석된 값(interpreted value)을 생성하게 하고; 수신된 데이터 객체의 각각의 블록에 대한 결과 값을 산출(compute)하게 하고 - 블록들 각각에 대한 결과 값은 수신된 데이터 객체의 블록과 연관된 디스어셈블된 또는 해석된 값, 난독화 값 및 포렌식 값에 기초하여 생성됨 - ; 데이터 객체의 모든 결과 값에 기초하여 데이터 모델을 작성(create)하게 하고; 데이터 객체가 데이터 이상들을 포함하는지를 결정하기 위해 인공 지능(artificial intelligence, AI) 알고리즘을 사용하여 데이터 모델을 처리하게 하는 명령어들을 저장한다.
제1 양태와 관련하여, 수신된 데이터 객체에 대한 난독화 값을 생성하게 하는 명령어들은 처리 유닛에게: 데이터 객체를 데이터의 블록들로 분할하고; 데이터의 각각의 블록에 대한 섀넌 엔트로피 값(Shannon Entropy value)을 계산하도록 지시하기 위한 명령어들을 포함한다.
제1 양태와 관련하여, 수신된 데이터 객체에 대한 포렌식 값을 생성하게 하는 명령어들은 처리 유닛에게: 데이터 객체를 데이터의 블록들로 분할하고; 빈도-기반 유사도 해싱 스킴(Frequency-Based Similarity hashing scheme)을 사용하여 데이터의 각각의 블록에 대한 유사도 스코어를 계산하도록 지시하기 위한 명령어들을 포함한다.
제1 양태와 관련하여, 수신된 데이터 객체의 각각의 블록에 대한 결과 값들을 생성하게 하는 명령어들은 처리 유닛에게: 수신된 데이터의 각각의 블록에 대해 3 바이트를 포함하는 결과 값을 생성하도록 지시하기 위한 명령어들을 포함하여, 각각의 블록에 대해, 명령어들은 처리 유닛에게: 데이터 객체의 디스어셈블된 또는 해석된 값에 기초하여 결과 값의 제1 바이트의 최상위 비트(most significant bit, MSB) 및 제2 MSB를 설정하고; 제1 바이트의 비트들의 나머지를 결과 값의 제2 바이트로 파싱하고, 파싱된 결과를 블록과 연관된 난독화 값에 기초하여 설정하고; 블록과 연관된 포렌식 값에 기초하여 제3 바이트의 값을 설정하도록 지시한다.
제1 양태와 관련하여, 데이터 객체의 모든 결과 값에 기초하여 데이터 모델을 생성하게 하는 명령어들은 처리 유닛에게: 데이터 이미지 모델 - 데이터 이미지 모델 내의 각각의 픽셀은 고유 결과 값과 연관됨 - 을 생성하도록 지시하기 위한 명령어들을 포함하고, 각각의 고유 결과 값은 고유 이미지에 의해 데이터 이미지 모델에 표현된다.
제1 양태와 관련하여, 데이터 모델을 처리하는데 사용되는 AI 알고리즘은: 컨볼루션 신경망(convolutional neural network, CNN) 모델, 심층 신경망(deep neural network, DNN) 모델 또는 순환 신경망(recurrent neural network, RNN) 모델을 포함한다.
제1 양태와 관련하여, 인공 지능(AI) 알고리즘을 사용하여 데이터 모델을 처리하게 하는 명령어들은 처리 유닛에게: 데이터 모델을 데이터베이스 내에 포함된 데이터 모델들과 비교하도록 지시하기 위한 명령어들을 포함하고, 비교는 머신 학습 알고리즘들을 사용하여 수행된다.
제1 양태와 관련하여, 매체는, 처리 유닛에게: 데이터 객체를 수신 및 저장하도록 구성되는 가상 파일 시스템을 제공하도록 지시하기 위한 명령어들을 추가로 포함하여, 가상 파일 시스템은 처리 유닛으로 하여금 모든 단계를 가상 파일 시스템 내에서 수행하게 한다.
제1 양태와 관련하여, 디지털 서명은 데이터 객체와 연관된 매직 넘버(magic number)를 포함한다.
제1 양태와 관련하여, 보안 태세와 연관된 데이터 객체의 특징들은 데이터 객체의 플랫폼 타입 및 파일 타입을 포함한다.
본 발명의 제2 양태에 따르면, 인공 지능(AI) 모듈을 사용하여 수신된 데이터 객체에서 데이터 이상들을 검출하기 위한 방법이 개시되며, 이 방법은: AI 모듈 내에 제공된 분석기 모듈을 사용하여, 데이터 객체의 디지털 서명 및 파일 타입에 기초하여 데이터 객체의 보안 태세를 결정하는 단계; 분석기 모듈 및 AI 모듈 내에 제공된 검출기 모듈을 사용하여, 보안 태세 및 보안 태세와 연관된 데이터 객체의 특징들에 기초하여 TSP(type-security-platform) 룩업 테이블을 생성하고, TSP 룩업 테이블에 기초하여 수신된 데이터 객체에 대한 난독화 값 및 포렌식 값을 생성하는 단계; AI 모듈 내에 제공된 디스어셈블링 및 해석 모듈을 사용하여, 데이터 객체에 대한 디스어셈블된 값 또는 해석된 값을 생성하는 단계; AI 모듈 내에 제공된 블록 구조화 모듈을 사용하여, 수신된 데이터 객체의 각각의 블록에 대한 결과 값을 산출하는 단계 - 블록들 각각에 대한 결과 값은 수신된 데이터 객체의 블록과 연관된 디스어셈블된 또는 해석된 값, 난독화 값 및 포렌식 값에 기초하여 생성됨 - ; AI 모듈 내에 제공된 모델 생성기 모듈을 사용하여, 데이터 객체의 모든 결과 값에 기초하여 데이터 모델을 작성하는 단계; 및 AI 모듈 내에 제공된 AI 위협 모듈(AI threat module)을 사용하여, 데이터 개체가 데이터 이상들을 포함하는지를 결정하기 위해 인공 지능(AI) 알고리즘을 사용하여 데이터 모델을 처리하는 단계를 포함한다.
제2 양태와 관련하여, 수신된 데이터 객체에 대한 난독화 값을 생성하는 단계는: 데이터 객체를 데이터의 블록들로 분할하는 단계; 및 데이터의 각각의 블록에 대한 섀넌 엔트로피 값을 계산하는 단계를 포함한다.
제2 양태와 관련하여, 수신된 데이터 객체에 대한 포렌식 값을 생성하는 단계는: 데이터 객체를 데이터의 블록들로 분할하는 단계; 및 빈도-기반 유사도 해싱 스킴을 사용하여 데이터의 각각의 블록에 대한 유사도 스코어를 계산하는 단계를 포함한다.
제2 양태와 관련하여, 수신된 데이터 객체의 각각의 블록에 대한 결과 값들을 생성하는 단계는: 수신된 데이터의 각각의 블록에 대해 3 바이트를 포함하는 결과 값을 생성하는 단계를 포함하여, 각각의 블록에 대해, 방법은: 데이터 객체의 디스어셈블된 또는 해석된 값에 기초하여 결과 값의 제1 바이트의 최상위 비트(MSB) 및 제2 MSB를 설정하고; 제1 바이트의 비트들의 나머지를 결과 값의 제2 바이트로 파싱하고, 파싱된 결과를 블록과 연관된 난독화 값에 기초하여 설정하고; 블록과 연관된 포렌식 값에 기초하여 제3 바이트의 값을 설정한다.
제2 양태와 관련하여, 데이터 객체의 모든 결과 값에 기초하여 데이터 모델을 작성하는 단계는: 데이터 이미지 모델 - 데이터 이미지 모델 내의 각각의 픽셀은 고유 결과 값과 연관됨 - 을 생성하는 단계를 포함하고, 각각의 고유 결과 값은 고유 이미지에 의해 데이터 이미지 모델에 표현된다.
제2 양태와 관련하여, 데이터 모델을 처리하는데 사용되는 AI 알고리즘은: 컨볼루션 신경망(convolutional neural network, CNN) 모델, 심층 신경망(deep neural network, DNN) 모델 또는 순환 신경망(recurrent neural network, RNN) 모델을 포함한다.
제2 양태와 관련하여, 인공 지능(AI) 알고리즘을 사용하여 데이터 모델을 처리하는 단계는: 데이터 모델을 데이터베이스 내에 포함된 데이터 모델들과 비교하는 단계를 포함하고, 비교는 머신 학습 알고리즘들을 사용하여 수행된다.
제2 양태와 관련하여, 데이터 객체의 디지털 서명 및 파일 타입에 기초하여 데이터 객체의 보안 태세를 결정하는 단계 전에; 방법은, 분석기 모듈을 사용하여, 데이터 객체를 수신 및 저장하는 가상 파일 시스템을 제공하는 단계를 추가로 포함하고, 가상 파일 시스템은 방법의 모든 단계가 가상 파일 시스템 내에서 실행되게 한다.
제2 양태와 관련하여, 디지털 서명은 데이터 객체와 연관된 매직 넘버를 포함한다.
제2 양태와 관련하여, 보안 태세와 연관된 데이터 객체의 특징들은 데이터 객체의 플랫폼 타입 및 파일 타입을 포함한다.
위의 및 다른 문제들은 상세한 설명에서 설명되고 다음의 도면들에 도시되는 본 발명에 따른 시스템 및 방법의 특징들 및 이점들에 의해 해결된다.
도 1은 본 발명의 실시예들에 따른 이상들을 검출하고 분석하기 위한 방법을 구현하는데 사용될 수 있는 모듈들의 블록도를 도시한다.
도 2는 본 발명의 실시예들에 따른 실시예들을 제공하는 처리 시스템들을 나타내는 블록도를 도시한다.
도 3은 본 발명의 실시예들에 따른 이상 데이터 파일들을 검출하기 위한 프로세스 또는 방법이다.
도 4는 본 발명의 실시예들에 따른 32-비트 보안 룩업 테이블을 이용하여 데이터 모델을 생성하기 위한 프로세스 또는 방법을 도시한다.
도 5는 본 발명의 실시예들에 따른 예시적인 데이터 객체에 대해 획득된 샘플링 레이트에 대해 엔트로피 값이 그려져 있는 것을 나타낸 도면을 도시한다.
도 6은 x축이 동작의 타입의 빈도를 나타내고 y축이 데이터 객체가 디스어셈블된 후의 동작의 타입을 나타내는 플롯을 도시한다.
도 7a는 본 발명의 실시예들에 따른 데이터 모델의 이미지를 생성하기 위한 512 x 512 픽셀 플롯을 도시한다.
도 7b는 본 발명의 실시예들에 따른 데이터 모델의 생성된 이미지를 도시한다.
도 7c는 본 발명의 실시예들에 따른 생성된 데이터 이미지 모델과 사전-훈련된 데이터세트 모델들에 대해 이전에 있었던 이미지들 사이의 비교를 도시한다.
도 8은 본 발명의 실시예들에 따른 데이터 파일의 진실성(veracity)을 결정하기 위해 스코어들이 사용되는 머신 학습 모델을 사용하여 그의 특징들에 기초하여 도 4에 도시된 프로세스에 의해 생성된 데이터세트 모델을 스코어링(scoring)하기 위한 프로세스 또는 방법을 도시한다.
본 발명은 이상 데이터 파일들을 검출하고 검출된 이상 데이터 파일들이 데이터 스토리지에 저장되는 것을 방지하기 위한 시스템 및 방법에 관한 것이다. 특히, 이 시스템 및 방법은 각각의 데이터 파일을 데이터의 블록들로 분할하여, 데이터의 각각의 블록에 대해 엔트로피 값들이 획득되고, 이 정보는 수집분석되고 후속하여 머신 학습 모델에서 사용되어 데이터 파일의 보안 레벨을 확인한다. 그 후, 이상이 있는 것으로 밝혀진 파일들은 격리되고, ok인 것으로 간주되는 파일들은 다음 단계로 진행하여, (파일이 임의의 데이터 섹션들을 포함하지 않더라도) 배경에서 실행중일 수 있는 임의의 멀웨어 및/또는 랜섬웨어 커맨드들에 대해 분석될 것이다.
이제, 첨부 도면에 도시된 바와 같은 몇몇 실시예를 참조하여 본 발명에 대해 상세히 설명하기로 한다. 다음 설명에서는, 본 발명의 실시예들의 완전한 이해를 제공하기 위해 다수의 구체적인 특징들이 제시된다. 그러나, 실시예들은 구체적인 특징들의 일부 또는 전부가 없이도 실현될 수 있다는 것이 본 기술분야의 통상의 기술자에게 명백할 것이다. 이러한 실시예들은 또한 본 발명의 범위 내에 속해야 한다. 또한, 이하의 특정 프로세스 단계들 및/또는 구조들은 상세히 설명되지 않을 수 있고, 독자는 본 발명을 불필요하게 모호하게 하지 않도록 대응하는 인용을 참조할 것이다.
또한, 본 기술분야의 통상의 기술자는 본 설명의 많은 기능 유닛들이 명세서 전반에 걸쳐 모듈들로서 라벨링되었다는 것을 인식할 것이다. 본 기술분야의 통상의 기술자는 또한 모듈이 회로들, 로직 칩들 또는 임의의 종류의 개별 컴포넌트로서 구현될 수 있다는 것을 인식할 것이다. 게다가, 본 기술분야의 통상의 기술자는 또한 모듈이 다양한 프로세서 아키텍처에 의해 실행될 수 있는 소프트웨어로 구현될 수 있다는 것을 인식할 것이다. 본 발명의 실시예들에서, 모듈은 또한 컴퓨터 프로세서에게 수신된 명령어들에 기초하여 이벤트들의 시퀀스를 수행하도록 지시할 수 있는 컴퓨터 명령어들 또는 실행가능 코드를 포함할 수 있다. 모듈들의 구현의 선택은 본 기술분야의 통상의 기술자에게 설계 선택으로서 남겨지며, 어떤 식으로든 본 발명의 범위를 제한하지 않는다.
본 발명의 실시예들에 따른 AI 코어 프로세서에 의해 이상 데이터 파일을 검출하고, 분석하고, 식별하기 위한 예시적인 프로세스 또는 방법이 아래의 단계들에서 제시된다. 프로세스 또는 방법의 단계들은 다음과 같다:
단계 1: 데이터 객체의 디지털 서명 및 파일 타입에 기초하여 데이터 객체의 보안 태세를 결정하고;
단계 2: 보안 태세 및 보안 태세와 연관된 데이터 객체의 특징들에 기초하여 TSP(type-security-platform) 룩업 테이블을 생성하고, TSP 룩업 테이블에 기초하여 수신된 데이터 객체에 대한 난독화 값 및 포렌식 값을 생성하고;
단계 3: 데이터 객체에 대한 디스어셈블된 값 또는 해석된 값을 생성하고;
단계 4: 수신된 데이터 객체의 각각의 블록에 대한 결과 값을 산출하고 - 블록들 각각에 대한 결과 값은 수신된 데이터 객체의 블록과 연관된 디스어셈블된 또는 해석된 값, 난독화 값 및 포렌식 값에 기초하여 생성됨 - ;
단계 5: 데이터 객체의 모든 결과 값에 기초하여 데이터 모델을 작성하고;
단계 6: 데이터 객체가 데이터 이상들을 포함하는지를 결정하기 위해 인공 지능(AI) 알고리즘을 사용하여 데이터 모델을 처리한다.
본 발명의 실시예들에 따르면, 위에 설명된 단계들은 도 1에 도시된 바와 같이 인공 지능(AI) 코어 모듈(105) 내에 포함된 모듈들에 의해 수행될 수 있고, 이에 의해 AI 코어 모듈(105)은 합성 모듈(110), AI 고급 분석기 모듈(106), AI 위협 모듈(107), 유효성 모듈(validation module)(140) 및 스토리지(storage)(150)를 포함한다.
차례로, 합성 모듈(110)은 서브-모듈들: 분석기(111); 플랫폼 검출기(112); 디스어셈블링/해석(113); 및 블록 구조화(114)를 포함하고, AI 고급 분석기 모듈(106)은 서브-모듈들: 출력 구조 블록(120); 특징 추출기(121); 및 모델 생성기(122)를 포함한다. AI 위협 모듈(107)의 경우, 이 모듈은 서브-모듈들: AI 검색(130); 데이터베이스(131); 및 훈련된 데이터베이스(132)를 포함한다.
본 발명의 실시예들에서, 데이터(101)는 모든 타입들 및 포맷들의 데이터 객체들을 포함할 수 있고, 이들 데이터의 콘텐츠는 비디오 파일들, 문서들, 이미지들, 스프레드시트들, 애플리케이션 프로그래밍 인터페이스들, 실행가능 파일들 및 다양한 파일 확장자들/또는 판독/기입(소거) 커맨드들과 같은 더미 커맨드 바이트들을 갖는 모든 다른 타입들의 파일들을 포함할 수 있고, 이에 제한되지 않는다. 일반적으로, 데이터(101)는 복수의 서브-객체들(102)로 분할될 수 있고, 복수의 서브-객체들(102)은, 조합될 때, 데이터(101) 전체를 구성한다. 본 발명의 실시예들에서, 데이터(101)는 더 작은 서브-객체들(102)로 카테고리화되어, AI 코어 모듈(105)이 이들 더 작은 서브-객체들 각각을 효율적이고 효과적으로 처리하는 것이 더 쉬울 것이다.
데이터(101) 또는 객체들(102)(세분된 데이터(101))가 이어서 합성 모듈(110)에 의해 수신된다. 본 명세서로부터, 데이터(101)가 참조되지만, 본 기술분야의 통상의 기술자는 후속하여 논의되는 단계들 및 프로세스들이 본 발명을 벗어나지 않고 모든 종류의 데이터 객체들 및 심지어 서브-객체들(102)에도 적용될 수 있다는 것을 인식할 것이다. 데이터(101)를 수신할 때, 분석기 모듈(111)은 데이터(101)의 데이터 구조를 분석하여 데이터(101)의 구조 및 구성에 관한 더 많은 상세들과 정보를 획득한다. 본 발명의 실시예에서, 분석기 모듈(111)은 디지털 서명 룩업 테이블, 파일 룩업 테이블 또는 매직 넘버 룩업 테이블을 통해 데이터(101)가 이상 파일인지를 결정하도록 구성된다. 본 발명의 실시예들에서, 분석기 모듈(111)은 샌드박스 환경에서 파일을 판독하도록 구성되는 옵션의 가상 파일 시스템을 작성한다. 분석기 모듈(111)은 이어서 데이터(101)에 대한 적절한 보안 플래그를 생성하고, 데이터(101)에 대한 적절한 보안 플래그는 이어서 데이터(101)와 연관된 고유 TSP(type-security-platform) 룩업 테이블의 생성시에 사용된다. 그 다음, 이 TSP 룩업 테이블은 데이터(101)를 더 상세히 분석하기 위해 합성 모듈(110) 내의 다른 모듈들에 의해 사용된다.
그 다음, 플랫폼 검출기 모듈(112)은 데이터(101) 및 그의 보안 태세에 의해 영향을 받고/받거나 변경될 수 있는 그의 파일 타입, 그의 동작 플랫폼 및 컴퓨터 아키텍처들과 같은, 그러나 이에 제한되지 않는, 데이터(101)에 관한 특정한 주요 특징에 기초하여 수신된 TSP 룩업 테이블의 나머지를 채우도록 구성된다. 검출기 모듈(112)에 의해 수행된 분석의 결과는 이어서 GV 모듈(112a)에 저장되고, 또한 디스어셈블링/해석 모듈(113)에 제공된다.
디스어셈블링/해석 모듈(113)에서, 검출기 모듈(112)에 의해 생성된 결과는 디스어셈블된 데이터세트 또는 값을 생성하기 위해 디스어셈블되거나, 인식가능한 ASCII 용어들에 대해 해석될 디-스크립팅 소스(de-scripting source)에 전송되고, 해석된 데이터 객체 및 그의 대응하는 값은 그 다음에 모듈(113)로 반환되어 추가 처리된다. 그 다음, 데이터세트 모델은 GV 모듈(113a)에 저장되고 다음 모듈인 블록 구조화 모듈(114)에 제공된다.
블록 구조화 모듈(114)에서, 난독화된 데이터 및/또는 다른 관련 특징들이 축소된 데이터세트로부터 추출될 수 있다. 본 발명의 실시예들에서, 구조화 모듈(114)은 함수들, 외부 호출 함수들, 입력/출력 포트들과 통신하는 객체들을 식별하고, 차례로 이 정보를 데이터세트 모델에 추가한다. 이 데이터세트 모델은 AI 고급 분석기 모듈(106)에 바이트들의 복잡한 테이블, 즉, 출력 구조 블록(120)으로서 제시될 수 있다. 본 발명의 실시예들에서, 데이터세트 모델은 모듈들(111, 112 및 113)의 출력들에 기초하여 블록 구조화 모듈(114)에 의해 생성될 것이다. 모듈(114)은 엔트로피/포렌식/디셈블러 프로세스들로부터 획득된 모든 결과를, 모든 결과를 함께 통합하기에 적절한 데이터 구조를 갖는 데이터세트 모델로 파싱할 것이다. 본 발명의 실시예들에서, 이 구조 내에 포함된 파싱된 결과들은 프리픽스(prefix)로 명명될 것이고, 그에 의해 프리픽스는 결과의 데이터 또는 함수의 이름을 나타내는데 사용될 것이며, 예를 들어, 포렌식 테이블의 결과는 "Prefix.Forensic.typeofForensic.table.result1.result2.result3"으로 명명될 것이다.
이 정보가 모듈(106)에 제공되면, 특징 추출기 모듈(121)은 GV 콜백 모듈(117)을 통해 GV 모듈들(111a, 112a 및 113a)에 저장된 출력들, 및 데이터(101)와 함께 출력 구조 블록(120) 내에 포함된 정보를 수집분석하고 이 수집분석된 정보를 모델 생성기 모듈(122)에 제공할 것이다.
그 다음, 모델 생성기 모듈(122)은 차례로 수신된 정보를 사용하여 적절한 모델을 생성한다. 그 다음, 모델은 데이터베이스(131)에 제공되어 데이터베이스(131)에 저장되며, AI 검색 모듈(130)에 의해 훈련된 데이터베이스(132)와 조합해서 사용되어 모델에 대한 위협 스코어(threat score)를 결정한다.
본 발명의 실시예들에서, 추출기 모듈(121)로부터 획득된 특징들은 512 x 512 픽셀을 포함하는 매트릭스를 가지는 데이터 이미지 모델을 생성하기 위해 모델 생성기 모듈(122)에 의해 사용될 수 있고, 각각의 픽셀은 데이터(101)의 블록을 나타내며 3 바이트의 데이터로 구성된다. 생성된 데이터 이미지 모델 및/또는 데이터세트 모델은 그 후 데이터베이스(131) 내부에 일시적으로 저장될 것이다. AI 검색 모듈(130)은 이어서 데이터베이스(131) 내에 저장된 모델을 훈련된 데이터베이스(132)에 저장된 데이터세트들과 매칭시키기 위해 매칭 알고리즘을 실행할 것이다. 그 다음, 결과는 100에 의해 정규화될 것이고, 정규화된 스코어는 유효성 모듈(140)로 전달될 것이다. 이 모듈 내에서, 시스템의 사용자에 의해 다양한 스코어링 설정들이 정의될 수 있고, 예를 들어, 다음과 같으며, 이에 제한되지 않는다:
● 0과 50 사이의 스코어들은 "위협 없음(no threat)"이 있다는 것을 암시할 수 있다
● 51과 85 사이의 스코어들은 파일 타입이 "양성(benign)"인 것을 의미할 수 있다
● 86과 99 사이의 스코어들은 "위협"이 존재한다는 것을 암시할 수 있다
본 발명의 실시예들에서, AI 검색 모듈(130)은 감독 머신 학습 알고리즘을 이용하여 위협 스코어들을 데이터세트 모델에 할당한다. 본 발명의 실시예들에서, 선형 회귀(linear regression), 랜덤 포레스트(random forest) 및/또는 지원 벡터 머신들과 같은, 그러나 이에 제한되지 않는, 감독 머신 학습 기법들이 사용될 수 있다.
위협 스코어들이 할당되면, 이 스코어들은 그 후 데이터(101)와 함께 유효성 모듈(140)에 제공된다. 유효성 모듈(140)이 스코어들에 기초하여 데이터(101)가 위협적이라는 것을 확인하면, 데이터(101)는 스토리지(150)에 설치되는 것이 차단될 것이고, 그 대신 출력(160)에 제공되어, 데이터(101)는 격리되거나 추가 분석될 것이다.
반대로, 데이터(101)가 위협을 구성하지 않는다고 판정되면, 데이터(101)는 스토리지(150)에 설치되도록 허용될 것이다. 완전함을 위해, 스토리지(150)는 컴퓨터 시스템의 1차 스토리지(예를 들어, RAM, 솔리드 스테이트 및/또는 자기 하드 디스크) 또는 시스템의 2차 스토리지(예를 들어, 이동식 드라이브들)와 같은 임의의 타입 또는 형태의 데이터 스토리지를 포함할 수 있으며, 이에 제한되지 않는다.
본 발명의 실시예들에 따르면, 본 발명의 실시예들에 따른 실시예들을 구현하기 위해 (도 1에 도시된 바와 같이) AI 코어(105) 내에 제공될 수 있는 컴포넌트들을 나타내는 블록도가 도 2에 도시되어 있다. 본 기술분야의 통상의 기술자는 AI 코어(105)의 정확한 구성이 고정되지 않고 상이할 수 있으며 달라질 수 있고 도 2는 단지 예로서 제공된다는 것을 인식할 것이다.
본 명세서에서, "프로세서"라는 용어는 일반적으로 그러한 명령어들을 처리할 수 있는 임의의 디바이스 또는 컴포넌트를 지칭하는 데 사용되며, 마이크로프로세서, 마이크로컨트롤러, 프로그램가능 로직 디바이스 또는 다른 계산 디바이스를 포함할 수 있다. 즉, 프로세서(205)는 입력들을 수신하고, 메모리에 저장된 명령어들에 따라 그것들을 처리하고 출력들(즉, 메모리 컴포넌트들, 보안 관리 모듈(280), AI 코프로세서(285), 센서들(290) 및/또는 PCIe 버스 등으로의)을 생성하기 위한 임의의 적합한 로직 회로에 의해 제공될 수 있다. 본 실시예에서, 프로세서(205)는 메모리 어드레스가능 공간을 갖는 단일 코어 또는 멀티-코어 프로세서일 수 있다. 일 예에서, 프로세서(205)는 - 예를 들어 - 8 코어 CPU를 포함하는 멀티 코어일 수 있다.
본 발명의 실시예들에서, 프로세서(205)는 전기적으로 소거되고 프로그램될 수 있는 임의의 타입의 비휘발성 메모리 저장 매체를 제어하도록 구성되는 플래시 제어기(252)를 포함할 수 있다. 그러한 비휘발성 메모리 스토리지의 예는 NAND 또는 NOR 타입 플래시 메모리 또는 비-플래시 EEPROM 플래시 메모리일 것이다. 도 2에서, 플래시 제어기(252)는 보안 부트, 펌웨어, AI 훈련된 데이터, 서명 데이터, 해시 테이블, 임계값 테이블(threshold table), 예비 영역 및 사용자 영역을 저장하는 NAND 플래시(245)를 제어하도록 배열되지만, 본 기술분야의 통상의 기술자는 본 발명을 벗어나지 않고 다른 타입들의 데이터 및 정보가 NAND 플래시(245)에 저장될 수 있다는 것을 인식할 것이다.
프로세서(205)는 또한 정적 랜덤 액세스 메모리(static random access memory, SRAM) 또는 동적 랜덤 액세스 메모리(dynamic-random access memory, DRAM)와 같은 임의의 타입의 휘발성 랜덤 액세스 메모리(RAM)(223)를 제어하도록 구성되는 DDR 제어기(268)를 포함한다. 판독 전용 메모리(read only memory, ROM) 모듈 ROM(270)이 또한 I-D(254), A-D(256), 아키텍처 코어(258), AXI4(262), 및 NVME 코어(276)와 함께 프로세서(205) 내에 제공된다. 특히, I-D(254)는 프로세서(205)에 대한 명령어들을 디코딩하도록 구성되는 명령어 디코더를 포함하고, A-D(256)는 프로세서(205) 내에서 모든 어드레스 버스들이 관리되도록 칩셋 내에서 사용되는 각각의 물리적 주변장치에 대한 어드레스들을 디코딩하도록 구성되는 어드레스 디코더를 포함하고, 아키텍처 코어(258)는 ARM 아키텍처, MIPS 아키텍처, RISC-VARCH 아키텍처 등과 같은, 그러나 이에 제한되지 않는, 프로세서(205)의 아키텍처 코어를 포함하여, 아키텍처 타입은 프로세서(205)가 핸들링하고 있는 명령어들의 수, 소비되는 전력의 양 등에 의존한다.
AXI4(262)의 경우, 이 컴포넌트는 AXI4로서 식별되는 인터커넥트 버스 연결을 포함한다. AXI4(262)는 많은 ASIC 제조자에 의해 자주 사용되는 연결이며, 슬레이브/마스터(SLAVE/MASTER) 버스 및 프로세서(205)를 그 안에 포함된 다른 컴포넌트들과 연결하는 고속 내부 통신 버스를 광범위하게 포함하여, 이 상호연결 버스에 링크된 각각의 컴포넌트는 그 자신의 어드레스를 가질 것이다.
NVME(Non-volatile Memory Express) 코어(276)는 사용자의 호스트로부터의 모든 판독/기입(READ/WRITE) 및 관리 동작 커맨드들을 핸들링하도록 구성되는 컴포넌트를 포함하고 이것은 AXI4(262)를 통해 PCIe 버스(295)로의 직접 연결을 통해 행해진다. 이것은 데이터 객체가 호스트로부터 수신되거나 호스트에 전송될 때마다 이 송신이 NVME 코어(276)에 의해 제어될 것임을 의미한다. 이 컴포넌트는 프로세서(205)와 독립적으로 동작하도록 구성될 수 있고, 미리 정의된 시간 프레임 내에서 실행되는 모든 NVME 커맨드를 모니터링하는데 사용될 수 있다는 점에 유의해야 한다. 추가적으로, NVME 코어(276)는 DDR 제어기(268)와 플래시 제어기(252) 사이의 데이터 레이트의 속도를 동기화(sync)하도록 구성될 수 있어, 그러한 동작은 플래시 전이 계층(Flash Transition Layer)이라고 알려져 있다.
캐시(260)가 또한 프로세서(205) 내에 제공되고, 다양한 타입의 메모리로부터의 데이터에 액세스하기 위한 평균 비용(시간 또는 에너지)을 감소시키기 위해 프로세서에 의해 사용된다.
본 기술분야의 통상의 기술자는 위에서 설명한 다양한 메모리 컴포넌트들이 비일시적 컴퓨터 판독가능 매체를 포함하며, 일시적인 전파 신호를 제외한 모든 컴퓨터 판독가능 매체를 포함하는 것으로 간주되어야 한다는 것을 인식할 것이다. 전형적으로, 명령어들은 메모리 컴포넌트들에 프로그램 코드로서 저장되지만 또한 하드와이어드(hardwired)될 수 있다.
주변 컴포넌트 인터커넥트 익스프레스(Peripheral Component Interconnect Express)(공식적으로 PCIe로 축약됨) 제어기(274)는 PCIe 버스 프로토콜을 지원할 수 있는 다양한 호스트 컴퓨터들과 프로세서(205) 사이의 고속 직렬 컴퓨터 확장 버스 상에서 일어나는 데이터 교환을 제어하기 위한 제어기이다. 입력/출력(I/O) 인터페이스(272)가 또한 다양한 타입의 사용자 인터페이스, 통신 인터페이스 및 센서(290)와 통신하기 위해 제공된다. 센서들(290)은 모션 센서들, 온도 센서들, 충격 센서들을 포함할 수 있지만, 이에 제한되지 않으며, 이 센서들은 데이터를 유선 또는 무선 네트워크를 통해 외부 소스들로/로부터 다른 처리 디바이스들로 송신/수신하거나, 또는 유선 또는 무선 네트워크를 통해 데이터를 수신하도록 구성될 수 있다. 이용될 수 있는 무선 네트워크들은 Wi-Fi(Wireless-Fidelity), 블루투스, NFC(Near Field Communication), 셀룰러 네트워크들, 위성 네트워크들, 전기통신 네트워크들, WAN(Wide Area Networks) 등을 포함하지만, 이에 제한되지 않는다.
AI 코프로세서(285)는 전용 버스(도시되지 않음)를 통해 프로세서(205)에 연결되고, 인공 지능 애플리케이션들, 특히 머신 학습 알고리즘들을 가속하도록 설계되고 특정 컴퓨팅 작업들을 가속하여 프로세서(205) 상의 부하를 가볍게 하는데 사용되는 특수 하드웨어 가속기를 포함한다.
도 3은 수신된 데이터 객체를 분석하기 위한 프로세스(300)를 도시하며, 프로세스(300)는 본 발명의 실시예들에 따른 AI 코어 내의 모듈들에 의해 구현될 수 있다. 프로세스(300)는 단계(305)에서 분석될 데이터 객체를 수신하는 것으로 시작한다. 이전 섹션에서 언급한 바와 같이, 데이터 객체는 문서, 이미지 파일, 실행가능 파일 또는 임의의 다른 타입의 파일을 포함할 수 있다. 본 발명의 실시예들에서, 데이터 객체는 바이트들의 블록들을 포함할 수 있으며, 이러한 바이트들의 블록들은 그것의 크기, 플래시 위치 섹터들 및 파일의 시작과 파일의 끝을 기록하기 위한 영역이 할당될 플래시 드라이브 칩셋과 같은, 그러나 이에 제한되지 않는, AI 코어에 링크된 저장 매체에 저장될 것이다.
그 다음, 프로세스(300)는 단계(310)로 진행하여, 옵션으로, 데이터 객체 전체가 완전히 수신되면 가상 파일 시스템이 초기화된다. 이 단계에서는, 호스트 드라이브와 동일한 방식으로 데이터 객체를 판독할 수 있는 가상 파일 시스템이 프로세스(300)에 의해 작성된다. 그러나, 종래의 드라이브들 또는 파일 시스템들과 달리, 가상 파일 시스템은 가상 파일 시스템이 완전히 분리되도록 구성되기 때문에 호스트 드라이브에 의해 액세스가능한 드라이브들에 대한 직접 링크를 갖지 않는다. 게다가, 가상 파일 시스템은 ASIC 칩셋 내부에서 실행되도록 구성되기 때문에, 가상 파일 시스템은 더 적은 하드웨어 자원을 필요로 하고 다른 작업들과 병렬로 실행될 수 있다. 따라서, 단계(305)에서 새로운 객체들이 수신될 때, 프로세스(300)는 이들 새로운 데이터 객체들을 추가 처리를 위해 큐잉될 가상 파일 시스템 내의 내부 리스트에 추가할 것이다. 본 발명의 실시예들에서, 프로세스(300)는 데이터 객체가 분석되고 보안될 때까지 데이터 객체를 콜백하지 않을 것을 보장하기 위해, 이 내부 리스트를 지속적으로 모니터링할 것이다. 이를 위해, 내부 리스트는 호스트 파일 시스템으로부터 격리될 수 있고 일시적으로 로크(lock)될 수 있는 임시 버퍼에 포함될 수 있다. 다시 말해, 본 발명의 일 실시예에서는, 프로세스들(300 및 400) 전체가 가상 파일 시스템 내에서 일어나는 반면, 본 발명의 다른 실시예에서는, 프로세스들(300 및 400)이 가상 파일 시스템 외부에서 일어날 수 있다고 말할 수 있다. 이것은 프로세스들(300 및 400)이 가상 파일 시스템 외부에서 일어나는 경우, 프로세스(300)가 단계(305)로부터 단계(315)로 진행할 것임을 의미한다.
단계(315)에서, 가상 파일 시스템 내에서 또는 AI 코어 내에서, 프로세스(300)는 데이터 객체의 타입을 체크한다. 본 발명의 실시예들에서, 이것은 이름을 체크함으로써 행해질 수 있다. 예를 들어, 데이터 객체가 "xxyyy.pdf"라고 명명되는 경우, 프로세스(300)는 이 정보를 extension[n-1]=pdf라고 불릴 수 있는 임시 변수에 저장한다.
단계(315)로부터의 정보는 그 후 단계(320)로 전달된다. 이 단계에서, 프로세스(300)는 데이터 객체에 고유한 매직 넘버 또는 특수 헤더 프레임을 생성하고, 이 매직 넘버는 그 후 데이터 객체 내부에 내장될 수 있어, 그 후 호스트 시스템에 의해 데이터 객체의 타입을 식별하는 데 사용될 수 있다.
그 다음, 프로세스(300)는 단계(325)에서 사전 로드된 매직 넘버 룩업 테이블을 로드한다. 본 기술분야의 통상의 기술자에게 알려진 바와 같이, 매직 넘버들은 특정한 파일 포맷 또는 프로토콜을 식별하는 데 사용될 수 있는 일정한 수치 값들을 지칭하거나 또는 다른 의미로 오해될 가능성이 없는 독특한 고유 값들을 지칭할 수도 있다. 사전 로드된 매직 넘버 룩업 테이블 내의 각각의 매직 넘버는 특정한 파일 포맷 또는 타입을 지칭하고, 이 룩업 테이블은 필요에 따라 또는 새로운 파일 타입이 발견될 때마다 주기적으로 업데이트될 수 있다.
그 다음, 프로세스(300)는 단계(330)에서, 생성된 매직 넘버가 사전 로드된 매직 넘버 룩업 테이블 내의 임의의 매직 넘버와 매칭되는지를 결정한다.
프로세스(300)가 매칭이 존재하지 않는다고 결정하는 경우, 프로세스(300)는 단계(335)로 진행한다. 이 단계에서, 곧 생성될 TSP(type-security-platform) 룩업 테이블과 연관된 보안 플래그가 생성되어 고 레벨로 설정될 것이다. 그 후, 프로세스(300)는 단계(340)로 진행하여, TSP(type-security-platform) 룩업 테이블이 생성된다.
반대로, 프로세스(300)가 단계(330)에서, 생성된 매직 넘버가 사전 로드된 매직 넘버 룩업 테이블 내의 매직 넘버와 매칭된다고 결정하는 경우, 이것은 데이터 객체가 알려진 파일 타입을 포함한다는 것을 암시할 것이다.
그 다음, 프로세스(300)는 단계(345)에서, (예를 들어, 데이터 어레이로서 저장된) 잠재적 이상 파일 타입들의 룩업 테이블을 로드하여, 이 테이블 내의 각각의 알려진 이상 파일 타입은 매직 넘버와 연관된다. 본 발명의 이 실시예에서, 이상 파일 타입은 잠재적 위협인 파일을 나타내며, 특정 툴 체인 컴파일러(specific tool chain compiler)(예를 들어, 자바 스크립트 객체, pdf 파일, jpeg(exe 파일을 내장하여 나중에 그것을 추출하기 위해 호출함))로 컴파일될 필요 없이 상이한 플랫폼들 상에서 실행될 수 있다.
프로세스(300)는 그 후 단계(350)에서, 수신된 데이터 객체의 파일 타입이 단계(345)에서 로드된 잠재적 이상 파일 타입들의 룩업 테이블 내의 이상 파일 타입과 매칭되는지를 결정한다.
프로세스(300)가 매칭이 존재한다고 결정하는 경우, 프로세스(300)는 단계(355)로 진행한다. 이 단계에서, 곧 생성될 TSP(type-security-platform) 룩업 테이블과 연관된 보안 플래그가 생성될 것이고, 플래그는 고 레벨로 설정될 것이다. 그 후, 프로세스(300)는 단계(340)로 진행하여, TSP 룩업 테이블이 이후 생성된다.
반대로, 프로세스(300)가 단계(350)에서, 수신된 데이터 객체의 파일 타입이 이상 파일 타입과 매칭되지 않는다고 결정하는 경우, 프로세스(300)는 단계(360)로 진행하여, 곧 생성될 TSP(type-security-platform) 룩업 테이블과 연관된 보안 플래그가 생성되어 데이터 객체가 이상 파일이 아닐 수 있음을 나타내는 정상 레벨로 설정될 것이다. 그 후, 프로세스(300)는 단계(340)로 진행하여, TSP 룩업 테이블이 이후 생성된다.
본 발명의 실시예들에 따르면, TSP 룩업은 32-비트 변수를 포함하여, 처음 16 최상위 비트(MSB)는 다양한 타입의 데이터 객체들(즉, 비트들 31(MSB) 내지 16)을 나타내고, 다음 8 비트는 데이터 객체의 보안 태세(즉, 비트들 15 내지 8)를 나타내고, 마지막 8 비트는 데이터 객체의 플랫폼 사용(즉, 비트들 7 내지 0 - 최하위 비트(LSB))을 나타낸다. 예시적인 TSP 룩업 테이블이 아래의 표 1 내지 표 3에 제시된다.
Figure 112021011429363-pct00001
Figure 112021011429363-pct00002
Figure 112021011429363-pct00003
표 1은 TSP 룩업 테이블에서 다양한 파일 타입들이 비트들 31(MSB) 내지 16으로 표현될 수 있는 방법의 예를 기술하고, 표 2는 데이터 객체의 보안 태세가 비트들 15 내지 8로 표현될 수 있는 방법의 예를 기술하고, 표 3은 데이터 객체에 의해 사용되는 다양한 타입들의 플랫폼들이 비트들 7 내지 0으로 표현될 수 있는 방법의 예를 기술한다.
본 발명의 실시예에서, 표 2를 참조하면, "Status_1"은 데이터 객체의 보안 플래그가 최고 레벨로 설정되었고 그것의 디지털 서명이 매직 넘버 룩업 테이블 내의 임의의 매직 넘버와 매칭되지 않았다는 것을 나타낼 수 있고, "Status_2"는 데이터 객체의 보안 플래그가 최고 레벨로 설정되었고 그것의 디지털 서명이 매직 넘버 룩업 테이블 내의 매직 넘버와 매칭되지만 데이터 객체의 파일 타입이 파일 룩업 테이블 내의 이상 파일 타입과 매칭된다는 것을 나타낼 수 있고, "Status_3"은 데이터 객체의 보안 플래그가 정상 레벨로 설정되었고, 그것의 디지털 서명이 매직 넘버 룩업 테이블 내의 매직 넘버와 매칭되었고 그것의 파일 타입이 임의의 알려진 이상 파일 타입과 매칭되지 않는다는 것을 나타낼 수 있다. 본 기술분야의 통상의 기술자는 본 발명을 벗어나지 않고 다양한 타입의 상태 레벨들이 다른 타입들 및 변형들의 보안 태세들을 표현하는데 사용될 수 있다는 것을 인식할 것이다.
본 발명의 실시예들에서, 표 3을 참조하면, 비트들 7 내지 4는 파일의 아키텍처, 파일의 마이크로컨트롤러 유닛(MCU) 실행, 운영 체제/하드웨어 플랫폼을 표현하는데 사용될 수 있고, 최저 4 비트(비트들 3-0)는 데이터 객체의 가능한 운영 체제를 나타낼 수 있으며, 그에 의해 LSB가 B(또는 임의의 다른 동등한 표시자)로서 설정되는 경우, 이것은 데이터 객체가 임의의 타입의 운영 체제 상에서 실행될 수 있다는 것을 의미한다.
데이터 객체에 대해 TSP 룩업 테이블이 생성되면, 도 4에 도시된 바와 같은 프로세스(400)가 개시된다. 프로세스(400)는 단계(402)에서 (프로세스(400)가 가상 파일 시스템 내에서 일어나는 경우) 가상 파일 시스템 내에 저장된 또는 AI 코어에 저장된 데이터 객체의 위치를 검색함으로써 시작된다. 그 다음, 프로세스(400)는 다음 단계인 단계(405)에서 데이터 객체와 연관된 TSP 룩업 테이블을 검색한다. 그 다음, 프로세스(400)는 단계(410)에서, TSP 룩업 테이블에 포함된 정보를 그들의 관련 그룹들로 파싱한다. 특히, 데이터 객체의 보안 상태에 관한 TSP 룩업 테이블 내의 비트들은 제1 그룹으로 파싱될 것이고, 데이터 객체의 타입에 관한 TSP 룩업 테이블 내의 비트들은 제2 그룹으로 파싱될 것이고, 데이터 객체의 타겟 플랫폼에 관한 TSP 룩업 테이블 내의 비트들은 제3 그룹으로 파싱될 것이다.
그 다음, 프로세스(400)는 단계(430)로 진행하고, 여기서 프로세스(400)는 제1 그룹의 파싱된 비트들로부터 보안 레벨이 정상 레벨로 설정되었는지 또는 고 레벨로 설정되었는지를 결정할 것이다.
프로세스(400)가 보안 레벨이 고 레벨로 설정되었다고 결정하는 경우, 프로세스(400)는 단계(435)로 진행하여 TSP로부터 데이터 객체의 타입에 관한 정보를 검색할 것이고, 그 후 단계(440)로 진행하여 TSP로부터 데이터 객체와 연관된 동작 플랫폼에 관한 정보를 검색할 것이다. 이 정보는 TSP 내의 제2 및 제3 그룹의 파싱된 비트들에 포함될 것이다. 단계들(435 및 440)로부터의 정보는 그 후 단계(447)로 제공되고 프로세스(400)는 단계(445)로 진행한다. 단계들(435 및 440)로부터 단계(447)로 정보를 제공하는 목적은, 포렌식 분석이 그 후 이들 두 단계로부터의 정보에 기초하여 수행될 수 있도록 하는 것이다.
단계(445)에서, 프로세스(400)는 수신된 정보에 기초하여 전체 데이터 객체에 대한, 즉, 전체 파일 크기에 대한 난독화 값의 계산을 진행한다. 반대로, 프로세스(400)가 보안 레벨이 정상 레벨로 설정되었다고 결정하는 경우, 프로세스(400)는 단계(445)로 직접 진행하여 데이터 객체 전체에 대한 난독화 값을 계산한다.
예로서, 난독화 값들의 범위는 0-255 사이일 수 있고, 그에 의해 더 높은 난독화 값은 멀웨어 또는 랜섬웨어의 더 높은 위험을 암시한다.
본 발명의 실시예들에서, 데이터 객체의 난독화 값들은 데이터 객체에 대한 엔트로피 값들을 포함한다. 이 실시예에서, 프로세스(400)는 먼저 데이터 객체의 크기를 정규화함으로써 데이터 객체에 대한 엔트로피 값의 산출을 진행할 것이다. 예를 들어, 데이터 객체가 1 Mbyte의 데이터를 포함하는 경우, 그것은 256으로 분할되어 43 000개의 블록을 생성할 것이며, 각각의 블록은 256 바이트를 포함한다. 그 다음, 각각의 블록에 대한 섀넌 엔트로피 값이 다음과 같이 획득된다. 데이터의 엔트로피에 대한 수치 값, 또는 데이터의 블록의 "랜덤성(randomness)"의 표현을 생성하기 위한 몇몇 수학적 방법들이 있다. 본 발명의 실시예에서, 엔트로피 값은 클로드 섀넌(Claude Shannon)에 의해 개척된 방법을 사용하여 계산되고 본 기술분야의 통상의 기술자들에 의해 다음의 섀넌 엔트로피 방정식(Shannon Entropy equation)으로서 알려져 있다:
Figure 112021011429363-pct00004
여기서, p(x)는 주어진 이산 랜덤 변수 X가 주어진 경우 x의 확률이다. X는 이산적이기 때문에, 바이트(또는 8-비트 블록들)로 조직된 이진 디지털 데이터로 표현되는 데이터가 X 대신 사용될 수 있다. 방정식이 적절하게 작동하기 위해서, X는 길이가 적어도 256 바이트인 최소 데이터 블록을 포함해야 한다. 이어서, 획득된 값은 다음과 같이 되도록 정규화된다:
Figure 112021011429363-pct00005
여기서
Figure 112021011429363-pct00006
이다.
요약하면, 위의 수학식들에 기초하여 계산된 엔트로피 값은 0과 1 사이의 수치 값을 포함할 것이고, 1에 더 가까운 값들은 데이터의 주어진 블록 내의 엔트로피의 더 높은 정도들을 나타낸다. 섀넌 엔트로피의 더 철저한 논의에 대해서는, 간행물 [Shannon, C. E. "A Mathematical Theory of Communication." The Bell System Technical J 27, 379-423 and 623-656, July and October 1948]을 참조한다. 본 기술분야의 통상의 기술자는 본 발명을 벗어나지 않고 임의의 다른 타입들의 엔트로피 계산 방법들이 사용될 수 있다는 것을 인식할 것이다.
그 다음, 블록들 각각에 대해 획득된 엔트로피 값들은 아래의 예시적인 표 4에 예시된 바와 같이 제시될 수 있다.
Figure 112021011429363-pct00007
표 4는 멀웨어 데이터 객체에 대한 예시적인 플롯을 나타낸다. 알 수 있는 바와 같이, 블록들의 대부분은 높은 엔트로피 값들을 나타내므로, 이 데이터 객체가 이상 데이터 객체일 가능성이 높다는 것을 나타낸다. 엔트로피 산출로부터 획득된 결과들은 또한 도 5에 예시된 바와 같이 플롯화될 수 있어, 플롯들(505 및 510)이 이상 데이터 객체들, 예를 들어, 멀웨어와 연관될 수 있는 엔트로피 라인들을 나타내는 반면, 더 낮은 엔트로피 값들을 갖는 플롯(515)은 비-이상 데이터 객체(non-anomalous data object)를 나타낼 수 있다. 본 발명의 실시예들에서, 이러한 패턴들 또는 플롯들은 데이터 객체의 디지털 지문들로서 사용될 수 있다. 그 다음, 이 결과는 다음 모듈로 전달되어, 프로세스(400)에 의해 적용될 가장 적합한 미리 정의된 포렌식 알고리즘을 선택하는 데 활용될 것이다.
프로세스(400)는 이어서 단계(447)로 진행하여, 프로세스(400)는 데이터 객체의 디지털 지문, 즉, 산출된 포렌식 분석 값들 및/또는 엔트로피 패턴들(예를 들어, 표 4)이 데이터 객체가 멀웨어를 포함할 수 있는 가능성이 있다는 것을 나타내는지를 결정하기 위해 포렌식 분석 함수를 호출한다.
단계(430)에서 데이터 객체의 보안 레벨이 정상 레벨로 설정되었다고 이전에 결정되었다면, 포렌식 분석은 데이터 객체의 블록들에만 기초하여 수행될 것이다. 그러나, 단계(430)에서 데이터 객체의 보안 레벨이 고 레벨로 설정되었다고 이전에 결정되었다면, 포렌식 분석은 블록들 각각에 대해 단계(435 및 440)에서 검색된 타입 및 플랫폼 정보와 함께 데이터 객체의 블록들에 기초하여 수행될 것이다.
포렌식 모듈은 채용된 조사 방법과 1 내지 10의 유사도 출력 둘 다를 나타내는 포렌식 값들을 생성할 것이고, 그에 의해 더 낮은 값은 더 낮은 위험(더 적은 매칭)을 나타내고 더 높은 값은 더 높은 위험(더 높은 매칭)을 나타낸다. 본 기술분야의 통상의 기술자는 본 발명을 벗어나지 않고 기존의 포렌식 분석 함수들이 사용될 수 있다는 것을 인식할 것이다. 예로서, 아래에 제시되는 예시적인(그러나 제한되지 않는) 의사코드가 포렌식 분석에 사용될 수 있다.
포렌식 분석을 위한 의사코드
Figure 112021011429363-pct00008
본 발명의 실시예들에서, 다른 타입들의 포렌식 분석이 수행될 수 있으며 이는 주파수-기반 유사도 해싱 스킴(Frequency-Based Similarity hashing scheme)(FbHash)과 같은, 그러나 이에 제한되지 않는, 디지털 포렌식에 알려진 해싱 방법들을 사용하여 데이터 객체를 해싱하는 단계를 포함할 수 있다.
본 기술분야의 통상의 기술자는 본 발명을 벗어나지 않고 다른 타입들의 조사 방법들이 사용될 수 있으며 그 선택이 본 기술분야의 통상의 기술자에게 맡겨져서 새로운 방법들이 발견되어 추가될 때 프로세스(400)가 그 방법들의 레퍼토리를 업데이트하는 능력을 갖도록 한다는 것을 인식할 것이다. FbHash 스킴의 예가 아래에 제시된다:
유사도 스코어가 계산될 수 있고, 그에 의해 D1은 데이터 객체이고 D2는 알려진 멀웨어의 데이터세트이다. D1 및 D2에 대한 값들은 다음과 같이 획득될 수 있다:
Figure 112021011429363-pct00009
여기서 함수 Digest()는 스토리지 어레이(storage array)이며,
Figure 112021011429363-pct00010
Figure 112021011429363-pct00011
로서 표현되는 FbHashing 알고리즘에 의해 생성되는 청크 스코어(chunk score)이고, n은 사용되는 청크 스코어들의 수들(또는 데이터 객체의 블록들의 수)을 나타내고, FbHashing 알고리즘은 다음 표기법들이 나타내는 디지털 조사를 위한 많은 방법들 중 하나를 나타낸다:
● 청크: 문서의 k 연속 바이트의 시퀀스
Figure 112021011429363-pct00012
: 문서 D의 i번째 청크를 나타낸다.
● 청크 빈도: 문서 D에서 청크 chi가 나타나는 횟수.
Figure 112021011429363-pct00013
로 표현된다.
● 문서 빈도: 청크 ch를 포함하는 문서들의 수. dfch로 표현된다.
● N: 문서 코퍼스에서의 문서들의 총 수를 나타낸다.
● RollingHash(chi): chi의 롤링 해시 값.
Figure 112021011429363-pct00014
: chi의 청크 가중
Figure 112021011429363-pct00015
: chi의 문서 가중
Figure 112021011429363-pct00016
: 문서 D에서의 chi의 청크-스코어를 나타낸다.
D1 및 D2에 대해 값들이 획득되면, 최종 유사도 스코어, Similarity (D1,D2)가 다음과 같이 코사인 유사도 방법(cosine similarity method)을 사용하여 산출될 수 있다:
Figure 112021011429363-pct00017
최종 유사도 스코어들은 0 내지 100의 범위일 것이며, 그에 의해 100의 스코어는 D1이 D2와 동일하다는 것을 암시하는 한편, 0의 스코어는 D1이 D2와 전혀 매칭되지 않는다는 것을 암시한다.
단계(450)에서, 프로세스(400)는 이어서 데이터 객체가 디스어셈블될지 또는 해석될지를 결정한다. 프로세스(400)가 데이터 객체가 상당한 양의 ASCII를 포함한다고 결정하면, 프로세스(400)는 데이터 객체가 해석되게 할 것이고(단계들 460, 482, 484, 486), 프로세스(400)가 데이터 객체가 상당한 양의 기계어를 포함한다고 결정하면, 프로세스(400)는 데이터 객체가 디스어셈블되게 할 것이다(단계들 455, 465, 470, 475).
프로세스(400)가 데이터 객체가 디스어셈블되어야 한다고 결정하면, 단계(455)로 진행한다. 이 단계에서, 프로세스(400)는 데이터 객체의 TSP 룩업 테이블에 대해 리스팅(listing) 프로세스를 수행한다. 리스팅된 플랫폼 타입에 기초하여, 프로세스(400)는 단계(470)에서 파일을 디컴파일하고 모든 내부 및 외부 호출들을 리스팅하고, 단계(465)에서 모든 호출 함수들을 리스팅하며, 단계(475)에서 모든 사용된 제3 라이브러리 파일들을 리스팅할 것이다. 파일 시스템, 이더넷 I/O 또는 임의의 네트워크 액세스에 대한 액세스를 요구하는 커맨드들을 통상적으로 포함하는 공통 멀웨어 거동들을 리스팅함으로써, 프로세스(400)는 멀웨어를 구성할 가능성이 있는 데이터 객체의 부분들을 식별할 수 있다.
프로세스(400)는 정상 행동을 포함하는 커맨드들 또는 위협일 수 있는 커맨드들을 식별하는 미리 정의된 설정들을 포함하는 테이블 어레이에 이 모든 정보를 제공한다. 예를 들어, "DNS 함수"가 호출되는 횟수가 기록된다. 데이터 객체의 파일 타입에 기초하여, 프로세스(400)는 이어서 그러한 파일 타입이 선택된 함수를 호출하는 것이 통상적인지를 결정하고, 그의 거동이 비정상이면, 데이터 객체는 함수를 실행하는 것이 방지될 것이고, 데이터 객체 영역이 로크될 것이며, 사용자에게 경고될 것이다. 그 다음, 프로세스(400)는 카운터 1에서의 숫자 카운터(numeral counter)를 트리거하여 데이터 객체가 디스어셈블되었다는 것을 나타내는 동시에, 카운터 2에서의 숫자 카운터를 리셋한다.
다시 말해서, 디스어셈블링 단계 동안, 데이터 객체는 디컴파일되어 그 거동이 상세히 분석될 수 있게 한다. 본 발명의 실시예들에서, 데이터 객체의 원시 바이너리(raw binary)를 획득하여 데이터 객체 내부에 내장된 멀웨어를 발견할 수 있으며, 이러한 디컴파일된 데이터의 예시적인 플롯은 도 6에 도시되어 있다.
도 6은 상이한 타입들의 동작들이 동작 타입에 따라 마킹될 수 있다는 것을 도시한다. 이 예시적인 플롯들에서, x축은 동작 타입의 빈도를 나타내고 y축은 동작 타입을 나타내며 아래의 예시적인 의사코드를 사용하여 플롯화될 수 있다:
Figure 112021011429363-pct00018
도 4로 돌아가서, 프로세스(400)가 가상 데이터 모델이 "해석"되어야 한다고 결정하면, 프로세스(400)는 단계(460)로 진행하여, 이 단계에서 가상 데이터 모델이 디-스크립트(de-script)되고 추가 분석을 위해 다양한 부분들로 분할된다. 난독화된 스트링들/암호화된 블록들이 단계(482)로 제공되고, 제3자들에 의한 호출 함수들은 단계(484)에 제공되고 외부 링크들에 대한 참조들은 단계(486)로 제공된다. 이어서, 결과는 단계(488)에서 저장되어, 카운터 2에서의 숫자 카운터를 트리거하여 데이터 객체가 해석되었다는 것을 나타내는 동시에, 카운터 1에서의 숫자 카운터를 리셋한다.
이어서, 단계들(480 및 488)로부터의 결과가 단계(490)에서 데이터 모델 생성기에 제공되고, 데이터 모델 생성기는 이후 프로세스(400)에 의해 지금까지 생성된 모든 정보와 함께 이 정보를 사용하여 데이터세트 모델 A를 산출할 수 있다.
본 발명의 실시예들에 따르면, 프로세스(400)는 지금까지 생성된 정보를 사용하여 데이터 객체의 블록들 각각에 대한 "결과 값"을 생성하고, 그에 의해 각각의 결과 값은 3 바이트를 포함하여 데이터 이미지 모델이 생성될 수 있다.
결과 값의 제1 바이트의 최상위 비트(MSB) 및 제2 MSB는 데이터 객체의 블록이 디스어셈블되었는지 또는 해석되었는지를 나타내는데 사용되고, 제2 바이트로 파싱되는 제1 바이트의 나머지 6 비트(14 비트를 생성함)는 (단계(445)에서 산출된 바와 같은) 데이터 객체의 블록의 난독화 값을 나타내는데 사용된다. 그 다음, 결과 값의 제3 바이트는 (단계(447)에서 산출된 바와 같은) 포렌식 분석 값을 나타내는데 사용된다.
본 발명의 다른 실시예들에 따르면, 하드웨어 이상의 경우, MSB를 포함하는 처음 12 비트(제1 바이트 + 제2 바이트의 부분)는 전력 모니터(ADC에 의해 변환될 전류/전압)를 나타낼 것이고, 다음 10 비트는 온도 값들을 나타낼 것이며, 마지막 2 비트는 CPU 부하들을 나타낼 것이다: (1 내지 9의 값들은 낮은 부하를 나타내고, 10은 중간 부하를 나타내고, 11은 높은 부하를 나타낸다).
그 다음, 512 바이트의 블록을 사용하여 데이터 객체의 이름/그의 페이지/섹터/플레인(PLANE) 어드레스와 같은 NAND 플래시에서의 위치/로크된 경우 또는 로크되지 않은 경우 파일의 상태/디지털 서명을 나타낸다.
프로세스(400)는 이어서 앞서 추출된 적절한 특징들에 기초하여 데이터 모델 A를 생성할 것이다.
본 발명의 실시예들에서, 데이터 모델 A는 512 x 512 픽셀을 포함하는 이미지로서 표현될 수 있으며, 그에 의해 픽셀(701) 각각은 결과 값(3 바이트를 포함함)을 나타낸다. 이것은 도 7a에 도시되어 있으며, 여기서 이미지 내의 각각의 라인은 픽셀들의 라인을 나타내고, 이러한 삽화는 그것이 "빈 데이터 객체(empty data object)"를 나타내기 때문에 평이한 이미지(plain image)를 나타낸다.
따라서, 프로세스(400)가 데이터 객체의 블록들에 대한 결과 값들을 생성하면, 이들 결과 값을 512 x 512 캔버스 상에 플롯화하여 도 7b에 예시된 바와 같은 데이터 이미지 모델(702)을 생성한다. 본 발명의 이 실시예에서, 각각의 고유 결과 값은 이미지(702) 상의 대응하는 음영/컬러 픽셀과 같은, 그러나 이에 제한되지 않는, 고유 이미지 표현에 의해 표현된다.
이미지(702)가 생성되면, 이미지(702)는 도 7c에 예시된 바와 같은 프로세스(703)로 제공될 것이다. 단계(705)에서, 타겟 이미지(즉, 이미지(702))는 컨볼루션 신경망(CNN) 모델, 심층 신경망(DNN) 모델 또는 순환 신경망(RNN) 모델과 같은, 그러나 이에 제한되지 않는, 이미지 분류 모델에 제공된다. 이들 모델들의 상세한 작업들은 간결성을 위해 생략된다. 이어서, 이미지 분류 모델은 단계들(710 및 715)에서 이미지(702)에 대한 특징 맵들 및 정류된 특징 맵들을 생성한 다음, 단계(720)에서 출력의 생성을 진행한다. 이 출력은 이어서 알려진 멀웨어를 나타내는 출력들의 데이터베이스와 비교되고, 프로세스(703)가 단계(720)에서의 출력이 알려진 멀웨어의 출력과 매칭된다고 결정하면, 데이터 객체가 악성인 것으로 결정된다.
본 발명의 다른 실시예에서, 데이터세트 모델 A는 데이터 객체의 모든 블록에 대한 결과 값들의 컬렉션(collection)을 포함할 수 있다. 도 8을 참조하면, 프로세스(800)는 이어서 이상 데이터 객체들의 사전 로드된 데이터베이스를 검색하여, 데이터세트 모델 A의 것과 유사한 데이터베이스 모델을 식별한다. 이것은 단계(805)에서 발생한다.
완벽한 매칭이 발견될 수 있는 가능성이 낮기 때문에, 프로세스(800)는 이어서 머신 학습 분석을 수행하여 그와 가장 유사한 사전-훈련된 데이터세트 모델에 기초하여 데이터세트 모델 A에 할당될 매칭 스코어를 결정한다. 이것은 단계(810)에서 발생한다. 본 발명의 실시예들에서, 이 단계를 위해 채택된 머신 학습 알고리즘은 사전-훈련된 데이터세트 모델들의 세트를 사용하여 훈련된 감독 머신 학습 알고리즘을 포함할 수 있다. 본 발명의 실시예들에서, 사전-훈련된 데이터세트 모델들은 외부 처리 디바이스들을 사용하여 준비되고 프로세스(800)에 의해 액세스가능한 SSD 저장 디바이스 내에 저장될 수 있다. 액세스의 용이함을 가능하게 하기 위해, 저장 디바이스 내에 저장된 인덱싱된 파일이 프로세스(800)에 의해 액세스가능할 수 있고, 그에 의해 이 인덱싱된 파일은 호출될 수 있는 데이터베이스 리스트에 관한 정보를 포함한다.
이어서, 프로세스(800)는 단계(815)에서, 생성된 스코어가 미리 결정된 위협 임계값을 초과하는지를 결정한다. 프로세스(800)가 생성된 스코어가 데이터세트 모델 A가 안전하지 않다는 것을 암시한다고 결정하는 경우, 프로세스(800)는 데이터 객체가 시스템의 데이터 스토리지 상에 설치되는 것을 차단하고 데이터 객체가 격리되어 있는 곳을 보여주는 로그 맵(log map)을 생성하는 단계(820)로 진행할 것이고, 그후 프로세스(800)는 종료된다. 대안적으로, 프로세스(800)가 생성된 스코어로부터 데이터 객체가 안전하다고 결정하는 경우, 프로세스(800)는 단계(820)에서 데이터 객체가 통과하여 시스템의 데이터 스토리지에 설치될 수 있게 하고, 그후 프로세스(600)는 종료된다.
본 발명의 다른 실시예들에서, 프로세스들(703 및 800) 둘 다는 보다 엄격한 스크리닝(screening) 프로세스를 통해 데이터 객체를 배치하기 위해 순차적으로 또는 동시에 수행될 수 있다.
다수의 다른 변경들, 대체들, 변형들 및 수정들이 본 기술분야의 통상의 기술자에 의해 확인될 수 있으며, 본 발명이 첨부된 청구항들의 범위 내에 속하는 모든 그러한 변경들, 대체들, 변형들 및 수정들을 포함하는 것으로 의도된다.

Claims (20)

  1. 수신된 데이터 객체에서 데이터 이상들(data anomalies)을 검출하기 위한 시스템으로서,
    처리 유닛; 및
    상기 처리 유닛에 의해 판독가능한 비-일시적 매체
    를 포함하고,
    상기 매체는, 상기 처리 유닛에 의해 실행될 때, 상기 처리 유닛으로 하여금:
    상기 데이터 객체의 디지털 서명 및 파일 타입에 기초하여 상기 데이터 객체의 보안 태세(security posture)를 결정하게 하고;
    상기 보안 태세 및 상기 보안 태세와 연관된 데이터 객체의 특징들에 기초하여 타입-보안-플랫폼(type-security-platform, TSP) 룩업 테이블을 생성하고, 상기 TSP 룩업 테이블에 기초하여 상기 수신된 데이터 객체에 대한 난독화 값(obfuscation value) 및 포렌식 값(forensic value)을 생성하게 하고 - 상기 TSP 룩업 테이블은 상기 데이터 객체의 타입, 보안 요구사항들(security requirements) 및 플랫폼 정보를 포함함 -;
    상기 데이터 객체에 대한 디스어셈블된 값들(disassembled values) 또는 해석된 값들(interpreted values)을 생성하게 하고;
    상기 수신된 데이터 객체의 각각의 블록에 대한 결과 값을 산출(compute)하게 하고 - 상기 블록들 각각에 대한 결과 값은 상기 수신된 데이터 객체의 블록과 연관된 디스어셈블된 또는 해석된 값들, 난독화 값 및 포렌식 값에 기초하여 생성됨 - ;
    상기 데이터 객체의 모든 결과 값에 기초하여 데이터 모델을 작성(create)하게 하고;
    상기 데이터 객체가 데이터 이상들을 포함하는지를 결정하기 위해 인공 지능(artificial intelligence, AI) 알고리즘을 사용하여 상기 데이터 모델을 처리하게 하는 명령어들을 저장하는, 시스템.
  2. 제1항에 있어서, 상기 수신된 데이터 객체에 대한 난독화 값을 생성하게 하는 상기 명령어들은 상기 처리 유닛에게:
    상기 데이터 객체를 데이터의 블록들로 분할하고;
    데이터의 각각의 블록에 대한 섀넌 엔트로피 값(Shannon Entropy value)을 계산하도록 지시하기 위한 명령어들을 포함하는, 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 수신된 데이터 객체에 대한 포렌식 값을 생성하게 하는 상기 명령어들은 상기 처리 유닛에게:
    상기 데이터 객체를 데이터의 블록들로 분할하고;
    빈도-기반 유사도 해싱 스킴(Frequency-Based Similarity hashing scheme)을 사용하여 데이터의 각각의 블록에 대한 유사도 스코어를 계산하도록 지시하기 위한 명령어들을 포함하는, 시스템.
  4. 제1항에 있어서, 상기 수신된 데이터 객체의 각각의 블록에 대한 결과 값을 생성하게 하는 상기 명령어들은 상기 처리 유닛에게:
    상기 수신된 데이터의 각각의 블록에 대해 3 바이트를 포함하는 결과 값을 생성하도록 지시하기 위한 명령어들을 포함하여, 각각의 블록에 대해, 상기 명령어들은 상기 처리 유닛에게:
    상기 데이터 객체의 상기 디스어셈블된 또는 해석된 값에 기초하여 상기 결과 값의 제1 바이트의 최상위 비트(most significant bit, MSB) 및 제2 MSB를 설정하고;
    상기 제1 바이트의 비트들의 나머지를 상기 결과 값의 제2 바이트로 파싱하고, 상기 파싱된 결과를 상기 블록과 연관된 상기 난독화 값에 기초하여 설정하고;
    상기 블록과 연관된 상기 포렌식 값에 기초하여 제3 바이트의 값을 설정하도록 지시하는, 시스템.
  5. 제1항에 있어서, 상기 데이터 객체의 모든 결과 값에 기초하여 데이터 모델을 작성하게 하는 상기 명령어들은 상기 처리 유닛에게:
    데이터 이미지 모델 - 상기 데이터 이미지 모델 내의 각각의 픽셀은 고유 결과 값과 연관됨 - 을 생성하도록 지시하기 위한 명령어들을 포함하고, 각각의 고유 결과 값은 고유 이미지에 의해 상기 데이터 이미지 모델에 표현되는, 시스템.
  6. 제5항에 있어서, 상기 데이터 모델을 처리하는데 사용되는 상기 AI 알고리즘은:
    컨볼루션 신경망(convolutional neural network, CNN) 모델, 심층 신경망(deep neural network, DNN) 모델 또는 순환 신경망(recurrent neural network, RNN) 모델을 포함하는, 시스템.
  7. 제1항에 있어서, 상기 인공 지능(AI) 알고리즘을 사용하여 상기 데이터 모델을 처리하게 하는 명령어들은 상기 처리 유닛에게:
    상기 데이터 모델을 데이터베이스 내에 포함된 데이터 모델들과 비교하도록 지시하기 위한 명령어들을 포함하고, 상기 비교는 머신 학습 알고리즘들을 사용하여 수행되는, 시스템.
  8. 제1항에 있어서, 상기 매체는, 상기 처리 유닛에게:
    상기 데이터 객체를 수신 및 저장하도록 구성되는 가상 파일 시스템을 제공하도록 지시하기 위한 명령어들을 추가로 포함하여, 상기 가상 파일 시스템은 상기 처리 유닛으로 하여금 모든 단계를 상기 가상 파일 시스템 내에서 수행하게 하는, 시스템.
  9. 제1항에 있어서, 상기 디지털 서명은 상기 데이터 객체와 연관된 매직 넘버(magic number)를 포함하는, 시스템.
  10. 제1항에 있어서, 상기 보안 태세와 연관된 상기 데이터 객체의 특징들은 상기 데이터 객체의 플랫폼 타입 및 파일 타입을 포함하는, 시스템.
  11. 인공 지능(Artificial Intelligence, AI) 모듈을 사용하여 수신된 데이터 객체에서 데이터 이상들을 검출하기 위한 방법으로서,
    상기 AI 모듈 내에 제공된 분석기 모듈을 사용하여, 상기 데이터 객체의 디지털 서명 및 파일 타입에 기초하여 상기 데이터 객체의 보안 태세를 결정하는 단계;
    상기 분석기 모듈 및 상기 AI 모듈 내에 제공된 검출기 모듈을 사용하여, 상기 보안 태세 및 상기 보안 태세와 연관된 데이터 객체의 특징들에 기초하여 TSP(type-security-platform) 룩업 테이블을 생성하고, 상기 TSP 룩업 테이블에 기초하여 상기 수신된 데이터 객체에 대한 난독화 값 및 포렌식 값을 생성하는 단계 - 상기 TSP 룩업 테이블은 상기 데이터 객체의 타입, 보안 요구사항들 및 플랫폼 정보를 포함함 -;
    상기 AI 모듈 내에 제공된 디스어셈블링 및 해석 모듈을 사용하여, 상기 데이터 객체에 대한 디스어셈블된 값들 또는 해석된 값들을 생성하는 단계;
    상기 AI 모듈 내에 제공된 블록 구조화 모듈을 사용하여, 상기 수신된 데이터 객체의 각각의 블록에 대한 결과 값을 산출하는 단계 - 상기 블록들 각각에 대한 결과 값은 상기 수신된 데이터 객체의 블록과 연관된 상기 디스어셈블된 또는 해석된 값들, 난독화 값 및 포렌식 값에 기초하여 생성됨 - ;
    상기 AI 모듈 내에 제공된 모델 생성기 모듈을 사용하여, 상기 데이터 객체의 모든 결과 값에 기초하여 데이터 모델을 작성하는 단계; 및
    상기 AI 모듈 내에 제공된 AI 위협 모듈(AI threat module)을 사용하여, 상기 데이터 객체가 데이터 이상들을 포함하는지를 결정하기 위해 인공 지능(AI) 알고리즘을 사용하여 상기 데이터 모델을 처리하는 단계
    를 포함하는, 방법.
  12. 제11항에 있어서, 상기 수신된 데이터 객체에 대한 난독화 값을 생성하는 단계는:
    상기 데이터 객체를 데이터의 블록들로 분할하는 단계; 및
    데이터의 각각의 블록에 대한 섀넌 엔트로피 값을 계산하는 단계
    를 포함하는, 방법.
  13. 제11항 또는 제12항에 있어서, 상기 수신된 데이터 객체에 대한 포렌식 값을 생성하는 단계는:
    상기 데이터 객체를 데이터의 블록들로 분할하는 단계; 및
    빈도-기반 유사도 해싱 스킴을 사용하여 데이터의 각각의 블록에 대한 유사도 스코어를 계산하는 단계
    를 포함하는, 방법.
  14. 제11항에 있어서, 상기 수신된 데이터 객체의 각각의 블록에 대한 결과 값을 생성하는 단계는:
    상기 수신된 데이터의 각각의 블록에 대해 3 바이트를 포함하는 결과 값을 생성하는 단계를 포함하여, 각각의 블록에 대해, 상기 방법은:
    상기 데이터 객체의 상기 디스어셈블된 또는 해석된 값에 기초하여 상기 결과 값의 제1 바이트의 최상위 비트(MSB) 및 제2 MSB를 설정하고;
    상기 제1 바이트의 비트들의 나머지를 상기 결과 값의 제2 바이트로 파싱하고, 상기 파싱된 결과를 상기 블록과 연관된 상기 난독화 값에 기초하여 설정하고;
    상기 블록과 연관된 상기 포렌식 값에 기초하여 제3 바이트의 값을 설정하는, 방법.
  15. 제11항에 있어서, 상기 데이터 객체의 모든 결과 값에 기초하여 데이터 모델을 작성하는 단계는:
    데이터 이미지 모델 - 상기 데이터 이미지 모델 내의 각각의 픽셀은 고유 결과 값과 연관됨 - 을 생성하는 단계를 포함하고, 각각의 고유 결과 값은 고유 이미지에 의해 상기 데이터 이미지 모델에 표현되는, 방법.
  16. 제15항에 있어서, 상기 데이터 모델을 처리하는데 사용되는 상기 AI 알고리즘은:
    컨볼루션 신경망(CNN) 모델, 심층 신경망(DNN) 모델 또는 순환 신경망(RNN) 모델을 포함하는, 방법.
  17. 제11항에 있어서, 상기 인공 지능(AI) 알고리즘을 사용하여 상기 데이터 모델을 처리하는 단계는:
    상기 데이터 모델을 데이터베이스 내에 포함된 데이터 모델들과 비교하는 단계를 포함하고, 상기 비교는 머신 학습 알고리즘들을 사용하여 수행되는, 방법.
  18. 제11항에 있어서, 상기 데이터 객체의 디지털 서명 및 파일 타입에 기초하여 상기 데이터 객체의 보안 태세를 결정하는 단계 전에; 상기 방법은:
    상기 분석기 모듈을 사용하여, 상기 데이터 객체를 수신 및 저장하는 가상 파일 시스템을 제공하는 단계를 추가로 포함하고, 상기 가상 파일 시스템은 상기 방법의 모든 단계가 상기 가상 파일 시스템 내에서 실행되게 하는, 방법.
  19. 제11항에 있어서, 상기 디지털 서명은 상기 데이터 객체와 연관된 매직 넘버를 포함하는, 방법.
  20. 제11항에 있어서, 상기 보안 태세와 연관된 상기 데이터 객체의 특징들은 상기 데이터 객체의 플랫폼 타입 및 파일 타입을 포함하는, 방법.
KR1020217002942A 2020-03-09 2020-07-30 알려진 및/또는 알려지지 않은 사이버 보안 위협들의 모폴로지들을 분석함으로써 데이터 이상들을 검출하기 위한 시스템 및 방법 KR102323290B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
SG10202002125Q 2020-03-09
SG10202002125QA SG10202002125QA (en) 2020-03-09 2020-03-09 System and method for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats
US16/946,245 2020-06-11
US16/946,245 US11082441B1 (en) 2020-03-09 2020-06-11 Systems and methods for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats
PCT/SG2020/050441 WO2021183043A1 (en) 2020-03-09 2020-07-30 System and method for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats

Publications (2)

Publication Number Publication Date
KR20210114916A KR20210114916A (ko) 2021-09-24
KR102323290B1 true KR102323290B1 (ko) 2021-11-05

Family

ID=72355657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217002942A KR102323290B1 (ko) 2020-03-09 2020-07-30 알려진 및/또는 알려지지 않은 사이버 보안 위협들의 모폴로지들을 분석함으로써 데이터 이상들을 검출하기 위한 시스템 및 방법

Country Status (8)

Country Link
US (1) US11082441B1 (ko)
EP (1) EP3899770B1 (ko)
KR (1) KR102323290B1 (ko)
CN (1) CN113632083B (ko)
AU (1) AU2020223632B2 (ko)
SG (1) SG10202002125QA (ko)
TW (1) TWI720932B (ko)
WO (1) WO2021183043A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11711310B2 (en) 2019-09-18 2023-07-25 Tweenznet Ltd. System and method for determining a network performance property in at least one network
US11716338B2 (en) * 2019-11-26 2023-08-01 Tweenznet Ltd. System and method for determining a file-access pattern and detecting ransomware attacks in at least one computer network
US11792223B2 (en) * 2020-06-29 2023-10-17 Netapp, Inc. Systems and methods for detecting malware attacks
US11720991B2 (en) 2021-05-20 2023-08-08 International Business Machines Corporation Signing and authentication of digital images and other data arrays
US11934667B1 (en) * 2021-06-30 2024-03-19 Amazon Technologies, Inc. Encrypted-data-only media operations
WO2023113772A1 (en) * 2021-12-13 2023-06-22 Hewlett-Packard Development Company, L.P. Suspicious activity notifications via canary files
US20230224275A1 (en) * 2022-01-12 2023-07-13 Bank Of America Corporation Preemptive threat detection for an information system
US11647040B1 (en) * 2022-07-14 2023-05-09 Tenable, Inc. Vulnerability scanning of a remote file system
CN115374075B (zh) * 2022-08-01 2023-09-01 北京明朝万达科技股份有限公司 一种文件类型识别方法及装置
WO2024065238A1 (en) * 2022-09-28 2024-04-04 Yu Wenfeng Systems, methods, and media for protecting application programming interfaces

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9087195B2 (en) * 2009-07-10 2015-07-21 Kaspersky Lab Zao Systems and methods for detecting obfuscated malware
CN101854404B (zh) * 2010-06-04 2013-08-07 中国科学院计算机网络信息中心 检测域名系统异常的方法和装置
US11126720B2 (en) * 2012-09-26 2021-09-21 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
US9292688B2 (en) 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US10713358B2 (en) * 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9465939B2 (en) * 2014-06-27 2016-10-11 Mcafee, Inc. Mitigation of malware
US20170068816A1 (en) * 2015-09-04 2017-03-09 University Of Delaware Malware analysis and detection using graph-based characterization and machine learning
US10491627B1 (en) * 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US20180248896A1 (en) * 2017-02-24 2018-08-30 Zitovault Software, Inc. System and method to prevent, detect, thwart, and recover automatically from ransomware cyber attacks, using behavioral analysis and machine learning
DK3800856T3 (da) 2018-02-20 2023-08-28 Darktrace Holdings Ltd Cybersikkerhedsindretning til en cloud-infrastruktur
KR102075715B1 (ko) * 2018-05-29 2020-02-10 국방과학연구소 공격 주체 분류 장치 및 방법
US11574051B2 (en) * 2018-08-02 2023-02-07 Fortinet, Inc. Malware identification using multiple artificial neural networks
CN109522926A (zh) * 2018-09-28 2019-03-26 南京航空航天大学 基于信息熵聚类的异常检测方法

Also Published As

Publication number Publication date
TWI720932B (zh) 2021-03-01
CN113632083A (zh) 2021-11-09
TW202134919A (zh) 2021-09-16
AU2020223632B2 (en) 2021-10-21
AU2020223632A1 (en) 2021-09-23
KR20210114916A (ko) 2021-09-24
EP3899770A4 (en) 2021-12-08
WO2021183043A1 (en) 2021-09-16
EP3899770A1 (en) 2021-10-27
EP3899770B1 (en) 2022-10-05
US11082441B1 (en) 2021-08-03
SG10202002125QA (en) 2020-07-29
CN113632083B (zh) 2022-09-13

Similar Documents

Publication Publication Date Title
KR102323290B1 (ko) 알려진 및/또는 알려지지 않은 사이버 보안 위협들의 모폴로지들을 분석함으로써 데이터 이상들을 검출하기 위한 시스템 및 방법
US11924233B2 (en) Server-supported malware detection and protection
Chen et al. Tinydroid: a lightweight and efficient model for android malware detection and classification
US8479296B2 (en) System and method for detecting unknown malware
JP5511097B2 (ja) 中央集中的にマルウェアを検出するための知的ハッシュ
US10997307B1 (en) System and method for clustering files and assigning a property based on clustering
Zolkipli et al. A framework for malware detection using combination technique and signature generation
US20070152854A1 (en) Forgery detection using entropy modeling
US20090235357A1 (en) Method and System for Generating a Malware Sequence File
US8256000B1 (en) Method and system for identifying icons
US11288368B1 (en) Signature generation
Yücel et al. Imaging and evaluating the memory access for malware
JP2019003598A (ja) 異常な事象を検出するシステム及び方法
US20220043911A1 (en) Method and system for generating a list of indicators of compromise
CA3125101A1 (en) System and method for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats
US10103890B2 (en) Membership query method
Mishra Improving Speed of Virus Scanning-Applying TRIZ to Improve Anti-Virus Programs
JP7092939B2 (ja) 既知及び/又は未知のサイバーセキュリティ脅威の形態素解析によりデータ異常を検出するシステム及び方法
CN111310162B (zh) 基于可信计算的设备接入控制方法、装置、产品及介质
CN114925369A (zh) 一种针对业务系统容器安全的静态分析方法与系统
NZ767245B2 (en) System and method for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats
Aslan et al. Malware detection method based on file and registry operations using machine learning
Ravula Classification of malware using reverse engineering and data mining techniques
Choudhry Detection of Zero-day Malware Using Hybrid Supervised and Un-supervised Machine Learning Algorithms
CN114510713A (zh) 检测恶意软件的方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant