KR101116770B1 - 악성코드 진단 및 치료 장치 및 그 방법 - Google Patents
악성코드 진단 및 치료 장치 및 그 방법 Download PDFInfo
- Publication number
- KR101116770B1 KR101116770B1 KR1020100036775A KR20100036775A KR101116770B1 KR 101116770 B1 KR101116770 B1 KR 101116770B1 KR 1020100036775 A KR1020100036775 A KR 1020100036775A KR 20100036775 A KR20100036775 A KR 20100036775A KR 101116770 B1 KR101116770 B1 KR 101116770B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- byte code
- signature
- code
- script
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/564—Static detection by virus signature recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 악성코드 진단 기술에 관한 것으로, 데이터 변환 및 기록 장치에서 시그니처, 진단 코드 및 치료 코드가 기록된 원시 스크립트를 바이트 코드 룰 데이터로 변환한 후, 이를 엔진 데이터로 기록하고, 바이트 코드 데이터 실행장치에서 엔진 데이터로부터 바이트 코드 룰 데이터를 로딩하여, 시그니처 목록을 작성하고, 검사 대상과 시그니처 목록의 각 시그니처들에 대한 매치 여부를 검사하여 결과 정보를 작성하고, 바이트 코드 룰 데이터의 진단 및 치료 바이트 코드를 수행하여 검사 대상을 진단 및 치료하는 것을 특징으로 한다. 본 발명에 의하면, 악성코드 변종에 대한 대응 작업을 신속하고 용이하게 처리할 수 있도록 함으로써, 악성코드로 인한 피해 최소화 및 효율적인 대응을 가능하게 할 수 있으며, 악성코드 변종에 대한 진단율을 향상시켜, 일대일 대응으로 인한 진단 데이터의 증가를 최소화 할 수 있다.
Description
본 발명은 시스템에 악의적 행위를 행하는 악성코드의 진단 및 치료를 수행하는 장치 및 방법에 관한 것으로서, 특히 데이터 기반 진단 및 치료와 코드 기반 진단 및 치료의 장점을 접목시켜 효과적인 악성코드 진단 및 치료를 수행하는데 적합한 악성코드 진단 및 치료 장치 및 그 방법에 관한 것이다.
일반적으로 악성코드 진단은 각 악성코드 파일의 시그니처 데이터를 추가하여 진단하는 데이터 기반 진단 및 치료 장치와 진단/치료 코드를 작성하여 엔진에 추가하는 코드 기반 진단 및 치료 장치로 구분된다.
먼저, 스크립트로 작성된 시그니처와 진단 조건을 이용한 종래의 데이터 기반 진단 및 치료 기술은, 악성코드 변종 혹은 악성코드와 유사한 프로그램 파일을 진단 및 분류하기 위한 기술로서, 진단하려는 유형의 스트링 시그니처와 진단 조건을 스크립트로 작성하고, 대상 파일에 대해 스크립트의 시그니처와 진단 조건이 만족하는지를 확인한다. 그러나, 시그니처와 진단 조건이 스크립트로 작성되므로 사용자의 편의성은 높은 반면, 스크립트 데이터의 용량과 스크립트 파싱으로 발생하는 낮은 성능으로 인해 실제 안티 바이러스 제품에 적용되지 못하고 악성코드 대응 시 보조할 수 있는 도구로서만 사용되고 있다.
또한, 종래 데이터 기반 진단 및 치료 방식은 코드의 재 컴파일 및 테스트 절차 없이 악성코드에 대한 대응이 가능하므로 다수의 악성코드에 대해 신속한 대응이 가능하지만, 악성코드와 시그니처 데이터가 일대일로 대응되므로 악성코드 변종 출현 및 증가에 따라 시그니처 데이터의 증가 속도가 가속화되는 문제가 있다.
한편, 바이트 코드를 이용한 종래의 코드 기반 진단 및 치료 기술은 실제 하드웨어가 아닌 가상 머신에서 기계어보다 추상적인 형태의 바이너리 코드를 실행시키는 기술로 JAVA와 C# 등의 프로그래밍 언어를 이용하는 것이 대표적이다. 이러한 프로그래밍 언어들은 하드웨어에 의존적이지 않는 실행 코드를 생성하므로, 하드웨어에 최적화된 기계어에 비해 처리 속도는 늦지만 인터프리터를 통해 다양한 플랫폼에서 프로그램의 실행이 가능하다는 장점이 있다.
반면에 종래의 코드 기반 진단/치료는 코드 작성 및 테스트에 대한 부담이 있어 신속한 대응이 어렵고, 실행 바이너리의 잦은 변경으로 진단 엔진의 안정성이 떨어질 수 있다는 문제점이 있었다.
따라서, 본 발명은, 상술한 종래 문제를 해결하기 위해 악성 코드에 대해 신속하고 안정성 있는 대응과 효과적인 악성코드 변종 진단 및 치료 성능을 구현할 수 있는 악성코드 진단 및 치료 장치 및 그 방법을 제공하는 것을 목적으로 한다.
또한 본 발명은, 악성코드 진단을 위한 시그니처 및 진단/치료 코드를 바이트 코드 형태의 데이터로 작성하여 사용함으로써, 대응의 신속성과 진단 엔진의 안정성을 보장하고, 악성코드 변종 진단 성능을 향상시킬 수 있는 악성코드 진단 및 치료 장치 및 그 방법을 제공하는 것을 또 다른 목적으로 한다.
본 발명의 일 실시예에 따른 악성코드 진단 및 치료 장치는, 상기와 같은 목적을 달성하기 위한 것으로, 엔진 진단 데이터로부터 분리된 스크립트를 파싱 및 변환하여 바이트 코드 룰 데이터를 생성하고 생성된 바이트 코드 룰 데이터를 엔진 데이터로서 기록하는 데이터 변환 기록부와, 상기 엔진 데이터의 바이트 코드 룰 데이터를 로딩하여 검사 대상에 대한 시그니처 검사와 진단 및 치료 코드를 실행하는 실행부를 포함한다.
본 발명의 다른 실시예에 따른 악성코드 진단 및 치료 장치는, 악성 코드의 시그니처, 진단 및 치료 코드를 포함하는 스크립트를 변환하여 바이트 코드 룰 데이터를 생성하고, 생성된 바이트 코드 룰 데이터를 엔진 데이터로서 기록하는 데이터 변환 및 기록 장치와, 상기 엔진 데이터로부터 바이트 코드 룰 데이터를 로딩하여, 시그니처 목록을 작성하고, 검사 대상과 시그니처 목록의 각 시그니처들에 대한 매치 여부를 검사하여 결과 정보를 생성하고, 상기 바이트 코드 룰 데이터의 진단 바이트 코드 및 치료 코드 바이트 코드를 실행하여 검사 대상을 진단 및 치료하는 바이트 코드 데이터 실행장치를 포함한다.
본 발명의 일 실시예에 따른 악성코드 진단 및 치료 방법은, 엔진 진단 데이터로부터 분리된 스크립트를 파싱 및 변환하여 바이트 코드 룰 데이터를 생성하는 단계와, 상기 바이트 코드 룰 데이터를 엔진 데이터로서 기록하는 단계와, 상기 바이트 코드 룰 데이터를 로딩하여 검사 대상에 대한 시그니처 검사와 진단 및 치료 코드를 실행하는 단계를 포함한다.
본 발명의 다른 실시예에 따른 악성코드 진단 및 치료 방법은, 악성 코드의 시그니처, 진단 및 치료 코드를 포함하는 스크립트를 변환하여 바이트 코드 룰 데이터를 생성하는 단계와, 상기 바이트 코드 룰 데이터를 엔진 진단 데이터로서 기록하는 단계와, 상기 엔진 데이터로부터 바이트 코드 룰 데이터를 로딩하여 시그니처 목록을 작성하는 단계와, 검사 대상과 시그니처 목록의 각 시그니처들에 대한 매치 여부를 검사하여 결과 정보를 생성하는 단계와, 상기 바이트 코드 룰 데이터의 진단 및 치료 코드 바이트 코드를 실행하여 상기 검사 대상을 진단 및 치료하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면에 포함되어 있다.
상기와 같은 본 발명의 실시예에 따른 악성코드 진단 치료 장치 및 그 방법에 따르면, 악성코드 변종에 대한 대응 작업을 신속하고 용이하게 처리할 수 있도록 함으로써, 악성코드로 인한 피해 최소화 및 효율적인 대응을 가능하게 할 수 있으며, 악성코드 변종에 대한 진단율을 향상시켜 악성코드와 시그니처 데이터의 일대일 대응으로 인한 진단 데이터의 증가를 최소화 할 수 있다.
또한 컴파일 과정이 필요한 코드 진단을 사용하지 않고 바이트 코드 룰 데이터를 사용하므로, 악성코드 변종 샘플들에 대한 분석 자동화와 연계하여 자동화된 휴리스틱 진단 개발을 가능하게 할 수 있는 효과가 있다.
본 발명의 효과는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야의 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 악성코드 진단 및 치료 장치를 도시한 블록도,
도 2는 본 발명의 실시예에 따른 데이터 변환 및 기록장치의 구조를 도시한 블록도,
도 3은 본 발명의 실시예에 따른 데이터 변환 및 기록장치의 동작 절차를 도시한 흐름도,
도 4는 본 발명의 실시예에 따른 바이트 코드 데이터 실행 장치의 구조를 도시한 블록도,
도 5는 본 발명의 실시예에 따른 바이트 코드 데이터 실행 장치의 동작 절차를 도시한 흐름도.
도 2는 본 발명의 실시예에 따른 데이터 변환 및 기록장치의 구조를 도시한 블록도,
도 3은 본 발명의 실시예에 따른 데이터 변환 및 기록장치의 동작 절차를 도시한 흐름도,
도 4는 본 발명의 실시예에 따른 바이트 코드 데이터 실행 장치의 구조를 도시한 블록도,
도 5는 본 발명의 실시예에 따른 바이트 코드 데이터 실행 장치의 동작 절차를 도시한 흐름도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 연달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 발명의 실시예에서는 데이터 기반 진단 및 치료와 코드 기반 진단 및 치료의 장점을 접목시켜, 컴퓨팅 장치의 운용 프로그램에서 동작하는 악성 코드에 대해 대응하는 것으로, 악성코드 진단을 위한 시그니처 및 진단/치료 코드를 바이트 코드 형태의 데이터로 작성하여 사용함으로써, 대응의 신속성과 진단 엔진의 안정성을 보장하고, 악성코드 변종 진단 성능을 향상시키는 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 악성코드 진단 및 치료 장치를 도시한 블록도이다.
도 1을 참조하면, 악성코드 진단 및 치료 장치(100)는 텍스트 기반의 스크립트를 파싱 및 변환하여 바이트 코드 룰 데이터를 생성하고, 바이트 코드 룰 데이터를 엔진 데이터로서 기록하는 데이터 변환 및 기록 장치(110), 진단데이터와 함께 엔진 데이터로서 기록된 바이트 코드 룰 데이터가 저장되는 엔진 진단 데이터부(120)와, 엔진 데이터의 바이트 코드 룰 데이터를 로딩하여 검사 대상에 대한 시그니처 검사와 진단 및 치료 코드를 실행하는 바이트 코드 데이터 실행 장치(130)를 포함할 수 있다.
구체적으로 데이터 변환 및 기록 장치(110)는 악성 코드의 시그니처와, 진단 코드 및 치료 코드가 기록된 원시 스크립트(104)를 바이트 코드 룰 데이터로 변환한 후, 변환된 바이트 코드 룰 데이터를 다른 진단 데이터들과 함께 엔진 데이터로서 기록한다.
그리고 이 엔진 데이터는 엔진 진단 데이터부(120)에 저장되며, 여기서 엔진 데이터는 악성코드 진단 및 치료에 사용되는 데이터가 될 수 있다.
바이트 코드 데이터 실행 장치(130)는 엔진 진단 데이터부(120)로부터 엔진 데이터를 전달받고, 전달된 엔진 데이터로부터 바이트 코드 룰 데이터를 로딩하여 시그니처 목록을 작성할 수 있다. 그리고 검사 대상에 대해 시그니처 목록의 각 시그니처들에 대해 매치 여부를 검사하여 결과 정보를 생성하고, 바이트 코드 룰 데이터의 진단 및 치료 코드 바이트 코드를 실행하여 검사 대상을 진단 및 치료하게 된다.
도 2는 본 발명의 실시예에 따른 데이터 변환 및 기록장치의 구조를 도시한 블록도이다.
도 2를 참조하면, 데이터 변환 및 기록장치(110)는 원시 스크립트 분리부(200), 스크립트 파싱부(210), 바이트 코드 변환부(220), 진단 데이터 기록부(230) 등을 포함할 수 있다.
원시 스크립트 분리부(200)는 엔진 진단 데이터를 구성하는 원시 데이터(102)로부터 검사 대상 악성코드의 시그니처와 진단 및 치료 코드가 텍스트 기반으로 기록된 원시 스크립트(104)를 분리한 후, 이를 스크립트 파싱부(210)로 전달한다.
스크립트 파싱부(210)에서는 수신된 원시 스크립트(104)에 대한 파싱을 수행하여 스크립트의 시그니처, 진단/치료 명령어 및 연산자, 조건 값 중의 적어도 하나를 바이트 코드 데이터로 변환하기 위해 원시 스크립트(104)를 각각의 스크립트 토큰(212)으로 분리한다.
스크립트 파싱부(210)에 의해 분리된 각각의 스크립트 토큰(212)들은 바이트 코드 변환부(220)로 전달되며, 바이트 코드 변환부(220)는 스크립트 토큰(212)들을 바이트 코드로 변환하여 바이트 코드 룰 데이터(222)를 생성한다.
이러한 바이트 코드 룰 데이터(222)는 시그니처 데이터와 진단 및 치료를 수행하는 바이트 코드를 포함할 수 있다.
진단 데이터 기록부(230)는 바이트 코드 변환부(220)로부터 바이트 코드 룰 데이터(222)를 전달받는다. 그리고 원시 스크립트 분리부(200)로부터 분리된 원시 데이터(102)를 전달 받아 원시 데이터(102)에 포함된 진단 데이터(232)를 확인할 수 있다.
이에 진단 데이터 기록부(230)는 전달 받은 바이트 코드 룰 데이터(222)를 다른 진단 데이터(232)와 함께 악성 코드 진단 및 치료에 사용되는 엔진 데이터로서 엔진 진단 데이터부(120)에 전달하여 기록한다.
도 3은 본 발명의 실시예에 따른 데이터 변환 및 기록장치의 동작 절차를 도시한 흐름도이다.
도 3을 참조하면, 데이터 변환 및 기록장치(110)의 원시 스크립트 분리부(200)는 원시 데이터(102)를 입력 받아(S300), 원시 데이터(102)로부터 텍스트 기반의 원시 스크립트(104)를 분리하게 되며, 분리된 원시 스크립트(104)는 스크립트 파싱부(210)로 전달된다(S302).
그리고 스크립트 파싱부(210)에서는 원시 스크립트(104)에 대한 파싱을 수행하여 원시 스크립트(104)를 각각의 스크립트 토큰(212)으로 분리하게 된다(S304).
그리고 바이트 코드 변환부(220)는 스크립트 토큰(212)들을 바이트 코드로 변환하여 바이트 코드 룰 데이터(222)를 생성하게 된다(S306).
이후 진단 데이터 기록부(230)에서는 바이트 코드 룰 데이터(222)를 원시 데이터(102)에 포함되었던 다른 진단 데이터(232)와 함께 악성 코드 진단 및 치료에 사용되는 엔진 데이터로 기록하여 엔진 진단 데이터부(120)에 전달하게 된다(S308).
도 4는 본 발명의 실시예에 따른 바이트 코드 데이터 실행 장치의 구조를 도시한 블록도이다.
도 4를 참조하면, 바이트 코드 데이터 실행 장치(130)는 데이터 로딩부(400), 시그니처 비교부(410), 진단 코드 수행부(420) 및 치료 코드 수행부(430) 등을 포함할 수 있다.
데이터 로딩부(400)는 악성 코드 검사를 위한 데이터 로딩 및 준비 작업을 수행하는 것으로 엔진 진단 데이터부(120)로부터 바이트 코드 룰 데이터(222)를 로딩하고, 로딩된 바이트 코드 룰 데이터(222)로부터 시그니처 데이터(402)를 추출하여 시그니처 목록(404)을 작성한다. 여기서 시그니처 목록(404)은 시그니처의 비교 작업으로 인한 성능 저하 최소화를 위해, 시그니처 데이터(402)만을 모두 추출하여 작성된다.
그리고 시그니처 데이터는 바이트 코드 룰 데이터(222)에 기록된 악성코드 진단 목적의 시그니처, 와일드카드, 선택적 비교, 1/2 바이트 비교 등이 가능한 포맷으로 구성될 수 있다.
한편, 데이터 로딩부(400)는 바이트 코드 룰 데이터(222)를 진단 코드 수행부(420)와, 치료 코드 수행부(430)로 각각 전달할 수 있다.
시그니처 비교부(410)는 검사 대상과 시그니처 목록(404)의 각 시그니처들에 대한 매치 여부를 검사하여 매치 여부, 매치된 위치 및 매치된 개수 등이 포함될 수 있는 시그니처 매치 결과 정보(412)를 생성하고, 생성된 정보는 진단 코드 수행부(420)에 전달한다.
진단 코드 수행부(420)는 데이터 로딩부(400)로부터 전달 받은 바이트 코드 룰 데이터(222)의 진단 바이트 코드(422)를 실행하여 검사 대상이 진단 바이트 코드(422)를 만족하는지 여부, 즉 검사 대상이 악성코드인지 여부를 판별하게 된다.
여기서 진단 바이트 코드(422)는 특정 시그니처의 존재 여부, 매치된 개수, 매치된 옵셋, 검사 대상 파일의 헤더정보 및 특정 영역 값 등에서 적어도 하나의 비교 코드 또는 이를 확인하기 위한 확인 코드로 구성되며, 수행 시 시그니처 매치 결과 정보(412)를 사용할 수 있다.
치료 코드 수행부(430)는 바이트 코드 룰 데이터(222)의 치료 바이트 코드(432)를 실행하여 악성 코드의 치료를 수행하는 것으로, 치료 바이트 코드(432)에는 악성 코드 삭제를 포함한 치료 정보와 명령을 포함할 수 있다.
도 5는 본 발명의 실시예에 따른 바이트 코드 데이터 실행 장치의 동작 절차를 도시한 흐름도이다.
도 5를 참조하면, 바이트 코드 데이터 실행 장치(130)의 데이터 로딩부(400)는 엔진 진단 데이터부(120)에 저장된 바이트 코드 룰 데이터(222)를 로딩하고(S500), 로딩된 바이트 코드 룰 데이터(222)로부터 모든 시그니처 데이터(402)를 추출하여 시그니처 목록(404)을 작성하게 된다(S502).
시그니처 비교부(410)는 검사 대상과 시그니처 목록(404)의 각 시그니처들에 대한 매치 여부를 판별(S504)하여 추출함으로써, 시그니처 매치 결과 정보(412)를 생성하게 된다(S506).
이후, 진단 코드 수행부(420)는 시그니처 매치 결과 정보(412)를 참조하며, 바이트 코드 룰 데이터(222)에 포함된 진단 바이트 코드(422)를 수행(S508)하여 검사 대상이 악성코드인지 여부를 판별하게 된다(S510). 이에 검사 대상이 악성 코드인 경우에는 치료 코드 수행부(430)에 의해 바이트 코드 룰 데이터(222)에 포함된 치료 바이트 코드(432)를 수행하여 악성 코드의 치료를 수행하게 된다(S512).
이상 설명한 바와 같이, 본 발명의 실시예에 따른 악성코드 진단 및 치료 장치 및 그 방법은, 데이터 기반 진단 및 치료와 코드 기반 진단 및 치료의 장점을 접목시켜, 컴퓨팅 장치의 운용 프로그램에서 동작하는 악성 코드 진단을 위한 시그니처 및 진단/치료 코드를 바이트 코드 형태의 데이터로 작성하여 사용함으로써, 신속한 대응과 진단 엔진의 안정성을 보장하고, 악성코드 변종 진단 성능을 향상 시킨다.
또한, 악성코드 진단/치료에 최적화된 스크립트로 시그니처와 진단/치료 코드를 작성하여 대응 작업을 수행하므로, 고급 프로그래밍 언어를 이용한 엔진 코드 작성/ 컴파일로 인한 부하와 안정성 저하 위험을 감소시킬 수 있다.
그리고 진단 엔진은 바이트 코드로 변환된 룰 데이터를 사용하므로, 스크립트 용량으로 인한 부담과 파싱 작업에 대한 부하 없이, 코드 기반 진단에 준하는 악성코드 변종 진단 성능을 보장한다.
또한, 본 발명의 실시예는 진단 엔진의 바이트 코드 인터프리터를 통해 실행되므로, 플랫폼에 대한 고민 없이 시그니처와 진단/치료 스크립트를 손쉽게 작성할 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구 범위뿐만 아니라 이 특허청구 범위와 균등물에 의해 정해져야 한다.
100 : 악성코드 진단 및 치료 장치 102 : 원시데이터
104 : 원시 스크립트 110 : 데이터 변환 및 기록장치
120 : 엔진 진단 데이터부 130 : 바이트 코드 데이터 실행장치
104 : 원시 스크립트 110 : 데이터 변환 및 기록장치
120 : 엔진 진단 데이터부 130 : 바이트 코드 데이터 실행장치
Claims (14)
- 악성 코드의 시그니처, 진단 및 치료 코드를 포함하는 스크립트로부터 바이트 코드 룰 데이터를 생성하고, 생성된 바이트 코드 룰 데이터를 엔진 데이터로서 기록하는 데이터 변환 기록부와,
상기 엔진 데이터로부터 바이트 코드 룰 데이터를 로딩하여 시그니처 목록을 작성하고, 검사 대상과 시그니처 목록의 각 시그니처들에 대한 매치 여부를 검사하여 시그니처 매치 결과 정보를 생성하고, 상기 바이트 코드 룰 데이터의 진단 및 치료 바이트 코드를 실행하여 검사 대상을 진단 및 치료하는 바이트 코드 데이터 실행부를 포함하는
악성코드 진단 및 치료 장치.
- 제 1항에 있어서,
상기 데이터 변환 기록부는,
엔진 진단 데이터로부터 상기 스크립트를 분리하는 스크립트 분리부와,
상기 스크립트에 대한 파싱을 수행하여 상기 스크립트를 스크립트 토큰들로 분리하는 스크립트 파싱부와,
상기 스크립트 토큰들을 바이트 코드로 변환하여 상기 바이트 코드 룰 데이터를 생성하는 바이트 코드 변환부를 포함하며,
상기 엔진 진단 데이터에 포함된 진단 데이터는 상기 바이트 코드 룰 데이터와 함께 상기 엔진 데이터로서 기록되는
악성코드 진단 및 치료 장치.
- 삭제
- 제 2항에 있어서,
상기 바이트 코드 룰 데이터는,
상기 스크립트 토큰에 포함된 상기 스크립트의 시그니처, 진단 및 치료 명령어, 연산자 및 조건 값 중 적어도 하나를 바이트 코드 데이터로 변환한 것인
악성코드 진단 및 치료 장치.
- 제 1항에 있어서,
상기 실행부는,
상기 로딩된 바이트 코드 룰 데이터로부터 시그니처 데이터를 추출하여 시그니처 목록을 생성하는 로딩부와,
상기 검사 대상과 상기 시그니처 목록의 매치 여부를 검사하여 시그니처 매치 결과 정보를 생성하는 시그니처 비교부와,
상기 시그니처 매치 결과 정보를 전달 받고, 상기 바이트 코드 룰 데이터에 포함된 진단 바이트 코드를 실행하여 상기 검사 대상이 악성 코드인지 여부를 판단하는 진단 코드 수행부와,
상기 바이트 코드 룰 데이터에 포함된 치료 바이트 코드를 실행하여 악성 코드로 판단된 검사 대상에 대한 치료를 수행하는 치료 코드 수행부를 포함하는
악성코드 진단 및 치료 장치.
- 제 5항에 있어서,
상기 진단 코드 수행부는,
특정 시그니처의 존재 여부, 매치된 개수, 매치된 옵셋, 검사 대상 파일의 헤더정보 및 특정 영역 값 중 적어도 하나에 대한 확인을 통해 악성 코드 여부를 판별하는
악성코드 진단 및 치료 장치.
- 악성코드 진단 및 치료 장치에 의해 수행되는 악성코드 진단 및 치료 방법으로서,
악성 코드의 시그니처, 진단 및 치료 코드를 포함하는 스크립트로부터 바이트 코드 룰 데이터를 생성하는 단계와,
상기 바이트 코드 룰 데이터를 엔진 데이터로서 기록하는 단계와,
상기 엔진 데이터로부터 바이트 코드 룰 데이터를 로딩하여 시그니처 목록을 작성하는 단계와,
검사 대상과 시그니처 목록의 각 시그니처들에 대한 매치 여부를 검사하여 시그니처 매치 결과 정보를 생성하는 단계와,
상기 바이트 코드 룰 데이터의 진단 및 치료 바이트 코드를 실행하는 단계를 포함하는
악성코드 진단 및 치료 방법.
- 제 7항에 있어서,
상기 바이트 코드 룰 데이터를 생성하는 단계는,
엔진 진단 데이터로부터 상기 스크립트를 분리하는 단계와,
상기 스크립트에 대한 파싱을 수행하여 상기 스크립트를 스크립트 토큰들로 분리하는 단계와,
상기 스크립트 토큰들을 바이트 코드로 변환하여 상기 바이트 코드 룰 데이터를 생성하는 단계를 포함하는
악성코드 진단 및 치료 방법.
- 삭제
- 제 8항에 있어서,
상기 바이트 코드 룰 데이터는,
상기 스크립트 토큰에 포함된 상기 스크립트의 시그니처, 진단 및 치료 명령어, 연산자 및 조건 값 중 적어도 하나를 바이트 코드 데이터로 변환한 것인
악성코드 진단 및 치료 방법.
- 제 7항에 있어서,
상기 방법은,
상기 시그니처 매치 결과 정보를 전달 받고, 상기 바이트 코드 룰 데이터에 포함된 진단 바이트 코드를 실행하여 상기 검사 대상이 악성 코드인지 여부를 판단하는 단계와,
상기 바이트 코드 룰 데이터에 포함된 치료 바이트 코드를 실행하여 악성 코드로 판단된 검사 대상에 대한 치료를 수행하는 단계를 또한 포함하는
악성코드 진단 및 치료 방법.
- 제 11항에 있어서,
상기 악성 코드에 대한 치료를 수행하는 단계는,
특정 시그니처의 존재 여부, 매치된 개수, 매치된 옵셋, 검사 대상 파일의 헤더정보 및 특정 영역 값 중 적어도 하나에 대한 확인을 통해 악성 코드 여부를 판별하는
악성코드 진단 및 치료 방법.
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100036775A KR101116770B1 (ko) | 2010-04-21 | 2010-04-21 | 악성코드 진단 및 치료 장치 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100036775A KR101116770B1 (ko) | 2010-04-21 | 2010-04-21 | 악성코드 진단 및 치료 장치 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110117364A KR20110117364A (ko) | 2011-10-27 |
KR101116770B1 true KR101116770B1 (ko) | 2012-02-28 |
Family
ID=45031294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100036775A KR101116770B1 (ko) | 2010-04-21 | 2010-04-21 | 악성코드 진단 및 치료 장치 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101116770B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180006714A (ko) * | 2016-07-11 | 2018-01-19 | 주식회사 안랩 | 구조 및 문자열 기반의 파일 진단장치 및 구조 및 문자열 기반의 파일 진단방법 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113934632A (zh) * | 2021-10-14 | 2022-01-14 | 上海哔哩哔哩科技有限公司 | 代码检测方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100860414B1 (ko) | 2006-12-01 | 2008-09-26 | 한국전자통신연구원 | 네트워크 공격 시그너처 생성 방법 및 장치 |
KR20090055669A (ko) * | 2007-11-29 | 2009-06-03 | 한국전자통신연구원 | 악성코드 탐지장치 및 방법 |
-
2010
- 2010-04-21 KR KR1020100036775A patent/KR101116770B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100860414B1 (ko) | 2006-12-01 | 2008-09-26 | 한국전자통신연구원 | 네트워크 공격 시그너처 생성 방법 및 장치 |
KR20090055669A (ko) * | 2007-11-29 | 2009-06-03 | 한국전자통신연구원 | 악성코드 탐지장치 및 방법 |
KR100942798B1 (ko) * | 2007-11-29 | 2010-02-18 | 한국전자통신연구원 | 악성코드 탐지장치 및 방법 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180006714A (ko) * | 2016-07-11 | 2018-01-19 | 주식회사 안랩 | 구조 및 문자열 기반의 파일 진단장치 및 구조 및 문자열 기반의 파일 진단방법 |
KR101869744B1 (ko) * | 2016-07-11 | 2018-06-21 | 주식회사 안랩 | 구조 및 문자열 기반의 파일 진단장치 및 구조 및 문자열 기반의 파일 진단방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20110117364A (ko) | 2011-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hu et al. | Binary code clone detection across architectures and compiling configurations | |
US8850581B2 (en) | Identification of malware detection signature candidate code | |
EP1950663A1 (en) | A method for identifying unknown virus and deleting it | |
JP4732484B2 (ja) | 仮想環境を利用した非実行ファイル内のエクスプロイトコード分析方法及び装置 | |
US20120233601A1 (en) | Recompiling with Generic to Specific Replacement | |
Brooks | Survey of automated vulnerability detection and exploit generation techniques in cyber reasoning systems | |
KR102151318B1 (ko) | 이종 정보 네트워크 기반 악성 코드 탐지 방법 및 장치 | |
Godboley et al. | An improved distributed concolic testing approach | |
EP3264274B1 (en) | Input discovery for unknown program binaries | |
US20170277890A1 (en) | Method for Testing computer program product | |
US20230028595A1 (en) | Analysis function imparting device, analysis function imparting method, and analysis function imparting program | |
Wang et al. | A combinatorial approach to detecting buffer overflow vulnerabilities | |
JP6728874B2 (ja) | 未知のバイナリプログラムに対する有効な入力の決定 | |
US20190205538A1 (en) | System and method for execution of objects lacking rules of interpretation | |
JP2020144842A (ja) | コンピュータ可読プログラム検査のための入力の生成 | |
CN118051920B (zh) | 一种漏洞验证请求包生成方法、装置、设备及存储介质 | |
KR101116770B1 (ko) | 악성코드 진단 및 치료 장치 및 그 방법 | |
CN111566625A (zh) | 测试用例生成装置、测试用例生成方法和测试用例生成程序 | |
US8752026B2 (en) | Efficient code instrumentation | |
CN108228239B (zh) | 基于快速模拟器qemu的分支指令抓取方法和装置 | |
CN107341403B (zh) | 一种文件转换方法和装置 | |
KR20160025881A (ko) | 공유 라이브러리 파일의 악성을 진단하기 위한 장치 및 방법 | |
RU94016U1 (ru) | Система обнаружения обфусцированного кода вредоносного программного обеспечения | |
Ahad et al. | Pyfet: Forensically equivalent transformation for python binary decompilation | |
KR101583306B1 (ko) | 가상화 난독화 기법이 적용된 실행 파일의 분석 방법 및 분석 장치 |
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 | ||
FPAY | Annual fee payment |
Payment date: 20160210 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170208 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180208 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20200210 Year of fee payment: 9 |