KR20110036420A - Virtual firewall system for cloud computing environment and method thereof - Google Patents

Virtual firewall system for cloud computing environment and method thereof Download PDF

Info

Publication number
KR20110036420A
KR20110036420A KR1020090094081A KR20090094081A KR20110036420A KR 20110036420 A KR20110036420 A KR 20110036420A KR 1020090094081 A KR1020090094081 A KR 1020090094081A KR 20090094081 A KR20090094081 A KR 20090094081A KR 20110036420 A KR20110036420 A KR 20110036420A
Authority
KR
South Korea
Prior art keywords
program
event
security policy
database
identifier
Prior art date
Application number
KR1020090094081A
Other languages
Korean (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 KR1020090094081A priority Critical patent/KR20110036420A/en
Publication of KR20110036420A publication Critical patent/KR20110036420A/en

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

PURPOSE: A virtual firewall prevention apparatus for a cloud computing environment is provided to minimize the leakage of company security or personal information by a hacking tool. CONSTITUTION: A program identifier extracting unit(120) extracts an identifier of a program that generates a detected event of en event detecting unit(110). A security policy determining unit(130) uses the extracted program identifier and the detected event as a search condition. The security policy determining unit determines a security polity about the event through the search of a program database(170). An event processing unit(150) permits or blocks the event.

Description

클라우드 컴퓨팅 환경을 위한 가상 방화 장치 및 방법{Virtual firewall system for cloud computing environment and method thereof}Virtual firewall system for cloud computing environment and method

본 발명은 컴퓨터 내에서 실행되는 프로그램의 동작을 제어하는 방화 장치 및 방법에 관한 것으로, 보다 상세하게는 알려진 프로그램들에 대한 데이터베이스를 구축하고 이를 이용하여 컴퓨터 내에서 실행되는 프로그램의 여러 보안 관련 이벤트를 통제하는 프로그램 데이터베이스를 이용한 보안 장치 및 방법에 관한 것이다.The present invention relates to a fire protection apparatus and method for controlling the operation of a program executed in a computer, and more particularly, to establish a database for known programs and to use it to generate various security-related events of a program executed in the computer. It relates to a security device and method using a program database to control.

초고속 통신망이 발달하게 되면서 컴퓨터 네트워크를 이용한 바이러스와 해킹툴의 위협은 나날이 증가하고 있다. 특히 최근에는 바이러스나 해킹툴에 의한 피해가 단순히 컴퓨터 하드웨어나 소프트웨어의 정상적인 작동을 방해하는 수준을 넘어서, 직접적인 경제적 피해를 초래하는 상황에까지 이르렀다. 2009년 2월 11일자 중앙일보에 따르면, 2008년 12월 29일에 신용카드 계좌에서 해커에 의해 1,400만원이 무단 인출된 사례가 있으며, 2009년 1월 5일에도 인터넷 뱅킹을 통해 예금 2,100만원이 무단 인출된 사례가 있다. 경찰은 해커가 해킹툴을 이용하여 공인인증서를 손에 넣고 사용자의 키보드 입력을 가로채는 방법으로 해킹을 한 것으로 보고 있다. 이러한 예에서 보듯이 최근에는 알려지지 않은 해킹툴에 의한 해킹의 피해가 급증하고 있으며, 따라서 알려진 바이러스 뿐만 아니라 알려지지 않은 바이러스나 해킹툴의 위협을 효과적으로 차단할 수 있는 보안 장치의 개발 및 보급이 시급한 실정이다.With the development of high-speed communication networks, the threat of viruses and hacking tools using computer networks is increasing day by day. In particular, recently, the damage caused by viruses and hacking tools has not only hindered the normal operation of computer hardware or software, but also brought about direct economic damage. According to the JoongAng Ilbo of February 11, 2009, there were cases of unauthorized withdrawal of 14 million won from credit card account by hacker on December 29, 2008. Even on January 5, 2009, 21 million won was deposited through internet banking. There is a case of unauthorized withdrawal. The police believe that the hacker used a hacking tool to hack into the computer by intercepting the user's keyboard input. As shown in these examples, the damage of hacking by unknown hacking tools has recently increased rapidly. Therefore, it is urgent to develop and disseminate security devices that can effectively block not only known viruses but also threats of unknown viruses or hacking tools.

현재 바이러스나 해킹툴 등에 의한 개인 컴퓨터의 보안 위협을 차단하기 위해 주로 사용되는 보안 장치는 백신과 개인 방화벽이 있다.Currently, security devices that are mainly used to block security threats of personal computers by viruses or hacking tools include vaccines and personal firewalls.

백신은 알려진 바이러스나 해킹툴의 시그니쳐를 데이터베이스로 구축하고, 이를 이용하여 알려진 바이러스나 해킹툴을 차단한다. 즉, 백신은 백신의 개발자에 의해 알려진 바이러스나 해킹툴은 차단하되, 그 이외의 모든 프로그램은 작동을 허용하는 형태로 작동된다. 따라서 백신은 컴퓨터에 전문적인 지식을 갖추지 않은 사람도 사용하기 쉽다는 장점은 있으나 아직 알려지지 않은 바이러스나 해킹툴에 대해서는 방어를 할 수 없다는 문제점이 있다.The vaccine builds a signature of a known virus or hacking tool into a database and uses it to block known viruses or hacking tools. In other words, the vaccine works by blocking viruses or hacking tools known by the developer of the vaccine, but allowing all other programs to operate. Therefore, the vaccine has the advantage that it is easy to use even those who do not have expert knowledge on the computer, but there is a problem that it cannot defend against unknown viruses or hacking tools.

방화벽(firewall)이란 네트워크 트래픽을 감시하고 컴퓨터 사용자가 원하지 않는 트래픽을 차단하는 보안 장치를 말한다. 방화벽은 크게 독립적인 네트워크 장비로 구현되어 네트워크 중간에 설치되는 형태와 주로 소프트웨어 형태로 구현되어 컴퓨터 내에 설치되는 형태로 분류할 수 있으며, 후자를 편의상 개인 방화벽(personal firewall)이라고 한다.A firewall is a security device that monitors network traffic and blocks unwanted traffic from computer users. Firewalls can be classified into two types, which are implemented as independent network equipment and installed in the middle of a network and mainly implemented in software, and installed in a computer. The latter is called a personal firewall for convenience.

개인 방화벽의 발전 과정을 살펴보면, 초창기 형태의 개인 방화벽과 그보다 좀 더 진보한 형태의 개인 방화벽으로 구분할 수 있으며, 이를 편의상 제 1세대 개인 방화벽, 제 2세대 개인 방화벽으로 구분하여 설명한다. 부언하면, 제 1세대 개 인 방화벽과 제 2세대 개인 방화벽은 개인 방화벽의 발전 과정을 설명하기 위한 구분이며, 이들이 기능적으로 상호 배타적인 관계에 있는 것은 아니다. 따라서 현재 출시되어 있는 다양한 개인 방화벽 제품들은 제 2세대 개인 방화벽의 기능과 함께, 제 1세대 개인 방화벽의 기능을 상호 보완적으로 운용하고 있는 경우가 많다.Looking at the development process of the personal firewall, it can be divided into the initial type of personal firewall and the more advanced type of personal firewall, which is divided into the first generation personal firewall and the second generation personal firewall for convenience. In other words, the first generation personal firewall and the second generation personal firewall are distinctions for explaining the development process of the personal firewall, and they are not functionally mutually exclusive. Therefore, various personal firewall products currently on the market are often complementary to the functions of the second generation personal firewall and the first generation personal firewall.

제 1세대 개인 방화벽은 가장 초창기의 개인 방화벽으로, 패킷의 출발지 주소와 포트 번호, 패킷의 목적지 주소와 포트 번호, 전송 계층 프로토콜(TCP, UDP 등) 등을 기준으로 트래픽을 허용 및 차단하는 방식의 개인 방화벽이다. 즉, 네트워크 계층(IP 등)과 전송 계층(TCP, UDP 등)에서 획득할 수 있는 정보에만 기반하여 허용 및 차단 정책을 수행하는 형태였다. 이러한 형태의 개인 방화벽의 문제점은 임시 포트 번호(ephemeral port number)를 사용하는 P2P 프로그램이나 메신저 프로그램 등에 유연하게 대처할 수가 없다는 점, 개인 컴퓨터는 관리자 권한으로 사용하는 경우가 많은데 관리자의 부주의로 실행되는 해킹툴이 개인 방화벽에서 허용된 규칙 내에서만 작동된다면 이를 구분하여 차단할 수가 없다는 점 등이 있다.The first generation of personal firewalls are the earliest personal firewalls that allow and block traffic based on the packet's source address and port number, the packet's destination address and port number, and transport layer protocols (TCP, UDP, etc.). It is a personal firewall. In other words, it allowed and blocked policies based only on information obtained from the network layer (IP, etc.) and the transport layer (TCP, UDP, etc.). The problem with this type of personal firewall is that it cannot flexibly cope with P2P programs or messenger programs that use the temporary port number, and personal computers are often used as administrators. If the tool works only within the rules allowed by your personal firewall, you will not be able to distinguish and block it.

제 2세대 개인 방화벽은 상기와 같은 제 1세대 개인 방화벽의 문제점을 해결하기 위한 개인 방화벽으로, 컴퓨터 사용자가 해당 컴퓨터에서 통신을 허용 및 차단할 프로그램 목록을 작성하고 이 규칙에 근거하여 통신을 허용 및 차단하는 방식의 개인 방화벽이다. 통신을 허용 및 차단할 프로그램의 목록은 수동으로 입력되거나, 임의의 프로그램이 네트워크 통신을 시도할 때 사용자에게 팝업 창 등을 이용하여 통신 허용 여부를 질의한 후 사용자의 답변을 허용 및 차단할 프로그램 목록에 저장하는 형태를 이용하는 것이 일반적이다.The second generation personal firewall is a personal firewall to solve the above problems of the first generation personal firewall. The second generation personal firewall creates a list of programs that allow a computer user to allow and block communication on the computer, and allow and block communication based on this rule. Is a personal firewall. The list of programs to allow and block communication is entered manually, or when any program attempts to communicate with the network, the user is asked whether to allow communication using a pop-up window, etc., and then stored in the list of programs to allow and block the user's answer. It is common to use a form that does.

제 2세대 개인 방화벽은 백신과 작동 방식에서 큰 차이가 있는데, 백신은 알려진 바이러스만 차단하고 나머지 프로그램의 작동은 모두 허용하는 반면, 개인 방화벽은 모든 네트워크 통신에 대해 사용자에게 질의하는 과정을 거치도록 되어 있다. 즉, 개인 방화벽은 알려지지 않은 바이러스나 해킹툴이 외부와 통신을 시도하더라도 사용자에게 통신 허용 여부를 확인하도록 되어 있기 때문에, 보안의 측면에서만 보면 이러한 방식이 단연 우수하다고 할 수 있다.The second generation of personal firewalls differs greatly from the way they work with vaccines: vaccines block only known viruses and allow all remaining programs to work, while personal firewalls involve querying users for all network communications. have. In other words, the personal firewall is to check whether the user is allowed to communicate even if an unknown virus or hacking tool attempts to communicate with the outside, this can be said to be superior in terms of security.

이러한 제 2세대 개인 방화벽은 상기한 제 1세대 개인 방화벽이 가지는 여러 문제점들을 해결하였으나, 하기와 같은 또 다른 문제점을 야기하였다.This second generation personal firewall solves the problems of the first generation personal firewall described above, but causes another problem as described below.

제 2세대 개인 방화벽이 가지는 문제점은 (a) 통신을 허용 및 차단할 프로그램 목록을 구성하는 복잡한 초기 설정 과정을 거쳐야 한다는 점, (b) 네트워크 통신을 하는 프로그램이 업데이트됨에 따라 해당 프로그램을 새로 개인 방화벽에 등록 및 설정해주어야 한다는 점, (c) 사용자에게 통신 허용 여부를 질의할 때 한정된 정보만을 제공하기 때문에 컴퓨터에 전문적인 지식을 가진 사용자의 경우에도 통신의 허용 여부를 자신의 의도대로 판단하기 어려운 점, (d) 통신의 허용 및 차단이라는 이분법적 정책을 사용하기 때문에 한번 사용자에 의해 통신이 허용되면 그 이후에는 인가된 프로그램을 통한 비정상적인 트래픽도 허용이 된다는 점, (e) 네트워크 통신에 대해서만 차단 정책을 수행하기 때문에 컴퓨터 내부에서 발생되는 직접적 혹은 간접적인 유해한 작동은 차단하지 못한다는 점 등이 있다.Problems with second-generation personal firewalls include: (a) a complex initial setup process that forms a list of programs to allow and block communications; and (b) new programs are added to the personal firewall as the network communications program is updated. Registration and setting, (c) it is difficult to determine whether to allow communication even if the user has expertise in the computer because only limited information is provided when inquiring whether to allow the communication. (d) the use of a dichotomous policy of allowing and blocking communications, so that once communication is allowed by a user, abnormal traffic through authorized programs is allowed thereafter; and (e) blocking policies only for network communications. Directly or indirectly from inside the computer It does not block one operation.

상기 (a) 문제점에 대해 좀 더 상세히 살펴보면, 개인 방화벽을 컴퓨터에 설치한 후에 복잡한 설정 과정을 거치는 것은 개인 방화벽의 장점이자 동시에 단점이 라고 할 수 있다. 보안적인 측면에서 보았을 때, 네트워크 통신을 시도하는 모든 프로그램에 대해 사용자 확인을 거친 후에 통신을 허용하기 때문에 알려지지 않은 바이러스나 해킹툴이 통신을 시도하는 경우에도 이를 모두 차단할 수 있다는 점은 장점이다. 그러나 사용자 편의성의 관점에서 보았을 때, 그 설정 과정이 복잡하기 때문에 컴퓨터에 전문적인 지식을 가진 자가 아니라면 효과적으로 설정 및 사용하기가 상당히 어렵다는 단점이 있다. 이러한 사용상의 어려움은 개인 방화벽이 개인 정보나 기업 비밀의 유출을 차단할 수 있는 가장 유효한 수단임에도 불구하고 널리 사용되어 그 실효성을 거두지 못하고 있는 원인이기도 하다.Looking at the above (a) problem in more detail, it is an advantage and a disadvantage of the personal firewall to go through a complicated configuration process after installing the personal firewall on the computer. From a security point of view, it allows the communication after all programs that attempt to communicate with the network have been confirmed by the user, so that even if an unknown virus or hacking tool tries to communicate, the advantage is that it can be blocked. However, from the viewpoint of user convenience, the setting process is complicated, so it is difficult to set up and use effectively unless it is a person who has expert knowledge in computer. This difficulty in use is the reason that although the personal firewall is the most effective means of preventing the leakage of personal information or corporate secrets, it is widely used and is not effective.

상기 (b) 문제점에 대해 좀 더 상세히 살펴보면, 최근의 프로그램들은 네트워크를 통한 자동 업데이트 기능을 제공하는 경우가 많은데, 이러한 업데이트 기능을 이용하여 수시로 프로그램이 업데이트가 되면 해당 프로그램이 업데이트 될 때마다 해당 프로그램을 개인 방화벽에 다시 등록 및 설정해 주어야 하는 문제점이 있다. 일부 개인 방화벽은 프로그램이 업데이트가 되더라도 그 파일의 경로가 변경되지 않았다면 기존의 버전에 적용되었던 설정을 업데이트된 프로그램에도 그대로 적용하는 경우도 있으나, 이러한 형태의 접근은 다시 여러 가지 문제점을 가진다. 우선 파일의 경로를 근거로 통신 허용 설정을 유지한다면 해당 파일이 바이러스 등에 의해 감염된 경우를 정상적으로 업데이트된 경우와 구분할 방법이 없다. 따라서, 사용자에 의해 네트워크 통신이 인가되었던 프로그램이 바이러스 등에 의해 변조된 경우를 차단할 수 없게 된다. 또 다른 문제점으로는 최근 점점 사용이 늘고 있는 .NET의 ClickOnce와 같이 인터넷을 통해 배포되는 소프트웨어의 경우에 는 매번 업데이트가 될때마다 디스크상의 설치 경로가 임의의 경로로 변경되기 때문에 파일 경로에 기반하여 통신 허용 설정을 유지하는 방식은 사용할 수가 없다는 점이다. 따라서 파일의 내용이 변경되었더라도 파일의 경로를 근거로 통신 허용 설정을 유지하는 것은 컴퓨터의 보안적 측면에서 신뢰할 수 있는 방법이 아님은 자명하다.Looking at the problem (b) in more detail, the recent programs are often provided with an automatic update function through the network, if the program is updated from time to time by using the update function, the corresponding program is updated every time There is a problem that needs to be registered and configured in the personal firewall again. Some personal firewalls may apply the settings that were applied to the previous version to the updated program if the path of the file is not changed even if the program is updated, but this type of approach has various problems again. First of all, if you maintain the communication permission setting based on the path of the file, there is no way to distinguish the case where the file is infected with a virus from the case of normal update. Therefore, it is not possible to block the case where a program to which network communication is applied by a user is modified by a virus or the like. Another problem is that software distributed over the Internet, such as .NET's ClickOnce, which is increasingly used recently, communicates based on file paths because the installation path on disk changes to a random path every time it is updated. Maintaining the permission setting is not available. Therefore, even if the contents of the file are changed, it is obvious that maintaining the communication permission setting based on the path of the file is not a reliable method of security of the computer.

상기 (c) 문제점에 대해 좀 더 상세히 살펴보면, 개인 방화벽은 컴퓨터 내에서 작동되는 프로그램과 NIC(Network Interface Card) 사이에 구비되어 그 사이를 오가는 트래픽을 검출하는 방식으로 작동되는데, 이때 개인 방화벽이 검출된 트래픽으로부터 얻을 수 있는 정보는 통신에 관여하는 프로그램 파일명, 패킷의 출발지 주소 및 포트 번호, 패킷의 목적지 주소 및 포트 번호, 전송 계층 프로토콜(TCP, UDP 등) 정도로 한정된다. 따라서, 개인 방화벽은 이러한 한정된 정보를 바탕으로 사용자에게 통신 허용 여부를 질의하고, 사용자는 이러한 한정된 정보를 바탕으로 통신 허용 여부를 결정해야 한다. 이러한 종래 기술에 따른 개인 방화벽이 사용자에게 통신 허용 여부를 질의하는 메시지의 예는 “Update.exe 파일이 192.168.0.100 호스트의 5000번 포트로 TCP 연결을 시도하였습니다. 이를 허용하시겠습니까?”와 같은 형태가 될 수 있다. 하지만 이러한 한정된 정보로는 컴퓨터에 전문적인 지식을 갖춘 자라도 통신의 허용 여부를 의도대로 판단하기 어렵다. 상기의 예에서 Update.exe 파일이 무슨 파일인지, 혹시 알려지지 않은 바이러스에 의해 변조된 파일은 아닌지, 또 192.168.0.100 호스트는 무슨 호스트인지, 그 호스트가 악의적인 목적의 호스트는 아닌지 등에 관한 판단은 컴퓨터 전문가라도 쉽지 않다.Looking at the problem (c) in more detail, the personal firewall is provided between a program running in a computer and a network interface card (NIC) to operate in a way to detect traffic to and from between, where the personal firewall is detected. The information that can be obtained from the traffic is limited to the program file name involved in the communication, the source address and port number of the packet, the destination address and port number of the packet, and the transport layer protocol (TCP, UDP, etc.). Therefore, the personal firewall queries the user whether the communication is allowed based on the limited information, and the user must determine whether to allow the communication based on the limited information. An example of a message that asks a user whether or not to allow communication by the conventional firewall is “Update.exe file attempted a TCP connection to port 5000 on host 192.168.0.100. Do you want to allow this? ” However, even with such limited information, it is difficult for a person with computer expertise to determine whether to allow communication. In the above example, the determination of what the Update.exe file is, whether the file has been tampered by an unknown virus, what the host is 192.168.0.100, whether the host is not a malicious host, etc. Even an expert is not easy.

상기 (d) 문제점에 대해 좀 더 상세히 살펴보면, 종래의 개인 방화벽은 사용자에 의해 한번 통신 허용이 된 프로그램은 제한없이 외부와 통신을 하는 것이 가능하다. 예를 들면, 메신저 프로그램의 통신을 개인 방화벽 설정에서 허용해 두었다면 이 메신저 프로그램은 자유롭게 외부와 통신이 허용된다. 문제는 정상적인 프로그램이더라도 악의적인 프로그램의 원격 조종을 받아 비정상적인 작동을 할 수도 있다는 점이다. 예를 들어, 메신저 프로그램의 경우 메신저 프로그램 자체는 바이러스 등에 의해 변조되지 않았더라도 컴퓨터 내에서 실행되는 다른 악의적인 프로그램이 메신저 프로그램을 원격 조종함으로써 사용자가 원하지 않는 바이러스 등을 메신저에 등록된 다른 사용자들에게 전파시킬 수도 있다. 또 다른 예로는 사용자가 메일을 발송하기 위해 아웃룩 프로그램을 개인 방화벽에 등록하여 두었는데, 컴퓨터 내에서 작동되는 어떤 악의적인 프로그램이 아웃룩 프로그램을 원격 조종하여 대량의 스팸 메일을 발송할 수도 있다. 또 다른 예로는 악의적인 프로그램이 웹브라우저 프로그램을 원격 조종하여 특정 사이트에 대해 DDOS 공격을 할 수도 있다. 악의적인 프로그램이 정상적인 프로그램을 원격 조종하는 방법은 정상적인 프로그램으로 인위적인 윈도우 메시지를 보내는 방법, 키보드나 마우스 입력을 인위적으로 대상 프로그램으로 입력하는 방법, DLL 침투(injection)를 이용하는 방법 등이 있을 수 있다. 어느 방법을 사용하든 이 경우에 실제로 통신을 시도하여 바이러스를 전파하는 메신저 프로그램, 대량의 스팸 메일을 발송하는 아웃룩 프로그램, DDOS 공격을 하는 웹브라우저 프로그램은 사용자가 통신을 인가한 프로그램이므로 이러한 정상적인 프로그램을 원격 조종하여 악의적인 작동을 하는 형태의 공격으로 부터 종래의 개인 방화벽은 방어를 할 수 없다.Looking at the problem (d) in more detail, the conventional personal firewall is a program that is allowed to communicate once by the user can communicate with the outside without limitation. For example, if a messenger program allows communication in a personal firewall setting, the messenger program is free to communicate with the outside world. The problem is that even a normal program can operate abnormally under the remote control of a malicious program. For example, in the case of a messenger program, even if the messenger program itself has not been tampered with by a virus, other malicious programs running inside the computer can remotely control the messenger program, so that other viruses registered in the messenger can be sent to other users registered with the messenger. It can also propagate. In another example, a user has registered an Outlook program with a personal firewall to send mail. A malicious program running on a computer may remotely control the Outlook program and send a large amount of spam. In another example, a malicious program could remotely control a web browser program to launch a DDOS attack on a particular site. The malicious program may remotely control a normal program by sending an artificial Windows message to the normal program, artificially inputting a keyboard or mouse input into the target program, or using a DLL injection. Either way, in this case, a messenger program that actually attempts to communicate and spreads viruses, an Outlook program that sends out a large amount of spam mail, and a web browser program that launches a DDOS attack are programs that the user authorizes communication. Conventional personal firewalls cannot defend against attacks that are remotely controlled and malicious.

상기 (e) 문제점에 대해 좀 더 상세히 살펴보면, 개인 방화벽은 사용자로부터 인가받은 프로그램만 외부로 통신을 허용하는 방식을 취하고 있으나, 최근의 날로 지능화되는 보안 위협을 차단하기 위해서는 네트워크 차단만으로는 역부족이다. 앞서 이야기한 바와 같이 개인 방화벽으로부터 검출되는 것을 회피하기 위해 사용자에 의해 통신이 인가된 정상적인 프로그램을 원격 조종하는 형태로 작동되는 악의적인 해킹툴은 종래의 개인 방화벽으로 차단할 수 없다.Looking at the problem (e) in more detail, the personal firewall is a method that allows only the program authorized by the user to communicate with the outside, it is not enough to block the network in order to block the security threat that is intelligent in recent days. As mentioned above, a malicious hacking tool operated by remotely controlling a normal program to which communication is authorized by a user to avoid detection from a personal firewall cannot be blocked by a conventional personal firewall.

본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로, 알려진 프로그램들의 데이터베이스를 구축하고 이를 기반으로 복잡한 초기 설정 과정이 필요치 않으며, 프로그램이 업데이트되어도 업데이트된 프로그램의 보안 정책을 재설정할 필요가 없으며, 사용자에게 프로그램의 작동의 허용 여부를 질의할 때에도 이해하기 쉬운 정보를 제공하여 사용자가 정확한 판단을 내릴 수 있도록 해주며, 사용자에 의해 동작이 허용된 프로그램이더라도 비정상적인 작동을 하면 이를 감지하여 차단할 수 있으며, 네트워크 통신 뿐만 아니라 컴퓨터 내에서 일어나는 다양한 보안 관련 이벤트를 통제할 수 있는 프로그램 데이터베이스를 이용한 보안 장치 및 방법을 제공하는 데 그 목적이 있다.The present invention has been made to solve the above problems, it is not necessary to build a database of known programs and complex initial setup process based on this, and even if the program is updated, there is no need to reset the security policy of the updated program, When asking the user whether to allow the operation of the program, it provides easy-to-understand information so that the user can make accurate judgments. Even if the program is permitted by the user, it can detect and block the abnormal operation. It is an object of the present invention to provide a security device and method using a program database that can control not only network communication but also various security related events occurring in a computer.

본 발명의 다른 목적 및 장점은 하기에 설명될 것이다.Other objects and advantages of the invention will be described below.

상기 목적을 달성하기 위한 본 발명은 컴퓨터에 설치되어 프로그램의 작동을 통제하기 위한 보안 장치로서, 알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스; 컴퓨터에서 실행되는 프로그램의 이벤트를 검출하는 이벤트 검출부; 상기 이벤트 검출부에서 검출된 이벤트를 발생시킨 프로그램의 식별자를 추출하는 프로그램 식별자 추출부; 상기 프로그램 식별자 추출부에서 추출된 프로그램 식별자와 상기 이벤트 검출부에서 검출된 이벤트를 검색 조건으로 프로그램 데 이터베이스를 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 보안 정책 판단부; 상기 보안 정책 판단부의 보안 정책 판단 결과에 따라 상기 이벤트를 허용 및 차단하는 이벤트 처리부;를 포함하는 것을 특징으로 한다.The present invention for achieving the above object is a security device installed in the computer for controlling the operation of the program, for storing the program identifier and the recommended security policy of each program that can uniquely identify each program for the known programs Program database; An event detector for detecting an event of a program executed in a computer; A program identifier extractor configured to extract an identifier of a program that generated the event detected by the event detector; A security policy determination unit that searches a program database based on a program condition extracted from the program identifier extraction unit and an event detected by the event detection unit, and determines a security policy to be applied to the event; And an event processing unit for allowing and blocking the event according to a security policy determination result of the security policy determination unit.

상기 목적을 달성하기 위한 본 발명은 컴퓨터에 설치되어 프로그램의 작동을 통제하기 위한 보안 방법으로서, 알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스를 구축하는 프로그램 데이터베이스 구축 단계; 컴퓨터에서 실행되는 프로그램의 이벤트를 검출하는 이벤트 검출 단계; 상기 이벤트 검출 단계에서 검출된 이벤트를 발생시킨 프로그램의 식별자를 추출하는 프로그램 식별자 추출 단계; 상기 프로그램 식별자 추출 단계에서 추출된 프로그램 식별자와 상기 이벤트 검출 단계에서 검출된 이벤트를 검색 조건으로 프로그램 데이터베이스를 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 보안 정책 판단 단계; 상기 보안 정책 판단 단계의 보안 정책 판단 결과에 따라 상기 이벤트를 허용 및 차단하는 이벤트 처리 단계;를 포함하는 것을 특징으로 한다.The present invention for achieving the above object is a security method installed on a computer to control the operation of the program, for storing the program identifier and the recommended security policy of each program that can uniquely identify each program for known programs A program database building step of constructing a program database; An event detecting step of detecting an event of a program executed in the computer; A program identifier extracting step of extracting an identifier of a program that generated the event detected in the event detecting step; A security policy determination step of determining a security policy to be applied to the event by searching a program database based on a search condition of the program identifier extracted in the program identifier extraction step and the event detected in the event detection step; And an event processing step of allowing and blocking the event according to the security policy determination result of the security policy determination step.

본 발명의 프로그램 데이터베이스를 이용한 보안 장치 및 방법에 따르면, 알려지지 않은 바이러스나 해킹툴을 차단할 수 있는 보안 장치 및 방법을 제공하면서도, 복잡한 초기 설정 과정이 필요치 않으며, 프로그램이 업데이트되어도 업데이트된 프로그램의 보안 정책을 재설정할 필요가 없으며, 사용자에게 프로그램의 작동의 허용 여부를 질의할 때에도 이해하기 쉬운 정보를 제공하여 사용자가 정확한 판 단을 내릴 수 있도록 해주며, 사용자에 의해 동작이 허용된 프로그램이더라도 비정상적인 작동을 하면 이를 감지하여 차단할 수 있으며, 네트워크 통신 뿐만 아니라 컴퓨터 내에서 일어나는 다양한 보안 관련 이벤트를 통제할 수 있게 된다.According to the security device and method using the program database of the present invention, while providing a security device and method that can block unknown viruses or hacking tools, no complicated initial configuration process is required, even if the program is updated, the security policy of the updated program There is no need to reset the function, and even when the user is asked whether the program is allowed to be operated, it provides easy-to-understand information so that the user can make an accurate judgment. It can detect and block it, and control not only network communication but also various security-related events occurring within the computer.

따라서 컴퓨터에 전문적인 지식을 갖추지 않은 사용자이더라도 아직 알려지지 않은 바이러스나 해킹툴로 인해 발생되는 개인 정보나 기업 비밀의 유출과 같은 해킹 피해를 최소화할 수 있게 된다.Therefore, even if the user does not have specialized computer knowledge, hacking damage such as the leakage of personal information or corporate secrets caused by unknown viruses or hacking tools can be minimized.

이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 바람직한 실시예에 따른 프로그램 데이터베이스를 이용한 보안 장치의 블록도이다. 도 1을 참조하면, 프로그램(200)은 본 발명의 프로그램 데이터베이스를 이용한 보안 장치를 이용하여 작동을 통제할 대상이 되는 컴퓨터 프로그램이다. 프로그램은 이미 실행되어 프로세스의 형태로 존재할 수도 있으며, 아직 실행되지 않은 상태로 디스크 상에 존재할 수도 있다. 운영체제(300)는 프로그램(200)이 실행되는 환경을 제공하며, 프로그램(200)은 운영체제(300)에게 시스템 호출(system call)을 하여 운영체제로부터 프로세스 실행, 파일 I/O, 프로세스간 통신, 네트워크 통신 등의 서비스를 제공받는다. 프로그램 데이터베이스를 이용한 보안 장치(100)는 논리적으로 상기 프로그램(200)과 운영체제(300) 사이에 구비되어 프로그램(200)이 운영체제(300)로 요청하는 다양한 요청을 모니터링하고 보안 기능을 수행한다.1 is a block diagram of a security device using a program database according to a preferred embodiment of the present invention. Referring to FIG. 1, the program 200 is a computer program to be controlled by using a security device using the program database of the present invention. The program may already be executed and exist in the form of a process, or may exist on the disk in a state that has not yet been executed. The operating system 300 provides an environment in which the program 200 is executed, and the program 200 makes a system call to the operating system 300 to execute processes from the operating system, file I / O, interprocess communication, and network. Receive services such as communication. The security device 100 using a program database is logically provided between the program 200 and the operating system 300 to monitor various requests requested by the program 200 to the operating system 300 and perform a security function.

프로그램 데이터베이스를 이용한 보안 장치(100)는 알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스(170); 컴퓨터에서 실행되는 프로그램의 이벤트를 검출하는 이벤트 검출부(110); 상기 이벤트 검출부에서 검출된 이벤트를 발생시킨 프로그램의 식별자를 추출하는 프로그램 식별자 추출부(120); 상기 프로그램 식별자 추출부에서 추출된 프로그램 식별자와 상기 이벤트 검출부에서 검출된 이벤트를 검색 조건으로 프로그램 데이터베이스를 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 보안 정책 판단부(130); 상기 보안 정책 판단부의 보안 정책 판단 결과에 따라 상기 이벤트를 허용 및 차단하는 이벤트 처리부(150);를 포함한다.The security device 100 using the program database includes a program database 170 that stores a program identifier capable of uniquely identifying each program and a recommended security policy of each program with respect to known programs; An event detector 110 for detecting an event of a program executed in the computer; A program identifier extracting unit (120) for extracting an identifier of a program that generated the event detected by the event detecting unit; A security policy determination unit (130) for determining a security policy to be applied to the event by searching a program database based on a program condition extracted from the program identifier extraction unit and an event detected by the event detection unit; And an event processing unit 150 for allowing and blocking the event according to the security policy determination result of the security policy determination unit.

이벤트 검출부(110)는 프로그램(200)에서 발생되는 보안과 관련된 다양한 이벤트를 검출하는 기능을 한다. 프로그램에서 발생되는 보안과 관련된 이벤트는 프로그램의 실행, 네트워크 통신, 레지스트리 I/O, 파일 I/O, 타 프로세스 디버깅, 타 프로세스 후킹, 프로세스간 통신 등이 있을 수 있다.The event detector 110 detects various events related to security generated by the program 200. Security-related events occurring in the program may include program execution, network communication, registry I / O, file I / O, other process debugging, other process hooking, and interprocess communication.

이벤트 검출부(110)의 구현 예를 윈도우 운영체제 환경을 기준으로 설명한다. 이벤트 검출부(110)는 검출할 이벤트의 특성에 따라 사용자 모드에서 구현될 수도 있으며, 커널 모드의 드라이버로 구현될 수도 있다.An implementation example of the event detector 110 will be described based on the Windows operating system environment. The event detector 110 may be implemented in the user mode according to the characteristics of the event to be detected, or may be implemented as a driver in the kernel mode.

이벤트 검출부(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)를 조작하는 방법으로도 구현 가능하다.When the event detector 110 is implemented in the user mode, an API hooking scheme may be used. API hooking refers to a technique for intercepting a system call requested by the program 200 to the operating system 300. The developer implements a DLL file of a function that has the same prototype as a system call provided by the operating system, maps the DLL file to the memory space of the process to monitor the system call, and then executes the function of the DLL provided by the operating system. Replace the calling address with the address of a function in your DLL. The system calls that the program calls can then be intercepted before they reach the operating system's kernel, allowing you to monitor or control what services the program requests to the operating system. API hooking allows you to monitor and control most of the events that occur in your program. Among the DLLs provided by the Windows operating system, DLLs that are subject to API hooking for detecting security-related events occurring in a program are KERNEL32.DLL, USER32.DLL, GDI32.DLL, PSAPI.DLL, and WS2_32.DLL. . KERNEL32.DLL provides functions such as process and thread creation, memory management, USER32.DLL provides window creation, window message handling, GDI32.DLL provides graphic output function, and PSAPI.DLL Provides status information of processes and threads. WS2_32.DLL provides network communication related functions. For example, to hook a system call to run a new program, you hook the CreateProcess () function of KERNEL32.DLL. In other words, API hooking may be implemented by manipulating a System Service Descriptor Table (SSDT) in kernel mode.

이벤트 검출부(110)를 커널 모드에서 드라이버로 구현하는 방식은 파일 I/O, 네트워크 I/O 등과 같은 I/O 관련 이벤트를 시스템 전역적으로 검출하는데 적합하다. 커널 모드의 드라이버를 운영체제에서 제공하는 I/O 관련 디바이스의 상단에 필터 드라이버로 구현함으로써, 해당 디바이스로 전달되는 IRP(I/O Request Packet)을 모니터링하거나 제어할 수 있다. 예를 들어, TCP 통신과 관련된 I/O를 모니터링하기 위해서는 \Device\Tcp 디바이스의 상단에 설치되는 필터 드라이버를 구현하면 된다. 커널 모드의 드라이버로 구현할 때의 장점은, 컴퓨터 내에서 실행되는 모든 프로그램을 대상으로 일괄적으로 이벤트 검출을 수행할 수 있다는 점이다.The method of implementing the event detector 110 as a driver in the kernel mode is suitable for detecting system-wide I / O-related events such as file I / O and network I / O. By implementing a kernel mode driver as a filter driver on top of an I / O related device provided by an operating system, an I / O request packet (IRP) delivered to the corresponding device can be monitored or controlled. For example, to monitor I / O related to TCP communication, you can implement a filter driver installed on top of the \ Device \ Tcp device. An advantage of implementing a kernel mode driver is that event detection can be performed on all programs running in the computer.

상기 API 후킹이나 필터 드라이버의 작성은 당업자에게 널리 알려진 주지관용 기술이므로 더 자세한 설명은 생략한다.Since the API hooking and the creation of the filter driver are well known techniques known to those skilled in the art, a detailed description thereof will be omitted.

프로그램 식별자 추출부(120)는 상기 이벤트 검출부(110)에서 검출된 이벤트를 발생시킨 프로그램을 고유하게 식별할 수 있는 식별자를 추출한다. 각 프로그램을 고유하게 식별할 수 있는 식별자의 예로는 프로그램이 설치된 절대 경로, 프로그램 파일의 시그니쳐, 프로그램 파일의 이름, 날짜, 속성 혹은 이들의 조합 등 어떤 형태도 모두 가능하나, 프로그램을 구성하는 각 모듈(DLL, EXE 등)에 해쉬 함수를 적용하여 얻은 해쉬값인 것이 바람직하다. 해쉬 함수란 임의 길이의 입력을 받아 고정된 짧은 길이의 출력을 생성하는 함수를 말하며, 많이 사용되는 해쉬 함수의 예로는 MD5, SHA-1 등이 있다. 시그니쳐는 각 파일마다 나타나는 독특한 고유값을 말하며, 기존의 백신 프로그램에서 각 바이러스를 독특하게 식별하기 위한 방법으로 널리 사용되고 있는 방식이다. 프로그램 식별자로 각 모듈의 해쉬값을 사용할 때의 장점은 식별자의 크기를 적정 크기 이하(예를 들면 32바이트)로 유지하면서도 각 프로그램을 식별자 값의 충돌없이 고유하게 식별하기가 용이하다는 점이다. 또 한, 프로그램 식별자로 해쉬값을 사용하면 바이러스에 의해 프로그램의 파일이 조금만 변경되어도 해쉬값은 크게 달라지기 때문에, 프로그램이 바이러스 등에 의해 변조된 경우 이를 쉽게 탐지할 수 있다는 점이다. 다양한 해쉬 함수의 실시예는 당업자에게 널리 알려져 있으므로 그 상세한 설명은 생략한다.The program identifier extractor 120 extracts an identifier capable of uniquely identifying the program that generated the event detected by the event detector 110. Examples of identifiers that can uniquely identify each program can be in any form, such as the absolute path where the program is installed, the signature of the program file, the name, date, attribute, or a combination of the program files. It is preferably a hash value obtained by applying a hash function to (DLL, EXE, etc.). The hash function refers to a function that receives an arbitrary length of input and generates a fixed short length output. Examples of commonly used hash functions include MD5 and SHA-1. Signatures are unique values that appear in each file and are widely used as a way to uniquely identify each virus in existing vaccine programs. The advantage of using the hash value of each module as the program identifier is that it is easy to uniquely identify each program without conflicting identifier values, while keeping the size of the identifier below the appropriate size (eg 32 bytes). In addition, when using a hash value as a program identifier, the hash value is greatly changed even if the file of the program is slightly changed by the virus, so that it can be easily detected when the program is modified by a virus or the like. Embodiments of various hash functions are well known to those skilled in the art, and thus detailed descriptions thereof are omitted.

프로그램 식별자 추출부(120)는 상기 이벤트 검출부(110)에서 이벤트가 검출되었을 때에, 상기 이벤트와 관련된 프로세스를 식별하고, 이로부터 프로세스와 연관된 프로그램을 구하고, 이 프로그램을 고유하게 식별할 수 있는 식별자 값을 계산하는 방식으로 구현될 수 있다. 따라서 프로그램 식별자 추출부(120)는 이벤트 검출부(110)와 긴밀하게 연동되도록 구현되는 것이 바람직하다.When the event detection unit 110 detects an event, the program identifier extractor 120 identifies a process associated with the event, obtains a program associated with the process therefrom, and uniquely identifies the program. It can be implemented by calculating the. Therefore, the program identifier extractor 120 may be implemented to work closely with the event detector 110.

이벤트 검출부(110)가 사용자 모드에서 API 후킹으로 구현된 경우에는, GetCurrentProcess() 함수를 이용하여 프로세스 핸들을 구할 수 있으며, GetModuleFileNameEx() 함수로 프로세스 핸들을 전달하여 프로그램의 디스크상 경로를 구할 수 있다. 그리고 해당 파일을 읽어 해쉬 함수에 입력하면 각 프로그램을 고유하게 식별하는 프로그램 식별자로 사용될 수 있는 해쉬값을 구할 수 있다.When the event detector 110 is implemented by API hooking in the user mode, the process handle can be obtained by using the GetCurrentProcess () function, and the path on the disk of the program can be obtained by passing the process handle to the GetModuleFileNameEx () function. . If you read the file and input it to the hash function, you can get a hash value that can be used as a program identifier that uniquely identifies each program.

이벤트 검출부(110)가 커널 모드의 필터 드라이버로 구현된 경우에는 PsGetProcessId() 함수를 이용하여 프로세스 ID를 구할 수 있으며, 이를 OpenProcess() 함수로 전달하여 프로세스 핸들을 구하고, GetModuleFileNameEx() 함수로 프로세스 핸들을 전달하여 프로그램의 디스크상 경로를 구할 수 있다. 그리고 해당 파일을 읽어 해쉬 함수에 입력하면 각 프로그램을 고유하게 식별하는 프로그램 식별자로 사용될 수 있는 해쉬값을 구할 수 있다.When the event detector 110 is implemented as a filter driver in kernel mode, a process ID can be obtained by using the PsGetProcessId () function. The process handle can be obtained by passing it to the OpenProcess () function, and the process handle is obtained by the GetModuleFileNameEx () function. You can get the program's on-disk path by passing. If you read the file and input it to the hash function, you can get a hash value that can be used as a program identifier that uniquely identifies each program.

보안 정책 판단부(130)는 상기 이벤트 검출부(110)에서 검출된 이벤트 및 상기 프로그램 식별자 추출부(120)에서 추출된 프로그램 식별자를 이용하여 상기 이벤트에 적용할 보안 정책을 판단한다. 보안 정책 판단부(130)의 판단 결과는 허용, 차단 중 하나인 것이 바람직하다. 허용은 상기 이벤트의 진행을 허용하는 것이며, 차단은 상기 이벤트의 진행을 차단하는 것이다. 상기 보안 정책의 자세한 판단 과정은 후술한다.The security policy determiner 130 determines a security policy to be applied to the event by using the event detected by the event detector 110 and the program identifier extracted by the program identifier extractor 120. The determination result of the security policy determination unit 130 is preferably one of allow and block. Allow is to allow the event to proceed, and block is to block the progress of the event. A detailed determination process of the security policy will be described later.

이벤트 처리부(150)는 상기 보안 정책 판단부(130)의 판단 결과에 따라 상기 이벤트를 허용하거나 차단하는 기능을 한다. 이벤트 처리부(150)는 이벤트 검출부(110)와 긴밀하게 연동되도록 구현하는 것이 바람직하다. 따라서 이벤트 검출부(110)를 사용자 모드에서 API 후킹으로 구현하였다면 이벤트 처리부(150)도 API 후킹 방식을 이용하여 이벤트를 제어하는 것이 바람직하며, 이벤트 검출부(110)를 커널 모드에서 드라이버로 구현하였다면 이벤트 처리부(150)도 드라이버 내에서 이벤트를 제어하는 것이 바람직하다. 이벤트 처리부(150)가 API 후킹 방식으로 구현된 경우에는 상기 이벤트를 허용하려면 후킹된 원본 함수를 그대로 호출하면 되고, 상기 이벤트를 차단하려면 원본 함수를 호출하지 않고 그대로 응용 프로그램으로 실패를 반환하면 된다. 또한, 이벤트 처리부(150)가 커널 모드의 필터 드라이버 방식으로 구현된 경우에는 상기 이벤트를 허용하려면 하위 드라이버로 IoCallDriver()를 호출하여 IRP를 넘겨주면 되고, 상기 이벤트를 차단하려면 IRP를 하위 드라이버로 넘겨주지 않고 IoCompleteRequest()를 호출하여 IRP를 실패로 처리하면 된다.The event processor 150 functions to allow or block the event according to the determination result of the security policy determiner 130. The event processor 150 may be implemented to work closely with the event detector 110. Therefore, when the event detection unit 110 is implemented by API hooking in the user mode, the event processing unit 150 may also control the event by using the API hooking method. When the event detection unit 110 is implemented as a driver in the kernel mode, the event processing unit 150 also preferably controls the event within the driver. When the event processing unit 150 is implemented by the API hooking method, the hooked original function may be called as it is to allow the event, and to block the event, the event processing unit 150 may return a failure to the application as it is without calling the original function. In addition, when the event processing unit 150 is implemented in the kernel-mode filter driver method, to allow the above event, IoCallDriver () may be called as a subordinate driver and the IRP may be passed. To block the event, the IRP is passed to the subordinate driver. You can simply call IoCompleteRequest () to treat the IRP as a failure.

상기 윈도우 API 및 커널 모드에서 제공되는 함수들은 MSDN 도움말과 WDK(Windows Driver Kit)의 도움말에 상세히 설명되어 있다.The functions provided by the Windows API and kernel mode are described in detail in MSDN Help and in the Help in the Windows Driver Kit (WDK).

프로그램 데이터베이스(170)는 알려진 프로그램들의 목록을 여러 가지 정보와 함께 저장한다. 프로그램 데이터베이스(170)는 각 개별 컴퓨터의 사용자가 구축하기보다는 서비스 제공자가 구축하여 각 개별 사용자에게 배포하는 것이 바람직하다. 프로그램 데이터베이스(170)를 구축하는 이유는 서비스 제공자의 확인을 거친 프로그램의 목록을 사용자에게 제공함으로써, 사용자는 별도의 초기 설정 없이도 안전한 초기 설정 상태를 확보할 수 있으며, 사용자에게 프로그램의 작동의 허용 여부를 질의할 때에도 이해하기 쉬운 정보를 제공하여 사용자가 정확한 판단을 내릴 수 있도록 해주며, 사용자에 의해 동작이 허용된 프로그램이더라도 비정상적인 작동을 하면 이를 감지하여 차단할 수 있으며, 네트워크 통신 뿐만 아니라 컴퓨터 내에서 일어나는 다양한 보안 관련 이벤트를 통제하는 기능을 제공하기 위해서이다. 이하, 도 3을 참조하여 프로그램 데이터베이스(170)에 포함되는 정보 및 각 정보의 작용과 기능에 대하여 설명한다.The program database 170 stores a list of known programs with various information. The program database 170 is preferably built by a service provider and distributed to each individual user rather than being built by each individual computer user. The reason for building the program database 170 is to provide the user with a list of programs that have been checked by the service provider, so that the user can secure a safe initial setting state without a separate initial setting, and whether the user is allowed to operate the program. It provides easy-to-understand information even when querying the user to make accurate judgments. Even if the program is allowed to be operated by the user, it can detect and block abnormal operation. This is to provide a function to control various security related events. Hereinafter, with reference to FIG. 3, the information included in the program database 170 and the operation and function of each information will be described.

도 3은 본 발명의 바람직한 실시예를 설명하기 위한 프로그램 데이터베이스의 예시도이다. 도 3을 참조하면 프로그램 데이터베이스(170)는 프로그램을 고유하게 식별할 수 있는 프로그램 식별자(310), 각 프로그램에 대한 권장 보안 정책(330)을 포함하고, 바람직하게는 프로그램 정보(320)를 더 포함한다.3 is an exemplary diagram of a program database for explaining a preferred embodiment of the present invention. Referring to FIG. 3, the program database 170 includes a program identifier 310 that can uniquely identify a program, a recommended security policy 330 for each program, and preferably further includes program information 320. do.

프로그램 데이터베이스(170)에 포함된 프로그램 식별자(310)는 알려진 프로그램마다 각 프로그램을 고유하게 식별할 수 있는 식별자이다. 프로그램 식별자(310)는 프로그램 데이터베이스(170)의 인덱스 역할을 한다.The program identifier 310 included in the program database 170 is an identifier capable of uniquely identifying each program for each known program. The program identifier 310 serves as an index of the program database 170.

프로그램 데이터베이스(170)에 포함된 권장 보안 정책(330)은 프로그램에서 발생될 수 있는 이벤트(331)와 그에 대해 보편적으로 권장되는 정책(332)를 포함한다. 권장 보안 정책(330)은 서비스 제공자가 각 프로그램의 작동을 확인하고 각 프로그램이 정상적으로 작동될 때 보편적으로 허용 또는 차단해야 할 이벤트들을 정의함으로써, 각 사용자는 본 발명에 따른 보안 장치를 각 컴퓨터에 설치한 후 종래 개인 방화벽처럼 개별 설정을 하지 않아도 보편적으로 권장되는 보안 정책을 바로 적용할 수 있게 된다.The recommended security policy 330 included in the program database 170 includes an event 331 that may occur in the program and a policy 332 that is generally recommended for it. The recommended security policy 330 allows the service provider to verify the operation of each program and define events that should be allowed or blocked universally when each program is operating normally, so that each user installs a security device in accordance with the present invention on each computer. After that, it is possible to directly apply the generally recommended security policy without any individual setting like the conventional personal firewall.

권장 보안 정책(330)은 각 프로그램에서 발생될 수 있는 여러 가지 동작 이벤트에 대해 보편적으로 권장되는 정책을 담고 있다. 프로그램에서 발생될 수 있는 이벤트는 프로그램의 실행, 네트워크 통신, 레지스트리 I/O, 파일 I/O, 타 프로세스 디버깅, 타 프로세스 후킹, 프로세스간 통신 등이 포함될 수 있다. 그리고 이 이벤트에 대한 정책(332)은 각 이벤트가 발생되었을 때 취할 보안 정책을 의미하며, 허용, 차단, 질의 중 어느 하나인 것이 바람직하다. 허용은 이벤트의 진행을 허용하는 것이며, 차단은 이벤트의 진행을 차단하는 것이며, 질의는 이벤트의 진행 여부를 사용자에게 질의하고 그 결과에 따라 처리하는 것이다. 예를 들면, 널리 알려진 웹브라우저 프로그램의 경우에는 실행, 네트워크 통신, 디스크 I/O 등과 같은 이벤트의 권장 정책이 “허용”일 것이나, 사용시 사용자의 주의가 요구되는 P2P 서버 프로그램 등은 네트워크 통신 이벤트의 권장 정책이 “질의”일 수 있다. 또한, 서비스 제공자에 의해 해킹툴로 확인된 프로그램의 경우에는 실행, 네트워크 통신 이벤트를 비롯한 모든 이벤트의 권장 정책이 “차단”일 수 있다.The recommended security policy 330 contains a universally recommended policy for various motion events that can occur in each program. Events that may occur in a program may include program execution, network communication, registry I / O, file I / O, debugging other processes, hooking other processes, and interprocess communication. The policy 332 for this event means a security policy to be taken when each event occurs, and preferably, one of allow, block, and query. Allow is to allow the progress of the event, block is to block the progress of the event, and query is to query the user whether the event is progressing and process accordingly. For example, in the case of well-known web browser programs, the recommended policy for events such as execution, network communication, disk I / O, etc. may be “allowed”, but P2P server programs, which require user's attention when used, may be used for network communication events. The recommended policy may be a "query." In addition, in the case of a program identified as a hacking tool by the service provider, the recommended policy of all events, including execution and network communication events, may be "blocked".

권장 보안 정책(330)에서 정의하는 프로그램의 이벤트(331)가 종래의 개인 방화벽처럼 네트워크 통신에만 한정되지 아니하고 다양한 이벤트를 포함할 수 있기 때문에, 종래 개인 방화벽과 달리 해킹 툴이 정상적인 프로그램을 원격 조종하여 악의적인 작동을 하는 형태의 공격으로부터도 차단을 수행할 수 있게 된다. 종래의 개인 방화벽에서는 사용자에 의해 네트워크 통신이 인가된 프로그램은 제한없이 외부와 통신을 할 수 있었으며, 이 때문에 해킹툴이 개인 방화벽의 감시를 회피하기 위해 사용자에게 인가된 프로그램을 원격 조종함으로써 원하는 악의적인 목적을 달성할 수 있었다. 그러나 본 발명에 따르면 네트워크 통신 뿐만 아니라, 타 프로세스 후킹이나 프로세스간 통신 이벤트에 대해서도 별도로 권장 정책을 정의함으로써 해킹툴이 정상적인 프로그램을 원격 조종하여 외부와 통신하려는 시도도 차단할 수가 있게 된다.Since the event 331 of the program defined in the recommended security policy 330 is not limited to network communication like a conventional personal firewall, but may include various events, unlike a conventional personal firewall, a hacking tool remotely controls a normal program. Blocking can also be achieved against malicious forms of attack. In the conventional personal firewall, the program authorized by the user to communicate with the network was able to communicate with the outside without restriction. Therefore, the hacking tool desired malicious by remotely controlling the program authorized to the user in order to avoid the surveillance of the personal firewall. The goal could be achieved. However, according to the present invention, by defining a recommended policy for not only network communication but also other process hooking or inter-process communication events, the hacking tool can block an attempt to communicate with the outside by remotely controlling a normal program.

또한, 각 이벤트는 더 세분화된 조건을 가질 수도 있다. 예를 들면, 실행이라는 이벤트를 더욱 세분화하면 부팅시 실행, 사용자에 의해 실행, 타 프로그램에 의한 실행 등으로 구분할 수 있을 것이며, 각 세부적인 조건마다 보안 정책이 다를 수 있다. 도 4는 네트워크 통신 이벤트의 세분화된 조건의 예를 나타내는 예시도이다. 도 4를 참조하면, 네트워크 통신 이벤트는 세부적인 조건으로 도메인 주소, 포트 번호, 접속 방향, 전송 계층 프로토콜, 트래픽 임계치 등을 포함할 수 있다. 상기와 같은 네트워크 통신 이벤트의 세부적인 조건은 네트워크 통신 이벤트와 관련된 보안 정책을 세밀하게 설정할 수 있는 효과 이외에도 하기와 같은 여러 가지 효 과를 가진다.Each event may also have more granular conditions. For example, if an event called execution is further broken down, it may be classified into execution at boot, execution by a user, execution by another program, etc., and the security policy may be different for each detailed condition. 4 is an exemplary diagram illustrating an example of a detailed condition of a network communication event. Referring to FIG. 4, the network communication event may include a domain address, a port number, a connection direction, a transport layer protocol, a traffic threshold, and the like as detailed conditions. The detailed conditions of the network communication event as described above have various effects as well as the effect of finely setting a security policy related to the network communication event.

먼저, 도메인 주소(410)는 서버로 접속을 시도하는 프로그램의 네트워크 통신 여부를 사용자에게 질의할 때, 프로그램이 접속하려는 서버의 IP 주소를 사용자가 이해하기 쉬운 도메인 명으로 변환하여 표기 또는 병기하는 것을 가능하게 해준다. 종래의 개인 방화벽은 사용자에게 네트워크 통신의 허용 여부를 질의할 때 숫자로만 구성된 IP 주소(dotted decimal notation)를 사용자에게 제시하였다. 종래의 개인 방화벽이 그렇게 작동되었던 이유는, 프로그램의 네트워크 통신 시도를 감지하였을 때 획득할 수 있는 정보가 패킷의 출발지와 목적지의 IP 주소와 포트 번호 정도로 제한되고 프로그램이 서버로 접속할 때 사용한 도메인 주소는 알 수가 없기 때문이다. 따라서 종래의 개인 방화벽에서 사용자는 IP 주소로만 표기된 서버의 주소를 보고 해당 서버로의 통신 허용 여부를 의도대로 판단하기 어려운 문제가 있었다.First, when the domain address 410 asks the user whether the program attempting to connect to the server is network communication, the domain address 410 converts the IP address of the server to which the program is connected into a domain name that is easy for the user to understand or mark. Make it possible. Conventional personal firewalls present users with a dotted decimal notation that consists only of numbers when asking the user whether to allow network communication. The reason why the conventional personal firewall works so is that the information that can be obtained when the program detects a network communication attempt is limited to the IP address and port number of the packet's source and destination, and the domain address used when the program connects to the server. Because I do not know. Therefore, in the conventional personal firewall, it is difficult for a user to see the address of a server indicated only by an IP address and determine whether to allow communication to the corresponding server as intended.

그러나 네트워크 통신 이벤트의 세부 조건으로 저장되어 있는 도메인 주소(410) 정보를 이용하면, 상기 도메인 주소를 DNS 레졸루션한 IP 주소와 프로그램이 통신하려는 서버의 IP 주소가 일치한다면 사용자에게 IP 주소 대신 도메인 주소를 제시함으로써(혹은 IP 주소와 도메인 주소를 병기하여 제시함으로써) 사용자는 더 정확한 판단을 내릴 수 있다. 예를 들면, 프로그램이 192.168.0.100 주소로 통신하려는 이벤트를 검출한 경우, 상기 프로그램의 네트워크 통신 이벤트 조건을 추출하고, 네트워크 통신 이벤트 조건에 포함된 도메인 주소를 DNS 레졸루션한 IP 주소와 상기 프로그램이 접속을 시도한 IP 주소가 일치한다면 그 도메인 주소를 사 용자에게 제시할 수 있다.However, using the domain address 410 information stored as a detailed condition of the network communication event, if the IP address of the DNS resolution of the domain address and the IP address of the server to which the program communicates match, the user is given a domain address instead of an IP address. By presenting (or presenting IP and domain addresses in parallel) the user can make a more accurate judgment. For example, when the program detects an event to communicate with the address 192.168.0.100, the program extracts the network communication event condition of the program and connects the IP address of the DNS resolution of the domain address included in the network communication event condition to the program. If the IP address you attempt to match matches, you can present the domain address to the user.

또한, 네트워크 통신 이벤트(400)에 포함된 트래픽 임계치(420)는 사용자에 의해 네트워크 통신이 인가된 프로그램이더라도 해킹툴에 의해 원격 조종되어 사용자의 이익과 의사에 반하는 작동을 하는 것을 차단해준다. 사용자의 이익과 의사에 반하는 작동의 예는 컴퓨터를 이용한 스팸 메일의 발송, 메신저 프로그램을 이용한 바이러스의 전파, 웹브라우저를 이용한 DDOS 공격의 수행 등이 있을 수 있다.In addition, the traffic threshold 420 included in the network communication event 400 prevents operations that are remotely controlled by the hacking tool even if the program is authorized for network communication by the user and operate against the user's interests and intentions. Examples of operations contrary to the interests and intentions of the user may include sending spam mails using a computer, spreading viruses using a messenger program, and performing a DDOS attack using a web browser.

종래 기술에 의한 개인 방화벽은 사용자에 의해 네트워크 통신이 인가된 프로그램은 아무런 제약 없이 외부와 통신을 하는 것이 가능하였다. 그러나, 해킹툴이 직접 외부와 네트워크 통신을 하지 않고, 사용자로부터 인가된 정상적인 프로그램을 원격 조종함으로써 악의적인 작동을 하는 형태의 공격은 이러한 종래의 기술로는 차단할 수가 없다. 해킹툴이 정상적인 프로그램을 원격 조종하는 방법은 윈도우 메시지를 이용하는 방법, 키보드와 마우스 입력을 인위적으로 생성하는 방법, DLL을 침투(injection)하는 방법 등이 있다. 해킹툴은 정상적인 프로그램을 원격 조종함으로써, 바이러스를 대량의 사용자에게 살포한다거나, 대량의 스팸 메일을 발송하는 등의 악의적인 작동을 할 수 있다. 네트워크 통신 이벤트(400)의 트래픽 임계치(420)는 이러한 형태의 공격을 발견 및 차단할 수 있게 해준다. 예를 들어, 웹브라우저가 www.microsoft.com 서버로 접속하여 웹을 검색하는 것이 허용되었더라도 이것이 보편적으로 타당한 수준으로 설정되어 있는 트래픽 임계치(420)를 초과한다면 네트워크 통신 이벤트 조건에 맞지 않게 되므로 통신은 허용되지 않게 된다. 따라서, 해킹툴이 정상적인 프로그램을 원격 조종하여 악의적인 행동을 시도하 더라도 이를 발견 및 차단할 수 있게 된다. 또한, 이러한 보편적으로 타당한 수준의 트래픽 임계치를 서비스 제공자가 프로그램 데이터베이스(170)의 형태로 구축하여 개별 사용자에게 배포함으로써 사용자들은 아무런 개별적 설정없이도 이러한 효과를 얻을 수 있게 된다.Personal firewall according to the prior art was able to communicate with the outside without any restrictions to the program that the network communication is authorized by the user. However, such a conventional technique cannot be prevented by a hacking tool that does not directly communicate with the outside network and performs malicious operation by remotely controlling a normal program authorized by a user. Hacking tools can remotely control normal programs by using Windows messages, artificially generating keyboard and mouse input, and injecting DLLs. By remotely controlling a normal program, a hacking tool can perform malicious operations such as spreading a virus to a large number of users or sending a large amount of spam mail. Traffic threshold 420 of network communication event 400 allows for the detection and blocking of this type of attack. For example, even if a web browser is allowed to connect to the www.microsoft.com server and browse the web, if it exceeds the traffic threshold 420, which is generally set at a reasonable level, it will not meet network communication event conditions. It will not be allowed. Therefore, even if a hacking tool attempts to perform malicious actions by remotely controlling a normal program, it can be detected and blocked. In addition, such a universally reasonable level of traffic thresholds can be constructed by the service provider in the form of a program database 170 and distributed to individual users so that users can achieve this effect without any individual setting.

프로그램 데이터베이스(170)에 포함된 프로그램 정보(320)는 프로그램의 개발자 혹은 개발사의 이름, 프로그램 이름, 프로그램의 버전, 프로그램의 종류 등의 정보를 포함할 수 있다. 프로그램에 대한 정보를 프로그램 데이터베이스(170)에 포함시킴으로써, 사용자에게 프로그램에서 발생되는 이벤트의 허용 여부를 질의할 때에 좀 더 자세한 정보를 줄 수 있으며, 이는 사용자가 의도대로 정확한 판단을 할 수 있도록 도와준다.The program information 320 included in the program database 170 may include information such as a name of a developer or a developer of a program, a program name, a version of a program, a type of a program, and the like. By including information about the program in the program database 170, it is possible to give the user more detailed information when inquiring whether to allow events occurring in the program, which helps the user to make accurate judgments as intended. .

예를 들어, 종래의 개인 방화벽에서는 프로그램의 통신 시도를 감지하고 이에 대해 사용자에게 허용 여부를 질의할 때, “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 서버로 접속을 시도했다는 것을 알 수 있으므로, 종래 기술과 대비하여 훨씬 쉽게 자신의 의도대로 허용 여부를 결정할 수 있을 것이다.For example, in a conventional personal firewall, when detecting a program's communication attempt and asking the user for permission, the “msn.exe file attempted a TCP connection to port 25 of the 192.168.0.100 server. Do you allow it? ”, But the user is queried based on the limited information such as“ If you use the program information 320 included in the program database and the detailed network communication event 400 information, In version 6.0 of the MSN Messenger program, the msn.exe file attempted a TCP connection to port 25 on the mail.microsoft.com server. Would you like to allow this? ”. Therefore, the user is told that the msn.exe file is an MSN messenger program developed by Microsoft, and that the file has not been tampered with by a virus and attempts to connect to the mail.microsoft.com server, which is a trusted domain address. As it can be seen, it will be much easier to determine whether to allow as compared to the prior art as intended.

프로그램 데이터베이스(170)를 이용하여 상기 보안 정책 판단부(130)가 프로그램(200)에서 발생된 이벤트에 대해 적용할 보안 정책을 판단하는 과정을 살펴보면, 프로그램 식별자 추출부(120)에서 추출된 프로그램 식별자를 이용하여 프로그램 데이터베이스(170)에서 상기 프로그램과 관련된 정보를 추출하고, 이벤트 검출부(110)에서 검출된 이벤트에 해당하는 보안 정책을 권장 보안 정책(330)에서 검색한다. 만약 검색된 보안 정책이 “허용” 또는 “차단”이면 이 보안 정책을 최종적으로 적용할 보안 정책으로 판단하며, 만약 검색된 보안 정책이 “질의”라면 사용자에게 이벤트의 허용 여부를 질의하고, 그 사용자의 선택 결과에 따라 최종적으로 상기 이벤트에 적용할 정책을 “허용” 또는 “차단”으로 결정한다.Looking at the process of determining the security policy to be applied to the event generated by the program 200 by the security policy determination unit 130 using the program database 170, the program identifier extracted from the program identifier extraction unit 120 Extracts information related to the program from the program database 170, and retrieves the security policy corresponding to the event detected by the event detector 110 from the recommended security policy 330. If the retrieved security policy is "Allow" or "Block", the security policy is determined to be the last to apply. If the detected security policy is "Query", the user is asked whether the event is allowed and the user's choice. Based on the result, the policy to be applied to the event is finally decided as "allow" or "block".

프로그램 데이터베이스(170)는 본 발명에 따르는 프로그램 데이터베이스를 이용한 보안 장치가 설치된 컴퓨터 내에 구비되는 형태도 가능하지만, 원격 호스트 상에 구비되어 상기 보안 정책 판단부(130)는 네트워크 통신 등의 수단을 이용하여 원격 호스트 상에 존재하는 프로그램 데이터베이스(170)에 접근하는 것도 가능하다. 구체적인 예로는 프로그램 데이터베이스(170)가 서비스 제공자의 서버에 존재하고, 보안 정책 판단부(130)는 TCP/IP 소켓 연결 또는 데이터베이스 관리 시스템의 원격 접속 등을 통하여 서버에 존재하는 프로그램 데이터베이스(170)를 접근할 수도 있다. 이러한 형태의 실시는 항상 서비스 제공자에 의해 구축된 최신의 프로그램 데이터베이스를 사용할 수 있다는 장점을 가진다.The program database 170 may be provided in a computer in which a security device using a program database according to the present invention is installed. However, the program database 170 is provided on a remote host so that the security policy determination unit 130 may use a network communication means. It is also possible to access the program database 170 residing on the remote host. As a specific example, the program database 170 exists in the server of the service provider, and the security policy determination unit 130 controls the program database 170 existing in the server through a TCP / IP socket connection or a remote connection of the database management system. You can also access it. This type of implementation has the advantage that it is always possible to use the latest program database built by the service provider.

바람직하게는 프로그램 데이터베이스를 이용한 보안 장치(100)는 지역 보안 정책 데이터베이스(160)을 더 포함한다. 지역 보안 정책 데이터베이스(160)는 상기 프로그램 데이터베이스(170)의 권장 보안 정책을 재정의(override)하거나 프로그램 데이터베이스(170)에 등록되지 않은 프로그램에 대해 지역 보안 정책을 추가하는 기능을 한다. 지역 보안 정책 데이터베이스(160)는 서비스 제공자에 의해 구축되어 사용자에게 배포되는 프로그램 데이터베이스(170)와 달리, 개별 컴퓨터마다 독립적으로 사용자와 사용 환경에 맞도록 설정되는 것이 바람직하다. 본 발명에 따른 프로그램 데이터베이스를 이용한 보안 장치는 알려진 프로그램의 목록과 상기 프로그램의 권장 보안 정책을 포함하는 프로그램 데이터베이스(170)만으로도 보편적인 관점에서 우수한 보안 장치를 구성할 수 있으나, 경우에 따라서는 개별 컴퓨터마다 프로그램 데이터베이스(170)의 보안 정책을 재정의하거나 새로운 프로그램의 보안 정책을 추가할 필요도 있을 것이며, 이때 지역 보안 정책 데이터베이스(160)가 사용된다.Preferably, the security device 100 using the program database further includes a regional security policy database 160. The regional security policy database 160 functions to override the recommended security policy of the program database 170 or add a local security policy for a program not registered in the program database 170. Unlike the program database 170, which is constructed by a service provider and distributed to a user, the local security policy database 160 is preferably set up to suit a user and a usage environment independently for each individual computer. The security device using the program database according to the present invention can constitute an excellent security device from a universal point of view only with a program database 170 including a list of known programs and a recommended security policy of the program. Each time, it may be necessary to redefine the security policy of the program database 170 or add a security policy of a new program, where the local security policy database 160 is used.

도 5는 본 발명의 바람직한 실시예를 설명하기 위한 지역 보안 정책 데이터베이스(160)의 예시도이다. 도 5를 참조하면, 지역 보안 정책 데이터베이스(160)는 프로그램 식별자(510)와 지역 보안 정책(520)을 포함하고, 바람직하게는 버전 연계(530) 설정을 더 포함한다. 지역 보안 정책(520)은 프로그램의 이벤트와 그 이벤트의 정책 정보를 포함한다.5 is an exemplary diagram of a regional security policy database 160 for describing a preferred embodiment of the present invention. Referring to FIG. 5, the regional security policy database 160 includes a program identifier 510 and a local security policy 520, and preferably further includes a version association 530 setting. Local security policy 520 includes an event of the program and policy information of that event.

프로그램 식별자(510)는 각 프로그램을 고유하게 식별할 수 있는 값으로 지 역 보안 정책 데이터베이스(160)의 인덱스 역할을 한다. 또한 프로그램 데이터베이스(170)의 프로그램 식별자(310)와 마찬가지로 각 프로그램 모듈에 해쉬 함수를 적용하여 구한 해쉬값인 것이 바람직하다.The program identifier 510 is a value that can uniquely identify each program and serves as an index of the local security policy database 160. In addition, like the program identifier 310 of the program database 170, it is preferable that the hash value is obtained by applying a hash function to each program module.

지역 보안 정책 데이터베이스(160)를 이용하여 프로그램 데이터베이스(170)의 권장 정책을 재정의하는 기능을 예를 들어 설명하면, 도 3에서 프로그램 식별자(310)가 E44F5인 프로그램의 타 프로세스 디버깅 이벤트의 정책은 “차단”이나, 도 5에서 프로그램 식별자(510)가 E44F5인 프로그램의 타 프로세스 디버깅의 정책은 “허용”이다. 이 경우 지역 보안 정책 데이터베이스(160)의 설정은 프로그램 데이터베이스(170)의 설정을 재정의하는 기능을 하며, 각 개별 사용자나 사용 환경에 맞도록 보안 정책을 설정할 수 있게 된다.For example, the function of redefining the recommended policy of the program database 170 using the local security policy database 160, the policy of other process debugging event of the program whose program identifier 310 is E44F5 is “ Blocking ", or the policy of other process debugging of the program whose program identifier 510 is E44F5 is" Allow ". In this case, the setting of the local security policy database 160 functions to override the setting of the program database 170, and the security policy can be set to suit each individual user or the use environment.

지역 보안 정책 데이터베이스(160)를 이용하여 프로그램 데이터베이스(170)에 등록되지 않은 프로그램에 대한 지역 보안 정책을 추가하는 기능을 예를 들어 설명하면, 도 5에서 프로그램 식별자가 FEB43인 프로그램은 프로그램 데이터베이스(170)에 등록되어 있지 않은 새로운 프로그램이며, 상기 프로그램의 네트워크 통신 이벤트에 대한 정책은 “허용”으로 설정되어 있다. 이와 같이 각 개별 사용자가 사용하는 새로운 프로그램에 대해서도 보안 정책을 추가적으로 설정할 수 있게 된다.For example, a function of adding a local security policy for a program not registered in the program database 170 using the local security policy database 160 will be described with reference to FIG. 5. ) Is a new program not registered, and the policy for the network communication event of the program is set to "allow". In this way, additional security policies can be set for new programs used by each individual user.

이러한 보안 정책의 재정의 및 추가 기능을 위해 보안 정책 판단부(130)는 이벤트 검출부(110)에서 검출된 이벤트와 프로그램 식별자 추출부(120)에서 추출된 프로그램 식별자를 검색 조건으로, 먼저 지역 보안 정책 데이터베이스(160)를 이용 하여 상기 이벤트에 적용할 보안 정책을 판단하고, 지역 보안 정책 데이터베이스(160)를 이용하여 보안 정책을 판단하지 못한 경우에만 프로그램 데이터베이스(170)를 이용하여 보안 정책을 판단하는 것이 바람직하다. 이러한 방식을 이용하여 사용자는 본 발명의 프로그램 데이터베이스를 이용한 보안 장치를 컴퓨터에 설치한 후에 아무런 초기 설정을 하지 않아도 보편적으로 권장되는 보안 정책을 바로 적용할 수 있을 뿐만 아니라, 사용자나 사용 환경에 따라 세부적인 설정을 변경하거나 추가할 수도 있는 것이다.In order to redefine and add such a security policy, the security policy determiner 130 may search the event detected by the event detector 110 and the program identifier extracted by the program identifier extractor 120 as a search condition. The security policy to be applied to the event is determined using the database 160, and the security policy is determined using the program database 170 only when the security policy is not determined using the local security policy database 160. desirable. By using this method, the user can immediately apply the generally recommended security policy without any initial setting after installing the security device using the program database of the present invention on the computer, and also depending on the user or the environment. You can also change or add additional settings.

버전 연계(530) 설정은 지역 보안 정책 데이터베이스(160)에 기 설정되어 있는 프로그램이 업데이트되더라도 새로 업데이트된 프로그램에도 기존 버전에 적용하던 보안 정책을 연계하여 적용할 수 있도록 해준다. 종래의 개인 방화벽은 동일한 프로그램의 여러 버전간 보안 정책 설정을 연계하는 것이 불가능하였으나, 본 발명에 따르면 프로그램 데이터베이스(170)를 이용하여 이러한 기능을 신뢰할 수 있는 방법으로 구현하는 것이 가능해진다.Version linkage (530) setting allows the security policy that was applied to the existing version to be applied to the newly updated program in conjunction with the existing security program even if a predetermined program is updated in the local security policy database 160. Conventional personal firewalls have not been able to link security policy settings between different versions of the same program. However, according to the present invention, it is possible to implement such functions in a reliable manner using the program database 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)에 존재하는지를 확인하고, 구 버전의 프로그램을 대상으로 설정된 지역 보안 정책을 새 버전의 프로그램을 대상으로도 연계하여 적용할 수 있게 된다.3 and 5, the operation of the version linking function will be described in detail. Referring to FIG. 5, a local security policy is set for a program whose program identifier 510 is E44F5, and version association 530 is set to "Yes". Referring to FIG. 3, the program whose program identifier 310 is E44F5 is MSN Messenger version 6.0. In this case, assuming that the user updates the MSN messenger installed in the computer from version 6.0 to version 7.0, the security policy determination unit 130 extracts the program identifier of the MSN messenger version 7.0 extracted from the program identifier extraction unit 120. The program identifiers for all versions of MSN Messenger can be extracted by searching the program database 170 using the 7526D, and the old version settings exist in the local security policy database 160 using the extracted program identifiers. In addition, local security policies for older versions of the program can be linked to and applied to newer versions of the program.

특히 본 발명에 따른 버전 연계 기능은 프로그램의 설치 경로와 같은 신뢰할 수 없는 정보에 근거한 종래의 기술과 달리, 프로그램의 모듈에 해쉬 함수를 적용하여 얻은 해쉬값 등을 이용한 프로그램 식별자를 이용함으로써 바이러스 등에 의해 파일이 변조된 것과 실제로 업데이트가 된 것을 정확하게 구분할 수 있는 장점이 있다. 만약 정상적인 업데이트가 아닌, 바이러스 등에 의하여 파일이 변조된 경우에는 상기 프로그램 모듈을 대상으로 구한 해쉬값이 프로그램 데이터베이스(170)에 존재하지 않거나 해킹툴로 판정되어 정상적인 업데이트와 구분을 할 수 있게 된다.In particular, the version linking function according to the present invention is different from the conventional technology based on unreliable information such as the installation path of a program. The advantage is that you can tell exactly which files have been tampered with and are actually updated. If the file is modified by a virus or the like instead of a normal update, the hash value obtained for the program module does not exist in the program database 170 or is determined as a hacking tool to distinguish it from the normal update.

바람직하게는 프로그램 데이터베이스를 이용한 보안장치(100)는 기본 보안 정책 데이터베이스(180)를 더 포함한다. 기본 보안 정책 데이터베이스(180)는 상기 프로그램 식별자 추출부(120)에서 추출된 프로그램 식별자에 해당하는 프로그램이 지역 보안 정책 데이터베이스(160) 및 프로그램 데이터베이스(170)에 모두 등록되어 있지 않을 때 기본적으로 적용할 보안 정책을 저장한다. 기본 보안 정책 데이터베이스(180)는 본 발명의 프로그램 데이터베이스를 이용한 보안 장치가 컴퓨터에 설치될 때 보편적으로 타당한 기본값을 초기값으로 가질 수도 있으며, 사용자가 임 의로 설정할 수도 있다. 기본 보안 정책 데이터베이스(180)의 설정은 각 사용자나 사용환경마다 요구되는 보안 강도에 따라 설정이 가능하다. 예를 들어, 높은 수준의 보안이 요구된다면 기본 정책을 “차단” 혹은 “질의”로 설정할 수 있을 것이며, 낮은 수준의 보안만으로도 충분하다면 “허용”으로 설정할 수 있을 것이다.Preferably, the security device 100 using the program database further includes a basic security policy database 180. The basic security policy database 180 is basically applied when a program corresponding to the program identifier extracted by the program identifier extracting unit 120 is not registered in both the local security policy database 160 and the program database 170. Save the security policy. The basic security policy database 180 may have a universally reasonable default value as an initial value when the security device using the program database of the present invention is installed in a computer, or may be arbitrarily set by a user. The basic security policy database 180 can be set according to the security strength required for each user or environment. For example, if a high level of security is required, the default policy can be set to "block" or "query", and if a low level of security is sufficient, it can be set to "allow".

도 6은 본 발명의 바람직한 실시예를 설명하기 위한 기본 정책 데이터베이스의 예시도이다. 도 6을 참조하면, 기본 보안 정책 데이터베이스(180)에 포함된 기본 보안 정책(610)은 이벤트와 그에 대한 정책을 포함한다. 예를 들어, 임의의 프로그램이 네트워크 통신을 시도하였는데, 해당 프로그램이 지역 보안 정책 데이터베이스(160) 및 프로그램 데이터베이스(170)에 등록되어 있지 않은 경우, 기본 보안 정책 데이터베이스(180)에서 네트워크 통신 이벤트에 대한 정책을 검색한다. 이 경우, 도 6의 예를 참고하면 네트워크 통신 이벤트에 적용할 적용할 정책은 “질의”가 된다.6 is an exemplary diagram of a basic policy database for explaining a preferred embodiment of the present invention. Referring to FIG. 6, the basic security policy 610 included in the basic security policy database 180 includes an event and a policy thereof. For example, if a program attempted network communication and the program is not registered in the local security policy database 160 and the program database 170, then the default security policy database 180 may be responsible for network communication events. Retrieve the policy. In this case, referring to the example of FIG. 6, the policy to be applied to the network communication event is “query”.

보안 정책 판단부(130)는 프로그램 식별자 추출부(120)에서 추출된 프로그램 식별자를 이용하여 지역 보안 정책 데이터베이스(160) 및 프로그램 데이터베이스(170)로부터 이벤트 검출부(110)에서 검출된 이벤트에 대해 적용할 보안 정책을 판단하지 못한 경우, 기본 보안 정책 데이터베이스(180)를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단한다.The security policy determiner 130 may apply the event detected by the event detector 110 from the local security policy database 160 and the program database 170 by using the program identifier extracted by the program identifier extractor 120. If the security policy is not determined, the security policy to be applied to the event is determined by using the basic security policy database 180.

기본 보안 정책 데이터베이스(180)는 별도의 설정 가능한 파일이나 데이터베이스 관리 시스템(DBMS)으로 구현될 수도 있으나, 보안 정책 판단부(130)를 구현하는 프로그램 코드의 일부분으로 구현될 수도 있다.The basic security policy database 180 may be implemented as a separate configurable file or a database management system (DBMS), or may be implemented as a part of program code for implementing the security policy determination unit 130.

바람직하게는 프로그램 데이터베이스를 이용한 보안 장치(100)는 프로그램 데이터베이스 업데이트부(140)를 더 포함한다. 프로그램 데이터베이스 업데이트부(140)는 주기적으로 혹은 사용자의 수동 요청에 의하여 사용자 컴퓨터의 프로그램 데이터베이스(170)를 최신 버전으로 업데이트한다. 바람직하게는 서비스 제공자가 프로그램 데이터베이스를 구축하고, 이를 서버(미도시)에 등록하면 프로그램 데이터베이스 업데이트부(140)는 상기 서버로부터 프로그램 데이터베이스를 다운로드 받아, 각 개별 컴퓨터의 프로그램 데이터베이스를 업데이트하여 항상 최신의 프로그램 데이터베이스를 유지하도록 한다. 프로그램 데이터베이스의 업데이트는 매번 전체 프로그램 데이터베이스를 다운로드 받아 수행될 수도 있을 것이며, 증분(incremental) 업데이트 방식으로 진행될 수도 있을 것이다. 이와 관련된 기술은 당업자에게 널리 알려져 있으므로 자세한 설명은 생략한다.Preferably, the security device 100 using the program database further includes a program database updater 140. The program database updater 140 updates the program database 170 of the user computer to the latest version periodically or at the user's manual request. Preferably, if the service provider constructs a program database and registers it in a server (not shown), the program database updater 140 downloads the program database from the server, updates the program database of each individual computer, and is always up-to-date. Maintain a program database. The update of the program database may be performed by downloading the entire program database each time, or may be performed in an incremental update manner. Since the related art is well known to those skilled in the art, a detailed description thereof will be omitted.

이하 도 2를 참조하여 프로그램 데이터베이스를 이용한 보안 방법에 대하여 상세히 설명한다. 설명에 있어서 상기한 설명과 중복되는 부분에 대한 설명은 생략한다.Hereinafter, a security method using a program database will be described in detail with reference to FIG. 2. In the description, the description of the parts overlapping with the above description will be omitted.

도 2는 본 발명의 바람직한 실시예에 따른 프로그램 데이터베이스를 이용한 보안 방법의 흐름도이다. 2 is a flowchart of a security method using a program database according to a preferred embodiment of the present invention.

프로그램 데이터베이스 구축 단계(S110)는 알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스(170)를 구축한다.The program database building step S110 establishes a program database 170 that stores a program identifier that can uniquely identify each program and a recommended security policy for each program for known programs.

이벤트 검출 단계(S150)는 프로그램(200)에서 발생되는 보안과 관련된 이벤 트를 검출한다.Event detection step (S150) detects events related to security generated in the program (200).

프로그램 식별자 추출 단계(S160)는 상기 이벤트 검출 단계(S150)에서 검출된 이벤트를 발생시킨 프로그램을 고유하게 식별할 수 있는 프로그램 식별자를 추출한다.The program identifier extracting step S160 extracts a program identifier that can uniquely identify the program that generated the event detected in the event detecting step S150.

보안 정책 판단 단계(S170)는 상기 이벤트 검출 단계(S150)에서 검출된 이벤트와 상기 프로그램 식별자 추출 단계(S160)에서 추출된 프로그램 식별자를 검색 조건으로 프로그램 데이터베이스(170)를 검색하여 상기 이벤트에 적용할 보안 정책을 판단한다.The security policy determining step S170 may search the program database 170 based on the search condition and apply the event detected in the event detecting step S150 and the program identifier extracted in the program identifier extracting step S160 to apply to the event. Determine your security policy.

이벤트 처리 단계(S180)는 상기 보안 정책 판단 단계(S170)에서 판단된 보안 정책을 이용하여 상기 이벤트를 허용 또는 차단하는 처리를 수행한다.The event processing step (S180) performs a process of allowing or blocking the event using the security policy determined in the security policy determination step (S170).

바람직하게는 지역 보안 정책 데이터베이스 설정 단계(S130)를 더 포함하며, 상기 프로그램 데이터베이스 구축 단계(S110)에서 구축된 프로그램 데이터베이스(170)의 보안 정책을 재정의하거나 프로그램 데이터베이스(170)에 등록되지 않은 프로그램을 추가한다. 이 때 보안 정책 판단 단계(S170)는 상기 이벤트 검출 단계(S150)에서 검출된 이벤트와 상기 프로그램 식별자 추출 단계(S160)에서 추출된 프로그램 식별자를 검색 조건으로 먼저 지역 보안 정책 데이터베이스(160)를 이용하여 적용할 보안 정책을 판단하고, 지역 보안 정책 데이터베이스(160)를 이용하여 보안 정책을 판단하지 못한 경우에만 프로그램 데이터베이스(170)를 이용하여 보안 정책을 판단하는 것이 바람직하다.Preferably, the method further includes setting a local security policy database step S130, and redefining the security policy of the program database 170 established in the program database building step S110 or not registering the program in the program database 170. Add. At this time, the security policy determination step (S170) is based on the event detected in the event detection step (S150) and the program identifier extracted in the program identifier extraction step (S160) using the local security policy database 160 as a search condition. It is preferable to determine the security policy to be applied and to determine the security policy using the program database 170 only when the security policy cannot be determined using the local security policy database 160.

바람직하게는 기본 보안 정책 데이터베이스 설정 단계(S140)를 더 포함하며, 상기 프로그램 식별자 추출 단계(S160)에서 추출된 프로그램 식별자에 해당하는 프로그램이 지역 보안 정책 데이터베이스(160) 및 프로그램 데이터베이스(170)에 등록되어 있지 않을 때 기본적으로 적용할 보안 정책을 설정한다. 이 때 보안 정책 판단 단계(S170)는 프로그램 식별자 추출 단계(S160)에서 추출된 프로그램 식별자를 이용하여 지역 보안 정책 데이터베이스(160) 및 프로그램 데이터베이스(170)로부터 이벤트 검출 단계(S150)에서 검출된 이벤트에 대해 적용할 보안 정책을 판단하지 못한 경우, 기본 보안 정책 데이터베이스(180)를 이용하여 상기 이벤트에 대해 적용할 보안 정책을 판단한다Preferably, the method further includes a basic security policy database setting step (S140), wherein a program corresponding to the program identifier extracted in the program identifier extracting step (S160) is registered in the local security policy database 160 and the program database 170. Set the security policy to apply by default when it is not. At this time, the security policy determination step S170 is based on the event detected in the event detection step S150 from the local security policy database 160 and the program database 170 using the program identifier extracted in the program identifier extraction step S160. If the security policy to be applied is not determined, the security policy to be applied to the event is determined using the basic security policy database 180.

바람직하게는 프로그램 데이터베이스 업데이트 단계(S120)를 더 포함하며, 원격 서버에 존재하는 프로그램 데이터베이스를 다운로드 받아 컴퓨터 내에 저장된 프로그램 데이터베이스(170)를 최신 버전으로 업데이트한다. Preferably, the program database update step S120 is further included. The program database 170 existing in the remote server is downloaded and the program database 170 stored in the computer is updated to the latest version.

지금까지 본 발명을 바람직한 실시예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시예에 한정되는 것은 아니며, 아래의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미치는 것으로 이해되어야 한다.Although the present invention has been described in detail with reference to preferred embodiments, the present invention is not limited to the above-described embodiments, and the present invention belongs to the present invention without departing from the gist of the present invention as claimed in the following claims. It should be understood that the technical spirit of the present invention to the extent that various changes or modifications can be made by those skilled in the art.

도 1은 본 발명의 바람직한 실시예에 따른 프로그램 데이터베이스를 이용한 보안 장치의 블록도,1 is a block diagram of a security device using a program database according to a preferred embodiment of the present invention;

도 2는 본 발명의 바람직한 실시예에 따른 프로그램 데이터베이스를 이용한 보안 방법의 흐름도,2 is a flowchart of a security method using a program database according to a preferred embodiment of the present invention;

도 3은 본 발명의 바람직한 실시예를 설명하기 위한 프로그램 데이터베이스의 예시도,3 is an exemplary diagram of a program database for explaining a preferred embodiment of the present invention;

도 4는 도 3의 네트워크 통신 이벤트 및 정책(333)의 세부적 조건의 예를 나타낸 예시도,4 is an exemplary diagram showing an example of detailed conditions of the network communication event and policy 333 of FIG.

도 5는 본 발명의 바람직한 실시예를 설명하기 위한 지역 보안 정책 데이터베이스의 예시도,5 is an exemplary diagram of a regional security policy database for explaining a preferred embodiment of the present invention;

도 6은 본 발명의 바람직한 실시예를 설명하기 위한 기본 정책 데이터베이스의 예시도이다.6 is an exemplary diagram of a basic policy database for explaining a preferred embodiment of the present invention.

< 도면의 주요 참조부호에 대한 설명 ><Description of Major Reference Marks in Drawings>

100: 프로그램 데이터베이스를 이용한 보안 장치100: security device using the program database

Claims (3)

컴퓨터에 설치되어 프로그램의 작동을 통제하는 보안 장치로서,A security device installed on your computer that controls the operation of a program. 알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스;A program database that stores a program identifier that can uniquely identify each program for known programs and a recommended security policy for each program; 컴퓨터에서 실행되는 프로그램의 이벤트를 검출하는 이벤트 검출부;An event detector for detecting an event of a program executed in a computer; 상기 이벤트 검출부에서 검출된 이벤트를 발생시킨 프로그램의 식별자를 추출하는 프로그램 식별자 추출부;A program identifier extractor configured to extract an identifier of a program that generated the event detected by the event detector; 상기 프로그램 식별자 추출부에서 추출된 프로그램 식별자와 상기 이벤트 검출부에서 검출된 이벤트를 검색 조건으로 프로그램 데이터베이스를 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 보안 정책 판단부;A security policy determination unit that searches a program database based on a search condition of a program identifier extracted by the program identifier extraction unit and an event detected by the event detection unit, and determines a security policy to be applied to the event; 상기 보안 정책 판단부의 보안 정책 판단 결과에 따라 상기 이벤트를 허용 및 차단하는 이벤트 처리부;An event processing unit allowing and blocking the event according to a security policy determination result of the security policy determination unit; 를 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 환경을 위한 가상 방화 장치.Virtual fire protection device for a cloud computing environment comprising a. 제 1항에 있어서,The method of claim 1, 상기 프로그램 데이터베이스의 권장 보안 정책을 재정의하거나 프로그램 데이터베이스에 저장되지 않은 프로그램의 지역 보안 정책을 추가하기 위한 지역 보안 정책 데이터베이스;A local security policy database for overriding a recommended security policy of the program database or for adding a local security policy of a program not stored in the program database; 를 더 포함하고,More, 상기 지역 보안 정책 데이터베이스는 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 상기 프로그램의 지역 보안 정책을 포함하고,The regional security policy database includes a program identifier capable of uniquely identifying a program and a local security policy of the program, 상기 보안 정책 판단부는 상기 프로그램 식별자 추출부에서 추출된 프로그램 식별자와 상기 이벤트 검출부에서 검출된 이벤트를 검색 조건으로 지역 보안 정책 데이터베이스를 상기 프로그램 데이터베이스보다 먼저 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 것을 특징으로 하는 클라우드 컴퓨팅 환경을 위한 가상 방화 장치.The security policy determiner determines a security policy to be applied to the event by searching a local security policy database before the program database based on a program condition extracted from the program identifier extractor and an event detected by the event detector. Virtual fire protection device for a cloud computing environment, characterized in that. 컴퓨터에 설치되어 프로그램의 작동을 통제하는 보안 방법으로서,A security method installed on your computer that controls the operation of a program. 알려진 프로그램들에 대해 각 프로그램을 고유하게 식별할 수 있는 프로그램 식별자와 각 프로그램의 권장 보안 정책을 저장하는 프로그램 데이터베이스를 구축하는 프로그램 데이터베이스 구축 단계;A program database construction step of constructing a program database for storing a known program identifier and a recommended security policy of each program for each known program; 컴퓨터에서 실행되는 프로그램의 이벤트를 검출하는 이벤트 검출 단계;An event detecting step of detecting an event of a program executed in the computer; 상기 이벤트 검출 단계에서 검출된 이벤트를 발생시킨 프로그램의 식별자를 추출하는 프로그램 식별자 추출 단계;A program identifier extracting step of extracting an identifier of a program that generated the event detected in the event detecting step; 상기 프로그램 식별자 추출 단계에서 추출된 프로그램 식별자와 상기 이벤트 검출 단계에서 검출된 이벤트를 검색 조건으로 프로그램 데이터베이스를 검색하여 상기 이벤트에 대해 적용할 보안 정책을 판단하는 보안 정책 판단 단계;A security policy determination step of determining a security policy to be applied to the event by searching a program database based on a search condition of the program identifier extracted in the program identifier extraction step and the event detected in the event detection step; 상기 보안 정책 판단 단계의 보안 정책 판단 결과에 따라 상기 이벤트를 허 용 및 차단하는 이벤트 처리 단계;An event processing step of allowing and blocking the event according to a security policy determination result of the security policy determination step; 를 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 환경을 위한 가상 방화 방법.Virtual fire prevention method for a cloud computing environment comprising a.
KR1020090094081A 2009-10-01 2009-10-01 Virtual firewall system for cloud computing environment and method thereof KR20110036420A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090094081A KR20110036420A (en) 2009-10-01 2009-10-01 Virtual firewall system for cloud computing environment and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090094081A KR20110036420A (en) 2009-10-01 2009-10-01 Virtual firewall system for cloud computing environment and method thereof

Publications (1)

Publication Number Publication Date
KR20110036420A true KR20110036420A (en) 2011-04-07

Family

ID=44044370

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090094081A KR20110036420A (en) 2009-10-01 2009-10-01 Virtual firewall system for cloud computing environment and method thereof

Country Status (1)

Country Link
KR (1) KR20110036420A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222183A (en) * 2011-04-28 2011-10-19 奇智软件(北京)有限公司 Mobile terminal software package safety detection method and system thereof
KR101454837B1 (en) * 2013-04-22 2014-10-28 한국인터넷진흥원 Hypervisor security API module and hypervisor-based virtual network intrusion prevention system
KR101454838B1 (en) * 2013-04-25 2014-10-28 한국인터넷진흥원 Cloud enterprise security management system for interworking of Hypervisor-based virtual network and host intrusion prevention system
KR20190090037A (en) * 2016-12-21 2019-07-31 쓰레트 스택, 인코퍼레이티드 Systems and methods for cloud-based operating system event and data access monitoring

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222183A (en) * 2011-04-28 2011-10-19 奇智软件(北京)有限公司 Mobile terminal software package safety detection method and system thereof
KR101454837B1 (en) * 2013-04-22 2014-10-28 한국인터넷진흥원 Hypervisor security API module and hypervisor-based virtual network intrusion prevention system
KR101454838B1 (en) * 2013-04-25 2014-10-28 한국인터넷진흥원 Cloud enterprise security management system for interworking of Hypervisor-based virtual network and host intrusion prevention system
KR20190090037A (en) * 2016-12-21 2019-07-31 쓰레트 스택, 인코퍼레이티드 Systems and methods for cloud-based operating system event and data access monitoring

Similar Documents

Publication Publication Date Title
US7761618B2 (en) Using a USB host controller security extension for controlling changes in and auditing USB topology
US9767280B2 (en) Information processing apparatus, method of controlling the same, information processing system, and information processing method
EP3430557B1 (en) System and method for reverse command shell detection
EP3365828B1 (en) Methods for data loss prevention from malicious applications and targeted persistent threats
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
US8949987B2 (en) Computer security process monitor
US7694328B2 (en) Systems and methods for secure client applications
US9015829B2 (en) Preventing and responding to disabling of malware protection software
CN117171743A (en) Real-time detection and protection of steganography in kernel mode
US20140215637A1 (en) Security arrangements for extended usb protocol stack of a usb host system
US20060095965A1 (en) Network security device and method for protecting a computing device in a networked environment
US20100037317A1 (en) Mehtod and system for security monitoring of the interface between a browser and an external browser module
WO2015001969A1 (en) Unauthorized-access detection system and unauthorized-access detection method
US20220417255A1 (en) Managed detection and response system and method based on endpoints
KR20100126617A (en) Security system based on a program database and method thereof
KR20110036420A (en) Virtual firewall system for cloud computing environment and method thereof
US20050086512A1 (en) Worm blocking system and method using hardware-based pattern matching
KR100704721B1 (en) method for computer protection with real-time monitoring and thereby computer and thereby system
US8640242B2 (en) Preventing and detecting print-provider startup malware
US20200218832A1 (en) Automatic Initiation of Execution Analysis
JP6623656B2 (en) Communication control device, communication control method, and communication control program
KR20220097037A (en) Data leak prevention system
Lam et al. Secure Mobile Code Execution Service.

Legal Events

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