KR20140142806A - 바이너리 정보의 시각화를 이용한 악성 코드 분석 및 변종 탐지 방법, 그 방법을 수행하는 장치 - Google Patents

바이너리 정보의 시각화를 이용한 악성 코드 분석 및 변종 탐지 방법, 그 방법을 수행하는 장치 Download PDF

Info

Publication number
KR20140142806A
KR20140142806A KR1020130064244A KR20130064244A KR20140142806A KR 20140142806 A KR20140142806 A KR 20140142806A KR 1020130064244 A KR1020130064244 A KR 1020130064244A KR 20130064244 A KR20130064244 A KR 20130064244A KR 20140142806 A KR20140142806 A KR 20140142806A
Authority
KR
South Korea
Prior art keywords
image matrix
malicious code
generating
binary
assembly
Prior art date
Application number
KR1020130064244A
Other languages
English (en)
Other versions
KR101558652B1 (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 한양대학교 산학협력단
Priority to KR1020130064244A priority Critical patent/KR101558652B1/ko
Publication of KR20140142806A publication Critical patent/KR20140142806A/ko
Application granted granted Critical
Publication of KR101558652B1 publication Critical patent/KR101558652B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 악성 코드의 바이너리 정보를 추출하고 시각화함으로써 악성 코드의 특징을 분석하여 변종을 탐지하고 분류하는 방법에 관한 것이다. 본 발명은 바이너리 파일을 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 추출하는 단계; 상기 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성하는 단계; 상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 단계; 상기 이미지 매트릭스의 유사도를 계산하는 단계; 상기 계산된 유사도에 기초하여 악성 코드 바이너리의 변종 관계를 판단하는 단계를 포함한다.

Description

바이너리 정보의 시각화를 이용한 악성 코드 분석 및 변종 탐지 방법, 그 방법을 수행하는 장치{MALWARE ANALYSIS AND VARIANTS DETECTION METHODS USING VISUALIZATION OF BINARY INFORMATION, APPARATUS FOR PROCESSING THE SAME METHOD}
본 발명은 악성 코드의 특징을 분석하여 변종을 탐지하고 분류하는 장치 및 방법에 관한 것이다.
악성 코드 제작자는 마이너 업데이트 및 탐지 회피 기법을 적용하여 제작한 수많은 악성 코드 변종들을 대량으로 유포시키기 때문에 모든 악성 코드 샘플들을 분석하기에는 어려움이 존재한다. 그리고 시그니처 기반의 탐지 방법을 통해 악성 코드 패밀리의 수많은 변종을 탐지하기 위해서는 각각의 악성 코드 변종 샘플들로부터 추출한 시그니처가 필요하기 때문에 악성 코드 시그니처의 수는 계속 증가할 수밖에 없다. 또한 악성 코드 변종들에 대한 다양한 탐지 우회 기법들이 적용될 경우 이러한 시그니처 기반의 탐지 방식을 회피할 수 있게 된다.
한국공개특허 제2012-0093564호는 벡터량 산출을 이용한 악성 코드의 분류 및 진단 방법과 장치에 관한 것으로, 동일 유형의 실행파일 및 악성 코드를 효율적으로 진단 및 분류하여 시그니처 자원을 효과적으로 관리하는 것을 제안하고 있다. 하지만 최근 악성 코드 제작자들은 대량의 악성 코드를 빠르게 제작하고 유포시키기 위한 수단으로 기존 악성 코드의 모듈을 수정하거나 재사용하고 있다. 이러한 방법으로 제작된 악성 코드 변종들은 바이너리의 전체적인 구성이나 파일의 크기는 변경되더라도, 악성 행위를 위한 특징은 악성 코드 바이너리 내에 존재하기 때문에 유사성을 가지게 되며, 해당 악성 코드 변종들이 모여 그룹을 이루거나 패밀리를 형성한다.
본 발명은 악성 코드 분석을 통해 보다 효율적으로 악성 코드가 가진 특징을 시각적인 결과물인 이미지 매트릭스로 추출하고, 이미지 매트릭스들 사이의 유사도를 계산함으로써 악성 코드 변종을 신속하게 탐지하기 위한 기술을 제공한다.
본 발명의 일실시예에 따른 악성 코드를 탐지하는 방법에 있어서, 제1 악성 코드 바이너리로부터 제1 이미지 매트릭스를 생성하는 단계; 제2 악성 코드 바이너리로부터 제2 이미지 매트릭스를 생성하는 단계; 상기 제1 이미지 매트릭스 및 상기 제2 이미지 매트릭스의 유사도를 계산하는 단계; 및 상기 계산된 유사도에 기초하여 상기 제1 악성 코드 바이너리 및 상기 제2 악성 코드 바이너리의 변종 관계를 판단하는 단계를 포함하는 악성 코드를 탐지하는 방법을 제공한다.
일측에 따르면, 상기 제1 이미지 매트릭스 및 상기 제2 이미지 매트릭스의 유사도를 계산하는 단계는, 상기 제1 이미지 매트릭스를 n개(n은 2 이상의 정수)의 영역으로 분할하는 단계; 상기 제2 이미지 매트릭스를 n개(n은 2 이상의 정수)의 영역으로 분할하는 단계; 상기 제1 이미지 매트릭스에서 m개(m은 2 이상이고 n보다 작거나 같은 정수)의 영역을 선택하는 단계; 상기 제2 이미지 매트릭스에서 m개(m은 2 이상이고 n보다 작거나 같은 정수)의 영역을 선택하는 단계; 및 상기 제1 이미지 매트릭스에서 선택된 m개의 영역 및 상기 제2 이미지 매트릭스에서 선택된 m개의 영역을 비교함으로써, 상기 제1 이미지 매트릭스 및 상기 제2 이미지 매트릭스의 상기 유사도를 계산하는 단계를 포함하는 악성 코드를 탐지하는 방법을 제공한다.
또 다른 일측에 따르면, 상기 제1 악성 코드 바이너리로부터 제1 이미지 매트릭스를 생성하는 단계는, 상기 제1 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성하는 단계; 상기 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성하는 단계; 및 상기 연산 명령어 집합을 이용하여 상기 제1 이미지 매트릭스를 생성하는 단계를 포함하는 악성 코드를 탐지하는 방법을 제공한다.
또 다른 일측에 따르면, 상기 연산 명령어 집합을 이용하여 제1 이미지 매트릭스를 생성하는 단계는, 상기 연산 명령어 집합에 SimHash 함수를 적용함으로써 픽셀의 좌표를 획득하는 단계; 상기 연산 명령어 집합에 djb2 함수를 적용함으로써 상기 픽셀의 칼라를 획득하는 단계를 포함하는 악성 코드 탐지 방법을 제공한다.
본 발명의 일실시예에 따른 악성 코드를 탐지하는 방법에 있어서, 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성하는 단계; 상기 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성하는 단계; 및 상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 단계를 포함하는 악성 코드를 탐지하는 방법을 제공한다.
일측에 따르면, 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성하는 단계는, 상기 악성 코드 바이너리를 디스어셈블하여 상기 어셈블리 코드를 생성하는 단계; 및 상기 어셈블리 코드를 분할하여 상기 복수의 어셈블리 코드 블록을 생성하는 단계를 포함하는 악성 코드 탐지 방법을 제공한다.
또 다른 일측에 따르면, 상기 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성하는 단계는, 상기 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 길이 N(N은 1 이상의 정수)의 문자열로 변환하는 단계; 및 상기 길이 N의 문자열로 변환된 각각의 명령어를 이어 붙임(concatenating)으로써, 상기 연산 명령어 집합을 생성하는 단계를 포함하는 악성 코드 탐지 방법을 제공한다.
또 다른 일측에 따르면, 상기 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 길이 N의 문자열로 변환하는 단계는, 상기 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 최초 3개 문자만을 포함하는 문자열로 변환하는 단계를 포함하는 악성 코드 탐지 방법을 제공한다.
또 다른 일측에 따르면, 상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 단계는, 상기 연산 명령어 집합에 해쉬 함수를 적용함으로써, 픽셀의 좌표 및 칼라를 획득하는 단계를 포함하는 악성 코드 탐지 방법을 제공한다.
또 다른 일측에 따르면, 상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 단계는, 상기 연산 명령어 집합에 SimHash 함수를 적용함으로써, 상기 픽셀의 좌표를 획득하는 단계를 포함하는 악성 코드 탐지 방법을 제공한다.
또 다른 일측에 따르면, 상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 단계는, 상기 연산 명령어 집합에 djb2 함수를 적용함으로써, 상기 픽셀의 칼라를 획득하는 단계를 포함하는 악성 코드 탐지 방법을 제공한다.
또 다른 일측에 따르면, 상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 단계는, 상기 연산 명령어 집합으로부터 생성된 제1 픽셀의 좌표가 다른 연산 명령어 집합으로부터 생성된 제2 픽셀의 좌표와 일치하는 경우, 상기 연산 명령어 집합으로부터 생성된 제1 픽셀의 칼라 및 상기 다른 연산 명령어 집합으로부터 생성된 제2 픽셀의 칼라를 합산하여 상기 좌표의 칼라로 결정하는 단계를 포함하는 악성 코드 탐지 방법을 제공한다.
또 다른 일측에 따르면, 상기 이미지 매트릭스의 크기는 상기 악성 코드 바이너리의 크기에 따라 결정되는 악성 코드 탐지 방법을 제공한다.
본 발명의 일실시예에 따른 악성 코드를 탐지하는 장치에 있어서, 제1 악성 코드 바이너리로부터 제1 이미지 매트릭스를 생성하는 제1 이미지 매트릭스 생성부; 제2 악성 코드 바이너리로부터 제2 이미지 매트릭스를 생성하는 제2 이미지 매트릭스 생성부; 및 상기 제1 이미지 매트릭스 및 상기 제2 이미지 매트릭스의 유사도를 계산하는 유사도 계산부; 상기 계산된 유사도에 기초하여 상기 제1 악성 코드 바이너리 및 상기 제2 악성 코드 바이너리의 변종 관계를 판단하는 판단부를 포함하는 악성 코드를 탐지하는 장치를 제공한다.
일측에 따르면, 상기 유사도 계산부는, 상기 제1 이미지 매트릭스를 n개(n은 2 이상의 정수)의 영역으로 분할하여 상기 제1 이미지 매트릭스에서 m개(m은 2 이상이고 n보다 작거나 같은 정수)의 영역을 선택하고, 상기 제2 이미지 매트릭스를 n개(n은 2 이상의 정수)의 영역으로 분할하여 상기 제2 이미지 매트릭스에서 m개(m은 2 이상이고 n보다 작거나 같은 정수)의 영역을 선택하는 것을 포함하고, 상기 제1 이미지 매트릭스에서 선택된 m개의 영역 및 상기 제2 이미지 매트릭스에서 선택된 m개의 영역을 비교함으로써, 상기 제1 이미지 매트릭스 및 상기 제2 이미지 매트릭스의 상기 유사도를 계산하는 악성 코드를 탐지하는 장치를 제공한다.
또 다른 일측에 따르면, 상기 제1 이미지 매트릭스 생성부는, 상기 제1 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록으로 변환하고, 상기 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 추출하고, 상기 연산 명령어 집합을 이용하여 상기 제1 이미지 매트릭스를 생성하는 악성 코드를 탐지하는 장치를 제공한다.
본 발명의 일실시예에 따르면, 악성 코드를 탐지하는 장치에 있어서, 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성하는 어셈블리 코드부; 상기 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성하는 연산 명령어 집합부; 및 상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 이미지 매트릭스 생성부를 포함하는 악성 코드를 탐지하는 장치를 제공한다
일측에 따르면, 상기 연산 명령어 집합부는 상기 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 길이 N(N은 1 이상의 정수)의 문자열로 변환하고, 상기 길이 N의 문자열로 변환된 각각의 명령어를 이어 붙임(concatenating)으로써, 상기 연산 명령어 집합을 생성하는 악성 코드 탐지 장치를 제공한다.
또 다른 일측에 따르면, 상기 이미지 매트릭스 생성부는 상기 연산 명령어 집합으로부터 생성된 제1 픽셀의 좌표가 다른 연산 명령어 집합으로부터 생성된 제2 픽셀의 좌표와 일치하는 경우, 상기 연산 명령어 집합으로부터 생성된 제1 픽셀의 칼라 및 상기 다른 연산 명령어 집합으로부터 생성된 제2 픽셀의 칼라를 합산하여 상기 좌표의 칼라로 결정하는 악성 코드 탐지 장치를 제공한다.
본 발명은 악성 코드의 바이너리 정보에 대한 시각화를 통해 이미지 매트릭스를 생성하여 분석하고, 이미지 매트릭스의 선택적 영역에 대한 유사도를 계산함으로써 악성 코드 변종 탐지 및 분류에 소요되는 시간을 단축할 수 있다.
도 1은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 악성 코드 바이너리로부터 악성 코드를 탐지하는 방법을 나타낸 흐름도이다.
도 2는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 유사도를 계산하는 방법을 나타낸 흐름도이다.
도 3은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 제1 악성 코드 바이너리로부터 이미지 매트릭스를 생성하는 방법을 나타낸 흐름도이다.
도 4는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스의 좌표 정보와 RGB 칼라의 픽셀을 생성하는 과정을 나타낸 흐름도이다.
도 5는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 악성 코드 바이너리로부터 이미지 매트릭스를 생성하는 방법을 나타낸 흐름도이다.
도 6은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 어셈블리 코드 블록을 생성하는 방법을 나타낸 흐름도이다.
도 7은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 연산 명령어 집합을 생성하는 방법을 나타낸 흐름도이다.
도 8은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 연산 명령어집합을 이용하여 이미지 매트릭스를 생성하는 방법을 나타낸 흐름도이다.
도 9는 본 발명의 일실시예에 따른 악성 코드 탐지 장치의 구성을 나타낸 블록이다.
도 10은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스를 생성하는 악성 코드 탐지 장치의 구성을 나타낸 블록도이다.
도 11은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 연산 명령어 집합을 나타낸 도면이다.
도 12는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 바이너리 정보의 이미지 매트릭스 변환 과정을 나타낸 도면이다.
도 13은 본 발명의 일실시예에 따른 악성 코드 장치에서 이미지 매트릭스에 기록되는 픽셀을 나타낸 도면이다.
도 14는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스에서 중첩 픽셀을 기록한 것을 나타낸 도면이다.
도 15-a는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스를 n개의 영역으로 분할한 것을 나타낸 도면이다.
도 15-b는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스를 m개의 영역으로 선택한 것을 나타낸 도면이다.
도 16은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스의 생성 결과를 나타낸 예이다.
도 17은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 유사도 계산의 결과를 나타낸 그래프이다.
이하, 본 발명에 따른 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 악성 코드 바이너리로부터 악성 코드를 탐지하는 방법을 나타낸 흐름도이다.
악성 코드를 탐지하는 방법은 악성 코드 탐지 장치에 의해서 수행될 수 있고, 따라서 악성 코드 탐지 장치에 대한 자세한 설명은 도 9 및 도 10에서 설명하기로 한다.
단계(110)에서 악성 코드 탐지 장치는 제1 악성 코드 바이너리로부터 제1 이미지 매트릭스를 생성한다. 이때, 바이너리 정보를 통해 이미지 매트릭스의 좌표 정보와 RGB 칼라의 픽셀 정보로 변환한다. 또한, 이미지 매트릭스의 크기를 가로, 세로 각각 2n 픽셀로 초기화 한다. 여기서 n은 비트 수를 의미하며, 본 발명에서는 n을 최소8로 설정하여 256*256 픽셀 크기의 이미지 매트릭스로 초기화 한다. 만약, 이미지 매트릭스의 크기가 충분하지 않다면 바이너리 정보를 이용한 좌표 정의 시 충돌이 발생할 가능성이 증가할 수 있다.
단계(120)에서 악성 코드 탐지 장치는 제2 악성 코드 바이너리로부터 제2 이미지 매트릭스를 생성한다. 이때, 바이너리 정보를 통해 이미지 매트릭스의 좌표 정보와 RGB 칼라의 픽셀 정보로 변환한다. 또한, 이미지 매트릭스의 크기를 가로, 세로 각각 2n 픽셀로 초기화 한다. 여기서 n은 비트 수를 의미하며, 본 발명에서는 n을 최소8로 설정하여 256*256 픽셀 크기의 이미지 매트릭스로 초기화 한다. 만약, 이미지 매트릭스의 크기가 충분하지 않다면 바이너리 정보를 이용한 좌표 정의 시 충돌이 발생할 가능성이 증가할 수 있다.
단계(130)에서 악성 코드 탐지 장치는 제1 이미지 매트릭스 및 제2 이미지 매트릭스의 유사도를 계산한다. 이때, 선택적 영역 매칭을 통한 유사도 계산을 수행하기 위해서는 제1 이미지 매트릭스 및 제2 이미지 매트릭스를 n개의 영역으로 분할해야 한다. n의 값은 각각 4, 16, 64로 설정할 수 있으며, 각 n의 값에 따라 영역이 분할된 이미지 매트릭스는 도 15-a와 같이 나타낼 수 있다. 이후, 비교할 이미지 매트릭스에서 m개의 영역을 랜덤하게 선택하는데, m의 값은 2이상의 정수가 되어야 하고 영역을 랜덤하게 선택하는 것은 도 15-b와 같이 나타낼 수 있다. 이때, 비교할 이미지 매트릭스는 제1 이미지 매트릭스 또는 제2 이미지 매트릭스일 수 있다. 이때, n개의 영역으로 분할한 제1 이미지 매트릭스 및 제2 이미지 매트릭스는 선택된 각 영역에서 일치하는 픽셀들을 찾아 유사도 계산에 이용할 수 있다.
단계(140)에서 악성 코드 탐지 장치는 계산된 유사도에 기초하여 제1 악성 코드 바이너리 및 제2 악성 코드 바이너리의 변종 관계를 판단한다. 이때, 단계(130)에서 악성 코드 탐지 장치는 m개 영역에 대한 유사도를 계산하여 특정 임계값 이상일 경우, 이미지 매트릭스의 바이너리들은 변종 관계로 판단할 수 있다.
본 발명은 악성 코드의 바이너리 정보에 대한 시각화를 통해 이미지 매트릭스를 생성하여 분석하고, 이미지 매트릭스의 선택적 영역에 대한 유사도를 계산함으로써 악성 코드 변종 탐지 및 분류에 소요되는 시간을 단축할 수 있다.
도 2는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 유사도를 계산하는 방법을 나타낸 흐름도이다.
유사도를 계산하는 방법은 악성 코드 탐지 장치에 의해서 수행될 수 있고, 도 15-a, 도15-b와 같이 나타낼 수 있다.
단계(210)에서 악성 코드 탐지 장치는 제1 이미지 매트릭스를 n개(n은 2이상의 정수)의 영역으로 분할한다. 이때, n의 값은 4, 16, 64로 설정할 수 있으며, 각 n의 값에 따라 영역이 분할된 제1 이미지 매트릭스는 도 15-a와 같이 나타낼 수 있다.
단계(220)에서 악성 코드 탐지 장치는 제2 이미지 매트릭스를 n개(n은 2이상의 정수)의 영역으로 분할한다. 이때, n의 값은 4, 16, 64로 설정할 수 있으며, 각 n의 값에 따라 영역이 분할된 제2 이미지 매트릭스는 도 15-a와 같이 나타낼 수 있다.
단계(230)에서 악성 코드 탐지 장치는 제1 이미지 매트릭스에서 m개(m은 2이상이고 n보다 작거나 같은 정수)의 영역을 선택한다. 비교할 제1 이미지 매트릭스에서 m개의 영역을 랜덤하게 선택하는데, 도15-b와 같이 제1 이미지 매트릭스를 16개(n=16)의 영역으로 분할하고, 4개(m=4)의 영역을 랜덤하게 선택할 수 있다.
단계(240)에서 악성 코드 탐지 장치는 제2 이미지 매트릭스에서 m개(m은 2이상이고 n보다 작거나 같은 정수)의 영역을 선택한다. 비교할 제2 이미지 매트릭스에서 m개의 영역을 랜덤하게 선택하는데, 도15-b와 같이 제2 이미지 매트릭스를 16개(n=16)의 영역으로 분할하고, 4개(m=4)의 영역을 랜덤하게 선택할 수 있다.
단계(250)에서 악성 코드 탐지 장치는 제1 이미지 매트릭스 및 제2 이미지 매트릭스의 유사도를 계산한다. 이때, 악성 코드 탐지 장치는 제1 이미지 매트릭스에서 선택된 m개의 영역 및 제2 이미지 매트릭스에서 선택된 m개의 영역을 비교함으로써, 유사도를 계산한다.
본 발명은 이미지 매트릭스에서 선택된 각 영역에서 일치하는 픽셀들을 찾아 유사도 계산에 이용하고, 특정 영역에 대한 유사도를 계산하여 특정 임계값 이상일 경우 이미지 매트릭스의 바이너리들은 변종 관계로 판단할 수 있다.
또한, 본 발명은 악성 코드의 바이너리 정보에 대한 시각화를 통해 이미지 매트릭스를 생성하여 분석하고, 이미지 매트릭스의 선택적 영역에 대한 유사도를 계산함으로써 악성 코드 변종 탐지 및 분류에 소요되는 시간을 단축할 수 있다.
도 3은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 제1 악성 코드 바이너리로부터 이미지 매트릭스를 생성하는 방법을 나타낸 흐름도이다.
악성 코드 바이너리로부터 이미지 매트릭스를 생성하는 방법은 악성 코드 탐지 장치에 의해서 수행될 수 있고, 도 11의 연산 명령어 집합을 나타낸 도면 및 도 12의 이미지 매트릭스 변환 과정을 참고할 수 있다.
단계(310)에서 악성 코드 탐지 장치는 제1 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성한다. 이때, 디스어셈블은 정적 분석에서 사용되는 하나의 과정으로, 프로그램의 소스 코드가 존재하지 않을 경우 프로그램의 구성 요소와 관계를 분석하기 위해 어셈블리 언어의 코드로 변환하는 방법으로, 본 발명에서는 데이터 가공을 위해 OllyDbg에서 제공하는 오픈 소스 디스어셈블러를 수정하여 사용하였으며, 이 디스어셈블러를 이용하여 바이너리 파일로부터 각각의 블록으로 분할된 어셈블리 코드를 추출한다.
단계(320)에서 악성 코드 탐지 장치는 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성한다. 추출된 어셈블리 코드 중에서도 본 발명에서 바이너리 정보로 사용하는 요소는 도 11에 나타낸 바와 같이 각 블록에 포함된 연산 명령어 집합이다. 이때, 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 최초 3개의 문자만을 포함하는 하나의 문자열로 변환할 수 있다.
단계(330)에서 악성 코드 탐지 장치는 연산 명령어 집합을 이용하여 제1 이미지 매트릭스를 생성한다. 이때, 이미지 매트릭스의 크기를 가로, 세로 각각 2n 픽셀로 초기화 한다. 여기서 n은 비트 수를 의미하며, 본 발명에서는 n을 8로 설정하여 256*256 픽셀 크기의 이미지 매트릭스로 초기화 한다. 만약, 이미지 매트릭스의 크기가 충분하지 않다면 바이너리 정보를 이용한 좌표 정의 시 충돌이 발생할 가능성이 증가할 수 있다.
도 4는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스의 좌표 정보와 RGB 칼라의 픽셀을 생성하는 과정을 나타낸 흐름도이다.
도 4에서 연산 명령어 집합을 이용하여 제1 이미지 매트릭스를 생성하는 방법은 악성 코드 탐지 장치에 의해서 수행될 수 있다.
단계(410)에서 악성 코드 탐지 장치는 연산 명령어 집합에 SimHash 함수를 적용함으로써 픽셀의 좌표를 획득한다. 악성 코드 탐지 장치는 바이너리 샘플에서 추출하여 바이너리 정보로 사용되는 연산 명령어 집합을 기반으로 SimHash 함수를 통해 RGB 칼라의 픽셀을 기록할 이미지 매트릭스 (x, y) 좌표를 계산한다. 이때, 계산되는 좌표 값의 최대값은 이미지 매트릭스의 크기 초기 설정에 따라 달라진다. 이미지 매트릭스의 좌표를 정의하기 위해 사용되는 SimHash 함수는 입력값이 유사하면 출력값도 역시 유사하다는 특징을 가진다. 따라서 유사한 연산 명령어 집합이 유사한 블록을 입력으로 받으면, 이미지 매트릭스의 유사한 좌표값을 출력한다.
단계(420)에서 악성 코드 탐지 장치는 연산 명령어 집합에 djb2 함수를 적용함으로써 픽셀의 칼라를 획득한다. 악성 코드 탐지 장치는 djb2 함수를 통해 빨간색, 초록색, 파란색의 조합을 표현하기 위한 총 24비트의 RGB 칼라 값으로 계산한다. RGB 칼라를 정의하는 djb2 함수는 충돌이 발생할 확률이 낮고 분포도가 높기 때문에, 연산 명령어 집합이 전혀 다른 블록임에도 불구하고 같은 색으로 표현될 확률을 최소화할 수 있다.
이미지 매트릭스의 좌표와 RGB 칼라를 획득한 후에는 실제로 이미지 매트릭스에 픽셀을 기록하는데, 이때 보다 편리한 시각적 분석을 위하여 정의된 좌표를 기준으로 주위의 픽셀을 함께 기록한다. 즉, 도 13과 같이 하나의 블록에 포함된 연산 명령어 집합을 통해 계산된 (x, y) 좌표를 중심으로 주변의 1픽셀씩, (x-1, y-1)부터 (x+1, y+1)까지 총 9개의 픽셀을 기록할 수 있다.
도 5는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 악성 코드 바이너리로부터 악성 코드를 탐지하는 방법을 나타낸 흐름도이다.
악성 코드를 탐지하는 방법은 악성 코드 탐지 장치에 의해서 수행될 수 있다.
단계(510)에서 악성 코드 탐지 장치는 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성한다. 디스어셈블은 정적 분석에서 사용되는 하나의 과정으로, 프로그램의 소스 코드가 존재하지 않을 경우 프로그램의 구성 요소와 관계를 분석하기 위해 어셈블리 언어의 코드로 변환하는 방법이다.
단계(520)에서 악성 코드 탐지 장치는 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성한다. 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각의 길이 N(N은 1이상의 정수)의 문자열로 변환하고, 길이 N의 문자열로 변환된 각각의 명령어를 이어 붙임으로써, 연산 명령어 집합을 생성한다. 이때, 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 최초 3개 문자만을 포함하는 문자열로 변환한다. 연산 명령어 집합은 도11과 같이 나타낼 수 있다.
단계(530)에서 악성 코드 탐지 장치는 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성한다. 이때, 악성 코드 탐지 장치는 연산 명령어 집합에 해쉬 함수를 적용함으로써, 픽셀의 좌표 및 칼라를 획득한다. SimHash 함수를 적용하여 픽셀의 좌표를 획득하고, djb2 함수를 적용하여 픽셀의 칼라를 획득한다.
도 6은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 어셈블리 코드 블록을 생성하는 방법을 나타낸 흐름도이다.
어셈블리 코드 블록을 생성하는 방법은 악성 코드 탐지 장치에 의해서 수행될 수 있으며, 도 6은 악성 코드 탐지 장치에서 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성하는 과정을 나타낸 것이다.
단계(610)에서 악성 코드 탐지 장치는 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드를 생성한다. 본 발명에서는 데이터 가공을 위해 OllyDbg에서 제공하는 오픈 소스 디스어셈블러를 수정하여 사용하였으나, 상황에 맞게 여러 가지 종류의 디스어셈블러를 선택하여 사용할 수 있다.
단계(620)에서 악성 코드 탐지 장치는 어셈블리 코드를 분할하여 복수의 어셈블리 코드 블록을 생성한다. 바이너리 파일로부터 각각의 블록으로 분할된 어셈블리 코드 블록을 추출한다.
도 7은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 연산 명령어 집합을 생성하는 방법을 나타낸 흐름도이다.
연산 명령어 집합을 생성하는 방법은 악성 코드 탐지 장치에 의해서 수행될 수 있고, 바이너리 정보로 사용되는 연산 명령어를 도 11과 같이 나타낼 수 있다.
단계(710)에서 악성 코드 탐지 장치는 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 길이 N(N은 1이상의 정수)의 문자열로 변환한다.
단계(720)에서 악성 코드 탐지 장치는 길이 N의 문자열로 변환된 각각의 명령어를 이어 붙임으로써 연산 명령어 집합을 생성한다. 이때, 복수의 어셈블리 코드 블록이 각각에 포함된 복수의 명령어의 각각을 최초 3개 문자만을 포함하는 문자열로 변환한다.
본 발명의 악성 코드 탐지 장치는 개별 연산 명령어들을 이어 붙임으로써 이미지 매트릭스 생성 시 RGB 칼라의 각 픽셀로 기록하기 위해 사용된다.
도 8은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 연산 명령어집합을 이용하여 이미지 매트릭스를 생성하는 방법을 나타낸 흐름도이다.
연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 방법은 악성 코드 탐지 장치에 의해서 수행될 수 있고, 도 12와 같이 나타낼 수 있다.
단계(810)에서 악성 코드 탐지 장치는 연산 명령어 집합에 해쉬 함수를 적용함으로써, 픽셀의 좌표 및 칼라를 획득한다. 바이너리 정보를 이미지 매트릭스의 픽셀로 기록하기 위해서는 SimHash 함수와 djb2 함수를 통해 각각 변환된 정보를 추출한다.
단계(820)에서 악성 코드 탐지 장치는 연산 명령어 집합에 SimHash 함수를 적용함으로써, 픽셀의 좌표를 획득한다. 추출된 연산 명령어 집합을 기반으로 SimHash 함수를 통해 RGB칼라의 픽셀을 기록할 이미지 매트릭스의 (x, y) 좌표를 계산한다.
단계(830)에서 악성 코드 탐지 장치는 연산 명령어 집합에 djb2 함수를 적용함으로써, 픽셀의 칼라를 획득한다. 추출된 연산 명령어 집합을 기반으로 djb2 함수를 통해 빨간색, 초록색, 파란색의 조합을 표현하기 위해 총 24비트의 RGB 칼라 값으로 계산한다. RGB 칼라를 정의하는 djb2 함수는 충돌이 발생할 확률이 낮고 분포도가 높기 때문에 연산 명령어 집합이 전혀 다른 블록임에도 불구하고 같은 색으로 표현될 확률을 최소화할 수 있다.
단계(840)에서 악성 코드 탐지 장치는 연산 명령어 집합으로부터 생성된 제1 픽셀의 좌표가 다른 연산 명령어 집합으로부터 생성된 제2 픽셀의 좌표와 일치하는지 확인한다. 이때, 악성 코드 탐지 장치가 연산 명령어 집합으로부터 생성된 제1 픽셀의 좌표가 다른 연산 명령어 집합으로부터 생성된 제2 픽셀의 좌표와 일치한다면 단계(850)의 제1 픽셀의 칼라 및 제2 픽셀의 칼라를 합산하여 좌표의 칼라로 결정한다.
단계(850)에서 악성 코드 탐지 장치는 연산 명령어 집합으로부터 생성된 제1 픽셀의 칼라 및 다른 연산 명령어 집합으로부터 생성된 제2 픽셀의 칼라를 합산하여 좌표의 칼라로 결정한다.
본 발명의 악성 코드 탐지 장치는 악성 코드에 포함된 바이너리 정보에 대한 시각적인 이미지 생성을 통한 분석이 가능하다.
또한 본 발명의 악성 코드 탐지 장치는 새로 수집된 악성 코드에 대한 이미지 매트릭스와 기존 분석된 악성 코드의 이미지 매트릭스의 비교가 가능하다.
또한, 본 발명의 악성 코드 탐지 장치는 기존의 악성 코드에 대한 시각적 결과물인 이미지 매트릭스를 통해 1차적으로 분석가가 유사 여부를 판단할 수 있으며, 2차적으로는 자동화된 프로그램을 이용함으로써 자동으로 유사 여부를 수치적으로 계산하여 악성 코드 탐지 및 분류가 가능하다.
또한, 이미지 매트릭스를 통해 악성 코드 변종을 빠르게 식별하고 분류할 수 있기 때문에 악성 코드를 분석하고 탐지에 요구되는 시간 및 비용 절감의 효과를 기대할 수 있다.
도 9는 본 발명의 일실시예에 따른 악성 코드 탐지 장치의 구성을 나타낸 블록이다.
악성 코드 탐지 장치(900)는 제1 이미지 매트릭스 생성부(910), 제2 이미지 매트릭스 생성부(920), 유사도 계산부(930), 판단부(940)로 구성될 수 있다.
제1 이미지 매트릭스 생성부(910)는 제1 악성 코드 바이너리로부터 제1 이미지 매트릭스를 생성한다. 더욱 상세히 설명하면, 제1 이미지 매트릭스 생성부(910)는 제1 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 변환하고, 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 추출한 후, 연산 명령어 집합을 이용하여 제1 이미지 매트릭스를 생성한다. 또한, 제1 이미지 매트릭스 생성부(910)는 연산 명령어 집합에 SimHash 함수를 적용함으로써 픽셀의 좌표를 획득하고, 연산 명령어 집합에 djb2 함수를 적용함으로써 픽셀의 칼라를 획득할 수 있다.
제2 이미지 매트릭스 생성부(920)는 제2 악성 코드 바이너리로부터 제2 이미지 매트릭스를 생성한다. 제1 이미지 매트릭스 생성부(910)에서 설명한 것과 마찬가지로, 제2 이미지 매트릭스 생성부(920)는 제2 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성하고, 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성한 후, 연산 명령어 집합을 이용하여 제2 이미지 매트릭스를 생성한다. 또한, 제2 이미지 매트릭스 생성부(920)는 연산 명령어 집합에 SimHash 함수를 적용함으로써 픽셀의 좌표를 획득하고, 연산 명령어 집합에 djb2 함수를 적용함으로써 픽셀의 칼라를 획득할 수 있다.
유사도 계산부(930)는 제1 이미지 매트릭스 및 제2 이미지 매트릭스의 유사도를 계산한다. 유사도 계산부(930)는 제1 이미지 매트릭스를 n개(n은 2이상의 정수)의 영역으로 분할하고, 제1 이미지 매트릭스에서 m개(m은 2이상이고 n보다 작거나 같은 정수)의 영역을 선택한다. 또한 마찬가지로, 유사도 계산부(930)는 제2 이미지 매트릭스를 n개(n은 2이상의 정수)의 영역으로 분할하고, 제2 이미지 매트릭스에서 m(m은 2이상이고 n보다 작거나 같은 정수)의 영역을 선택한다. 제1 이미지 매트릭스에서 선택된 m개의 영역 및 제2 이미지 매트릭스에서 선택된 m개의 영역을 비교함으로써, 제1 이미지 매트릭스 및 제2 이미지 매트릭스의 유사도를 계산한다. 악성 코드 탐지 장치는 유사도 계산부(930)를 통해 영역이 분할되고, 영역이 선택되는 예를 도 15-a, 15-b와 같이 나타낼 수 있고, 도 15에서 상세히 설명하기로 한다.
판단부(940)는 계산된 유사도에 기초하여 제1 악성 코드 바이너리 및 제2 악성 코드 바이너리의 변종 관계를 판단한다. 도 15와 같이 m개 영역에 대한 유사도를 계산하여 특정 임계값 이상일 경우 이미지 매트릭스의 바이너리들은 변종 관계로 판단할 수 있다.
도 10은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스를 생성하는 악성 코드 탐지 장치의 구성을 나타낸 블록도이다.
악성 코드 탐지 장치(1000)는 어셈블리 코드부(1010), 연산 명령어 집합부(1020), 이미지 매트릭스 생성부(1030)으로 구성될 수 있다.
어셈블리 코드부(1010)는 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성한다. 어셈블리 코드부(1010)는 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드를 추출하고, 어셈블리 코드를 분할하여 복수의 어셈블리 코드 블록을 생성한다.
연산 명령어 집합부(1020)는 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성한다. 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어 각각을 길이N(N은 1이상의 정수)의 문자열로 변환하고, 길이 N의 문자열로 변환된 각각의 명령어를 이어 붙임으로써, 연산 명령어 집합을 생성한다. 이때, 연산 명령어 집합부(1020)는 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 최초 3개 문자만을 포함하는 문자열로 변환한다. 악성 코드 탐지 장치의 연산 명령어 집합부(1020)에서 수행한 예를 도 11과 같이 나타낼 수 있다.
이미지 매트릭스 생성부(1030)는 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성한다. 이미지 매트릭스 생성부(1030)는 연산 명령어 집합에 해쉬 함수를 적용함으로써, 픽셀의 좌표 및 칼라를 획득한다. 이때, 이미지 매트릭스 생성부(1030)는 연산 명령어 집합에 SimHash 함수를 적용함으로써 픽셀의 좌표를 획득하고, 연산 명령어 집합에 djb2 함수를 적용함으로써 픽셀의 칼라를 획득한다. 또한, 이미지 매트릭스 생성부(1030)는 연산 명령어 집합으로부터 생성된 제1 픽셀의 좌표가 다른 연산 명령어 집합으로부터 생성된 제2 픽셀의 좌표와 일치하는 경우, 연산 명령어 집합으로부터 생성된 제1 픽셀의 칼라 및 다른 연산 명령어 집합으로부터 생성된 제2 픽셀의 칼라를 합산하여 좌표의 칼라로 결정한다.
도 11은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 연산 명령어 집합을 나타낸 도면이다.
도 11은 악성 코드 탐지 장치에서 바이너리 정보를 추출하기 위해서 어셈블리 코드 블록을 연산 명령어 집합으로 나타낸 도면이다. 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 변환한다. 디스어셈블은 정적 분석에서 사용되는 하나의 과정으로, 프로그램의 소스 코드가 존재하지 않을 경우 프로그램의 구성 요소와 관계를 분석하기 위해 어셈블리 언어의 코드로 변환하는 방법이다. 본 발명에서는 데이터 가공을 위해 OllyDbg에서 제공하는 오픈 소스 디스어셈블러를 수정하여 사용하였으며, 이 디스어셈블러를 이용하여 바이너리 파일로부터 각각의 블록으로 분할된 어셈블리 코드를 추출할 수 있다. 그 후, 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 추출한다. 추출된 어셈블리 코드 중에서도 본 발명에서 바이너리 정보로 사용하는 요소는 도 11에 나타낸 바와 같이 각 블록에 포함된 연산 명령어 집합이다. 이때, 연산 명령어는 3개의 문자만을 사용하고, 각 연산 명령어들을 이어 붙임으로써 하나의 문자열로 생성한 다음 이미지 매트릭스 생성 시 RGB 칼라의 각 픽셀로 기록하기 위해 사용된다.
도 12는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 바이너리 정보의 이미지 매트릭스 변환 과정을 나타낸 도면이다.
도 12는 악성 코드 탐지 장치에서 연산 명령어 집합을 SimHash 함수와 djb2 함수를 통해 이미지 매트릭스에 RGB 칼라의 픽셀을 기록하는 과정을 나타낸 도면이다. 연산 명령어 집합(1210)은 도 11에서 설명한 바와 같이, 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 길이 N(N은 1이상의 정수)의 문자열로 변환하고, 길이 N의 문자열로 변환된 각각의 명령어를 이어 붙임으로써 연산 명령어 집합(1210)을 생성할 수 있다. 본 발명에서 연산 명령어 집합(1210)은 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 최초 3개의 문자만을 포함하는 문자열로 변환한다.
악성 코드 탐지 장치는 연산 명령어 집합에 해쉬 함수를 적용함으로써, 픽셀의 좌표 및 칼라를 획득할 수 있다. 따라서, 악성 코드 탐지 장치는 연산 명령어 집합(1210)에 SimHash(1220) 함수를 적용함으로써, RGB 칼라의 픽셀을 기록할 이미지 매트릭스(1240)의 (x, y) 좌표를 계산할 수 있다. 계산되는 좌표 값의 최대값은 이미지 매트릭스의 크기 초기 설정에 따라 달라진다. 이미지 매트릭스의 좌표를 정의하기 위해 사용되는 SimHash(1220)함수는 입력 값이 유사하면 출력 값도 역시 유사하다는 특징을 가진다. 따라서 유사한 연산 명령어 집합(1210)이 유사한 블록을 입력 받으면, 이미지 매트릭스(1240)의 유사한 좌표 값을 출력한다. 악성 코드 탐지 장치는 연산 명령어 집합(1210)에 djb2(1230)함수를 적용함으로써, 빨간색, 초록색, 파란색의 조합을 표현하기 위한 총 24비트의 RGB칼라 값으로 계산할 수 있다. RGB 칼라를 정의하는 djb2(1230)함수는 충돌이 발생할 확률이 낮고 분포도가 높기 때문에, 연산 명령어 집합(1210)이 전혀 다른 블록임에도 불구하고 같은 색으로 표현될 확률을 최소화할 수 있다.
도 13은 본 발명의 일실시예에 따른 악성 코드 장치에서 이미지 매트릭스에 기록되는 픽셀을 나타낸 도면이다.
도 13은 이미지 매트릭스에 기록되는 9개의 픽셀을 나타낸 도면이다. 각 이미지 매트릭스의 좌표와 RGB칼라가 정의된 후에는 실제로 이미지 매트릭스에 픽셀을 기록하는데, 이때 보다 편리한 시각적 분석을 위하여 정의된 좌표를 기준으로 주위의 픽셀을 함께 기록한다. 단일의 블록에 포함된 연산 명령어 집합을 통해 계산된 (x, y) 좌표를 중심으로 주변의 1픽셀씩, (x-1, y-1)부터 (x+1, y+1)까지 총 9개의 픽셀을 기록한다. 또한, 각 블록의 연산 명령어 집합을 통해 계산된 좌표가 인접하게 되어 중첩되는 픽셀이 발생한 경우, 도 14와 같이 나타낼 수 있다. 따라서, 블록의 연산 명령어 집합을 통해 계산된 좌표가 인접하게 되어 중첩되는 픽셀이 발생할 경우에 대해서는 도 14와 같이 RGB 칼라의 합산 결과를 픽셀로 기록한다. 이에 대한 상세한 설명은 도 14에서 설명하기로 한다.
도 14는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스에서 중첩 픽셀을 기록한 것을 나타낸 도면이다.
각 블록의 연산 명령어 집합을 통해 계산된 좌표가 인접하게 되어 중첩되는 픽셀이 발생한 경우에 대해서는 도 14와 같이 RGB 칼라의 합산 결과를 픽셀로 기록한다. 만약, 칼라 합산의 결과가 한 칼라의 최대값인 255(0xFF)를 초과할 경우, min()에 의해 255로 설정된다. 예를 들면, RGB1은 (255,0,0)이고, RGB2는 (0,176,80)일 때, 중첩된 픽셀의 칼라인 RGB3은 칼라 합산에 의해 (255,176,50)이 된다.
이미지 매트릭스 생성 시 파일의 크기 및 블록의 개수에 따라 이미지 매트릭스에 기록되는 픽셀의 개수가 다르고, 픽셀의 개수가 증가할수록 중첩되는 픽셀이 증가하기 때문에 이미지 매트릭스의 사이즈를 조절하여 분석이 가능하다. 즉, 가로 및 세로 픽셀의 수를 각각 29개로 설정하면, 512*512 픽셀 크기의 이미지 매트릭스를 생성하여 중첩되지 않고 기록할 수 있는 블록의 수가 증가한다. 따라서, 이미지 매트릭스의 크기는 악성 코드 바이너리의 크기에 따라 적응적으로 결정될 수 있다.
도 15-a는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스를 n개의 영역으로 분할한 것을 나타낸 도면이다.
선택적 영역 매칭을 통한 유사도 계산을 수행하기 위해서는 이미지 매트릭스를 n(n은 2이상의 정수)개의 영역으로 분할해야 한다. 이때, n의 값은 각각 4, 16, 64로 설정할 수 있으며, 각 n의 값에 따라 영역이 분할된 이미지 매트릭스는 도 15-a와 같다. 이후, 비교할 이미지 매트릭스에서 m개의 영역을 랜덤하게 선택하는데, 도 15-b와 같이 나타낼 수 있다.
도 15-b는 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스를 m개의 영역으로 선택한 것을 나타낸 도면이다.
비교할 이미지 매트릭스에서 m개의 영역을 랜덤하게 선택한다. 이때, m의 값은 2 이상이고 n보다 작거나 같은 정수가 될 수 있다. 도 15-b와 같이 이미지 매트릭스를 16개(n=16)의 영역으로 분할하고, 4개(m=4)의 영역을 랜덤하게 선택할 수 있다.
도 16은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 이미지 매트릭스의 생성 결과를 나타낸 예이다.
악성 코드 탐지 장치에서 이미지 매트릭스를 생성하는 방법에 대해서는 이미 설명한 바, 도 16에서는 생략하기로 한다.
도 16은 정상적인 바이너리 파일들 및 악성 코드 패밀리의 변종 바이너리 파일들로부터 추출한 이미지 매트릭스들을 나타낸 것으로, 각 바이너리에서 추출된 블록의 개수에 따라 이미지 매트릭스에 기록되는 픽셀의 개수가 다른 것을 확인할 수 있다. 그리고 각 이미지 매트릭스의 동일한 좌표에 픽셀이 기록되더라도, 해당 픽셀의 RGB 칼라 값이 다르기 때문에 이미지 매트릭스들 사이의 유사성을 찾기 어렵다. 그러나 동일한 악성 코드 패밀리로 분류되는 바이너리의 이미지 매트릭스들은 유사한 픽셀들이 다수 발견된다.
본 발명은 악성 코드의 바이너리 정보에 대한 시각화를 통해 이미지 매트릭스를 생성하여 분석하고, 이미지 매트릭스의 선택적 영역에 대한 유사도를 계산함으로써 악성 코드 변종 탐지 및 분류에 소요되는 시간을 단축 할 수 있다.
도 17은 본 발명의 일실시예에 따른 악성 코드 탐지 장치에서 유사도를 계산한 결과를 나타낸 그래프이다.
도 17은 표1의 악성 코드 이미지 매트릭스의 유사도 계산 결과를 바탕으로 그래프로 나타낸 것이다. 표 1은 악성 코드 패밀리의 바이너리 샘플들로부터 추출한 이미지 매트릭스에 대하여 각각의 유사도를 계산한 결과를 나타낸 것이다. 도 17은 각 악성 코드 패밀리의 변종들을 대상으로 평균 유사도를 계산한 결과를 나타낸 것으로, 동일한 악성 코드 패밀리의 변종들로부터 추출한 이미지 매트릭스는 시각적으로 매우 유사하며, 유사도는 평균 0.75 이상으로 계산되었다. 그러나 패밀리 분류가 다른 악성 코드 바이너리의 이미지 매트릭스들에 대한 유사도는 평균 0.24로 계산되었다. 즉, 기존 악성 코드의 이미지 매트릭스들을 대상으로 계산된 유사도의 값이 클수록 해당 악성 코드의 변종을 탐지할 확률이 높다.
Klez Evol
.f .g .j .a .b .c
Klez .f - 0.769 0.754 0.239 0.238 0.240
.g 0.769 - 0.752 0.240 0.240 0.241
.j 0.754 0.752 - 0.240 0.239 0.239
Evol .a 0.239 0.240 0.240 - 0.770 0.755
.b 0.238 0.240 0.239 0.770 - 0.779
.c 0.240 0.241 0.239 0.755 0.779 -
따라서, 본 발명은 악성 코드에 포함된 바이너리 정보에 대한 시각적인 이미지 생성을 통한 분석이 가능하다.
또한, 본 발명은 새로 수집된 악성 코드에 대한 이미지 매트릭스와 기존 분석된 악성 코드의 이미지 매트릭스의 비교가 가능하다.
또한, 본 발명은 악성 코드에 대한 시각적 결과물인 이미지 매트릭스를 통해 1차적으로 분석가가 유사 여부를 판단할 수 있으며, 2차적으로는 자동화된 프로그램을 이용함으로써 자동으로 유사 여부를 수치적으로 계산하여 악성 코드 탐지 및 분류가 가능하다.
또한, 본 발명은 기존의 악성 코드를 구성하는 요소들의 재사용을 통해 악성 코드 변종이 제작되기 때문에 바이너리 정보를 이용하여 생성한 이미지 매트릭스를 통해 효과적으로 악성 코드 변종을 탐지하고 분류할 수 있다.
또한, 본 발명은 이미지 매트릭스를 통해 악성 코드 변종을 빠르게 식별하고 분류할 수 있기 때문에 악성 코드를 분석하고 탐지에 요구되는 시간 및 비용 절감의 효과를 기대할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
1210: 연산 명령어 집합
1220: SimHash 함수
1230: djb2 함수
1240: 이미지 매트릭스

Claims (14)

  1. 악성 코드를 탐지하는 방법에 있어서,
    제1 악성 코드 바이너리로부터 제1 이미지 매트릭스를 생성하는 단계;
    제2 악성 코드 바이너리로부터 제2 이미지 매트릭스를 생성하는 단계;
    상기 제1 이미지 매트릭스 및 상기 제2 이미지 매트릭스의 유사도를 계산하는 단계; 및
    상기 계산된 유사도에 기초하여 상기 제1 악성 코드 바이너리 및 상기 제2 악성 코드 바이너리의 변종 관계를 판단하는 단계
    를 포함하는 악성 코드를 탐지하는 방법.
  2. 제1항에 있어서,
    상기 제1 이미지 매트릭스 및 상기 제2 이미지 매트릭스의 유사도를 계산하는 단계는,
    상기 제1 이미지 매트릭스를 n개(n은 2 이상의 정수)의 영역으로 분할하는 단계;
    상기 제2 이미지 매트릭스를 n개(n은 2 이상의 정수)의 영역으로 분할하는 단계;
    상기 제1 이미지 매트릭스에서 m개(m은 2 이상이고 n보다 작거나 같은 정수)의 영역을 선택하는 단계;
    상기 제2 이미지 매트릭스에서 m개(m은 2 이상이고 n보다 작거나 같은 정수)의 영역을 선택하는 단계; 및
    상기 제1 이미지 매트릭스에서 선택된 m개의 영역 및 상기 제2 이미지 매트릭스에서 선택된 m개의 영역을 비교함으로써, 상기 제1 이미지 매트릭스 및 상기 제2 이미지 매트릭스의 상기 유사도를 계산하는 단계
    를 포함하는 악성 코드를 탐지하는 방법.
  3. 제1항에 있어서,
    상기 제1 악성 코드 바이너리로부터 제1 이미지 매트릭스를 생성하는 단계는,
    상기 제1 악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성하는 단계;
    상기 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성하는 단계; 및
    상기 연산 명령어 집합을 이용하여 상기 제1 이미지 매트릭스를 생성하는 단계
    를 포함하는 악성 코드를 탐지하는 방법.
  4. 제3항에 있어서,
    상기 연산 명령어 집합을 이용하여 제1 이미지 매트릭스를 생성하는 단계는,
    상기 연산 명령어 집합에 SimHash 함수를 적용함으로써 픽셀의 좌표를 획득하는 단계;
    상기 연산 명령어 집합에 djb2 함수를 적용함으로써 상기 픽셀의 칼라를 획득하는 단계
    를 포함하는 악성 코드 탐지 방법.
  5. 악성 코드를 탐지하는 방법에 있어서,
    악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성하는 단계;
    상기 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성하는 단계; 및
    상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 단계
    를 포함하는 악성 코드를 탐지하는 방법
  6. 제5항에 있어서,
    악성 코드 바이너리를 디스어셈블하여 어셈블리 코드로 구성된 복수의 어셈블리 코드 블록을 생성하는 단계는,
    상기 악성 코드 바이너리를 디스어셈블하여 상기 어셈블리 코드를 생성하는 단계; 및
    상기 어셈블리 코드를 분할하여 상기 복수의 어셈블리 코드 블록을 생성하는 단계
    를 포함하는 악성 코드 탐지 방법.
  7. 제5항에 있어서,
    상기 복수의 어셈블리 코드 블록의 각각에 포함된 명령어로부터 연산 명령어 집합을 생성하는 단계는,
    상기 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 길이 N(N은 1 이상의 정수)의 문자열로 변환하는 단계; 및
    상기 길이 N의 문자열로 변환된 각각의 명령어를 이어 붙임(concatenating)으로써, 상기 연산 명령어 집합을 생성하는 단계
    를 포함하는 악성 코드 탐지 방법.
  8. 제7항에 있어서,
    상기 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 길이 N의 문자열로 변환하는 단계는,
    상기 복수의 어셈블리 코드 블록의 각각에 포함된 복수의 명령어의 각각을 최초 3개 문자만을 포함하는 문자열로 변환하는 단계
    를 포함하는 악성 코드 탐지 방법.
  9. 제5항에 있어서,
    상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 단계는,
    상기 연산 명령어 집합에 해쉬 함수를 적용함으로써, 픽셀의 좌표 및 칼라를 획득하는 단계
    를 포함하는 악성 코드 탐지 방법.
  10. 제9항에 있어서,
    상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 단계는,
    상기 연산 명령어 집합에 SimHash 함수를 적용함으로써, 상기 픽셀의 좌표를 획득하는 단계
    를 포함하는 악성 코드 탐지 방법.
  11. 제9항에 있어서,
    상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 단계는,
    상기 연산 명령어 집합에 djb2 함수를 적용함으로써, 상기 픽셀의 칼라를 획득하는 단계
    를 포함하는 악성 코드 탐지 방법.
  12. 제9항에 있어서,
    상기 연산 명령어 집합을 이용하여 이미지 매트릭스를 생성하는 단계는,
    상기 연산 명령어 집합으로부터 생성된 제1 픽셀의 좌표가 다른 연산 명령어 집합으로부터 생성된 제2 픽셀의 좌표와 일치하는 경우, 상기 연산 명령어 집합으로부터 생성된 제1 픽셀의 칼라 및 상기 다른 연산 명령어 집합으로부터 생성된 제2 픽셀의 칼라를 합산하여 상기 좌표의 칼라로 결정하는 단계
    를 포함하는 악성 코드 탐지 방법.
  13. 제9항에 있어서,
    상기 이미지 매트릭스의 크기는 상기 악성 코드 바이너리의 크기에 따라 결정되는
    악성 코드 탐지 방법.
  14. 악성 코드를 탐지하는 장치에 있어서,
    제1 악성 코드 바이너리로부터 제1 이미지 매트릭스를 생성하는 제1 이미지 매트릭스 생성부;
    제2 악성 코드 바이너리로부터 제2 이미지 매트릭스를 생성하는 제2 이미지 매트릭스 생성부; 및
    상기 제1 이미지 매트릭스 및 상기 제2 이미지 매트릭스의 유사도를 계산하는 유사도 계산부;
    상기 계산된 유사도에 기초하여 상기 제1 악성 코드 바이너리 및 상기 제2 악성 코드 바이너리의 변종 관계를 판단하는 판단부
    를 포함하는 악성 코드를 탐지하는 장치.

KR1020130064244A 2013-06-04 2013-06-04 바이너리 정보의 시각화를 이용한 악성 코드 분석 및 변종 탐지 방법, 그 방법을 수행하는 장치 KR101558652B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130064244A KR101558652B1 (ko) 2013-06-04 2013-06-04 바이너리 정보의 시각화를 이용한 악성 코드 분석 및 변종 탐지 방법, 그 방법을 수행하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130064244A KR101558652B1 (ko) 2013-06-04 2013-06-04 바이너리 정보의 시각화를 이용한 악성 코드 분석 및 변종 탐지 방법, 그 방법을 수행하는 장치

Publications (2)

Publication Number Publication Date
KR20140142806A true KR20140142806A (ko) 2014-12-15
KR101558652B1 KR101558652B1 (ko) 2015-10-08

Family

ID=52460129

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130064244A KR101558652B1 (ko) 2013-06-04 2013-06-04 바이너리 정보의 시각화를 이용한 악성 코드 분석 및 변종 탐지 방법, 그 방법을 수행하는 장치

Country Status (1)

Country Link
KR (1) KR101558652B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017213400A1 (en) * 2016-06-06 2017-12-14 Samsung Electronics Co., Ltd. Malware detection by exploiting malware re-composition variations
KR20210050146A (ko) * 2019-10-28 2021-05-07 주식회사 한글과컴퓨터 입력된 문자를 기초로 전자 문서 상의 특정 위치에 특수문자의 삽입을 가능하게 하는 전자 문서 편집 장치 및 그 동작 방법
CN113127863A (zh) * 2019-12-31 2021-07-16 奇安信科技集团股份有限公司 恶意代码的检测方法、装置、计算机设备和存储介质
CN114995880A (zh) * 2022-05-23 2022-09-02 北京计算机技术及应用研究所 一种基于SimHash的二进制代码相似性比对方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101741829B1 (ko) 2015-11-27 2017-06-15 주식회사 수산아이앤티 단말 식별 방법 및 그 장치
KR102575974B1 (ko) 2017-01-25 2023-09-08 한국전자통신연구원 데이터 시각화 장치 및 방법
KR101976992B1 (ko) 2017-11-16 2019-05-10 숭실대학교산학협력단 시그니처 추출을 이용한 분석회피기법 자동 인식 장치 및 그 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017213400A1 (en) * 2016-06-06 2017-12-14 Samsung Electronics Co., Ltd. Malware detection by exploiting malware re-composition variations
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
KR20210050146A (ko) * 2019-10-28 2021-05-07 주식회사 한글과컴퓨터 입력된 문자를 기초로 전자 문서 상의 특정 위치에 특수문자의 삽입을 가능하게 하는 전자 문서 편집 장치 및 그 동작 방법
CN113127863A (zh) * 2019-12-31 2021-07-16 奇安信科技集团股份有限公司 恶意代码的检测方法、装置、计算机设备和存储介质
CN114995880A (zh) * 2022-05-23 2022-09-02 北京计算机技术及应用研究所 一种基于SimHash的二进制代码相似性比对方法
CN114995880B (zh) * 2022-05-23 2024-04-05 北京计算机技术及应用研究所 一种基于SimHash的二进制代码相似性比对方法

Also Published As

Publication number Publication date
KR101558652B1 (ko) 2015-10-08

Similar Documents

Publication Publication Date Title
KR101558652B1 (ko) 바이너리 정보의 시각화를 이용한 악성 코드 분석 및 변종 탐지 방법, 그 방법을 수행하는 장치
Han et al. Malware analysis method using visualization of binary files
Yakura et al. Malware analysis of imaged binary samples by convolutional neural network with attention mechanism
Han et al. Malware analysis using visualized image matrices
US11475133B2 (en) Method for machine learning of malicious code detecting model and method for detecting malicious code using the same
CN109829306B (zh) 一种优化特征提取的恶意软件分类方法
Pinhero et al. Malware detection employed by visualization and deep neural network
KR102450834B1 (ko) 다중 특징벡터를 이용하는 행위기반 악성코드 탐지 장치 및 방법
US11048798B2 (en) Method for detecting libraries in program binaries
Liu et al. A new learning approach to malware classification using discriminative feature extraction
Palahan et al. Extraction of statistically significant malware behaviors
KR20120093564A (ko) 벡터량 산출을 이용한 악성코드의 분류 및 진단 방법과 장치
KR101922814B1 (ko) Epcis 이력 이벤트 간 블록체인 구성을 통한 이력 검증 방식
Balram et al. Static malware analysis using machine learning algorithms on APT1 dataset with string and PE header features
Darus et al. Android malware classification using XGBoost on data image pattern
KR102327026B1 (ko) Gcn 기반의 어셈블리 코드 학습 장치 및 방법과 이를 이용한 보안 약점 탐지 장치 및 방법
KR102011725B1 (ko) 악성코드 검출을 위한 화이트리스트 구축 방법 및 이를 수행하기 위한 기록매체 및 장치
Kang et al. A study on variant malware detection techniques using static and dynamic features
Naeem et al. Digital forensics for malware classification: An approach for binary code to pixel vector transition
KR20150047241A (ko) 콘트롤 플로우 그래프들을 이용하는 프로그램의 표절 판단 방법 및 장치
KR20200073822A (ko) 악성코드 분류 방법 및 그 장치
CN113190847A (zh) 一种脚本文件的混淆检测方法、装置、设备及存储介质
CN109241706B (zh) 基于静态胎记的软件抄袭检测方法
JP6367959B2 (ja) 部分文字列位置検出装置、部分文字列位置検出方法及びプログラム
KR20200020078A (ko) 머신러닝을 이용한 악성코드 탐지방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee