KR20100126617A - 프로그램 데이터베이스를 이용한 방화 장치 및 방법 - Google Patents

프로그램 데이터베이스를 이용한 방화 장치 및 방법 Download PDF

Info

Publication number
KR20100126617A
KR20100126617A KR1020090045239A KR20090045239A KR20100126617A KR 20100126617 A KR20100126617 A KR 20100126617A KR 1020090045239 A KR1020090045239 A KR 1020090045239A KR 20090045239 A KR20090045239 A KR 20090045239A KR 20100126617 A KR20100126617 A KR 20100126617A
Authority
KR
South Korea
Prior art keywords
program
database
event
security policy
policy
Prior art date
Application number
KR1020090045239A
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 KR1020090045239A priority Critical patent/KR20100126617A/ko
Publication of KR20100126617A publication Critical patent/KR20100126617A/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/52Monitoring 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Automation & Control Theory (AREA)
  • Virology (AREA)
  • Computer And Data Communications (AREA)

Abstract

알려진 프로그램들에 대한 데이터베이스를 구축하고 이를 이용하여 컴퓨터 내에서 실행되는 프로그램의 여러 보안 관련 이벤트를 통제하는 프로그램 데이터베이스를 이용한 보안 장치 및 방법이 개시된다.
이를 위하여, 본 발명은 컴퓨터에 설치되어 프로그램의 작동을 통제하는 보안 장치로서, 알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스; 컴퓨터에서 실행되는 프로그램의 이벤트를 검출하는 이벤트 검출부; 상기 이벤트 검출부에서 검출된 이벤트를 발생시킨 프로그램의 식별자를 추출하는 프로그램 식별자 추출부; 상기 프로그램 식별자 추출부에서 추출된 프로그램 식별자와 상기 이벤트 검출부에서 검출된 이벤트를 검색 조건으로 프로그램 데이터베이스를 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 보안 정책 판단부; 상기 보안 정책 판단부의 보안 정책 판단 결과에 따라 상기 이벤트를 허용 및 차단하는 이벤트 처리부;를 포함하는 것을 특징으로 한다.
이에 의하면, 알려지지 않은 바이러스나 해킹툴을 차단할 수 있는 보안 장치 및 방법을 제공하면서도, 복잡한 초기 설정 과정이 필요치 않으며, 프로그램이 업데이트되어도 업데이트된 프로그램의 보안 정책을 재설정할 필요가 없으며, 사용자에게 프로그램의 작동의 허용 여부를 질의할 때에도 이해하기 쉬운 정보를 제공하여 사용자가 정확한 판단을 내릴 수 있도록 해주며, 사용자에 의해 동작이 허용된 프로그램이더라도 비정상적인 작동을 하면 이를 감지하여 차단할 수 있으며, 네트워크 통신 뿐만 아니라 컴퓨터 내에서 일어나는 다양한 보안 관련 이벤트를 통제할 수 있게 되어 개인 정보나 기업 비밀의 유출과 같은 해킹의 피해를 최소화할 수 있다.
프로그램 데이터베이스, 바이러스, 해킹, 해킹툴, 방화벽, 백신, 보안

Description

프로그램 데이터베이스를 이용한 보안 장치 및 방법{Security system based on a program database and method thereof}
본 발명은 컴퓨터 내에서 실행되는 프로그램의 동작을 제어하는 보안 장치 및 방법에 관한 것으로, 보다 상세하게는 알려진 프로그램들에 대한 데이터베이스를 구축하고 이를 이용하여 컴퓨터 내에서 실행되는 프로그램의 여러 보안 관련 이벤트를 통제하는 프로그램 데이터베이스를 이용한 보안 장치 및 방법에 관한 것이다.
초고속 통신망이 발달하게 되면서 컴퓨터 네트워크를 이용한 바이러스와 해킹툴의 위협은 나날이 증가하고 있다. 특히 최근에는 바이러스나 해킹툴에 의한 피해가 단순히 컴퓨터 하드웨어나 소프트웨어의 정상적인 작동을 방해하는 수준을 넘어서, 직접적인 경제적 피해를 초래하는 상황에까지 이르렀다. 2009년 2월 11일자 중앙일보에 따르면, 2008년 12월 29일에 신용카드 계좌에서 해커에 의해 1,400만원이 무단 인출된 사례가 있으며, 2009년 1월 5일에도 인터넷 뱅킹을 통해 예금 2,100만원이 무단 인출된 사례가 있다. 경찰은 해커가 해킹툴을 이용하여 공인인증서를 손에 넣고 사용자의 키보드 입력을 가로채는 방법으로 해킹을 한 것으로 보고 있다. 이러한 예에서 보듯이 최근에는 알려지지 않은 해킹툴에 의한 해킹의 피해가 급증하고 있으며, 따라서 알려진 바이러스 뿐만 아니라 알려지지 않은 바이러스나 해킹툴의 위협을 효과적으로 차단할 수 있는 보안 장치의 개발 및 보급이 시급한 실정이다.
현재 바이러스나 해킹툴 등에 의한 개인 컴퓨터의 보안 위협을 차단하기 위해 주로 사용되는 보안 장치는 백신과 개인 방화벽이 있다.
백신은 알려진 바이러스나 해킹툴의 시그니쳐를 데이터베이스로 구축하고, 이를 이용하여 알려진 바이러스나 해킹툴을 차단한다. 즉, 백신은 백신의 개발자에 의해 알려진 바이러스나 해킹툴은 차단하되, 그 이외의 모든 프로그램은 작동을 허용하는 형태로 작동된다. 따라서 백신은 컴퓨터에 전문적인 지식을 갖추지 않은 사람도 사용하기 쉽다는 장점은 있으나 아직 알려지지 않은 바이러스나 해킹툴에 대해서는 방어를 할 수 없다는 문제점이 있다.
방화벽(firewall)이란 네트워크 트래픽을 감시하고 컴퓨터 사용자가 원하지 않는 트래픽을 차단하는 보안 장치를 말한다. 방화벽은 크게 독립적인 네트워크 장비로 구현되어 네트워크 중간에 설치되는 형태와 주로 소프트웨어 형태로 구현되어 컴퓨터 내에 설치되는 형태로 분류할 수 있으며, 후자를 편의상 개인 방화벽(personal firewall)이라고 한다.
개인 방화벽의 발전 과정을 살펴보면, 초창기 형태의 개인 방화벽과 그보다 좀 더 진보한 형태의 개인 방화벽으로 구분할 수 있으며, 이를 편의상 제 1세대 개인 방화벽, 제 2세대 개인 방화벽으로 구분하여 설명한다. 부언하면, 제 1세대 개 인 방화벽과 제 2세대 개인 방화벽은 개인 방화벽의 발전 과정을 설명하기 위한 구분이며, 이들이 기능적으로 상호 배타적인 관계에 있는 것은 아니다. 따라서 현재 출시되어 있는 다양한 개인 방화벽 제품들은 제 2세대 개인 방화벽의 기능과 함께, 제 1세대 개인 방화벽의 기능을 상호 보완적으로 운용하고 있는 경우가 많다.
제 1세대 개인 방화벽은 가장 초창기의 개인 방화벽으로, 패킷의 출발지 주소와 포트 번호, 패킷의 목적지 주소와 포트 번호, 전송 계층 프로토콜(TCP, UDP 등) 등을 기준으로 트래픽을 허용 및 차단하는 방식의 개인 방화벽이다. 즉, 네트워크 계층(IP 등)과 전송 계층(TCP, UDP 등)에서 획득할 수 있는 정보에만 기반하여 허용 및 차단 정책을 수행하는 형태였다. 이러한 형태의 개인 방화벽의 문제점은 임시 포트 번호(ephemeral port number)를 사용하는 P2P 프로그램이나 메신저 프로그램 등에 유연하게 대처할 수가 없다는 점, 개인 컴퓨터는 관리자 권한으로 사용하는 경우가 많은데 관리자의 부주의로 실행되는 해킹툴이 개인 방화벽에서 허용된 규칙 내에서만 작동된다면 이를 구분하여 차단할 수가 없다는 점 등이 있다.
제 2세대 개인 방화벽은 상기와 같은 제 1세대 개인 방화벽의 문제점을 해결하기 위한 개인 방화벽으로, 컴퓨터 사용자가 해당 컴퓨터에서 통신을 허용 및 차단할 프로그램 목록을 작성하고 이 규칙에 근거하여 통신을 허용 및 차단하는 방식의 개인 방화벽이다. 통신을 허용 및 차단할 프로그램의 목록은 수동으로 입력되거나, 임의의 프로그램이 네트워크 통신을 시도할 때 사용자에게 팝업 창 등을 이용하여 통신 허용 여부를 질의한 후 사용자의 답변을 허용 및 차단할 프로그램 목록에 저장하는 형태를 이용하는 것이 일반적이다.
제 2세대 개인 방화벽은 백신과 작동 방식에서 큰 차이가 있는데, 백신은 알려진 바이러스만 차단하고 나머지 프로그램의 작동은 모두 허용하는 반면, 개인 방화벽은 모든 네트워크 통신에 대해 사용자에게 질의하는 과정을 거치도록 되어 있다. 즉, 개인 방화벽은 알려지지 않은 바이러스나 해킹툴이 외부와 통신을 시도하더라도 사용자에게 통신 허용 여부를 확인하도록 되어 있기 때문에, 보안의 측면에서만 보면 이러한 방식이 단연 우수하다고 할 수 있다.
이러한 제 2세대 개인 방화벽은 상기한 제 1세대 개인 방화벽이 가지는 여러 문제점들을 해결하였으나, 하기와 같은 또 다른 문제점을 야기하였다.
제 2세대 개인 방화벽이 가지는 문제점은 (a) 통신을 허용 및 차단할 프로그램 목록을 구성하는 복잡한 초기 설정 과정을 거쳐야 한다는 점, (b) 네트워크 통신을 하는 프로그램이 업데이트됨에 따라 해당 프로그램을 새로 개인 방화벽에 등록 및 설정해주어야 한다는 점, (c) 사용자에게 통신 허용 여부를 질의할 때 한정된 정보만을 제공하기 때문에 컴퓨터에 전문적인 지식을 가진 사용자의 경우에도 통신의 허용 여부를 자신의 의도대로 판단하기 어려운 점, (d) 통신의 허용 및 차단이라는 이분법적 정책을 사용하기 때문에 한번 사용자에 의해 통신이 허용되면 그 이후에는 인가된 프로그램을 통한 비정상적인 트래픽도 허용이 된다는 점, (e) 네트워크 통신에 대해서만 차단 정책을 수행하기 때문에 컴퓨터 내부에서 발생되는 직접적 혹은 간접적인 유해한 작동은 차단하지 못한다는 점 등이 있다.
상기 (a) 문제점에 대해 좀 더 상세히 살펴보면, 개인 방화벽을 컴퓨터에 설치한 후에 복잡한 설정 과정을 거치는 것은 개인 방화벽의 장점이자 동시에 단점이 라고 할 수 있다. 보안적인 측면에서 보았을 때, 네트워크 통신을 시도하는 모든 프로그램에 대해 사용자 확인을 거친 후에 통신을 허용하기 때문에 알려지지 않은 바이러스나 해킹툴이 통신을 시도하는 경우에도 이를 모두 차단할 수 있다는 점은 장점이다. 그러나 사용자 편의성의 관점에서 보았을 때, 그 설정 과정이 복잡하기 때문에 컴퓨터에 전문적인 지식을 가진 자가 아니라면 효과적으로 설정 및 사용하기가 상당히 어렵다는 단점이 있다. 이러한 사용상의 어려움은 개인 방화벽이 개인 정보나 기업 비밀의 유출을 차단할 수 있는 가장 유효한 수단임에도 불구하고 널리 사용되어 그 실효성을 거두지 못하고 있는 원인이기도 하다.
상기 (b) 문제점에 대해 좀 더 상세히 살펴보면, 최근의 프로그램들은 네트워크를 통한 자동 업데이트 기능을 제공하는 경우가 많은데, 이러한 업데이트 기능을 이용하여 수시로 프로그램이 업데이트가 되면 해당 프로그램이 업데이트 될 때마다 해당 프로그램을 개인 방화벽에 다시 등록 및 설정해 주어야 하는 문제점이 있다. 일부 개인 방화벽은 프로그램이 업데이트가 되더라도 그 파일의 경로가 변경되지 않았다면 기존의 버전에 적용되었던 설정을 업데이트된 프로그램에도 그대로 적용하는 경우도 있으나, 이러한 형태의 접근은 다시 여러 가지 문제점을 가진다. 우선 파일의 경로를 근거로 통신 허용 설정을 유지한다면 해당 파일이 바이러스 등에 의해 감염된 경우를 정상적으로 업데이트된 경우와 구분할 방법이 없다. 따라서, 사용자에 의해 네트워크 통신이 인가되었던 프로그램이 바이러스 등에 의해 변조된 경우를 차단할 수 없게 된다. 또 다른 문제점으로는 최근 점점 사용이 늘고 있는 .NET의 ClickOnce와 같이 인터넷을 통해 배포되는 소프트웨어의 경우에는 매 번 업데이트가 될때마다 디스크상의 설치 경로가 임의의 경로로 변경되기 때문에 파일 경로에 기반하여 통신 허용 설정을 유지하는 방식은 사용할 수가 없다는 점이다. 따라서 파일의 내용이 변경되었더라도 파일의 경로를 근거로 통신 허용 설정을 유지하는 것은 컴퓨터의 보안적 측면에서 신뢰할 수 있는 방법이 아님은 자명하다.
상기 (c) 문제점에 대해 좀 더 상세히 살펴보면, 개인 방화벽은 컴퓨터 내에서 작동되는 프로그램과 NIC(Network Interface Card) 사이에 구비되어 그 사이를 오가는 트래픽을 검출하는 방식으로 작동되는데, 이때 개인 방화벽이 검출된 트래픽으로부터 얻을 수 있는 정보는 통신에 관여하는 프로그램 파일명, 패킷의 출발지 주소 및 포트 번호, 패킷의 목적지 주소 및 포트 번호, 전송 계층 프로토콜(TCP, UDP 등) 정도로 한정된다. 따라서, 개인 방화벽은 이러한 한정된 정보를 바탕으로 사용자에게 통신 허용 여부를 질의하고, 사용자는 이러한 한정된 정보를 바탕으로 통신 허용 여부를 결정해야 한다. 이러한 종래 기술에 따른 개인 방화벽이 사용자에게 통신 허용 여부를 질의하는 메시지의 예는 “Update.exe 파일이 192.168.0.100 호스트의 5000번 포트로 TCP 연결을 시도하였습니다. 이를 허용하시겠습니까?”와 같은 형태가 될 수 있다. 하지만 이러한 한정된 정보로는 컴퓨터에 전문적인 지식을 갖춘 자라도 통신의 허용 여부를 의도대로 판단하기 어렵다. 상기의 예에서 Update.exe 파일이 무슨 파일인지, 혹시 알려지지 않은 바이러스에 의해 변조된 파일은 아닌지, 또 192.168.0.100 호스트는 무슨 호스트인지, 그 호스트가 악의적인 목적의 호스트는 아닌지 등에 관한 판단은 컴퓨터 전문가라도 쉽지 않다.
상기 (d) 문제점에 대해 좀 더 상세히 살펴보면, 종래의 개인 방화벽은 사용 자에 의해 한번 통신 허용이 된 프로그램은 제한없이 외부와 통신을 하는 것이 가능하다. 예를 들면, 메신저 프로그램의 통신을 개인 방화벽 설정에서 허용해 두었다면 이 메신저 프로그램은 자유롭게 외부와 통신이 허용된다. 문제는 정상적인 프로그램이더라도 악의적인 프로그램의 원격 조종을 받아 비정상적인 작동을 할 수도 있다는 점이다. 예를 들어, 메신저 프로그램의 경우 메신저 프로그램 자체는 바이러스 등에 의해 변조되지 않았더라도 컴퓨터 내에서 실행되는 다른 악의적인 프로그램이 메신저 프로그램을 원격 조종함으로써 사용자가 원하지 않는 바이러스 등을 메신저에 등록된 다른 사용자들에게 전파시킬 수도 있다. 또 다른 예로는 사용자가 메일을 발송하기 위해 아웃룩 프로그램을 개인 방화벽에 등록하여 두었는데, 컴퓨터 내에서 작동되는 어떤 악의적인 프로그램이 아웃룩 프로그램을 원격 조종하여 대량의 스팸 메일을 발송할 수도 있다. 또 다른 예로는 악의적인 프로그램이 웹브라우저 프로그램을 원격 조종하여 특정 사이트에 대해 DDOS 공격을 할 수도 있다. 악의적인 프로그램이 정상적인 프로그램을 원격 조종하는 방법은 정상적인 프로그램으로 인위적인 윈도우 메시지를 보내는 방법, 키보드나 마우스 입력을 인위적으로 대상 프로그램으로 입력하는 방법, DLL 침투(injection)를 이용하는 방법 등이 있을 수 있다. 어느 방법을 사용하든 이 경우에 실제로 통신을 시도하여 바이러스를 전파하는 메신저 프로그램, 대량의 스팸 메일을 발송하는 아웃룩 프로그램, DDOS 공격을 하는 웹브라우저 프로그램은 사용자가 통신을 인가한 프로그램이므로 이러한 정상적인 프로그램을 원격 조종하여 악의적인 작동을 하는 형태의 공격으로부터 종래의 개인 방화벽은 방어를 할 수 없다.
상기 (e) 문제점에 대해 좀 더 상세히 살펴보면, 개인 방화벽은 사용자로부터 인가받은 프로그램만 외부로 통신을 허용하는 방식을 취하고 있으나, 최근의 날로 지능화되는 보안 위협을 차단하기 위해서는 네트워크 차단만으로는 역부족이다. 앞서 이야기한 바와 같이 개인 방화벽으로부터 검출되는 것을 회피하기 위해 사용자에 의해 통신이 인가된 정상적인 프로그램을 원격 조종하는 형태로 작동되는 악의적인 해킹툴은 종래의 개인 방화벽으로 차단할 수 없다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로, 알려진 프로그램들의 데이터베이스를 구축하고 이를 기반으로 복잡한 초기 설정 과정이 필요치 않으며, 프로그램이 업데이트되어도 업데이트된 프로그램의 보안 정책을 재설정할 필요가 없으며, 사용자에게 프로그램의 작동의 허용 여부를 질의할 때에도 이해하기 쉬운 정보를 제공하여 사용자가 정확한 판단을 내릴 수 있도록 해주며, 사용자에 의해 동작이 허용된 프로그램이더라도 비정상적인 작동을 하면 이를 감지하여 차단할 수 있으며, 네트워크 통신 뿐만 아니라 컴퓨터 내에서 일어나는 다양한 보안 관련 이벤트를 통제할 수 있는 프로그램 데이터베이스를 이용한 보안 장치 및 방법을 제공하는 데 그 목적이 있다.
본 발명의 다른 목적 및 장점은 하기에 설명될 것이다.
상기 목적을 달성하기 위한 본 발명은 컴퓨터에 설치되어 프로그램의 작동을 통제하기 위한 보안 장치로서, 알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스; 컴퓨터에서 실행되는 프로그램의 이벤트를 검출하는 이벤트 검출부; 상기 이벤트 검출부에서 검출된 이벤트를 발생시킨 프로그램의 식별자를 추출하는 프로그램 식별자 추출부; 상기 프로그램 식별자 추출부에서 추출된 프로그램 식별자와 상기 이벤트 검출부에서 검출된 이벤트를 검색 조건으로 프로그램 데 이터베이스를 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 보안 정책 판단부; 상기 보안 정책 판단부의 보안 정책 판단 결과에 따라 상기 이벤트를 허용 및 차단하는 이벤트 처리부;를 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명은 컴퓨터에 설치되어 프로그램의 작동을 통제하기 위한 보안 방법으로서, 알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스를 구축하는 프로그램 데이터베이스 구축 단계; 컴퓨터에서 실행되는 프로그램의 이벤트를 검출하는 이벤트 검출 단계; 상기 이벤트 검출 단계에서 검출된 이벤트를 발생시킨 프로그램의 식별자를 추출하는 프로그램 식별자 추출 단계; 상기 프로그램 식별자 추출 단계에서 추출된 프로그램 식별자와 상기 이벤트 검출 단계에서 검출된 이벤트를 검색 조건으로 프로그램 데이터베이스를 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 보안 정책 판단 단계; 상기 보안 정책 판단 단계의 보안 정책 판단 결과에 따라 상기 이벤트를 허용 및 차단하는 이벤트 처리 단계;를 포함하는 것을 특징으로 한다.
본 발명의 프로그램 데이터베이스를 이용한 보안 장치 및 방법에 따르면, 알려지지 않은 바이러스나 해킹툴을 차단할 수 있는 보안 장치 및 방법을 제공하면서도, 복잡한 초기 설정 과정이 필요치 않으며, 프로그램이 업데이트되어도 업데이트된 프로그램의 보안 정책을 재설정할 필요가 없으며, 사용자에게 프로그램의 작동의 허용 여부를 질의할 때에도 이해하기 쉬운 정보를 제공하여 사용자가 정확한 판 단을 내릴 수 있도록 해주며, 사용자에 의해 동작이 허용된 프로그램이더라도 비정상적인 작동을 하면 이를 감지하여 차단할 수 있으며, 네트워크 통신 뿐만 아니라 컴퓨터 내에서 일어나는 다양한 보안 관련 이벤트를 통제할 수 있게 된다.
따라서 컴퓨터에 전문적인 지식을 갖추지 않은 사용자이더라도 아직 알려지지 않은 바이러스나 해킹툴로 인해 발생되는 개인 정보나 기업 비밀의 유출과 같은 해킹 피해를 최소화할 수 있게 된다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 프로그램 데이터베이스를 이용한 보안 장치의 블록도이다. 도 1을 참조하면, 프로그램(200)은 본 발명의 프로그램 데이터베이스를 이용한 보안 장치를 이용하여 작동을 통제할 대상이 되는 컴퓨터 프로그램이다. 프로그램은 이미 실행되어 프로세스의 형태로 존재할 수도 있으며, 아직 실행되지 않은 상태로 디스크 상에 존재할 수도 있다. 운영체제(300)는 프로그램(200)이 실행되는 환경을 제공하며, 프로그램(200)은 운영체제(300)에게 시스템 호출(system call)을 하여 운영체제로부터 프로세스 실행, 파일 I/O, 프로세스간 통신, 네트워크 통신 등의 서비스를 제공받는다. 프로그램 데이터베이스를 이용한 보안 장치(100)는 논리적으로 상기 프로그램(200)과 운영체제(300) 사이에 구비되어 프로그램(200)이 운영체제(300)로 요청하는 다양한 요청을 모니터링하고 보안 기능을 수행한다.
프로그램 데이터베이스를 이용한 보안 장치(100)는 알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스(170); 컴퓨터에서 실행되는 프로그램의 이벤트를 검출하는 이벤트 검출부(110); 상기 이벤트 검출부에서 검출된 이벤트를 발생시킨 프로그램의 식별자를 추출하는 프로그램 식별자 추출부(120); 상기 프로그램 식별자 추출부에서 추출된 프로그램 식별자와 상기 이벤트 검출부에서 검출된 이벤트를 검색 조건으로 프로그램 데이터베이스를 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 보안 정책 판단부(130); 상기 보안 정책 판단부의 보안 정책 판단 결과에 따라 상기 이벤트를 허용 및 차단하는 이벤트 처리부(150);를 포함한다.
이벤트 검출부(110)는 프로그램(200)에서 발생되는 보안과 관련된 다양한 이벤트를 검출하는 기능을 한다. 프로그램에서 발생되는 보안과 관련된 이벤트는 프로그램의 실행, 네트워크 통신, 레지스트리 I/O, 파일 I/O, 타 프로세스 디버깅, 타 프로세스 후킹, 프로세스간 통신 등이 있을 수 있다.
이벤트 검출부(110)의 구현 예를 윈도우 운영체제 환경을 기준으로 설명한다. 이벤트 검출부(110)는 검출할 이벤트의 특성에 따라 사용자 모드에서 구현될 수도 있으며, 커널 모드의 드라이버로 구현될 수도 있다.
이벤트 검출부(110)를 사용자 모드에서 구현할 때에는 API 후킹 방식을 이용할 수 있다. API 후킹이란, 프로그램(200)이 운영체제(300)로 요청하는 시스템 호출(system call)을 가로채는 기술을 말한다. 개발자는 운영체제가 제공하는 시스템 호출과 동일한 원형(prototype)을 가지는 함수를 DLL 파일로 구현하고, 이 DLL 파일을 시스템 호출을 모니터링할 대상 프로세스의 메모리 공간에 매핑한 후, 운영체제가 제공하는 DLL의 함수 호출 주소를 개발자가 구현한 DLL 내의 함수 주소로 치환한다. 그러면 프로그램이 호출하는 시스템 호출이 운영체제의 커널에 도달하기 전에 이를 먼저 가로챌 수 있으며, 프로그램이 운영체제로 어떠한 서비스를 요청하는지 모니터링하거나 해당 요청을 제어할 수 있게 된다. API 후킹을 이용하면 프로그램에서 발생되는 대부분의 이벤트를 모니터링 및 제어하는 것이 가능하다. 윈도우 운영체제가 제공하는 DLL 중 프로그램에서 발생되는 보안과 관련된 주요 이벤트를 검출하기 위한 API 후킹의 대상이 되는 DLL은 KERNEL32.DLL, USER32.DLL, GDI32.DLL, PSAPI.DLL, WS2_32.DLL 등이 있다. KERNEL32.DLL은 프로세스 및 쓰레드 생성, 메모리 관리 등의 기능을 제공하며, USER32.DLL은 윈도우 생성, 윈도우 메시지 처리 등의 기능을 제공하며, GDI32.DLL은 그래픽 출력 기능을 제공하며, PSAPI.DLL은 프로세스 및 쓰레드의 상태 정보를 제공하며, WS2_32.DLL은 네트워크 통신 관련 기능을 제공한다. 예를 들어, 새로운 프로그램을 실행하는 시스템 호출을 후킹하려면 KERNEL32.DLL의 CreateProcess() 함수를 후킹하면 된다. 부언하면, API 후킹은 커널 모드에서 SSDT(System Service Descriptor Table)를 조작하는 방법으로도 구현 가능하다.
이벤트 검출부(110)를 커널 모드에서 드라이버로 구현하는 방식은 파일 I/O, 네트워크 I/O 등과 같은 I/O 관련 이벤트를 시스템 전역적으로 검출하는데 적합하다. 커널 모드의 드라이버를 운영체제에서 제공하는 I/O 관련 디바이스의 상단에 필터 드라이버로 구현함으로써, 해당 디바이스로 전달되는 IRP(I/O Request Packet)을 모니터링하거나 제어할 수 있다. 예를 들어, TCP 통신과 관련된 I/O를 모니터링하기 위해서는 \Device\Tcp 디바이스의 상단에 설치되는 필터 드라이버를 구현하면 된다. 커널 모드의 드라이버로 구현할 때의 장점은, 컴퓨터 내에서 실행되는 모든 프로그램을 대상으로 일괄적으로 이벤트 검출을 수행할 수 있다는 점이다.
상기 API 후킹이나 필터 드라이버의 작성은 당업자에게 널리 알려진 주지관용 기술이므로 더 자세한 설명은 생략한다.
프로그램 식별자 추출부(120)는 상기 이벤트 검출부(110)에서 검출된 이벤트를 발생시킨 프로그램을 고유하게 식별할 수 있는 식별자를 추출한다. 각 프로그램을 고유하게 식별할 수 있는 식별자의 예로는 프로그램이 설치된 절대 경로, 프로그램 파일의 시그니쳐, 프로그램 파일의 이름, 날짜, 속성 혹은 이들의 조합 등 어떤 형태도 모두 가능하나, 프로그램을 구성하는 각 모듈(DLL, EXE 등)에 해쉬 함수를 적용하여 얻은 해쉬값인 것이 바람직하다. 해쉬 함수란 임의 길이의 입력을 받아 고정된 짧은 길이의 출력을 생성하는 함수를 말하며, 많이 사용되는 해쉬 함수의 예로는 MD5, SHA-1 등이 있다. 시그니쳐는 각 파일마다 나타나는 독특한 고유값을 말하며, 기존의 백신 프로그램에서 각 바이러스를 독특하게 식별하기 위한 방법으로 널리 사용되고 있는 방식이다. 프로그램 식별자로 각 모듈의 해쉬값을 사용할 때의 장점은 식별자의 크기를 적정 크기 이하(예를 들면 32바이트)로 유지하면서도 각 프로그램을 식별자 값의 충돌없이 고유하게 식별하기가 용이하다는 점이다. 또 한, 프로그램 식별자로 해쉬값을 사용하면 바이러스에 의해 프로그램의 파일이 조금만 변경되어도 해쉬값은 크게 달라지기 때문에, 프로그램이 바이러스 등에 의해 변조된 경우 이를 쉽게 탐지할 수 있다는 점이다. 다양한 해쉬 함수의 실시예는 당업자에게 널리 알려져 있으므로 그 상세한 설명은 생략한다.
프로그램 식별자 추출부(120)는 상기 이벤트 검출부(110)에서 이벤트가 검출되었을 때에, 상기 이벤트와 관련된 프로세스를 식별하고, 이로부터 프로세스와 연관된 프로그램을 구하고, 이 프로그램을 고유하게 식별할 수 있는 식별자 값을 계산하는 방식으로 구현될 수 있다. 따라서 프로그램 식별자 추출부(120)는 이벤트 검출부(110)와 긴밀하게 연동되도록 구현되는 것이 바람직하다.
이벤트 검출부(110)가 사용자 모드에서 API 후킹으로 구현된 경우에는, GetCurrentProcess() 함수를 이용하여 프로세스 핸들을 구할 수 있으며, GetModuleFileNameEx() 함수로 프로세스 핸들을 전달하여 프로그램의 디스크상 경로를 구할 수 있다. 그리고 해당 파일을 읽어 해쉬 함수에 입력하면 각 프로그램을 고유하게 식별하는 프로그램 식별자로 사용될 수 있는 해쉬값을 구할 수 있다.
이벤트 검출부(110)가 커널 모드의 필터 드라이버로 구현된 경우에는 PsGetProcessId() 함수를 이용하여 프로세스 ID를 구할 수 있으며, 이를 OpenProcess() 함수로 전달하여 프로세스 핸들을 구하고, GetModuleFileNameEx() 함수로 프로세스 핸들을 전달하여 프로그램의 디스크상 경로를 구할 수 있다. 그리고 해당 파일을 읽어 해쉬 함수에 입력하면 각 프로그램을 고유하게 식별하는 프로그램 식별자로 사용될 수 있는 해쉬값을 구할 수 있다.
보안 정책 판단부(130)는 상기 이벤트 검출부(110)에서 검출된 이벤트 및 상기 프로그램 식별자 추출부(120)에서 추출된 프로그램 식별자를 이용하여 상기 이벤트에 적용할 보안 정책을 판단한다. 보안 정책 판단부(130)의 판단 결과는 허용, 차단 중 하나인 것이 바람직하다. 허용은 상기 이벤트의 진행을 허용하는 것이며, 차단은 상기 이벤트의 진행을 차단하는 것이다. 상기 보안 정책의 자세한 판단 과정은 후술한다.
이벤트 처리부(150)는 상기 보안 정책 판단부(130)의 판단 결과에 따라 상기 이벤트를 허용하거나 차단하는 기능을 한다. 이벤트 처리부(150)는 이벤트 검출부(110)와 긴밀하게 연동되도록 구현하는 것이 바람직하다. 따라서 이벤트 검출부(110)를 사용자 모드에서 API 후킹으로 구현하였다면 이벤트 처리부(150)도 API 후킹 방식을 이용하여 이벤트를 제어하는 것이 바람직하며, 이벤트 검출부(110)를 커널 모드에서 드라이버로 구현하였다면 이벤트 처리부(150)도 드라이버 내에서 이벤트를 제어하는 것이 바람직하다. 이벤트 처리부(150)가 API 후킹 방식으로 구현된 경우에는 상기 이벤트를 허용하려면 후킹된 원본 함수를 그대로 호출하면 되고, 상기 이벤트를 차단하려면 원본 함수를 호출하지 않고 그대로 응용 프로그램으로 실패를 반환하면 된다. 또한, 이벤트 처리부(150)가 커널 모드의 필터 드라이버 방식으로 구현된 경우에는 상기 이벤트를 허용하려면 하위 드라이버로 IoCallDriver()를 호출하여 IRP를 넘겨주면 되고, 상기 이벤트를 차단하려면 IRP를 하위 드라이버로 넘겨주지 않고 IoCompleteRequest()를 호출하여 IRP를 실패로 처리하면 된다.
상기 윈도우 API 및 커널 모드에서 제공되는 함수들은 MSDN 도움말과 WDK(Windows Driver Kit)의 도움말에 상세히 설명되어 있다.
프로그램 데이터베이스(170)는 알려진 프로그램들의 목록을 여러 가지 정보와 함께 저장한다. 프로그램 데이터베이스(170)는 각 개별 컴퓨터의 사용자가 구축하기보다는 서비스 제공자가 구축하여 각 개별 사용자에게 배포하는 것이 바람직하다. 프로그램 데이터베이스(170)를 구축하는 이유는 서비스 제공자의 확인을 거친 프로그램의 목록을 사용자에게 제공함으로써, 사용자는 별도의 초기 설정 없이도 안전한 초기 설정 상태를 확보할 수 있으며, 사용자에게 프로그램의 작동의 허용 여부를 질의할 때에도 이해하기 쉬운 정보를 제공하여 사용자가 정확한 판단을 내릴 수 있도록 해주며, 사용자에 의해 동작이 허용된 프로그램이더라도 비정상적인 작동을 하면 이를 감지하여 차단할 수 있으며, 네트워크 통신 뿐만 아니라 컴퓨터 내에서 일어나는 다양한 보안 관련 이벤트를 통제하는 기능을 제공하기 위해서이다. 이하, 도 3을 참조하여 프로그램 데이터베이스(170)에 포함되는 정보 및 각 정보의 작용과 기능에 대하여 설명한다.
도 3은 본 발명의 바람직한 실시예를 설명하기 위한 프로그램 데이터베이스의 예시도이다. 도 3을 참조하면 프로그램 데이터베이스(170)는 프로그램을 고유하게 식별할 수 있는 프로그램 식별자(310), 각 프로그램에 대한 권장 보안 정책(330)을 포함하고, 바람직하게는 프로그램 정보(320)를 더 포함한다.
프로그램 데이터베이스(170)에 포함된 프로그램 식별자(310)는 알려진 프로그램마다 각 프로그램을 고유하게 식별할 수 있는 식별자이다. 식별자는 프로그램 데이터베이스(170)의 인덱스 역할을 한다.
프로그램 데이터베이스(170)에 포함된 권장 보안 정책(330)은 프로그램에서 발생될 수 있는 이벤트(331)와 그에 대해 보편적으로 권장되는 정책(332)를 포함한다. 권장 보안 정책(330)은 서비스 제공자가 각 프로그램의 작동을 확인하고 각 프로그램이 정상적으로 작동될 때 보편적으로 허용 또는 차단해야 할 이벤트들을 정의함으로써, 각 사용자는 본 발명에 따른 보안 장치를 각 컴퓨터에 설치한 후 종래 개인 방화벽처럼 개별 설정을 하지 않아도 보편적으로 권장되는 보안 정책을 바로 적용할 수 있게 된다.
권장 보안 정책(330)은 각 프로그램에서 발생될 수 있는 여러 가지 동작 이벤트에 대해 보편적으로 권장되는 정책을 담고 있다. 프로그램에서 발생될 수 있는 이벤트는 프로그램의 실행, 네트워크 통신, 레지스트리 I/O, 파일 I/O, 타 프로세스 디버깅, 타 프로세스 후킹, 프로세스간 통신 등이 포함될 수 있다. 그리고 이 이벤트에 대한 정책(332)은 각 이벤트가 발생되었을 때 취할 보안 정책을 의미하며, 허용, 차단, 질의 중 어느 하나인 것이 바람직하다. 허용은 이벤트의 진행을 허용하는 것이며, 차단은 이벤트의 진행을 차단하는 것이며, 질의는 이벤트의 진행 여부를 사용자에게 질의하고 그 결과에 따라 처리하는 것이다. 예를 들면, 널리 알려진 웹브라우저 프로그램의 경우에는 실행, 네트워크 통신, 디스크 I/O 등과 같은 이벤트의 권장 정책이 “허용”일 것이나, 사용시 사용자의 주의가 요구되는 P2P 서버 프로그램 등은 네트워크 통신 이벤트의 권장 정책이 “질의”일 수 있다. 또한, 서비스 제공자에 의해 해킹툴로 확인된 프로그램의 경우에는 실행, 네트워크 통신 이벤트를 비롯한 모든 이벤트의 권장 정책이 “차단”일 수 있다.
권장 보안 정책(330)에서 정의하는 프로그램의 이벤트(331)가 종래의 개인 방화벽처럼 네트워크 통신에만 한정되지 아니하고 다양한 이벤트를 포함할 수 있기 때문에, 종래 개인 방화벽과 달리 해킹 툴이 정상적인 프로그램을 원격 조종하여 악의적인 작동을 하는 형태의 공격으로부터도 차단을 수행할 수 있게 된다. 종래의 개인 방화벽에서는 사용자에 의해 네트워크 통신이 인가된 프로그램은 제한없이 외부와 통신을 할 수 있었으며, 이 때문에 해킹툴이 개인 방화벽의 감시를 회피하기 위해 사용자에게 인가된 프로그램을 원격 조종함으로써 원하는 악의적인 목적을 달성할 수 있었다. 그러나 본 발명에 따르면 네트워크 통신 뿐만 아니라, 타 프로세스 후킹이나 프로세스간 통신 이벤트에 대해서도 별도로 권장 정책을 정의함으로써 해킹툴이 정상적인 프로그램을 원격 조종하여 외부와 통신하려는 시도도 차단할 수가 있게 된다.
또한, 각 이벤트는 더 세분화된 조건을 가질 수도 있다. 예를 들면, 실행이라는 이벤트를 더욱 세분화하면 부팅시 실행, 사용자에 의해 실행, 타 프로그램에 의한 실행 등으로 구분할 수 있을 것이며, 각 세부적인 조건마다 보안 정책이 다를 수 있다. 도 4는 네트워크 통신 이벤트의 세분화된 조건의 예를 나타내는 예시도이다. 도 4를 참조하면, 네트워크 통신 이벤트는 세부적인 조건으로 도메인 주소, 포트 번호, 접속 방향, 전송 계층 프로토콜, 트래픽 임계치 등을 포함할 수 있다. 상기와 같은 네트워크 통신 이벤트의 세부적인 조건은 네트워크 통신 이벤트와 관련된 보안 정책을 세밀하게 설정할 수 있는 효과 이외에도 하기와 같은 여러 가지 효 과를 가진다.
먼저, 도메인 주소(410)는 서버로 접속을 시도하는 프로그램의 네트워크 통신 여부를 사용자에게 질의할 때, 프로그램이 접속하려는 서버의 IP 주소를 사용자가 이해하기 쉬운 도메인 명으로 변환하여 표기 또는 병기하는 것을 가능하게 해준다. 종래의 개인 방화벽은 사용자에게 네트워크 통신의 허용 여부를 질의할 때 숫자로만 구성된 IP 주소(dotted decimal notation)를 사용자에게 제시하였다. 종래의 개인 방화벽이 그렇게 작동되었던 이유는, 프로그램의 네트워크 통신 시도를 감지하였을 때 획득할 수 있는 정보가 패킷의 출발지와 목적지의 IP 주소와 포트 번호 정도로 제한되고 프로그램이 서버로 접속할 때 사용한 도메인 주소는 알 수가 없기 때문이다. 따라서 종래의 개인 방화벽에서 사용자는 IP 주소로만 표기된 서버의 주소를 보고 해당 서버로의 통신 허용 여부를 의도대로 판단하기 어려운 문제가 있었다.
그러나 네트워크 통신 이벤트의 세부 조건으로 저장되어 있는 도메인 주소(410) 정보를 이용하면, 상기 도메인 주소를 DNS 레졸루션한 IP 주소와 프로그램이 통신하려는 서버의 IP 주소가 일치한다면 사용자에게 IP 주소 대신 도메인 주소를 제시함으로써(혹은 IP 주소와 도메인 주소를 병기하여 제시함으로써) 사용자는 더 정확한 판단을 내릴 수 있다. 예를 들면, 프로그램이 192.168.0.100 주소로 통신하려는 이벤트를 검출한 경우, 상기 프로그램의 네트워크 통신 이벤트 조건을 추출하고, 네트워크 통신 이벤트 조건에 포함된 도메인 주소를 DNS 레졸루션한 IP 주소와 상기 프로그램이 접속을 시도한 IP 주소가 일치한다면 그 도메인 주소를 사용 자에게 제시할 수 있다.
또한, 네트워크 통신 이벤트(400)에 포함된 트래픽 임계치(420)는 사용자에 의해 네트워크 통신이 인가된 프로그램이더라도 해킹툴에 의해 원격 조종되어 사용자의 이익과 의사에 반하는 작동을 하는 것을 차단해준다. 사용자의 이익과 의사에 반하는 작동의 예는 컴퓨터를 이용한 스팸 메일의 발송, 메신저 프로그램을 이용한 바이러스의 전파, 웹브라우저를 이용한 DDOS 공격의 수행 등이 있을 수 있다.
종래 기술에 의한 개인 방화벽은 사용자에 의해 네트워크 통신이 인가된 프로그램은 아무런 제약 없이 외부와 통신을 하는 것이 가능하였다. 그러나, 해킹툴이 직접 외부와 네트워크 통신을 하지 않고, 사용자로부터 인가된 정상적인 프로그램을 원격 조종함으로써 악의적인 작동을 하는 형태의 공격은 이러한 종래의 기술로는 차단할 수가 없다. 해킹툴이 정상적인 프로그램을 원격 조종하는 방법은 윈도우 메시지를 이용하는 방법, 키보드와 마우스 입력을 인위적으로 생성하는 방법, DLL을 침투(injection)하는 방법 등이 있다. 해킹툴은 정상적인 프로그램을 원격 조종함으로써, 바이러스를 대량의 사용자에게 살포한다거나, 대량의 스팸 메일을 발송하는 등의 악의적인 작동을 할 수 있다. 네트워크 통신 이벤트(400)의 트래픽 임계치(420)는 이러한 형태의 공격을 발견 및 차단할 수 있게 해준다. 예를 들어, 웹브라우저가 www.microsoft.com 서버로 접속하여 웹을 검색하는 것이 허용되었더라도 이것이 보편적으로 타당한 수준으로 설정되어 있는 트래픽 임계치(420)를 초과한다면 네트워크 통신 이벤트 조건에 맞지 않게 되므로 통신은 허용되지 않게 된다. 따라서, 해킹툴이 정상적인 프로그램을 원격 조종하여 악의적인 행동을 시도하 더라도 이를 발견 및 차단할 수 있게 된다. 또한, 이러한 보편적으로 타당한 수준의 트래픽 임계치를 서비스 제공자가 프로그램 데이터베이스(170)의 형태로 구축하여 개별 사용자에게 배포함으로써 사용자들은 아무런 개별적 설정없이도 이러한 효과를 얻을 수 있게 된다.
프로그램 데이터베이스(170)에 포함된 프로그램 정보(320)는 프로그램의 개발자 혹은 개발사의 이름, 프로그램 이름, 프로그램의 버전, 프로그램의 종류 등의 정보를 포함할 수 있다. 프로그램에 대한 정보를 프로그램 데이터베이스(170)에 포함시킴으로써, 사용자에게 프로그램에서 발생되는 이벤트의 허용 여부를 질의할 때에 좀 더 자세한 정보를 줄 수 있으며, 이는 사용자가 의도대로 정확한 판단을 할 수 있도록 도와준다.
예를 들어, 종래의 개인 방화벽에서는 프로그램의 통신 시도를 감지하고 이에 대해 사용자에게 허용 여부를 질의할 때, “msn.exe 파일이 192.168.0.100 서버의 25번 포트로 TCP 연결을 시도하였습니다. 이를 허용하시겠습니까?”와 같은 한정된 정보를 바탕으로 사용자에게 질의를 하였으나, 프로그램 데이터베이스에 포함된 프로그램 정보(320)와 상기 세분화된 네트워크 통신 이벤트(400) 정보를 이용한다면, “마이크로소프트사에서 개발한 MSN 메신저 프로그램의 버전 6.0 중 msn.exe 파일이 mail.microsoft.com 서버의 25번 포트로 TCP 연결을 시도하였습니다. 이를 허용하시겠습니까?”와 같이 좀 더 사용자 친화적인 내용으로 질의를 할 수 있을 것이다. 따라서, 사용자는 msn.exe 파일이 마이크로소프트사에서 개발된 MSN 메신저 프로그램이며, 이 파일이 바이러스 등에 의해 변조되지 않았으며, 사용자가 신 뢰하는 도메인 주소인 mail.microsoft.com 서버로 접속을 시도했다는 것을 알 수 있으므로, 종래 기술과 대비하여 훨씬 쉽게 자신의 의도대로 허용 여부를 결정할 수 있을 것이다.
프로그램 데이터베이스(170)를 이용하여 상기 보안 정책 판단부(130)가 프로그램(200)에서 발생된 이벤트에 대해 적용할 보안 정책을 판단하는 과정을 살펴보면, 프로그램 식별자 추출부(120)에서 추출된 프로그램 식별자를 이용하여 프로그램 데이터베이스(170)에서 상기 프로그램과 관련된 정보를 추출하고, 이벤트 검출부(110)에서 검출된 이벤트에 해당하는 보안 정책을 권장 보안 정책(330)에서 검색한다. 만약 검색된 보안 정책이 “허용” 또는 “차단”이면 이 보안 정책을 최종적으로 적용할 보안 정책으로 판단하며, 만약 검색된 보안 정책이 “질의”라면 사용자에게 이벤트의 허용 여부를 질의하고, 그 사용자의 선택 결과에 따라 최종적으로 상기 이벤트에 적용할 정책을 “허용” 또는 “차단”으로 결정한다.
프로그램 데이터베이스(170)는 본 발명에 따르는 프로그램 데이터베이스를 이용한 보안 장치가 설치된 컴퓨터 내에 구비되는 형태도 가능하지만, 원격 호스트 상에 구비되어 상기 보안 정책 판단부(130)는 네트워크 통신 등의 수단을 이용하여 원격 호스트 상에 존재하는 프로그램 데이터베이스(170)에 접근하는 것도 가능하다. 구체적인 예로는 프로그램 데이터베이스(170)가 서비스 제공자의 서버에 존재하고, 보안 정책 판단부(130)는 TCP/IP 소켓 연결 또는 데이터베이스 관리 시스템의 원격 접속 등을 통하여 서버에 존재하는 프로그램 데이터베이스(170)를 접근할 수도 있다. 이러한 형태의 실시는 항상 서비스 제공자에 의해 구축된 최신의 프로 그램 데이터베이스를 사용할 수 있다는 장점을 가진다.
바람직하게는 프로그램 데이터베이스를 이용한 보안 장치(100)는 지역 보안 정책 데이터베이스(160)을 더 포함한다. 지역 보안 정책 데이터베이스(160)는 상기 프로그램 데이터베이스(170)의 권장 보안 정책을 재정의(override)하거나 프로그램 데이터베이스(170)에 등록되지 않은 프로그램에 대해 지역 보안 정책을 추가하는 기능을 한다. 지역 보안 정책 데이터베이스(160)는 서비스 제공자에 의해 구축되어 사용자에게 배포되는 프로그램 데이터베이스(170)와 달리, 개별 컴퓨터마다 독립적으로 사용자와 사용 환경에 맞도록 설정되는 것이 바람직하다. 본 발명에 따른 프로그램 데이터베이스를 이용한 보안 장치는 알려진 프로그램의 목록과 상기 프로그램의 권장 보안 정책을 포함하는 프로그램 데이터베이스(170)만으로도 보편적인 관점에서 우수한 보안 장치를 구성할 수 있으나, 경우에 따라서는 개별 컴퓨터마다 프로그램 데이터베이스(170)의 보안 정책을 재정의하거나 새로운 프로그램의 보안 정책을 추가할 필요도 있을 것이며, 이때 지역 보안 정책 데이터베이스(160)가 사용된다.
도 5는 본 발명의 바람직한 실시예를 설명하기 위한 지역 보안 정책 데이터베이스(160)의 예시도이다. 도 5를 참조하면, 지역 보안 정책 데이터베이스(160)는 프로그램 식별자(510)와 지역 보안 정책(520)을 포함하고, 바람직하게는 버전 연계(530) 설정을 더 포함한다. 지역 보안 정책(520)은 프로그램의 이벤트와 그 이벤트의 정책 정보를 포함한다.
프로그램 식별자(510)는 각 프로그램을 고유하게 식별할 수 있는 값으로 지 역 보안 정책 데이터베이스(160)의 인덱스 역할을 한다. 또한 프로그램 데이터베이스(170)의 프로그램 식별자(310)와 마찬가지로 각 프로그램 모듈에 해쉬 함수를 적용하여 구한 해쉬값인 것이 바람직하다.
지역 보안 정책 데이터베이스(160)를 이용하여 프로그램 데이터베이스(170)의 권장 정책을 재정의하는 기능을 예를 들어 설명하면, 도 3에서 프로그램 식별자(310)가 E44F5인 프로그램의 타 프로세스 디버깅 이벤트의 정책은 “차단”이나, 도 5에서 프로그램 식별자(510)가 E44F5인 프로그램의 타 프로세스 디버깅의 정책은 “허용”이다. 이 경우 지역 보안 정책 데이터베이스(160)의 설정은 프로그램 데이터베이스(170)의 설정을 재정의하는 기능을 하며, 각 개별 사용자나 사용 환경에 맞도록 보안 정책을 설정할 수 있게 된다.
지역 보안 정책 데이터베이스(160)를 이용하여 프로그램 데이터베이스(170)에 등록되지 않은 프로그램에 대한 지역 보안 정책을 추가하는 기능을 예를 들어 설명하면, 도 5에서 프로그램 식별자가 FEB43인 프로그램은 프로그램 데이터베이스(170)에 등록되어 있지 않은 새로운 프로그램이며, 상기 프로그램의 네트워크 통신 이벤트에 대한 정책은 “허용”으로 설정되어 있다. 이와 같이 각 개별 사용자가 사용하는 새로운 프로그램에 대해서도 보안 정책을 추가적으로 설정할 수 있게 된다.
이러한 보안 정책의 재정의 및 추가 기능을 위해 보안 정책 판단부(130)는 이벤트 검출부(110)에서 검출된 이벤트와 프로그램 식별자 추출부(120)에서 추출된 프로그램 식별자를 검색 조건으로, 먼저 지역 보안 정책 데이터베이스(160)를 이용 하여 상기 이벤트에 적용할 보안 정책을 판단하고, 지역 보안 정책 데이터베이스(160)를 이용하여 보안 정책을 판단하지 못한 경우에만 프로그램 데이터베이스(170)를 이용하여 보안 정책을 판단하는 것이 바람직하다. 이러한 방식을 이용하여 사용자는 본 발명의 프로그램 데이터베이스를 이용한 보안 장치를 컴퓨터에 설치한 후에 아무런 초기 설정을 하지 않아도 보편적으로 권장되는 보안 정책을 바로 적용할 수 있을 뿐만 아니라, 사용자나 사용 환경에 따라 세부적인 설정을 변경하거나 추가할 수도 있는 것이다.
버전 연계(530) 설정은 지역 보안 정책 데이터베이스(160)에 기 설정되어 있는 프로그램이 업데이트되더라도 새로 업데이트된 프로그램에도 기존 버전에 적용하던 보안 정책을 연계하여 적용할 수 있도록 해준다. 종래의 개인 방화벽은 동일한 프로그램의 여러 버전간 보안 정책 설정을 연계하는 것이 불가능하였으나, 본 발명에 따르면 프로그램 데이터베이스(170)를 이용하여 이러한 기능을 신뢰할 수 있는 방법으로 구현하는 것이 가능해진다.
도 3, 도 5를 참조하여 상기 버전 연계 기능의 작용을 구체적으로 설명한다. 도 5를 참조하면 프로그램 식별자(510)가 E44F5인 프로그램에 대해 지역 보안 정책이 설정되어 있으며, 버전 연계(530)가 “예”로 설정되어 있다. 도 3을 참조하면, 프로그램 식별자(310)가 E44F5인 프로그램은 MSN 메신저 버전 6.0이다. 이때, 사용자가 컴퓨터에 설치되어 있는 MSN 메신저를 버전 6.0에서 버전 7.0으로 업데이트한 경우를 가정하면, 보안 정책 판단부(130)는 프로그램 식별자 추출부(120)로부터 추출된 MSN 메신저 버전 7.0의 프로그램 식별자인 7526D를 이용하여 프로그램 데이터 베이스(170)를 검색하여 MSN 메신저의 모든 버전에 대한 프로그램 식별자를 추출할 수 있으며, 추출된 프로그램 식별자들을 이용하여 구 버전의 설정이 지역 보안 정책 데이터베이스(160)에 존재하는지를 확인하고, 구 버전의 프로그램을 대상으로 설정된 지역 보안 정책을 새 버전의 프로그램을 대상으로도 연계하여 적용할 수 있게 된다.
특히 본 발명에 따른 버전 연계 기능은 프로그램의 설치 경로와 같은 신뢰할 수 없는 정보에 근거한 종래의 기술과 달리, 프로그램의 모듈에 해쉬 함수를 적용하여 얻은 해쉬값 등을 이용한 프로그램 식별자를 이용함으로써 바이러스 등에 의해 파일이 변조된 것과 실제로 업데이트가 된 것을 정확하게 구분할 수 있는 장점이 있다. 만약 정상적인 업데이트가 아닌, 바이러스 등에 의하여 파일이 변조된 경우에는 상기 프로그램 모듈을 대상으로 구한 해쉬값이 프로그램 데이터베이스(170)에 존재하지 않거나 해킹툴로 판정되어 정상적인 업데이트와 구분을 할 수 있게 된다.
바람직하게는 프로그램 데이터베이스를 이용한 보안장치(100)는 기본 보안 정책 데이터베이스(180)를 더 포함한다. 기본 보안 정책 데이터베이스(180)는 상기 프로그램 식별자 추출부(120)에서 추출된 프로그램 식별자에 해당하는 프로그램이 지역 보안 정책 데이터베이스(160) 및 프로그램 데이터베이스(170)에 모두 등록되어 있지 않을 때 기본적으로 적용할 보안 정책을 저장한다. 기본 보안 정책 데이터베이스(180)는 본 발명의 프로그램 데이터베이스를 이용한 보안 장치가 컴퓨터에 설치될 때 보편적으로 타당한 기본값을 초기값으로 가질 수도 있으며, 사용자가 임 의로 설정할 수도 있다. 기본 보안 정책 데이터베이스(180)의 설정은 각 사용자나 사용환경마다 요구되는 보안 강도에 따라 설정이 가능하다. 예를 들어, 높은 수준의 보안이 요구된다면 기본 정책을 “차단” 혹은 “질의”로 설정할 수 있을 것이며, 낮은 수준의 보안만으로도 충분하다면 “허용”으로 설정할 수 있을 것이다.
도 6은 본 발명의 바람직한 실시예를 설명하기 위한 기본 정책 데이터베이스의 예시도이다. 도 6을 참조하면, 기본 보안 정책 데이터베이스(180)에 포함된 기본 보안 정책(610)은 이벤트와 그에 대한 정책을 포함한다. 예를 들어, 임의의 프로그램이 네트워크 통신을 시도하였는데, 해당 프로그램이 지역 보안 정책 데이터베이스(160) 및 프로그램 데이터베이스(170)에 등록되어 있지 않은 경우, 기본 보안 정책 데이터베이스(180)에서 네트워크 통신 이벤트에 대한 정책을 검색한다. 이 경우, 도 6의 예를 참고하면 네트워크 통신 이벤트에 적용할 적용할 정책은 “질의”가 된다.
보안 정책 판단부(130)는 프로그램 식별자 추출부(120)에서 추출된 프로그램 식별자를 이용하여 지역 보안 정책 데이터베이스(160) 및 프로그램 데이터베이스(170)로부터 이벤트 검출부(110)에서 검출된 이벤트에 대해 적용할 보안 정책을 판단하지 못한 경우, 기본 보안 정책 데이터베이스(180)를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단한다.
기본 보안 정책 데이터베이스(180)는 별도의 설정 가능한 파일이나 데이터베이스 관리 시스템(DBMS)으로 구현될 수도 있으나, 보안 정책 판단부(130)를 구현하는 프로그램 코드의 일부분으로 구현될 수도 있다.
바람직하게는 프로그램 데이터베이스를 이용한 보안 장치(100)는 프로그램 데이터베이스 업데이트부(140)를 더 포함한다. 프로그램 데이터베이스 업데이트부(140)는 주기적으로 혹은 사용자의 수동 요청에 의하여 사용자 컴퓨터의 프로그램 데이터베이스(170)를 최신 버전으로 업데이트한다. 바람직하게는 서비스 제공자가 프로그램 데이터베이스를 구축하고, 이를 서버(미도시)에 등록하면 프로그램 데이터베이스 업데이트부(140)는 상기 서버로부터 프로그램 데이터베이스를 다운로드 받아, 각 개별 컴퓨터의 프로그램 데이터베이스를 업데이트하여 항상 최신의 프로그램 데이터베이스를 유지하도록 한다. 프로그램 데이터베이스의 업데이트는 매번 전체 프로그램 데이터베이스를 다운로드 받아 수행될 수도 있을 것이며, 증분(incremental) 업데이트 방식으로 진행될 수도 있을 것이다. 이와 관련된 기술은 당업자에게 널리 알려져 있으므로 자세한 설명은 생략한다.
이하 도 2를 참조하여 프로그램 데이터베이스를 이용한 보안 방법에 대하여 상세히 설명한다. 설명에 있어서 상기한 설명과 중복되는 부분에 대한 설명은 생략한다.
도 2는 본 발명의 바람직한 실시예에 따른 프로그램 데이터베이스를 이용한 보안 방법의 흐름도이다.
프로그램 데이터베이스 구축 단계(S110)는 알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스(170)를 구축한다.
이벤트 검출 단계(S150)는 프로그램(200)에서 발생되는 보안과 관련된 이벤 트를 검출한다.
프로그램 식별자 추출 단계(S160)는 상기 이벤트 검출 단계(S150)에서 검출된 이벤트를 발생시킨 프로그램을 고유하게 식별할 수 있는 프로그램 식별자를 추출한다.
보안 정책 판단 단계(S170)는 상기 이벤트 검출 단계(S150)에서 검출된 이벤트와 상기 프로그램 식별자 추출 단계(S160)에서 추출된 프로그램 식별자를 검색 조건으로 프로그램 데이터베이스(170)를 검색하여 상기 이벤트에 적용할 보안 정책을 판단한다.
이벤트 처리 단계(S180)는 상기 보안 정책 판단 단계(S170)에서 판단된 보안 정책을 이용하여 상기 이벤트를 허용 또는 차단하는 처리를 수행한다.
바람직하게는 지역 보안 정책 데이터베이스 설정 단계(S130)를 더 포함하며, 상기 프로그램 데이터베이스 구축 단계(S110)에서 구축된 프로그램 데이터베이스(170)의 보안 정책을 재정의하거나 프로그램 데이터베이스(170)에 등록되지 않은 프로그램을 추가한다. 이 때 보안 정책 판단 단계(S170)는 상기 이벤트 검출 단계(S150)에서 검출된 이벤트와 상기 프로그램 식별자 추출 단계(S160)에서 추출된 프로그램 식별자를 검색 조건으로 먼저 지역 보안 정책 데이터베이스(160)를 이용하여 적용할 보안 정책을 판단하고, 지역 보안 정책 데이터베이스(160)를 이용하여 보안 정책을 판단하지 못한 경우에만 프로그램 데이터베이스(170)를 이용하여 보안 정책을 판단하는 것이 바람직하다.
바람직하게는 기본 보안 정책 데이터베이스 설정 단계(S140)를 더 포함하며, 상기 프로그램 식별자 추출 단계(S160)에서 추출된 프로그램 식별자에 해당하는 프로그램이 지역 보안 정책 데이터베이스(160) 및 프로그램 데이터베이스(170)에 등록되어 있지 않을 때 기본적으로 적용할 보안 정책을 설정한다. 이 때 보안 정책 판단 단계(S170)는 프로그램 식별자 추출 단계(S160)에서 추출된 프로그램 식별자를 이용하여 지역 보안 정책 데이터베이스(160) 및 프로그램 데이터베이스(170)로부터 이벤트 검출 단계(S150)에서 검출된 이벤트에 대해 적용할 보안 정책을 판단하지 못한 경우, 기본 보안 정책 데이터베이스(180)를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단한다
바람직하게는 프로그램 데이터베이스 업데이트 단계(S120)를 더 포함하며, 원격 서버에 존재하는 프로그램 데이터베이스를 다운로드 받아 컴퓨터 내에 저장된 프로그램 데이터베이스(170)를 최신 버전으로 업데이트한다.
지금까지 본 발명을 바람직한 실시예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시예에 한정되는 것은 아니며, 아래의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미치는 것으로 이해되어야 한다.
도 1은 본 발명의 바람직한 실시예에 따른 프로그램 데이터베이스를 이용한 보안 장치의 블록도,
도 2는 본 발명의 바람직한 실시예에 따른 프로그램 데이터베이스를 이용한 보안 방법의 흐름도,
도 3은 본 발명의 바람직한 실시예를 설명하기 위한 프로그램 데이터베이스의 예시도,
도 4는 도 3의 네트워크 통신 이벤트 및 정책(333)의 세부적 조건의 예를 나타낸 예시도,
도 5는 본 발명의 바람직한 실시예를 설명하기 위한 지역 보안 정책 데이터베이스의 예시도,
도 6은 본 발명의 바람직한 실시예를 설명하기 위한 기본 정책 데이터베이스의 예시도이다.
< 도면의 주요 참조부호에 대한 설명 >
100: 프로그램 데이터베이스를 이용한 보안 장치

Claims (26)

  1. 컴퓨터에 설치되어 프로그램의 작동을 통제하는 보안 장치로서,
    알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스;
    컴퓨터에서 실행되는 프로그램의 이벤트를 검출하는 이벤트 검출부;
    상기 이벤트 검출부에서 검출된 이벤트를 발생시킨 프로그램의 식별자를 추출하는 프로그램 식별자 추출부;
    상기 프로그램 식별자 추출부에서 추출된 프로그램 식별자와 상기 이벤트 검출부에서 검출된 이벤트를 검색 조건으로 프로그램 데이터베이스를 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 보안 정책 판단부;
    상기 보안 정책 판단부의 보안 정책 판단 결과에 따라 상기 이벤트를 허용 및 차단하는 이벤트 처리부;
    를 포함하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  2. 제 1항에 있어서,
    상기 프로그램 데이터베이스의 권장 보안 정책을 재정의하거나 프로그램 데이터베이스에 저장되지 않은 프로그램의 지역 보안 정책을 추가하기 위한 지역 보안 정책 데이터베이스;
    를 더 포함하고,
    상기 지역 보안 정책 데이터베이스는 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 상기 프로그램의 지역 보안 정책을 포함하고,
    상기 보안 정책 판단부는 상기 프로그램 식별자 추출부에서 추출된 프로그램 식별자와 상기 이벤트 검출부에서 검출된 이벤트를 검색 조건으로 지역 보안 정책 데이터베이스를 상기 프로그램 데이터베이스보다 먼저 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  3. 제 1항에 있어서,
    상기 프로그램 데이터베이스에 저장되지 않은 프로그램에 대해 적용할 기본 보안 정책을 저장하는 기본 보안 정책 데이터베이스;
    를 더 포함하고,
    상기 보안 정책 판단부는 상기 프로그램 데이터베이스를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단하지 못한 경우 상기 기본 보안 정책 데이터베이스를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  4. 제 2항에 있어서,
    상기 프로그램 데이터베이스와 상기 지역 보안 정책 데이터베이스에 저장되 지 않은 프로그램에 대해 적용할 기본 보안 정책을 저장하는 기본 보안 정책 데이터베이스;
    를 더 포함하고,
    상기 보안 정책 판단부는 상기 지역 보안 정책 데이터베이스와 상기 프로그램 데이터베이스를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단하지 못한 경우 상기 기본 보안 정책 데이터베이스를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    원격 서버에 존재하는 프로그램 데이터베이스를 다운로드 받아 상기 컴퓨터의 프로그램 데이터베이스를 업데이트하여 주는 프로그램 데이터베이스 업데이트부;
    를 더 포함하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  6. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    프로그램 데이터베이스는 프로그램 정보를 더 포함하고,
    상기 프로그램 정보는 프로그램의 개발자 혹은 개발사의 이름, 프로그램의 이름, 프로그램의 버전, 프로그램의 종류 중 적어도 어느 하나 이상을 포함하는 것 을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  7. 제 2항, 제 4항 중 어느 한 항에 있어서,
    지역 보안 정책 데이터베이스는 버전 연계 설정 정보를 더 포함하고, 상기 버전 연계가 설정된 경우 프로그램 데이터베이스를 이용하여 지역 보안 정책 데이터베이스에 기 설정된 프로그램의 보안 정책을 동일한 프로그램의 여러 버전에 연계하여 적용하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  8. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    프로그램 데이터베이스는 상기 컴퓨터와 물리적으로 분리된 원격 컴퓨터에 구비되는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  9. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    프로그램을 고유하게 식별할 수 있는 프로그램 식별자는 프로그램에서 사용되는 각 모듈에 해쉬함수를 적용하여 얻은 해쉬값인 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  10. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    프로그램 데이터베이스의 권장 보안 정책은,
    프로그램에서 발생되는 이벤트와 상기 이벤트에 대해 적용할 정책을 포함하 고,
    상기 이벤트는 실행, 네트워크 통신, 레지스트리 I/O, 파일 I/O, 타 프로세스 디버깅, 타 프로세스 후킹, 프로세스간 통신 중 적어도 어느 하나이며,
    상기 정책은 이벤트의 진행을 차단하는 차단 정책, 이벤트의 진행을 허용하는 허용 정책, 이벤트의 진행 여부를 사용자에게 질의하는 질의 정책 중 어느 하나인 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  11. 제 2항, 제 4항 중 어느 한 항에 있어서,
    지역 보안 정책 데이터베이스의 지역 보안 정책은,
    프로그램에서 발생되는 이벤트와 상기 이벤트에 대해 적용할 정책을 포함하고,
    상기 이벤트는 실행, 네트워크 통신, 레지스트리 I/O, 파일 I/O, 타 프로세스 디버깅, 타 프로세스 후킹, 프로세스간 통신 중 적어도 어느 하나이며,
    상기 정책은 이벤트의 진행을 차단하는 차단 정책, 이벤트의 진행을 허용하는 허용 정책, 이벤트의 진행 여부를 사용자에게 질의하는 질의 정책 중 어느 하나인 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  12. 제 3항, 제 4항 중 어느 한 항에 있어서,
    기본 보안 정책 데이터베이스의 기본 보안 정책은,
    프로그램에서 발생되는 이벤트와 상기 이벤트에 대해 적용할 정책을 포함하 고,
    상기 이벤트는 실행, 네트워크 통신, 레지스트리 I/O, 파일 I/O, 타 프로세스 디버깅, 타 프로세스 후킹, 프로세스간 통신 중 적어도 어느 하나이며,
    상기 정책은 이벤트의 진행을 차단하는 차단 정책, 이벤트의 진행을 허용하는 허용 정책, 이벤트의 진행 여부를 사용자에게 질의하는 질의 정책 중 어느 하나인 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  13. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    프로그램 데이터베이스의 권장 보안 정책 중 네트워크 통신 이벤트는 서버의 도메인 주소, 서버의 포트 번호, 통신의 방향, 전송 계층 프로토콜, 트래픽 임계치 중 적어도 어느 하나 이상을 세부적인 네트워크 통신 이벤트의 조건으로 포함하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 장치.
  14. 컴퓨터에 설치되어 프로그램의 작동을 통제하는 보안 방법으로서,
    알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스를 구축하는 프로그램 데이터베이스 구축 단계;
    컴퓨터에서 실행되는 프로그램의 이벤트를 검출하는 이벤트 검출 단계;
    상기 이벤트 검출 단계에서 검출된 이벤트를 발생시킨 프로그램의 식별자를 추출하는 프로그램 식별자 추출 단계;
    상기 프로그램 식별자 추출 단계에서 추출된 프로그램 식별자와 상기 이벤트 검출 단계에서 검출된 이벤트를 검색 조건으로 프로그램 데이터베이스를 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 보안 정책 판단 단계;
    상기 보안 정책 판단 단계의 보안 정책 판단 결과에 따라 상기 이벤트를 허용 및 차단하는 이벤트 처리 단계;
    를 포함하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
  15. 제 14항에 있어서,
    상기 프로그램 데이터베이스의 권장 보안 정책을 재정의하거나 프로그램 데이터베이스에 저장되지 않은 프로그램의 지역 보안 정책을 추가하기 위한 지역 보안 정책 데이터베이스를 설정하는 지역 보안 정책 데이터베이스 설정 단계;
    를 더 포함하고,
    상기 지역 보안 정책 데이터베이스는 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 상기 프로그램의 지역 보안 정책을 포함하고,
    상기 보안 정책 판단 단계는 상기 프로그램 식별자 추출 단계에서 추출된 프로그램 식별자와 상기 이벤트 검출 단계에서 검출된 이벤트를 검색 조건으로 지역 보안 정책 데이터베이스를 상기 프로그램 데이터베이스보다 먼저 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
  16. 제 14항에 있어서,
    상기 프로그램 데이터베이스에 저장되지 않은 프로그램에 대해 적용할 기본 보안 정책을 저장하는 기본 보안 정책 데이터베이스를 설정하는 기본 보안 정책 데이터베이스 설정 단계;
    를 더 포함하고,
    상기 보안 정책 판단 단계는 상기 프로그램 데이터베이스를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단하지 못한 경우 상기 기본 보안 정책 데이터베이스를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
  17. 제 15항에 있어서,
    상기 프로그램 데이터베이스와 상기 지역 보안 정책 데이터베이스에 저장되지 않은 프로그램에 대해 적용할 기본 보안 정책을 저장하는 기본 보안 정책 데이터베이스를 설정하는 기본 보안 정책 데이터베이스 설정 단계;
    를 더 포함하고,
    상기 보안 정책 판단 단계는 상기 지역 보안 정책 데이터베이스와 상기 프로그램 데이터베이스를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단하지 못한 경우 상기 기본 보안 정책 데이터베이스를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보 안 방법.
  18. 제 14항 내지 제 17항 중 어느 한 항에 있어서,
    원격 서버에 존재하는 프로그램 데이터베이스를 다운로드 받아 상기 컴퓨터의 프로그램 데이터베이스를 업데이트하여 주는 프로그램 데이터베이스 업데이트 단계;
    를 더 포함하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
  19. 제 14항 내지 제 17항 중 어느 한 항에 있어서,
    프로그램 데이터베이스는 프로그램 정보를 더 포함하고,
    상기 프로그램 정보는 프로그램의 개발자 혹은 개발사의 이름, 프로그램의 이름, 프로그램의 버전, 프로그램의 종류 중 적어도 어느 하나 이상을 포함하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
  20. 제 15항, 제 17항 중 어느 한 항에 있어서,
    지역 보안 정책 데이터베이스는 버전 연계 설정 정보를 더 포함하고, 상기 버전 연계가 설정된 경우 프로그램 데이터베이스를 이용하여 지역 보안 정책 데이터베이스에 기 설정된 프로그램의 보안 정책을 동일한 프로그램의 여러 버전에 연계하여 적용하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
  21. 제 14항 내지 제 17항 중 어느 한 항에 있어서,
    프로그램 데이터베이스는 상기 컴퓨터와 물리적으로 분리된 원격 컴퓨터에 구비되는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
  22. 제 14항 내지 제 17항 중 어느 한 항에 있어서,
    프로그램을 고유하게 식별할 수 있는 프로그램 식별자는 프로그램에서 사용되는 각 모듈에 해쉬 함수를 적용하여 얻은 해쉬값인 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
  23. 제 14항 내지 제 17항 중 어느 한 항에 있어서,
    프로그램 데이터베이스의 권장 보안 정책은,
    프로그램에서 발생되는 이벤트와 상기 이벤트에 대해 적용할 정책을 포함하고,
    상기 이벤트는 실행, 네트워크 통신, 레지스트리 I/O, 파일 I/O, 타 프로세스 디버깅, 타 프로세스 후킹, 프로세스간 통신 중 적어도 어느 하나이며,
    상기 정책은 이벤트의 진행을 차단하는 차단 정책, 이벤트의 진행을 허용하는 허용 정책, 이벤트의 진행 여부를 사용자에게 질의하는 질의 정책 중 어느 하나인 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
  24. 제 15항, 제 17항 중 어느 한 항에 있어서,
    지역 보안 정책 데이터베이스의 지역 보안 정책은,
    프로그램에서 발생되는 이벤트와 상기 이벤트에 대해 적용할 정책을 포함하고,
    상기 이벤트는 실행, 네트워크 통신, 레지스트리 I/O, 파일 I/O, 타 프로세스 디버깅, 타 프로세스 후킹, 프로세스간 통신 중 적어도 어느 하나이며,
    상기 정책은 이벤트의 진행을 차단하는 차단 정책, 이벤트의 진행을 허용하는 허용 정책, 이벤트의 진행 여부를 사용자에게 질의하는 질의 정책 중 어느 하나인 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
  25. 제 16항, 제 17항 중 어느 한 항에 있어서,
    기본 보안 정책 데이터베이스의 기본 보안 정책은,
    프로그램에서 발생되는 이벤트와 상기 이벤트에 대해 적용할 정책을 포함하고,
    상기 이벤트는 실행, 네트워크 통신, 레지스트리 I/O, 파일 I/O, 타 프로세스 디버깅, 타 프로세스 후킹, 프로세스간 통신 중 적어도 어느 하나이며,
    상기 정책은 이벤트의 진행을 차단하는 차단 정책, 이벤트의 진행을 허용하는 허용 정책, 이벤트의 진행 여부를 사용자에게 질의하는 질의 정책 중 어느 하나인 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
  26. 제 14항 내지 제 17항 중 어느 한 항에 있어서,
    프로그램 데이터베이스의 권장 보안 정책 중 네트워크 통신 이벤트는 서버의 도메인 주소, 서버의 포트 번호, 통신의 방향, 전송 계층 프로토콜, 트래픽 임계치 중 적어도 어느 하나 이상을 세부적인 네트워크 통신 이벤트의 조건으로 포함하는 것을 특징으로 하는 프로그램 데이터베이스를 이용한 보안 방법.
KR1020090045239A 2009-05-23 2009-05-23 프로그램 데이터베이스를 이용한 방화 장치 및 방법 KR20100126617A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090045239A KR20100126617A (ko) 2009-05-23 2009-05-23 프로그램 데이터베이스를 이용한 방화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090045239A KR20100126617A (ko) 2009-05-23 2009-05-23 프로그램 데이터베이스를 이용한 방화 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20100126617A true KR20100126617A (ko) 2010-12-02

Family

ID=43504229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090045239A KR20100126617A (ko) 2009-05-23 2009-05-23 프로그램 데이터베이스를 이용한 방화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20100126617A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012148098A1 (ko) * 2011-04-28 2012-11-01 슈어소프트테크주식회사 세이프가드 장치 및 방법
KR101314717B1 (ko) * 2013-02-08 2013-10-08 주식회사 씽크풀 애플리케이션 시스템, 제어시스템, 및 사용자 단말기 제어방법
CN104778399A (zh) * 2015-04-30 2015-07-15 北京瑞星信息技术有限公司 软件统一识别方法和系统
KR20160088246A (ko) * 2015-01-15 2016-07-25 캐논 가부시끼가이샤 정보 처리 장치, 정책 관리 장치, 시큐리티 정책의 관리 방법, 및 기억 매체
WO2020013354A1 (ko) * 2018-07-10 2020-01-16 엘지전자 주식회사 차량용 방화벽의 동작 방법

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012148098A1 (ko) * 2011-04-28 2012-11-01 슈어소프트테크주식회사 세이프가드 장치 및 방법
KR101283884B1 (ko) * 2011-04-28 2013-08-23 슈어소프트테크주식회사 세이프가드 장치, 방법 및 컴퓨터로 판독가능한 기록매체
KR101314717B1 (ko) * 2013-02-08 2013-10-08 주식회사 씽크풀 애플리케이션 시스템, 제어시스템, 및 사용자 단말기 제어방법
KR20160088246A (ko) * 2015-01-15 2016-07-25 캐논 가부시끼가이샤 정보 처리 장치, 정책 관리 장치, 시큐리티 정책의 관리 방법, 및 기억 매체
US10091200B2 (en) 2015-01-15 2018-10-02 Canon Kabushiki Kaisha Information processing apparatus, policy management apparatus, security policy management method, and storage medium
KR20190059880A (ko) * 2015-01-15 2019-05-31 캐논 가부시끼가이샤 정보 처리 장치, 컴퓨터 프로그램, 정보 처리 장치의 제어 방법
CN104778399A (zh) * 2015-04-30 2015-07-15 北京瑞星信息技术有限公司 软件统一识别方法和系统
CN104778399B (zh) * 2015-04-30 2017-12-29 北京瑞星信息技术股份有限公司 软件统一识别方法和系统
WO2020013354A1 (ko) * 2018-07-10 2020-01-16 엘지전자 주식회사 차량용 방화벽의 동작 방법

Similar Documents

Publication Publication Date Title
US9767280B2 (en) Information processing apparatus, method of controlling the same, information processing system, and information processing method
US7761618B2 (en) Using a USB host controller security extension for controlling changes in and auditing USB topology
Falliere et al. W32. stuxnet dossier
US8561190B2 (en) System and method of opportunistically protecting a computer from malware
US9760715B2 (en) Computer protection against malware affection
US7464408B1 (en) Damage containment by translation
US8578487B2 (en) System and method for internet security
US7716727B2 (en) Network security device and method for protecting a computing device in a networked environment
US8949987B2 (en) Computer security process monitor
US7549158B2 (en) Method and system for customizing a security policy
US9015829B2 (en) Preventing and responding to disabling of malware protection software
US8286219B2 (en) Safe and secure program execution framework
US20170091482A1 (en) Methods for data loss prevention from malicious applications and targeted persistent threats
US7950056B1 (en) Behavior based processing of a new version or variant of a previously characterized program
US20070260880A1 (en) System and method for the managed security control of processes on a computer system
US20100037317A1 (en) Mehtod and system for security monitoring of the interface between a browser and an external browser module
RU2723665C1 (ru) Динамический индикатор репутации для оптимизации операций по обеспечению компьютерной безопасности
US20220417255A1 (en) Managed detection and response system and method based on endpoints
KR20100126617A (ko) 프로그램 데이터베이스를 이용한 방화 장치 및 방법
KR20110036420A (ko) 클라우드 컴퓨팅 환경을 위한 가상 방화 장치 및 방법
US20050086512A1 (en) Worm blocking system and method using hardware-based pattern matching
KR20040083409A (ko) 실시간 감시를 통한 컴퓨터 보호 방법 및 이에 따라보호되는 컴퓨터와 그 시스템
US20130145469A1 (en) Preventing and detecting print-provider startup malware
CN110889112A (zh) 一种基于白名单机制的软件运行统一控制系统及方法
KR20220097037A (ko) 데이터 유출 방지 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application