KR101865238B1 - 악성 코드 차단 장치 및 이의 동작 방법 - Google Patents
악성 코드 차단 장치 및 이의 동작 방법 Download PDFInfo
- Publication number
- KR101865238B1 KR101865238B1 KR1020170153985A KR20170153985A KR101865238B1 KR 101865238 B1 KR101865238 B1 KR 101865238B1 KR 1020170153985 A KR1020170153985 A KR 1020170153985A KR 20170153985 A KR20170153985 A KR 20170153985A KR 101865238 B1 KR101865238 B1 KR 101865238B1
- Authority
- KR
- South Korea
- Prior art keywords
- target process
- malicious code
- control unit
- analyzing
- unit
- 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/565—Static detection by checking file integrity
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Computer And Data Communications (AREA)
Abstract
악성 코드 차단 장치 및 이의 동작 방법이 제공된다. 상기 악성 코드 차단 장치 및 이의 동작 방법은 모니터링부, 비교부, 제어부, 분석부 및 저장부를 포함함으로써, 대상 프로세스의 악성 코드 유무를 사전 검사한 후 단말부에서 실행시키는 고안전성의 악성 코드 차단 장치를 제공할 수 있다.
Description
악성 코드 차단 장치 및 이의 동작 방법에 관한 것으로, 더욱 상세하게는 신규 프로세스에 대해 외부 서버로부터 악성 코드 검사를 우선적으로 수행하는 악성 코드 차단 장치 및 이의 동작 방법에 관한 것이다.
오늘날 제조 산업 및 정보 통신 산업의 발전으로 ICT(Information and communication technologies) 융합이 가속화 되면서, 네트워크 보안의 중요성 또한 점차 높아지고 있다.
반면, 최근 발생한 3.4 DDoS 공격, 3.20사이버 테러, 한수원 사태 및 인터파크 해킹 사고 등과 같이, 악성코드에 의한 피해 사례는 나날이 증가하고 있다.
최근에는 Zero-Day 취약성을 타겟(target)으로한 악성 코드의 등장, 기존 보안 장비를 회피하는 신종 우회 기법 출현, 분석 및 식별이 어려운 지능화 된 악성 코드 발생 등 신종 또는 변종된 악성 코드가 확산되면서, 악성 코드의 방어를 위한 대안책이 시급한 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 악성 코드의 실행을 차단하는 고성능의 악성 코드 차단 장치 및 이의 동작 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 신속한 악성 코드 검사가 가능한 고효율의 악성 코드 차단 장치 및 이의 동작 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따라 악성 코드 여부를 판별하는 외부 서버 내 데이터베이스와 연동되는 악성 코드 차단 장치는 단말이 실행하는 적어도 하나의 프로세스 중 악성 코드 검사 대상인 대상 프로세스를 추출하고, 추출된 대상 프로세스의 적어도 하나의 정보를 상기 데이터베이스에 저장하는 비교부 및 상기 추출된 대상 프로세스의 실행을 보류시키고, 상기 외부 서버로부터 악성 코드 검사가 완료된 검사 결과를 수신하여 상기 보류된 대상 프로세스의 실행을 제어하는 제어부를 포함한다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 상기 악성 코드 차단 장치의 상기 대상 프로세스는 생성되거나 또는 다운로드된 신규 프로세스 중 상기 외부 서버로부터 수신된 화이트리스트와 비교하여, 매칭되지 않는 프로세스일 수 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 상기 악성 코드 차단 장치의 상기 신규 프로세스는 콜백 함수를 이용한 필터 드라이버에 의해 상기 비교부로 전달할 수 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 상기 악성 코드 차단 장치는 상기 검사 결과를 분석하는 분석부를 더 포함하고, 상기 분석부는 검사가 완료된 상기 대상 프로세스가 블랙 리스트에 매칭될 경우, 상기 제어부에 제1 신호를 송신하는 제1 분석부, 검사가 완료된 상기 대상 프로세스가 화이트리스트에 매칭될 경우, 상기 제어부에 제2 신호를 송신하는 제2 분석부 및 검사 시간이 초과되어 상기 대상 프로세스의 검사가 완료되지 못한 경우, 상기 제어부에 제2 신호를 송신하는 제3 분석부를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 상기 악성 코드 차단 장치의 상기 제어부는 상기 추출된 대상 프로세스의 실행을 보류시키는 제1 제어부, 상기 제1 신호에 의해, 상기 보류된 대상 프로세스의 실행을 차단(Block)하는 제2 제어부 및 상기 제2 신호에 의해, 상기 보류된 대상 프로세스의 실행을 재개(Resume)하는 제3 제어부를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 상기 악성 코드 차단 장치의 상기 분석부는 사용자로부터 상기 제1 분석부에 의해 차단된 상기 대상 프로세스에 대해 완료 처리 요청이 있을 경우, 상기 제3 제어부에 제2 신호를 송신하는 제4 분석부를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 상기 악성 코드 차단 장치는 사용자로부터 상기 처리된 대상 프로세스에 대한 완료 처리 요청을 받은 경우, 상기 대상 프로세스의 정보를 상기 외부 서버의 화이트리스트에 저장할 수 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 상기 악성 코드 차단 장치의 상기 제1 제어부는 상기 추출된 대상 프로세스의 프로세스 ID(Process ID)에 해당하는 스레드(thread) 핸들을 중지(Suspend)시켜 상기 추출된 대상 프로세스의 실행을 보류할 수 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 상기 악성 코드 차단 장치의 상기 제3 제어부는 상기 추출된 대상 프로세스의 프로세스 ID(Process ID)에 해당하는 스레드(thread) 핸들을 재개(Resume)시켜 상기 보류된 대상 프로세스를 실행할 수 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따라 악성 코드 여부를 판별하는 외부 서버와 연동되는 악성 코드 차단 장치의 동작 방법은 악성 코드를 판별하기 위한 대상인 대상 프로세스를 추출하는 단계, 추출된 상기 대상 프로세스의 실행을 보류하는 단계, 보류된 상기 대상 프로세스의 적어도 하나의 데이터 속성 정보를 상기 외부 서버로 송신하는 단계, 상기 외부 서버로부터 수신된 상기 대상 프로세스의 악성 코드 판별 검사 결과를 분석하는 단계 및 상기 대상 프로세스의 악성 코드 판별 분석 결과에 따라 상기 보류된 대상 프로세스를 제어하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 상기 악성 코드 차단 장치의 동작 방법의 상기 대상 프로세스를 추출하는 단계는 생성되거나 또는 다운로드된 신규 프로세스를 추출하는 단계 및 상기 신규 프로세스를 상기 외부 서버로부터 수신된 화이트리스트와 비교하는 단계를 포함할 수 있다.
본 발명의 실시예에 따른 악성 코드 차단 장치 및 이의 동작 방법은 단말부에서 실행되는 대상 프로세스를 외부 서버에서 선 검사함으로써, 악성 코드로부터 단말부를 보호하는 고안전성의 악성 코드 차단 장치 및 이의 동작 방법이 제공될 수 있다.
또한, 본 발명의 실시예에 따른 악성 코드 차단 장치 및 이의 동작 방법은 모니터링부에 의해, 신규로 생성되거나 또는 다운로드된 파일을 대상으로 악성 코드 검사를 수행함으로써, 처리 속도가 향상된 고성능의 악성 코드 차단 장치 및 이의 동작 방법이 제공될 수 있다.
또한, 본 발명의 실시예에 따른 악성 코드 차단 장치 및 이의 동작 방법은 모니터링부에 의해 분석이 완료된 대상 프로세스 또한 모니터링 대상으로 실시함으로써, 돌발 악성 행위를 방어하는 고안정성의 악성 코드 차단 장치 및 이의 동작 방법을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 악성 코드 차단 장치를 설명하기 위한 구성도이다.
도 2는 본 발명의 실시예에 따른 악성 코드 차단 장치의 동작 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 실시예에 따른 악성 코드 차단 장치의 동작 방법을 설명하기 위한 순서도이다.
도 2는 본 발명의 실시예에 따른 악성 코드 차단 장치의 동작 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 실시예에 따른 악성 코드 차단 장치의 동작 방법을 설명하기 위한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 악성 코드 차단 장치를 설명하기 위한 구성도이다.
도 1을 참조하면, 악성 코드 차단 장치(D)는 단말부에서 실행되는 프로그램을 포함할 수 있다. 여기서, 단말부는 테블릿 PC(tablet PC), 노트북 컴퓨터(laptop computer), 디지털방송용 단말부, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player) 또는 네비게이션(Navigation) 중 적어도 하나일 수 있다.
악성 코드 차단 장치(D)는 에이전트(agent)가 설치된 환경에서 실행될 수 있다. 일반적으로, 에이전트(agent)는 별도의 사용자 관리 없이, 정해진 일정에 따라 프로세스를 수행하는 프로그램일 수 있다. 이에 따라, 악성 코드 차단 장치는 후술될 구성들(1100, 1500)에 의해 동적으로 대상 프로세스의 추출 및/또는 실행을 제어할 수 있다. 하기에서 구성들의 특징을 보다 구체적으로 설명하겠다.
악성 코드 차단 장치(D)는 모니터링부(1000), 비교부(2000), 제어부(3000), 분석부(4000) 및 저장부(5000)를 포함할 수 있다.
모니터링부(1000)는 단말부에 실행되는 신규 프로세스를 추출할 수 있다. 보다 구체적으로 설명하면, 모니터링부(1000)는 필터 드라이버(filter driver)를 이용하여, 신규 프로세스를 추출할 수 있다. 예를 들어, 상기 필터 드라이버(filter driver)는 minifilter driver 일 수 있다.
또한, 모니터링부(1000)는 콜백 함수를 이용하여, 후술될 신규 프로세스를 비교부(2000)로 전송할 수 있다.
비교부(2000)는 신규 프로세스 및 화이트리스트를 비교하여 대상 프로세스를 추출할 수 있다. 이때, 신규 프로세스는 앞서 설명된 바와 같이, 모니터링부(1000)로부터 수신될 수 있다. 또한, 화이트리스트는 후술될 저장부(5000)로부터 수신될 수 있다.
여기서, 화이트리스트는 안전한 IP주소를 가진 프로세스의 목록일 수 있다. 따라서, 비교부(2000)는 신규 프로세스가 화이트리스트에 해당될 경우, 상기 프로세스를 악성 코드 검사 대상에서 제외시킬 수 있다. 다시 말하면, 단말부 내에서의 신규 프로세스의 실행이 진행될 수 있다.
반면, 비교부(2000)는 신규 프로세스가 화이트리스트에 해당되지 않을 경우, 대상 프로세스로 추출할 수 있다. 이후 비교부(2000)는 후술될 제1 제어부(3100)로 제1 신호를 송신할 수 있다. 이에 따라, 단말부 내에서의 대상 프로세스의 실행이 보류될 수 있다. 대상 프로세스의 실행이 보류되는 방법은 후술될 제1 제어부의 설명 시 보다 자세히 설명하겠다.
또한, 비교부(2000)는 신규 프로세스가 화이트리스트에 해당되지 않는 대상 프로세스일 경우, 대상 프로세스의 정보를 외부 서버(S) 내 데이터베이스(DB)에 저장할 수 있다. 이때, 상기 정보는 파일 경로, 사인 체크(sign check) 유무, 프로세스 ID, 상태 정보 및 검사 시간 등 중 적어도 하나를 포함할 수 있다.
여기서, 사인 체크(sign check)는 보안이 인증된 응용 프로그램에 할당되는 인증일 수 있으며, 상태 정보는 대상 프로세스의 실시간 상태를 제공하는 정보로써, 종료(Done), 분석(Analyzing) 및 차단(Block) 상태로 표현될 수 있다. 실시예에 따르면, 대상 프로세스는 분석(Analyzing) 상태로 데이터베이스(DB)에 저장될 수 있다.
이후, 외부 서버(S)는 데이터베이스(DB)에 저장된 대상 프로세스에 대해 악성 코드 여부를 분석할 수 있다.
제어부(3000)는 대상 프로세스의 실행을 제어할 수 있다. 제어부(3000)는 제1 제어부(3100), 제2 제어부(3300) 및 제3 제어부(3500) 를 포함할 수 있다.
제1 제어부(3100)는 앞서 설명한 바와 같이, 스레드(thread)를 이용하여 대상 프로세스의 실행을 보류시킬 수 있다. 여기서, 스레드(thread)는 프로세스의 주 작업을 담당하는 실행 코드일 수 있다.
실시예에 따라 보다 구체적으로 설명하면, 제1 제어부(3100)는 대상 프로세스의 프로세스 ID(Process ID, PID)에 해당하는 스레드(thread)를 추출할 수 있다. 이후, 제1 제어부(3100)는 SuspendThread 함수를 이용하여, 추출된 스레드(threa)의 핸들을 모두 중지 상태(Suspend)로 변경할 수 있다. 이에 따라, 단말부에서의 대상 프로세스의 실행이 보류될 수 있다. 예를 들어, 상기 스레드(thread)는 CreateToolhelp32Snapshot API함수를 이용하여 추출할 수 있다.
제2 제어부(3300)는 제1 제어부(3100)에 의해 보류된 대상 프로세스의 실행을 차단(Block)할 수 있다. 이때, 제2 제어부(3300)는 후술될 분석부(4000)로부터 제1 신호가 수신될 경우, 동작할 수 있다.
제3 제어부(3500)는 제1 제어부(3100)에 의해 보류된 대상 프로세스의 실행을 재개(Resume)할 수 있다. 이때, 제3 제어부(3500)는 후술될 분석부(4000)로부터 제2 신호가 수신될 경우, 동작할 수 있다.
실시예에 따라 보다 구체적으로 설명하면, 제1 제어부(3100)는 대상 프로세스의 프로세스 ID(Process ID, PID)에 해당하는 스레드(thread)를 추출할 수 있다. 이후, 제3 제어부(3500)는 ResumeThread 함수를 이용하여, 스레드(threa)의 핸들을 모두 재개 상태(Resume)로 변경할 수 있다. 이에 따라, 제1 제어부에 의해 보류된 대상 프로세스의 실행이 재개(Resume)될 수 있다. 예를 들어, 상기 스레드(thread)는 앞서 설명된 바와 같이, CreateToolhelp32Snapshot API함수를 이용하여 추출할 수 있다.
실시예에 따르면, 제어부(3000)에 의한 대상 프로세스 제어 결과는 알림 메시지 형태로 사용자에게 제공될 수 있다.
분석부(4000)는 데이터베이스(DB)로부터 대상 프로세스의 악성 코드 검사 결과를 수신할 수 있다.
이후, 분석부(4000)는 앞서 설명한 바와 같이, 수신된 검사 결과에 따라, 제2 제어부(3300) 또는 제3 제어부(3500)로 제어 신호를 송신할 수 있다.
분석부(4000)는 제1 분석부(4100), 제2 분석부(4300), 제3 분석부(4500) 및 제4 분석부(4700)를 포함할 수 있다.
제1 분석부(4100)는 검사 결과가 블랙 리스트인지 확인할 수 있다. 검사 결과가 블랙 리스트일 경우, 제1 분석부는 데이터베이스(DB) 내 상기 대상 프로세스의 상태 정보를 종료(Block) 상태로 변경될 수 있다. 이후 제1 분석부(4100)는 제2 제어부(3300)로 제1 신호를 송신할 수 있다.
제2 분석부(4300)는 검사 결과가 화이트리스트인지 확인할 수 있다. 검사 결과가 화이트리스트일 경우, 제2 분석부(4300)는 데이터베이스(DB) 내 상기 대상 프로세스의 상태 정보를 종료(Done) 상태로 변경할 수 있다. 이후 제2 분석부(4300)는 제3 제어부(3500)로 제2 신호를 송신할 수 있다.
제3 분석부(4500)는 검사 결과가 분석 시간 초과인지 확인할 수 있다. 실시예에 따르면, 제3 분석부(4500)는 분석 시간 내에 데이터베이스(DB)로부터 검사 결과가 전송되지 않을 경우 분석 시간 초과로 판단할 수 있다.
검사 결과가 분석 시간 초과일 경우, 제3 분석부(4500)는 데이터베이스(DB) 내 상기 대상 프로세스의 상태 정보를 종료(Done) 상태로 변경할 수 있다. 이후 제3 분석부(4500)는 제3 제어부(3500)로 제2 신호를 송신할 수 있다.
제4 분석부(4700)는 제1 분석부(5100)로부터 차단(Block)된 대상 프로세스에 대한 사용자의 완료 요청 유무를 분석할 수 있다.
보다 구체적으로 설명하면, 앞서 설명한 바와 같이, 제2 제어부(3300)는 제1 분석부(4100)에 의해 차단된 대상 프로세스의 제어 상태를 사용자에게 제공할 수 있다.
이때, 상기 대상 프로세스에 대해 사용자로부터 완료 처리 요청이 송신될 경우, 제4 분석부(4700)는 제3 제어부(3500)로 제2 신호를 송신할 수 있다. 이에 따라, 차단(Block)된 대상 프로세스의 실행이 재개(Resume)될 수 있다.
또한, 제4 분석부(4700)는 데이터베이스(DB) 내 차단(Block) 상태인 상기 대상 프로세스의 상태 정보를 종료(Done) 상태로 변경할 수 있다.
상태가 변경된 상기 대상 프로세스가 외부 서버(S) 내 화이트리스트 목록에 저장될 수 있다. 다시 말하면, 외부 서버(S) 내 화이트리스트 목록이 갱신될 수 있다. 이후, 후술될 저장부(5000)는 갱신된 화이트리스트 목록을 다운로드 받을 수 있다.
저장부(5000)는 앞서 설명한 바와 같이, 외부 서버(S)로부터 다운받은 화이트리스트를 저장할 수 있다.
실시예에 따르면 저장부(5000)는 제4 분석부(4700)에 외부 서버(S) 내 화이트리스트 목록의 갱신이 발생할 경우, 외부 서버(S)로부터 신규 다운로드 받을 수 있다. 이에 따라, 저장부(5000)는 정보가 갱신된 신규 화이트리스트를 보유할 수 있다.
따라서, 본 발명의 실시예에 따른 악성 코드 차단 장치는 비교부에 의한 대상 프로세스 추출 시, 업데이트된 화이트리스트를 기준으로 추출함으로써, 매 사용시 마다 처리 속도가 향상된 고효율 및 고성능의 악성 코드 차단 장치가 제공될 수 있다.
이상 본 발명의 실시예에 따른 악성 코드 차단 장치를 설명하였다. 이하에서는 본 발명의 실시예에 따른 악성 코드 차단 장치의 동작 방법을 설명하겠다.
도 2는 본 발명의 실시예에 따른 악성 코드 차단 장치의 동작 방법을 설명하기 위한 순서도이다.
도 1 및 도2를 참조하면, 악성 코드 차단 장치를 실행할 수 있다. 실행된 악성 코드 차단 장치는 신규 프로세스를 추출할 수 있다(S1000).
이후, 추출된 신규 프로세스로부터 대상 프로세스를 추출할 수 있다(S2000). 대상 프로세스는 화이트리스트에 해당되지 않는 신규 프로세스일 수 있다.
대상 프로세스의 추출이 완료되면, 상기 대상 프로세스의 실행을 보류할 수 있다(S3000).
이후, 에이전트는 대상 프로세스의 데이터 속성 정보를 데이터베이스(DB)로 전송할 수 있다(S4000). 이에 따라, 데이터베이스(DB)로부터 대상 프로세스의 악성 코드 여부가 검사될 수 있다.
데이터베이스(DB)로부터 대상 프로세스의 악성 코드 여부에 대한 검사가 완료되면, 프로세스로부터 검사 결과를 수신하여 분석할 수 있다.
수신된 검사 결과를 분석하는 단계는 후술될 도 3를 참조하여 보다 구체적으로 설명하겠다.
도 3은 본 발명의 실시예에 따른 악성 코드 차단 장치의 동작 방법 중 검사 결과를 분석하는 단계를 설명하기 위한 순서도이다.
도 1 내지 도 3을 참조하면, 데이터베이스(DB)로부터 검사 결과를 수신할 수 있다(S5000).
검사 결과는 제1 분석부(4100)에 의해 블랙 리스트인지 판별될 수 있다(S5100).
검사 결과가 블랙 리스트에 해당될 경우, 대상 프로세스 내 상태 정보는 분석(Analyzing) 상태에서 차단(Block) 상태로 변경될 수 있다. 또한, 제1 분석부(4100)는 제1 제어부(3100)로 제1 신호를 송신할 수 있다 (S5110).
이때, 차단(Block)된 대상 프로세스에 있어서, 사용자로부터 완료 요청이 수신될 경우(S5111), 대상 프로세스의 상태 정보를 차단(Block) 상태에서 완료(Done) 상태로 변경할 수 있다. 이후, 제4 분석부(4700)는 제3 제어부(3500)로 제2 신호를 송신할 수 있다(S5113).
또한, 사용자로부터 완료 요청을 수신한 대상 프로세스 정보를 화이트리스트에 추가할 수 있다(S5115).
반면, 검사 결과가 블랙 리스트에 해당하지 않을 경우, 제2 분석부(4300)에 의해 화이트리스트인지 판별될 수 있다(S5300).
이때, 검사 결과가 화이트리스트에 해당될 경우, 상기 대상 프로세스 내 상태 정보를 분석(Analyzing) 상태에서 완료(Done) 상태로 변경할 수 있다. 또한, 제2 분석부(4300)는 제3 제어부(3500) 로 제2 신호를 송신할 수 있다(S5350).
검사 시간 내에 데이터베이스(DB)로부터 수신되는 검사 결과가 없을 경우(S5500), 제3 분석부(4500) 는 대상 프로세스의 상태 정보를 분석(Analyzing) 상태에서 완료(Done) 상태로 변경할 수 있다. 이에 따라, 제3 분석부(4500)는 제3 제어부(3500)로 제2 신호를 송신할 수 있다(S5550).
다시 도 2를 참조하면, 분석 후 송신된 상기 신호에 따라, 보류된 대상 프로세스의 실행을 처리할 수 있다(S6000). 보다 구체적으로 설명하면, 분석부(4000)로부터 제1 신호를 수신한 제2 제어부(3300)는 단말부 내 보류된 프로세스의 실행을 차단(Block)할 수 있다.
반면, 분석부(4000)로부터 제2 신호를 수신한 제3 제어부(3500)에 의해 보류된 상기 대상 프로세스의 수신을 재개(Resume)할 수 있다. 이에 따라, 단말부 내 보류된 대상 프로세스의 실행이 재개될 수 있다.
이상 본 발명의 실시예에 따른 악성 코드 차단 장치 및 이의 동작 방법을 설명하였다. 상기 악성 코드 차단 장치 및 이의 동작 방법은 모니터링부, 비교부, 제어부, 분석부 및 저장부를 포함함으로써, 대상 프로세스의 악성 코드 유무를 사전 검사한 후 단말부에서 실행시키는 고안전성의 악성 코드 차단 장치를 제공할 수 있다.
이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1000: 모니터링부 2000: 비교부
3000: 제어부 3100: 제1 제어부
3300: 제2 제어부 3500: 제3 제어부
4000: 분석부 4100: 제1 분석부
4300: 제2 분석부 4500: 제3 분석부
4700: 제4 분석부 D: 악성 코드 차단 장치
S: 외부 서버
3000: 제어부 3100: 제1 제어부
3300: 제2 제어부 3500: 제3 제어부
4000: 분석부 4100: 제1 분석부
4300: 제2 분석부 4500: 제3 분석부
4700: 제4 분석부 D: 악성 코드 차단 장치
S: 외부 서버
Claims (11)
- 악성 코드 여부를 판별하는 외부 서버 내 데이터베이스와 연동하는 악성 코드 차단 장치로서,
단말이 실행하는 적어도 하나의 프로세스 중 악성 코드 검사 대상인 대상 프로세스를 추출하고, 추출된 대상 프로세스의 적어도 하나의 정보를 상기 데이터베이스에 저장하는 비교부; 및
상기 추출된 대상 프로세스의 실행을 보류시키고, 상기 외부 서버로부터 악성 코드 검사가 완료된 검사 결과를 수신하여 상기 보류된 대상 프로세스의 실행을 제어하는 제어부; 및
상기 검사 결과를 분석하는 분석부를 포함하고,
상기 분석부는
검사가 완료된 상기 대상 프로세스가 블랙 리스트에 매칭될 경우, 상기 제어부에 제1 신호를 송신하는 제1 분석부;
검사가 완료된 상기 대상 프로세스가 화이트리스트에 매칭될 경우, 상기 제어부에 제2 신호를 송신하는 제2 분석부; 및
검사 시간이 초과되어 상기 대상 프로세스의 검사가 완료되지 못한 경우, 상기 제어부에 제2 신호를 송신하는 제3 분석부를 포함하는 악성 코드 차단 장치. - 제1 항에 있어서,
상기 대상 프로세스는
생성되거나 또는 다운로드된 신규 프로세스를 추출하고, 상기 추출된 신규 프로세스를 상기 외부 서버로부터 수신된 화이트리스트와 비교하여, 매칭되지 않는 프로세스를 포함하는 악성 코드 차단 장치. - 제2 항에 있어서,
상기 신규 프로세스는 콜백 함수를 이용한 필터 드라이버에 의해 상기 비교부로 전달되는 악성 코드 차단 장치. - 삭제
- 제1 항에 있어서,
상기 제어부는
상기 추출된 대상 프로세스의 실행을 보류시키는 제1 제어부;
상기 제1 신호에 의해, 상기 보류된 대상 프로세스의 실행을 차단(Block)하는 제2 제어부; 및
상기 제2 신호에 의해, 상기 보류된 대상 프로세스의 실행을 재개(Resume)하는 제3 제어부를 포함하는 악성 코드 차단 장치. - 제5 항에 있어서,
상기 분석부는
사용자로부터 상기 제1 분석부에 의해 차단된 상기 대상 프로세스에 대해 완료 처리 요청이 있을 경우,
상기 제3 제어부에 제2 신호를 송신하는 제4 분석부를 포함하는 악성 코드 차단 장치. - 제6 항에 있어서,
상기 제4 분석부는
상기 처리된 대상 프로세스에 대한 완료 처리 요청을 받은 경우, 상기 대상 프로세스의 정보를 상기 외부 서버의 화이트리스트에 저장하는 악성 코드 차단 장치. - 제5 항에 있어서,
상기 제1 제어부는
상기 추출된 대상 프로세스의 프로세스 ID(Process ID)에 해당하는 스레드(thread) 핸들을 중지(Suspend)시켜 상기 추출된 대상 프로세스의 실행을 보류하는 악성 코드 차단 장치. - 제5 항에 있어서,
상기 제3 제어부는
상기 추출된 대상 프로세스의 프로세스 ID(Process ID)에 해당하는 스레드(thread) 핸들을 재개(Resume)시켜 상기 보류된 대상 프로세스를 실행하는 악성 코드 차단 장치. - 악성 코드 여부를 판별하는 외부 서버와 연동되는 악성 코드 차단 장치의 동작 방법에 관한 것으로,
악성 코드를 판별하기 위한 대상인 대상 프로세스를 추출하는 단계;
추출된 상기 대상 프로세스의 실행을 보류하는 단계;
보류된 상기 대상 프로세스의 적어도 하나의 데이터 속성 정보를 상기 외부 서버로 송신하는 단계;
상기 외부 서버로부터 수신된 상기 대상 프로세스의 악성 코드 판별 검사 결과를 분석하는 단계; 및
상기 대상 프로세스의 악성 코드 판별 분석 결과에 따라 상기 보류된 대상 프로세스를 제어하는 단계를 포함하되,
상기 악성 코드 판별 검사 결과가 블랙 리스트에 매칭될 경우, 상기 대상 프로세스 내 상태 정보를 분석(Analyzing) 상태에서 차단(Block) 상태로 변경하고,
상기 악성 코드 판별 검사 결과가 화이트리스트에 해당될 경우, 상기 대상 프로세스 내 상태 정보를 분석(Analyzing) 상태에서 완료(Done) 상태로 변경하며,
상기 악성 코드 판별 검사 결과가 수신되지 않을 경우, 상기 대상 프로세스 내 상태 정보를 분석(Analyzing) 상태에서 완료(Done) 상태로 변경하는 것을 포함하는 악성 코드 차단 장치의 동작 방법. - 제10 항에 있어서,
상기 대상 프로세스를 추출하는 단계는
생성되거나 또는 다운로드된 신규 프로세스를 추출하는 단계; 및
상기 신규 프로세스를 상기 외부 서버로부터 수신된 화이트리스트와 비교하는 단계를 포함하는 악성 코드 차단 장치의 동작 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017224088A JP2018097858A (ja) | 2016-12-13 | 2017-11-21 | 悪性コード遮断装置およびその動作方法 |
US15/819,269 US10599845B2 (en) | 2016-12-13 | 2017-11-21 | Malicious code deactivating apparatus and method of operating the same |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20160169401 | 2016-12-13 | ||
KR1020160169401 | 2016-12-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101865238B1 true KR101865238B1 (ko) | 2018-06-07 |
Family
ID=62621946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170153985A KR101865238B1 (ko) | 2016-12-13 | 2017-11-17 | 악성 코드 차단 장치 및 이의 동작 방법 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2018097858A (ko) |
KR (1) | KR101865238B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110111714A (ko) * | 2010-04-05 | 2011-10-12 | 주식회사 안철수연구소 | 단말 장치 및 상기 단말 장치의 악성코드 방어 방법, 신뢰도 분석 장치 및 방법 |
KR20120031745A (ko) * | 2010-09-27 | 2012-04-04 | 한국인터넷진흥원 | 커널 콜백 매커니즘을 이용한 악성코드 자동 분석 방법 |
KR20140075839A (ko) * | 2012-11-28 | 2014-06-20 | 한국전자통신연구원 | 악성행위 탐지 장치 및 방법 |
US20160378979A1 (en) * | 2015-06-27 | 2016-12-29 | Mcafee, Inc. | Detection of malicious thread suspension |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7263616B1 (en) * | 2000-09-22 | 2007-08-28 | Ge Medical Systems Global Technology Company, Llc | Ultrasound imaging system having computer virus protection |
WO2006101549A2 (en) * | 2004-12-03 | 2006-09-28 | Whitecell Software, Inc. | Secure system for allowing the execution of authorized computer program code |
US20130276120A1 (en) * | 2008-06-02 | 2013-10-17 | Gregory William Dalcher | System, method, and computer program product for determining whether a security status of data is known at a server |
-
2017
- 2017-11-17 KR KR1020170153985A patent/KR101865238B1/ko active IP Right Grant
- 2017-11-21 JP JP2017224088A patent/JP2018097858A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110111714A (ko) * | 2010-04-05 | 2011-10-12 | 주식회사 안철수연구소 | 단말 장치 및 상기 단말 장치의 악성코드 방어 방법, 신뢰도 분석 장치 및 방법 |
KR20120031745A (ko) * | 2010-09-27 | 2012-04-04 | 한국인터넷진흥원 | 커널 콜백 매커니즘을 이용한 악성코드 자동 분석 방법 |
KR20140075839A (ko) * | 2012-11-28 | 2014-06-20 | 한국전자통신연구원 | 악성행위 탐지 장치 및 방법 |
US20160378979A1 (en) * | 2015-06-27 | 2016-12-29 | Mcafee, Inc. | Detection of malicious thread suspension |
Also Published As
Publication number | Publication date |
---|---|
JP2018097858A (ja) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10055585B2 (en) | Hardware and software execution profiling | |
US9781144B1 (en) | Determining duplicate objects for malware analysis using environmental/context information | |
US8042186B1 (en) | System and method for detection of complex malware | |
US10339315B2 (en) | Apparatus and method for detecting malicious mobile app | |
US8732836B2 (en) | System and method for correcting antivirus records to minimize false malware detections | |
EP2515250A1 (en) | System and method for detection of complex malware | |
CN110417778B (zh) | 访问请求的处理方法和装置 | |
CN107992751B (zh) | 一种基于分支行为模型的实时威胁检测方法 | |
US20170061126A1 (en) | Process Launch, Monitoring and Execution Control | |
RU2013136976A (ru) | Система и способ временной защиты операционной системы программно-аппаратных устройств от приложений, содержащих уязвимости | |
US20130239214A1 (en) | Method for detecting and removing malware | |
US20160196427A1 (en) | System and Method for Detecting Branch Oriented Programming Anomalies | |
US20170277887A1 (en) | Information processing apparatus, information processing method, and computer readable medium | |
JP6000465B2 (ja) | プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法 | |
CN108268773B (zh) | Android应用升级包本地存储安全性检测方法 | |
KR101803888B1 (ko) | 유사도 기반 악성 어플리케이션 탐지 방법 및 장치 | |
CN105791250B (zh) | 应用程序检测方法及装置 | |
CN106302531B (zh) | 安全防护方法、装置及终端设备 | |
CN105718793A (zh) | 基于修改沙箱环境防止恶意代码识别沙箱的方法及系统 | |
CN108509796B (zh) | 一种风险性的检测方法及服务器 | |
KR101865238B1 (ko) | 악성 코드 차단 장치 및 이의 동작 방법 | |
US12067117B2 (en) | Efficient usage of sandbox environments for malicious and benign documents with macros | |
US10599845B2 (en) | Malicious code deactivating apparatus and method of operating the same | |
CN114547590A (zh) | 代码检测方法、装置及非瞬时性计算机可读存储介质 | |
KR101938415B1 (ko) | 비정상 행위 탐지 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant |