KR100959274B1 - 네트워크 모니터링 정보를 이용한 악성 코드 조기방역 시스템 및 그 방법 - Google Patents

네트워크 모니터링 정보를 이용한 악성 코드 조기방역 시스템 및 그 방법 Download PDF

Info

Publication number
KR100959274B1
KR100959274B1 KR1020090101836A KR20090101836A KR100959274B1 KR 100959274 B1 KR100959274 B1 KR 100959274B1 KR 1020090101836 A KR1020090101836 A KR 1020090101836A KR 20090101836 A KR20090101836 A KR 20090101836A KR 100959274 B1 KR100959274 B1 KR 100959274B1
Authority
KR
South Korea
Prior art keywords
malicious code
tracking
list
early
malicious
Prior art date
Application number
KR1020090101836A
Other languages
English (en)
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 KR1020090101836A priority Critical patent/KR100959274B1/ko
Application granted granted Critical
Publication of KR100959274B1 publication Critical patent/KR100959274B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/146Tracing the source of attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

네트워크 보안시스템에서 작성된 추적요청리스트에 따라 방역서버가 추적할 컴퓨터 단말을 선정하여 악성코드를 추적하게 하는 조기방역 시스템 및 방법에 관한 것으로서, 방역서버와, 컴퓨터 단말에 설치되는 악성코드 조기방역 에이전트를 포함한다. 방역서버는 추적요청리스트를 수신하여 추적할 컴퓨터 단말의 조기방역 에이전트로 악성코드 추적을 요청하고, 조기방역 에이전트로부터 악성코드 추적결과를 수신하여 악성코드 여부를 판단하여 통제리스트를 갱신하고, 모든 컴퓨터 단말의 조기방역 에이전트에 통제리스트 업데이트를 요청한다. 조기방역 에이전트는 컴퓨터 단말에서 세션 후킹을 통하여 전송하려는 패킷을 조사하여 악성코드를 추적하고 추적결과를 방역서버에 전송하고 방역서버로부터 업데이트된 통제리스트를 전송받으면 시스템콜 후킹을 통하여 악성 코드의 설치 및 실행을 차단한다.
상기와 같은 시스템 및 방법에 의하면, 네트워크 정보로 구성된 추적요청리스트를 이용하여 네트워크 레벨에서 추적하고 통제리스트를 이용하여 커널 레벨에서 사전 방역함으로써, 악성 코드의 확산을 조기 대응하고 방역할 수 있으며 방역 결과를 악성코드에 대한 추적을 요청한 보안시스템으로 보냄으로써 보안시스템간 연동을 통한 신속한 대응을 지원할 수 있다.
악성코드, 바이러스, 방역, 프로세스 추적, 세션 후킹, 시스템콜 후킹, 추적요청리스트, 통제리스트

Description

네트워크 모니터링 정보를 이용한 악성 코드 조기방역 시스템 및 그 방법 { A system for early preventing proliferation of malicious codes using a network monitering information and the method thereof }
본 발명은 네트워크 보안시스템으로부터 네트워크 모니터링 정보를 기반으로 악성코드 추적을 요청받으면 방역서버는 추적 대상 컴퓨터 단말로 악성코드 추적을 요청하고, 추적된 악성코드에 대하여 모든 컴퓨터 단말로 방역을 실시하고, 추적을 요청한 보안시스템으로 처리 결과를 전달하는 악성 코드 조기방역 시스템 및 방법에 관한 것이다.
또한, 본 발명은 추적대상 컴퓨터 단말에서 악성 코드를 추적하기 위하여 세션 후킹을 통하여 악성 프로세스를 추적하고 판단하며 시스템콜 후킹을 이용하여 악성 코드의 설치 및 실행을 사전에 차단하는 악성 코드 조기방역 시스템 및 방법에 관한 것이다.
일반적으로 신종 또는 변종 바이러스를 치료하기 위해서 사용자가 자신의 컴퓨터에 이상 징후를 발견한 후 문제를 유발시킨 해당 프로그램을 찾아 백신 업체에 신고하게 되고, 백신 업체는 신고 접수된 파일을 컴퓨터 바이러스 또는 해킹 기능이 포함되어 있는지 분석 후 해당 악성코드에 대한 진단 및 차단 백신을 제작하고 배포하여 더 이상의 다른 컴퓨터 사용자의 컴퓨터 시스템에 유입되지 않도록 악성 프로그램을 차단한다.
현재 발견된 수많은 종류의 컴퓨터 바이러스는 누군가 먼저 해당 바이러스에 감염되어 피해를 본 후 신고된 것이 대부분이다. 그런데 최근 알려진 컴퓨터 바이러스와 해킹 프로그램들은 고도의 은닉 기법을 사용하고 있기 때문에, 컴퓨터 사용자가 직접 악성 코드를 찾기가 어렵고, 심지어 자신의 컴퓨터에 컴퓨터 바이러스에 의해 감염되어 있는지 조차 모르는 경우가 많다.
따라서 백신 업체로 바이러스 감염에 대한 신고가 늦어지고, 백신 제작이 늦어져서 바이러스로 인한 피해가 커질 뿐만 아니라, 그 피해가 다른 컴퓨터로 더 크게 확산되기도 한다.
한편, 이를 극복하고자, 백신업체들은 사용자 신고에만 의존하지 않고 신종 및 변조 바이러스를 조기에 확보하기 위한 방안이 제시되고 있다. 일례로 사용자 컴퓨터 단말(PC)에 새로 유입되는 실행 프로그램을 실시간으로 감지하여 해당 프로세스의 기능이 컴퓨터 바이러스의 특성과 유사할 경우 이를 샘플로 수집한다. 백신업체는 수집된 샘플을 분석하여 악성코드로 판정되면 바이러스 백신을 만들어 업데이트를 배포한다.
상기와 같이 실행되는 프로그램(또는 프로세스)을 검사하여 악성프로세스를 검출하는 기술의 일례가 [한국특허공개 제2009-0080220호(2009.7.24 공개), "유해 프로세스 검출/차단 재발방지 방법"](이하 선행기술 1)에 개시되어 있다. 상기 선행기술 1은 실행프로세스의 종류를 데이터베이스화하여 문제가 되는 악성프로세스를 찾아 제거하거나 실행을 하지 못하도록 차단(blocking)시키는 유해 프로세스 검출/차단 방법에 관한 것이다.
또, 다른 예가 [한국특허공개 제2006-0011558호(2006.2.3 공개), "컴퓨터 바이러스의 조기방역 시스템"](이하 선행기술 2)에 개시되어 있다. 상기 선행기술 2는 새로 유입되는 실행 프로그램을 실시간으로 감지하여 해당 프로그램에 내장된 기능이 컴퓨터 바이러스가 가질 수 있는 일반적인 기능을 내장하고 있는지를 분석하는 단계; 분석한 프로그램이 컴퓨터 바이러스의 가능성을 포함하고 있을 경우, 해당 프로그램을 지정된 서버에 조회를 요청하는 단계; 서버에서 암호화된 파일의 정보를 수신ㅇ분석하여 저장하고 그 수신된 정보를 단위 사업장에 따라 미리 정의해 놓은 정보와 비교하여 정상 프로그램, 바이러스, 차단 대상 프로그램인지를 구분하고 그 구분된 결과를 에이전트로 전송하는 단계를 포함하는 조기방역 시스템을 제시하고 있다.
그러나 상기 선행기술 1과 2는 이미 실행되고 있는 프로그램을 검사한다는 문제점이 있다. 즉, 새로 유입되는 실행 프로그램을 감시한다는 것도 이미 악성코드가 설치되어 실행되었다는 것을 의미한다. 따라서 악성코드가 유입되어 설치되는 순간을 알지 못하기 때문에, 악성코드의 모든 설치 정보(신규 파일 생성, 기존 파일 변경 등)를 확보하지 못한다. 이로 인해, 백신업체의 실행프로그램 실시간 감시 기술은 실행 프로그램 자체만을 분석하여 실행 중 관련 파일만을 수집하는 단점이 있다.
또한, 종래의 백신업체의 실행프로그램 실시간 감시 기술은 샘플을 수집하여 악성코드를 분석하였더라도 백신이 제작되어 배포된 후에야 대응이 가능하므로 악성코드 분석과 동시에 대응할 수 없는 단점도 있다.
한편, 상기와 같은 실행프로그램 실시간 감시 기술의 문제점을 극복하기 위하여, 시스템 커널에서 발생하는 특정 이벤트들, 예를 들어, 특정 파일의 쓰기, 특정 프로그램의 실행 등이 발생할 때, 프로세스(또는 프로그램)를 검사하는 기술들이 제시되고 있다.
이와 같은 기술의 일례가 [한국특허공개 제2007-0121195호(2007.12.27 공개), "시스템 이벤트 정보를 이용한 은닉 프로세스 탐지 시스템 및 방법"](이하 선행기술 3)에 개시되어 있다. 상기 선행기술 3은 커널 계층에서 실시간 시스템 자원 접근시 제공되는 시스템 이벤트 정보를 이용하여 프로세스 리스트를 추출하여 응용 계층에서 사용자에게 제공되는 프로세스 리스트와의 비교를 통해 커널 계층에만 제공되는 프로세스를 은닉 프로세스로 검출하고 제거하여 실시간으로 시스템에 존재하는 은닉 프로세스를 탐지하는 기술을 제시하고 있다.
또 다른 일례가 [한국특허공개 제2007-0107840호(2007.11.08 공개), "실시간 유해 프로그램 차단 방법과 익스플로러 초기화방법, 및 그러한 방법을 순차적으로 실행하기 위한 프로그램을 기록한 기록매체"](이하 선행기술 4)에 개시되어 있다. 상기 선행기술 4는 컴퓨터 시스템 내부에서 일어나는 파일 입출력, 특정 프로세스 실행 등과 같은 이벤트 발생시 그 이벤트가 컴퓨터 시스템에 악영향을 주는 유해 프로그램에 기초한 동작일 경우, 유해 프로그램의 동작이 이루어지기 전에 실시간으로 감지한 후 그 실행을 차단하고, 나아가 그 유해 프로그램을 제공한 모체 프로그램까지 추적 검출하여 그 모체 프로그램도 함께 제거함으로써 원천적으로 유해 프로그램의 동작을 차단시키는 방법에 관한 것이다.
그러나 상기 선행기술 3과 4는 시스템 이벤트가 발생되는 커널 계층에서 프로세스를 검사하므로 시스템에 부하가 가중될 수 있는 문제점이 있다.
또한, 상기 선행 기술 1과 2는 응용 레벨에서 실행 프로그램을 검사하고 선행 기술 3과 4는 커널 레벨에서 시스템 이벤트를 검사하는 차이는 있지만 신종 또는 변종 악성코드를 찾아내기 위해 컴퓨터 단말 자체의 정보에만 의존하고 있어 침입탐지시스템, 침입차단시스템, DDoS 전용 장비, 보안관제시스템 등 다른 보안시스템에서 먼저 침입을 탐지하였을 경우 탐지 정보를 활용할 수 없어 대응이 늦어질 수 있다.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 침입탐지시스템, 침입차단시스템, DDoS 전용 장비, 보안관제시스템 등 네트워크 보안시스템에서 먼저 침입을 탐지하였을 경우 탐지 정보를 방역서버에서 전달받아 컴퓨터 단말의 악성코드를 추적하고, 방역서버를 통하여 전체 컴퓨터 단말에 방역하고 결과를 추적 요청한 보안시스템으로 전달하는 악성 코드 조기방역 시스템 및 방법을 제공하는 것이다.
또한, 본 발명은 추적 대상 컴퓨터 단말에서 악성 코드를 추적하기 위하여 세션후킹을 통하여 악성 프로세스를 추적하고 판단하는 악성 코드 조기방역 시스템 및 방법을 제공하는 것이다.
또한 본 발명의 목적은 추적된 프로세스에 대하여 통제리스트를 이용하여 정상 여부를 판단하고 의심되는 프로세스인 경우 프로세스 및 관련 정보를 수집하여 방역서버로 전송하여 검사하고 치료 백신을 개발하기 전에 업데이트된 통제리스트를 통하여 전체 컴퓨터 단말에 대하여 방역하는 악성 코드 조기방역 시스템 및 방법을 제공하는 것이다.
또한 본 발명의 목적은 컴퓨터 단말에서 업데이트된 통제리스트를 이용하여 시스템콜 레벨에서 통제함으로써 실시간으로 악성 코드의 설치 및 실행을 통제함으 로서 사전 방역하는 악성 코드 조기방역 시스템 및 방법을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 네트워크 보안시스템(이하 보안시스템)과 네트워크로 연결된 방역서버와, 상기 방역서버와 네트워크로 연결된 컴퓨터 단말에 설치되는 악성코드 조기방역 에이전트를 포함하는 조기방역 시스템에 관한 것으로서, 상기 방역서버는, 상기 보안시스템으로부터 추적요청리스트를 수신하여, 컴퓨터 단말의 조기방역 에이전트로 악성코드 추적을 요청하는 악성코드 추적관리부; 및 상기 조기방역 에이전트로부터 악성코드 추적결과를 수신하여 악성코드 여부를 판단하고, 통제리스트를 갱신하여 상기 조기방역 에이전트에 통제리스트 업데이트를 요청하는 악성코드 판단부를 포함하고, 상기 조기방역 에이전트는, 상기 방역서버로부터 악성코드 추적을 요청받아 컴퓨터 단말에서 악성코드를 추적하고 추적결과를 방역서버로 전송하는 악성코드 추적부; 세션 후킹을 통하여 전송하려는 패킷을 조사하여 악성코드를 추적하는 세션후킹 추적부; 상기 방역서버로부터 수신한 업데이트된 통제리스트에 따라 방역을 실시하는 악성 코드 방역부; 시스템콜을 후킹하여 통제리스트에 따라 악성 코드의 설치 및 실행을 차단하는 시스템콜 후킹 통제부를 포함하는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 시스템에 있어서, 상기 악성코드 추적관리부는 상기 보안시스템으로부터 IP주소(또는 IP주소 및 포트) 정보를 포함하는 추적요청리스트를 수신하여, 상기 IP주소 정보에 매핑되는 IP주소를 가지는 컴퓨터 단 말을 추적대상으로 선정하고, 추적대상 컴퓨터 단말로 상기 추적요청리스트를 전송하는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 시스템에 있어서, 상기 추적 요청 리스트는 공격시스템 정보(근원지 IP주소 및 포트번호), 피해시스템 정보(목적지 IP주소 및 포트번호), 패킷 시그너쳐를 포함하고, 상기 악성 코드 추적 관리부는 공격시스템 정보 중 근원지 IP주소로 매핑하여 추적할 대상 컴퓨터 단말을 결정하는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 시스템에 있어서, 상기 악성코드 추적부는, 상기 세션후킹 추적부를 통하여, 전송하려는 패킷에 대하여 네트워크 세션 테이블과 비교하여 상기 패킷을 전송하려는 프로세스를 추적하고, 추적된 프로세스의 악성여부를 판단하여 악성코드를 추적하는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 시스템에 있어서, 상기 세션후킹 추적부는 프로세스 추적에 있어서 근원지 정보와 목적지 정보를 모두 이용하여 추적하는 방법, 목적지 정보를 이용하여 추적하는 방법, 패킷 시그너쳐를 사용하는 방법으로 추적하는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 시스템에 있어서, 상기 세션후킹 추적부는 추적된 프로세스에 대하여 악성 여부를 판단하기 위하여 통제리스트를 사용하는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 시스템에 있어서, 상기 통제리스트는 허용 리스트, 거부 리스트, 의심 리스트를 포함하고, 상기 세션후킹 추적부에서는 추적 된 프로세스에 대하여 통제 리스트의 허용 리스트를 이용하여 정상 여부를 판단하고 허용리스트에 포함되지 않은 경우 의심 리스트로 구분하여 등록시켜 수집하는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 시스템에 있어서, 상기 악성코드 판단부는, 컴퓨터 단말에서 전송받은 의심 프로세스(의심리스트에 속한 프로세스)에 대하여 분석한 판단기준을 포함하며 의심프로세스는 허용리스트 또는 거부리스트로 분류되어 등록되는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 시스템에 있어서, 상기 악성 코드 판단부는, 업데이트된 통제리스트를 연결된 모든 컴퓨터 단말로 전송하는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 시스템에 있어서, 상기 악성 코드 방역부는 방역 서버로부터 업데이된 통제리스트를 수신하여 거부리스트에 등록된 악성 프로세스를 중지시키고 파일, 레지스트리, 드라이버에서 악성 코드를 삭제하는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 시스템에 있어서, 상기 시스템콜 후킹 통제부는 악성코드 방역부로부터 업데이트된 통제리스트를 수신하여, 네트워크 프로세스(또는 실행코드)의 설치 또는 실행이 요청되면, 시스템콜 후킹을 통하여 통제리스트의 거부리스트와 비교하여 상기 프로세스가 거부리스트에 속하면 상기 요청을 차단하는 것을 특징으로 한다.
또한, 본 발명은 네트워크 보안시스템(이하 보안시스템)과 네트워크로 연결된 방역서버와, 상기 방역서버와 네트워크로 연결된 컴퓨터 단말에 설치되는 악성코드 조기방역 에이전트를 이용하는 악성코드 조기방역 방법에 관한 것으로서, (a) 상기 방역서버가 상기 보안시스템으로부터 추적요청리스트를 수신하여, 컴퓨터 단말의 조기방역 에이전트로 악성코드 추적을 요청하는 단계; (b) 상기 에이전트가 상기 방역서버로부터 악성코드 추적을 요청받아 악성코드를 추적하는 단계; (c) 상기 에이전트가 컴퓨터 단말에서 악성코드를 추적한 추적결과를 방역서버로 전송하는 단계; (d) 상기 방역서버는 상기 조기방역 에이전트로부터 악성코드 추적결과를 수신하여 악성코드 여부를 판단하는 단계; (e) 상기 방역서버는 통제리스트를 갱신하여 상기 조기방역 에이전트에 통제리스트 업데이트를 요청하는 단계; (f) 상기 에이전트는 상기 방역서버로부터 수신한 업데이트된 통제리스트에 따라 방역을 실시하는 단계를 포함하는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 방법에 있어서, 상기 (b)단계는 상기 에이전트가 네트워크 세션 테이블 비교와 세션 후킹을 통하여 전송하려는 패킷을 조사하여 악성코드를 추적하는 것을 특징으로 한다.
또, 본 발명은 악성코드 조기방역 방법에 있어서, 상기 (f)단계는 상기 에이전트가 시스템콜 후킹을 통하여 악성 코드의 설치 및 실행을 차단하는 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 악성코드 조기방역 시스템 및 방법에 의하면, 방역 서버에서 다른 보안시스템으로부터 추적요청리스트를 전달받아 컴퓨터 단말에서 프로세스를 추적하고 통제리스트를 이용하여 의심 프로세스를 판단함으로써 네트워크 보안시스템 등 다른 보안시스템에서 조기 탐지된 정보를 기반으로 조기 대응하고 방역할 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 악성프로세스 조기방역 시스템 및 방법에 의하면, 세션 후킹을 통하여 네트워크 프로세스를 추적함으로써 네트워크 탐지 정보를 기반으로 미지의 악성 코드를 추적하여 방역하는 효과가 얻어진다.
또한, 본 발명에 따른 악성프로세스 조기방역 시스템 및 방법에 의하면, 커널 레벨에서 업데이트된 통제리스트의 거부리스트를 이용하여 악성코드에 감염된 컴퓨터 단말은 방역하고 악성코드에 감염되지 않은 컴퓨터 단말은 같은 악성코드가 실행되지 않도록 함으로써, 악성코드의 확산을 조기에 차단할 수 있는 효과가 얻어진다.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명을 실시하기 위한 전체시스템을 도 1을 참조하여 설명한다.
도 1에서 도시한 바와 같이, 본 발명을 실시하기 위한 전체 시스템은 다수의 컴퓨터 단말(10), 방역서버(30), 네트워크(20), 네트워크 보안시스템(40)으로 구성된다. 한편, 악성코드 조기방역 에이전트(300)는 상기 컴퓨터 단말(10)에 설치되어 실행된다.
컴퓨터 단말(10)은 사용자가 이용하는 통상의 컴퓨팅 단말기이다. 컴퓨터 단말(10)은 개인용 컴퓨터(PC), 노트북, 넷북, PDA 등이 있다. 컴퓨터 단말(10)에는 컴퓨터 시스템을 운영하기 위한 운영체제(OS)가 설치되고, 어플리케이션 프로그램들이 운영체제(OS) 상에 설치될 수 있다. 컴퓨터 단말(10)은 인터넷 등 네트워크(20)에 연결되고, 컴퓨터 단말(10)에는 네트워크(20)와 연결하기 위하여 네트워크 어댑터(또는 네트워크 인터페이스 카드, NIC)가 설치된다. 컴퓨터 단말의 운영체제(OS)는 파일 쓰기, 레지스트리 쓰기, 프로그램 실행(오픈), 동적연결 라이브러리(DLL) 실행, 드라이버 실행, 네트워크 데이터 전송 등을 수행하는 시스템콜 서비스를 제공한다.
악성코드 조기방역 에이전트(300)는 컴퓨터 단말(10)에 설치되며, 운영체제(OS) 상에서 실행된다.
방역서버(30)는 서버의 일종으로, 인터넷 등 네트워크(20)에 연결되어 방역 서비스를 제공하는 컴퓨터 시스템이다.
한편, 도 1에서 네트워크(20)가 컴퓨터 단말(10)과 방역서버(30), 방역서버(30)와 보안시스템(40) 사이의 2개로 구분되나, 이들 네트워크는 인터넷 등 하나의 네트워크일 수 있다.
네트워크 보안시스템(40)은 침입탐지시스템, 침입차단시스템, DDoS 전용 장비, 보안관제시스템 등 네트워크 보안을 위해 네트워크를 감시하여 이상 행위를 탐지하는 모든 시스템을 말한다. 네트워크 보안시스템(40)은 네트워크 상에 보내지는 패킷들을 조사하여 패킷 내에 이상 코드가 있는지를 검사한다. 예를 들어, 이상코드에는 패킷의 IP주소도 포함되며, 네트워크 보안시스템(40)은 패킷의 IP주소가 이상코드로 등록된 IP주소인지를 검사한다. 또한, 네트워크 보안시스템(40)은 이상코드를 포함한 패킷을 발견하면 패킷을 송신한 IP주소 등 이상 패킷에 대한 정보를 수집하기도 한다.
한편, 네트워크 보안시스템(40)은 네트워크(20)를 통해 방역서버(30)에 접속하고, 방역서버(30)는 네트워크(20)를 통해 악성코드 조기방역 에이전트(300)에 접속한다. 보안시스템(40)에서 이상 행위가 탐지되면 악성 코드 추적 및 차단을 위해 추적요청리스트를 이용하여 방역서버(30)로 악성코드 추적을 요청한다. 추적요청리스트에는 이상 패킷을 송신한 IP주소(또는 공격시스템 IP정보), 이상패킷을 수신하는 IP주소(또는 피해시스템 IP정보), 이상코드 패턴(또는 공격패킷 시그너쳐) 등 공격정보를 포함한다.
방역서버(30)는 추적요청리스트의 공격정보를 기반으로 추적 대상 컴퓨터 단말(10)을 선정하고 해당 컴퓨터 단말(10)의 악성코드 조기방역 에이전트(300)에 추적요청리스트를 전달하여 악성 프로세스 추적을 요청한다.
컴퓨터 단말의 악성코드 조기방역 에이전트(300)는 추적요청리스트를 기반으로 세션 후킹과 시스템콜 후킹을 이용하여 프로세스를 추적하고 통제리스트를 기반 으로 프로세스의 정상 여부(또는 악성여부)를 판정하고 의심 프로세스 및 관련 정보를 방역서버(30)로 전달한다. 통제리스트는 각 프로세스를 허용 리스트, 거부 리스트, 의심리스트로 구분한 리스트이다. 즉, 프로세스가 허용 리스트(또는 거부 리스트)에 있으면, 그 프로세스는 허용(또는 거부)된다. 허용은 곧 정상 프로세스를 의미하고, 거부는 곧 악성 프로세스를 의미한다.
방역서버(30)는 수집된 의심 프로세스 및 관련 정보를 분석하여 정상 코드인지 악성 코드인지 판단하고 통제리스트를 업데이트하여 모든 컴퓨터 단말의 악성코드 조기방역 에이전트(300)에게 배포하여 전송한다.
따라서 최초에 하나의 컴퓨터 단말(10)에서 악성 프로세스가 설치된다하더라도, 상기 악성 프로세스에 대한 정보가 방역서버(30)로 전송하게 되고, 방역서버(30)는 상기 프로세스가 악성 프로세스임을 다른 모든 컴퓨터 단말(10)에 전송한다. 이로써 악성코드의 확산이 방지된다.
또한 방역서버(30)에서 악성코드 추적 및 차단 결과를 보안시스템(40)에 전송함으로써 악성코드의 확산이 방지하고 사이트의 신뢰성을 확보할 수 있다.
"프로세스"의 용어는 "실행되는 프로그램(또는 실행코드)"의 의미를 갖으나, 보다 넓은 의미인 "프로그램(또는 실행코드)"의 의미도 포함하는 개념으로 사용한다. 즉, 이하에서, 프로세스의 용어는 "프로그램"의 의미로서도 사용될 것이다. 또한, 악성코드는 곧 "악성 프로그램"의 의미이고, 다른 한편, 실행중인 악성 프로그램인 "악성 프로세스"의 의미도 포함한다. 악성코드를 추적한다는 의미는 실행중인 "프로세스" 중 "악성 프로세스"를 찾는다는 의미이기도 한다. 또, 악성코드를 방역 한다는 의미는 찾은 악성 프로세스의 실행을 중지시키고, 그 악성 프로그램, 즉, 악성코드를 삭제한다는 의미를 포함된다. 악성코드의 삭제는 악성코드의 프로그램 파일을 삭제하거나, 설치되어 등록된 운영체제의 레지스트리의 내용을 삭제하거나, 또 드라이버로 등록되어 있으면 드라이버를 삭제하는 등의 프로그램 삭제 작업을 포함한다.
다음으로, 본 발명의 일실시예에 따른 악성코드 조기방역 시스템의 구성을 도 2와 도 3을 참조하여 설명한다. 상기 악성코드 조기방역 시스템은 악성코드 조기방역 에이전트(300)와 방역서버(30, 400)로 구성되며 악성코드 조기방역 에이전트(300)는 컴퓨터 단말(10)에 설치되어 실행되는 소프트웨어 시스템이다.
상기 컴퓨터 단말(10)의 운영체제는 파일 또는 레지스트리 등 시스템 자원에 쓰기 서비스, 프로그램 또는 동적연결라이브러리(DLL) 등 프로세스를 실행시키는 서비스 등을 제공한다.
도 2에서 보는 바와 같이, 악성코드 조기방역 에이전트(300)는 악성코드 추적부(310), 세션후킹 추적부(320), 악성코드 방역부(330), 시스템콜 후킹 통제부(340)를 포함하며, 방역서버(30, 400)는 악성코드 추적 관리부(410), 악성코드 판단부(420)를 포함한다. 추가적으로 방역서버(400)는 데이터를 저장하기 위한 데이터베이스(500)를 포함할 수 있다.
악성코드 추적 관리부(410)는 보안시스템(40)으로부터 악성코드 추적요청으 로서 추적요청리스트(510)를 받아 대상 컴퓨터 단말(10)을 선정하고 해당 컴퓨터 단말의 악성코드 추적부(310)로 악성 프로세스 추적을 위해 추적요청리스트(510)를 전달한다.
악성코드 추적부(310)는 악성코드 추적 요청에 대하여 세션 후킹 추적부(320)를 통하여 의심프로세스를 추적하고 추적결과를 악성코드 판단부(420)에 전송한다.
바람직하게는, 추적결과는 통제리스트에 따라 각 프로세스에 대한 판단결과와 의심리스트(또는 의심 프로세스)에 대한 정보를 포함한다. 즉, 추적결과는 프로세스 중 의심 프로세스로 등록시킨 프로세스의 리스트인 의심리스트와 등록된 의심 프로세스에 대한 정보를 포함한다. 의심 프로세스에 대한 정보는 프로세스의 실행코드(또는 프로그램), 설치된 상태 정보, 전송하려는 패킷정보, 이용하는 네트워크 드라이버 정보 등을 포함할 수 있다. 즉, 악성코드 여부를 판단하기 위한 정보들을 포함한다.
세션 후킹 추적부(320)는 운영체제에서 제공하는 네트워크 드라이버를 후킹하여, 송수신되는 패킷의 정보와 추적요청리스트(510) 정보를 비교하고 프로세스가 추적되면 통제리스트(520)를 이용하여 정상 프로세스와 의심 프로세스를 판단한다.
악성코드 판단부(420)는 악성코드 추적부(310)에서 추적한 의심프로세스(또는 거부프로세스) 및 관련 정보를 전달받아 정상 코드인지 악성 코드인 판단하고 통제리스트(520)를 업데이트한 후 모든 컴퓨터 단말의 악성코드 방역부(340)로 방역을 요청한다.
악성코드 방역부(330)는 업데이트된 통제리스트(520)를 기반으로 악성 코드를 중지 또는 삭제하고 사후 재감염에 의한 악성코드 실행을 차단하기 위하여 시스템콜 후킹 통제부(340)로 업데이트된 통제리스트(520)를 전달한다.
시스템콜 후킹 통제부(340)는 업데이트된 통제리스트(520)를 기반으로 악성 코드의 설치 및 실행을 사전에 차단한다.
악성코드 추적 관리부(310)는 악성 코드 추적을 요청한 보안시스템(40)으로 악성 코드 추적에 따른 결과를 통보한다.
도 3을 참조하여 방역서버(30)에서 보안시스템(40)으로부터 악성 코드 추적을 요청받아 컴퓨터 단말(10)에서 세션 후킹과 시스템 후킹을 이용하여 악성코드를 추적하고, 방역서버(30)를 통하여 모든 컴퓨터 단말을 방역하는 시스템의 구성을 구체적으로 설명하고자 한다.
도 3에서 보는 바와 같이, 방역서버(30)의 악성코드 추적관리부(410)는 보안시스템(40)으로부터 추적요청리스트(510)와 함께 악성코드 추적요청을 수신한다.
추적요청리스트(510)는 도 4에서 보는 바와 같이 구성된다. 즉, 추적요청리스트(510)는 탐지시간(511), 공격시스템정보(512), 피해시스템정보(513), 패킷 시그너쳐(514)를 포함한다. 공격시스템 정보(512)는 패킷을 공격하는 컴퓨터 단말(또는 시스템)의 IP주소(또는 IP주소 및 포트번호)를 포함하고, 피해시스템 정보(513)는 패킷 공격을 당하는 컴퓨터 단말(또는 시스템)의 IP주소(또는 IP주소 및 포트번호)를 포함한다. 즉, 전자는 근원지 IP주소(또는 근원지 IP주소 및 포트번호)이고, 후자는 목적지 IP주소(또는 목적지 IP주소 및 포트번호)이다.
IP주소 또는 IP주소 및 포트번호는 세션을 설정할 때, 세션의 목적지와 근원지를 구분하는 주소이다. 세션은 IP주소 및 포트번호로 구분되나, 대상 컴퓨터 단말은 IP주소로만 구분될 수도 있다. 공용 IP주소를 이용하는 경우, 하나의 IP주소는 그 IP주소를 이용하는 컴퓨터 단말이 식별될 수 있다. 그러나 각 컴퓨터 단말은 사설 IP주소를 이용하고, NAT를 통해 공용 IP주소와 포트번호로 변환될 수도 있다. 즉, 이와 같이, 세션에 의한 패킷의 목적지 주소 및 근원지 주소와, 컴퓨터 단말을 식별하는 IP주소(또는 IP주소와 포트번호)는 서로 다를 수 있다. 이들 주소를 전환하는 것을 IP주소 매핑을 의미한다. 또, 이하에서 IP주소와 IP주소 및 포트번호를 IP주소로 혼용한다. 즉, IP주소로 기재하더라도 상황에 따라 IP주소 및 포트번호를 의미한다.
탐지시간(511)은 보안시스템(40)이 패킷 등에서 이상코드를 탐지한 시간을 의미한다. 또, 공격시스템정보(512)는 이상코드를 가지는 패킷을 생성 또는 전송하는 단말(또는 시스템)에 대한 정보로서, IP주소 또는 IP주소와 포트(Port)번호로 구성된다. 또, 피해시스템정보(513)는 이상코드를 가지는 패킷을 수신하는 단말(또는 시스템)에 대한 정보로서, IP주소 또는 포트(Port)번호로 구성된다.
패킷 시그너쳐(514)는 패킷의 이상 여부를 판단할 수 있는 일련의 코드 열로서, 패킷 내의 페이로드(payload)에 위치할 수도 있고, IP주소 또는 포트번호 등일 수도 있다. 패킷 내에 패킷 시그너쳐가 포함되어 있으면, 그 패킷은 이상 패킷으로 감지될 수 있다.
방역서버의 악성코드 추적관리부(410)는 추적요청리스트(510)의 공격시스템정보(512) 중 근원지 IP를 분석하여, 관리하는 컴퓨터 단말(10) 중에서, 상기 근원지 IP주소와 매핑되는 IP주소를 가지는 컴퓨터 단말을 추적할 대상으로 결정한다. 악성코드를 추적할 대상 컴퓨터 단말(10)이 결정되면, 악성코드 추적관리부(410)는 추적요청리스트(510)를 대상 컴퓨터 단말(10)의 악성코드 추적부(310)로 전달한다.
악성코드 추적대상 컴퓨터 단말의 악성코드 추적부(310)는 추적요청리스트(510)에 공격시스템 정보(512) 및 피해시스템 정보(513)가 있는 경우 운영체제에서 제공하는 네트워크 세션 테이블(130)을 이용하여 프로세스를 추적하고 추적요청리스트(510)에 시그너쳐만 있는 경우 추적요청리스트(510)를 세션후킹 추적부(320)로 전달하여 프로세스를 추적한다.
네트워크 세션 테이블(130)은 운영체제에 의해 관리되고 제공되는 테이블로서, 프로세스가 네트워크 드라이버를 이용하여 데이터를 송수신하기 위해 생성하는 세션정보를 관리하는 테이블이다. 네트워크 세션 테이블(130)에는 생성된 각 세션에 대하여, 목적지 주소(목적지 IP주소 및 포트 정보)와 근원지 주소(근원지 IP주소 및 포트 정보), 그리고 세션 설정을 요청한 프로세스 정보 등을 가지고 있다. 따라서 네트워크 세션 테이블(130)의 각 세션의 목적지 주소 또는 근원지 주소를 비교하여, 세션을 형성한 프로세스를 찾을 수 있다(추적할 수 있다). 즉, 프로세스가 생성한 세션(또는 패킷)의 목적지 주소 또는 근원지 주소가 네트워크 세션 테이블(130)에 존재하는 세션의 목적지 주소 또는 근원지 주소가 동일하면, 테이블에 존재하는 그 세션의 프로세스가 곧 추적하고자 하는 프로세스이다. 이때, 목적지 주소와 근원지 주소를 모두 비교할 수도 있고, 목적지 주소만 비교할 수도 있다.
따라서 네트워크 세션 테이블(130)에 존재하는 각 세션의 근원지 주소와 목적지 주소를 조사하여, 공격시스템 정보(512)의 근원지 주소와 피해시스템 정보(513)의 목적지 주소가 모두 동일한 세션을 찾아 프로세스를 추적한다.
세션후킹 추적부(320)는 운영체제에서 제공하는 네트워크 드라이버를 후킹하여, 송수신되는 패킷(특히 송신되는 패킷)을 모니터링하고 공격패킷 시그너쳐(514)와 일치하는 패킷이 탐지되었을 경우 악성코드 추적부(310)로 세션정보를 전달하여 프로세스를 추적한다. 패킷 모니터링은 패킷의 내용 중에 공격패킷 시그너쳐와 일치되는 내용이 포함되는 것인가를 탐지하는 것을 말한다. 즉, 세션후킹 추적부(320)는 공격패킷 시그너쳐(514)에 대한 시그너쳐 필터링 규칙을 적용하고 실시간으로 패킷을 모니터링한다.
세션후킹 추적부(320)는 시그너쳐 필터링 규칙에 의해 일치하는 패킷이 검사되면, 이 패킷의 목적지 주소와 근원지 주소를 포함하는 정보를 세션정보로 악성코드 추적부(310)에 전송한다. 악성코드 추적부(310)는 상기 세션정보의 주소와 네트워크 세션 테이블(130)을 비교하여 프로세스를 추적한다.
악성코드 추적부(310)는 추적된 프로세스에 대하여 통제리스트(410)의 허용 리스트(521)와 비교하고 허용 리스트에 포함되어 있지 않으면 의심 프로세스로 판단하고 방역서버로 보고한다. 의심 프로세스로 판단되면 의심 리스트에 등록시키고, 의심리스트를 방역서버에 전송한다. 의심리스트를 전송할 때, 의심프로세스에 대한 정보도 함께 전송한다.
상기 실시 예에 따라 네트워크 후킹을 통한 패킷 모니터링으로 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 네트워크 프로세스의 접속 기록에 기반한 추적 등 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
도 5에 보는 바와 같이, 통제리스트(410)는 허용 리스트(411), 거부 리스트(412), 의심 리스트(413)를 포함한다.
상기 악성코드 추적부(310)는 세션 후킹 추적부(320)의 추적 결과를 전달받아 추적된 의심 프로세스가 있는 경우 프로세스와 관련된 정보를 수집하여 방역서버의 악성코드 판단부(420)로 전달하고 추적된 프로세스가 없는 경우 추적된 프로세스가 없음을 악성코드 추적 관리부(410)로 보고한다.
방역서버의 악성코드 판단부(420)는 추적 대상 컴퓨터 단말의 악성코드 추적부(310)로부터 수집된 거부 프로세스 및 의심 프로세스 정보를 기반으로 정상 코드인지 악성 코드인지를 판단하고 통제리스트(520)를 업데이트하여 모든 컴퓨터 단말의 악성코드 방역부(330)로 전달한다.
모든 컴퓨터 단말의 악성코드 방역부(330)는 업데이트된 통제리스트(520)에 따라 컴퓨터 단말에 저장된 통제리스트를 갱신한다. 또, 악성코드 방역부(330)는 거부리스트(522)에 포함된 프로세스를 중지하고 방역서버의 정책에 따라 거부리스트의 파일, 레지스트리, 드라이버를 삭제하고, 업데이트된 통제리스트(520)를 시스템콜 후킹 통제부(340)로 전달한다.
시스템콜 후킹 통제부(340)에서는 같은 악성 코드에 의한 피해를 사전에 방지하기 위하여 거부리스트(522)에 포함된 악성코드의 설치 및 실행을 사전에 차단한다.
상기 방역서버의 악성코드 추적 관리부(310)는 악성 코드 추적을 요청한 보안시스템(40)으로 악성 코드 추적 결과를 전송한다.
다음으로, 본 발명의 일실시예에 따른 방역서버(30)의 악성코드 추적 관리부(310)의 악성 코드 추적 대상 시스템 선택 방법을 도 6을 참조하여 설명한다.
도 6에서 보는 바와 같이, 방역서버의 악성코드 추적 관리부(310)에서 보안시스템(40)으로부터 추적요청리스트(510)로 악성코드 추적을 요청받으면 먼저 추적요청리스트(510)의 공격시스템 정보(512)를 검색한다(S110).
공격시스템 정보(512)에서 근원지 IP가 존재하는지 검사(S120)하고 근원지 IP가 없으면 악성코드 추적 대상 시스템을 ALL(전체)로 설정한다.
공격시스템 정보(512)에서 근원지 IP가 있으면 관리하고 있는 컴퓨터 단말과 매핑이 가능한지 검토(S130)한다. NAT(Network Address Translation) 등을 사용함으로써 근원지 IP 매핑이 가능하지 않으면 추적 대상 시스템을 ALL(전체)로 설정한다. 그 외 근원지 IP 매핑이 가능한 경우 근원지 IP 정보를 매핑한다(S150).
근원지 IP가 결정되면 방역서버에서 관리하고 있는 컴퓨터 단말인지 검사한다(S160). 방역서버에서 관리하고 있는 컴퓨터 단말인 경우 대상 컴퓨터 단말의 악성코드 추적부(310)로 추적요청리스트(510)를 전달하여 악성코드 추적을 요 청(S170)한다. 관리하고 있는 컴퓨터 단말이 아닌 경우, 악성코드 추적 관리부(310)는 악성코드 추적을 요청한 보안시스템(40)으로 관리 범위를 벗어남을 통보(S171)한다.
다음으로, 본 발명의 일실시예에 따라 컴퓨터 단말(10)의 악성코드 추적부(310)가 세션 후킹 추적부(320)를 이용하여 악성 프로세스를 추적하고 악성코드 방역부(330)가 시스템콜 후킹 통제부(330)를 이용하여 방역하고 악성 코드를 차단하는 방법을 도 7을 참조하여 설명한다.
도 7에서 보는 바와 같이, 컴퓨터 단말의 악성코드 추적부(310)가 방역서버의 악성코드 추적 관리부(410)로부터 악성 코드 추적을 요청받으면 추적요청리스트(510)에 공격시스템정보(512)와 피해시스템정보(513)가 있는지 비교(S201)한다.
추적요청리스트(510)에 공격시스템정보(512)와 피해시스템정보(513)가 있으면, 악성코드 추적부(310)는 네트워크 세션 테이블(130)을 검색하여 프로세스를 추적(S202)한다.
또, 추적요청리스트(510)에 공격패킷 시그너쳐(514)만 있는 경우, 세션후킹 추적부(320)에 공격패킷 시그너쳐(514)에 대한 패킷 모니터링을 요청(S212)한다.
추적요청리스트(510)에 공격시스템정보(512)와 피해시스템정보(513)가 있어 네트워크 세션 테이블(130)을 검색하여 프로세스를 추적(S202)하는 경우, 네트워크 세션 테이블(130)에 추적요청리스트(510)의 공격시스템 정보(511)와 피해시스템 정보(512)가 모두 일치하는 즉, 동일한 세션이 있는지 비교(S203)한다.
동일한 세션이 있는지 비교(S203)하여 동일한 세션이 존재하면 네트워크 세션 테이블(130)의 해당 프로세스에 대하여 통제리스트(520)의 허용 리스트(521)와 비교(S204)하여, 허용리스트(521)에 포함되어 있지 않으면 의심리스트(523)에 등록(S205)하고, 포함되어 있으면 허용리스트(521)에 포함되어 있음을 보고(S206)한다.
동일한 세션이 있는지 비교(S203)하여 동일한 세션이 없는 경우 추적요청리스트(510)에서 피해시스템 정보(512)의 목적지 IP를 기반으로 네트워크 세션 테이블에 해당 프로세스가 존재하는지 비교(S207)한다.
네트워크 세션 테이블(130)과 비교하여 피해시스템 정보(512)의 목적지 IP와 일치하는 정보가 없는 경우 해당 프로세스가 없음(요청 오류 또는 스푸핑 가능성)을 보고(S208)한다.
네트워크 세션 테이블과 비교하여 피해시스템 정보(512)의 목적지 IP와 일치하는 정보가 있는 경우 해당 프로세스에 대하여 통제리스트(520)의 허용 리스트(521)와 비교(S209)하여, 허용리스트(521)에 포함되어 있지 않으면 의심리스트(523)에 등록(S210)하고, 포함되어 있으면 허용 리스트(521)에 포함되어 있음을 보고(S211)한다.
세션후킹 추적부(320)에서 공격패킷 시그너쳐(514)에 대한 모니터링을 요청(S212)받으면 패킷 모니터링에 시그너쳐 필터링 규칙을 적용(S213)하고 실시간으로 패킷을 모니터링(S214)한다.
바람직하게는, 패킷 모니터링하는 시간을 정하여 일정한 시간동안만 패킷 모 니터링을 할 수 있다. 이를 위해, 세션후킹 추적부(320)는 패킷 모니터링을 시작하는 시간에서 일정한 시간 후의 타임아웃(Time Out) 시간을 설정한다. 그리고 패킷 모니터링을 통하여 공격패킷 시그너쳐(514)와 일치하는 패킷이 있는지 비교(S215)하고 일치하는 패킷이 없으면 계속 모니터링할 것인지 타임아웃(Time Out) 시간과 비교(S216)하고 타임아웃(Time Out) 시간을 초과하면 해당 프로세스가 없음(요청 오류 또는 스푸핑 가능성)을 통보(S217)하고 타임아웃(Time Out) 시간 이전이면 계속적으로 패킷 모니터링(S214)을 실시한다.
패킷 모니터링을 통하여 공격패킷 시그너쳐(514)와 일치하는 패킷이 있는지 비교(S215)하여 일치하는 패킷이 있으면, 네트워크 세션 테이블(130)을 검색하고 프로세스를 추적(S218)한다. 이때, 패킷의 목적지 주소 및 근원지 주소와, 네트워크 세션 테이블(130)의 목적지 주소 및 근원지 주소를 모두 비교하여 추적한다.
추적된 프로세스에 대하여 통제리스트(520)의 허용 리스트(521)와 비교(S219)하여, 허용리스트(521)에 포함되어 있지 않으면 의심리스트(523)에 등록(S220)하고, 포함되어 있으면 시그너쳐 규칙을 삭제(S221)하고 허용 리스트(521)에 포함되어 있음을 보고(S222)한다.
컴퓨터 단말(10)에서 송수신되는 패킷을 모니터링하여 프로세스를 추적하는 방법은 세션을 후킹하는 방법이 있는데, 본 출원인이 출원한 국내 출원(출원번호: 10-2009-0079099, "네트워크를 이용하는 프로세스를 감시를 통한 좀비 PC 차단 시스템 및 그 방법")에 기재된 내용을 참조한다.
다음으로, 본 발명의 일실시예에 따라 방역서버(30)의 악성코드 판단(320)에서 악성 코드를 판단하고 통제리스트(520)를 업데이트하는 방법을 도 8을 참조하여 설명한다.
도 8에서 보는 바와 같이, 방역서버(30)(또는 방역서버의 악성코드 판단부(420))는 컴퓨터 단말의 악성코드 추적부(310)로부터 프로세스 추적 결과 및 정보를 수신하면 의심리스트(523)에 대하여 악성 코드 여부를 분석한다(S310).
수집된 프로세스 정보가 악성 코드인지 판단(S320)한다. 정상 코드이면 방역서버에서 유지하고 있는 통제리스트(520)의 허용리스트(521)에 정보를 추가하여 변경(S330)하고, 악성 코드로 판정되면 방역서버에서 유지하고 있는 통제리스트(520)의 거부리스트(522)에 정보를 추가하여 변경(S340)한다.
방역서버에서 유지하고 있는 통제리스트(520)가 업데이트되면 모든 컴퓨터 단말의 악성코드 방역부(330)로 업데이트된 통제리스트(520)를 전송(S350)하고, 방역 결과를 악성코드 추적 관리부(310)를 통하여 추적을 요청한 보안시스템(40)으로 전송(S360)한다.
다음으로, 본 발명의 일실시예에 따라 모든 컴퓨터 단말의 악성코드 방역부(330)에서 업데이트된 통제리스트(520)를 전달받아 컴퓨터 단말을 방역하는 방법을 도 9를 참조하여 설명한다.
도 9에서 보는 바와 같이, 모든 컴퓨터 단말의 악성코드 방역부(330)에서 업데이트된 통제리스트(520)를 수신하면 컴퓨터 단말의 통제리스트(520)를 업데이트 된 통제리스트(520)로 변경(S410)한다.
업데이트된 통제리스트(520)의 거부 리스트(522)에 따라 실행 중인 프로세스를 중지(S420)하고 파일 및 레지스트리를 삭제(S430)하고 드라이버를 삭제(S440)한다. 또한 향후 같은 공격에 대비하기 위하여 업데이트된 통제리스트(520)를 시스템콜 후킹 통제부(340)로 전달하고 시스템콜 후킹 통제부(340)는 업데이트된 통제리스트(520)의 거부 리스트(522)에 기반하여 악성코드의 설치 및 실행을 실시간으로 차단한다(S450).
이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
본 발명은 보안시스템에서 네트워크 정보로 구성된 추적요청리스트를 전달받아 컴퓨터 단말의 악성 코드를 추적하고 방역서버로 전송하여 검사하고 통제리스트를 업데이트하여 모든 컴퓨터 단말에 전달하고 컴퓨터 단말은 업데이트된 통제리스트를 이용하여 악성 코드를 방역함으로써 백신보다 빠르게 동작하는 악성 코드 조기방역 시스템 개발에 적용이 가능하다.
또, 본 발명은 추적 대상 컴퓨터 단말에서 악성 코드를 추적하기 위하여 세션 후킹을 통하여 악성 프로세스를 추적하고 판단하고 시스템콜 후킹을 통하여 악성 코드의 설치 및 실행을 실시간으로 차단하는 악성 코드 조기방역 시스템 개발에 적용이 가능하다.
도 1은 본 발명을 실시하기 위한 전체 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 악성코드 조기방역 시스템의 구성에 대한 블록도이다.
도 3은 본 발명의 일실시예에 따라 방역 서버와 컴퓨터 단말의 조기방역 에이전트의 시스템 구성을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 추적요청리스트의 구조를 예시한 도면이다.
도 5는 본 발명의 일실시예에 따른 통제리스트의 구조를 예시한 도면이다.
도 6은 본 발명의 일실시예에 따라 방역서버가 악성코드 추적 요청에 따라 컴퓨터 단말로의 악성코드 추적을 요청하는 방법을 설명한 흐름도이다.
도 7은 본 발명의 일실시예에 따라 컴퓨터 단말에서 세션 후킹을 이용하여 악성 프로세스를 추적하는 조기방역 방법을 설명한 흐름도이다.
도 8은 본 발명의 일실시예에 따라 방역서버가 컴퓨터 단말에서 추적한 의심프로세스를 분석하여 프로세스들을 분류하고 통제리스트를 업데이트하는 방법을 설명하는 흐름도이다.
도 9는 본 발명의 일실시예에 따라 컴퓨터 단말이 방역서버로부터 업데이트된 통제리스트를 수신하여 방역을 실시하는 방법을 설명하는 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 컴퓨터 단말 20 : 네트워크
30 : 방역서버 40 : 네트워크 보안 시스템
110 : 정상 프로세스 120 : 악성 프로세스
130 : 네트워크 세션 테이블
210 : 네트워크 인터페이스 220 : 시스템 네트워크 프로토콜
230 : 네트워크 드라이버 240 : 시스템콜
310 : 악성코드 추적부 320 : 세션 후킹 추적부
330 : 악성코드 방역부 340 : 시스템콜 후킹 통제부
410 : 악성코드 추적 관리부 420 : 악성코드 판단부
500 : 데이터베이스 510 : 추적요청리스트DB
520 : 통제리스트DB

Claims (14)

  1. 네트워크 보안시스템(이하 보안시스템)과 네트워크로 연결된 방역서버와, 상기 방역서버와 네트워크로 연결된 컴퓨터 단말에 설치되는 악성코드 조기방역 에이전트를 포함하는 조기방역 시스템에 있어서,
    상기 방역서버는,
    상기 보안시스템으로부터 추적요청리스트를 수신하여, 컴퓨터 단말의 조기방역 에이전트로 악성코드 추적을 요청하는 악성코드 추적관리부; 및
    상기 조기방역 에이전트로부터 악성코드 추적결과를 수신하여 악성코드 여부를 판단하고, 통제리스트를 갱신하여 상기 조기방역 에이전트에 통제리스트 업데이트를 요청하는 악성코드 판단부를 포함하고,
    상기 조기방역 에이전트는,
    상기 방역서버로부터 악성코드 추적을 요청받아 컴퓨터 단말에서 악성코드를 추적하고 추적결과를 방역서버로 전송하는 악성코드 추적부;
    세션 후킹을 통하여 전송하려는 패킷을 조사하여 악성코드를 추적하는 세션후킹 추적부;
    상기 방역서버로부터 수신한 업데이트된 통제리스트에 따라 방역을 실시하는 악성 코드 방역부;
    시스템콜을 후킹하여 통제리스트에 따라 악성 코드의 설치 및 실행을 차단하는 시스템콜 후킹 통제부를 포함하고,
    상기 악성코드 추적관리부는 상기 보안시스템으로부터 IP주소(또는 IP주소 및 포트) 정보를 포함하는 추적요청리스트를 수신하여, 상기 IP주소 정보에 매핑되는 IP주소를 가지는 컴퓨터 단말을 추적대상으로 선정하고, 추적대상 컴퓨터 단말로 상기 추적요청리스트를 전송하는 것을 특징으로 하는 악성코드 조기방역 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 추적 요청 리스트는 공격시스템 정보(근원지 IP주소 및 포트번호), 피해시스템 정보(목적지 IP주소 및 포트번호), 패킷 시그너쳐를 포함하고,
    상기 악성 코드 추적 관리부는 공격시스템 정보 중 근원지 IP주소로 매핑하여 추적할 대상 컴퓨터 단말을 결정하는 것을 특징으로 하는 악성코드 조기방역 시스템.
  4. 제3항에 있어서, 상기 악성코드 추적부는,
    상기 세션후킹 추적부를 통하여, 전송하려는 패킷에 대하여 네트워크 세션 테이블과 비교하여 상기 패킷을 전송하려는 프로세스를 추적하고, 추적된 프로세스의 악성여부를 판단하여 악성코드를 추적하는 것을 특징으로 하는 악성코드 조기방역 시스템.
  5. 제1항에 있어서,
    상기 세션후킹 추적부는 프로세스 추적에 있어서 근원지 정보와 목적지 정보를 모두 이용하여 추적하는 방법, 목적지 정보를 이용하여 추적하는 방법, 패킷 시그너쳐를 사용하는 방법으로 추적하는 것을 특징으로 하는 악성코드 조기방역 시스템.
  6. 제1항에 있어서,
    상기 세션후킹 추적부는 추적된 프로세스에 대하여 악성 여부를 판단하기 위하여 통제리스트를 사용하는 것을 특징으로 하는 악성코드 조기방역 시스템.
  7. 제6항에 있어서,
    상기 통제리스트는 허용 리스트, 거부 리스트, 의심 리스트를 포함하고,
    상기 세션후킹 추적부에서는 추적된 프로세스에 대하여 통제 리스트의 허용 리스트를 이용하여 정상 여부를 판단하고 허용리스트에 포함되지 않은 경우 의심 리스트로 구분하여 등록시켜 수집하는 것을 특징으로 하는 악성코드 조기방역 시스템.
  8. 제1항에 있어서,
    상기 악성코드 판단부는, 컴퓨터 단말에서 전송받은 의심 프로세스(의심리스트에 속한 프로세스)에 대하여 분석한 판단기준을 포함하며 의심프로세스는 허용리스트 또는 거부리스트로 분류되어 등록되는 것을 특징으로 하는 악성코드 조기방역 시스템.
  9. 제8항에 있어서,
    상기 악성 코드 판단부는, 업데이트된 통제리스트를 연결된 모든 컴퓨터 단말로 전송하는 것을 특징으로 하는 악성코드 조기방역 시스템.
  10. 제9항에 있어서,
    상기 악성 코드 방역부는 방역 서버로부터 업데이된 통제리스트를 수신하여 거부리스트에 등록된 악성 프로세스를 중지시키고 파일, 레지스트리, 드라이버에서 악성 코드를 삭제하는 것을 특징으로 하는 악성코드 조기방역 시스템.
  11. 제1항에 있어서,
    상기 시스템콜 후킹 통제부는 악성코드 방역부로부터 업데이트된 통제리스트를 수신하여, 네트워크 프로세스(또는 실행코드)의 설치 또는 실행이 요청되면, 시스템콜 후킹을 통하여 통제리스트의 거부리스트와 비교하여 상기 프로세스가 거부리스트에 속하면 상기 요청을 차단하는 것을 특징으로 하는 악성코드 조기방역 시스템.
  12. 네트워크 보안시스템(이하 보안시스템)과 네트워크로 연결된 방역서버와, 상기 방역서버와 네트워크로 연결된 컴퓨터 단말에 설치되는 악성코드 조기방역 에이전트를 이용하는 악성코드 조기방역 방법에 있어서,
    (a) 상기 방역서버가 상기 보안시스템으로부터 추적요청리스트를 수신하여, 컴퓨터 단말의 조기방역 에이전트로 악성코드 추적을 요청하는 단계;
    (b) 상기 에이전트가 상기 방역서버로부터 악성코드 추적을 요청받아 악성코드를 추적하는 단계;
    (c) 상기 에이전트가 컴퓨터 단말에서 악성코드를 추적한 추적결과를 방역서버로 전송하는 단계;
    (d) 상기 방역서버는 상기 조기방역 에이전트로부터 악성코드 추적결과를 수신하여 악성코드 여부를 판단하는 단계;
    (e) 상기 방역서버는 통제리스트를 갱신하여 상기 조기방역 에이전트에 통제리스트 업데이트를 요청하는 단계;
    (f) 상기 에이전트는 상기 방역서버로부터 수신한 업데이트된 통제리스트에 따라 방역을 실시하는 단계를 포함하고,
    상기 (a)단계에서, 상기 방역서버는 상기 보안시스템으로부터 IP주소(또는 IP주소 및 포트) 정보를 포함하는 추적요청리스트를 수신하여, 상기 IP주소 정보에 매핑되는 IP주소를 가지는 컴퓨터 단말을 추적대상으로 선정하고, 추적대상 컴퓨터 단말의 조기방역 에이전트로 상기 추적요청리스트를 전송하는 것을 특징으로 하는 악성코드 조기방역 방법.
  13. 제12항에 있어서,
    상기 (b)단계는 상기 에이전트가 네트워크 세션 테이블 비교와 세션 후킹을 통하여 전송하려는 패킷을 조사하여 악성코드를 추적하는 것을 특징으로 하는 악성코드 조기방역 방법.
  14. 제12항에 있어서,
    상기 (f)단계는 상기 에이전트가 시스템콜 후킹을 통하여 악성 코드의 설치 및 실행을 차단하는 것을 특징으로 하는 악성코드 조기방역 방법.
KR1020090101836A 2009-10-26 2009-10-26 네트워크 모니터링 정보를 이용한 악성 코드 조기방역 시스템 및 그 방법 KR100959274B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090101836A KR100959274B1 (ko) 2009-10-26 2009-10-26 네트워크 모니터링 정보를 이용한 악성 코드 조기방역 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090101836A KR100959274B1 (ko) 2009-10-26 2009-10-26 네트워크 모니터링 정보를 이용한 악성 코드 조기방역 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR100959274B1 true KR100959274B1 (ko) 2010-05-26

Family

ID=42281964

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090101836A KR100959274B1 (ko) 2009-10-26 2009-10-26 네트워크 모니터링 정보를 이용한 악성 코드 조기방역 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR100959274B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101375375B1 (ko) * 2012-02-24 2014-03-17 주식회사 퓨쳐시스템 좀비 컴퓨터 블랙리스트 수집에 기초한 좀비 컴퓨터 탐지 및 방어 시스템
KR101483859B1 (ko) * 2013-06-07 2015-01-16 (주)이스트소프트 백신의 상태를 모니터링하는 관리시스템을 이용한 악성코드 차단방법
KR101580624B1 (ko) * 2014-11-17 2015-12-28 국방과학연구소 벌점기반의 알려지지 않은 악성코드 탐지 및 대응 방법
KR20170078320A (ko) * 2015-12-29 2017-07-07 주식회사 마크애니 사용자 모바일 단말의 악성코드 침투 및 무단 액세스 방지를 위한 실시간 감시 시스템 및 그 방법
CN112529519A (zh) * 2020-11-26 2021-03-19 数字广东网络建设有限公司 防疫信息获取系统、方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030063949A (ko) * 2002-01-24 2003-07-31 박정현 컴퓨터 바이러스 방역 방법 및 시스템
KR20040104112A (ko) * 2003-06-03 2004-12-10 주식회사 안철수연구소 악성쓰레드 검출기 및 그 방법
KR20060011558A (ko) * 2004-07-30 2006-02-03 주식회사 뉴테크웨이브 컴퓨터 바이러스의 조기방역 시스템
KR20060113570A (ko) * 2006-09-04 2006-11-02 주식회사 비즈모델라인 바이러스(또는 악성코드) 역추적 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030063949A (ko) * 2002-01-24 2003-07-31 박정현 컴퓨터 바이러스 방역 방법 및 시스템
KR20040104112A (ko) * 2003-06-03 2004-12-10 주식회사 안철수연구소 악성쓰레드 검출기 및 그 방법
KR20060011558A (ko) * 2004-07-30 2006-02-03 주식회사 뉴테크웨이브 컴퓨터 바이러스의 조기방역 시스템
KR20060113570A (ko) * 2006-09-04 2006-11-02 주식회사 비즈모델라인 바이러스(또는 악성코드) 역추적 시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101375375B1 (ko) * 2012-02-24 2014-03-17 주식회사 퓨쳐시스템 좀비 컴퓨터 블랙리스트 수집에 기초한 좀비 컴퓨터 탐지 및 방어 시스템
KR101483859B1 (ko) * 2013-06-07 2015-01-16 (주)이스트소프트 백신의 상태를 모니터링하는 관리시스템을 이용한 악성코드 차단방법
KR101580624B1 (ko) * 2014-11-17 2015-12-28 국방과학연구소 벌점기반의 알려지지 않은 악성코드 탐지 및 대응 방법
KR20170078320A (ko) * 2015-12-29 2017-07-07 주식회사 마크애니 사용자 모바일 단말의 악성코드 침투 및 무단 액세스 방지를 위한 실시간 감시 시스템 및 그 방법
KR102348095B1 (ko) * 2015-12-29 2022-01-10 주식회사 마크애니 사용자 모바일 단말의 악성코드 침투 및 무단 액세스 방지를 위한 실시간 감시 시스템 및 그 방법
CN112529519A (zh) * 2020-11-26 2021-03-19 数字广东网络建设有限公司 防疫信息获取系统、方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
US10389740B2 (en) Detecting a malicious file infection via sandboxing
US10095866B2 (en) System and method for threat risk scoring of security threats
US8291498B1 (en) Computer virus detection and response in a wide area network
US7836506B2 (en) Threat protection network
US9628508B2 (en) Discovery of suspect IP addresses
US7870612B2 (en) Antivirus protection system and method for computers
US8621610B2 (en) Network service for the detection, analysis and quarantine of malicious and unwanted files
US8683585B1 (en) Using file reputations to identify malicious file sources in real time
Oberheide et al. Rethinking Antivirus: Executable Analysis in the Network Cloud.
CN108369541B (zh) 用于安全威胁的威胁风险评分的系统和方法
CN110417578B (zh) 一种异常ftp连接告警处理方法
CN110868403B (zh) 一种识别高级持续性攻击apt的方法及设备
KR100959274B1 (ko) 네트워크 모니터링 정보를 이용한 악성 코드 조기방역 시스템 및 그 방법
KR100769221B1 (ko) 제로데이 공격 대응 시스템 및 방법
KR100959276B1 (ko) 커널계층에서 통제리스트를 이용한 악성프로세스 설치차단 시스템 및 그 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
CN112583841B (zh) 虚拟机安全防护方法及系统、电子设备和存储介质
US20230344861A1 (en) Combination rule mining for malware signature generation
US20230214489A1 (en) Rootkit detection based on system dump files analysis
KR100959264B1 (ko) 네트워크를 이용하는 프로세스의 감시를 통한 좀비pc 차단 시스템 및 그 방법
Ying et al. Anteater: Malware Injection Detection with Program Network Traffic Behavior
US20230082289A1 (en) Automated fuzzy hash based signature collecting system for malware detection
CN111859376A (zh) 一种基于windows登陆信息发现内网攻击者的方法
GB2574468A (en) Detecting a remote exploitation attack
JP2016004540A (ja) 解析装置及び解析方法及びプログラム

Legal Events

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

Payment date: 20130503

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140509

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150514

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160512

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170612

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180611

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190509

Year of fee payment: 10