KR101544010B1 - 프로세스의 동적 행위 정규화 및 악성 코드 탐지 방법 - Google Patents

프로세스의 동적 행위 정규화 및 악성 코드 탐지 방법 Download PDF

Info

Publication number
KR101544010B1
KR101544010B1 KR1020140005737A KR20140005737A KR101544010B1 KR 101544010 B1 KR101544010 B1 KR 101544010B1 KR 1020140005737 A KR1020140005737 A KR 1020140005737A KR 20140005737 A KR20140005737 A KR 20140005737A KR 101544010 B1 KR101544010 B1 KR 101544010B1
Authority
KR
South Korea
Prior art keywords
file
registry
action
malicious code
character string
Prior art date
Application number
KR1020140005737A
Other languages
English (en)
Other versions
KR20150085741A (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 KR1020140005737A priority Critical patent/KR101544010B1/ko
Publication of KR20150085741A publication Critical patent/KR20150085741A/ko
Application granted granted Critical
Publication of KR101544010B1 publication Critical patent/KR101544010B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61CDENTISTRY; APPARATUS OR METHODS FOR ORAL OR DENTAL HYGIENE
    • A61C17/00Devices for cleaning, polishing, rinsing or drying teeth, teeth cavities or prostheses; Saliva removers; Dental appliances for receiving spittle
    • A61C17/02Rinsing or air-blowing devices, e.g. using fluid jets or comprising liquid medication
    • A61C17/0208Rinsing or air-blowing devices, e.g. using fluid jets or comprising liquid medication combined with means providing suction
    • AHUMAN NECESSITIES
    • A46BRUSHWARE
    • A46BBRUSHES
    • A46B11/00Brushes with reservoir or other means for applying substances, e.g. paints, pastes, water
    • A46B11/001Brushes with reservoir or other means for applying substances, e.g. paints, pastes, water with integral reservoirs
    • A46B11/002Brushes with reservoir or other means for applying substances, e.g. paints, pastes, water with integral reservoirs pressurised at moment of use manually or by powered means
    • AHUMAN NECESSITIES
    • A46BRUSHWARE
    • A46BBRUSHES
    • A46B9/00Arrangements of the bristles in the brush body
    • A46B9/02Position or arrangement of bristles in relation to surface of the brush body, e.g. inclined, in rows, in groups
    • A46B9/04Arranged like in or for toothbrushes
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61CDENTISTRY; APPARATUS OR METHODS FOR ORAL OR DENTAL HYGIENE
    • A61C17/00Devices for cleaning, polishing, rinsing or drying teeth, teeth cavities or prostheses; Saliva removers; Dental appliances for receiving spittle
    • A61C17/02Rinsing or air-blowing devices, e.g. using fluid jets or comprising liquid medication
    • A61C17/0202Hand-pieces
    • AHUMAN NECESSITIES
    • A46BRUSHWARE
    • A46BBRUSHES
    • A46B2200/00Brushes characterized by their functions, uses or applications
    • A46B2200/10For human or animal care
    • A46B2200/1066Toothbrush for cleaning the teeth or dentures

Landscapes

  • Health & Medical Sciences (AREA)
  • Dentistry (AREA)
  • Epidemiology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Stored Programmes (AREA)

Abstract

본 명세서는 악성코드 탐지장치가 프로그램의 행위를 분석하는 방법을 개시한다. 상기 방법은, 특정 프로그램에 의해 실행되는 행위를 동작 기호 및 고유 인덱스의 조합으로 구성된 문자열로 표시하는 단계와; 상기 동작 기호 및 고유 인덱스로 조합된 문자열을 정규화하는 단계와; 상기 정규화된 문자열을 기 저장된 악성 코드의 문자열과 비교한 결과에 기초하여 상기 특정 프로그램의 유해성을 판단하는 단계:를 포함한다.

Description

프로세스의 동적 행위 정규화 및 악성 코드 탐지 방법{METHOD FOR NORMALIZING DYNAMIC BEHAVIOR OF PROCESS AND DETECTING MALICIOUS CODE}
본 명세서는 프로세스의 동적 행위를 정규화(패턴화)하고, 정규화된 상태천이 탐지 패턴을 이용하여 악성 행위(또는 악성 코드)를 탐지하는 방법 및 그에 사용되는 장치에 관한 것이다.
종래의 악성 코드 또는 바이러스 탐지는 주로 파일의 기본적인 정보 또는 패턴 기반으로 수행되었다. 즉, 악성 코드를 탐지하고자 하는 각종 기본 정보를 데이터베이스화 시키고 이를 기반으로 모든 파일에 대한 정보와 데이터베이스에 보관하고 있는 정보를 교차 검색하여 악성 파일 여부를 파악할 수 있도록 하였다. 이와 같은 종래 기술에 의하면 악성 코드 파일의 특성을 보유하고 있는 경우 해당 악성 코드를 빠르고 정확하게 탐지 할수 있다는 장점이 있다. 그러나, 악성 코드 파일의 특성을 보유하고 있지 않는 경우 즉, 알려지지 않은 악성 코드의 경우에는 탐지 자체가 불가능하며 기 알려진 악성 코드라도 그 변종이 발생되면 동일한 유해행위를 일으키는 악성 코드임에도 불구하고 탐지하기 어렵다는 단점이 있다.
위와 같은 현상으로 하여 근래에 악성 코드의 행위를 기반한 탐지 방법들이 개발이 되고 있으며 악성 코드가 시스템 상에서 일으키는 일반적인 정보를 기반으로 하여 악성 유무를 파악하고 변종 악성 코드에 능동적으로 대응하기 위한 방법들이 많이 나오고 있다. 그러나, 기존의 악성코드 동적 분석 기술은 코드 실행 후 프로세스, 파일입출력 및 레지스트리 정보의 변화를 감시/분석하는 방법으로 분석가의 지식에 의존(heuristic)적이고, 대량의 악성코드 분석이 어려운 면이 있었다.
본 명세서는 프로세스의 동적 행위를 정규화하고, 정규화된 상태천이 탐지 패턴을 이용하여 악성 코드를 탐지하는 방법을 제안하는 데에 그 목적이 있다. 또한 상기 방법을 수행할 수 있는 장치를 제안하고자 한다.
본 명세서의 일 실시예에 따라 악성코드 탐지방법이 제공된다. 상기 방법은, 특정 프로그램에 의해 실행되는 행위를 동작 기호 및 고유 인덱스의 조합으로 구성된 문자열로 표시하는 단계와, 상기 동작 기호는 상기 실행되는 행위의 종류에 대응되고, 상기 고유 인덱스는 파일 또는 레지스트리 경로 각각과 대응되며,; 상기 동작 기호 및 고유 인덱스로 조합된 문자열을 정규화하는 단계와; 상기 정규화된 문자열을 기 저장된 악성 코드의 문자열과 비교한 결과에 기초하여 상기 특정 프로그램의 유해성을 판단하는 단계:를 포함할 수 있다.
본 명세서의 다른 실시예에 따라 악성코드 탐지장치가 제공된다. 상기 장치는, 특정 프로그램에 의해 실행되는 행위를 동작 기호 및 고유 인덱스의 조합으로 구성된 문자열로 표시하는 동적 행위 시각화부와, 상기 동작 기호는 상기 실행되는 행위의 종류에 대응되고, 상기 고유 인덱스는 파일 또는 레지스트리 경로 각각과 대응되며,; 상기 동작 기호 및 고유 인덱스로 조합된 문자열을 정규화하는 동적 행위 정규화부; 상기 정규화된 문자열을 기 저장된 악성 코드의 문자열과 비교한 결과에 기초하여 상기 특정 프로그램의 유해성을 판단하는 동적 행위 분석부;를 포함할 수 있다.
본 명세서의 실시예들은 프로그램에 의해 실행되는 동적 행위를 기호화하여 표현함으로써 통계적/체계적인 분석을 가능케 하고, 악성 행위를 정규식 패턴으로 생성하여 악성코드 실시간 탐지에 적용하는 효과 및 추후 상세분석이 가능토록 하는 효과가 있다.
도 1a 및 도 1b는 본 명세서의 일 실시예에 따른 파일 또는 레지스트리의 고유 인덱스를 나타낸 예시 도면이다.
도 2는 동작 기호 및 고유 인덱스의 조합으로 구성된 문자열을 나타낸 예시 도면이다.
도 3 및 도 4는 본 명세서의 일 실시예에 따라 특정 프로그램의 유해성을 판단하는 과정을 나타낸 도면이다.
도 5는 본 명세서의 일 실시예에 따른 상태 천이도를 나타낸 예시 도면이다.
도 6은 본 명세서의 일 실시예에 따라 프로그램의 행위를 분석하는 방법을 도시한 흐름도이다.
도 7은 본 명세서의 일 실시예에 따른 악성코드 탐지장치의 블록도이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다. 본 발명의 사상은 첨부된 도면 외에 모든 변경, 균등물 내지 대체물에 까지도 확장되는 것으로 해석되어야 한다.
본 명세서에서 개시되는 악성코드 탐지장치는, 프로세스 상태 및 상태 천이를 시각화(예컨대, 문자열화 또는 도시화)할 수 있다. 또한, 악성코드 탐지장치는 시각화된 상태 천이 패턴을 이용하여 악성 행위를 실시간 탐지할 수 있다. 이를 구체적으로 설명하면 아래와 같다.
상기 악성코드 탐지장치는 프로그램의 행위를 분석하기 위해, 먼저 상기 프로그램에 의해 실행되는 행위를 기호 및/또는 문자로 표시한다.
일 예로서 상기 악성코드 탐지장치는 하기 표 1과 같이 프로세스, 파일, 레지스트리, 네트워크 관련 행위(동작)을 정의하고 기호로 표시할 수 있다.
감시 대상 감시 동작 동작 기호 상태천이도
프로세스
프로세스 생성 P Pro_Create
프로세스 종료 p Pro_Exit

파일

파일 생성 F File_Create
파일 쓰기 W File_Write
파일 읽기 R File_Read
파일 삭제 f File_Delete

레지스트리

레지스트리 키 생성 K Reg_KeyCreate
레지스트리 키 삭제 k Reg_KeyDel
레지스트리 값 설정 V Reg_ValueSet
레지스트리 값 삭제 v Reg_ValueDelete

네트워크
접속 대기 L Net_Listen
데이터 전송 S Net_Send
데이터 수신 s Net_Receive
상기 표 1에 예시된 동작 정의와 기호는 영문 알파벳 문자로 표현된 것이다. 이때 프로세스 행위의 종류에 따라 영문 알파벳 대/소문자로 동작 기호를 구분하여 표현할 수 있다. 예를 들어, 프로세스/파일/레지스트리의 생성, 접속 대기 및 데이터 전송은 영문 알파벳 대문자로 표현될 수 있고, 프로세스/파일/레지스트리의 삭제 및 종료. 데이터 수신은 영문 알파벳 소문자로 표현될 수 있다.
다음으로, 상기 악성코드 탐지장치는 정의된 동작 기호에 따라 특정 프로그램에 의해 수행되는 동적 행위를 문자열로 표시(즉, 가시화)한다. 이때, 상기 악성코드 탐지장치는 문자열 표시의 단순화를 위해, 상기 동적 행위에 연관된 파일 및/또는 레지스트리 경로는 “고유 인덱스”로 변환하여 표기할 수 있다. 상기 고유 인덱스는 파일 또는 레지스트리 경로 각각과 대응되는 식별자로서, 도면을 참조하여 설명한다.
도 1a은 본 명세서의 일 실시예에 따른 파일의 고유 인덱스를 나타낸 예시 도면이다.
도 1a과 같이 고유 인덱스가 부여된 경우, 파일 인덱스 ‘15’는 파일
<USER>'\Local Settings\Temp\nsv1.tmp
에 해당된다.
표 1의 동작 기호를 적용해보면, 'F15', ‘f15'는 각각 프로세스가 파일 인덱스 ‘15’에 해당하는 파일을 생성, 삭제하는 행위를 표기한 것이 된다. 마찬가지로, 'R15', ‘W15'는 각각 프로세스가 파일 인덱스 ‘15’에 해당하는 파일을 읽기, 쓰기(수정)하는 행위를 표기한 것이다.
도 1b은 본 명세서의 일 실시예에 따른 레지스트리의 고유 인덱스를 나타낸 예시 도면이다.
도 1b과 같이 고유 인덱스가 부여된 경우, 레지스트리 인덱스 ‘21’은 레지스트리 경로
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CabinetState
에 해당된다.
표 1의 동작 기호를 적용해보면, 'K21', 'k21'은 각각 프로세스가 레지스트리 인덱스 ‘21’에 해당하는 레지스트리 키를 생성, 삭제하는 행위를 나타내게 된다. 마찬가지로, 'V22', ‘v22'는 각각 프로세스가 레지스트리 인덱스 ‘22’에 해당하는 레지스트리 값을 설정, 삭제하는 행위를 표기한 것이다.
상기 악성코드 탐지장치가 특정 프로그램에 의해 실행되는 행위를 문자(동작 기호) 및 숫자(고유 인덱스)의 조합으로 구성된 문자열로 표시함으로써, 프로그램(코드)의 행위(특히, 악성 행위)를 시각화(visualization)할 수 있을 뿐만 아니라, 단일 악성 행위 내의 프로세스 간, 또는 복수의 악성 행위 간 유사도를 측정하여 악성코드 여부 판단, 혹은 신,변종 악성코드 탐지 등을 수행할 수 있다. 이를 더 구체적으로 설명하면 이하와 같다.
상기 악성코드 탐지장치가 특정 프로그램에 의해 실행되는 행위를 동작 기호 및 고유 인덱스의 조합으로 구성된 문자열로 표시한 예가 도 2에 도시되어 있다.
도 2의 (a)를 참조하여 보면,
'F1938'은 프로세스가 파일 인덱스 ‘1938’에 해당하는 파일을 생성하는 행위.
'K21'은 프로세스가 레지스트리 인덱스 ‘21’에 해당하는 레지스트리 키를 생성하는 행위
'V22'는 프로세스가 레지스트리 인덱스 ‘22’에 해당하는 레지스트리 값을 설정하는 행위
'R91'는 프로세스가 파일 인덱스 ‘91’에 해당하는 파일을 읽는 행위
'W129'는 프로세스가 파일 인덱스 ‘129’에 해당하는 파일을 기록하는 행위
'P129'는 프로세스가 파일 인덱스 ‘129’에 해당하는 파일을 읽어들여 새로운 (자식)프로세스를 생성하고 실행하는 행위
‘p'는 본 프로세스를 종료하는 행위
임을 알 수 있다. 도 2의 (a)에 나타낸 행위를 더 분석해 보면,
1. 예시의 프로세스는 초기에 새로운 파일을 생성하고(F1938), 특정 레지스트리 키 및 값들을 설정(K21V22K23V24K23V25K26V27K28V29K30V31K32V33) 한다.
2. 이후 다시 새로운 파일들을 생성하고(F91F129), 이 파일들을 각각 읽고 쓴 후(R91W129), 이 파일을 바탕으로 새로운 자식 프로세스를 생성(P129) 한다.
3. 이 후 파일 고유 인덱스는 다르지만 2.의 과정을 반복한다.
4. 초기에 생성한 파일을 삭제(f1938)하고, 본 프로세스를 종료(p)한다.
문자열로 표현된 동적 행위를 더 간편하게 다루기 위하여, 상기 탐지장치는 동작 기호 및 고유 인덱스로 조합된 문자열을 “정규화”할 수 있다. 상기 정규화는 상기 문자열에서 고유 인덱스(숫자)를 제외한 후, 소정의 정규화 표현 규칙에 따라 표현하는 것일 수 있으며, 정규화 표현 규칙의 일 예는 하기 표2와 같다.
표기법 설 명 예 시
* 0 회 이상 a*b : b, ab, aab, aaab
(ab)* : 없음, ab, abab, ababab
+ 1 회 이상 a+b: ab, aab, aaab, aaaab
? 0 또는 1 회 a?b : b, ab
[] 문자 클래스 [abc]d : ad, bd, cd
() 하위식 여러식을 하나로 묶음 a(b|d)c : abc|adc
- 범위 지정 [a-z] : a부터 z까지 중 문자 1 개
[1-9] : 1부터 9까지 중 숫자 1 개

^

부정
[^abc]d : ad, bd, cd는 포함하지 않고 ed, fd 등을 포함
[^a-z] : 알파벳 소문자로 시작하지 않는 모든 문자
$ 문자열의 끝 abz$ : z가 문자열의 끝임을 의미
상기 표 2의 정규화 표현 규칙에 따라 문자열을 정규화하는 과정이 도 2의 (b)에 도시되어 있다. 즉, 도 2의 (a)와 같이 표현되었던 동적 행위 문자열은 먼저 고유 인덱스(숫자)가 제외된 후, 표 2의 규칙에 따라 축약되었다.
상기 악성코드 탐지장치는 위에서의 설명과 같이 도출된 정규화 문자열을 악성 코드 탐지에 사용할 수 있다. 일 예로, 상기 악성코드 탐지장치는 상기 정규화된 문자열을 기 저장된 악성 코드의 문자열과 비교한 결과에 기초하여 특정 프로그램의 유해성을 판단할 수 있다. 즉, 상기 악성코드 탐지장치는 도출된 정규화 문자열을 수집해 놓은 악성 코드의 정규화 문자열과 비교한 후, 그 결과 문자열 간의 유사도, 접근 또는 변조를 시도하는 레지스트리 키 또는 레지스트리 값의 유사도, 생성한 자식 프로세스(child process) 개수의 유사도 등을 바탕으로 문자열을 도출한 프로그램의 유해성을 판단할 수 있는 것이다.
더 나아가, 어느 악성 코드의 특징적 동적 행위 패턴이 분석되면, 상기 행위 패턴을 표현한 문자열을 이용하여 기존의 악성코드 탐지, 신,변종 악성코드 탐지 및 악성코드 유형 분류가 수행될 수 있다.
도 3은 본 명세서의 일 실시예에 따라 특정 프로그램의 유해성을 판단하는 과정을 나타낸 도면이다. 이때 악성 코드
『94BDAB8B217CF7E2560B44D3C77EB0EDA334914A8CD902F857DF389C148EDBAE』의 동적 행위가 분석되었다. (여기서, 『 』는 악성코드 실행파일의 SHA-256 알고리즘에 따른 고유 해쉬 값으로 악성코드를 표기하는 방법이다.)
상기 악성 코드의 동적 행위를 표현한 문자열을 보건대, 상기 악성 코드는 “<MVX_PATH>\sample.exe" 악성파일을 읽어 첫 번째 (부모) 프로세스를 생성한 후, 새로운 악성 파일을 생성하고 생성된 파일을 실행시켜 두 번째 (자식) 프로세스를 생성 및 실행하였다. 이 후 생성된 자식 프로세스는 다수의 레지스트리 값 및 파일 값을 변조하는 등의 악성 행위를 수행하였다.
도 4는 본 명세서의 다른 실시예에 따라 특정 프로그램의 유해성을 판단하는 과정을 나타낸 도면이다. 이때 악성 코드
『94356CFC7E9ED2CE423A3E11675EF719F33B023DC8CBFC4ADDA061F57E1D5914』 의 동적 행위가 분석되었다.
상기 악성 코드가 생성한 자식 프로세스들은 공통적으로 정규화 문자열
F(KV){7}(FFRWP)+Ffp
를 갖는 것을 알 수 있다. 또한 접근/변조를 시도하는 레지스트리 키 및 값이 동일한 점, 다수의 자식 프로세스를 100~200개 생성하는 점을 공통점으로 갖고 있다.
이와 같이 동적 행위 표현식(문자열)은 직관적이고 효율적으로 유사 코드를 선별하는 작업에 적용될 수 있어 악성 코드 탐지에 유용하다.
한편, 악성코드 탐지장치는 상기 과정에서 도출된 문자열을 바탕으로 프로세스의 행위를 상태 천이도로 도식화하여 표현함으로써 프로세스의 행위를 가시화할 수 있다. 도 5는 상태 천이도를 나타낸 예시 도면이다. 이러한 상태 천이도 역시 유사 행위를 수행하는 코드들을 직관적으로 알아챌 수 있는 도구가 될 수 있다.
도 6은 본 명세서의 일 실시예에 따라 프로그램의 행위를 분석하는 방법을 도시한 흐름도이다.
이하에서 상술하는 컴퓨팅 자원 배분 방법은 도 1 내지 도 5에서 설명한 악성코드 탐지장치에 의해 수행될 수 있다.
상기 악성코드 탐지장치는, 프로세스 상태 및 상태 천이를 시각화(예컨대, 문자열화 또는 도시화)할 수 있다. 또한, 상기 악성코드 탐지장치는 시각화된 상태 천이 패턴을 이용하여 악성 행위를 실시간 탐지할 수 있다.
상기 악성코드 탐지장치는 특정 프로그램에 의해 실행되는 행위를 동작 기호 및 고유 인덱스의 조합으로 구성된 문자열로 표시할 수 있다(S610). 여기서 상기 동작 기호는 상기 실행되는 행위의 종류에 대응되고, 상기 고유 인덱스는 파일 또는 레지스트리 경로 각각과 대응된다.
이때 상기 실행되는 행위의 종류는, 프로세스 관련 행위, 파일 관련 행위, 레지스트리 관련 행위 및 네트워크 관련 행위를 포함할 수 있다. 더 구체적으로는 상기 프로세스 관련 행위는 프로세스 생성 및 프로세스 종료를 포함하고, 상기 파일 관련 행위는 파일 생성, 파일 쓰기, 파일 읽기, 파일 삭제를 포함하고, 상기 레지스트리 관련 행위는 레지스트리 키 생성, 레지스트리 키 삭제, 레지스트리 값 설정, 레지스트리 값 삭제를 포함하며, 상기 네트워크 관련 행위 접속 대기, 데이터 전송, 데이터 수신을 포함할 수 있다. 이러한 경우에 프로세스 생성, 파일 생성, 레지스트리 키 생성, 레지스트리 값 설정, 접속 대기, 데이터 전송에 대응되는 동작 기호는 영문 알파벳 대문자로 표시되고, 프로세스 종료, 파일 삭제, 레지스트리 키 삭제, 레지스트리 값 삭제, 데이터 수신에 대응되는 동작 기호는 영문 알파벳 소문자로 표시될 수 있다.
상기 악성코드 탐지장치는, 상기 동작 기호 및 고유 인덱스로 조합된 문자열을 정규화할 수 있다(S620). 이때 상기 악성코드 탐지장치는, 상기 문자열에서 고유 인덱스를 제외한 후, 고유 인덱스가 제거된 문자열을 소정의 정규화 표현 규칙에 따라 표현할 수 있다.
다음으로 상기 악성코드 탐지장치는, 상기 정규화된 문자열을 기 저장된 악성 코드의 문자열과 비교한 결과에 기초하여 상기 특정 프로그램의 유해성을 판단할 수 있다(S630). 이때 상기 악성코드 탐지장치는, 상기 정규화된 문자열을 악성 코드의 정규화된 문자열과 비교하고, 그 비교 결과 문자열 간의 유사도, 접근 또는 변조를 시도하는 레지스트리 키 또는 레지스트리 값의 유사도, 생성한 자식 프로세스(child process) 개수의 유사도 중 어느 하나 이상에 근거하여 유해성을 판단할 수 있다.
한편, 상기 악성코드 탐지장치는, 상기 정규화된 문자열을 기초로 상기 특정 프로그램에 의해 실행되는 행위를 상태 천이도 형태로 도시할 수도 있다.
도 7은 본 명세서의 일 실시예에 따른 악성코드 탐지장치의 블록도이다.
상기 악성코드 탐지장치(100)는 동적 행위 시각화부(101), 동적 행위 정규화부(102), 동적 행위 분석부(103)를 포함하여 구성될 수 있다.
상기 악성코드 탐지장치(100)는 도 1 내지 도 6에서 설명한 프로그램(프로세스) 동적 행위 분석 방법을 수행할 수 있다. 즉 상기 악성코드 탐지장치(100)는 상기 악성코드 탐지장치는, 프로세스 상태 및 상태 천이를 시각화(예컨대, 문자열화 또는 도시화)하고, 시각화된 상태 천이 패턴을 이용하여 악성 행위를 실시간 탐지할 수 있다.
상기 악성코드 탐지장치(100)의 동적 행위 시각화부(101)는 특정 프로그램에 의해 실행되는 행위를 동작 기호 및 고유 인덱스의 조합으로 구성된 문자열로 표시할 수 있다. 여기서 상기 동작 기호는 상기 실행되는 행위의 종류에 대응되고, 상기 고유 인덱스는 파일 또는 레지스트리 경로 각각과 대응된다.
이때 상기 실행되는 행위의 종류는, 프로세스 관련 행위, 파일 관련 행위, 레지스트리 관련 행위 및 네트워크 관련 행위를 포함할 수 있다. 더 구체적으로는 상기 프로세스 관련 행위는 프로세스 생성 및 프로세스 종료를 포함하고, 상기 파일 관련 행위는 파일 생성, 파일 쓰기, 파일 읽기, 파일 삭제를 포함하고, 상기 레지스트리 관련 행위는 레지스트리 키 생성, 레지스트리 키 삭제, 레지스트리 값 설정, 레지스트리 값 삭제를 포함하며, 상기 네트워크 관련 행위 접속 대기, 데이터 전송, 데이터 수신을 포함할 수 있다. 이러한 경우에 프로세스 생성, 파일 생성, 레지스트리 키 생성, 레지스트리 값 설정, 접속 대기, 데이터 전송에 대응되는 동작 기호는 영문 알파벳 대문자로 표시되고, 프로세스 종료, 파일 삭제, 레지스트리 키 삭제, 레지스트리 값 삭제, 데이터 수신에 대응되는 동작 기호는 영문 알파벳 소문자로 표시될 수 있다.
상기 악성코드 탐지장치(100)의 동적 행위 정규화부(102)는 상기 동작 기호 및 고유 인덱스로 조합된 문자열을 정규화할 수 있다. 이때 상기 악성코드 탐지장치는, 상기 문자열에서 고유 인덱스를 제외한 후, 고유 인덱스가 제거된 문자열을 소정의 정규화 표현 규칙에 따라 표현할 수 있다.
상기 악성코드 탐지장치(100)의 동적 행위 분석부(103)는 상기 정규화된 문자열을 기 저장된 악성 코드의 문자열과 비교한 결과에 기초하여 상기 특정 프로그램의 유해성을 판단할 수 있다. 이때 상기 동적 행위 분석부(103)는, 상기 정규화된 문자열을 악성 코드의 정규화된 문자열과 비교하고, 그 비교 결과 문자열 간의 유사도, 접근 또는 변조를 시도하는 레지스트리 키 또는 레지스트리 값의 유사도, 생성한 자식 프로세스(child process) 개수의 유사도 중 어느 하나 이상에 근거하여 유해성을 판단할 수 있다.
한편, 상기 악성코드 탐지장치(100)의 동적 행위 시각화부(101)는, 상기 정규화된 문자열을 기초로 상기 특정 프로그램에 의해 실행되는 행위를 상태 천이도 형태로 도시할 수도 있다.
한편, 본 명세서의 방법은, 상기 도 6의 설명에서 서술한 각 단계를 수행하는 명령들을 포함하는 컴퓨터로 판독 가능한 기록매체로 구현될 수도 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 처리 시스템의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.
한편, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함할 수 있다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
이상, 본 발명의 실시예에 대하여 설명하였으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 특허청구범위에 기재된 본 발명의 사상으로부터 벗어나지 않는 범위 내에서, 구성 요소의 부가, 변경, 삭제 또는 추가 등에 의해 본 발명을 다양하게 수정 및 변경시킬 수 있을 것이며, 이 또한 본 발명의 권리범위 내에 포함된다고 할 것이다.
100 : 악성코드 탐지장치
101 : 동적 행위 시각화부
102 : 동적 행위 정규화부
103 : 동적 행위 분석부

Claims (15)

  1. 악성코드 탐지장치가 프로그램의 행위를 분석하는 방법으로서,
    특정 프로그램에 의해 실행되는 행위를 동작 기호 및 고유 인덱스의 조합으로 구성된 문자열로 표시하는 단계와,
    상기 동작 기호는 상기 실행되는 행위의 종류에 대응되고, 상기 고유 인덱스는 파일 또는 레지스트리 경로 각각과 대응되며,;
    상기 동작 기호 및 고유 인덱스로 조합된 문자열을 정규화하는 단계;
    상기 정규화된 문자열을 기 저장된 악성 코드의 문자열과 비교한 결과에 기초하여 상기 특정 프로그램의 유해성을 판단하는 단계; 및
    상기 정규화된 문자열을 기초로 상기 특정 프로그램에 의해 실행되는 행위를 상태천이도 형태로 도시하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 실행되는 행위의 종류는
    프로세스 관련 행위, 파일 관련 행위, 레지스트리 관련 행위 및 네트워크 관련 행위를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 프로세스 관련 행위는 프로세스 생성 및 프로세스 종료를 포함하고,
    상기 파일 관련 행위는 파일 생성, 파일 쓰기, 파일 읽기, 파일 삭제를 포함하고,
    상기 레지스트리 관련 행위는 레지스트리 키 생성, 레지스트리 키 삭제, 레지스트리 값 설정, 레지스트리 값 삭제를 포함하고,
    상기 네트워크 관련 행위 접속 대기, 데이터 전송, 데이터 수신을 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    프로세스 생성, 파일 생성, 레지스트리 키 생성, 레지스트리 값 설정, 접속 대기, 데이터 전송에 대응되는 동작 기호는 영문 알파벳 대문자로 표시되고,
    프로세스 종료, 파일 삭제, 레지스트리 키 삭제, 레지스트리 값 삭제, 데이터 수신에 대응되는 동작 기호는 영문 알파벳 소문자로 표시되는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 동작 기호 및 고유 인덱스로 조합된 문자열을 정규화하는 단계는,
    상기 문자열에서 고유 인덱스를 제외한 후, 고유 인덱스가 제거된 문자열을 소정의 정규화 표현 규칙에 따라 표현하는 단계인 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 특정 프로그램의 유해성을 판단하는 단계는,
    상기 정규화된 문자열을 악성 코드의 정규화된 문자열과 비교하여
    문자열 간의 유사도, 접근 또는 변조를 시도하는 레지스트리 키 또는 레지스트리 값의 유사도, 생성한 자식 프로세스(child process) 개수의 유사도 중 어느 하나 이상에 근거하여 유해성을 판단하는 단계인 것을 특징으로 하는 방법.
  7. 삭제
  8. 특정 프로그램에 의해 실행되는 행위를 동작 기호 및 고유 인덱스의 조합으로 구성된 문자열로 표시하는 동적 행위 시각화부와,
    상기 동작 기호는 상기 실행되는 행위의 종류에 대응되고, 상기 고유 인덱스는 파일 또는 레지스트리 경로 각각과 대응되며,;
    상기 동작 기호 및 고유 인덱스로 조합된 문자열을 정규화하는 동적 행위 정규화부;
    상기 정규화된 문자열을 기 저장된 악성 코드의 문자열과 비교한 결과에 기초하여 상기 특정 프로그램의 유해성을 판단하는 동적 행위 분석부;를 포함하며,
    상기 동적 행위 시각화부는,
    상기 정규화된 문자열을 기초로 상기 특정 프로그램에 의해 실행되는 행위를 상태천이도 형태로 도시하는 것을 특징으로 하는 악성코드 탐지장치.
  9. 제8항에 있어서,
    상기 실행되는 행위의 종류는
    프로세스 관련 행위, 파일 관련 행위, 레지스트리 관련 행위 및 네트워크 관련 행위를 포함하는 것을 특징으로 하는 악성코드 탐지장치.
  10. 제9항에 있어서,
    상기 프로세스 관련 행위는 프로세스 생성 및 프로세스 종료를 포함하고,
    상기 파일 관련 행위는 파일 생성, 파일 쓰기, 파일 읽기, 파일 삭제를 포함하고,
    상기 레지스트리 관련 행위는 레지스트리 키 생성, 레지스트리 키 삭제, 레지스트리 값 설정, 레지스트리 값 삭제를 포함하고,
    상기 네트워크 관련 행위 접속 대기, 데이터 전송, 데이터 수신을 포함하는 것을 특징으로 하는 악성코드 탐지장치.
  11. 제10항에 있어서,
    프로세스 생성, 파일 생성, 레지스트리 키 생성, 레지스트리 값 설정, 접속 대기, 데이터 전송에 대응되는 동작 기호는 영문 알파벳 대문자로 표시되고,
    프로세스 종료, 파일 삭제, 레지스트리 키 삭제, 레지스트리 값 삭제, 데이터 수신에 대응되는 동작 기호는 영문 알파벳 소문자로 표시되는 것을 특징으로 하는 악성코드 탐지장치.
  12. 제8항에 있어서,
    상기 동적 행위 정규화부는
    상기 문자열에서 고유 인덱스를 제거한 후, 고유 인덱스가 제거된 문자열을 소정의 정규화 표현 규칙에 따라 표현하는 것을 특징으로 하는 악성코드 탐지장치.
  13. 제8항에 있어서,
    상기 동적 행위 분석부는,
    상기 정규화된 문자열을 악성 코드의 정규화된 문자열과 비교하여
    문자열 간의 유사도, 접근 또는 변조를 시도하는 레지스트리 키 또는 레지스트리 값의 유사도, 생성한 자식 프로세스(child process) 개수의 유사도 중 어느 하나 이상에 근거하여 유해성을 판단하는 것을 특징으로 하는 악성코드 탐지장치.
  14. 삭제
  15. 제1항 내지 제6항 중 어느 하나에 따른 방법의 각 단계를 수행하는 명령들을 포함하는 컴퓨터 판독 가능 기록매체.
KR1020140005737A 2014-01-16 2014-01-16 프로세스의 동적 행위 정규화 및 악성 코드 탐지 방법 KR101544010B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140005737A KR101544010B1 (ko) 2014-01-16 2014-01-16 프로세스의 동적 행위 정규화 및 악성 코드 탐지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140005737A KR101544010B1 (ko) 2014-01-16 2014-01-16 프로세스의 동적 행위 정규화 및 악성 코드 탐지 방법

Publications (2)

Publication Number Publication Date
KR20150085741A KR20150085741A (ko) 2015-07-24
KR101544010B1 true KR101544010B1 (ko) 2015-08-13

Family

ID=53875931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140005737A KR101544010B1 (ko) 2014-01-16 2014-01-16 프로세스의 동적 행위 정규화 및 악성 코드 탐지 방법

Country Status (1)

Country Link
KR (1) KR101544010B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11058953B2 (en) * 2019-07-26 2021-07-13 Roblox Corporation Detection of malicious games
KR20210147570A (ko) 2020-05-29 2021-12-07 경기대학교 산학협력단 프로세스 마이닝을 통한 악성코드 인식장치
CN116089955B (zh) * 2022-12-01 2023-09-26 之江实验室 一种基于windows操作系统的系统调用去噪方法及装置

Also Published As

Publication number Publication date
KR20150085741A (ko) 2015-07-24

Similar Documents

Publication Publication Date Title
You et al. Profuzzer: On-the-fly input type probing for better zero-day vulnerability discovery
US10387655B2 (en) Method, system and product for using a predictive model to predict if inputs reach a vulnerability of a program
JP7023259B2 (ja) 悪意あるファイルを検出するためのシステムおよび方法
JP6697123B2 (ja) プロファイル生成装置、攻撃検知装置、プロファイル生成方法、および、プロファイル生成プログラム
TWI528216B (zh) 隨選檢測惡意程式之方法、電子裝置、及使用者介面
Carlin et al. The effects of traditional anti-virus labels on malware detection using dynamic runtime opcodes
KR101858620B1 (ko) 기계 학습을 이용한 자바스크립트 분석 장치 및 방법
JP7287480B2 (ja) 解析機能付与装置、解析機能付与方法及び解析機能付与プログラム
JP6282217B2 (ja) 不正プログラム対策システムおよび不正プログラム対策方法
US11250129B2 (en) Method and system for determining affiliation of software to software families
WO2017177003A1 (en) Extraction and comparison of hybrid program binary features
CN110750789B (zh) 解混淆方法、装置、计算机设备和存储介质
KR101544010B1 (ko) 프로세스의 동적 행위 정규화 및 악성 코드 탐지 방법
US20230289444A1 (en) Data traffic characterization prioritization
EP3087527B1 (en) System and method of detecting malicious multimedia files
US20130007529A1 (en) Static analysis based on observed string values during execution of a computer-based software application
JP5441043B2 (ja) プログラム、情報処理装置、及び情報処理方法
KR102031592B1 (ko) 악성코드를 탐지하기 위한 방법 및 장치
US8489537B2 (en) Segmenting sequential data with a finite state machine
CN113971284A (zh) 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质
WO2023067665A1 (ja) 解析機能付与方法、解析機能付与装置及び解析機能付与プログラム
JP6935849B2 (ja) 学習方法、学習装置及び学習プログラム
JP6123350B2 (ja) 検証装置、検証方法、及びプログラム
WO2020008632A1 (ja) 仮説推論装置、仮説推論方法、及びコンピュータ読み取り可能な記録媒体
JP6740184B2 (ja) 付与装置、付与方法および付与プログラム

Legal Events

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

Payment date: 20190701

Year of fee payment: 5