KR101816045B1 - 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법 - Google Patents

악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법 Download PDF

Info

Publication number
KR101816045B1
KR101816045B1 KR1020160160847A KR20160160847A KR101816045B1 KR 101816045 B1 KR101816045 B1 KR 101816045B1 KR 1020160160847 A KR1020160160847 A KR 1020160160847A KR 20160160847 A KR20160160847 A KR 20160160847A KR 101816045 B1 KR101816045 B1 KR 101816045B1
Authority
KR
South Korea
Prior art keywords
malicious code
module
rule set
code
tool
Prior art date
Application number
KR1020160160847A
Other languages
English (en)
Inventor
문해은
성준영
곽성현
Original Assignee
주식회사 엔에스에이치씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엔에스에이치씨 filed Critical 주식회사 엔에스에이치씨
Priority to KR1020160160847A priority Critical patent/KR101816045B1/ko
Application granted granted Critical
Publication of KR101816045B1 publication Critical patent/KR101816045B1/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)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 악성코드 룰셋을 이용한 악성코드 탐지 시스템에 관한 것으로서, 보다 구체적으로는 악성코드 탐지 시스템으로서, 원격 관리 도구(Remote Access Tool, RAT)에서 생성된 모듈로부터 탐지 데이터를 획득하는 데이터 획득 모듈; 상기 탐지 데이터를 사용하여, 악성코드 분류 도구를 위한 룰셋을 작성하는 룰셋 작성 모듈; 및 상기 작성된 룰셋을 사용해 상기 악성코드 분류 도구를 실행하여, 악성코드를 탐지하는 악성코드 탐지 모듈을 포함하는 것을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법에 따르면, 원격 관리 도구에서 생성된 모듈로부터 탐지 데이터를 획득하고, 획득한 탐지 데이터를 사용해 룰셋을 작성하여 악성코드 분류 도구를 실행함으로써, 악성코드의 오탐율(False Positive Rate)을 낮출 수 있으며, 탐지 데이터의 획득이 용이하므로 자동화에 적합하다.
또한, 본 발명에 따르면, 원격 관리 도구에 의해 생성된 악성코드를 탐지함으로써, 공격자 판별에도 활용될 수 있다.

Description

악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법{MALWARE DETECTING SYSTEM WITH MALWARE RULE SET}
본 발명은 악성코드 탐지 시스템 및 방법에 관한 것으로서, 보다 구체적으로는 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법에 관한 것이다.
컴퓨터 기술의 발전과 함께 악성코드의 수가 큰 폭으로 증가하고 있으며, 이로 인한 피해도 크게 늘어나고 있다. 매년 수백만에 달하는 악성코드가 생성되고 있는데, 이와 같이 폭발적으로 증가하는 악성코드에 대응하기 위해서는 분석 시스템의 자동화가 필요할 뿐 아니라, 공격자를 판별하는 것 또한 매우 중요하다.
원격 관리 도구(Remote Access Tool, RAT)는, 민감한 정보를 빼돌리거나 장시간 피해자를 감시하는 등 여러 가지 해킹 이후의 범죄 행위를 할 수 있게 해준다. RAT는 보통 스피어 피싱 공격이나 소셜 엔지니어링 공격으로 감염되며, 이 공격들은 패킷 형태로 어딘가에 숨어 있다가 말웨어 페이로드 실행의 단계에서 활동을 시작한다.
최근 많은 공격그룹들은 부트킷(bootkit), 루트킷(rootkit), 맞춤형 악성코드에 대한 투자보다는 기존 악성코드를 위변조 해 가공하는 방식의 공격을 자주 이용한다. 그 이유는 악성코드 플랫폼이 발견되더라도 수많은 다른 공격에 악용되는 원격 관리 도구 사용기록 때문에 APT 공격 그룹의 정체를 숨길 수 있기 때문이다.
그러나 아직까지, 원격 관리 도구에 의한 공격 그룹의 판별은 어려운 실정이고, 이에 따라 악성코드의 판별 및 공격에 대한 대처가 용이하지 않은 한계가 있다.
한편, 본 발명과 관련된 선행기술로서, 공개특허 제10-2012-0070016호(발명의 명칭: 문자열 비교 기법을 이용한 악성코드 탐지 및 분류 시스템 및 그 방법, 공개일자: 2012년 06월 29일), 등록특허 제10-1508577호(발명의 명칭: 악성코드 탐지장치 및 방법, 공고일자: 2015년 04월 07일) 등이 개시된 바 있다.
본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, 원격 관리 도구에서 생성된 모듈로부터 탐지 데이터를 획득하고, 획득한 탐지 데이터를 사용해 룰셋을 작성하여 악성코드 분류 도구를 실행함으로써, 악성코드의 오탐율(False Positive Rate)을 낮출 수 있으며, 탐지 데이터의 획득이 용이하므로 자동화에 적합한, 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법을 제공하는 것을 그 목적으로 한다.
또한, 본 발명은, 원격 관리 도구에 의해 생성된 악성코드를 탐지함으로써, 공격자 판별에도 활용될 수 있는, 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법을 제공하는 것을 또 다른 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템은,
악성코드 탐지 시스템으로서,
원격 관리 도구(Remote Access Tool, RAT)에서 생성된 모듈로부터 탐지 데이터를 획득하는 데이터 획득 모듈;
상기 탐지 데이터를 사용하여, 악성코드 분류 도구를 위한 룰셋을 작성하는 룰셋 작성 모듈; 및
상기 작성된 룰셋을 사용해 상기 악성코드 분류 도구를 실행하여, 악성코드를 탐지하는 악성코드 탐지 모듈을 포함하는 것을 그 구성상의 특징으로 한다.
바람직하게는,
상기 악성코드 탐지 모듈에서, 상기 악성코드 분류 도구에 의해 상용화 패커(packer)의 사용이 확인되면, 언패킹(unpacking)을 시도하는 언패킹 모듈을 더 포함하며,
상기 악성코드 탐지 모듈은, 상기 언패킹 모듈에 의해 패킹이 해제된 모듈을 대상으로, 상기 작성된 룰셋을 사용해 상기 악성코드 분류 도구를 실행하여 악성코드를 탐지할 수 있다.
바람직하게는, 상기 탐지 데이터는,
문자열 및 코드 시그니처 중 적어도 하나 이상을 포함할 수 있다.
더욱 바람직하게는, 상기 데이터 획득 모듈은,
비-상용 문자, 바이너리에서 사용되는 DLL 및 API 이름을 포함하는 군에서 선택된 적어도 하나 이상의 문자열을 추출할 수 있다.
더욱 바람직하게는, 상기 데이터 획득 모듈은,
상기 모듈에서 역공학 과정을 통해 블록 단위의 코드 시그니처를 획득할 수 있다.
바람직하게는, 상기 악성코드 분류 도구는, 야라(YARA)일 수 있다.
더욱 바람직하게는, 상기 룰셋 작성 모듈은,
탐지 데이터 및 참거짓을 판단하기 위한 조건을 포함하여 정의되는 야라 룰셋을 작성할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 악성코드 룰셋을 이용한 악성코드 탐지 방법은,
악성코드 탐지 방법으로서,
(1) 원격 관리 도구(Remote Access Tool, RAT)에서 생성된 모듈로부터 탐지 데이터를 획득하는 단계;
(2) 상기 탐지 데이터를 사용하여, 악성코드 분류 도구를 위한 룰셋을 작성하는 단계; 및
(3) 상기 작성된 룰셋을 사용해 상기 악성코드 분류 도구를 실행하여, 악성코드를 탐지하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법에 따르면, 원격 관리 도구에서 생성된 모듈로부터 탐지 데이터를 획득하고, 획득한 탐지 데이터를 사용해 룰셋을 작성하여 악성코드 분류 도구를 실행함으로써, 악성코드의 오탐율(False Positive Rate)을 낮출 수 있으며, 탐지 데이터의 획득이 용이하므로 자동화에 적합하다.
또한, 본 발명에 따르면, 원격 관리 도구에 의해 생성된 악성코드를 탐지함으로써, 공격자 판별에도 활용될 수 있다.
도 1은 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템의 구성을 도시한 도면.
도 2는 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템이 악성코드를 탐지하는 과정을 예를 들어 도시한 도면.
도 3은 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템에서, 데이터 획득 모듈이 획득한 악성코드의 특징 정보를 예를 들어 도시한 도면.
도 4는 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템에서, 데이터 획득 모듈에 의한 코드 시그니처 획득 과정을 예를 들어 도시한 도면.
도 5는 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템에서, 데이터 획득 모듈이 획득한 탐지 데이터를 예를 들어 도시한 도면.
도 6은 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템에서, 룰셋 작성 모듈에 의해 작성된 룰셋을 예를 들어 도시한 도면.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 ‘연결’ 되어 있다고 할 때, 이는 ‘직접적으로 연결’ 되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 ‘간접적으로 연결’ 되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 ‘포함’ 한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
도 1은 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)의 구성을 도시한 도면이다. 도 1에 도시된 바와 같이, 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)은, 데이터 획득 모듈(110), 룰셋 작성 모듈(120) 및 악성코드 탐지 모듈(130)을 포함하여 구성될 수 있으며, 언패킹 모듈(140)을 더 포함하여 구성될 수 있다.
도 2는 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)이 악성코드를 탐지하는 과정을 예를 들어 도시한 도면이다. 도 2에 도시된 바와 같이, 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)에서는, 원격 관리 도구(RAT)에서 생성된 PE 파일 형태의 모듈로부터 문자열(strings)이나 코드 시그니처(code signature) 등의 탐지 데이터를 획득하고, 획득한 탐지 데이터를 사용해 악성코드 분류 도구 중 하나인 야라(YARA)로 룰셋을 작성하고, 작성된 야라 룰셋을 적용 및 실행함으로써 악성코드를 판별할 수 있다.
이하에서는, 도 1 및 도 2를 참조하여, 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)을 구성하는 각 구성요소에 대하여 상세히 설명하도록 한다.
데이터 획득 모듈(110)은, 원격 관리 도구(Remote Access Tool, RAT)에서 생성된 모듈로부터 탐지 데이터를 획득할 수 있다.
RAT는 많은 공격자들이 공격 대상의 시스템을 감염시키기 위해 사용하는 도구로서, 공격자는 RAT 도구를 사용해 시스템을 감염시킬 수 있는 모듈(Module)을 생성할 수 있으며, 모듈이 실행되면 공격자는 도구를 사용해 시스템을 제어할 수 있게 된다. 이러한 RAT 도구들은 공통적으로 시스템에 원격으로 접근할 수 있게 만들어 주는 모듈 생성과 실행 시 지정한 URL에서 파일을 내려 받는 '다운로더(Downloader)' 생성을 할 수 있다. 또한, 감염된 사용자의 PC 정보를 간편하게 확인할 수 있는 모니터링 기능을 제공할 수도 있다.
RAT 도구는 편리한 GUI를 제공하는 만큼 사용에 능숙하지 않은 공격자라도 쉽게 공격에 사용할 수 있다. 보통 RAT 도구로 생성된 모듈들은 이메일에 첨부하여 전송되거나 웹사이트의 취약점을 이용해 드라이브 바이 다운로드(Drive By Download, DBD) 공격으로 사용자들을 감염시킬 수 있다.
도 3은 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)에서, 데이터 획득 모듈(110)이 획득한 악성코드의 특징 정보를 예를 들어 도시한 도면이다. 악성코드는 PE, ELF, mach-o 등의 실행파일 형태의 파일구조를 가지고 있으며, 대부분의 악성코드들은 PE 파일 구조를 가질 수 있다. 이러한 실행 파일들은 헥스에디터나 PEViewer와 같이 파일 시그니처를 확인할 수 있는 도구를 통해 확인할 수 있으며, 도 3에 도시된 바와 같이 0x4D5A(PE파일의 파일헤더) 등의 파일들의 특징이 드러나는 값들을 얻을 수 있다. 뿐만 아니라, PE 파일에 존재하는 text 섹션에서 해당 파일이 통신하는 IP주소 혹은 포트 주소 등을 확인할 수도 있다. 이러한 정보들은 각 실행파일들의 특징으로 파일을 판별할 탐지 데이터로 사용될 수 있다.
본 발명의 데이터 획득 모듈(110)은, 이와 같은 원격 관리 도구에서 생성된 모듈을 분석하여 탐지 데이터를 획득할 수 있다. 다음 표 1은, RAT 도구 중 다크코멧, njRAT, 판도라(Pandora)를 대상으로, 각 RAT에서 생성된 모듈에서 찾을 수 있는 탐지 데이터를 예를 들어 표시한 표이다.
Figure 112016117205906-pat00001
여기서, 다크코멧은 사용자가 URL에 접속해 파일을 내려 받은 다운로더(Downloader) 생성을 도와주며, 모듈 생성 시 시스템에 인젝션 될 때 사용하는 뮤텍스 명 설정, 키로거 기능, 플러그인 기능 제공, 아이콘 이미지 제공, 안티 바이러스 등의 보안 제품을 우회하기 위한 모듈 쉴드 기능 등을 제공할 수 있다. 또한, njRAT와 판도라는 다크코멧과 매우 유사한 기능을 가지고 있으며, njRAT는 닷넷(.Net)기반의 RAT 도구로 대표적으로 S.K.Y.P.E/Tagged 그룹에서 사용하는 도구로 유명하다.
이와 같은 탐지 데이터는, 문자열 및 코드 시그니처 중 적어도 하나 이상을 포함할 수 있다.
데이터 획득 모듈(110)은, 비-상용 문자, 바이너리에서 사용되는 DLL 및 API 이름을 포함하는 군에서 선택된 적어도 하나 이상의 문자열을 추출할 수 있다. 즉, 탐지 데이터로 흔히 사용되지 않는 문자 등의 문자열을 추출할 수 있으며, 다음 표 2는 탐지에 이용되는 문자열의 예시를 표시한 표이다.
Figure 112016117205906-pat00002
또한, 데이터 획득 모듈(110)은, 모듈에서 역공학 과정을 통해 블록 단위의 코드 시그니처를 획득할 수 있다.
도 4는 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)에서, 데이터 획득 모듈(110)에 의한 코드 시그니처 획득을 예를 들어 도시한 도면이다. 도 4에 도시된 바와 같이, 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)의 데이터 획득 모듈(110)은, RAT에 의해 생성된 모듈로부터 탐지 데이터로 코드 시그니처를 추출할 수 있는데, 역공학을 통해 패킹 해제 코드 시그니처를 추출하거나, 각 모듈의 경고문 생성, 원격 접속과 같은 코드 시그니처를 추출할 수 있다.
룰셋 작성 모듈(120)은, 탐지 데이터를 사용하여, 악성코드 분류 도구를 위한 룰셋을 작성할 수 있다. 이때, 사용되는 악성코드 분류 도구는, 야라(YARA)일 수 있다.
야라는 문자열이나 바이너리 패턴을 기반으로 악성코드를 검색하여 분류할 수 있는 도구로서, C와 파이선(Python) 언어들과 비슷한 문법을 사용하기 때문에 쉽게 규칙(rule) 작성이 가능할 수 있다. 야라는 리눅스, OSX, 윈도우 시스템 등을 모두 지원하기 때문에, 소스코드를 직접 컴파일 하거나 실행 파일을 실행하여 사용이 가능할 수 있다. 또한, 파이선에서 모듈을 지원하기 때문에 파이선 코드를 사용해 고도화할 수도 있다.
한편, 룰셋 작성 모듈(120)은, 문자열 및 참거짓을 판단하기 위한 조건을 포함하여 정의되는 야라 룰셋을 작성할 수 있으며, 설명, 규칙 이름 등을 더 포함하여 작성할 수 있다. 즉, 야라의 규칙(rule)은 '설명 ', '규칙 이름', '문자열' 또는 ‘코드 시그니처’ 및 '참 거짓을 판단하기 위한 조건'으로 나눠서 정의되며, 파일 분류 시 단순한 문자열이나 바이너리 패턴을 비교할 뿐만 아니라, 대상 파일의 엔트리 포인트(Enrty Point) 값을 지정하거나 파일 오프셋(File Offset), 가상 메모리 주소(Virtual Memory Address)를 지정할 수도 있다. 또한, 정규 표현식을 사용할 수 있기 때문에 효율적인 패턴 매칭이 가능할 수 있다.
도 5는 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)에서, 데이터 획득 모듈(110)이 획득한 탐지 데이터를 예를 들어 도시한 도면이고, 도 6은 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)에서, 룰셋 작성 모듈(120)에 의해 작성된 룰셋을 예를 들어 도시한 도면이다.
본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)의 룰셋 작성 모듈(120)은, 도 5에 도시된 바와 같이 대상 파일의 IP주소와 포트 정보, 또는 “qwertyu4”와 같은 특정 문자열을 탐지 데이터로 하고, 이와 같은 문자열을 야라 룰셋으로 작성할 수 있다. 도 5에 표시된 (1) 및 (2)의 문자열을 이용하여 야라 룰셋을 작성하면, 도 6에 도시된 바와 같이 작성될 수 있다.
도 6의 (1)은 야라 룰셋의 규칙 이름을 설정한 것으로서, 이름 뿐 아니라 규칙에 대한 정보들이 자유롭게 작성될 수 있다. 도 6의 (2) 및 (3)은 탐지 데이터를 작성한 것으로서, 먼저 (2)는 대상이 되는 모듈에서 추출된 문자열인 도 5의 (1)을 이용하여 야라 룰셋으로 작성한 것일 수 있다. 또한, 도 6의 (3)은 도 5의 (2)인 “172.16.191.74 9006”에 대한 실제 값(Raw Data)을 적용하여 야라 룰셋을 작성한 것일 수 있다. 도 6의 (4)는 참거짓을 판단하기 위한 조건에 해당하는 것으로서, 도 6에 도시된 바와 같은 예에서는, 모든 조건에 해당될 때 참이 되어 악성코드로 탐지될 수 있다.
악성코드 탐지 모듈(130)은, 작성된 룰셋을 사용해 악성코드 분류 도구를 실행하여, 악성코드를 탐지할 수 있다. 즉, 도 6에 도시된 바와 같은 야라 룰셋을 실행하여, 악성코드를 탐지할 수 있다.
언패킹 모듈(140)은, 악성코드 탐지 모듈(130)에서 악성코드 분류 도구에 의해 상용화 패커(packer)의 사용이 확인되면 언패킹(unpacking)을 시도할 수 있으며, 악성코드 탐지 모듈(130)은 언패킹 모듈(140)에 의해 패킹이 해제된 모듈을 대상으로, 작성된 룰셋을 사용해 악성코드 분류 도구를 실행하여 악성코드를 탐지할 수 있다.
즉, 악성코드가 난독화 되어 있거나, 패킹(Packing)되어 있는 경우는 따로 탐지기술을 적용하기 힘들지만, 악성코드가 상용화된 패커(Packer)를 사용할 경우에는, 패킹을 해제한 후 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100)을 사용하게 되면 쉽게 탐지가 가능할 수 있다. 특히, 대부분의 RAT도구는 UPX, FSG, MPRESS 같은 상용화된 패커(Packer)를 사용하므로 상용화 패커는 야라와 같은 악성코드 분류 도구로 탐지한 후 언패킹(unpacking)을 시도하고 언패킹된 파일을 대상으로 룰셋을 적용할 수 있다.
한편, 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 방법은, 데이터 획득 모듈(110)이 원격 관리 도구(Remote Access Tool, RAT)에서 생성된 모듈로부터 탐지 데이터를 획득하는 단계, 룰셋 작성 모듈(120)이 탐지 데이터를 사용하여, 악성코드 분류 도구를 위한 룰셋을 작성하는 단계, 및 악성코드 탐지 모듈(130)이 작성된 룰셋을 사용해 악성코드 분류 도구를 실행하여, 악성코드를 탐지하는 단계를 포함하여 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100) 및 방법은, 악성코드 탐지 뿐 아니라, 원격 관리 도구에서 생성된 모듈을 분석함으로써 행위 기반의 분석이 가능하고, 이를 통해 공격자 판별에 이용될 수 있다.
한편, 본 발명은 다양한 통신 단말기로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터에서 판독 가능한 매체를 포함할 수 있다. 예를 들어, 컴퓨터에서 판독 가능한 매체는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD_ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
이와 같은 컴퓨터에서 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 이때, 컴퓨터에서 판독 가능한 매체에 기록되는 프로그램 명령은 본 발명을 구현하기 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예를 들어, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일실시예에 따른 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100) 및 방법의 효과를 검증하기 위하여, RAT 도구 중 다크코멧을 대상으로 실험을 실시하였다.
표 1에 표시된 다크코멧에 대한 탐지 데이터, 표 2에 표시된 탐지 데이터 중 문자열에 대한 정보를 활용하여 야라 룰셋을 작성하고, 작성된 야라 룰셋을 사용해 다크코멧에서 생성된 모듈을 탐지한 결과 다음 표 3과 같은 결과를 확인할 수 있었다.
Figure 112016117205906-pat00003
결과를 살펴보면, 버전 4에서는 생성된 18개의 모듈 중 16개를 탐지하였고, 버전 5에서는 생성된 25개의 모듈 중 23개를 탐지하여, 두 버전 모두에서 85% 이상의 높은 탐지율을 확인할 수 있었다. 탐지되지 않은 두 경우는 패킹으로 인해 패킹 여부만 확인할 수 있었다. 따라서 패킹 결과가 나올 경우에는, 언패킹 모듈(140)을 이용하여 언패킹(Unpacking)을 시도한 후 탐지를 한다면 더욱 우수한 성능을 보일 것으로 기대할 수 있다.
이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.
100: 본 발명의 일실시예에 따른 악성코드 탐지 시스템
110: 데이터 획득 모듈
120: 룰셋 작성 모듈
130: 악성코드 탐지 모듈
140: 언패킹 모듈

Claims (8)

  1. 악성코드 탐지 시스템(100)으로서,
    원격 관리 도구(Remote Access Tool, RAT)에서 생성된 모듈로부터, 문자열 및 코드 시그니처 중 적어도 하나 이상을 포함하는 탐지 데이터를 획득하는 데이터 획득 모듈(110);
    상기 탐지 데이터를 사용하여, 악성코드 분류 도구를 위한 룰셋을 작성하는 룰셋 작성 모듈(120);
    상기 작성된 룰셋을 사용해 상기 악성코드 분류 도구를 실행하여, 악성코드를 탐지하는 악성코드 탐지 모듈(130); 및
    상기 악성코드 탐지 모듈(130)에서, 상기 악성코드 분류 도구에 의해 상용화 패커(packer)의 사용이 확인되는 경우에만 언패킹(unpacking)을 시도하는 언패킹 모듈(140)을 포함하며,
    상기 데이터 획득 모듈(110)은,
    문자열을 포함하는 탐지 데이터를 획득할 때에는, 비-상용 문자, 바이너리에서 사용되는 DLL 및 API 이름을 포함하는 군에서 선택된 적어도 하나 이상의 문자열을 상기 원격 관리 도구에서 생성된 모듈로부터 추출하고,
    코드 시그니처를 포함하는 탐지 데이터를 획득할 때에는, 상기 원격 관리 도구에서 생성된 모듈에서 역공학 과정을 통해 블록 단위의 코드 시그니처를 획득하며,
    상기 악성코드 탐지 모듈(130)은,
    상기 언패킹 모듈(140)에 의해 패킹이 해제된 모듈을 대상으로, 상기 작성된 룰셋을 사용해 상기 악성코드 분류 도구를 실행하여 악성코드를 탐지하고,
    상기 악성코드 분류 도구는,
    야라(YARA)이며,
    상기 룰셋 작성 모듈(120)은,
    특정 문자열 또는 코드 시그니처를 포함하는 탐지 데이터 및 참거짓을 판단하기 위한 조건을 포함하여 정의되는 야라 룰셋을 작성하는 것을 특징으로 하는, 악성코드 룰셋을 이용한 악성코드 탐지 시스템(100).
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 악성코드 탐지 방법으로서,
    (1) 원격 관리 도구(Remote Access Tool, RAT)에서 생성된 모듈로부터, 문자열 및 코드 시그니처 중 적어도 하나 이상을 포함하는 탐지 데이터를 획득하는 단계;
    (2) 상기 탐지 데이터를 사용하여, 악성코드 분류 도구를 위한 룰셋을 작성하는 단계; 및
    (3) 상기 작성된 룰셋을 사용해 상기 악성코드 분류 도구를 실행하여, 악성코드를 탐지하는 단계를 포함하며,
    상기 단계 (1)에서는,
    문자열을 포함하는 탐지 데이터를 획득할 때에는, 비-상용 문자, 바이너리에서 사용되는 DLL 및 API 이름을 포함하는 군에서 선택된 적어도 하나 이상의 문자열을 상기 원격 관리 도구에서 생성된 모듈로부터 추출하고,
    코드 시그니처를 포함하는 탐지 데이터를 획득할 때에는, 상기 원격 관리 도구에서 생성된 모듈에서 역공학 과정을 통해 블록 단위의 코드 시그니처를 획득하며,
    상기 단계 (3)에서는,
    상기 악성코드 분류 도구에 의해 상용화 패커(packer)의 사용이 확인되는 경우에만, 언패킹(unpacking)을 시도하고 패킹이 해제된 모듈을 대상으로, 상기 작성된 룰셋을 사용해 상기 악성코드 분류 도구를 실행하여 악성코드를 탐지하고,
    상기 악성코드 분류 도구는,
    야라(YARA)이며,
    상기 단계 (2)는,
    특정 문자열 또는 코드 시그니처를 포함하는 탐지 데이터 및 참거짓을 판단하기 위한 조건을 포함하여 정의되는 야라 룰셋을 작성하는 것을 특징으로 하는, 악성코드 룰셋을 이용한 악성코드 탐지 방법.
KR1020160160847A 2016-11-29 2016-11-29 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법 KR101816045B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160160847A KR101816045B1 (ko) 2016-11-29 2016-11-29 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160160847A KR101816045B1 (ko) 2016-11-29 2016-11-29 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101816045B1 true KR101816045B1 (ko) 2018-01-08

Family

ID=61003610

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160160847A KR101816045B1 (ko) 2016-11-29 2016-11-29 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101816045B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101990028B1 (ko) * 2018-11-27 2019-06-17 강원대학교산학협력단 바이너리 파일 복원을 위한 하이브리드 언패킹 방법 및 시스템
KR20200039551A (ko) * 2018-10-05 2020-04-16 (주)피즐리소프트 암호화 트래픽 가시성을 제공하는 패킷 기반 위협 탐지 방법
WO2020123460A1 (en) * 2018-12-15 2020-06-18 KnowBe4, Inc. System and methods for efficient combining of malware detection rules
KR20210132494A (ko) 2020-04-27 2021-11-04 주식회사 웰컨 매크로 이상 접속 탐지 장치 및 방법
WO2022149729A1 (ko) * 2021-01-05 2022-07-14 (주)모니터랩 악성코드 정적분석을 위한 실행파일 언패킹 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101564999B1 (ko) * 2015-01-26 2015-11-03 주식회사 안랩 스크립트진단장치 및 스크립트 진단 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101564999B1 (ko) * 2015-01-26 2015-11-03 주식회사 안랩 스크립트진단장치 및 스크립트 진단 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Welcome to YARA's documentatiion!, v.3.3.0 2014.8 https://media.readthedocs.org/pdf/yara/v3.0.0/yara.pdf

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102152309B1 (ko) * 2018-10-05 2020-09-04 (주)피즐리소프트 야라 탐지 기술과 연동하여 암호화 트래픽 가시성을 제공하는 패킷 기반 위협 탐지 방법
KR20200039551A (ko) * 2018-10-05 2020-04-16 (주)피즐리소프트 암호화 트래픽 가시성을 제공하는 패킷 기반 위협 탐지 방법
KR20200039549A (ko) * 2018-10-05 2020-04-16 (주)피즐리소프트 야라 탐지 기술과 연동하여 암호화 트래픽 가시성을 제공하는 패킷 기반 위협 탐지 방법
KR20200039550A (ko) * 2018-10-05 2020-04-16 (주)피즐리소프트 고속 트래픽 내 실시간 암호화 패킷 분리 식별 기술과 식별된 패킷에 대한 야라 탐지 기술 연동 기법과 장치
KR102152313B1 (ko) * 2018-10-05 2020-09-04 (주)피즐리소프트 고속 트래픽 내 실시간 암호화 패킷 분리 식별 기술과 식별된 패킷에 대한 야라 탐지 기술 연동 기법과 장치
KR102239762B1 (ko) * 2018-10-05 2021-04-13 (주)피즐리소프트 암호화 트래픽 가시성을 제공하는 패킷 기반 위협 탐지 방법
KR101990028B1 (ko) * 2018-11-27 2019-06-17 강원대학교산학협력단 바이너리 파일 복원을 위한 하이브리드 언패킹 방법 및 시스템
WO2020123460A1 (en) * 2018-12-15 2020-06-18 KnowBe4, Inc. System and methods for efficient combining of malware detection rules
US10812507B2 (en) 2018-12-15 2020-10-20 KnowBe4, Inc. System and methods for efficient combining of malware detection rules
US11108791B2 (en) 2018-12-15 2021-08-31 KnowBe4, Inc. System and methods for efficient combining of malware detection rules
US11902302B2 (en) 2018-12-15 2024-02-13 KnowBe4, Inc. Systems and methods for efficient combining of characteristc detection rules
KR20210132494A (ko) 2020-04-27 2021-11-04 주식회사 웰컨 매크로 이상 접속 탐지 장치 및 방법
WO2022149729A1 (ko) * 2021-01-05 2022-07-14 (주)모니터랩 악성코드 정적분석을 위한 실행파일 언패킹 시스템 및 방법

Similar Documents

Publication Publication Date Title
KR101816045B1 (ko) 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법
Aslan et al. Investigation of possibilities to detect malware using existing tools
US9015814B1 (en) System and methods for detecting harmful files of different formats
KR101851233B1 (ko) 파일 내 포함된 악성 위협 탐지 장치 및 방법, 그 기록매체
Veeramani et al. Windows api based malware detection and framework analysis
Shabtai et al. F-sign: Automatic, function-based signature generation for malware
US20180114018A1 (en) Malware detection and classification based on memory semantic analysis
GB2439806A (en) Classifying software as malware using characteristics (or "genes")
JP2013239172A (ja) 非実行ファイル検査装置及び方法
WO2017012241A1 (zh) 文件的检测方法、装置、设备及非易失性计算机存储介质
Adkins et al. Heuristic malware detection via basic block comparison
WO2018066221A1 (ja) 分類装置、分類方法及び分類プログラム
CN105550581A (zh) 一种恶意代码检测方法及装置
US11200317B2 (en) Systems and methods for protecting a computing device against malicious code
Pandey et al. Performance of malware detection tools: A comparison
Abuzaid et al. An efficient trojan horse classification (ETC)
US10853492B2 (en) Systems and methods for protecting a computing device against malicious code
Bucevschi et al. Preventing file-less attacks with machine learning techniques
Chowdhury et al. Malware detection for healthcare data security
KR101908517B1 (ko) 스트링과 코드 시그니처를 이용한 악성코드 탐지 및 패커 해제 방법
CN112149115A (zh) 一种病毒库的更新方法、装置、电子装置和存储介质
Gonzalez et al. Measuring code reuse in Android apps
US20240061931A1 (en) Executable file unpacking system and method for static analysis of malicious code
Le et al. A Basic Malware Analysis Process Based on FireEye Ecosystem.
Indirapriyadarsini et al. Malware detection using machine learning and cloud computing

Legal Events

Date Code Title Description
AMND Amendment
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant