KR101194746B1 - 침입코드 인식을 위한 코드 모니터링 방법 및 장치 - Google Patents

침입코드 인식을 위한 코드 모니터링 방법 및 장치 Download PDF

Info

Publication number
KR101194746B1
KR101194746B1 KR1020050135839A KR20050135839A KR101194746B1 KR 101194746 B1 KR101194746 B1 KR 101194746B1 KR 1020050135839 A KR1020050135839 A KR 1020050135839A KR 20050135839 A KR20050135839 A KR 20050135839A KR 101194746 B1 KR101194746 B1 KR 101194746B1
Authority
KR
South Korea
Prior art keywords
code
pattern
extracting
resident
monitoring
Prior art date
Application number
KR1020050135839A
Other languages
English (en)
Other versions
KR20070071963A (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 KR1020050135839A priority Critical patent/KR101194746B1/ko
Priority to EP06823708.0A priority patent/EP1971927B1/en
Priority to PCT/KR2006/005000 priority patent/WO2007078055A1/en
Priority to US12/159,716 priority patent/US8245299B2/en
Priority to JP2008548375A priority patent/JP4903223B2/ja
Publication of KR20070071963A publication Critical patent/KR20070071963A/ko
Application granted granted Critical
Publication of KR101194746B1 publication Critical patent/KR101194746B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Peptides Or Proteins (AREA)

Abstract

침입코드 인식을 위한 코드 모니터링 방법 및 장치가 개시된다. 본 발명은 모니터링 대상 코드에 대해 시스템에 상주하는 상주 코드인지 시스템에 침입한 침입코드인지를 판별하는 코드 모니터링 방법에 관한 것으로, 먼저, 모니터링 대상 코드로부터 제1코드 패턴을 추출한다. 다음으로, 저장 수단으로부터 제2코드 패턴을 로드하고, 제1코드 패턴 및 제2코드 패턴과의 거리를 계산한다. 계산된 거리를 임계치와 비교하여 모니터링 대상 코드를 침입코드로 판단한다.

Description

침입코드 인식을 위한 코드 모니터링 방법 및 장치{Method of and apparatus for monitoring code for intrusion code detection}
도 1은 악성코드의 생명주기를 도시한 것이다.
도 2a는 변종 악성코드의 생명주기를 도시한 것이다.
도 2b는 악성코드에 대응하는 시점을 도시한 것이다.
도 3은 본 발명에 따른 코드 모니터링 장치에 대한 블록도를 도시한 것이다.
도 4는 도 3의 코드 패턴 추출부에서 수행되는 코드 패턴 추출 과정에 대한 흐름도를 도시한 것이다.
도 5는 로드된 16진 코드(hexadecimal code)의 모니터링 대상 코드의 예를 도시한 것이다.
도 6은 DNA 코드로 인코딩된 결과를 도시한 것이다.
도 7은 코돈(codon) 규칙에 따라 프로테인 코드로 치환된 결과를 도시한 것이다.
도 8은 도 7에 도시된 프로테인 코드중에서 소정 조건을 만족하는 부분을 추출한 예를 도시한 것이다.
도 9는 도 3의 저장부에 면역 판단용 패턴이 저장되는 과정을 도시한 흐름도이다.
도 10은 종래 기술과 본 발명에 따른 변종 악성코드의 생명주기를 비교하여 도시한 것이다.
본 발명은 침입코드 인식을 위한 코드 모니터링 방법 및 장치에 관한 것으로, 컴퓨터에서 동작하는 애플리케이션(application)의 코드를 모니터링하여 모니터링 대상 코드가 침입코드인지 상주코드인지를 구분하는 코드 모니터링 방법 및 장치에 관한 것이다.
악성코드라 함은 제작자가 의도적으로 사용자에게 피해를 주고자 만든 모든 악의의 목적을 가진 프로그램 및 매크로(macro), 스크립트(script) 등 컴퓨터상에서 작동하는 모든 실행가능한 형태의 코드를 말한다.
도 1은 악성코드의 생명주기를 도시한 것이다. 도시된 바에 따르면, 악성코드의 생명주기는 악성코드가 작성된 후 공개되는 시기(10), 통신망을 통해 감염파일이 배포되고 확산되는 시기(11), 악성코드가 사용자에게 인지되는 시기(12), 백신 프로그램의 업데이트 후 악성코드가 제거되는 시기(13) 그리고 소멸되는 시기(14)로 구분될 수 있다.
도 2a는 변종 악성코드의 생명주기를 도시한 것이다. 가로축은 시간을 나타내고, 세로축은 감염수를 나타낸다. 도시된 바에 따르면, 신종 악성코드(20)가 출현하여 소멸되면 변종 악성코드(21)가 지속적으로 발생하여 악성코드의 생명주기가 길어지는 것을 알 수 있다.
도 2b는 악성코드에 대응하는 시점을 도시한 것이다. 참조번호 22는 사용자가 악성코드에 대응하기 위해 백신 프로그램을 업데이트(update) 해야한다고 생각하는 시기를 나타내고, 23은 실제로 백신 프로그램이 업데이트되는 시기를 나타낸다. 도시된 바에 따르면, 사용자가 업데이트를 원하는 시기와 실제 업데이트 시기가 차이가 있음을 알 수 있다.
상술한 바와 같이 백신 프로그램의 업데이트 시기의 차이는 악성코드가 확산된 후 분석이 이루어져서 대응 방법이 마련되고, 그에 따라 새로운 엔진으로 업데이트하는 시간이 오래 걸리기 때문에 발생한다. 또한 변종 출현으로 악성코드 분석에 더욱 많은 시간과 인력이 소모되는 이유도 있다.
본 발명이 이루고자 하는 기술적 과제는 모니터링 대상 코드로부터 코드 패턴을 추출하고, 추출된 패턴을 상주 코드의 특성을 반영한 패턴과 비교함으로써 모니터링 대상 코드가 침입코드인지 상주코드인지를 판별하는 코드 모니터링 방법 및 장치를 제공하는 데 있다.
상기 기술적 과제를 이루기 위한, 본 발명은 모니터링 대상 코드에 대해 시스템에 상주하는 상주 코드인지 상기 시스템에 침입한 침입코드인지를 판별하는 코드 모니터링 방법에 관한 것으로, 먼저, 상기 모니터링 대상 코드로부터 제1 코드 패턴을 추출한다. 다음으로, 저장 수단으로부터 제2 코드 패턴을 로드하고, 상기 제1 코드 패턴 및 제2 코드 패턴과의 거리를 계산한다. 계산된 거리를 제1 임계치와 비교하여 상기 모니터링 대상 코드를 침입코드로 판단한다.
상기 기술적 과제를 이루기 위한, 본 발명은 시스템에서 모니터링 대상 코드에 대해 상기 시스템에 상주하는 상주 코드인지 상기 시스템에 침입한 침입코드인지를 판별하는 코드 모니터링 장치에 관한 것으로, 코드 패턴 추출부 및 코드 판단부를 포함한다. 상기 코드 패턴 추출부는 상기 모니터링 대상 코드로부터 제1 코드 패턴을 추출한다. 상기 코드 판정부는 입력된 제2 코드 패턴과 상기 제1코드 패턴과의 거리를 계산하고, 계산된 거리를 제1 임계치와 비교하여 상기 모니터링 대상 코드를 침입코드로 판단한다.
이하에서 도면을 참조하여 본 발명을 보다 상세하게 설명하기로 한다.
생체 분자를 이용하여 정보를 처리하려는 분자정보처리기술 중에서 DNA 분자를 이용하는 DNA 분자 컴퓨팅 기술이 있다. DNA 분자 컴퓨팅은 기본적으로 DNA 염기서열에 정보를 저장하고 DNA 분자가 가진 화학적 특성을 이용하여 정보를 처리하는 방식이다. DNA 분자 컴퓨팅 기술은 면역계를 구성하는 세포들의 특성, 즉 과거 경험한 항원에 대한 기억을 지니는 것뿐 만아니라 새로운 패턴의 항원에 대해서도 대항할 수 있으므로, 이러한 특성을 이용하여 패턴 인식이나 특징 추출 등의 분야에 응용되어왔다. 본 발명에서는 모니터링 대상 코드에 대해 침입코드 여부를 판별하기 위해서 상술한 DNA 분자 컴퓨팅 개념을 도입하기로 한다.
도 3은 본 발명에 따른 코드 모니터링 장치에 대한 블록도를 도시한 것이다. 도시된 코드 모니터링 장치는 코드 패턴 추출부(31) 및 코드 판단부(32)를 포함한 다. 코드 모니터링 장치는 모니터링 대상 코드가 침입코드인지 상주 코드인지를 판단하기 위해 면역 판단 패턴을 저장하는 저장부(33)를 더 포함할 수 있다. 또한 코드 모니터링 장치는 모니터링 대상 코드가 코드 판단부(32)에서 침입코드로 판정되었을 때, 침입코드가 악성코드인지의 여부를 예측하는 악성코드 예측부(34)를 더 포함할 수 있다. 여기서, 저장부(33)는 통상적인 정보 저장 장치로서, 메모리, MD, CD, DVD 등이 될 수 있다.
코드 패턴 추출부(31)는 모니터링 대상 코드에서 판별에 사용할 코드를 미리 정해진 위치 및 길이에 따라 추출한다. 즉, 코드의 추출은 전체 모니터링 대상 코드에서 일정 비율로 일정 부분 이루어질 수 있다. 예를 들어, 1000 바이트(byte)인 코드가 있다면, 추출은 100 바이트만큼만 이루어질 수 있으며, 이때 100바이트는 서로 다른 위치에서 일정 길이, 즉 10 바이트씩 10개의 집합의 형태로 추출될 수 있다. 또한 추출된 코드는 다른 모니터링 대상 코드에서 추출된 코드와는 구별되는 고유성(uniqueness)을 갖는다. 만일 추출된 코드가 다른 모니터링 대상 코드에서 추출된 코드와 구별되지 않는다면, 모니터링 대상 코드의 다른 부분에서 동일한 방식으로 판별에 사용할 코드가 추출된다.
본 실시예에서는 코드 패턴을 추출하기 위해 생체 면역 체계 중에서 면역 판별을 위하여 항원의 일부가 모니터링되는 항원 제공 체계(antigen-presenting system)를 모방하기로 한다. 즉, 항원 제공 체계를 모니터링 대상 코드에 적용하여 모니터링 대상 코드를 변환하고, 변환된 코드로부터 코드 패턴을 추출한다. 본 실시예에서는 항원 제공 체계로서 DNA 배열로부터 단백질 코드를 추출하고, 추출된 단백질 코드에 자기(self)/비자기(nonself)를 구분하는 기전을 적용하여 모니터링 대상 코드로부터 코드 패턴을 추출한다.
도 4는 상술한 생체 면역 체계에 따라 코드 패턴 추출부(31)에서 수행되는 코드 패턴 추출 과정에 대한 흐름도를 도시한 것이다.
먼저, 실행 코드의 경로를 추적하여 전체 실행 코드를 로드한다(41단계). 실행 코드를 로드하는 시점은 컴퓨터 시스템에 파일이 복사될 때, 네트웍에서 이메일(email) 등을 통해 파일 전송이 이루어질 때, 사용자가 실행 파일을 실행시켰을 때, 그 외에 악성코드 대응 프로그램에 대하여 사용자가 정한 시점 중 어느 하나가 될 수 있다. 도 5는 로드된 16진 코드(hexadecimal code)의 예를 도시한 것이다. 참조번호 51은 16진 코드(52)의 위치를 나타낸다.
로드된 코드는 DNA 코드로 인코딩된다(42단계). 인코딩은 도 5에 도시된 16진 코드에서 각 바이트에 할당된 값을 4로 나누어 그 나머지가 각각 0,1,2,3이면, 그 나머지를 각각 DNA 염기인 A,T,G,C로 치환하여 이루어진다. 그 결과가 도 6에 도시되어있다.
43단계에서는 DNA 코드를 프로테인 코드로 변환한다. 변환은 공지의 사람에 대한 코돈 규칙(codon rule)에 따라 이루어진다. 사람에 대한 코돈 규칙은 다음 표와 같다.
프로테인 치환값 염기배열
알라닌(Alanine) A GCA, GCC, GCG, GCT
시스틴(Cysteine) C TGC, TGT
아스파탐산(Aspartic acid) D GAC, GAT
글루타민산(Glutaminc acid) E GAA, GAG
페닐알라닌(Phenylalanine) F TTC, TTT
글리신(Glycine) G GGA, GGC, GGG, GGT
히스티딘(Histidine) H CAC, CAT
이소로이신(Isoleucine) I ATA, ATC, ATT
리신(Lysine) K AAA, AAG
로이신(Leucine) L TTA, TTG, CTA, CTC, CTG, CTT
메티오닌(Methionine) M ATG
아스파라긴(Asparagine) N AAC, AAT
프롤린(Proline) P CCA, CCC, CCG, CCT
글루타민(Glutamine) Q CAA, CAG
아르기닌(Arginine) R CGA, CGC, CGG, CGT
세린(Serine) S TCA, TCC, TCG, TCT, AGC, AGT
트레오닌(Threonine) T ACA, ACC, ACG, ACT
발린(Valine) V GTA, GTC, GTG, GTT
트립토판(Tryptophan) W TGG
티로신(Tyrosine) Y TAT
종결 암호(Stop Codons) Z TAA, TAG, TGA
표 1에 따라, 예를 들어, DNA 코드중 GCA의 염기배열을 갖는 경우 A로 치환된다. 도 7은 표 1에 따라 치환된 결과를 도시한 것이다.
44단계에서는 도 7에 도시된 프로테인 코드로부터 코드 패턴을 추출한다. 코드 패턴은 프로테인 코드로부터 생체 면역 체계에서 자기(self)/비자기(nonself)를 구분하기 위하여 사용되는 기전인 주조직 적합성 복합체1(Major Histocompatibility Complex 1, MHC1) 분자의 바인딩 패턴(binding pattern)에 해당하는 부분을 추출함으로써 얻어진다.
MHC1 분자 바인딩 패턴은 다음의 두 정규식으로 표현될 수 있다.
(a) [A-Z]{2}Y[A-Z][YF][A-Z]{2}[LMIV]
(b) [A-Z]{4}N[A-Z]{3}[LMIV]
여기서, [A-Z]는 알파벳 A에서 Z까지의 선택범위를 나타내고, {2}는 연속되는 문자의 개수를 나타낸다.
도 8은 도 7에 도시된 프로테인 코드중에서 상술한 (a) 또는 (b) 식을 만족하는 부분을 추출한 예를 도시한 것이다. 도면에서 참조번호 81은 파일이름, 82는 (a) 또는 (b) 식의 패턴, 83은 (a) 또는 (b) 식에 따른 프로테인 코드 그리고 84는 83의 프로테인 코드에 대한 파일 내의 위치를 각각 나타낸다.
도 3의 코드 판단부(32)는 저장부(33)에 저장된 면역 판단용 코드 패턴을 로드하고, 로드된 면역 판단용 코드 패턴을 코드 패턴 추출부(31)에서 추출된 코드 패턴과 비교하여 추출된 코드가 상주 코드인지 침입코드인지를 판별한다.
여기서, 면역 판단용 코드 패턴은 상주 코드를 이용하여 코드 패턴 추출부(31)와 코드 판단부(32)에 의해 면역 판단용 코드 패턴으로 판별되어 저장부(32)에 저장된 패턴이다.
도 9는 저장부(32)에 면역 판단용 패턴이 저장되는 과정을 도시한 흐름도이다. 먼저, 상주 코드에 대한 코드 패턴을 추출한다(91단계). 여기서 상주 코드에 대한 코드 패턴을 간단히 제3 코드 패턴이라고 하기로 한다. 코드 패턴의 추출은 도 4에 도시된 과정에 따라 이루어진다.
92단계에서는 랜덤 패턴이 생성된다. 이때 랜덤 패턴은 상주 코드에 대한 코드 패턴(제3 코드 패턴)과 동일한 길이를 갖고 무작위로 생성된다. 93단계에서는 상주 코드에 대한 코드 패턴(제3 코드 패턴)과 i번째 랜덤 패턴과의 거리를 비교한다. 거리는 다양한 방법으로 계산할 수 있으며, 예를 들어 다음 식과 같이 알파벳 순서의 차의 제곱을 합하여 계산될 수 있다.
Figure 112005078592673-pat00001
여기서, S는 상주 코드 패턴, T는 랜덤 패턴을 나타내며, N은 상주 코드 패턴의 개수, n은 패턴의 길이를 나타낸다. 여기서, 상주 코드에 대한 코드 패턴(제3 코드 패턴)과 i번째 랜덤 패턴과의 거리를 간단히 제2 거리라고 하기로 한다.
i번째 랜덤 패턴에 대해 수학식 1에 따라 계산된 거리(제2 거리)가 제2 임계치보다 적거나 같다면(94단계), 해당 랜덤 패턴을 면역 판단용 패턴으로 저장부(33)에 저장한다(95단계).
여기서, 제2 임계치는 소정 값으로, 본 실시 예에서는 상주 코드의 패턴 분포에 따라 상주 코드 패턴의 분포에서 임의의 두 패턴간 거리의 1/2이 제2 임계치의 최소값으로 선택된다. 만일 제2 임계치가 높게 설명되면 선택되는 면역 판단용 패턴이 많아지는 경향이 있고, 낮게 설명되면 면역 판단용 패턴이 적어지는 경향이 있다.
코드 판단부(32)는 도 9에 도시된 과정에 따라 저장부(33)에 저장된 면역 판단용 패턴과 코드 패턴 추출부(31)에서 추출된 모니터링 대상 코드의 패턴 간의 거리를 다음 식과 같이 계산한다.
Figure 112005078592673-pat00002
여기서, S는 면역 판단용 패턴, T는 모니터링 대상 코드의 패턴, N은 면역 판단용 패턴의 개수, M은 모니터링 대상 코드의 패턴의 개수, n은 패턴의 길이를 나타낸다.
수학식 2에 따라 계산된 거리가 제1 임계치보다 작거나 같으면 모니터링 대상 코드를 상주 코드로, 제1 임계치보다 크다면 모니터링 대상 코드를 침입코드로 판정한다.
코드 판단부(32)가 모니터링 대상 코드를 침입코드로 판단한 경우, 악성코드 예측부(34)는 침입코드가 악성코드인지 아닌지를 판별한다. 악성코드 여부에 대한 판별 과정은 사용자의 경험 및 의심되는 악성코드에 따라 달라진다. 일반적으로 나타나는 악성코드의 증상은 파일특성 파악, 고트(goat) 파일 실험, 프로세스 및 쓰레드(thread), 레지스트리(registry) 변화, 네트워크 포트, 코드 에뮬레이션(code emulation), 실행 코드 디버깅(debugging), 시스템 모니터링 등의 방법을 이용하여 파악될 수 있다. 또한 악성코드의 증상은, 예를 들어 스파이웨어(spyware), 웜(worm), 보트(bot), 트로이언(trojan), 파일 바이러스, 매크로(macro) 바이러스와 같은 악성코드의 종류 또는 압축 유무에 따라 다른 증상을 나타낼 수 있다.
악성코드 판단은 사용자의 경험을 기초로 하여 정형화되거나 자동화될 수 있고, 악성코드로 판별되는 경우 악성코드 예측부(34)는 해당 코드 또는 다른 코드의 실행을 중단하고 네트워크상의 다른 컴퓨터로 경보를 출력할 수 있다.
다음 표는 상술한 제1 임계치와 면역 판단용 패턴 생성 비율에 따라 모니터링 대상 코드중 침입코드를 판별한 실험결과를 나타낸 것이다.
임계치 3500 3300 3100 2900 2700 2500 2300 2100 1900
비율 1.E-06
#1 0% 25% 37.5% 37.5% 50% 50% 50% 62.5% 37.5%
#2 12.5% 12.5% 37.5% 37.5% 50% 50% 50% 50% 50%
비율 5.E-06
#1 12.5% 37.5% 50% 50% 62.5% 62.5% 62.5% 62.5% 50%
#2 12.5% 12.5% 50% 62.5% 50% 62.5% 62.5% 62.5% 50%
비율 1.E-05
#1 12.5% 37.5% 50% 62.5% 62.5% 87.5% 62.5% 50% 62.5%
#2 12.5% 25% 50% 62.5% 62.5% 62.5% 62.5% 75% 62.5%
표에서 비율은 면역 판단용 패턴 생성 비율을 나타내고, 생성 가능한 조합의 모든 패턴 개수 대 실제 생성되는 패턴의 개수의 비율이다. 예를 들어, 패턴의 길이가 n이고, 각 위치마다 m개의 문자로 표현될 수 있는 패턴이 있다면, 이 패턴의 생성 가능한 조합의 패턴 개수는 m의 n제곱 개가 될 것이다. 생성 비율이라 함은 이러한 m의 n제곱 개의 패턴의 1/10, 1/100, … 등의 개수만큼 만을 생성하여 사용한다는 것을 뜻한다. 표 2에서는 총 가능한 조합의 패턴 수 중 1/1,000,000에 해당하는 개수, 50/1,000,000에 해당하는 개수, 1/100,000의 생성 비율을 사용하여 침입코드의 판단 성능을 측정한 것이다.
표에 따르면, 침입코드 판별을 위한 제1 임계치가 2700, 2500, 2300 일 때 침입코드 판별 성능이 우수함을 알 수 있고, 면역 판단용 패턴 생성 비율이 높을수록 침입코드 판별 성능이 우수함을 알 수 있다.
다른 실험결과로서, 기존의 백신 프로그램을 회피하는 악성코드 샘플에 대해 침입코드 판별 성능을 실험하였다.
총 48,471개의 샘플 중에서 기존 백신 프로그램에 의해 검출된 악성코드는 17,885개이며, 기존 백신 프로그램을 회피하는 악성코드는 30,506개이다. 랜덤하게 선택한 기존 백신 프로그램을 회피하는 악성코드 2,575개에 대한 비자기(non-self) 진단에 따라 침입코드로 판별된 악성코드는 제1 임계치를 2700으로하고 면역 판단용 패턴 생성 비율을 각각 1.E-06, 1.E-05로 하였을 때 48%, 68%의 판별률을 보였다. 따라서 기존의 백신 프로그램보다 우수한 성능을 보임을 알 수 있다.
도 10은 종래 기술과 본 발명에 따른 변종 악성코드의 생명주기를 비교하여 도시한 것이다. 참조번호 10은 종래의 변종 악성코드의 생명주기이고, 102는 본 발명에 따른 변종 악성코드의 생명주기이다. 참조번호 22는 악성코드에 대해 사용자가 악성코드에 대응하기 위해 백신 프로그램을 업데이트 해야한다고 생각하는 시기를 나타내고, 23은 종래의 백신 프로그램이 실제로 업데이트되는 시기이다. 참조번호 103은 본 발명에 따라 백신 프로그램이 실제로 업데이트되는 시기를 나타낸다. 도시된 바에 따르면, 본 발명의 경우 모니터링 대상 코드에 대해 침입코드 여부를 판별하고, 침입코드로 판별되면 다시 악성코드 여부를 예측함으로써 종래 기술보다 빨리 악성코드 발생 여부를 백신 프로그램 배포자에게 보고함으로써, 백신 프로그램의 업데이트를 보다 빨리 업데이트할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD_ROM, 자기 테이프, 플로피 디스크 및 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브, 예를 들어 인터넷을 통한 전송의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서, 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명에 따르면, 생체 면역 체계에서 자기/비자기를 구분하기 위하여 사용되는 기전을 사용하여 모니터링 대상 코드가 상주코드인지 침입코드인지를 판별함으로써 종래 기술에 비해 침입코드의 판별 성능이 개선되고, 그에 따라 종래 기술에 비해 백신 프로그램의 업데이트가 빨라져서 악성코드에 보다 빨리 대처할 수 있다.

Claims (34)

  1. 모니터링 대상 코드가 시스템에 상주하는 상주 코드인지 상기 시스템에 침입한 침입코드인지를 판별하는 코드 모니터링 방법에 있어서,
    상기 모니터링 대상 코드로부터 제1 코드 패턴을 추출하는 단계;
    저장 수단으로부터 제2 코드 패턴을 로드하는 단계;
    상기 추출한 제1코드 패턴과 상기 로드한 제2 코드 패턴의 거리를 계산하는 단계; 및
    상기 계산된 거리를 제1 임계치와 비교하여 상기 모니터링 대상 코드가 침입코드인지 여부를 판별하는 단계를 포함하는 것을 특징으로 하는 코드 모니터링 방법.
  2. 제1항에 있어서, 상기 제1 코드 패턴은
    상기 모니터링 대상 코드의 일정 부분으로부터 각 모니터링 대상 코드별로 고유성을 갖도록 추출되는 것을 특징으로 하는 코드 모니터링 방법.
  3. 제1항에 있어서, 상기 제1 코드 패턴은
    생체 면역 판별을 위한 항원 제공 체계를 상기 모니터링 대상 코드에 적용하여 상기 모니터링 대상 코드를 변환한 코드에서 소정 패턴을 나타내는 부분을 추출한 것을 특징으로 하는 코드 모니터링 방법.
  4. 제1항에 있어서, 상기 제1 코드 패턴을 추출하는 단계는
    상기 모니터링 대상 코드를 DNA 염기배열로 인코딩하는 단계;
    상기 DNA 염기배열을 그에 대응하는 프로테인 값으로 치환하는 단계; 및
    상기 치환에 따라 생성된 배열에서 소정 조건을 만족하는 패턴을 상기 제1 코드 패턴으로 추출하는 단계
    를 포함하는 것을 특징으로 하는 코드 모니터링 방법.
  5. 제4항에 있어서, 상기 인코딩하는 단계는
    상기 모니터링 대상 코드를 바이트 단위로 상기 DNA 염기 개수에 대해 모듈로 연산하는 단계; 및
    모듈로 연산 결과 발생한 나머지를 DNA 염기로 치환하는 단계를 포함하는 것을 특징으로 하는 코드 모니터링 방법.
  6. 제4항에 있어서, 상기 프로테인 값으로 치환하는 단계는;
    상기 DNA 염기배열에서 3개 연속하는 DNA 염기를 코돈 규칙에 따라 대응하는 값으로 치환하는 것을 특징으로 하는 코드 모니터링 방법.
  7. 제4항에 있어서, 상기 제1 코드 패턴은
    상기 치환에 따라 생성된 배열로부터 주조직 적합성 복합체 분자의 바인딩 패턴 조건들중 어느 하나를 만족하는 것을 특징으로 하는 코드 모니터링 방법.
  8. 제1항에 있어서, 상기 제2 코드 패턴을 로드하는 단계는,
    상기 상주 코드로부터 제3 코드 패턴을 추출하는 단계;
    상기 제3 코드 패턴과 동일한 길이의 랜덤 패턴들을 생성하는 단계;
    상기 생성한 랜덤 패턴과 상기 추출한 제3코드 패턴과의 제2 거리를 계산하는 단계; 및
    상기 제2 거리가 제2 임계치보다 작으면 상기 랜덤 패턴을 상기 저장 수단에 상기 제2 코드 패턴으로 저장하는 단계
    를 포함하는 것을 특징으로 하는 코드 모니터링 방법.
  9. 제8항에 있어서, 상기 제3 코드 패턴은
    미리 정해진 위치 및 길이에 따라 상기 상주 코드로부터 추출되는 것을 특징으로 하는 코드 모니터링 방법.
  10. 제8항에 있어서, 상기 제3코드 패턴은
    생체 면역 판별을 위한 생체 면역 체계를 상기 상주 코드에 적용하여, 상기 상주 코드를 변환한 코드에서 소정 패턴을 나타내는 부분을 추출한 것을 특징으로 하는 코드 모니터링 방법.
  11. 제8항에 있어서, 상기 제3 코드 패턴을 추출하는 단계는,
    상기 상주 코드를 DNA 염기배열로 인코딩하는 단계;
    상기 DNA 염기배열을 그에 대응하는 프로테인 값으로 치환하는 단계; 및
    상기 치환에 따라 생성된 배열에서 소정 조건을 만족하는 패턴을 상기 제3코드 패턴으로 추출하는 단계를 포함하는 것을 특징으로 하는 코드 모니터링 방법.
  12. 제11항에 있어서, 상기 인코딩하는 단계는
    상기 상주 코드를 바이트 단위로 상기 DNA 염기의 개수에 대해 모듈로 연산하는 단계; 및
    상기 연산 결과에 따른 나머지를 DNA 염기로 치환하는 단계
    를 포함하는 것을 특징으로 하는 코드 모니터링 방법.
  13. 제11항에 있어서, 상기 프로테인 값으로 치환하는 단계는,
    상기 DNA 염기배열에서 3개 연속하는 DNA 염기를 코돈 규칙에 따라 대응하는 값으로 치환하는 것을 특징으로 하는 코드 모니터링 방법.
  14. 제11항에 있어서, 상기 제3 코드 패턴으로 추출하는 단계는,
    상기 치환에 따라 생성된 배열로부터 주조직 적합성 복합체 분자의 바인딩 패턴 조건들 중 어느 하나를 만족하는 패턴을 상기 제3 코드 패턴으로 추출하는 것을 특징으로 하는 코드 모니터링 방법.
  15. 제8항에 있어서, 상기 제2 임계치는
    상기 상주 코드의 코드 패턴 분포에서 선택된 두 코드 패턴간 거리의 1/2을 최소값으로 갖는 것을 특징으로 하는 코드 모니터링 방법.
  16. 제8항에 있어서, 상기 제2 거리는
    상기 각 랜덤 패턴과 상기 제3 코드 패턴간의 알파벳 순서의 차의 제곱의 합으로 계산되는 것을 특징으로 하는 코드 모니터링 방법.
  17. 제1항에 있어서, 상기 거리는
    상기 제1 코드 패턴 및 제2 코드 패턴간의 알파벳 순서의 차의 제곱의 합으로 계산되는 것을 특징으로 하는 코드 모니터링 방법.
  18. 제1항에 있어서,
    상기 모니터링 대상 코드가 침입코드로 판별되면, 상기 모니터링 대상 코드가 악성코드인지를 판단하는 단계를 더 포함함을 특징으로 하는 코드 모니터링 방법.
  19. 시스템에서 모니터링 대상 코드가 상기 시스템에 상주하는 상주 코드인지 상기 시스템에 침입한 침입코드인지를 판별하는 코드 모니터링 장치에 있어서,
    상기 모니터링 대상 코드로부터 제1 코드 패턴을 추출하는 코드 패턴 추출부; 및
    제2 코드 패턴과 상기 제1 코드 패턴과의 거리를 계산하고, 상기 계산된 거리를 제1 임계치와 비교하여 상기 모니터링 대상 코드를 침입코드로 판별하는 코드 판단부를 포함하는 것을 특징으로하는 코드 모니터링 장치.
  20. 제19항에 있어서, 상기 코드 패턴 추출부는
    상기 모니터링 대상 코드의 일정 부분으로부터 상기 모니터링 대상 코드별로 고유성을 갖도록 상기 제1 코드 패턴을 추출하는 것을 특징으로 하는 코드 모니터링 장치.
  21. 제19항에 있어서, 상기 코드 패턴 추출부는
    생체 면역 판별을 위한 항원 제공 체계를 상기 모니터링 대상 코드에 적용하여 상기 모니터링 대상 코드를 변환한 코드에서 소정 패턴을 나타내는 부분을 상기 제1 코드 패턴으로 추출하는 것을 특징으로 하는 코드 모니터링 장치.
  22. 제21항에 있어서, 상기 코드 패턴 추출부는
    상기 모니터링 대상 코드를 DNA 염기배열로 인코딩하고, 상기 인코딩한 DNA 염기배열을 그에 대응하는 프로테인 값으로 치환하며, 상기 치환에 따라 생성된 배열에서 소정 조건을 만족하는 코드를 상기 제1 코드 패턴으로 추출하는 것을 특징으로 하는 코드 모니터링 장치.
  23. 제22항에 있어서, 상기 소정 조건은
    주조직 적합성 복합체 분자의 바인딩 패턴 조건들중 어느 하나인 것을 특징으로 하는 코드 모니터링 장치.
  24. 제19항에 있어서,
    상기 제2 코드 패턴을 저장하는 저장부를 더 포함하고,
    상기 코드 패턴 추출부는 상기 상주 코드에 대해 제3 코드 패턴들을 추출하고, 상기 제3 코드 패턴과 동일한 길이의 랜덤 패턴을 생성하고,
    상기 코드 판단부는 상기 생성한 랜덤 패턴과 상기 추출한 제3 코드 패턴간의 제2 거리를 각각 계산하고, 상기 제2 거리가 제2 임계치보다 작으면 해당 랜덤 패턴을 상기 저장부에 상기 제2 코드 패턴으로 저장하는 것을 특징으로 하는 코드 모니터링 장치.
  25. 제19항에 있어서, 상기 코드 판단부는,
    상기 모니터링 대상 코드가 침입코드로 판별되면, 상기 모니터링 대상 코드가 악성코드인지를 판단하는 악성코드 예측부를 더 포함하는 것을 특징으로 하는 코드 모니터링 장치.
  26. 삭제
  27. 모니터링 대상 코드가 시스템에 상주하는 상주 코드인지 상기 시스템에 침입한 침입코드인지를 판별하는 코드 모니터링을 위한 면역 판단용 코드 패턴을 추출하는 방법에 있어서,
    상기 상주 코드로부터 코드 패턴을 추출하는 단계;
    상기 추출한 코드 패턴에 상응하는 랜덤 패턴을 생성하는 단계;
    상기 랜덤 패턴과 상기 코드 패턴과의 거리를 계산하는 단계; 및
    상기 계산한 거리가 임계치보다 작으면 해당 랜덤 패턴을 면역 판단용 코드 패턴으로 추출하는 단계
    를 포함하는 것을 특징으로 하는 면역 판단용 코드 패턴 추출 방법.
  28. 제27항에 있어서, 상기 코드 패턴을 추출하는 단계는,
    생체 면역 판별을 위한 항원 제공 체계를 상기 상주 코드에 적용하여 상기 상주 코드를 변환한 코드에서 소정 패턴을 나타내는 부분을 추출한 것을 특징으로 하는 코드 모니터링 방법.
  29. 제27항에 있어서, 상기 코드 패턴을 추출하는 단계는,
    상기 상주 코드를 DNA 염기배열로 인코딩하는 단계;
    상기 인코딩된 DNA 염기배열을 그에 대응하는 프로테인 값으로 치환하는 단계; 및
    상기 치환에 따라 생성된 배열에서 소정 조건을 만족하는 패턴을 상기 코드패턴으로 추출하는 단계
    를 포함하는 것을 특징으로 하는 면역 판단용 코드 패턴 추출 방법.
  30. 제29항에 있어서, 상기 인코딩하는 단계는,
    상기 상주 코드를 바이트 단위로 상기 DNA 염기의 개수에 대해 모듈로 연산하는 단계; 및
    상기 연산 결과에 따른 나머지를 DNA 염기로 치환하는 단계
    를 포함하는 것을 특징으로 하는 면역 판단용 코드 패턴 추출 방법.
  31. 제29항에 있어서, 상기 프로테인 값으로 치환하는 단계는,
    상기 DNA 염기배열에서 3개 연속하는 DNA 염기를 코돈 규칙에 따라 대응하는 값으로 치환하는 것을 특징으로 하는 면역 판단용 코드 패턴 추출 방법.
  32. 제29항에 있어서, 상기 코드 패턴으로 추출하는 단계는,
    상기 치환에 의해 생성된 배열로부터 주조직 적합성 복합체 분자의 바인딩 패턴 조건들 중에서 어느 하나를 만족하는 패턴을 상기 코드 패턴으로 추출하는 것을 특징으로 하는 면역 판단용 코드 패턴 추출 방법.
  33. 모니터링 대상 코드가 시스템에 상주하는 상주 코드인지 상기 시스템에 침입한 침입코드인지를 판별하는 코드 모니터링을 위한 면역 판단용 코드 패턴 추출 장치에 있어서,
    상기 상주 코드로부터 코드 패턴을 추출하는 코드 패턴 추출부;
    상기 추출한 코드 패턴과 동일한 길이의 랜덤 패턴을 생성하는 랜덤 패턴 생성부;
    상기 생성한 랜덤 패턴과 상기 추출한 코드 패턴과의 거리를 각각 계산하는 거리 계산부; 및
    상기 계산한 거리가 임계치보다 작으면 해당 랜덤 패턴을 면역 판단용 코드 패턴으로 저장하는 코드 패턴 저장부
    를 포함하는 것을 특징으로 하는 면역 판단용 코드 패턴 추출 장치.
  34. 제1항 내지 제18항, 및 제27항 내지 제32항 중 어느 하나의 항에 따른 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020050135839A 2005-12-30 2005-12-30 침입코드 인식을 위한 코드 모니터링 방법 및 장치 KR101194746B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020050135839A KR101194746B1 (ko) 2005-12-30 2005-12-30 침입코드 인식을 위한 코드 모니터링 방법 및 장치
EP06823708.0A EP1971927B1 (en) 2005-12-30 2006-11-27 Method of and apparatus for monitoring code to detect intrusion code
PCT/KR2006/005000 WO2007078055A1 (en) 2005-12-30 2006-11-27 Method of and apparatus for monitoring code to detect intrusion code
US12/159,716 US8245299B2 (en) 2005-12-30 2006-11-27 Method of and apparatus for monitoring code to detect intrusion code
JP2008548375A JP4903223B2 (ja) 2005-12-30 2006-11-27 対象コードモニタリング方法及びその装置並びにコードパターン抽出方法及びその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050135839A KR101194746B1 (ko) 2005-12-30 2005-12-30 침입코드 인식을 위한 코드 모니터링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20070071963A KR20070071963A (ko) 2007-07-04
KR101194746B1 true KR101194746B1 (ko) 2012-10-25

Family

ID=38228376

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050135839A KR101194746B1 (ko) 2005-12-30 2005-12-30 침입코드 인식을 위한 코드 모니터링 방법 및 장치

Country Status (5)

Country Link
US (1) US8245299B2 (ko)
EP (1) EP1971927B1 (ko)
JP (1) JP4903223B2 (ko)
KR (1) KR101194746B1 (ko)
WO (1) WO2007078055A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587537B1 (en) * 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
KR101377014B1 (ko) * 2007-09-04 2014-03-26 삼성전자주식회사 면역 데이터베이스 기반의 악성코드 진단 방법 및 시스템
US8381290B2 (en) * 2009-07-17 2013-02-19 Exelis Inc. Intrusion detection systems and methods
US8898479B2 (en) * 2011-08-17 2014-11-25 The United States Of America As Represented By The Administrator Of The National Aeronautics Space Administration Integrated genomic and proteomic security protocol
US9323923B2 (en) * 2012-06-19 2016-04-26 Deja Vu Security, Llc Code repository intrusion detection
KR102074734B1 (ko) * 2013-02-28 2020-03-02 삼성전자주식회사 시퀀스 데이터에서의 패턴 검색 방법 및 장치
EP3039566A4 (en) * 2013-08-28 2017-06-21 Hewlett-Packard Enterprise Development LP Distributed pattern discovery
US9282110B2 (en) * 2013-11-27 2016-03-08 Cisco Technology, Inc. Cloud-assisted threat defense for connected vehicles
US10728040B1 (en) * 2014-08-08 2020-07-28 Tai Seibert Connection-based network behavioral anomaly detection system and method
US10103890B2 (en) * 2014-08-08 2018-10-16 Haw-Minn Lu Membership query method
WO2024071451A1 (ko) * 2022-09-26 2024-04-04 시큐레터 주식회사 Ocr 기술을 이용하여 비실행 파일의 악성 매크로를 탐지하기 위한 방법 및 이를 위한 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448668A (en) * 1993-07-08 1995-09-05 Perelson; Alan S. Method of detecting changes to a collection of digital signals
US7029911B1 (en) * 1996-08-07 2006-04-18 The Regents Of The University Of California AFC1 and RCE1: isoprenylated CAAX processing enzymes
KR100304116B1 (ko) 1998-12-10 2001-09-24 이계철 오용침입탐지시스템에서의오용침입탐지장치및그방법
US6735700B1 (en) * 2000-01-11 2004-05-11 Network Associates Technology, Inc. Fast virus scanning using session stamping
DE60139144D1 (de) * 2000-11-30 2009-08-13 Nippon Telegraph & Telephone Audio-dekodierer und audio-dekodierungsverfahren
KR20020063314A (ko) 2001-01-27 2002-08-03 이요섭 데이터통신망의 보안시스템 및 그 방법
JP4457525B2 (ja) * 2001-06-11 2010-04-28 株式会社デンソー 距離測定装置
KR100427449B1 (ko) * 2001-12-14 2004-04-14 한국전자통신연구원 네트워크 기반 침입탐지시스템의 적응적 규칙 추정에 의한침입탐지방법
US7779062B2 (en) * 2004-08-18 2010-08-17 Ripple Effects Holdings Limited System for preventing keystroke logging software from accessing or identifying keystrokes
US8539580B2 (en) * 2002-06-19 2013-09-17 International Business Machines Corporation Method, system and program product for detecting intrusion of a wireless network
KR20040080844A (ko) 2003-03-14 2004-09-20 주식회사 안철수연구소 정적 분석을 이용한 악성 스크립트 감지 방법
KR100516304B1 (ko) 2003-05-16 2005-09-26 주식회사 안철수연구소 프로세스메모리의 악성코드 검출기 및 그 방법
KR100490729B1 (ko) 2003-05-20 2005-05-24 한국전자통신연구원 보안 게이트웨이 시스템과 이를 이용한 침입 탐지 방법
US7739737B2 (en) * 2003-07-29 2010-06-15 Wisconsin Alumni Research Foundation Method and apparatus to detect malicious software
US20040172551A1 (en) * 2003-12-09 2004-09-02 Michael Connor First response computer virus blocking.
KR20050070306A (ko) 2003-12-30 2005-07-07 주식회사 포스코 자동차 연료탱크용 강판에 피복하는 수지용액 및 자동차연료탱크용 강판의 제조방법

Also Published As

Publication number Publication date
EP1971927A4 (en) 2012-10-03
US20090049551A1 (en) 2009-02-19
EP1971927A1 (en) 2008-09-24
EP1971927B1 (en) 2018-01-17
JP4903223B2 (ja) 2012-03-28
US8245299B2 (en) 2012-08-14
KR20070071963A (ko) 2007-07-04
JP2009522636A (ja) 2009-06-11
WO2007078055A1 (en) 2007-07-12

Similar Documents

Publication Publication Date Title
KR101194746B1 (ko) 침입코드 인식을 위한 코드 모니터링 방법 및 장치
Griffin et al. Automatic generation of string signatures for malware detection
Alasmary et al. Soteria: Detecting adversarial examples in control flow graph-based malware classifiers
US8464340B2 (en) System, apparatus and method of malware diagnosis mechanism based on immunization database
Stolfo et al. Towards stealthy malware detection
Zolkipli et al. A framework for malware detection using combination technique and signature generation
Canzanese et al. Toward an automatic, online behavioral malware classification system
KR20150124370A (ko) 악성 프로세스 행동을 검출하기 위한 방법, 장치 및 시스템
US11080398B2 (en) Identifying signatures for data sets
CN105046152A (zh) 基于函数调用图指纹的恶意软件检测方法
EP3800570B1 (en) Methods and systems for genetic malware analysis and classification using code reuse patterns
US11093605B2 (en) Monitoring real-time processor instruction stream execution
KR100954356B1 (ko) 코드 보호 기법을 고려한 악성 프로그램 감지 시스템 및 그방법
CN109547496B (zh) 一种基于深度学习的主机恶意行为检测方法
KR101327740B1 (ko) 악성코드의 행동 패턴 수집장치 및 방법
CN107368740B (zh) 一种针对数据文件中可执行代码的检测方法及系统
Ninyesiga et al. Malware classification using API system calls
Qi et al. A Malware Variant Detection Method Based on Byte Randomness Test.
Zhang et al. Using irp with a novel artificial immune algorithm for windows malicious executables detection
Li et al. Malware obfuscation measuring via evolutionary similarity
KR102348359B1 (ko) 관심 동작 영역 기반의 edr 장치 및 방법
Damodaran Combining dynamic and static analysis for malware detection
Ngwobia et al. Synthesizing DNAs of a system's binary files from its functional and structural representation
Ninyesiga et al. Behavioral malware detection by data mining
Moreira et al. Spada: a statistical program attack detection analysis

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150917

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160920

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180917

Year of fee payment: 7