KR20170016709A - 다중 코어 프로세서에 기반한 악성 코드 탐지 장치 및 방법 - Google Patents
다중 코어 프로세서에 기반한 악성 코드 탐지 장치 및 방법 Download PDFInfo
- Publication number
- KR20170016709A KR20170016709A KR1020150110158A KR20150110158A KR20170016709A KR 20170016709 A KR20170016709 A KR 20170016709A KR 1020150110158 A KR1020150110158 A KR 1020150110158A KR 20150110158 A KR20150110158 A KR 20150110158A KR 20170016709 A KR20170016709 A KR 20170016709A
- Authority
- KR
- South Korea
- Prior art keywords
- malicious
- diagnostic
- code detection
- malicious code
- result
- 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
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명의 일 실시예에 따르면, 악성 코드 탐지를 수행하는 복수의 진단 함수를 저장하는 저장부, 소정의 수의 제 1 코어(core)를 갖고, 상기 악성 코드 탐지의 대상이 되는 진단 대상을 입력받는 제 1 프로세서 및 상기 제 1 코어보다 많은 수의 제 2 코어를 갖고, 상기 제 2 코어 중 적어도 일부에는 상기 복수의 진단 함수에 속한 진단 함수가 할당되며, 진단 함수를 할당받은 상기 적어도 일부의 제 2 코어는 상기 할당된 진단 함수의 실행 결과를 각각 생성하는 제 2 프로세서를 포함하고, 상기 제 1 프로세서는 상기 실행 결과에 근거하여 상기 악성 코드 탐지 결과를 생성하는 것을 특징으로 하는 악성 코드 탐지 장치가 제공될 수 있다.
Description
본 발명은 다수의 코어를 갖는 프로세서를 이용하여 악성 코드 탐지를 수행하는 악성 코드 탐지 장치 및 그 방법에 관한 것으로, 더 상세하게는 다수의 악성 코드 진단 과정을 다중 코어 프로세서에서 병렬적으로 처리함으로써 시스템 자원 활용의 효율을 높이고 악성 코드 탐지 시간을 감소시키는 발명에 관한 것이다.
광범위한 인터넷 및 무선통신 기기의 보급에 따라 악성 소프트웨어 또는 악성 코드(malicious code)의 전염경로가 다양해지고 있으며, 이로 인한 피해 정도가 매년 증가하고 있다. 악성 코드란 사용자의 의사와 이익에 반하여 시스템을 파괴하거나 정보를 유출하는 등의 악의적 활동을 수행하도록 의도적으로 제작된 소프트웨어를 말한다.
이러한 악성 코드의 종류로는 바이러스(virus), 웜(worm), 트로이얀(trojan), 백도어(backdoor), 논리폭탄(logic bomb), 트랩도어(trap door) 등의 해킹 툴, 악의적인 스파이웨어(spyware), 애드웨어(ad-ware) 등이 있다. 악성 코드는 자기복제나 자동번식 기능을 통하여, 사용자 식별정보(ID)와 암호 등의 개인정보 유출, 대상 시스템 통제, 진단 대상 삭제/변경, 시스템 파괴, 응용 프로그램/시스템의 서비스 거부, 핵심 자료 유출, 다른 해킹 프로그램 설치 등의 문제를 일으키고 있으며, 그 피해도 매우 다양하고 심각하다.
특히 스마트폰 등의 모바일(mobile) 단말 장치 사용자가 급증함에 따라 모바일 단말 장치 대상의 악성 코드 역시 급격한 증가 추세를 보이고 있으며, 악성 코드의 공격 수법 역시 다양해지고 있다. 이에 따라, 모바일 단말 장치 대상의 악성 코드 탐지를 위한 여러 가지 장치 및 방법이 제안되고 있다.
하지만, 최근에는 서로 다른 복수의 작업을 동시에 처리하는 멀티 태스킹(multi-tasking)이 모바일 단말 장치 등 여러 장치에서 일반화되어 있다. 이러한 환경에서 CPU(central processing unit)의 자원을 과도하게 사용하는 종래의 악성 코드 탐지 장치 및 방법은 시스템에 과부하를 줄 수 있으며, 더불어 악성 코드 탐지의 효율 역시 떨어뜨릴 수 있다. 또한 단말 장치가 이미 악성 코드에 감염된 상태에서는 악성 코드의 공격에 의해 CPU 사용률이 급격히 상승한 상태가 될 수 있으므로, 악성 코드 탐지가 원활히 이루어지지 않을 수 있다.
이러한 문제를 해결하기 위하여, 시스템 자원 활용의 효율을 높이면서도 악성 코드 탐지 시간을 감소시킴으로써 종래 기술의 문제점을 해결할 수 있는 새로운 기술의 개발이 요구되고 있다.
본 발명은 다중 코어 프로세서를 이용하여 다수의 악성 코드 탐지 프로세스를 병렬적으로 수행함으로써 시스템의 과부하를 방지하고 악성 코드 탐지의 효율을 높이기 위한 것이다. 아울러, 본 발명은 악성 코드 탐지 대상의 악성 여부 및 악성의 정도를 보다 구체적으로 정확하게 분석하여 사용자에게 알리기 위한 것이기도 하다.
다만, 본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지는 않았으나 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있는 목적을 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 실시예에 의하면, 악성 코드 탐지를 수행하는 복수의 진단 함수를 저장하는 저장부, 소정의 수의 제 1 코어(core)를 갖고, 상기 악성 코드 탐지의 대상이 되는 진단 대상을 입력받는 제 1 프로세서 및 상기 제 1 코어보다 많은 수의 제 2 코어를 갖고, 상기 제 2 코어 중 적어도 일부에는 상기 복수의 진단 함수에 속한 진단 함수가 할당되며, 진단 함수를 할당받은 상기 적어도 일부의 제 2 코어는 상기 할당된 진단 함수의 실행 결과를 각각 생성하는 제 2 프로세서를 포함하고, 상기 제 1 프로세서는 상기 실행 결과에 근거하여 상기 악성 코드 탐지 결과를 생성하는 것을 특징으로 하는 악성 코드 탐지 장치가 제공될 수 있다.
또한, 상기 진단 함수를 할당받은 상기 적어도 일부의 제 2 코어 각각은 상기 진단 대상을 상기 할당된 진단 함수에 대응되는 진단 성분으로 분해하고, 분해된 상기 진단 성분에 대해 상기 할당된 진단 함수를 실행시켜 상기 할당된 진단 함수의 실행 결과를 생성하는 것을 특징으로 할 수 있다.
또한, 상기 저장부는 상기 할당된 진단 함수의 실행 결과 및 상기 악성 코드 탐지 결과를 저장하는 것을 특징으로 할 수 있다.
또한, 상기 진단 함수는 업데이트가 가능한 것을 특징으로 할 수 있다.
또한, 상기 할당된 진단 함수의 실행 결과는 각각 미리 정해진 범위 내의 실수(real number)로 표현되는 악성률을 포함하는 것을 특징으로 할 수 있다.
또한, 상기 악성 코드 탐지 결과는, 각각의 상기 악성률에 근거하여 산출되는 미리 정해진 범위 내의 실수인 총 악성률을 포함하는 특징으로 할 수 있다.
또한, 상기 악성 코드 탐지 결과는 각각의 상기 악성률 또는 상기 총 악성률에 근거한 상기 진단 대상의 악성 판단 결과를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 악성 판단 결과는 각각의 상기 악성률 또는 상기 총 악성률의 값에 근거하여 악성, 정상 혹은 의심 중 어느 하나로 정해지는 것을 특징으로 할 수 있다.
본 발명의 다른 실시예에 의하면, 소정의 수의 제 1 코어(core)를 갖는 제 1 프로세서가 악성 코드 탐지의 대상이 되는 진단 대상을 입력받는 제 1 단계, 상기 제 1 프로세서에 비해 많은 수의 제 2 코어(core)를 갖는 제 2 프로세서에 대하여 복수의 진단 함수를 상기 제 2 코어에 할당하는 제 2 단계, 상기 제 2 코어에 의한 상기 할당된 진단 함수의 실행 결과를 생성하는 제 3 단계 및 상기 제 1 프로세서가 상기 진단 함수의 실행 결과에 근거하여 상기 악성 코드 탐지 결과를 생성하는 제 4 단계를 포함하는 악성 코드 탐지 방법이 제공될 수 있다.
또한, 상기 제 3 단계는 상기 진단 함수를 할당받은 각각의 상기 제 2 코어는 상기 진단 대상을 상기 할당된 진단 함수에 대응되는 진단 성분으로 분해하고, 분해된 상기 진단 성분에 대해 상기 할당된 진단 함수를 실행시켜 상기 진단 함수의 실행 결과를 생성하는 것을 특징으로 할 수 있다.
또한, 상기 진단 함수의 실행 결과는 각각 미리 정해진 범위 내의 실수(real number)로 표현되는 악성률을 포함하는 것을 특징으로 할 수 있다.
또한, 상기 악성 코드 탐지 결과는 각각의 상기 악성률에 근거하여 산출되는 미리 정해진 범위 내의 실수인 총 악성률을 포함하는 특징으로 할 수 있다.
또한, 상기 악성 코드 탐지 결과는 각각의 상기 악성률 또는 상기 총 악성률에 근거한 상기 진단 대상의 악성 판단 결과를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 악성 판단 결과는 각각의 상기 악성률 또는 상기 총 악성률의 값에 근거하여 악성, 정상 혹은 의심 중 어느 하나로 정해지는 것을 특징으로 할 수 있다.
또한, 상기 악성 코드 탐지 방법에 따른 각각의 단계를 수행하기 위해 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램 또는 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독 가능 기록매체가 제공될 수 있다.
본 발명의 실시예에 의하면, 시스템의 주 프로세서에 비해 상대적으로 많은 수의 코어를 갖는 다중 코어 프로세서의 각 코어에서 악성 코드 탐지를 위한 다양한 진단 함수가 병렬로 실행되는 장치 및 방법이 제공될 수 있다. 또한, 상기 진단 함수의 실행 결과에 근거하여 진단 대상의 악성의 정도를 구체적인 수치로 표현하거나 단계별로 나타낼 수 있다.
따라서, 본 발명에 의하면 시스템 과부하가 방지되고 악성 코드 탐지에 소요되는 시간이 감소하는 효과를 거둘 수 있다. 아울러, 진단 대상의 악성의 정도를 구체적으로 파악함으로써 악성 코드로 인하여 발생할 수 있는 문제에 효과적으로 대처할 수 있다.
도 1은 본 발명의 일 실시예에 따른 악성 코드 탐지 장치의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 중앙 처리 장치 및 그래픽 처리 장치의 코어 수를 비교하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 악성 코드 탐지 장치에서 수행되는 악성 코드 탐지 방법을 나타낸 순서도이다.
도 2는 본 발명의 일 실시예에 따른 중앙 처리 장치 및 그래픽 처리 장치의 코어 수를 비교하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 악성 코드 탐지 장치에서 수행되는 악성 코드 탐지 방법을 나타낸 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 악성 코드 탐지 장치의 구성도이며, 도 2는 본 발명의 일 실시예에 따른 중앙 처리 장치(Central Processing Unit, 이하 CPU) 및 그래픽 처리 장치(Graphic Processing Unit, 이하 GPU)의 코어 수를 비교하기 위한 개념도이다. 한편, 이러한 도 1의 악성 코드 탐지 장치(10)는 본 발명의 일 실시예에 불과하므로, 도 1을 통해 본 발명이 한정 해석되는 것은 아니다.
도 1의 악성 코드 탐지 장치(10)는 제 1 프로세서(100), 제 2 프로세서(200) 및 저장부(300)을 포함할 수 있다. 악성 코드 탐지 장치(10)는 악성 코드에 감염될 수 있는 전산 기기 혹은 단말 장치일 수 있으며, 예컨대 PC(personal computer), Server 등의 컴퓨터(Computer)일 수 있다. 또한 악성 코드 탐지 장치(10)는 스마트폰(smart phone), 스마트 패드(smart pad), 타블렛 PC(Tablet PC) 및 PDA(Personal Digital Assistant) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 단말 장치를 포함할 수 있으나, 반드시 이와 같은 예로 한정되는 것은 아니다.
제 1 프로세서(100)는 악성 코드 탐지 장치(10)의 주 프로세서로서 기능할 수 있는 프로세서로서, 예컨대 CPU가 될 수 있다. 제 1 프로세서(100)는 입력부(110), 제어부(120), 실행부(130), 진단부(140) 및 출력부(150)를 포함할 수 있다. 입력부(110)는 악성 코드 탐지의 대상이 되는 진단 대상을 입력받을 수 있다. 제어부(120)는 진단 대상을 각각의 진단 함수에 대응되는 진단 성분으로 분해하기 위해 진단 대상을 실행부(130)에 전달하며, 진단 대상을 각각의 진단 함수에 대응되는 진단 성분으로 분해하기 위한 작업을 실행부(130)에 요청할 수 있고, 실행부(130)가 전달한 작업의 결과를 저장부(300)에 저장할 수 있다. 또한 제어부(120)는 진단 성분을 실행부(130)에 전달하며, 각 진단 성분에 관한 진단 함수 실행 결과를 생성하기 위한 작업을 실행부(130)에 요청할 수 있고, 실행부(130)가 전달한 작업의 결과를 저장부(300)에 저장할 수 있다. 실행부(130)는 제어부(120)의 요청에 따른 작업을 제 2 프로세서(200)의 코어부(210)에 속한 다수의 코어를 이용하여 수행한다. 진단부(140)는 제 2 프로세서(200)에 의해 생성된 진단 함수의 실행 결과에 근거하여 악성 코드 탐지 결과를 생성할 수 있다. 출력부(150)는 진단 함수의 실행 결과 및 악성 코드 탐지 결과 등을 출력할 수 있다.
제 2 프로세서(200)는 악성 코드 탐지를 위한 진단 성분의 분해 및 진단 함수의 실행을 수행하는 프로세서로서, 다수의 작업을 병렬적으로 처리하기에 적합하도록 제 1 프로세서에 비해 코어(core)의 개수가 많은 것을 특징으로 한다. 제 2 프로세서(200)는 제 1 프로세서(100)와 물리적으로 분리되어 있을 수도 있고, 공통의 집적 회로(IC)를 통해 구현될 수도 있다.
구체적으로, 제 2 프로세서(200)는 단말 장치의 그래픽과 관련된 작업을 처리하는 GPU일 수 있다. 도 2를 참조하여 살펴볼 때, GPU는 동시에 처리할 수 있는 작업의 개수와 직접적인 관련이 있는 코어의 개수가 CPU에 비해 적게는 수 배에서 많게는 수백 배까지 많을 수 있다. 이에 따라, 복잡하고 선형적인 작업에 효율적인 CPU와 달리, GPU는 병렬화 가능한 반복 작업에 더 효율적일 수 있다. 따라서 CPU에 비해 GPU는 다수의 진단 함수를 진단 대상에 적용하여 악성 코드를 탐지하는 작업을 더 효율적으로 수행할 수 있다. 더욱이 최근 새롭게 등장한 GPU들은 그래픽 관련 작업만을 수행하도록 제한되어 있던 종래의 GPU에 비해 더욱 큰 기능적 유연성을 제공하므로, 제 2 프로세서(200)로서의 기능을 수행하기에 적합하다.
제 2 프로세서(200)는 다수의 코어로 구성된 코어부(210)를 포함할 수 있다. 코어부(210)의 각 코어들은 제 1 프로세서(100)의 실행부(130)에 의해 할당된 진단 함수에 대응되는 진단 성분을 진단 대상으로부터 분리하고, 분리된 진단 성분에 대한 진단 함수의 실행 결과를 생성한다.
저장부(300)는 진단 함수, 진단 함수의 실행 결과 및 악성 코드 탐지 결과 등을 저장할 수 있다. 저장부(300)는 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어들을 저장하고 수행하도록 특별히 구성된 하드웨어 장치로 구현될 수 있으며, 제 1 프로세서(100) 혹은 제 2 프로세서(200) 내부에 구현될 수도 있다. 또한 저장부(300)는 SD(secure disk) 카드와 같은 메모리 카드, 하드 디스크, 플로피 디스크, 자기 테이프, CD-ROM, DVD, SSD(solid state device) 및 USB 디스크 등의 컴퓨터 판독 가능한 외부 기록 매체일 수도 있다. 저장부(300)에 저장된 진단 함수는 필요에 따라 오류 수정, 새로운 악성 코드 정보의 반영 혹은 개선된 알고리즘 반영 등의 목적을 위해 업데이트될 수 있다.
이하에서는 본 실시예에 따라, 상술한 구성을 포함하는 사용자 단말 장치(200)의 동작을 도 1을 참조하여 설명하도록 한다.
제 1 프로세서(100)의 입력부(110)는 악성 코드 탐지의 대상이 되는 진단 대상을 악성 코드 탐지 장치(10) 내부의 저장 매체 혹은 악성 코드 탐지 장치(10) 외부의 매체로부터 입력받을 수 있다. 상기 진단 대상은 PC나 서버 등의 장치에서 실행될 수 있는 프로그램 혹은 스마트폰 등의 모바일 단말 장치에서 실행될 수 있는 모바일 어플리케이션(mobile application) 등이 될 수 있다. 또는 데이터 파일, 문서 파일, 이미지 파일, 동영상 파일, HTML 파일 등이 될 수 있으나, 반드시 이들 예로 한정되는 것은 아니다. 입력부(110)는 진단 대상이 어떤 객체를 나타내는지 식별하기 위한 식별자를 진단 대상에 부여할 수 있으며, 진단 대상을 저장부(300)를 비롯한 기억 장치에 저장할 수도 있다.
제어부(120)는 입력부(110)가 입력받은 진단 대상 및 저장부(300)에 저장된 다수의 진단 함수의 전부 혹은 일부를 실행부(130)에 전달하며, 진단 대상을 각각의 진단 함수에 대응되는 진단 성분으로 분해하기 위한 작업을 실행부(130)에 요청할 수 있다. 진단 함수는 진단 대상의 특정 진단 성분에 대응되는 악성률을 판단하기 위한 함수로, 세부적으로는 진단 대상으로부터 진단 성분을 분해하는 진단 성분 분해 함수 및 분해된 진단 성분에 대한 악성률을 산출하는 악성률 계산 함수를 포함할 수 있다. 물론 분해되는 진단 성분 및 그에 따른 악성률은 진단 함수들마다 서로 다를 수 있다.
실행부(130)는 제어부(120)의 요청에 따라, 제 2 프로세서(200)의 각 코어에 제어부(120)로부터 전달받은 진단 함수들을 할당한다. 원칙적으로 각 코어당 하나씩의 진단 함수를 할당받을 수 있겠지만, 동일한 진단 함수를 다수의 코어가 할당받을 수도 있고, 한 개의 코어에 다수의 진단 함수가 할당될 수도 있다. 또한 진단 함수는 제 2 프로세서(200)의 모든 코어에 할당될 수도 있지만, 일부 코어에만 할당될 수도 있다.
각 코어는 할당받은 진단 함수에 포함된 진단 성분 분해 함수를 진단 대상에 적용함으로써 진단 대상을 상기 진단 함수에 대응되는 진단 성분으로 분해할 수 있다. 실행부(130)는 진단 함수를 할당받은 모든 코어의 작업이 끝나면 각 코어가 분해한 진단 성분들을 제어부(120)에 전달한다. 제어부(120)는 분해된 진단 성분들을 저장부(300)에 저장할 수 있다.
그리고, 제어부(120)는 분해된 진단 성분들을 실행부(130)에 전달하며, 각각의 진단 성분에 대응되는 진단 함수 실행 결과를 생성하기 위한 작업을 실행부(130)에 요청할 수 있다. 실행부(130)는 제어부(120)의 요청에 따라 각 코어로 하여금 해당 코어가 분해한 진단 성분에 대한 진단 함수 실행 결과를 생성하도록 한다. 실행부(130)는 진단 함수를 할당받은 모든 코어의 작업이 끝나면 각 코어가 생성한 진단 함수 실행 결과를 제어부(120)에 전달한다. 제어부(120)는 진단 함수 실행 결과들을 저장부(300)에 저장할 수 있다.
상기와 같이 제 1 프로세서에 비해 많은 수의 코어를 갖는 제 2 프로세서를 이용하여 다수의 진단 함수를 병렬적으로 실행함으로써 시스템의 과부하를 방지하는 한편, 악성 코드 탐지의 효율을 높일 수 있다.
이 때, 진단 함수 실행 결과는 진단 함수에 포함된 악성률 계산 함수를 이용하여 계산된 악성률을 포함할 수 있다. 악성률은 미리 정해진 범위 내의 실수(real number)로 표현될 수 있다. 예컨대, 악성률은 -100~100의 범위를 갖는 실수일 수 있다. 양의 악성률은 악성일 가능성보다 악성이 아닐 가능성이 더 높다는 것을 의미할 수 있으며, 음의 악성률은 그 반대를 의미할 수 있다. 또한, 가능성의 정도는 악성률의 절댓값을 통해 표현될 수 있다.
제 1 프로세서(100)의 진단부(140)는 제 2 프로세서(200)에 의해 생성된 각각의 진단 함수의 실행 결과에 근거하여 진단 대상에 대한 악성 코드 탐지 결과를 생성한다. 악성 코드 탐지 결과는 미리 정해진 범위 내의 실수로 표현되는 총 악성률을 포함할 수 있으며, 또한 악성 코드 탐지 결과는 진단 대상의 악성 판단 결과를 포함할 수 있다.
총 악성률은 각각의 진단 함수의 실행 결과에 포함된 악성률에 근거하여 산출될 수 있다. 예컨대, 총 악성률은 각각의 악성률의 단순한 산술 평균으로 정해질 수 있으며, 각각의 악성률의 중요도 등에 따른 가중치를 고려한 평균으로 정해질 수도 있다. 물론 가중치는 0이 될 수도 있으므로, 어떤 악성률 값은 총 악성률의 산출에 반영되지 않을 수도 있으며, 이에 따라 특정 악성률 값만을 이용하여 총 악성률을 구하는 것도 가능하다.
또한, 진단 대상의 악성 판단 결과는 각각의 악성률 및 총 악성률에 근거하여 정해진다. 악성 판단 결과는 “악성” 혹은 “정상”과 같은 구체적인 단계로 표현될 수 있다. 그 외에도 악성과 정상 사이에 “의심”이라는 단계가 삽입될 수도 있으며, 필요에 따라 악성 판단 결과는 더욱 다양한 단계로 세분화될 수도 있다.
악성 판단 결과를 생성하는 구체적인 방법에 대해 예시적으로 설명하자면, 악성 판단 결과는 -100부터 100까지의 값을 갖는 총 악성률이 -100~-30 사이일 경우 “정상”, -30~30 사이일 경우 “의심”, 30~100일 경우 “악성”으로 각각 정해질 수 있다. 이러한 수치의 범위 및 악성 판단 결과의 단계는 예시적인 것으로, 필요에 따라 변경될 수 있음은 물론이다. 또한 각각의 악성률을 참조하여, 악성률 중에 양의 악성률만 존재하거나 양의 악성률의 비율이 임계치 이상일 경우 악성 판단 결과가 “악성”이 될 수 있고, 반대로 악성률 중에 음의 악성률만 존재하거나 음의 악성률의 비율이 임계치 이상일 경우 악성 판단 결과가 “정상”이 될 수 있으며, 그 외의 경우에는 “의심”이 될 수 있다. 이와 달리, 악성률 중에 양의 악성률만 존재하거나 양의 악성률의 비율이 임계치 이상일 경우에도 양의 악성률의 평균이 최소 악성 임계치보다 작을 경우 악성 판단 결과를 “정상”으로 할 수도 있다. 또한 이 경우에 있어서도, 양의 악성률의 평균이 최소 악성 임계치보다는 작지만 최소 의심 임계치보다는 클 경우 악성 판단 결과를 “의심”으로 할 수 있다.
전술한 바와 같이 진단부(140)는 수치로 표현되는 각각의 진단 성분에 대한 악성률 및 총 악성률을 산출하므로, 본 발명에 의해 악성의 정도를 구체적으로 정확하게 파악하는 것이 가능하다. 또한 본 발명은 단순히 악성 여부만을 알려주는 것에 그치지 않고, 정상, 의심, 악성의 3단계 혹은 그 이상의 단계로 악성 판단 결과를 알려주므로, 진단 대상의 악성에 대해 정확히 파악하고 효과적인 대처를 하는 것이 가능하다.
출력부(150)는 전술한 악성률을 포함하는 각각의 진단 함수의 실행 결과 및 총 악성률을 포함하는 악성 코드 탐지 결과를 출력할 수 있다. 출력의 형태는 파일에 기록된 형태의 출력일 수도 있고, 디스플레이 장치를 통한 출력일 수도 있으며, 이러한 출력의 구현은 당업자에게 용이한 사항이므로 여기에서는 더 이상의 자세한 설명을 생략한다.
도 3은 본 발명의 일 실시예에 따른 악성 코드 탐지 장치에서 수행되는 악성 코드 탐지 방법을 나타낸 순서도이다. 도 3을 참조하여 사용자 단말 장치에서 수행되는 장애 관리 방법의 각 단계를 설명하면 다음과 같으며, 도 1 및 2를 통해 설명한 바와 중복되는 경우에는 상세한 설명이 생략될 수 있다.
본 실시예에 따른 악성 코드 탐지 방법은 소정의 수의 제 1 코어(core)를 갖는 제 1 프로세서(100)가 악성 코드 탐지의 대상이 되는 진단 대상을 입력받는 단계(S100), 제 1 프로세서(100)보다 많은 수의 제 2 코어를 갖는 제 2 프로세서(200)에 대하여 복수의 진단 함수 각각을 제 2 코어의 전부 혹은 일부에 할당하는 단계(S200), 각각의 진단 함수를 할당받은 각각의 제 2 코어가 진단 대상을 할당된 진단 함수에 대응되는 진단 성분으로 분해하는 단계(S300), 분해된 진단 성분에 대해 할당된 진단 함수를 실행시켜 진단 함수의 실행 결과를 생성하는 단계(S400) 및 제 1 프로세서(100)가 진단 함수의 실행 결과에 근거하여 악성 코드 탐지 결과를 생성하는 단계(S500)를 포함할 수 있다.
구체적으로 설명하면, 각각의 진단 함수는 진단 대상을 진단 성분으로 분해하기 위한 진단 성분 분해 함수 및 분해된 각 진단 성분에 대응되는 악성률을 산출하기 위한 악성률 계산 함수를 포함할 수 있다. 각각의 진단 함수의 실행 결과는 미리 정해진 범위 내의 실수(real number)로 표현되는 각 진단 성분에 대한 악성률을 포함할 수 있다.
진단 함수의 실행 결과에 근거하여 생성되는 악성 코드 탐지 결과는 각각의 악성률에 근거하여 산출되는 미리 정해진 범위 내의 실수인 총 악성률을 포함할 수 있다. 이러한 각 진단 성분에 대한 악성률 및 총 악성률에 근거한 진단 대상의 악성 판단 결과 역시 악성 코드 탐지 결과에 포함될 수 있다.
구체적으로, 진단 대상의 악성 판단 결과는 각 진단 성분에 대한 악성률 및 총 악성률의 값에 근거하여 악성, 정상, 의심 중 어느 하나의 단계로 표현될 수 있다. 이러한 악성 판단 결과의 단계는 변경 혹은 추가될 수 있으며, 총 악성률 및 악성 판단 결과를 생성하기 위한 과정은 도 1 및 2를 참조한 설명에서 서술된 바와 같으므로 자세한 설명을 생략하도록 한다.
이상 서술된 악성 코드 탐지 방법의 각 단계는 그 서술된 순서에 구속되지 않으므로, 필요에 따라 단계의 순서를 달리하여 실시될 수 있음은 물론이다.
본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능한 기록 매체를 포함한다. 또한, 본 발명의 실시예들은 상기 각 단계를 수행하기 위해 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램을 포함할 수도 있다. 이러한 컴퓨터 판독 가능한 기록 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 이러한 매체나 프로그램 명령은 본 발명의 실시예들에 적용하기 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래쉬 메모리 등과 같은 프로그램 명령어들을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 실시예들에 설명된 특징, 구조, 효과 등은 본 발명의 적어도 하나의 실시예에 포함되며, 반드시 하나의 실시예에만 한정되는 것은 아니다. 나아가, 각 실시예에서 예시된 특징, 구조, 효과 등은 실시예들이 속하는 분야의 통상의 지식을 가지는 자에 의해 다른 실시예들에 대해서도 조합 또는 변형되어 실시 가능하다. 따라서 이러한 조합과 변형에 관계된 내용들은 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
또한, 이상에서 실시예를 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시예에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
10: 악성 코드 탐지 장치
100: 제 1 프로세서
200: 제 2 프로세서
300: 저장부
100: 제 1 프로세서
200: 제 2 프로세서
300: 저장부
Claims (16)
- 악성 코드 탐지를 수행하는 복수의 진단 함수를 저장하는 저장부;
소정의 수의 제 1 코어(core)를 갖고, 상기 악성 코드 탐지의 대상이 되는 진단 대상을 입력받는 제 1 프로세서; 및
상기 제 1 코어보다 많은 수의 제 2 코어를 갖고, 상기 제 2 코어 중 적어도 일부에는 상기 복수의 진단 함수에 속한 진단 함수가 할당되며, 진단 함수를 할당받은 상기 적어도 일부의 제 2 코어는 상기 할당된 진단 함수의 실행 결과를 각각 생성하는 제 2 프로세서를 포함하고,
상기 제 1 프로세서는 상기 실행 결과에 근거하여 상기 악성 코드 탐지 결과를 생성하는 것을 특징으로 하는
악성 코드 탐지 장치. - 제 1 항에 있어서,
상기 진단 함수를 할당받은 상기 적어도 일부의 제 2 코어 각각은 상기 진단 대상을 상기 할당된 진단 함수에 대응되는 진단 성분으로 분해하고, 분해된 상기 진단 성분에 대해 상기 할당된 진단 함수를 실행시켜 상기 할당된 진단 함수의 실행 결과를 생성하는 것을 특징으로 하는
악성 코드 탐지 장치. - 제 1 항에 있어서,
상기 저장부는 상기 할당된 진단 함수의 실행 결과 및 상기 악성 코드 탐지 결과를 저장하는 것을 특징으로 하는
악성 코드 탐지 장치. - 제 1 항에 있어서,
상기 진단 함수는 업데이트가 가능한 것을 특징으로 하는
악성 코드 탐지 장치. - 제 1 항에 있어서,
상기 할당된 진단 함수의 실행 결과는 각각 미리 정해진 범위 내의 실수(real number)로 표현되는 악성률을 포함하는 것을 특징으로 하는
악성 코드 탐지 장치. - 제 5 항에 있어서,
상기 악성 코드 탐지 결과는, 각각의 상기 악성률에 근거하여 산출되는 미리 정해진 범위 내의 실수인 총 악성률을 포함하는 특징으로 하는
악성 코드 탐지 장치. - 제 6 항에 있어서,
상기 악성 코드 탐지 결과는 각각의 상기 악성률 또는 상기 총 악성률에 근거한 상기 진단 대상의 악성 판단 결과를 포함하는 것을 특징으로 하는
악성 코드 탐지 장치. - 제 7 항에 있어서,
상기 악성 판단 결과는 각각의 상기 악성률 또는 상기 총 악성률의 값에 근거하여 악성, 정상 혹은 의심 중 어느 하나로 정해지는 것을 특징으로 하는
악성 코드 탐지 장치. - 소정의 수의 제 1 코어(core)를 갖는 제 1 프로세서가 악성 코드 탐지의 대상이 되는 진단 대상을 입력받는 제 1 단계;
상기 제 1 프로세서에 비해 많은 수의 제 2 코어(core)를 갖는 제 2 프로세서에 대하여 복수의 진단 함수를 상기 제 2 코어에 할당하는 제 2 단계;
상기 제 2 코어에 의한 상기 할당된 진단 함수의 실행 결과를 생성하는 제 3 단계; 및
상기 제 1 프로세서가 상기 진단 함수의 실행 결과에 근거하여 상기 악성 코드 탐지 결과를 생성하는 제 4 단계를 포함하는
악성 코드 탐지 방법. - 제 9 항에 있어서,
상기 제 3 단계는 상기 진단 함수를 할당받은 각각의 상기 제 2 코어는 상기 진단 대상을 상기 할당된 진단 함수에 대응되는 진단 성분으로 분해하고, 분해된 상기 진단 성분에 대해 상기 할당된 진단 함수를 실행시켜 상기 진단 함수의 실행 결과를 생성하는 것을 특징으로 하는
악성 코드 탐지 방법. - 제 9 항에 있어서,
상기 진단 함수의 실행 결과는 각각 미리 정해진 범위 내의 실수(real number)로 표현되는 악성률을 포함하는 것을 특징으로 하는
악성 코드 탐지 방법. - 제 11 항에 있어서,
상기 악성 코드 탐지 결과는 각각의 상기 악성률에 근거하여 산출되는 미리 정해진 범위 내의 실수인 총 악성률을 포함하는 특징으로 하는
악성 코드 탐지 방법. - 제 12 항에 있어서,
상기 악성 코드 탐지 결과는 각각의 상기 악성률 또는 상기 총 악성률에 근거한 상기 진단 대상의 악성 판단 결과를 포함하는 것을 특징으로 하는
악성 코드 탐지 방법. - 제 13 항에 있어서,
상기 악성 판단 결과는 각각의 상기 악성률 또는 상기 총 악성률의 값에 근거하여 악성, 정상 혹은 의심 중 어느 하나로 정해지는 것을 특징으로 하는
악성 코드 탐지 방법. - 제 9 항 내지 제 14 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하기 위해 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램.
- 제 9 항 내지 제 14 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독 가능 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150110158A KR101718923B1 (ko) | 2015-08-04 | 2015-08-04 | 다중 코어 프로세서에 기반한 악성 코드 탐지 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150110158A KR101718923B1 (ko) | 2015-08-04 | 2015-08-04 | 다중 코어 프로세서에 기반한 악성 코드 탐지 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170016709A true KR20170016709A (ko) | 2017-02-14 |
KR101718923B1 KR101718923B1 (ko) | 2017-03-23 |
Family
ID=58121135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150110158A KR101718923B1 (ko) | 2015-08-04 | 2015-08-04 | 다중 코어 프로세서에 기반한 악성 코드 탐지 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101718923B1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8239836B1 (en) * | 2008-03-07 | 2012-08-07 | The Regents Of The University Of California | Multi-variant parallel program execution to detect malicious code injection |
KR20130018607A (ko) * | 2011-08-08 | 2013-02-25 | 삼성에스디에스 주식회사 | 안티멀웨어 엔진을 구비한 단말장치 및 이를 이용한 안티멀웨어 스캔닝 방법 |
KR101245994B1 (ko) * | 2012-08-31 | 2013-03-20 | 케이씨씨시큐리티주식회사 | 대용량 데이터의 분산 병렬 처리 시스템 및 방법 |
KR101246623B1 (ko) | 2012-09-03 | 2013-03-25 | 주식회사 안랩 | 악성 애플리케이션 진단 장치 및 방법 |
KR20130074594A (ko) * | 2011-12-26 | 2013-07-04 | 케이씨씨시큐리티주식회사 | Gpu를 이용한 보안로그 및 이벤트의 분산처리 및 고속 필터링 시스템 및 방법 |
-
2015
- 2015-08-04 KR KR1020150110158A patent/KR101718923B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8239836B1 (en) * | 2008-03-07 | 2012-08-07 | The Regents Of The University Of California | Multi-variant parallel program execution to detect malicious code injection |
KR20130018607A (ko) * | 2011-08-08 | 2013-02-25 | 삼성에스디에스 주식회사 | 안티멀웨어 엔진을 구비한 단말장치 및 이를 이용한 안티멀웨어 스캔닝 방법 |
KR20130074594A (ko) * | 2011-12-26 | 2013-07-04 | 케이씨씨시큐리티주식회사 | Gpu를 이용한 보안로그 및 이벤트의 분산처리 및 고속 필터링 시스템 및 방법 |
KR101245994B1 (ko) * | 2012-08-31 | 2013-03-20 | 케이씨씨시큐리티주식회사 | 대용량 데이터의 분산 병렬 처리 시스템 및 방법 |
KR101246623B1 (ko) | 2012-09-03 | 2013-03-25 | 주식회사 안랩 | 악성 애플리케이션 진단 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR101718923B1 (ko) | 2017-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Han et al. | Malware analysis using visualized image matrices | |
US9858417B2 (en) | Detecting malicious computer code in an executing program module | |
US10372444B2 (en) | Android dynamic loading file extraction method, recording medium and system for performing the method | |
JP6726706B2 (ja) | コンボリューションのポピュラリティに基づいて異常なイベントを検出するシステムおよび方法 | |
KR100645983B1 (ko) | 불법 프로세스 검출 모듈 및 그 방법 | |
CN107912064B (zh) | 壳代码检测 | |
CN104798080B (zh) | 反恶意软件签名的动态选择和加载 | |
KR101228899B1 (ko) | 벡터량 산출을 이용한 악성코드의 분류 및 진단 방법과 장치 | |
KR20180032566A (ko) | 다수 소프트웨어 개체들에 걸쳐서 악성 행동을 트래킹하기 위한 시스템들 및 방법들 | |
CN104392175A (zh) | 一种云计算系统中云应用攻击行为处理方法、装置及系统 | |
TW201227394A (en) | Security through opcode randomization | |
JP2019521400A (ja) | 推測的なエクスプロイトの試みの検出 | |
CN108319850B (zh) | 沙箱检测的方法、沙箱系统和沙箱设备 | |
US9298926B2 (en) | Remediation of security vulnerabilities in computer software | |
JP2013508823A (ja) | リンクファイルを使用したマルウェアの検出およびマルウェアへの対応 | |
US20190370106A1 (en) | Unexpected event detection during execution of an application | |
US20180189498A1 (en) | Device monitoring policy | |
US10055579B2 (en) | System resources for sandboxing | |
EP2988242B1 (en) | Information processing device, and information processing method | |
WO2018177602A1 (en) | Malware detection in applications based on presence of computer generated strings | |
US10372472B2 (en) | System, method, and computer program product for conditionally preventing use of hardware virtualization | |
US20160197943A1 (en) | System and Method for Profiling System Attacker | |
Grace et al. | Behaviour analysis of inter-app communication using a lightweight monitoring app for malware detection | |
US8756695B1 (en) | Analysis of binary code | |
CN105793864A (zh) | 检测恶意多媒体文件的系统和方法 |
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 |