KR20150118186A - 예측보안 제품을 제공하고 기존의 보안제품을 평가하는 방법과 장치 - Google Patents

예측보안 제품을 제공하고 기존의 보안제품을 평가하는 방법과 장치 Download PDF

Info

Publication number
KR20150118186A
KR20150118186A KR1020157024359A KR20157024359A KR20150118186A KR 20150118186 A KR20150118186 A KR 20150118186A KR 1020157024359 A KR1020157024359 A KR 1020157024359A KR 20157024359 A KR20157024359 A KR 20157024359A KR 20150118186 A KR20150118186 A KR 20150118186A
Authority
KR
South Korea
Prior art keywords
malware
variant
variants
code
mutations
Prior art date
Application number
KR1020157024359A
Other languages
English (en)
Other versions
KR101880796B1 (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 KR20150118186A publication Critical patent/KR20150118186A/ko
Application granted granted Critical
Publication of KR101880796B1 publication Critical patent/KR101880796B1/ko

Links

Images

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/1416Event detection, e.g. attack signature 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • 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/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 맬웨어의 진화과정을 일으키는 방법, 제품 및 컴퓨터 프로그램 제품에 관한 것으로, 이 방법은 ⒜ 맬웨어 시료를 받는 단계; ⒝ 맬웨어 시료의 변종을 생성하는 단계; ⒞ 변종들을 평가하고, 각각의 변종에 적합도 점수를 부여하는 단계; ⒟ 소정의 적합도 점수를 갖는 변종들을 선택하는 단계; 및 ⒠ 선택된 변종들을 ⒜ 단계의 맬웨어 시료로 사용해 신세대 변종을 생성하는 단계를 포함한다.

Description

예측보안 제품을 제공하고 기존의 보안제품을 평가하는 방법과 장치{METHOD AND PRODUCT FOR PROVIDING A PREDICTIVE SECURITY PRODUCT AND EVALUATING EXISTING SECURITY PRODUCTS}
본 발명은 사이버 보안에 관한 것으로, 구체적으로는 예측보안을 하고 기존의 보안체계를 평가하는 방법과 장치에 관한 것이다.
인터넷 보안업자와 해커는 쥐와 고양이의 레이싱 관계이다. 보안업자들은 정적-동적 시그니처와 검출패턴들을 통해 맬웨어를 인식하려고 하는 반면, 해커들은기확인된 맬웨어에 약간의 변화를 줘서 보안검출을 시스템적으로 회피하려고 한다. 이런 현상은 일반적인 것으로, 새로운 맬웨어의 99% 이상은 실제로는 기존의 맬웨어를 약간만 변경해 재사용한 것이다.
개인 유저들과 기업 네트웍들을 각종 맬웨어와 원치않는 침입에서 보호하고자 하는 맬웨어 검출세트와 보안 패키지를 제공하려는 다양한 시도가 있었다. 기존의 모든 맬웨어 디텍터들은 알려진 컴퓨터 바이러스, 공격방법, 맬웨어 행동, 맬웨어 패턴, 약점, 공적 등에 대비한 보호를 하는 대응법과 관련 기술을 이용한다. 선행예측 방식으로 미래 맬웨어에 대한 예측과 보안을 하는 기술을 제공하는 업자나 제품이나 패키지는 아직까지는 없는 실정이다. 또, 객관적이고 실험적인 관점에서 보다 좋은 보안제품을 선택하는데는 아주 많은 어려움이 있다.
이런 잠재적인 악성 프로그램에 대한 보호를 하고 미래 맬웨어를 예측하는 방법, 컴퓨터 프로그램 제품 및 시스템이 있으면 아주 유리할 것이다. 또, 이런 레이싱에서 이길 수 있는 보안제품의 성능을 평가하고 벤치마킹하는 수단이 있어도 대단히 유리할 것이다.
정의
'맬웨어'란 코드, 실행어, 스크립트, 능동 콘텐트 및 기타 다른 소프트웨어 형태는 물론, 공격을 유발하는 네트웍패킷 스트림과 같은 잠재적 입출력 스트림 형태의 악성 소프트웨어를 말한다. 맬웨어는 바이러스, exploits, Trojan horses, worms, rootkits, 스파이웨어 등을 포함하고, 이에 한정되지도 않는다.
'맬웨어 시료'란 후수하는 바와 같이 처리된 시스템이나 제3자 시스템이나 방법이나 과정에 의해 자연그대로나 서류형태로 캡처되어 진화과정에 사용되는 맬웨어 조각을 말한다. 어떤 시료들은 감염/오염된 컴퓨터에서 발견되거나, 특수한 저장고에 저장된다. 진화과정에서, 맬웨어 시료들은 제시된 과정의 후속 단계에서 사용된다(이에 대해서는 뒤에 설명한다).
'변종'이란 진화에 관련된 생물학적 용어에서 차용된 것으로, 맬웨어 시료들을 랜덤, 세미랜덤 또는 의사랜덤하게 변조하거나 의도적으로 돌연변이된 버전이나 "돌연변이"라고 보면 된다. 맬웨어 코드에 '돌연변이'를 일으키거나 2개 이상의 코드 세트를 합치거나 당업자에게 알려진 다른 형태의 유전적 프로그래밍 돌연변이를 실행하여 변종이 생길 수 있다.
'돌연변이'란 생물학적 용어에서 차용한 것으로, 맬웨어 시료의 코드를 변경한 것으로서, 코드 라인들을 추가/제거, 재배열, 복제하거나 변수들을 바꾸거나, 제3자 코드에 대한 호출을 대체하거나, 사용된 라이브러리들을 바꾸는 등등을 포함한다.
'악성 변종'은 맬웨어 시료가 여전히 악성으로 변경된 버전으로서, 악성 특성을 잃은 변종은 '비악성 변종'이라 한다.
'회피성 변종'은 맬웨어 시료가 자체 회피도에 비견할 만한 회피도를 갖고있는 맬웨어 시료의 변경된 버전으로서, 원래의 맬웨어 시료와 같은 수의 맬웨어 감지시스템에 의해 감지된다. 회피 특성을 잃어 원래 시료보다 회피도가 낮은 변종을 '비회피성 변종'이라 한다.
별도의 언급이 없는한, '악성 특성'은 악성 코드(즉, 실행명령어 세트), 악성 행동(즉, 별도로 실행되었을 때는 반드시 악성은 아니지만 특정 형태로 같이 실행되었을 때는 악성 의도를 표시하는 행위/명령어) 또는 이들의 조합을 말한다.
디텍터는 표적 시스템이나 네트웍의 맬웨어를 검출하고 경우에 따라서는 중화시키기 위해 만들어진 컴퓨터프로그램 제품을 말하고, 당업자에게 알려진 한가지 이상의 검출방법을 이용해 의심 맬웨어를 검출하는 제3자 제품에 의해 사용되는 형태를 취하기도 한다.
'풋프린트', '트레이스', '공격 트레이스' 등은 파일이나 (일련의 네트웍패킷과 같은) 다른 악성 코드를 뒤에 남겨두는 모든 종류의 풋프린트/증거에 관한 것으로, 네트웍트래픽, 2진코드, 연산시스템, API 호출, CPU 활동, 메모리 풋프린트, 콘텐트 및 이들의 조합을 포함한다. 다른 어구를 풋프린트/트레이스에 붙일 수도 있다.
'유전자 오퍼레이터'는 맬웨어 변종들을 돌연변이시키고 합치거나 교차결합하는 오퍼레이터(운용자)를 말한다.
발명의 요약
본 발명은 진화론에 의거해 미래 맬웨어를 예측하고 이런 악성 요소들과 다른 비슷한 요소들에 대한 보호를 하는 제품, 방법 및 시스템을 제공한다.
본 발명에 의하면 ⒜ 맬웨어 시료의 맬웨어 변종들을 생성하는 맬웨어 진화엔진; 및 ⒝ 악성도와 회피도 중의 적어도 하나에 기초해 상기 맬웨어 변종들을 평가하는 이밸류에이터를 포함하는 시스템과 방법이 제공된다. 경우에 따라서는, ⒞ 저장소, 생산시스템 및 제3자 제품으로 이루어진 군에서선택된 적어도 하나의 소스로부터 상기 진화엔진용의 맬웨어 시료들을 수집하는 맬웨어 페처; 및/또는 ⒞ 진화엔진에 의해 생기고 이밸류에이터의 평가를 받은 맬웨어 변종들을 기초로 디텍터 메커니즘을 생성하는 디텍터빌더를 더 포함할 수도 있다.
후술하는 본 발명의 다른 특징에 따르면, 진화엔진이 맬웨어 시료의 실행코드에 돌연변이 적용, 맬웨어 방출 네트웍 트래픽에 돌연변이 적용, 소스코드에 돌연변이 적용, 어셈블리 랭귀지 코드에 돌연변이 적용, 및 맬웨어 변종들의 교차결합으로 이루어진 군에서 선택된 적어도 하나의 행위를 실행하여 맬웨어 변종들을 생성할 수 있다. 또, 실행코드에 적용된 돌연변이들이 ⅰ) 랜덤 돌연변이; ⅱ) 주어진 명령어 시퀀스를 기능적으로 동일한 다른 명령어 시퀀스로 대체; ⅲ) 선택된 라이브러리 콜을 기능적으로 동일한 다른 라이브러리 콜로 대체; ⅳ) 선택된 라이브러리를 기능적으로 동일한 다른 라이브러리로 대체; ⅴ) 악성기능을 갖는다고 확인된 영역에 있을 상기 돌연변이들의 각각의 확률 증가; ⅵ) 실행코드의 적절한 실행을 방해하지 않는다고 확인된 영역에 있을 상기 돌연변이들의 각각의 확률 증가; ⅶ) 보안제품에 의해 표시된 영역에 있을 상기 돌연변이들의 각각의 확률 증가; ⅷ) 이전의 돌연변이들이 높은 적합도 점수를 받은 영역에 있을 상기 돌연변이들의 확률 증가; ⅸ) 2진코드가 추가되어 확장된 섹션을 위해 상기 실행코드의 헤더를 다시 쓰기; ⅹ) 실행코드를 다른 실행코드와 결합해 결합된 코드를 만들고, 결합된 코드의 적절한 실행을 위해 관련 헤더들을 다시쓰기; 및 ⅹⅰ) 동적 함수호출을 관련 연산시스템 호출의 정적 혁신으로 바꾸기 위해 상기 실행코드의 섹션들의 개조로 이루어진 군에서 선택될 수 있다.
또, 본 발명은 맬웨어 방출 네트웍 트래픽을 진화엔진에 보내는 공격머신을 더 포함할 수 있는데, 이때 진화엔진은 돌연변이들을 맬웨어 방출 네트웍 트래픽에 적용하고 돌연변이된 맬웨어 방출 네트웍 트래픽을 희생자 머신에 적용하며, 돌연변이된 맬웨어 방출 네트웍 트래픽을 희생자 머신에 적용한 결과를 이밸류에이터가 평가하여 악성도를 결정한다.
또, 맬웨어 방출 네트웍 트래픽에 적용된 돌연변이들이 각종 프로토콜의 네트웍패킷의 CRC/Checksum 필드나 다른 필드들을 수정하여 네트웍패킷의 페이로드나 헤더에서의 다양한 돌연변이 뒤에 CRC/Checksum 필드나 다른 필드들을 유효화할 수 있다.
또, 맬웨어 방출 네트웍 트래픽이 보안채널에서 이 트래픽을 포함한 네트웍통신을 감싸 난독화될 수도 있다.
또, 맬웨어 시료들의 실행코드가 패킹, 암호화 및 인코딩을 포함하는 군에서 선택된 기술을 이용해 난독화될 수도 있다.
본 발명은 또한, ⒜ 맬웨어 시료를 받는 단계; ⒝ 맬웨어 시료의 변종을 생성하는 단계; ⒞ 변종들을 평가하고, 각각의 변종에 적합도 점수를 부여하는 단계; ⒟ 소정의 적합도 점수를 갖는 변종들을 선택하는 단계; 및 ⒠ 선택된 변종들을 ⒜의 맬웨어 시료로 사용해 신세대 변종을 생성하는 단계를 포함하는 진화과정 실행방법도 제공한다.
이 방법이 ⒡ 변종의 트레이스 데이터를 수집하는 단계; 및 ⒢ 트레이스 데이터를 악성과 비악성으로 구분하는 단계를 더 포함할 수 있다. 또, ⒣ 악성 특성과 비악성 특성을 탐지하고 구분할 수 있는 디텍터를 구축하는 단계를 더 포함할 수 있다.
이 방법은 ⒤ 옳게 탐지된 악성 특성들의 수, 잘못 탐지된 비악성 특성들의 수, 및 (길이, 메모리, 계산량의 관점에서) 짧거나 가벼운 디텍터일수록 높은 평가를 받는 디텍터의 짧은 정도에 의거하여 상기 디텍터들 중에서 임계치보다 높은 평가를 받은 디텍터를 선택하는 단계를 더 포함할 수 있다.
본 발명의 방법은 또한 VM과 실제 머신 양쪽에 변종들을 실행하는 단계; 및 이런 실행의 결과들을 비교해 결과들의 차이를 검출하는 단계를 더 포함할 수 있는데, 이런 차이가 발견되면 실제 머신에 변종을 실해한 결과에 대해서만 변종을 평가한다.
본 발명의 방법은 변종을 실행하는 동안 소정의 시스템 신호들을 보내 통합된 트리거들을 중화시키는 단계를 더 포함할 수 있다.
본 발명의 방법은 변종을 실행하는 동안 코드 커버리지를 감시하여 실행되지 않은 코드 영역들을 확인하는 단계를 더 포함할 수 있고, 이때 실행되지 않은 코드 영역들은 변종에 통합된 트리거들을 표시한다.
본 발명은 또한, ⒜ 네트웍 세션이나 다른 2진 데이터의 바이트 스트림을 캡처하고, 상기 바이트 스트림을 정수의 선형 벡터로 표현하며, 이 바이트 스트림이 맬웨어 변종나 양성 네트웍 활동이나 파일의 트레이스를 포함하는 단계; ⒝ 선형 벡터를 사각 행렬로 변환하여 그레이-스케일 영상을 받는 단계; ⒞ 그레이-스케일 영상을 해상도 통합을 위해 정상화하는 단계; ⒟ 적어도 한가지 영상처리 기술을 이용해 상기 정상화된 영상에서 특징들을 추출하는 단계; ⒠ ⒜ 내지 ⒟ 단계들을 반복하고, 악성 변종은 첫번째 데이터베이스에 그리고 양성 트래픽은 두번째 데이터베이스에 저장하는 단계; 및 ⒡ 맬웨어 변종과 양성 트래픽을 구분하도록 맬웨어 디텍터를 훈련시키는 단계를 포함하는 방법도 제공한다.
이 방법에서, 영상처리 기술이 가버웨이블릿 계수, 계수통계법, 주성분 분석법, 선형판별 분석법 및 독립성분 분석법으로 이루어진 군에서 선택될 수 있다. 본 발명에 의하면, 훈련시키는 단계가 서포트 벡터머신(SVM; support vector machine)으로 실행될 수 있다.
본 발명에 의하면, 맬웨어 시료에서 맬웨어 변종들을 생성하는 방법이 제공되고, 맬웨어 변종들을 생성할 때 맬웨어 시료의 실행코드에 돌연변이 적용, 맬웨어 방출 네트웍 트래픽에 돌연변이 적용, 맬웨어 변종들의 교차결합을 포함하는 군에서 선택된 적어도 하나의 행위를 실행한다.
본 발명에 의하면, ⒜ 맬웨어 시료를 받는 단계; ⒝ 맬웨어 시료의 변종을 생성하는 단계; ⒞ 선택된 보안제품으로 각각의 변종을 스캔하고, 이 보안제품이 변종을 탐지할 수 없는 정도에 의거해 회피도 점수를 부여하는 단계를 포함하는 방법도 제공한다. 이 방법은 ⒟ 보안제품의 변종 탐지 성공율에 의거해 보안제품 각각에 평가를 내리는 단계를 더 포함할 수 있다. 경우에 따라서는, 평가가 다른 보안제품에 대한 상대적 성공율에 의거해 이루어질 수 있다.
도 1은 맬웨어를 스캔하는 안티바이러스 엔진의 결과들을 보여주는 표;
도 2A~C는 디텍터 생성과정의 단계들;
도 3은 본 발명의 진화과정의 순서도;
도 4는 디텍터를 구축하는 과정의 순서도;
도 5는 회피도를 평과하고 선택된 보안제품을 평가/벤치마킹하는 과정의 순서도;
도 6A~C는 클라이언트측에 구현된 시나리오의 블록도;
도 7은 영상처리 알고리즘의 순서도;
도 8은 네트웍 트래픽 진화의 일례를 보여주는 도면.
본 발명은 서버측 요소와 클라이언트측 요소를 갖춘 시스템을 제공한다. 서버측 요소로는 맬웨어 페처(Malware Fetcher), 예측엔진 및 디텍터빌더(Detective Builder)가 있고, 예측엔진에는 진화엔진과 이밸류에이터가 있다. 클라이언트(머신)측에는 엔드포인트 에이전트 및/또는 네트웍기기가 있다. 서버측 요소는 단일 서버나, 다수의 공동 서버나 클라우드 기반 서버에서 구현될 수 있다.
맬웨어 페처
맬웨어 페처는 개방형/폐쇄형 맬웨어 저장소, 엔드유저 등을 포함한 각종 소스로부터 맬웨어 시료들을 수집하도록 구성되고, 경우에 따라서는 이런 시료들을 트레이스 특성이나 기존의 지식이나 메타데이터에 맞게 구분하기도 하며, 어떤 경우에는 수집된 맬웨어 시료들에 관한 추가 데이터(맬웨어의 종류, 맬웨어를 디자인한 플랫폼 등)를 수집하기도 한다.
맬웨어 페처는 새로운 변형을 야기하는 진화과정의 기초로 사용되는 맬웨어의 시료들을 구한다. 이 시스템의 원리는, 95% 이상의 대부분의 새 맬웨어들이 기존의 다른 맬웨어에서 재할용된 맬웨어 요소를 (80% 정도) 포함하는 것을 기초로 한다. 즉, 대부분의 해커들은 완전히 새로운 맬웨어를 창작하지 않고 기존의 맬웨어들을 새롭게 구성할 뿐이다. "완전히 새로운" 맬웨어조차 기존에 알려진 코드나 거동(풋프린트)를 적어도 일부 재활용한다. 새로운 맬웨어 상당 부분은 악의도를 유지하거나 상승시키면서 기존 구성보다 감지하기가 더 어렵다. 새로운 맬웨어가 끊임없이 나타나기 때문에, 맬웨어 페처는 진화과정을 운용하기 위해 예측엔진을 위한 새로운 맬웨어를 검색하는 일을 한다. 이런 식으로, 진짜 "새로운" 맬웨어나 맬웨어 요소들도 혁신적 시스템에 의해 신속히 발견되고 처리된다. 기존의 요소들의 거의 모든 가치있는 변종들을 미리 보호할 수 있는 시스템을 제공하여, 새로운 맬웨어를 저렴하고 쉽게 창조할 가능성을 크게 줄이면, 해커는 많은 시간과 비용을 들여 작업을 해야 하고, 이때문에 맬웨어를 생산하려는 시도를 줄일 수 있다.
예측엔진
예측엔진은 맬웨어 시료들의 랜덤/세미랜덤 변종들을 대규모로 생성하여 해커들이 새로운 맬웨어를 만드는데 이용하는 방법들을 복제한다. 해커는 새롭고 더 좋은 맬웨어를 만들기 위해 기존 맬웨어를 변형하는 질위주 선택을 하는 반면, 예측엔진은 진화엔진을 이용해 (수백 내지 수백만의) 대량의 변종들을 그냥 만드는 양적인 방식을 이용한다.
진화엔진
진화엔진은 맬웨어 시료를 받아 아래와 같이 기초 시료의 변종을 만든다:
a) 이 엔진은 맬웨어 시료의 세미랜덤 변종을 대규모로 생성하되, 맬웨어의 이진코드나 다른 특성(예; 방출된 네트웍 패킷, 어셈블리 코드 등)으로 생성하여 원래의 맬웨어 시료의 변종들을 대량으로 생성한다. 이때 다양한 방법으로 변형을 하고, 이런 변형에는 코드를 추가하거나 랜덤하게 코드의 일부를 제거하거나, 세미랜덤이나 의사랜덤 방식으로 커드를 재구성하거나, 인자를 바꾸거나 코드 라인들을 복제하는 등등을 포함한다.
b) 진화엔진은 맬웨어의 2개 이상의 부분들이나 조각들을 합쳐 대량의 추가 변종들을 생성하기도 한다. 그 결과 기본 시료의 많은 변종들이 생긴다.
c) '자연 선택' (또는 최적의 생존) - 이어서 예측엔진이 진화론적 선택과정을 통해 최적의 변종을 선택한다. 변종들의 특성과 트레이스 데이터가 기록되고, 이 변종들이 진화엔진으로 피드백되어 신세대 변종들을 생성한다. 연속적인 세대의 최적의 변종들이 진화과정을 겪으면서 합병/교차되고 반복 선택되어 소정 목표에 도달해 결국 소정 갯수의 세대들이 생성되거나 연속적인 세대들을 거치면서 더이상의 진화를 보이지 않게된다.
연속적인 세대의 변종들의 생존율(예; 악의적 거동을 보이는 새로운 변종들의 비율)을 높이고 진화과정의 잠재력을 증강하기 위해, 몇몇 돌연변이들은 이 목적으로 개발된 복잡한 기술들을 필요로 한다. 따라서, 어떤 경우에는 진화엔진이 아래의 유전 연산자들(즉, 맬웨어 변종에 돌연변이를 일으키는 연산자) 중의 하나 이상을 포함할 수 있다:
실행파일(PE/ELF/MachO/LE 등) 변조
1. 실행파일의 각 섹션들(예; 텍스트/코드 섹션)을 확인하고 매핑하며, 실행파일들을 로딩하여 제대로 실행하지 못하게 하는 악의적인 기능에 관련된 영역들에서의 돌연변이의 확률 증가.
2. (해커들이 먼저 이들 영역들을 바꾼다고 하면) 다른 보안제품에 의해 사인되는 코드영역들에서의 돌연변이 확률 증가.
3. 돌연변이가 되었을 때 변종의 적성점수믐 크게 바꾸는 지점들 부근에 있는 코드영역에서의 돌연변이 확률 증가.
4. 2진코드를 추가해 관련 섹션들을 확장하고 실행 헤더들을 새로 확장된 섹션의 사이즈에 맞게 다시 쓰기.
5. 2개 이상의 실행파일들로부터의 섹션들을 결합하여 새로운 실행파일을 생성하되, 새 파일을 로딩하고 실행할 수 있도록 관련 헤더를 다시 씀.
6. 해커들이 많이 사용하는 자동 시뮬레이션 방법의 예:
i) 동적 함수호출을 관련 연산시스템 호출의 정적 혁신으로 바꾸기 위해 실행파일의 IAT(import address table)와 다른 관련 섹션 개조 및/또는 동적 호출로 실행된 코드를 실행파일에 이식.
ii) 예를 들어 패킹, 암호화 또는 인코딩을 이용해 다른 파일 섹션들에 혼동 초래(이 방법은 해커들이 사용하는 것과 같은 툴과 방법으로 이루어짐).
진화 과정과 엔진의 일례로, 네트웍 트래픽 진화를 하도록 엔진을 구성한다(예; 네트웍 패킷 돌연변이화). 도 8은 네트웍 패킷 진화의 예로서, 이 엔진은 악성패킷(802)을 "희생자" 머신(810)에 보내는 "공격자" 머신으로 이루어진다. 악성패킷들은 라우터(806)를 통과하면서 패킷의 필드나 페이로드를 돌연변이시키고(804 단계), 이후 "희생자" 머신으로 보내진다(808 단계). 돌연변이된 패킷만이 "희생자"로 보내진다. 희생자에 대한 공격 결과(성공/실패)는 새로운 공격 변종이 아직 악성인지 여부를 결정하기 위해 이밸류에이터(814)로 보내진다. "희생자"는 Sandbox나 실제 머신일 수 있다.
돌연변이된 네트웍 공격의 생존율을 높이기 위해, 시스템은 다양한 프로토콜(예; Ethernet이나 IP)로 네트웍패킷의 CRC/Checksum 필드를 수정하여, 패킷의 페이로드나 헤더의 여러 돌연변이 이후 이 필드를 유효하게 한다.
시스템은 맬웨어 진화를 강화하고 개선하는데 해커들이 사용하는 것과 비슷한 난독화 기술을 이용하기도 한다. 이런 기술에는 예컨대 네트웍 통신을 보안채널(암호화 채널)로 감싸는 기법이 있다.
이밸류에이터
본 발명에서는 각각의 변종나 '돌연변이'를 평가하는 두번째 요소인 이밸류에이터에 의해 자연선택과정이 진행된다. 이밸류에이터는 진화엔진으로부터 맬웨어 시료 변종들을 받고, 맬웨어 변종의 전세대의 맬웨어 변종에 의거해(공동진화 디텍터나 진화후 디텍터) 기존의 보안제품과 Detector Builder의 디텍터로 코드/시료를 스캔한다. 이벨류에이터는 2가지 데이터 집합을 돌려주는데: 첫번째는 진화엔진이 선택과정중에 사용하는 값이나 점수이고, 두번째는 개선된 디텍터를 생성하는데 있어 Detector Builder를 도와주는 문자와 데이터(풋프린트)에 관한 것이다. 이밸류에이터는 각종 변수에 따라 변종들을 평가하는데, 가장 중요한 변수는 악성도와 회피도이다. 악성도를 유지하면서 보안제품의 탐지를 회피할 수 있는 변종의 진화를 독려하도록 채점하거나 평가한다. 채점방법 자체는 진화과정중에 동적으로 변하여, 각종 원하는 특성(예; 변종 전파 및/또는 알고리즘의 계산효율)을 개선한다.
한편, 이밸류에이터는 다양도/거리도, 즉 현재 변종이 원래 맬웨어에서 다양한 정도나 벌어진 정도를 평가하기도 한다. 다른 잠재적인 평가 변수로는 양성 파일과의 유사도 등이 있다.
이밸류에이터는 돌연변이 코드가 갖는 회피도를 결정하기도 한다. 이 코드는 FierEye Inc의 FireEye™, Network IDS system과 같은 각종 안티바이러스 엔진, 호스트 기반 IPS, 게이트웨이 제품 등의 보안제품을 포함한 기존의 맬웨어 디텍터를 통해 운용하는 것이 좋고, 경우에 따라서는 Detector 발생기로 만든 디텍터를 이용할 수도 있다. 회피 점수는 변종이 탐지 메커니즘을 회피하는 성능을 나타낸다. 몇몇 보안제품에 대해서는 변종이 탐지되든 않든 그 결과가 2진수이다. 예컨대, 프로세스나 파일이 맬웨어일 가능성에 관한 통계점수를 알려주는 다른 디텍터를 탐지율을 알려주기도 한다. 도 1은 맬웨어의 2 조각들을 스캔한 안티바이러스(AV) 엔진의 2개 결과 테이블로서, 맬웨어 조각들 중의 하나는 나머지의 진화적 변종였다. 좌측 테이블은 맬웨어가 진화되기 (진화과정) 전의 Java Exploit를 스캔한 9개 보안제품을 보여준다. 그중 6개 엔진은 코드를 맬웨어로 인식했다. 우측 테이블은 동일한 Java Exploit의 변종에서 운용된 같은 AV 엔진의 (본 발명의 진화과정 이후의) 결과를 보여준다. 이 변종은 하나의 AV 엔진만 코드를 맬웨어로 인식했기 때문에 높은 회피도를 보여준다.
이밸류에이터는 돌연변이 코드가 여전히 악성이거나 사용되지 않는지 여부를 결정하기도 한다. 또는 이 질문에 'yes/no' 값으로 대답하기만 할 수도 있다. 동적분석기는 변종이 여전히 악성 활동(예; RAT(Remote Access Trojan) 형 맬웨어와의 통신이나 재활용된 Exploit의 페이로드를 덤핑)을 하는지 확인하거나, 각종 변수 및/또는 가상머신(VM)이나 실제 머신에서 실행한 테스트에 의거해 변종의 악성도를 결정하도록 변종에 대한 동적분석을 한다. 변종을 Sandbox에서 운용한 뒤 실제/의사 또는 2진 등급이 부여되기도 한다.
그와 동시에, 새 디텍터들을 생성하는데 사용되고 기록된 변종들의 활동(이벤트, 시스템 호출 등)에 관한 행동데이터(예; 트레이스 데이터)를 제공하기도 한다.
이밸류에이터는 해커들이 악성파일들을 아래와 같이 분석하지 못하게 하는데 사용된 대응방법들을 이용하기도 한다:
1. 가상머신의 악성파일 운용 트레이스/풋프린트와 실제머신의 동일 파일의 다른 운용의 트레이스/풋프린트 비교. 상당한 차이가 있으면, 맬웨어가 안티-VM 기술을 이용하고 그 변종들이 실제 모신에서만 평가되어야 함을 의미한다.
2. 해커들은 원하는 상황정보(context)의 맬웨어의 실행을 피하기 위해 맬웨어에 트리거들을 통합하는 경우가 많다. 이런 기법을 극복하기 위해, 이밸류에이터는 아래 기술들 중의 하나를 이용한다:
A. 평가된 변종들을 돌리면서, 이밸류에이터는 적절한 운용시스템 신호, 통신, 의견 등을 보낼 수 있고, 이들은 엔드포인트 장치와 네트웍기기의 에이전트에 의해 캡처된다.
B. 실행되지 안거나 일정 조건하에서만 실행되는 코드영역들을 확인하기 이해 (실행 가능하고 라이브러리를 공유하는) 프로세스에 의해 로딩된 2진수들의 코드 범위를 감시. 이런 영역들의 대부분은 잠재적 트리거들을 나타낸다.
각각의 변종들은 악성도 점수와 회피도 점수 중의 적어도 하나를 이밸류에이터로부터 받는다. 변종이 이밸류에이터로부터 받는 각종 변수/점수(가장 중요한 것은 악성도와 회피도 점수임)로부터 적합도 점수가 계산된다. 변종들은 선택과정을 거치면서 적합도 점수를 받는다. 어떤 변종들이 처리되고 시스템의 목표가 무엇인지에 따라 다양한 선택법을 채택할 수 있다. (진화과정은 같아도) 다른 시간에 다른 방법을 사용할 수도 있고, 과정중에 방법 자체를 바꿀 수도 있다. 선택과정에서 변종이 살아남을 가능성은 일반적으로 적합도 점수와 관련된다. 적합도 점수가 일정 한계를 넘으면 이 변종이 선택과정에서 살아남을 수 있고, 전술한 바와 같이 적합도 점수는 동적 이밸류에이터에 의해 얻어져 동적 적합도 변수로 된다. 한편, 선택과정이 토너먼트 방식일 수도 있는데, 이때 최적의 변종들이 녹아웃 시나리오로 선택된다. 또는, 특정 특성들이 선택되는 가이드 과정일 수도 있다. 선택과정이 2가지 이상의 방법들이나 기존의 다른 방법들과의 조합일 수도 있다.
진화과정을 완성하는데 필요한 특정 특성들을 보여주는 변종들을 선택할 수도 있다. 예를 들어, 특정 디텍터를 회피하는 성능을 보이거나 회피성은 보이면서도 악성은 덜하거나 없는 변종을 선택하여 보급할 수도 있다. 다음 순열/세대에서, 동일한 변종을 악성 변종과 합쳐 특정 회피성만 갖는 악성 변종을 만들 수도 있다.
선택과정이 어떻든, 선택된 변종들은 새로운 맬웨어 시료로 진화엔진에 되돌려져, 진화과정의 치환과정을 겪는다. 시스템은 악성 코드, 스크립트, 데이터 등과 악성 변종의 악성 행동(즉, 변종의 트레이스 데이터)의 기록들을 유지하거나, 비악성 또는 거부된 변종들의 트레이스 데이터의 기록들을 유지한다. 이런 기록들은 분석과 처리를 위해 디텍터빌더로 보내진다.
요컨대, 예측엔진은 해커가 앞으로 만들 가능성이 있는 맬웨어 시료의 변종들의 큰 부분을 창조하기 위한 견본으로서 생물학적 진화모델을 이용한다. 진화모델에 의하면, 최적의 변종을 일으키도록 하는 종류의 자연선택들이 있다. 이를 위해, 적합도 점수가 상당히 높은 변종들을 선택해 차세대 변종들을 만든다. 고득점 변종들은 진화엔진에 보내지고, 저득점 변종들은 변종 풀에서 삭제된다. 고득점 변종들은 이제 새로운 변종들을 만들 기본 시료 역할을 한다. 원하는 목표에 이를 때까지 또는 어떤 변종도 악성이나 충분한 회피성 등을 보이지 않을 때까지 이 과정이 수없이 계속될 수 있다.
이 시스템은 고득점이나 다른 하위집합의 변종들을 이용해 악성 변종들을 탐지해 중화시킬 수 있는 디텍터를 생산한다. 해커가 예측엔진이 제시한 것과 정확히 같은 변종을 만들지 못하고 비슷한 것만 만들어도, 시스템은 비슷한 변종의 공유 특성/풋프린트에 의거해 해커가 만든 맬웨어의 조각을 탐지할 수 있다. 디텍터빌더가 이 기능을 수행한다.
디텍터빌더(Detector Builder)
디텍터빌더는 변종에 관한 모든 코드와 기록된 행동/트레이스 데이터를 받는 시스템 요소로서, 악성과 비악성 변종들 둘다에 관한 데이터를 받거나, 최고의 '잠재력'을 보이는 (예; 원천 기초 시료보다 회피도가 좋거나 악성도를 높이거나 회피도는 유지하되 악성도는 높은) 새로 생긴 변종들로부터만 데이터를 받고 새 변종들을 탐지할 수 있는 디텍터를 만들 수 있다.
한편, 디텍터빌더가 진화엔진에 의해 생긴 변종들로부터의 모든 트레이스나 풋프린트를 모을 수도 있다. 디텍터빌더가 만든 디텍터들은 기록된 트레이스들을 갖추고 있다. 이 데이터는 악성 변종에서 온 트레이스("악성 트레이스"); 진화과정에서 모든 악성 특성들을 상실하거나 더이상 악성 특성들을 보이지 않는 (예; 더이상 운용자와 통신하지 않는 원격접속 툴) 변종의 관점에서 퇴화된 변종에서 온 트레이스("퇴화된 트레이스"); 및 양성 파일이나 정상 네트웍 데이터("양성 트레이스")로 구분될 수 있다.
디텍터빌더는 악성과 양성 풋프린트들을 구분할 수 있는 분류자를 훈련시키는 지도학습 알고리즘을 이용할 수 있다. 디텍터빌더는 지도학습용 훈련 데이터로서 악성과 양성 트레이스들을 이용하거나 퇴화 트레이스들을 이용할 수도 있고, ㄱ경우에 따라서는 자율학습 알고리즘을 사용할 수도 있다.
디텍터는 맬웨어 변종과의 공동진화로 훈련을 받거나(예; 디텍터빌더가 악성 트레이스를 받고 이를 감지할 수 있는 디텍터를 만든다), 일단 진화과정을 종료한다(진화후). 공동진화 시나리오에서는 디텍터가 진화과정의 일부, 구체적으로는 선택과정에 있을 수 있다. 생성된 디텍터들의 일부를 포함하는 보안 메커니즘이 변종들을 스캔한다. 디텍터들이 진화후 생성되는 시나리오에서는, 진화과정중에 모은 트레이스 데이터를 이용해 디텍터들을 훈련시켜 악성과 양성 트레이스 데이터를 구분하도록 한다.
디텍터빌더는 구문학습/문법학습을 이용하는데, 예컨대 알파벳 심볼을 이용해 악성 트레이스를 표현하고, 바람직하게는 관련이 적은 변수들은 무시하면서 문법적으로 관련 변수들만을 표현한다.
또는, 디텍터빌더가 자체적인 트레이스를 사용하고 "알파벳"은 이 트레이스에 사용된 오리지널 심볼로 하기도 한다.
이후, 문법학습 알고리즘을 이용해 악성과 양성 트레이스를 구분하는 구문을 정의하는 규칙이나 문법(예; 정규표현식)을 만든다. 예컨대 악성 트레이스만 이 트레이스를 구성하는 알파벳에 걸친 유효 스트링으로 간주한다.
디텍터빌더는 악성 트레이스는 가능한 많이 허용하면서 양성의 퇴화 트레이스는 가능한 적게 허용하는 최단 정규표현식을 검색한다. 이 방법으로서 진화 알고리즘을 이용하는 문법을 만든다. 예컨대 1세대 정규표현식을 랜덤으로 만들고, 각 정규표현식을 아래 변수에 맞게 (선택과정을 위해) 평가, 등급화 또는 채점한다:
1) 악성 변종을 감지/인식하기 위한 포인트;
2) 비악성 변종나 정규 파일을 감지하가위한 포인트; 및
3) 길이 단축을 위한 포인트.
이 시스템은 이어서 반복적으로 진화과정을 계속하고 돌연변이되며 채점되고 선택될 최적의 정규표현식들을 선택한다.
도 2는 디텍터빌더를 이용해 디텍터/구별자를 생성하고 정제/훈련할 때의 3가지 가능한 스테이지들을 보여준다. 디텍터는 "Poison Ivy"란 맬웨어를 기반으로 생성된 변종들의 Windows API calls에서 훈련되고, 시스템 고유의 알파벳(심볼 세트)에 걸친 정규표현식으로 쓰여진다. 도 2a는 Windows API calls로 된 초록의 예로서, 라인마다 다른 API call이다. 도 2b는 초록을 '알파벳'으로 번역한 것이고, 도 2c는 전체 표현에서 유도된 코드-초록의 일례이다. 이상 설명한 선택과정을 통해, 도시된 초록이 유도되었다. 짧은 코드-초록은 가능한 많은 악성 트레이스와 적은 양성 및/또는 퇴화 트레이스들과 일치하거나 발견되는 최단 정규표현식인 것이 이상적이다.
트레이스 데이터를 최단 형태로 썼으면, 짧은 코드-초록이나 특성을 포함하는 모든 비슷한 코드나 행동이 새로운 디텍터에 의해 악성으로 인식된다. 따라서, 해커가 예측엔진에서 생긴 변종과 완전히 동일한 새로운 구성의 맬웨어를 만들지는 못해도, 비슷한 맬웨어가 문법으로 표현된 행동을 보이거나 짧은 코드-초록을 포함하는 한 맬웨어로 감지된다. 이렇게, 디텍터는 새 맬웨어를 악성으로 감지/인식할 수 있게된다.
한편, 디텍터는 분류자가 양성과 악성 트레이스들을 구분하도록 훈련하는데 영상처리 알고리즘을 이용한다. 도 7은 영상처리 알고리즘(700)의 순서도로서, 학습 알고리즘이 아래 과정을 실행할 수 있다:
702 단계에서, (네트웍 세션, 2진 파일 또는 다른 어떤 코드로부터의) 바이트 스트림을 캡처해 (0부터 255까지의) 정수 벡터로 표현한다.
704 단계에서, 이 벡터를 사각형이나 다른 형태의 행렬로 만든다(예컨대 10,000 바이트를 100x100 행렬로 함). 사각형 행렬은 그레이-스케일 영상을 제공한다.
706 단계에서, 영상/행렬을 해상도 통합을 위해 정상화한다.
708 단계에서, 가버웨이블릿 계수; 계수통계법{평균, 표준편차, 왜도, 첨도}; 주성분 분석법; 선형판별 분석법; 독립성분 분석법 등의 다른 기술을 이용해 영상에서 특징을 추출한다.
710 단계에서, 악성과 양성 트레이스들에 대해 702~708 단계들을 반복하고, 이 과정의 생성물을 2개의 라벨표시 데이터베이스로 분리하되, 원점(악성:양성/퇴화 트레이스)을 기준으로 한다.
712 단계에서, 앞 단계의 라벨표시 데이터베이스들을 이용해 악성과 양성 트레이스들을 구분할 디텍터로서 사용될 통계적 모델을 (Support Vector Machine 등으로) 훈련시킨다.
배치례
디텍터들을 만들거나 클라우드에 저장할 수 있다. 디텍터는 네트웍 트래픽, 2진코드, 연산시스템, API 콜, CPU 활동, 메모리 풋프린트 및/또는 콘텐트(예; 이들의 조합)과 같은 '트레이스'를 검사한다. 디텍터는 에이전트 및/또는 제3자 시스템의 네트웍기기(방화벽, 게이트웨이, 트래픽을 받는 머신 등)에 머물 수 있다. 경우에 따라서는 네트웍기기가 에이전트 및/또는 제3자 시스템으로부터 엔드포인트 추출 데이터를 받거나, 인콰이어리, 업데이트, 분석 및 탐지 결과를 에이전트에 보내기도 한다.
본 발명에서는 디텍터를 시스템 클라우드에 생성하고 예측엔진에 의해 장래 공격 예상에 관한 훈련을 받기도 한다. 이어서, 클라이언트 시스템/네트웍(예; 고전적인 기업망, SCADA 장비, 임베디드 장치 등)에 디텍터를 배치한다.
검사 데이터에 따른 3가지 디텍터 배치 시나리오는 아래와 같다:
1. 네트웍 데이터를 이용한 예상 맬웨어 방지
도 6a는 클라이언트측 배치를 위한 첫번째 시나리오를 보여준다. 네트웍 흐름은 스위치나 방화벽 장치에서 미러링되고 네트웍기기에서 처리된다. 기기는 클라우드에서 직접 업데이트되거나, 수동으로 업데이트를 다운로드하여 오프라인 방식으로 업데이트되기도 한다.
2. 엔드포인트 데이터를 이용한 예상 맬웨어 방지
도 6b는 클라이언트측 배치를 위한 2번째 시나리오로서, 엔드포인트 장치의 에이전트에서 트레이스 데이터를 추출한다. 에이전트는 클라우드에서 훈련된 디텍터를 이용해 악성행동을 탐지 및 차단한다. 네트웍기기가 디텍터들을 관리하고 업데이트하며, 조직단위의 사이버위협을 제시하며, 의심되는 샘플들을 클라우드에 보낸다. 엔드포인트 에이전트가 클라우드에 직접 연결될 수도 있다.
3. 네트웍과 엔드포인트 데이터를 이용한 예상 맬웨어 방지
도 6c는 클라이언트측 배치를 위한 3번째 시나리오로서, 엔드포인트 장치의 에이전트와 미러링된 네트웍 흐름에서 트레이스 데이터를 추출한다. (기기의) 네트웍 스트림과 (예컨대 기기에 보고하는 에이전트를 이용해) 엔드포인트 행동에 대한 탐지와 방지를 적용한다. 기기는 디텍터를 관리하고 업데이트하며, 조직단위의 사이버위협을 제시하고, 의심되는 샘플들을 클라우드에 보낸다.
방법
도 3은 진화방법(300)의 순서도이다. 302 단계에서, 진화엔진이 맬웨어 시료를 받고, 304 단계에서는 그 변종을 생성한다. 각 변종은 원 시료의 후손으로서, 맬웨어의 트레이스 일부가 돌연변이된 것이다. 돌연변이는 랜덤 돌연변이, 세미랜덤 돌연변이 또는 의사랜덤 돌연변이이지만, 비랜덤 돌연변이일 수도 있다. 돌연변이의 예로는 코드 라인을 시료에 추가한 것, 코드 일부를 제거한 것, 코드 라인들을 대체한 것, 코드 라인들을 재배열한 것, 주어진 명령어 시퀀스를 기능적으로 동일한 다른 명령어 시퀀스로 대체한 것, 선택된 라이브러리 콜을 기능적으로 동일한 다른 라이브러리 콜로 대체한 것, 선택된 라이브러리를 기능적으로 동일한 다른 라이브러리로 대체한 것 등이 있다. 네트웍 패킷의 돌연변이에 대해서는 도 8에서 설명한다.
306 단계에서, 한 코드의 일부를 다른 코드의 일부와 합쳐 변종을 만드는데, 경우에 따라서는 이 단계(306)를 생략할 수도 있고, 몇몇 세대가 몇가지 변종들을 합치는 단계를 채택하면서 다른 세대 및/또는 변종들은 합치지 않을 수도 있다. 많은 수의 추가 후손들이 이런 방식으로 생긴다. 308 단계에서, 이런 변종들을 '적합도' 관점으로 평가하는데, 일반적으로는 선택과정의 일부분이다. 310 단계에서, 회피도에 대해 각 변종을 평가한다. 회피도는 선택된 그룹의 보안제품으로 각각의 변종을 스캔하여 측정하고, 각 변종에 대한 회피도 점수는 변종을 탐지할 수 있는 보안제품의 수 및/또는 품질을 기초로 부여된다. 경우에 따라서는, 변종의 진화과정(전술한 공동진화)과 동시에 개발된 디텍터들을 변종의 회피도 평가를 위한 보안제품으로 사용하기도 한다.
312 단게에서 각 변종의 악성도를 평가한다. 악성도는 변종이 악성활동을 일으키는가에 따라 측정되고, 이 결정에 따라 악성도 점수가 부여된다. 이 점수는 2진수나 실제/의사 포맷이고, 변종이 악성활동을 일으키나, 악성행동을 보여주나, 악성코드를 갖는가 등의 여부를 표시한다. 한편, 악성도의 실제 레벨(예; 1~10 정도)을 평가하고 이 평가를 악성도 점수가 반영할 수도 있다. 또는, 변종이 VM에서 운용되거나 실제 머신에서 운용될 수도 있다. 같은 과정을 코드는 물론 다른 종류의 트레이스(예; 네트웍 공격)에도 사용한다.
314는 선택 단계로서, 이밸류에이터가 적합도를 표시하는 다른/추가 변수들을 테스트한다. 일례로 변종을 분석해 원래의 시료 및/또는 이전 순열/세대 및/또는 동세대의 다른 변종로부터의 다양도/거리도를 결정하는 분석을 하는 다양성 변수가 있다. 316 단계에서는 후속 분석과 사용을 위해 트레이스 데이터를 기록하는데, 예를 들면 이 데이터는 새 디텍터를 훈련/생성하는데 사용될 수 있다(도 4 참조).
316 단계에서는 악성도와 회피도 점수들에 의거해 적합도 점수를 계산하고, 318 단계에서는 이 변종이 선택과정에서 살아남기에 충분히 '적합'한지를 결정한다. 선택과정에서 살아남은 변종은 더 평가하기 위해 새 맬웨어 시료로서 진화머신으로 돌아간다(302 단계로). 변종을 사용하는 방법은 많으며, 시기에 따라 각각 다른 방법을 사용하거나 과정 중간에 방법 자체를 바꿀 수도 있다. 변종이 선택과정에서 살아남을 가능성은 일반적으로 적합도 점수와 직접 관련이 있다. 경우에 따라, 적합도 점수가 임계치보다 높으면 이 변종은 선택과정을 살아남을 수 있는데, 전술한대로 적합도 점수를 동적 이밸류에이터가 결정하면 동적 적합도 변수가 된다. 한편, 선택과정이 토너먼트 방식이면, 높은 점수의 변종들을 취해 처음 N개의 최적 변종들이 (승자가 최적 변종로 되어) 토너먼트 방식으로 선택된다. 또는, 특정 특성들이 생존을 위해 선택되는 안내과정이 선택과정일 수도 있다. 선택과정이 2가지 이상의 방법 또는 앞에서 언급되지 않은 다른 방법으로 이루어질 수도 있다. 또, 변종이 적합지 않다고 밝혀지면, 이 변종은 320 단계에서 폐기되기도 한다.
도 4는 디텍터를 구축하는 과정(400)의 순서도로서, 402 단계는 도 3의 316 단계와 같다. 변종들의 트레이스 데이터를 기록하거나 이 데이터를 악성 트레이스와 비악성 트레이스로 구분한다(404 단계). 다른 카테고리를 추가할 수도 있다. 경우에 따라서는 회피도를 기록했다가 새 디텍터들을 훈련하는데 이용하기도 한다.
406 단계에서, 디텍터빌더나 비슷한 요소가 악성과 비악성을 탐지하고 구분할 수 있는 디텍터들을 구축/생성/창조한다. 이 작업은 머신학습(중립 네트웍, 제네틱 알고리즘, SVM, 커널머신 등)을 이용해 이루어질 수 있다. 406 단계의 예가 도 7과 2에 도시되었다.
디턱터들은 재학습과정을 거치고, 이 과정에서 아래를 기준으로 각각 평가받는다:
1) 제대로 탐지된 악성 특성들의 갯수에 맞는 포인트를 받았고;
2) 악성(의사 양성)으로 잘못 탐지된 비악성 특성들의 갯수에 맞게 포인트가 차감되며;
3) 코드가 짧거나 가벼울수록 디텍터가 좋다. (길이, 메모리, 계산량의 관점에서) 짧거나 가벼운 디텍터일수록 높은 평가를 받는다.
회피 이밸류에이터/보안제품 벤치마커
도 5는 선택된 보안제품의 회피도를 평가하거나 벤치마킹하는 과정(500)의 순서도이다. 502 단계에서 맬웨어 시료를 수집/추적하는데, 악성코드에서 보안제품에 의해 사인된 코드/행동 시퀀스를 발견할 수도 있다. 다른 트레이스에 대해서는 이 단계에서 기존의 인식되고 기록된 패턴들을 발견할 수도 있다. 504 단계에서는 이 시료를 진화엔진에 돌려, 시퀀스에서의 랜덤, 세미랜덤 또는 의사랜던 변화들을 네트웍패킷에 삽입하여 원래 맬웨어의 변종을 만든다. 경우에 따라서는, 머신코드 자체에서나 머신코드의 어셈블리 표현에서나, 다른 컴퓨팅 언어(Java, C 등)에서 전술한 방식으로 이런 변화들을 실행하기도 한다. 506 단계에서, (보안 패키지의) 선택된 보안 스캐너로 변종들을 스캔한다. 디텍터빌더에 의해 생긴 디텍터로 스캔할 수도 있다.
508 단계에서, 변종을 감지할 수 없는 스캐너의 수(즉, 변종에 의해 회피되는 보안제품 수) 및/또는 보안제품에 의한 경보나 이상평가에 의거하 변종마다 회피도 점수가 매겨진다. 회피도 점수는 탐지 메커니즘을 회피하는 변종의 성능을 반영한다. 경우에 따라서는 변종이 탐지된지 여부에 따라 그 결과가 2진수일 수 있다. 다른 변종은 탐지 평가를 돌려줄 수 있는데, 예컨대 프로세스나 파일이 맬웨어이거나 맬웨어 결과일 가능성에 관한 통계점수를 돌려준다.
510 단계에서, (디텍터빌더가 만든 디텍터를 포함한) 각각의 보안제품이 악성 변종을 감지하는 성능에 의거해 평가를 받는데, 이 평가는 스캐너의 절대적 성공율/실패율에 의거하거나, 다른 제품에 대해 상태적 평가를 받기도 한다(512 단계).
컴퓨터 프로그램 제품
본 발명의 방법, 시스템 및 프로그램 제품은 선택된 임무나 단계들을 수동으로나 자동으로나 이들의 조합으로 실행하거나 완성하는 것을 포함한다. 또, 본 발명에 의하면, 모든 펌웨어의 모든 운용시스템에서의 하드웨어나 소프트웨어나 이들의 조합에 의해 여러 선택 단계들이 구현될 수 있다. 예컨대, 본 발명의 선택된 단계들이 하드웨어인 칩이나 회로에서 구현되거나, 모든 적절한 운용시스템을 사용하는 컴퓨터 프로세서에서 실행되거나 비일시적 저장매체에서 실행되는 소프트웨어로 구현될 수 있다. 어떤 경우에도, 본 발명의 방법과 시스템의 선택된 단계들은 명령어들을 실행하는 컴퓨팅 플랫폼과 같이 데이터 프로세서에 의해 실행된다고 볼 수 있다.
프로세서에 의해 실행되고 비일시적 저장매체에서 구현되는 컴퓨터 프로그램 제품은 이상 설명한 단계들을 실행하도록 구성된다.

Claims (47)

  1. ⒜ 맬웨어 시료의 맬웨어 변종들을 생성하는 맬웨어 진화엔진; 및
    ⒝ 악성도와 회피도 중의 적어도 하나에 기초해 상기 맬웨어 변종들을 평가하는 이밸류에이터;를 포함하는 것을 특징으로 하는 시스템.
  2. 제1항에 있어서, ⒞ 저장소, 생산시스템 및 제3자 제품으로 이루어진 군에서선택된 적어도 하나의 소스로부터 상기 진화엔진용의 맬웨어 시료들을 수집하는 맬웨어 페처를 더 포함하는 것을 특징으로 하는 시스템.
  3. 제1항에 있어서, ⒞ 상기 진화엔진에 의해 생기고 이밸류에이터의 평가를 받은 상기 맬웨어 변종들을 기초로 디텍터 메커니즘을 생성하는 디텍터빌더를 더 포함하는 것을 특징으로 하는 시스템.
  4. 제1항에 있어서, 상기 진화엔진이 맬웨어 시료의 실행코드에 돌연변이 적용, 맬웨어 방출 네트웍 트래픽에 돌연변이 적용, 소스코드에 돌연변이 적용, 어셈블리 랭귀지 코드에 돌연변이 적용, 및 맬웨어 변종들의 교차결합으로 이루어진 군에서 선택된 적어도 하나의 행위를 실행하여 맬웨어 변종들을 생성하는 것을 특징으로 하는 시스템.
  5. 제1항에 있어서, 상기 실행코드에 적용된 돌연변이들이,
    ⅰ) 랜덤 돌연변이;
    ⅱ) 주어진 명령어 시퀀스를 기능적으로 동일한 다른 명령어 시퀀스로 대체;
    ⅲ) 선택된 라이브러리 콜을 기능적으로 동일한 다른 라이브러리 콜로 대체;
    ⅳ) 선택된 라이브러리를 기능적으로 동일한 다른 라이브러리로 대체;
    ⅴ) 악성기능을 갖는다고 확인된 영역에 있을 상기 돌연변이들의 각각의 확률 증가;
    ⅵ) 상기 실행코드의 적절한 실행을 방해하지 않는다고 확인된 영역에 있을 상기 돌연변이들의 각각의 확률 증가;
    ⅶ) 보안제품에 의해 표시된 영역에 있을 상기 돌연변이들의 각각의 확률 증가;
    ⅷ) 이전의 돌연변이들이 높은 적합도 점수를 받은 영역에 있을 상기 돌연변이들의 확률 증가;
    ⅸ) 2진코드가 추가되어 확장된 섹션을 위해 상기 실행코드의 헤더를 다시 쓰기;
    ⅹ) 상기 실행코드를 다른 실행코드와 결합해 결합된 코드를 만들고, 결합된 코드의 적절한 실행을 위해 관련 헤더들을 다시쓰기; 및
    ⅹⅰ) 동적 함수호출을 관련 연산시스템 호출의 정적 혁신으로 바꾸기 위해 상기 실행코드의 섹션들의 개조;로 이루어진 군에서 선택되는 것을 특징으로 하는 시스템.
  6. 제4항에 있어서, 상기 맬웨어 방출 네트웍 트래픽을 진화엔진에 보내는 공격머신을 더 포함하고, 상기 진화엔진은 상기 돌연변이들을 맬웨어 방출 네트웍 트래픽에 적용하고 돌연변이된 맬웨어 방출 네트웍 트래픽을 희생자 머신에 적용하며, 돌연변이된 맬웨어 방출 네트웍 트래픽을 희생자 머신에 적용한 결과를 이밸류에이터가 평가하여 악성도를 결정하는 것을 특징으로 하는 시스템.
  7. 제6항에 있어서, 상기 맬웨어 방출 네트웍 트래픽에 적용된 상기 돌연변이들이 각종 프로토콜의 네트웍패킷의 CRC/Checksum 필드나 다른 필드들을 수정하여 네트웍패킷의 페이로드나 헤더에서의 다양한 돌연변이 뒤에 상기 CRC/Checksum 필드나 다른 필드들을 유효화하는 것을 특징으로 하는 시스템.
  8. 제6항에 있어서, 상기 맬웨어 방출 네트웍 트래픽이 보안채널에서 이 트래픽을 포함한 네트웍통신을 감싸 난독화되는 것을 특징으로 하는 시스템.
  9. 제4항에 있어서, 상기 맬웨어 시료들의 실행코드가 패킹, 암호화 및 인코딩을 포함하는 군에서 선택된 기술을 이용해 난독화되는 것을 특징으로 하는 시스템.
  10. 제1항에 있어서, 상기 이밸류에이터가 변종들에 적합도 점수를 부여하고, 상기 시스템은 이런 적합도 점수에 의거해 상기 변종들의 적어도 일부를 새로운 맬웨어 시료로 선택하는 것을 특징으로 하는 시스템.
  11. 제3항에 있어서, 상기 이밸류에이터가 변종들에 적합도 점수를 부여하고, 상기 시스템은 이런 적합도 점수에 의거해 상기 변종들의 적어도 일부를 디텍터빌더용으로 선택하는 것을 특징으로 하는 시스템.
  12. 제1항에 있어서, 상기 이밸류에이터가 ⒜ 악성도 결정 및 ⒝ 회피도 결정 중의 적어도 하나에 의거해 변종들에 등급을 매기는 것을 특징으로 하는 시스템.
  13. 제12항에 있어서, 변종들이 맬웨어 시료가 보이는 악성 특성들의 적어도 일부를 보이는지 여부에 의거해 상기 악성도 결정이 적어도 부분적으로 이루어지는 것을 특징으로 하는 시스템.
  14. 제12항에 있어서, 변종들이 맬웨어 시료가 보이는 회피 특성들의 적어도 일부를 보이는지 여부에 의거해 상기 회피도 결정이 적어도 부분적으로 이루어지는 것을 특징으로 하는 시스템.
  15. 제12항에 있어서, 다수의 맬웨어 탐지 시스템 각각에 맬웨어 시료나 변종들을 제출해 상기 회피도 결정이 적어도 부분적으로 이루어지는 것을 특징으로 하는 시스템.
  16. 제3항에 있어서, 상기 디텍터빌더가 ⒜ 맬웨어 변종들의 실행 2진수, ⒝ 맬웨어 변종들이 방출하거나 받은 네트웍 트래픽, ⒞ 맬웨어 변종들의 시스템 호출, ⒟ 맬웨어 변종들의 API 호출, 및 ⒠ 맬웨어 변종들의 메모리 풋프린트와 콘텐트 중의 적어도 하나를 처리하여 디텍터를 만드는 것을 특징으로 하는 시스템.
  17. 제16항에 있어서, 상기 디텍터빌더가 ⒜ 네트웍 행동 시그니처, ⒝ 네트웍 행동 패턴, ⒞ 실행 시그니처, ⒟ 실행 패턴, ⒠ 시스템호출 시그니처, ⒡ 시스템호출 패턴, ⒢ CPU 행위 시그니처, ⒣ CPU 행위 패턴, ⒤ API 호출 시그니처 및 ⒥ API 호출 패턴 중의 적어도 하나를 탐지하는 디텍터를 생산하는 것을 특징으로 하는 시스템.
  18. 제17항에 있어서, 상기 디텍터가 엔드포인트, 게이트웨이, 네트웍 요소, 네트웍기기, 및 통합된 제3자 탐지 플랫폼을 포함하는 군에서 선택된 플랫폼에 독립 탐지모듈로 배치되는 것을 특징으로 하는 시스템.
  19. 제11항에 있어서, 제3항의 디텍터빌더가 구축한 디텍터에 대해 맬웨어 시료나 변종들을 작동시켜 상기 회피도가 결정되는 것을 특징으로 하는 시스템.
  20. 제3항에 있어서, 상기 이밸류에이터가 VM(virtual machine)과 실제 컴퓨터 중의 적어도 하나에 변종들을 작동하여 상기 악성도를 평가하는 것을 특징으로 하는 시스템.
  21. ⒜ 맬웨어 시료를 받는 단계;
    ⒝ 맬웨어 시료의 변종을 생성하는 단계;
    ⒞ 상기 변종들을 평가하고, 각각의 변종에 적합도 점수를 부여하는 단계;
    ⒟ 소정의 적합도 점수를 갖는 변종들을 선택하는 단계; 및
    ⒠ 선택된 변종들을 ⒜ 단계의 맬웨어 시료로 사용해 신세대 변종을 생성하는 단계;를 포함하는 것을 특징으로 하는 진화과정 실행방법.
  22. 제21항에 있어서, 맬웨어 변종을 생성하는 단계에서 맬웨어 시료의 실행코드에 돌연변이 적용, 맬웨어 방출 네트웍 트래픽에 돌연변이 적용, 소스코드에 돌연변이 적용, 어셈블리 랭귀지 코드에 돌연변이 적용, 및 맬웨어 변종들의 교차결합으로 이루어진 군에서 선택된 적어도 하나의 행위를 실행하는 것을 특징으로 하는 진화과정 실행방법.
  23. 제22항에 있어서, 실행코드에 적용된 돌연변이들이,
    ⅰ) 랜덤 돌연변이;
    ⅱ) 주어진 명령어 시퀀스를 기능적으로 동일한 다른 명령어 시퀀스로 대체;
    ⅲ) 선택된 라이브러리 콜을 기능적으로 동일한 다른 라이브러리 콜로 대체;
    ⅳ) 선택된 라이브러리를 기능적으로 동일한 다른 라이브러리로 대체;
    ⅴ) 악성기능을 갖는다고 확인된 영역에 있을 상기 돌연변이들의 각각의 확률 증가;
    ⅵ) 상기 실행코드의 적절한 실행을 방해하지 않는다고 확인된 영역에 있을 상기 돌연변이들의 각각의 확률 증가;
    ⅶ) 보안제품에 의해 표시된 영역에 있을 상기 돌연변이들의 각각의 확률 증가;
    ⅷ) 이전의 돌연변이들이 높은 적합도 점수를 받은 영역에 있을 상기 돌연변이들의 확률 증가;
    ⅸ) 2진코드가 추가되어 확장된 섹션을 위해 상기 실행코드의 헤더를 다시 쓰기;
    ⅹ) 상기 실행코드를 다른 실행코드와 결합해 결합된 코드를 만들고, 결합된 코드의 적절한 실행을 위해 관련 헤더들을 다시쓰기; 및
    ⅹⅰ) 동적 함수호출을 관련 연산시스템 호출의 정적 혁신으로 바꾸기 위해 상기 실행코드의 섹션들의 개조;로 이루어진 군에서 선택되는 것을 특징으로 하는 진화과정 실행방법.
  24. 제22항에 있어서, 맬웨어 방출 네트웍 트래픽에 돌연변이들을 적용할 때, ⅰ) 맬웨어 방출 네트웍 트래픽을 공격머신에서 라우터로 보내고; ⅱ) 맬웨어 방출 네트웍 트래픽의 요소들을 돌연변이시키며; ⅲ) 돌연변이된 맬웨어 방출 네트웍 트래픽을 희생자 머신에 보내는 것을 특징으로 하는 진화과정 실행방법.
  25. 제24항에 있어서, 상기 돌연변이된 맬웨어 방출 네트웍 트래픽을 평가하는 단계를 더 포함하고, 이 평가 단계에서 ⅳ) 돌연변이된 맬웨어 방출 네트웍 트래픽이 결과를 희생자 머신에 등록하며, ⅴ) 상기 결과를 평가해 적합도 점수를 결정하는 것을 특징으로 하는 진화과정 실행방법.
  26. 제21항에 있어서, 상기 변종을 평가하는 단계에서 각각의 변종의 회피도와 악성도를 평가하는 것을 특징으로 하는 진화과정 실행방법.
  27. 제26항에 있어서, 상기 변종을 탐지할 수 없는 보안제품에 의거해, 선택된 보안제품으로 각각의 변종을 스캔하고 회피도 점수를 부여해 회피도를 측정하는 것을 특징으로 하는 진화과정 실행방법.
  28. 제27항에 있어서, 각각의 변종에 대해 악성활동을 일으키는지 여부를 결정하고 이 결정에 의거해 악성도 점수를 부여하여 악성도를 측정하는 것을 특징으로 하는 진화과정 실행방법.
  29. 제28항에 있어서, 각각의 변종이 VM과 실제 머신 중의 적어도 하나에 실행되는 것을 특징으로 하는 진화과정 실행방법.
  30. 제28항에 있어서, 상기 회피도와 악성도 점수 중의 적어도 하나에 의거해 적합도 점수가 계산되는 것을 특징으로 하는 진화과정 실행방법.
  31. 제30항에 있어서, 상기 적합도 점수가 맬웨어 시료로부터의 변형로의 다양성 정도에 의거해 계산되는 것을 특징으로 하는 진화과정 실행방법.
  32. 제28항에 있어서, ⒡ 상기 변종과 양성 파일이나 네트웍 흐름의 트레이스 데이터를 수집하는 단계; 및 ⒢ 악성 변종의 트레이스, 양성 파일의 트레이스, 및 진화과정 동안 악성 활동을 잃은 지정된 맬웨어 변종의 트레이스 중의 적어도 하나로 상기 트레이스 데이터를 구분하는 단계를 더 포함하는 것을 특징으로 하는 진화과정 실행방법.
  33. 제32항에 있어서, ⒣ 악성 특성과 비악성 특성을 탐지하고 구분할 수 있는 디텍터를 구축하는 단계를 더 포함하는 것을 특징으로 하는 진화과정 실행방법.
  34. 제33항에 있어서, ⒤ 옳게 탐지된 악성 특성들의 수, 잘못 탐지된 비악성 특성들의 수, 및 (길이, 메모리, 계산량의 관점에서) 짧거나 가벼운 디텍터일수록 높은 평가를 받는 디텍터의 짧은 정도에 의거하여 상기 디텍터들 중에서 임계치보다 높은 평가를 받은 디텍터를 선택하는 단계를 더 포함하는 것을 특징으로 하는 진화과정 실행방법.
  35. ⒜ 맬웨어 시료를 받는 단계;
    ⒝ 맬웨어 시료의 변종을 생성하는 단계;
    ⒞ 선택된 보안제품으로 각각의 변종을 스캔하고, 이 보안제품이 변종을 탐지할 수 없는 정도에 의거해 회피도 점수를 부여하는 단계;를 포함하는 것을 특징으로 하는 방법.
  36. 제35항에 있어서, ⒟ 상기 보안제품의 변종 탐지 성공율에 의거해 보안제품 각각에 평가를 내리는 단계를 더 포함하는 것을 특징으로 하는 방법.
  37. 제36항에 있어서, 상기 평가가 다른 보안제품에 대한 상대적 성공율에 의거해 이루어지는 것을 특징으로 하는 방법.
  38. 바이트 스트림용으로 맬웨어 디텍터를 훈련시키는 방법에 있어서:
    ⒜ 네트웍 세션이나 다른 2진 데이터의 바이트 스트림을 캡처하고, 상기 바이트 스트림을 정수의 선형 벡터로 표현하며, 이 바이트 스트림이 맬웨어 변종나 양성 네트웍 활동이나 파일의 트레이스를 포함하는 단계;
    ⒝ 상기 선형 벡터를 사각 행렬로 변환하여 그레이-스케일 영상을 받는 단계;
    ⒞ 상기 그레이-스케일 영상을 해상도 통합을 위해 정상화하는 단계;
    ⒟ 적어도 한가지 영상처리 기술을 이용해 상기 정상화된 영상에서 특징들을 추출하는 단계;
    ⒠ ⒜ 내지 ⒟ 단계들을 반복하고, 악성 변종은 첫번째 데이터베이스에 그리고 양성 트래픽은 두번째 데이터베이스에 저장하는 단계; 및
    ⒡ 맬웨어 변종과 양성 트래픽을 구분하도록 맬웨어 디텍터를 훈련시키는 단계;를 포함하는 것을 특징으로 하는 방법.
  39. 제38항에 있어서, 상기 영상처리 기술이 가버웨이블릿 계수, 계수통계법, 주성분 분석법, 선형판별 분석법 및 독립성분 분석법으로 이루어진 군에서 선택되는 것을 특징으로 하는 방법.
  40. 제38항에 있어서, 상기 훈련시키는 단계가 서포트 벡터머신(SVM; support vector machine)으로 실행되는 것을 특징으로 하는 방법.
  41. 맬웨어 시료에서 맬웨어 변종을 생성하는 방법에 있어서:
    맬웨어 시료의 실행코드에 돌연변이 적용, 맬웨어 방출 네트웍 트래픽에 돌연변이 적용 및 맬웨어 변종들의 교차결합으로 이루어진 군에서 선택된 적어도 하나의 행위를 실행하여 상기 맬웨어 변종을 생성하는 것을 특징으로 하는 방법.
  42. 제41항에 있어서, 실행코드에 돌연변이를 적용하는 것이
    ⅰ) 랜덤 돌연변이;
    ⅱ) 주어진 명령어 시퀀스를 기능적으로 동일한 다른 명령어 시퀀스로 대체;
    ⅲ) 선택된 라이브러리 콜을 기능적으로 동일한 다른 라이브러리 콜로 대체;
    ⅳ) 선택된 라이브러리를 기능적으로 동일한 다른 라이브러리로 대체;
    ⅴ) 악성기능을 갖는다고 확인된 영역에 있을 상기 돌연변이들의 각각의 확률 증가;
    ⅵ) 상기 실행코드의 적절한 실행을 방해하지 않는다고 확인된 영역에 있을 상기 돌연변이들의 각각의 확률 증가;
    ⅶ) 보안제품에 의해 표시된 영역에 있을 상기 돌연변이들의 각각의 확률 증가;
    ⅷ) 이전의 돌연변이들이 높은 적합도 점수를 받은 영역에 있을 상기 돌연변이들의 확률 증가;
    ⅸ) 2진코드가 추가되어 확장된 섹션을 위해 상기 실행코드의 헤더를 다시 쓰기;
    ⅹ) 상기 실행코드를 다른 실행코드와 결합해 결합된 코드를 만들고, 결합된 코드의 적절한 실행을 위해 관련 헤더들을 다시쓰기; 및
    ⅹⅰ) 동적 함수호출을 관련 연산시스템 호출의 정적 혁신으로 바꾸기 위해 상기 실행코드의 섹션들의 개조 중의 적어도 하나로 이루어지는 것을 특징으로 하는 방법.
  43. 제41항에 있어서, 맬웨어 방출 네트웍 트래픽에 돌연변이를 적용할 때, ⅰ) 맬웨어 방출 네트웍 트래픽을 공격머신에서 라우터로 보내고; ⅱ) 맬웨어 방출 네트웍 트래픽의 요소들을 돌연변이시키며; ⅲ) 돌연변이된 맬웨어 방출 네트웍 트래픽을 희생자 머신에 보내는 것을 특징으로 하는 방법.
  44. 제29항에 있어서, VM과 실제 머신 양쪽에 상기 변종들을 실행하는 단계, 및 이런 실행의 결과들을 비교해 결과들의 차이를 검출하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  45. 제44항에 있어서, 상기 차이가 발견되면 실제 머신에 변종을 실해한 결과에 대해서만 상기 변종이 평가되는 것을 특징으로 하는 방법.
  46. 제29항에 있어서, 소정의 시스템 신호, 통신데이터 및 의견 중에서 선택된 적어도 하나의 신호를 보내 상기 변종을 실행하는 동안 통합된 트리거들을 중화시키는 단계를 더 포함하고, 상기 신호는 엔드포인트 장치나 네트웍기기의 에이전트에 의해 캡처된 것을 포함하는 것을 특징으로 하는 방법.
  47. 제29항에 있어서, 상기 변종을 실행하는 동안 코드 커버리지를 감시하여 실행되지 않은 코드 영역들을 확인하는 단계를 더 포함하고, 상기 실행되지 않은 코드 영역들은 변종에 통합된 트리거들을 표시하는 것을 특징으로 하는 방법.
KR1020157024359A 2013-02-10 2014-02-10 예측보안 제품을 제공하고 기존의 보안제품을 평가하는 방법과 장치 KR101880796B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361762922P 2013-02-10 2013-02-10
US61/762,922 2013-02-10
PCT/IL2014/050144 WO2014122662A1 (en) 2013-02-10 2014-02-10 Method and product for providing a predictive security product and evaluating existing security products

Publications (2)

Publication Number Publication Date
KR20150118186A true KR20150118186A (ko) 2015-10-21
KR101880796B1 KR101880796B1 (ko) 2018-08-17

Family

ID=51299301

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157024359A KR101880796B1 (ko) 2013-02-10 2014-02-10 예측보안 제품을 제공하고 기존의 보안제품을 평가하는 방법과 장치

Country Status (10)

Country Link
US (6) US9521156B2 (ko)
EP (2) EP3264313B1 (ko)
JP (1) JP6176868B2 (ko)
KR (1) KR101880796B1 (ko)
CN (1) CN105144187B (ko)
AU (1) AU2014213584B2 (ko)
CA (1) CA2900312A1 (ko)
IL (1) IL240452B (ko)
RU (1) RU2015136393A (ko)
WO (1) WO2014122662A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220112577A (ko) * 2021-02-04 2022-08-11 강원대학교산학협력단 악성코드 학습 데이터 증강 장치, 방법 및 프로그램
KR102447280B1 (ko) * 2022-02-09 2022-09-27 주식회사 샌즈랩 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015163914A1 (en) * 2014-04-25 2015-10-29 Hewlett-Packard Development Company, L.P. Statistics-based data trace classification
US10474820B2 (en) 2014-06-17 2019-11-12 Hewlett Packard Enterprise Development Lp DNS based infection scores
KR20160001046A (ko) * 2014-06-26 2016-01-06 삼성전자주식회사 전자 장치의 악성 코드 방지 방법 및 이를 지원하는 장치
WO2016081346A1 (en) * 2014-11-21 2016-05-26 Northrup Grumman Systems Corporation System and method for network data characterization
US9692773B1 (en) * 2014-12-11 2017-06-27 Symantec Corporation Systems and methods for identifying detection-evasion behaviors of files undergoing malware analyses
CN104573515A (zh) 2014-12-19 2015-04-29 百度在线网络技术(北京)有限公司 一种病毒处理方法、装置和系统
FR3030823B1 (fr) * 2014-12-23 2017-01-27 Thales Sa Procede de mise en oeuvre d'un algorithme de determination de surete de fichiers informatiques, module de determination, procede de construction d'une unite de controle et produit programme d'ordinateur associes
WO2016168368A1 (en) * 2015-04-13 2016-10-20 Secful, Inc. System and method for identifying and preventing malicious api attacks
JP6930742B2 (ja) * 2015-05-04 2021-09-01 ハサン・シェド・カムラン コンピュータネットワークにおけるセキュリティを管理する方法及び装置
US9984231B2 (en) * 2015-11-11 2018-05-29 Qualcomm Incorporated Detecting program evasion of virtual machines or emulators
EP3394784B1 (en) 2015-12-24 2020-10-07 British Telecommunications public limited company Malicious software identification
JP5982597B1 (ja) * 2016-03-10 2016-08-31 株式会社Ffri 情報処理装置、情報処理方法、プログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
TWI599905B (zh) * 2016-05-23 2017-09-21 緯創資通股份有限公司 惡意碼的防護方法、系統及監控裝置
US10505960B2 (en) * 2016-06-06 2019-12-10 Samsung Electronics Co., Ltd. Malware detection by exploiting malware re-composition variations using feature evolutions and confusions
CN106198900B (zh) * 2016-06-30 2018-06-15 深圳市检验检疫科学研究院 食品安全评价方法及装置
JP6801267B2 (ja) 2016-07-04 2020-12-16 富士通株式会社 評価プログラム、評価方法、評価装置および情報処理装置
US10218729B2 (en) 2016-07-08 2019-02-26 Cisco Technology, Inc. Specializing unsupervised anomaly detection systems using genetic programming
WO2018178028A1 (en) 2017-03-28 2018-10-04 British Telecommunications Public Limited Company Initialisation vector identification for encrypted malware traffic detection
EP3602371A1 (en) * 2017-03-28 2020-02-05 British Telecommunications Public Limited Company Intialisation vector identification for malware file detection
CN107463493B (zh) * 2017-06-30 2020-04-07 北京北信源软件股份有限公司 一种面向主机防病毒产品的测试系统和测试方法
US11017055B2 (en) 2017-06-30 2021-05-25 Paypal, Inc. Hotspots for probabilistic model testing and cyber analysis
WO2019067717A1 (en) 2017-09-27 2019-04-04 Alphamorph, LLC DESIGN TOOL AND METHOD OF USING THE SAME
WO2019073557A1 (ja) 2017-10-11 2019-04-18 三菱電機株式会社 サンプルデータ生成装置、サンプルデータ生成方法およびサンプルデータ生成プログラム
US10198342B1 (en) 2017-10-30 2019-02-05 Paypal Inc. Advanced binary instrumentation for debugging and performance enhancement
CN110362994B (zh) * 2018-03-26 2023-06-20 华为技术有限公司 恶意文件的检测方法、设备和系统
CN108959925A (zh) * 2018-06-22 2018-12-07 珠海市君天电子科技有限公司 一种恶意脚本的检测方法、装置、电子设备及存储介质
EP3623980B1 (en) 2018-09-12 2021-04-28 British Telecommunications public limited company Ransomware encryption algorithm determination
EP3623982B1 (en) 2018-09-12 2021-05-19 British Telecommunications public limited company Ransomware remediation
US11368475B1 (en) * 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
JP7188208B2 (ja) * 2019-03-20 2022-12-13 日本電気株式会社 マルウェア解析装置、マルウェア解析方法、及び、プログラム
KR20210108154A (ko) 2020-02-25 2021-09-02 국방과학연구소 악성코드 진화관계를 분석하는 장치 및 방법
US11853421B2 (en) 2020-02-25 2023-12-26 Agency For Defense Development Method and apparatus for analyzing malicious code
RU2738344C1 (ru) * 2020-03-10 2020-12-11 Общество с ограниченной ответственностью «Группа АйБи ТДС» Способ и система поиска схожих вредоносных программ по результатам их динамического анализа
KR102211846B1 (ko) 2020-07-21 2021-02-03 국방과학연구소 랜섬웨어 탐지 시스템 및 그의 동작 방법
CN115766231A (zh) * 2022-11-17 2023-03-07 国网福建省电力有限公司 一种线性可分的安全脆弱点检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094734A1 (en) * 2005-09-29 2007-04-26 Mangione-Smith William H Malware mutation detector
US20090044024A1 (en) * 2007-08-06 2009-02-12 The Regents Of The University Of Michigan Network service for the detection, analysis and quarantine of malicious and unwanted files
US20100162400A1 (en) * 2008-12-11 2010-06-24 Scansafe Limited Malware detection
US20120304244A1 (en) * 2011-05-24 2012-11-29 Palo Alto Networks, Inc. Malware analysis system

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6357008B1 (en) * 1997-09-23 2002-03-12 Symantec Corporation Dynamic heuristic method for detecting computer viruses using decryption exploration and evaluation phases
US7210041B1 (en) * 2001-04-30 2007-04-24 Mcafee, Inc. System and method for identifying a macro virus family using a macro virus definitions database
JP3992136B2 (ja) * 2001-12-17 2007-10-17 学校法人金沢工業大学 ウイルス検出方法および装置
US7832011B2 (en) * 2002-08-30 2010-11-09 Symantec Corporation Method and apparatus for detecting malicious code in an information handling system
US7284273B1 (en) * 2003-05-29 2007-10-16 Symantec Corporation Fuzzy scanning system and method
US7367057B2 (en) * 2003-06-30 2008-04-29 Intel Corporation Processor based system and method for virus detection
US7370361B2 (en) * 2004-02-06 2008-05-06 Trend Micro Incorporated System and method for securing computers against computer virus
KR100670815B1 (ko) * 2005-12-08 2007-01-19 한국전자통신연구원 순차적 데이터 처리 기반의 유해 멀티미디어 서비스 차단장치 및 그 방법
US7809670B2 (en) * 2005-12-09 2010-10-05 Microsoft Corporation Classification of malware using clustering that orders events in accordance with the time of occurance
US9104871B2 (en) * 2006-04-06 2015-08-11 Juniper Networks, Inc. Malware detection system and method for mobile platforms
US20070250927A1 (en) * 2006-04-21 2007-10-25 Wintutis, Inc. Application protection
EP1933248A1 (de) * 2006-12-12 2008-06-18 secunet Security Networks Aktiengesellschaft Verfahren zur sicheren Datenverarbeitung auf einem Computersystem
US8250655B1 (en) * 2007-01-12 2012-08-21 Kaspersky Lab, Zao Rapid heuristic method and system for recognition of similarity between malware variants
US8613080B2 (en) * 2007-02-16 2013-12-17 Veracode, Inc. Assessment and analysis of software security flaws in virtual machines
US8312546B2 (en) * 2007-04-23 2012-11-13 Mcafee, Inc. Systems, apparatus, and methods for detecting malware
US8732825B2 (en) * 2008-05-28 2014-05-20 Symantec Corporation Intelligent hashes for centralized malware detection
US20090313700A1 (en) * 2008-06-11 2009-12-17 Jefferson Horne Method and system for generating malware definitions using a comparison of normalized assembly code
US8904536B2 (en) * 2008-08-28 2014-12-02 AVG Netherlands B.V. Heuristic method of code analysis
US8667583B2 (en) * 2008-09-22 2014-03-04 Microsoft Corporation Collecting and analyzing malware data
US8239948B1 (en) * 2008-12-19 2012-08-07 Symantec Corporation Selecting malware signatures to reduce false-positive detections
US8266698B1 (en) * 2009-03-09 2012-09-11 Symantec Corporation Using machine infection characteristics for behavior-based detection of malware
US8321942B1 (en) 2009-03-12 2012-11-27 Symantec Corporation Selecting malware signatures based on malware diversity
US8332945B2 (en) * 2009-06-05 2012-12-11 The Regents Of The University Of Michigan System and method for detecting energy consumption anomalies and mobile malware variants
CN102461118B (zh) * 2009-06-11 2016-07-06 松下航空电子公司 用于在移动平台上提供安全性的系统和方法
US8375450B1 (en) 2009-10-05 2013-02-12 Trend Micro, Inc. Zero day malware scanner
US8356354B2 (en) * 2009-11-23 2013-01-15 Kaspersky Lab, Zao Silent-mode signature testing in anti-malware processing
US8863279B2 (en) * 2010-03-08 2014-10-14 Raytheon Company System and method for malware detection
US9501644B2 (en) * 2010-03-15 2016-11-22 F-Secure Oyj Malware protection
US20120072988A1 (en) 2010-03-26 2012-03-22 Telcordia Technologies, Inc. Detection of global metamorphic malware variants using control and data flow analysis
US8510836B1 (en) * 2010-07-06 2013-08-13 Symantec Corporation Lineage-based reputation system
US8869277B2 (en) * 2010-09-30 2014-10-21 Microsoft Corporation Realtime multiple engine selection and combining
US9032521B2 (en) * 2010-10-13 2015-05-12 International Business Machines Corporation Adaptive cyber-security analytics
US20120297457A1 (en) * 2010-11-15 2012-11-22 Brian Schulte Interactive Malware Detector
RU2454714C1 (ru) * 2010-12-30 2012-06-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов
KR101337874B1 (ko) * 2010-12-31 2014-01-28 주식회사 안랩 파일 유전자 지도를 이용하여 파일의 악성코드 포함 여부를 판단하는 방법 및 시스템
US9111094B2 (en) * 2011-01-21 2015-08-18 F-Secure Corporation Malware detection
US8997233B2 (en) * 2011-04-13 2015-03-31 Microsoft Technology Licensing, Llc Detecting script-based malware using emulation and heuristics
US8555388B1 (en) * 2011-05-24 2013-10-08 Palo Alto Networks, Inc. Heuristic botnet detection
US9544323B2 (en) * 2011-07-08 2017-01-10 Rapid Focus Security, Llc System and method for remotely conducting a security assessment and analysis of a network
US9672355B2 (en) * 2011-09-16 2017-06-06 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security
US20130152200A1 (en) * 2011-12-09 2013-06-13 Christoph Alme Predictive Heap Overflow Protection
US8782796B2 (en) * 2012-06-22 2014-07-15 Stratum Security, Inc. Data exfiltration attack simulation technology
US9292688B2 (en) * 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US20140157405A1 (en) * 2012-12-04 2014-06-05 Bill Joll Cyber Behavior Analysis and Detection Method, System and Architecture
US9117080B2 (en) * 2013-07-05 2015-08-25 Bitdefender IPR Management Ltd. Process evaluation for malware detection in virtual machines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094734A1 (en) * 2005-09-29 2007-04-26 Mangione-Smith William H Malware mutation detector
US20090044024A1 (en) * 2007-08-06 2009-02-12 The Regents Of The University Of Michigan Network service for the detection, analysis and quarantine of malicious and unwanted files
US20100162400A1 (en) * 2008-12-11 2010-06-24 Scansafe Limited Malware detection
US20120304244A1 (en) * 2011-05-24 2012-11-29 Palo Alto Networks, Inc. Malware analysis system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220112577A (ko) * 2021-02-04 2022-08-11 강원대학교산학협력단 악성코드 학습 데이터 증강 장치, 방법 및 프로그램
KR102447280B1 (ko) * 2022-02-09 2022-09-27 주식회사 샌즈랩 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체

Also Published As

Publication number Publication date
IL240452A0 (en) 2015-09-24
US20160219064A1 (en) 2016-07-28
CN105144187B (zh) 2019-01-22
US9521156B2 (en) 2016-12-13
US20180131707A1 (en) 2018-05-10
EP2954453A1 (en) 2015-12-16
CA2900312A1 (en) 2014-08-14
RU2015136393A (ru) 2017-03-15
US20160173514A1 (en) 2016-06-16
AU2014213584A1 (en) 2015-10-01
US9680851B2 (en) 2017-06-13
KR101880796B1 (ko) 2018-08-17
JP2016507115A (ja) 2016-03-07
US9838406B2 (en) 2017-12-05
IL240452B (en) 2019-06-30
EP2954453B1 (en) 2017-08-23
CN105144187A (zh) 2015-12-09
AU2014213584B2 (en) 2018-01-18
US9654487B2 (en) 2017-05-16
EP2954453A4 (en) 2016-01-20
US10110619B2 (en) 2018-10-23
US20150150131A1 (en) 2015-05-28
EP3264313B1 (en) 2019-06-12
JP6176868B2 (ja) 2017-08-09
WO2014122662A1 (en) 2014-08-14
US20160217285A1 (en) 2016-07-28
US20160173515A1 (en) 2016-06-16
EP3264313A1 (en) 2018-01-03
US9769188B2 (en) 2017-09-19

Similar Documents

Publication Publication Date Title
KR101880796B1 (ko) 예측보안 제품을 제공하고 기존의 보안제품을 평가하는 방법과 장치
Shibahara et al. Efficient dynamic malware analysis based on network behavior using deep learning
US20110041179A1 (en) Malware detection
Neugschwandtner et al. Forecast: skimming off the malware cream
JP2016507115A5 (ko)
Omar Machine learning for cybersecurity: Innovative deep learning solutions
Kaur et al. A hybrid real-time zero-day attack detection and analysis system
AU2022215147B2 (en) Machine learning methods and systems for determining file risk using content disarm and reconstruction analysis
Amarasinghe et al. AI based cyber threats and vulnerability detection, prevention and prediction system
Yusoff et al. Optimizing decision tree in malware classification system by using genetic algorithm
Makiou et al. Hybrid approach to detect SQLi attacks and evasion techniques
Singh et al. RETRACTED: A hybrid layered architecture for detection and analysis of network based Zero-day attack
Masud et al. A data mining technique to detect remote exploits
Bendiab et al. Malware detection and mitigation
Veini Detection techniques of common malware features: a systematic review
Kumar et al. Methodology for Safeguarding Cloud Server from Web Application Attacks
Sharma Detecting worm mutations using machine learning
Omar Machine Learning for Cybersecurity
Miaoulis et al. USING VISUAL ANALYTICS FOR WEB INTRUSION DETECTION.

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant