KR101056283B1 - 악성코드 검출 장치 및 그 방법 - Google Patents

악성코드 검출 장치 및 그 방법 Download PDF

Info

Publication number
KR101056283B1
KR101056283B1 KR1020090103536A KR20090103536A KR101056283B1 KR 101056283 B1 KR101056283 B1 KR 101056283B1 KR 1020090103536 A KR1020090103536 A KR 1020090103536A KR 20090103536 A KR20090103536 A KR 20090103536A KR 101056283 B1 KR101056283 B1 KR 101056283B1
Authority
KR
South Korea
Prior art keywords
application
module
list
malicious code
module list
Prior art date
Application number
KR1020090103536A
Other languages
English (en)
Other versions
KR20110046850A (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 KR1020090103536A priority Critical patent/KR101056283B1/ko
Publication of KR20110046850A publication Critical patent/KR20110046850A/ko
Application granted granted Critical
Publication of KR101056283B1 publication Critical patent/KR101056283B1/ko

Links

Images

Classifications

    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

악성코드 검출 장치 및 그 방법이 개시된다. 악성코드 검출 장치는 정상적으로 동작하는 어플리케이션 모듈 목록을 추출하는 어플리케이션 모듈 검출기와, 상기 추출된 어플리케이션 모듈 목록에 대한 정보를 저장하는 어플리케이션 프로세스 모듈 데이터베이스 및 검사 대상 어플리케이션이 실행될 때 주 메모리로 로드되는 모듈 목록을 생성하여 상기 어플리케이션 프로세스 모듈 데이터베이스에 저장된 정보와 비교한 결과에 따라 악성코드 모듈 정보 및 파일을 업로드하고, 어플리케이션 프로세스에 대한 구동을 제어하는 악성코드 검출 및 어플리케이션 구동 제어기를 포함한다.
악성코드, 감염, 판별, 프로세스, 분석

Description

악성코드 검출 장치 및 그 방법{APPARATUS AND METHOD FOR DETECTING MALIGNANT CODE}
본 발명은 악성코드 검출 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 안전한 환경에서 동작하는 어플리케이션에 대한 정상 모듈 목록을 검출하고, 검출된 모듈 목록을 데이터베이스에 저장하고, 어플리케이션이 동작할 때 실제 동작하는 모듈 목록과 비교하여 어플리케이션 동작을 제한하도록 하는 악성코드 검출 장치 및 그 방법에 관한 것이다.
인터넷과 웹의 발달로 컴퓨터 네트워크는 생활 환경의 필수 수단이 되고 있다. 이러한 컴퓨터 네트워크는 정보에 대한 검색, 물품 구매, 인터넷 뱅킹, 기타 개인의 능력을 쉽게 대중에게 노출시킬 수 있는 아주 중요하고 편리한 수단임에 틀림없다.
그러나, 이러한 편리함과는 달리 각 웹 시스템의 취약점을 이용하여 악의의 사용자에 의한 불법 악성코드의 유포도 쉽게 이루어지고 있다. 일반 사용자는 자신의 컴퓨터에 보이지 않게 불법 악성코드가 감염되었다는 사실도 모른 채 이용하고 있는 실정이다. 물론 이러한 악성코드를 방비하기 위해서 보안업체는 특히 바 이러스를 포함하는 악성코드를 분석하여 제거할 수 있는 백신을 만들어 배포하여 대응하고 있다. 하지만, 이것은 악성코드가 이미 감염되어 피해를 입은 다음에야 대처할 수 있는 사후 대응에 불과하지만 이러한 대응 방법 또한 필수요소인 것은 사실이다.
현재의 기술은 불법으로 설치되는 악성코드에 대한 분석은 악성코드가 발생한 후 악성코드를 수집하여 그 패턴을 분석하고, 백신을 개발하여 추가 발생이 일어나지 않도록 하는 수준이다. 실제 악성코드가 동작하는 형태를 잘 살펴보면 스스로 동작하기 보다 다른 어플리케이션이 구동될 때 몰래 얹혀서 동작하는 아주 지능적인 형태로 발전하고 있다.
따라서, 기존의 사후 대처 방안과 병행할 수 있는 실시간 악성코드 유무를 분석하여 의심되는 프로세스를 구동시키지 않음으로써 감염된 악성코드의 동작을 제한하도록 하는 방안이 요구되고 있는 실정이다.
본 발명은 악성코드가 동작하지 않는 상태에서 어플리케이션 프로세스 모듈 목록을 수집하여 데이터베이스화하고 실제 사용자가 컴퓨터에서 해당 어플리케이션이 동작할 때 모듈 목록을 구하여 안전한 상태에서 구해진 모듈 목록과 비교하여 그 결과 원하지 않는 악성코드가 같이 동작하고 있는지를 판별할 수 있는 악성코드 검출 장치 및 방법을 제공한다.
또한 본 발명은 기존의 사후 대처 방안과 병행할 수 있는 실시간 악성코드 유무를 분석하여 의심되는 프로세스를 구동시키지 않도록 함으로써 악성코드의 동작을 제한하도록 할 수 있는 악성코드 검출 장치 및 방법을 제공한다.
본 발명의 일실시예에 따른 악성코드 검출 장치는 정상적으로 동작하는 어플리케이션 모듈 목록을 추출하는 어플리케이션 모듈 검출기와, 상기 추출된 어플리케이션 모듈 목록에 대한 정보를 저장하는 어플리케이션 프로세스 모듈 데이터베이스 및 검사 대상 어플리케이션이 실행될 때 주 메모리로 로드되는 모듈 목록을 생성하여 상기 어플리케이션 프로세스 모듈 데이터베이스에 저장된 정보와 비교한 결과에 따라 악성코드 모듈 정보 및 파일을 업로드하고, 어플리케이션 프로세스에 대한 구동을 제어하는 악성코드 검출 및 어플리케이션 구동 제어기를 포함한다.
본 발명의 일측면에서 상기 어플리케이션 모듈 검출기는 정상적으로 동작하는 어플리케이션 모듈 목록을 구하기 위해서 검출 대상 어플리케이션을 구동시키는 어플리케이션 프로세스 구동기 및 상기 어플리케이션 프로세스 구동기에 의해 구동되는 어플리케이션 프로세스에 대한 모듈 목록을 구하고, 각 모듈에 대한 정보를 상기 어플리케이션 프로세스 모듈 데이터베이스에 기록하는 어플리케이션 프로세스 모듈 검출기를 포함할 수 있다.
또한 본 발명의 일측면에서 상기 악성코드 검출 및 어플리케이션 구동 제어기는 검사 대상 어플리케이션이 구동되는지를 운용 체계의 프로세스 목록의 변화를 모니터링하여 확인하는 어플리케이션 프로세스 구동 감시기와, 상기 어플리케이션 프로세스 구동 감시기에서 확인된 대상 어플리케이션에 대해서 상기 어플리케이션 프로세스 모듈 데이터베이스에 저장된 모듈 목록 정보와 사용자 컴퓨터에서 동작중인 대상 어플리케이션의 모듈 목록 정보를 실시간으로 비교하는 분석하는 실시간 모듈 비교 분석기와, 상기 실시간 모듈 비교 분석기의 분석 결과에 따라 대상 어플리케이션 프로세스에 대해서 악성코드 감염 여부를 사용자에게 알리고, 상기 대상 어플리케이션 프로세스에 대한 동작 여부를 제어하는 어플리케이션 프로세스 구동 제어기와, 상기 어플리케이션 프로세스 모듈 데이터베이스의 내용 변화를 상기 사용자 컴퓨터에 저장하는 어플리케이션 프로세스 모듈 패턴 업데이트기 및 상기 실시간 모듈 비교 분석기의 분석 결과를 상기 어플리케이션 프로세스 모듈 데이터베이스에 기록하고, 상기 악성코드에 해당하는 파일을 서버에 업로드하는 악성코드 모듈 정보 및 파일 업로드기를 포함할 수 있다.
또한 본 발명의 일측면에서 상기 악성코드 검출 및 어플리케이션 구동 제어기는 상기 생성된 모듈 목록 정보와 상기 어플리케이션 프로세스 모듈 데이터베이 스에 기록된 정상 모듈 목록 정보를 비교하여 모듈 목록의 이상 여부를 판단하고, 상이한 점이 발견되면 그 결과 정보를 사용자에게 알리고, 상기 어플리케이션 프로세스 모듈 데이터베이스에 상기 상이한 점을 기록할 수 있다.
또한 본 발명의 일측면에서 상기 어플리케이션 프로세스 모듈 데이터베이스는 어플리케이션 일반 정보, 파일 정보, 모듈 일반 정보, 모듈 파일 정보 및 악성코드 파일 정보를 저장할 수 있다.
또한 본 발명의 일실시예에 따른 악성코드 검출 방법은 정상적으로 작동되는 어플리케이션 모듈 목록을 추출하는 단계와, 상기 추출된 어플리케이션 모듈 목록에 대한 정보를 저장하는 단계 및 감시 대상 어플리케이션이 실행될 때 주 메모리로 로드되는 모듈 목록을 생성하여 상기 저장된 정보와 비교한 결과에 따라 악성코드 모듈 정보 및 파일을 업로드하고, 어플리케이션 프로세스에 대한 구동을 제어하는 단계를 포함한다.
또한 본 발명의 일측면에서 상기 모듈 목록을 추출하는 단계는 상기 모듈 목록 추출을 위한 대상 어플리케이션을 구동하는 단계와, 상기 구동중인 대상 어플리케이션 프로세스 모듈 목록을 추출하는 단계 및 상기 추출된 프로세스 모듈 목록을 어플리케이션 프로세스 모듈 데이터베이스에 기록하는 단계를 포함할 수 있다.
또한 본 발명의 일측면에서 상기 어플리케이션 프로세스에 대한 구동을 제어하는 단계는 상기 감시 대상 어플리케이션 프로세스 구동을 감시하는 단계와, 상기 대상 어플리케이션 프로세스가 구동되는지 여부를 판단하는 단계와, 상기 대상 어플리케이션 프로세스가 구동되면, 실시간으로 모듈을 비교 분석하는 단계 및 상기 비교 분석 결과에 따라 상기 감시 대상 어플리케이션 프로세스에 대한 악성코드 감염 여부를 사용자에 알리고, 상기 감시 대상 어플리케이션 프로세스에 대한 구동을 제어하는 단계를 포함할 수 있다.
또한 본 발명의 일측면에서 상기 어플리케이션 프로세스에 대한 구동을 제어하는 단계는 상기 비교 분석 결과에 따라 정상 모듈 목록과 차이가 있는 경우, 상기 추출된 프로세스 모듈 목록을 어플리케이션 프로세스 모듈 데이터베이스에 악성코드 모듈 정보를 기록하고, 악성코드에 해당하는 파일을 서버로 업로드하는 단계를 더 포함할 수 있다.
또한 본 발명의 일측면에서 업데이트할 어플리케이션 모듈 목록이 존재하는 여부를 판단하는 단계 및 상기 업데이트할 어플리케이션 모듈 목록이 존재하는 경우, 어플리케이션 모듈 목록을 업데이트하는 단계를 더 포함할 수 있다.
본 발명에 따르면, 실시간 악성코드 유무를 분석하여 악성코드가 감염된 것으로 의심되는 프로세스를 구동시키지 않음으로써 감염된 악성코드에 의한 피해를 차단할 수 있다.
이하 첨부된 도면들을 참조하여 악성코드 검출 장치 및 방법을 상세하게 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 악성코드 검출 장치의 구성을 나타내는 도면이다.
도 2을 참조하면, 본 발명의 일실시예에 따른 악성코드 검출 장치(100)는 어플리케이션 모듈 검출기(110), 어플리케이션 프로세스 모듈 데이터베이스(120), 악성코드 검출 및 어플리케이션 구동 제어기(130)를 포함한다.
어플리케이션 모듈 검출기(110)는 정상적으로 동작하는 어플리케이션의 모듈 목록을 검출한다. 즉, 어플리케이션 모듈 검출기(110)는 어플리케이션이 악성코드에 감염되지 않고 정상적으로 구동될 때 주 메모리로 로드되는 모듈(DLL)에 대한 정보를 추출하며, 악성코드 검출 및 어플리케이션 구동 제어기(130)와 독립적으로 동작한다.
도 2는 도 1에 도시된 어플리케이션 모듈 검출기의 구성에 대한 일례를 나타내는 도면이다.
도 2를 참조하면, 어플리케이션 모듈 검출기(110)는 정상 동작 상태의 대상 어플리케이션의 모듈 목록 추출을 위한 도구로서 어플리케이션 프로세스 구동기(210) 및 어플리케이션 프로세스 모듈 검출기(220)를 포함한다.
어플리케이션 프로세스 구동기(210)는 정상적으로 구동되는 어플리케이션의 모듈 목록을 구하기 위해서 검출 대상 어플리케이션을 실행한다. 일례로 어플리케이션 프로세스 구동기(210)는 악성코드에 감염되지 않고 정상적으로 구동되는 어플리케이션의 모듈 목록을 구하기 위한 검출 대상 어플리케이션을 실행하는 역할을 수행하는 소프트웨어를 구동할 수 있다.
어플리케이션 프로세스 모듈 검출기(220)는 어플리케이션 프로세스 구동기(210)가 실행한 어플리케이션 프로세스에 대해서 모듈 목록을 추출하고, 각 모듈 에 대한 정보를 어플리케이션 프로세스 모듈 데이터베이스(120)에 기록하는 역할을 수행한다.
어플리케이션 프로세스 모듈 데이터베이스(120)는 상기 추출된 어플리케이션 모듈 목록에 대한 정보를 저장한다. 즉, 어플리케이션 프로세스 모듈 데이터베이스(120)는 상기 추출된 어플리케이션 모듈 목록에 대한 정보로서 어플리케이션 일반 정보, 파일 정보, 모듈 일반 정보, 모듈 파일 정보 및 악성코드 파일 정보를 저장한다. 상기 어플리케이션 일반 정보는 어플리케이션에 대한 이름, 제조사 정보를 포함할 수 있다. 상기 파일 정보는 파일명, 파일 설명, 파일 종류, 파일 버전, 제품 이름, 제품 버전, 저작권, 크기, 수정 날짜, 언어 정보 등을 포함할 수 있다. 상기 모듈 일반 정보는 모듈에 대한 이름, 제조사 정보를 포함할 수 있다. 상기 모듈 파일 정보는 모듈에 대한 파일명, 파일 설명, 종류, 파일 버전, 제품 이름, 제품 버전, 저작권, 크기, 수정 날짜, 언어 정보 등을 포함할 수 있다. 상기 악성코드 파일 정보는 악성코드에 대한 파일명, 파일 설명, 종류, 파일 버전, 크기, 수정 날짜 정보 등을 포함할 수 있다.
악성코드 검출 및 어플리케이션 구동 제어기(130)는 검사 대상 어플리케이션이 실행될 때 주 메모리로 로드되는 모듈 목록을 생성하여 어플리케이션 프로세스 모듈 데이터베이스(120)에 저장된 모듈 목록 정보와 비교한 결과에 따라 악성코드 모듈 정보 및 파일을 업로드하고, 어플리케이션 프로세스에 대한 구동을 제어한다. 즉, 악성코드 검출 및 어플리케이션 구동 제어기(130)는 안티바이러스 솔루션과 같이 사용자 컴퓨터에서 동작하는 것으로 어플리케이션 프로세스 모듈 데이터베이 스(120)에 기록된 검사 대상 어플리케이션에 대해서 자동 실행 또는 사용자에 의한 수행 실행되었을 때 주 메모리로 로드되는 모듈 목록을 생성하고, 어플리케이션 프로세스 모듈 데이터베이스(120)에 저장된 모듈 목록 정보와 비교한 후 모듈 목록의 이상 여부를 판단하며, 상이한 점을 발견하면 그 결과 정보를 사용자에게 알리고, 어플리케이션 프로세스 모듈 데이터베이스(120)에 상기 상이한 점을 기록한다.
도 3은 도 1에 도시된 악성코드 검출 및 어플리케이션 구동 제어기의 구성에 대한 일례를 나타내는 도면이다.
도 3을 참조하면, 악성코드 검출 및 어플리케이션 구동 제어기(130)는 어플리케이션 프로세스 구동 감시기(310), 실시간 모듈 비교 분석기(320), 어플리케이션 프로세스 구동 제어기(330), 어플리케이션 프로세스 모듈 패턴 업데이트기 (340), 악성코드 모듈 정보 및 파일 업로드기(350)를 포함한다.
어플리케이션 프로세스 구동 감시기(310)는 감시 대상 어플리케이션이 구동되는지 운영 체계의 프로세스 목록의 변화를 모니터링하여 확인한다. 즉, 어플리케이션 프로세스 구동 감시기(310)는 상기 감시 대상 어플리케이션에 대한 운영 체계의 프로세스 목록의 변화를 모니터링함으로써 상기 감시 대상 어플리케이션 프로세스의 구동을 감시한다.
실시간 모듈 비교 분석기(320)는 어플리케이션 프로세스 구동 감시기(310)에서 확인된 감시 대상 어플리케이션에 대해 어플리케이션 프로세스 모듈 데이터베이스(120)에 저장된 모듈 목록 정보와 사용자 컴퓨터에서 동작중인 대상 어플리케이션의 모듈 목록 정보를 실시간으로 비교 분석한다. 즉, 실시간 모듈 비교 분석 기(320)는 어플리케이션 프로세스 구동 감시기(310)에서 확인된 감시 대상 어플리케이션에 대해 어플리케이션 프로세스 모듈 데이터베이스(120)에 저장된 정상 모듈 목록 정보와 상기 사용자 컴퓨터에서 동작중인 대상 어플리케이션의 모듈 목록 정보를 실시간으로 비교하여 상이한 경우 상기 감시 대상 어플리케이션에 대한 악성코드 감염 여부를 분석한다.
어플리케이션 프로세스 구동 제어기(330)는 실시간 모듈 비교 분석기(320)에 의한 분석 결과에 따라 대상 어플리케이션 프로세스에 대해서 악성코드 감염 여부를 사용자에게 알리고, 자동 또는 수동 결정 후 상기 감시 대상 어플리케이션 프로세스에 대한 구동을 제어한다. 즉, 어플리케이션 프로세스 구동 제어기(330)는 실시간 모듈 비교 분석기(320)에 의한 분석 결과에 따라 대상 어플리케이션 프로세스에 대해서 악성코드 감염 여부를 사용자에게 알리고, 상기 감시 대상 어플리케이션 프로세스를 동작시킬지 또는 동작시키지 않을지를 제어한다.
어플리케이션 프로세스 모듈 패턴 업데이트기(340)는 어플리케이션 프로세스 모듈 데이터베이스(120)의 내용 변화를 상기 사용자 컴퓨터에 저장한다. 즉, 어플리케이션 프로세스 모듈 패턴 업데이트기(340)는 업데이트할 어플리케이션 모듈 목록이 있는 경우, 어플리케이션 프로세스 모듈 데이터베이스(120)에 상기 어플리케이션 모듈 목록을 업데이트한다.
악성코드 모듈 정보 및 파일 업로드기(350)는 실시간 모듈 비교 분석기(320)의 분석 결과를 어플리케이션 프로세스 모듈 데이터베이스(120)에 기록하고, 악성코드에 해당하는 파일을 서버로 업로드한다. 즉, 악성코드 모듈 정보 및 파일 업로 드기(350)는 실시간 모듈 비교 분석기(320)가 어플리케이션 프로세스 모듈 데이터베이스(120)에 기록된 모듈 목록 정보와 생성된 모듈 목록 정보를 비교하여 모듈 목록의 이상 여부를 판단하여 상이한 점이 발견되면, 상기 상이한 점을 어플리케이션 프로세스 모듈 데이터베이스(120)에 기록한다.
도 4는 본 발명의 일실시예에 따른 악성코드 검출 방법의 동작 흐름을 나타내는 도면이다.
도 1 및 도 4를 참조하면, 단계(S410)에서 어플리케이션 모듈 검출기(110)는 정상적으로 작동되는 어플리케이션 모듈 목록을 추출한다. 이하 도 5를 참조하여 어플리케이션 프로세스 모듈 목록을 추출하는 절차를 보다 상세하게 설명하기로 한다.
도 5는 어플리케이션 프로세스 모듈 목록 추출 절차를 구체화한 일례를 나타내는 도면이다.
도 1, 도 2 및 도 5를 참조하면, 단계(S510)에서 어플리케이션 모듈 검출기(110)는 모듈 목록 추출을 위한 대상 어플리케이션을 구동한다. 즉, 단계(S510)에서 어플리케이션 모듈 검출기(110)는 어플리케이션 프로세스 구동기(210)를 통해 모듈 목록 추출을 위해서 악성코드에 감염되지 않은 정상적인 대상 어플리케이션을 구동시킨다.
단계(S520)에서 어플리케이션 모듈 검출기(110)는 구동 중인 대상 어플리케이션 프로세스 모듈 목록을 추출한다. 즉, 단계(S520)에서 어플리케이션 모듈 검출기(110)는 어플리케이션 프로세스 모듈 검출기(220)를 통해 상기 실행된 어플리 케이션 프로세스에 대해서 모듈 목록을 추출한다.
단계(S530)에서 어플리케이션 모듈 검출기(110)는 상기 추출된 프로세스 모듈 목록을 어플리케이션 프로세서 모듈 데이터베이스(120)에 기록한다. 즉, 단계(S530)에서 어플리케이션 모듈 검출기(110)는 어플리케이션 프로세스 모듈 검출기(220)를 통해 상기 추출된 프로세스 모듈 목록을 어플리케이션 프로세스 모듈 데이터베이스(120)에 기록함으로써 어플리케이션 프로세스 모듈 데이터베이스(120)에 정상 모듈 목록을 저장한다. 상기 정상 모듈 목록은 악성코드가 감염되지 않고, 정상적으로 구동된 어플리케이션에 대해 추출된 프로세스 모듈 목록이다.
단계(S540)에서 어플리케이션 모듈 검출기(110)는 상기 구동중인 감시 대상 어플리케이션이 종료되는지 여부를 판단한다. 어플리케이션 모듈 검출기(110)는 상기 구동중인 감시 대상 어플리케이션이 종료되지 않은 것으로 판단되면, 단계(S510)부터의 동작을 수행한다.
단계(S420)에서 어플리케이션 프로세스 모듈 데이터베이스(120)는 상기 추출된 어플리케이션 모듈 목록에 대한 정보를 저장한다. 일례로 단계(S420)에서 어플리케이션 프로세스 모듈 데이터베이스(120)는 상기 추출된 어플리케이션 모듈 목록에 대한 정보로서 어플리케이션 일반 정보, 파일 정보, 모듈 일반 정보, 모듈 파일 정보 및 악성코드 파일 정보를 저장할 수 있다.
단계(S430)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 감시 대상 어플리케이션이 실행될 때 주 메모리로 로드되는 모듈 목록을 생성하여 상기 저장된 정보와 비교한 결과에 따라 악성코드 모듈 정보 및 파일을 업로드하고, 어플 리케이션 프로세스에 대한 구동을 제어한다.
도 6은 악성코드 검출 및 어플리케이션 구동 절차를 구체화한 일례를 나타내는 도면이다.
도 1 내지 도 6을 참조하면, 단계(S611)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 업데이트할 어플리케이션 모듈 목록이 있는지 여부를 판단한다. 즉, 단계(S611)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 어플리케이션 프로세스 모듈 패턴 업데이트기(340)을 통해 업데이트할 어플리케이션 모듈 목록이 있는지 여부를 판단한다.
단계(S612)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 업데이트할 어플리케이션 모듈 목록이 있는 것으로 판단한 경우, 어플리케이션 프로세스 모듈 패턴 업데이트기(340)을 통해 어플리케이션 모듈 목록을 업데이트한다.
단계(S613)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 업데이트할 어플리케이션 모듈 목록이 없으면, 어플리케이션 프로세스에 대한 구동을 감시한다. 즉, 단계(S613)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 단계(S611)에서 업데이트할 어플리케이션 모듈 목록이 없는 것으로 판단되었거나 단계(S612)에서 상기 어플리케이션 모듈 목록에 대한 업데이트가 완료되면, 어플리케이션 프로세스 구동 감시기(310)를 통해 어플리케이션 프로세스에 대한 구동을 감시한다.
단계(S614)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 감시 대상 어플리케이션 프로세스가 구동되는지 여부를 판단한다. 즉, 단계(S614)에서 악 성코드 검출 및 어플리케이션 구동 제어기(130)는 어플리케이션 프로세스 구동 감시기(310)를 통해 감시된 어플리케이션 프로세스에 대한 구동 감시 결과에 따라 감시 대상 어플리케이션 프로세스가 구동되는지 여부를 판단한다.
단계(S615)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 상기 감시 대상 어플리케이션 프로세스가 구동되는 것으로 판단되면, 상기 감시 대상 어플리케이션 프로세스의 모듈 목록 정보와 어플리케이션 프로세스 모듈 데이터베이스(120)에 저장된 모듈 목록 정보를 실시간으로 비교 분석한다. 즉, 단계(S615)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 상기 감시 대상 어플리케이션 프로세스가 구동되는 것으로 판단되면, 실시간 모듈 비교 분석기(320)를 통해 상기 감시 대상 어플리케이션에 대해서 어플리케이션 프로세스 모듈 데이터베이스(120)에 저장된 정상 모듈 목록 정보와 사용자 컴퓨터에서 동작중인 대상 어플리케이션의 모듈 목록 정보를 실시간으로 비교 분석한다.
단계(S616)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 상기 실시간 비교 분석 결과에 따라 상기 동작중인 대상 어플리케이션의 모듈 목록이 상기 정상 모듈 목록과 차이가 있는지 여부를 판단한다. 즉, 단계(S616)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 실시간 모듈 비교 분석기(320)를 통해 상기 실시간 비교 분석 결과에 따라 상기 동작중인 대상 어플리케이션의 모듈 목록이 상기 정상 모듈 목록과 상이한 경우 악성코드가 감염된 것으로 판별한다.
상기 동작중인 대상 어플리케이션 모듈 목록이 상기 정상 모듈 목록과 차이가 있는 것으로 판단되면, 단계(S617)에서 악성코드 검출 및 어플리케이션 구동 제 어기(130)는 악성코드 모듈 정보 및 파일을 업로드한다. 즉, 단계(S617)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 상기 동작중인 대상 어플리케이션 모듈 목록이 상기 정상 모듈 목록과 차이가 있는 것으로 판단되면, 악성코드가 감염된 것으로 판별하여 악성코드 모듈 정보 및 파일 업로드기(350)을 통해 악성코드 모듈 정보 및 파일을 업로드한다. 일례로 단계(S617)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 상기 비교 분석 결과를 정상 모듈 목록과 차이가 있는 경우, 상기 추출된 프로세스 모듈 목록을 어플리케이션 프로세스 모듈 데이터베이스(120)에 악성코드 모듈 정보를 기록하고, 악성코드에 해당하는 파일을 서버로 업로드할 수 있다.
단계(S618)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 어플리케이션 프로세스에 대한 구동을 제어한다. 즉, 단계(S618)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 어플리케이션 프로세스 구동 제어기(330)을 통해 상기 악성코드 감염으로 판별된 어플리케이션 프로세스에 대해서 악성코드 감염 여부를 사용자에게 알리고, 상기 대상 어플리케이션 프로세스에 대한 구동을 제어한다.
일례로 단계(S618)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 어플리케이션 프로세스 구동 제어기(330)을 통해 상기 어플리케이션 프로세스에 대해서 악성코드 감염을 사용자에게 알리고, 자동 또는 수동 결정 후 상기 악성코드가 감염된 대상 어플리케이션 프로세스가 동작되지 않도록 제어할 수 있다.
다른 일례로 단계(S618)에서 악성코드 검출 및 어플리케이션 구동 제어 기(130)는 상기 실시간 비교 결과에 따라 상기 정상 모듈 목록과 상기 동작 모듈 목록간의 상이한 점이 발견되면 그 결과 정보를 사용자에게 알리고, 어플리케이션 프로세스 모듈 데이터베이스(120)에 상기 상이한 점을 기록할 수 있다.
상기 동작중인 대상 어플리케이션 모듈 목록이 상기 정상 모듈 목록과 차이가 없는 것으로 판단되면, 단계(S619)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 어플리케이션 프로세스를 구동한다.
단계(S620)에서 악성코드 검출 및 어플리케이션 구동 제어기(130)는 어플리케이션 프로세스에 대한 구동 또는 구동 제어가 종료되는지 여부를 판단한다.
악성코드 검출 및 어플리케이션 구동 제어기(130)는 어플리케이션 프로세스에 대한 구동 또는 구동 제어가 종료되지 않는 것으로 판단되면, 단계(S613)부터의 동작을 수행한다.
악성코드 검출 및 어플리케이션 구동 제어기(130)는 어플리케이션 프로세스에 대한 구동 또는 구동 제어가 종료되는 것으로 판단되면, 악성코드 검출 및 어플리케이션 구동 제어 동작을 종료한다.
이와 같이, 본 발명에 따른 악성코드 검출 장치 및 방법은 악성코드 실시간 악성코드 유무를 분석하여 악성코드가 감염된 것으로 의심되는 프로세스를 구동시키지 않음으로써 감염된 악성코드에 의한 피해를 차단할 수 있다.
한편 본 발명에 따른 악성코드 검출 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이 터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일실시예에 따른 악성코드 검출 장치의 구성을 나타내는 도면이다.
도 2는 도 1에 도시된 어플리케이션 모듈 검출기의 구성에 대한 일례를 나타내는 도면이다.
도 3은 도 1에 도시된 악성코드 검출 및 어플리케이션 구동 제어기의 구성에 대한 일례를 나타내는 도면이다.
도 4는 본 발명의 일실시예에 따른 악성코드 검출 방법의 동작 흐름을 나타내는 도면이다.
도 5는 어플리케이션 프로세스 모듈 목록 추출 절차를 구체화한 일례를 나타내는 도면이다.
도 6은 악성코드 검출 및 어플리케이션 구동 제어 절차를 구체화한 일례를 나타내는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 악성코드 검출 장치
110: 어플리케이션 모듈 검출기
120: 어플리케이션 프로세스 모듈 데이터베이스
130: 악성코드 검출 및 어플리케이션 구동 제어기

Claims (11)

  1. 정상적으로 동작하는 검출 대상 어플리케이션으로부터 제1 어플리케이션 모듈 목록을 추출하는 어플리케이션 모듈 검출기;
    상기 제1 어플리케이션 모듈 목록을 저장하는 어플리케이션 프로세스 모듈 데이터베이스; 및
    악성코드가 감염되었는 지 여부를 검사하는 대상인 검사 대상 어플리케이션이 실행될 때 주 메모리로 로드되는 제2 어플리케이션 모듈 목록과 상기 제1 어플리케이션 모듈 목록을 비교한 결과에 기초하여 상기 검사 대상 어플리케이션이 악성코드에 감염되었는 지 여부를 판단하고, 상기 검사 대상 어플리케이션이 악성코드에 감염된 것으로 판단된 경우 상기 검사 대상 어플리케이션이 동작하지 않도록 프로세스 구동을 제어하는 악성코드 검출 및 어플리케이션 구동 제어기
    를 포함하는 악성코드 검출 장치.
  2. 제1항에 있어서,
    상기 어플리케이션 모듈 검출기는,
    정상적으로 동작하는 제1 어플리케이션 모듈 목록을 생성하기 위해 안전한 상태에서 검출 대상 어플리케이션을 구동시키는 어플리케이션 프로세스 구동기; 및
    상기 구동된 검출 대상 어플리케이션을 통해 제1 어플리케이션 모듈 목록을 수집하여 상기 어플리케이션 프로세스 모듈 데이터베이스에 기록하는 어플리케이션 프로세스 모듈 검출기
    를 포함하는, 악성코드 검출 장치.
  3. 제1항에 있어서,
    상기 악성코드 검출 및 어플리케이션 구동 제어기는,
    상기 검사 대상 어플리케이션의 제2 어플리케이션 모듈 목록과 상기 어플리케이션 프로세스 모듈 데이터베이스에 기록된 제1 어플리케이션 모듈 목록을 실시간으로 분석하여 비교하는 실시간 모듈 비교 분석기;
    상기 제1 어플리케이션 모듈 목록과 제2 어플리케이션 모듈 목록 간에 상이한 경우, 상기 검사 대상 어플리케이션이 악성코드에 감염된 것으로 판단하여 상기 검사 대상 어플리케이션을 실행하는 사용자에게 통지하고, 상기 검사 대상 어플리케이션의 프로세스 구동을 제어하는 어플리케이션 프로세스 구동 제어기;
    상기 제1 어플리케이션 모듈 목록과 제2 어플리케이션 모듈 목록 간에 비교한 결과를 상기 어플리케이션 프로세스 모듈 데이터베이스에 기록하는 악성코드 모듈 정보 및 파일 업로드기
    를 포함하는, 악성코드 검출 장치.
  4. 제1항에 있어서,
    상기 악성코드 검출 및 어플리케이션 구동 제어기는,
    상기 제1 어플리케이션 모듈 목록과 제2 어플리케이션 모듈 목록 간에 상이한 어플리케이션 모듈 목록을 사용자에게 알리고, 상기 어플리케이션 프로세스 모듈 데이터베이스에 상이한 어플리케이션 모듈 목록을 기록하는, 악성코드 검출 장치.
  5. 삭제
  6. 악성코드 검출 장치가 수행하는 악성코드 검출 방법에 있어서,
    상기 악성코드 검출 장치의 어플리케이션 모듈 검출기가 정상적으로 동작하는 검출 대상 어플리케이션으로부터 제1 어플리케이션 모듈 목록을 추출하는 단계;
    상기 악성코드 검출 장치의 어플리케이션 프로세스 모듈 데이터베이스가 상기 추출된 제1 어플리케이션 모듈 목록을 저장하는 단계; 및
    상기 악성코드 검출 장치의 악성코드 검출 및 어플리케이션 구동 제어기가 악성코드가 감염되었는 지 여부를 검사하는 대상인 검사 대상 어플리케이션이 실행될 때 주 메모리로 로드되는 제2 어플리케이션 제2 어플리케이션 모듈 목록과 상기 제1 어플리케이션 모듈 목록을 비교한 결과에 기초하여 상기 검사 대상 어플리케이션이 악성코드에 감염되었는 지 여부를 판단하고, 상기 검사 대상 어플리케이션이 악성코드에 감염된 것으로 판단된 경우 상기 검사 대상 어플리케이션이 동작하지 않도록 프로세스 구동을 제어하는 단계
    를 포함하는, 악성코드 검출 방법.
  7. 제6항에 있어서,
    상기 제1 어플리케이션 모듈 목록을 추출하는 단계는,
    상기 어플리케이션 모듈 검출기의 어플리케이션 프로세스 구동기가 정상적으로 동작하는 제1 어플리케이션 모듈 목록을 생성하기 위해 안전한 상태에서 검출 대상 어플리케이션을 구동시키는 단계; 및
    상기 어플리케이션 모듈 검출기의 어플리케이션 프로세스 모듈 검출기가 상기 구동된 검출 대상 어플리케이션을 통해 제1 어플리케이션 모듈 목록을 수집하여 어플리케이션 프로세스 모듈 데이터베이스에 기록하는 단계
    를 포함하는 악성코드 검출 방법.
  8. 제6항에 있어서,
    상기 검사 대상 어플리케이션이 동작하지 않도록 프로세스 구동을 제어하는 단계는,
    상기 악성코드 검출 및 어플리케이션 구동 제어기의 실시간 모듈 비교 분석기가 상기 검사 대상 어플리케이션의 제2 어플리케이션 모듈 목록과 상기 어플리케이션 프로세스 모듈 데이터베이스에 기록된 제1 어플리케이션 모듈 목록을 실시간으로 분석하여 비교하는 단계; 및
    상기 악성코드 검출 및 어플리케이션 구동 제어기의 어플리케이션 프로세스 구동 제어기가 상기 제1 어플리케이션 모듈 목록과 제2 어플리케이션 모듈 목록 간에 상이한 경우, 상기 검사 대상 어플리케이션이 악성코드에 감염된 것으로 판단하여 상기 검사 대상 어플리케이션을 실행하는 사용자에게 통지하고, 상기 검사 대상 어플리케이션의 프로세스 구동을 제어하는 단계
    를 포함하는 악성코드 검출 방법.
  9. 제8항에 있어서,
    상기 검사 대상 어플리케이션의 프로세스 구동을 제어하는 단계는,
    상기 제1 어플리케이션 모듈 목록과 제2 어플리케이션 모듈 목록 간에 상이한 어플리케이션 모듈 목록을 사용자에게 알리고, 상기 어플리케이션 프로세스 모듈 데이터베이스에 상이한 어플리케이션 모듈 목록을 기록하는 것을 특징으로 하는 악성코드 검출 방법.
  10. 제6항에 있어서,
    상기 악성코드 검출 장치의 어플리케이션 프로세스 모듈 패턴 업데이트기가 업데이트할 어플리케이션 모듈 목록이 존재하는 여부를 판단하는 단계; 및
    업데이트할 어플리케이션 모듈 목록이 존재하는 경우, 상기 악성코드 검출 장치의 어플리케이션 프로세스 모듈 패턴 업데이트기가 어플리케이션 모듈 목록을 업데이트하는 단계
    를 더 포함하는 악성코드 검출 방법.
  11. 제6항 내지 제10항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020090103536A 2009-10-29 2009-10-29 악성코드 검출 장치 및 그 방법 KR101056283B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090103536A KR101056283B1 (ko) 2009-10-29 2009-10-29 악성코드 검출 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090103536A KR101056283B1 (ko) 2009-10-29 2009-10-29 악성코드 검출 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20110046850A KR20110046850A (ko) 2011-05-06
KR101056283B1 true KR101056283B1 (ko) 2011-08-11

Family

ID=44238227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090103536A KR101056283B1 (ko) 2009-10-29 2009-10-29 악성코드 검출 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR101056283B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160090566A (ko) 2015-01-22 2016-08-01 국민대학교산학협력단 유효마켓 데이터를 이용한 apk 악성코드 검사 장치 및 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101265173B1 (ko) 2012-05-11 2013-05-15 주식회사 안랩 비실행 파일 검사 장치 및 방법
KR101244731B1 (ko) 2012-09-11 2013-03-18 주식회사 안랩 디버그 이벤트를 이용한 악성 쉘 코드 탐지 장치 및 방법
KR101582601B1 (ko) * 2014-01-10 2016-01-05 아리아시큐어 주식회사 액티비티 문자열 분석에 의한 안드로이드 악성코드 검출 방법
KR101477050B1 (ko) * 2014-05-28 2015-01-08 충남대학교산학협력단 메모리 덤프 기법을 이용한 어플리케이션의 실행코드 추출 방법
CN111240928B (zh) * 2020-01-06 2024-04-09 上海闻泰信息技术有限公司 设备驱动自动化检测方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090051956A (ko) * 2007-11-20 2009-05-25 한국전자통신연구원 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090051956A (ko) * 2007-11-20 2009-05-25 한국전자통신연구원 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160090566A (ko) 2015-01-22 2016-08-01 국민대학교산학협력단 유효마켓 데이터를 이용한 apk 악성코드 검사 장치 및 방법

Also Published As

Publication number Publication date
KR20110046850A (ko) 2011-05-06

Similar Documents

Publication Publication Date Title
US8621624B2 (en) Apparatus and method for preventing anomaly of application program
KR101056283B1 (ko) 악성코드 검출 장치 및 그 방법
KR101554633B1 (ko) 악성 코드 검출 장치 및 그 방법
EP2893447B1 (en) Systems and methods for automated memory and thread execution anomaly detection in a computer network
Lindorfer et al. Lines of malicious code: Insights into the malicious software industry
US9621571B2 (en) Apparatus and method for searching for similar malicious code based on malicious code feature information
US8763128B2 (en) Apparatus and method for detecting malicious files
TWI401582B (zh) 用於一硬體之監控裝置、監控方法及其電腦程式產品
US20140053267A1 (en) Method for identifying malicious executables
US20170103202A1 (en) Apparatus and method for monitoring virtual machine based on hypervisor
US10262139B2 (en) System and method for detection and prevention of data breach and ransomware attacks
US20190138713A1 (en) Method for Detecting a Deviation of a Security State of a Computing Device from a Desired Security State
US9959406B2 (en) System and method for zero-day privilege escalation malware detection
JP6918269B2 (ja) 攻撃推定装置、攻撃制御方法、および攻撃推定プログラム
KR101327740B1 (ko) 악성코드의 행동 패턴 수집장치 및 방법
KR101688632B1 (ko) 라이브러리 적재 탐지를 위한 방법 및 장치
EP3800570B1 (en) Methods and systems for genetic malware analysis and classification using code reuse patterns
CN104636661A (zh) 一种分析Android应用程序的方法和系统
JP7235126B2 (ja) バックドア検査装置、バックドア検査方法、及びプログラム
KR101724412B1 (ko) 확장 코드를 이용한 어플리케이션 분석 장치 및 방법
WO2021038705A1 (ja) バックドア検査装置、バックドア検査方法、及び非一時的なコンピュータ可読媒体
CN101739519B (zh) 用于一硬件的监控装置及监控方法
US11574049B2 (en) Security system and method for software to be input to a closed internal network
US11368377B2 (en) Closed loop monitoring based privileged access control
EP3913486A1 (en) Closed loop monitoring based privileged access control

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: 20140805

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150805

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160805

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170807

Year of fee payment: 7