KR20050083204A - Flexible network security system and method to permit trustful process - Google Patents

Flexible network security system and method to permit trustful process Download PDF

Info

Publication number
KR20050083204A
KR20050083204A KR1020030101775A KR20030101775A KR20050083204A KR 20050083204 A KR20050083204 A KR 20050083204A KR 1020030101775 A KR1020030101775 A KR 1020030101775A KR 20030101775 A KR20030101775 A KR 20030101775A KR 20050083204 A KR20050083204 A KR 20050083204A
Authority
KR
South Korea
Prior art keywords
port
program
registered
information
firewall
Prior art date
Application number
KR1020030101775A
Other languages
Korean (ko)
Other versions
KR100522138B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34737959&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20050083204(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 주식회사 잉카인터넷 filed Critical 주식회사 잉카인터넷
Priority to KR10-2003-0101775A priority Critical patent/KR100522138B1/en
Priority to JP2006546833A priority patent/JP4290198B2/en
Priority to PCT/KR2004/003456 priority patent/WO2005064842A1/en
Priority to US10/582,127 priority patent/US8544078B2/en
Publication of KR20050083204A publication Critical patent/KR20050083204A/en
Application granted granted Critical
Publication of KR100522138B1 publication Critical patent/KR100522138B1/en
Priority to US13/924,504 priority patent/US10218676B2/en
Priority to US16/267,681 priority patent/US10972432B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 신뢰할 수 있는 프로세스를 허용하는 유연화된 네트워크 보안 시스템 및 그 방법에 관한 것이다.The present invention is directed to a flexible network security system and method that allows for reliable processes.

본 발명에 따르면, 네트워크 상에서 통신하기 위한 프로그램이 사용하는 서버 포트 정보, 프로토콜 정보 및 오픈/클로우즈(Open/Close) 정보를 추출하는 포트 감시 수단; 네트워크 사이에서 통신되는 정보의 제한 조건을 설정함으로써, 네트워크에 연결된 컴퓨터의 해당 네크워크 연결을 보호하는 방화벽(Firewall) 수단; 상기 방화벽 수단에서 통신을 허용하는 프로그램에 대한 정보를 추출하여 이를 등록하는 내부 허용 프로그램 저장 수단; 상기 내부 허용 프로그램 저장 수단에 등록되어 있는 프로그램이 사용하는 오픈된 서버 포트에 대한 정보를 추출하여 등록하는 내부 허용 포트 저장 수단; 및 인바운드(Inbound)된 트래픽 패킷의 목적지 포트가 상기 내부 허용 포트 저장 수단에 등록되어 있는지 여부를 판단하여, 등록되지 아니한 포트이면 상기 방화벽 수단으로 전송하고, 등록되어 있는 포트이면 해당 패킷을 직접 해당 프로그램에 전송하는 방화벽 유연화 수단; 을 포함하는 것을 특징으로 하는 신뢰할 수 있는 프로세스를 허용하는 네트워크 보안 시스템이 제공된다.According to the present invention, there is provided an apparatus comprising: port monitoring means for extracting server port information, protocol information, and open / close information used by a program for communicating on a network; Firewall means for protecting a corresponding network connection of a computer connected to the network by setting a restriction condition of information communicated between the networks; Internally allowed program storage means for extracting and registering information on a program allowing communication in the firewall means; Internal permission port storage means for extracting and registering information on an open server port used by a program registered in the internal permission program storage means; And determining whether the destination port of the inbound traffic packet is registered in the internal allowed port storage means, and if the port is not registered, transmits it to the firewall means, and if the port is registered, directly sends the packet to the corresponding program. Firewall softening means for transmitting to; A network security system is provided that allows for a reliable process comprising: a.

Description

신뢰할 수 있는 프로세스를 허용하는 유연화된 네트워크 보안 시스템 및 그 방법 {Flexible network security system and method to permit trustful process} Flexible network security system and method to permit trusted process

본 발명은 신뢰할 수 있는 프로세스를 허용하는 유연화된 네트워크 보안 시스템 및 그 방법에 관한 것으로서, 보다 상세하게는, 인터넷 연결 방화벽에 통신이 허용된 프로그램이 사용하는 포트를 자동으로 추가 및 제거를 하게 함으로써, 전문 사용자가 아닌 일반 사용자들도 쉽게 우수한 기능의 인터넷 연결 방화벽을 사용할 수 있게끔 하는 네트워크 보안 시스템 및 그 방법에 관한 것이다.The present invention relates to a flexible network security system and method for allowing a reliable process, and more particularly, by automatically adding and removing ports used by a program that is allowed to communicate in the Internet connection firewall, The present invention relates to a network security system and a method for allowing non-professional users to easily use a high-performance Internet connection firewall.

방화벽(Firewall)은 네트워크와 외부 세계 사이의 보호 경계선과 같은 보안 시스템이다.A firewall is a security system like a protective boundary between a network and the outside world.

도 1은 마이크로소프트(Microsoft) 사에서 윈도우 엑스피(Windows XP) 버젼부터 기본적으로 제공하는 해당 컴퓨터와 네트워크를 보호하기 위한 인터넷 연결 방화벽(ICF : Internet Connection Firewall)을 보여주는 도면이다.FIG. 1 is a diagram illustrating an Internet Connection Firewall (ICF) for protecting a computer and a network, which are basically provided from a Microsoft Windows XP version.

이러한 인터넷 연결 방화벽은 네트워크 또는 소규모 네트워크와 인터넷 사이에 통신되는 정보의 제한 조건을 설정하는데 사용되는 소프트웨어로서, 인터넷에 연결된 단일 컴퓨터의 해당 인터넷 연결을 보호한다.This Internet connection firewall is software used to set restrictions on the information communicated between a network or small network and the Internet, and protects the Internet connection of a single computer connected to the Internet.

한편, 종래의 인터넷 연결 방화벽은 '상태 저장' 방화벽이다. 상태 저장 방화벽이라 함은 해당 경로를 통과하는 통신의 모든 부분을 모니터링하고, 처리되는 각 메시지의 원본, 대상 주소 및 포트를 검사하는 방화벽이다.Meanwhile, the conventional Internet connection firewall is a "stateful" firewall. Stateful firewalls are firewalls that monitor all parts of communication through the path and examine the source, destination address and port of each message being processed.

인터넷 연결 방화벽은 아웃바운드(Outbound) 트래픽은 허용하고, 인바운드(Inbound) 트래픽은 차단함으로써, 네트워크 상에서 외부로부터 보이지 않게 하기 때문에 개인용 PC 방화벽에서는 이 기능을 스텔쓰(Stealth) 기능이라고도 한다.This feature is sometimes called the stealth feature in personal PC firewalls because Internet Connection Firewall allows outbound traffic and blocks inbound traffic, making it invisible from the outside on the network.

인터넷 연결 방화벽의 동작을 간략하게 소개하면, 다음과 같다.Briefly, the operation of the Internet connection firewall is as follows.

인터넷 연결 방화벽은 원하지 않는 트래픽이 개인 연결로 입력되지 않도록 하기 위하여 인터넷 연결 방화벽 컴퓨터에서 시작된 트래픽을 추적하여 모든 통신 테이블을 보관한다. 그리고, 인터넷의 모든 인바운드 트래픽은 테이블에 있는 항목과 비교된다. 인바운드 인터넷 트래픽은 테이블에 일치하는 항목이 있어서 통신 교환이 사용자의 컴퓨터에서 시작되었음을 입증하는 경우에만 네트워크 컴퓨터에 연결된다.Internet Connection Firewall keeps a table of all communications by tracking traffic originating from the Internet Connection Firewall computer to prevent unwanted traffic from entering private connections. All inbound traffic on the Internet is then compared with the entries in the table. Inbound Internet traffic connects to the network computer only if there is a match in the table, proving that the communication exchange originated from the user's computer.

인터넷 연결 방화벽은 인터넷 접속이 방화벽 허용 목록에서 허용되지 아니한 것이면, 연결이 끊어지도록 한다. 따라서, 원하지 않는 통신을 자동으로 취소함으로써, 포트 스캐닝(Port Scanning)과 같은 일반적인 해킹을 차단할 수 있게 된다.Internet Connection Firewall allows you to disconnect if your Internet connection is not allowed in the firewall whitelist. Thus, by automatically canceling unwanted communication, it is possible to block general hacking such as port scanning.

가령, 이러한 예를 알아 보기 위해서, 인터넷 연결 방화벽 컴퓨터를 리눅스(Linux)의 nmap 스캐닝 툴로 스캔을 하면, 인터넷 연결 방화벽 컴퓨터가 모든 스캔 동작에 응답하지 않기 때문에 nmap은 모든 스캔에 대하여 타겟 컴퓨터가 네트워크 상에 존재하지 않는 것으로 판단하여, 'Host Seems Down'이라는 메시지를 출력한다. 이와 같이 인터넷 연결 방화벽은 원하지 않는 통신을 자동으로 취소하여 포트 스캐닝과 같은 일반적인 해킹을 차단한다.For example, to illustrate this example, if you scan an Internet-facing firewall computer with Linux's nmap scanning tool, nmap will fail for every scan because the Internet-facing firewall computer does not respond to all scan operations. It determines that it does not exist at, and prints 'Host Seems Down' message. As such, Internet Connection Firewall automatically cancels unwanted communications to block common hacks such as port scanning.

한편, 웹 서비스를 제공하는 컴퓨터에 인터넷 연결 방화벽이 설치되면, 이러한 인터넷 연결 방화벽이 인바운드 트래픽을 차단하기 때문에, 인터넷 연결이 끊겨 정상적인 웹 서비스를 제공할 수 없게 된다. 이를 해결하기 위하여 인터넷 연결 방화벽은 서비스가 사용하는 80번 포트로 인바운드 트래픽을 허용함으로써, 정상적인 웹 서비스를 제공할 수 있다.On the other hand, if the Internet connection firewall is installed on a computer that provides a web service, since the Internet connection firewall blocks inbound traffic, the Internet connection is broken, and thus the normal web service cannot be provided. To solve this problem, Internet connection firewall can provide normal web service by allowing inbound traffic to port 80 used by service.

이와 같이 인터넷 연결 방화벽은 서비스와 프로토콜을 추가함으로써, 정상적인 서비스를 사용할 수 있고, 개인용 PC 방화벽에서도 이와 같은 기능들을 제공한다.As such, Internet Connection Firewall can use normal services by adding services and protocols, and personal PC firewalls provide these functions.

한편, 이러한 인터넷 연결 방화벽에 있어서의 문제점을 살펴 보면, 다음과 같다.On the other hand, look at the problems in the Internet connection firewall, as follows.

웹 서버, FTP(File Transfer Protocol) 서버, 텔넷(Telnet) 서버, P2P(Peer to Peer) 프로그램, 원격 제어 프로그램, 메신저 프로그램 등의 최근의 인터넷 사용 소프트웨어들은 서비스를 제공하는 서버로 동작한다. 그리고, 이와 같이 서버로 동작하는 소프트웨어들의 수는 급격하게 증가하고 있으며, 일반 사용자들도 이러한 소프트웨어를 많이 사용하고 있는 추세이다.Recently, Internet-enabled software such as a web server, a file transfer protocol (FTP) server, a telnet server, a peer to peer program, a remote control program, a messenger program, and the like act as a server providing a service. In addition, the number of software operating as a server is increasing rapidly, and the general users are also using this software a lot.

그러나, 대부분의 사용자들은 위와 같이 서버로 동작하는 소프트웨어들이 정상적으로 작동하지 않기 때문에 인터넷 연결 방화벽이나 개인용 PC 방화벽의 스텔쓰 기능 사용을 기피하고 있다. 물론, 도 2와 같이 윈도우즈 엑스피에서는 서버로 동작하는 소프트웨어가 사용하는 포트, 프로토콜, 아이피(IP : Internet Protocol) 등을 추가함으로써, 해당 소프트웨어를 정상적으로 사용할 수 있다. 그러나, 전문가가 아닌 일반 사용자들이 이를 설정하기에는 어려운 것이 또한 현실이다. 왜냐하면, 전문가가 아닌 일반 사용자들이 서버로 동작하는 포트를 알아내기는 힘들기 때문이다.However, most users are reluctant to use the stealth feature of the Internet connection firewall or personal PC firewall because the server-based software does not work properly. Of course, as shown in FIG. 2, by adding a port, a protocol, an IP (IP: Internet Protocol) used by software operating as a server, the corresponding software can be used normally. However, the reality is that it is also difficult for non-expert users to set this up. This is because it is difficult for non-expert users to figure out which port acts as the server.

또한, 이러한 소포트웨어들의 버젼이 업그레이드될 때마다 서버로 사용하던 포트는 변경될 수 있기 때문에 불의에 정상적인 서비스가 중단될 수도 있다.In addition, since the port used as a server can be changed every time a version of these software is upgraded, a normal service may be unexpectedly interrupted.

이와 같이 여러가지 이유로 말미암아 인터넷 연결 방화벽은 개인용 PC 방화벽의 스텔쓰 기능이 우수함에도 불구하고, 일반 사용자들이 사용하기에는 어렵다는 문제점이 있다.For this reason, the Internet connection firewall has a problem that even though the stealth function of the personal PC firewall is excellent, it is difficult for general users to use.

상기와 같은 종래 기술의 문제점을 해결하기 위한 본 발명의 목적은 인터넷 연결 방화벽에 통신이 허용된 프로그램이 사용하는 포트를 자동으로 추가 및 제거를 하게 함으로써, 전문 사용자가 아닌 일반 사용자들도 쉽게 우수한 기능의 인터넷 연결 방화벽을 사용할 수 있게끔 하는 네트워크 보안 시스템 및 그 방법을 제공하기 위한 것이다. An object of the present invention for solving the problems of the prior art as described above is to automatically add and remove ports used by the program allowed to communicate in the Internet connection firewall, so that ordinary users rather than professional users can easily To provide a network security system and method for enabling the use of Internet connection firewall.

상기한 목적을 달성하기 위하여 본 발명에 따르면, 네트워크 상에서 통신하기 위한 프로그램이 사용하는 서버 포트 정보, 프로토콜 정보 및 오픈/클로우즈(Open/Close) 정보를 추출하는 포트 감시 수단; 네트워크 사이에서 통신되는 정보의 제한 조건을 설정함으로써, 네트워크에 연결된 컴퓨터의 해당 네크워크 연결을 보호하는 방화벽(Firewall) 수단; 상기 방화벽 수단에서 통신을 허용하는 프로그램에 대한 정보를 추출하여 이를 등록하는 내부 허용 프로그램 저장 수단; 상기 내부 허용 프로그램 저장 수단에 등록되어 있는 프로그램이 사용하는 오픈된 서버 포트에 대한 정보를 추출하여 등록하는 내부 허용 포트 저장 수단; 및 인바운드(Inbound)된 트래픽 패킷의 목적지 포트가 상기 내부 허용 포트 저장 수단에 등록되어 있는지 여부를 판단하여, 등록되지 아니한 포트이면 상기 방화벽 수단으로 전송하고, 등록되어 있는 포트이면 해당 패킷을 직접 해당 프로그램에 전송하는 방화벽 유연화 수단; 을 포함하여 이루어진 것을 특징으로 하는 신뢰할 수 있는 프로세스를 허용하는 네트워크 보안 시스템을 제공한다.According to the present invention to achieve the above object, a port monitoring means for extracting server port information, protocol information and open / close information used by a program for communicating on a network; Firewall means for protecting a corresponding network connection of a computer connected to the network by setting a restriction condition of information communicated between the networks; Internally allowed program storage means for extracting and registering information on a program allowing communication in the firewall means; Internal permission port storage means for extracting and registering information on an open server port used by a program registered in the internal permission program storage means; And determining whether the destination port of the inbound traffic packet is registered in the internal allowed port storage means, and if the port is not registered, transmits it to the firewall means, and if the port is registered, directly sends the packet to the corresponding program. Firewall softening means for transmitting to; It provides a network security system that allows a trusted process, characterized in that made, including.

또한, 네트워크 사이에서 통신되는 정보의 제한 조건을 설정함으로써, 네트워크에 연결된 컴퓨터의 해당 네크워크 연결을 보호하는 방화벽(Firewall)을 이용하는 네트워크 보안 방법에 있어서, 네트워크 상에서 통신하기 위한 프로그램이 사용하는 서버 포트 정보, 프로토콜 정보 및 오픈/클로우즈(Open/Close) 정보를 추출하는 제 1 단계; 통신을 허용하는 프로그램에 대한 정보를 추출하여 등록하는 제 2 단계; 상기 제 2 단계에서 등록되어 있는 프로그램이 사용하는 오픈된 서버 포트에 대한 정보를 추출하여 등록하는 제 3 단계; 인바운드(Inbound)된 트래픽 패킷의 목적지 포트가 상기 제 3 단계에서 등록되어 있는지 여부를 판단하는 제 4 단계; 상기 제 4 단계에서의 판단 결과, 등록되지 아니한 포트이면, 상기 방화벽으로 전송하는 제 5 단계; 및 상기 제 4 단계에서의 판단 결과, 등록되어 있는 포트이면, 해당 패킷을 직접 해당 프로그램에 전송하는 제 6 단계; 를 포함하는 것을 특징으로 하는 방화벽을 이용하는 네트워크 보안 방법을 제공한다.In addition, a network security method using a firewall that protects a network connection of a computer connected to a network by setting a restriction condition of information communicated between networks, the server port information used by a program for communicating on the network. Extracting protocol information and open / close information; Extracting and registering information on a program that allows communication; A third step of extracting and registering information on an open server port used by a program registered in the second step; A fourth step of determining whether a destination port of an inbound traffic packet is registered in the third step; A fifth step of transmitting to the firewall if the port is not registered as a result of the determination in the fourth step; And a sixth step of directly transmitting the packet to the corresponding program if the port is registered as a result of the determination in the fourth step. It provides a network security method using a firewall comprising a.

보다 더 양호하게는, 상기 제 1 단계는, TCP(Transmission Control Protocol)를 이용하는 통신인 경우, 소켓이 서버로 동작하기 위하여 리슨(Listen)을 수행할 때, 후킹(Hooking)을 함으로써 리슨 포트를 추출한다.More preferably, the first step is, when communication using TCP (Transmission Control Protocol), extracts a listen port by hooking when the socket performs listening to operate as a server. do.

또한, 보다 더 양호하게는, UDP(User Datagram Protocol)를 이용하는 통신인 경우, 소켓에서 패킷을 받기 위하여 관련 함수를 호출하면, 유저 모드(User Mode)에서 후킹을 함으로써, 서버 포트를 추출한다.Further, more preferably, in the case of communication using UDP (User Datagram Protocol), when a related function is called to receive a packet in a socket, the server port is extracted by hooking in user mode.

이하, 첨부된 도면을 참조하면서 본 발명의 일 실시예에 따른 신뢰할 수 있는 프로세스를 허용하는 유연화된 네트워크 보안 시스템 및 그 방법을 보다 상세하게 설명하기로 한다.Hereinafter, a flexible network security system and a method for allowing a reliable process according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

먼저, 본 발명의 백그라운드에 해당하는 관련 기술들을 간략히 살펴 보도록 한다.First, a brief description of related technologies corresponding to the background of the present invention.

도 3은 본 발명에 이용되는 마이크로소프트 윈도우즈 운영 체제의 모드 구분 블록도이다.3 is a mode division block diagram of the Microsoft Windows operating system used in the present invention.

도 3을 참조하면, 마이크로소프트사에서 제공하는 윈도우즈 엑스피는 커널 모드(Kernel Mode)와 유저 모드(User Mode)로 나누어지는데, 커널 모드에서는 운영 체제 커널과 각종 디바이스 드라이버(Device Driver)가 구동되고, 유저 모드에서는 주로 어플리케이션(Application)이 구동된다. 그리고, 커널 모드에서 동작을 하는 프로그램들은 디바이스 드라이버의 형태로 존재한다.Referring to FIG. 3, Windows XP provided by Microsoft is divided into a kernel mode and a user mode. In the kernel mode, an operating system kernel and various device drivers are driven. In the user mode, an application is mainly driven. In addition, programs that run in kernel mode exist in the form of device drivers.

마이크로소프트 윈도우즈 운영 체제의 커널 모드 네트워크 구조는 윈도우즈 소켓(Socket)의 커널 부분인 AFD(afd.sys), NDIS(네트워크 드라이버 인터페이스 명세 : Network Driver Interface Specification) 및 TDI(전송 드라이버 인터페이스 : Transport Driver Interface)로 구성된다.The kernel-mode network architecture of the Microsoft Windows operating system consists of the kernel portion of Windows Sockets, AFD (afd.sys), NDIS (Network Driver Interface Specification), and TDI (Transport Driver Interface). It consists of.

커널 모드에서 최상위 계층에 존재하는 afd.sys는 윈도우즈 소켓에서 유저 모드의 최하위 계층의 DLL(동적 연결 라이브러리 : Dynamic Link Library)인 msafd.dll과 통신을 하고, 아래 계층의 TDI와 인터페이스를 이루게 된다.In kernel mode, afd.sys, which resides at the top level, communicates with msafd.dll, the lowest-level DLL in the user mode (Windows Dynamic Link Library) on Windows Sockets, and interfaces with TDI at the bottom level.

TDI는 프로토콜 스택(Stack)의 상위에 존재하는 커널 모드 인터페이스를 정의한다. NDIS는 NIC 디바이스 드라이버(Network Interface Card Device Driver)들을 위하여 표준 인터페이스를 제공한다.TDI defines a kernel mode interface that resides on top of the protocol stack. NDIS provides a standard interface for NIC device drivers (Network Interface Card Device Drivers).

마이크로소프트사의 윈도우즈 운영 체제의 유저 모드에서 방화벽을 만드는 방법을 간단하게 설명한다.Here's a quick look at how to create a firewall in user mode on Microsoft's Windows operating system.

후킹(Hooking)이란 후킹하려는 함수의 원본 주소를 저장하고, 자신이 만든 함수의 주소로 교체한 후, 자신의 함수를 먼저 실행하도록 함으로써, 나중에 원본 함수를 실행하게 하는 널리 알려진 프로그래밍 방법이다.Hooking is a well-known programming method that saves the original address of the function you want to hook, replaces it with the address of the function you created, and then executes your function first, so that you can execute the original function later.

(1) LSP(Winsock Layered Service Provider) : 이 방법은 마이크로소프트사에서 제공하는 방법으로서, QOS(Quality Of Service), URL 필터링 및 데이터 스트림(Data Stream)의 암호화에 많이 사용되는 마이크로소프트 네트워킹에 있는 컴포넌트인 SPI(Service Provider Interface)를 기반으로 한다.(1) Winsock Layered Service Provider (LSP): This method is provided by Microsoft Corporation, and is found in Microsoft Networking, which is widely used for quality of service (QOS), URL filtering, and encryption of data streams. It is based on the SPI (Service Provider Interface) component.

(2) 윈도우즈 2000 패킷 필터링 인터페이스(Windows 2000 Packet Filtering Interface) : 윈도우즈 2000은 유저 모드의 응용 프로그램이 아이피 주소 및 포트 정보를 기반으로 허용/차단할 수 있도록 필터 디스크립터(Filter Descrypter)를 설치하는 방법을 이용한 것이다.(2) Windows 2000 Packet Filtering Interface: Windows 2000 uses a method of installing a Filter Descrypter to allow / disable applications in user mode based on IP address and port information. will be.

(3) Winsock Dll 교체 : 마이크로소프트 윈도우즈의 Winsock DLL을 사용자가 만든 DLL로 교체하여 필터링을 하는 방법을 기반으로 한다.(3) Winsock Dll replacement: It is based on the method of filtering by replacing Winsock DLL of Microsoft Windows with user-created DLL.

(4) 글로벌 함수 후킹(Global Function Hooking) : 커넥트(Connect), 리슨(Listen), 센드(Send), 리시브(Recv), 센드투(Sendto), 리시브 프롬(Recvfrom)과 같은 윈도우즈의 소켓 함수들 후킹 또는 유저 모드의 어플리케이션이 커널 모드의 드라이버와 통신하기 위하여 사용하는 DeviceIoControl() 함수를 후킹하는 방법을 기반으로 한다.(4) Global Function Hooking: Windows socket functions such as Connect, Listen, Send, Recv, Sendto, and Receive Prompfrom. It is based on hooking the DeviceIoControl () function that hooking or user mode applications use to communicate with kernel mode drivers.

마이크로소프트사의 윈도우즈 운영 체제의 커널 모드에서 방화벽을 만드는 방법을 간단하게 설명한다.This article outlines how to create a firewall in kernel mode on Microsoft's Windows operating system.

(1) 커널 모드 소켓 필터(Kernel Mode Socket Filter) : 유저 모드에서 윈도우즈 소켓의 최하위 계층의 DLL인 msafd.dll이 커널 모드 윈도우즈 소켓인 afd.sys와 통신하는 모든 I/O를 후킹하는 방법을 기반으로 한다.Kernel Mode Socket Filter: Based on how msafd.dll, the lowest level DLL of Windows sockets in user mode, hooks all I / O that communicates with afd.sys, a kernel mode Windows socket. It is done.

(2) TDI 필터 드라이버 : tcpip.sys 드라이버(\Device\RawIp, \Device\Udp, \Device\Tcp, \Device\Ip, \Device\MULTICAST)에 의하여 생성된 디바이스에 IoAttackDevice() API를 사용하여 필터 드라이버로 적용하는 방법이다. 또는, tcpip.sys의 드라이버 오브젝트(Driver Object)에 있는 디스패치 테이블(Dispatch Table)을 바꿔치기하여 모든 I/O를 후킹하는 기법을 기반으로 한다.(2) TDI Filter Driver: Using IoAttackDevice () API on the device created by tcpip.sys driver (\ Device \ RawIp, \ Device \ Udp, \ Device \ Tcp, \ Device \ Ip, \ Device \ MULTICAST) This method is applied by the filter driver. Alternatively, it is based on the technique of hooking all I / O by changing the dispatch table in the driver object of tcpip.sys.

(3) NDIS IM(InterMediate) 드라이버 : 마이크로소프트사에서 사용자들에게 제공하는 방법으로서, TCP/IP와 같은 프로토콜 드라이버와 NIC 드라이버 사이에 끼워 넣어 방화벽, NAT(Network Address Translation) 등을 개발하는 방법이다.(3) NDIS IM (InterMediate) driver: A method provided by Microsoft to users. It is a method of developing a firewall, network address translation (NAT), etc. between a NIC driver and a protocol driver such as TCP / IP. .

(4) NDIS 후킹 필터 드라이버 : NDIS 라이브러리의 함수들을 후킹하는 방법으로, NdisRegisterProtocol, NdisDeregisterProtocol, NdisOpenAdapter, NdisCloseAdapter 및 NdisSend와 같은 함수들을 후킹하거나, 자신의 프로토콜 드라이버를 등록하는 NdisRegisterProtocol 함수를 사용하여 리턴된 NdisProtocolHandle을 기준으로 TCP/IP와 같은 기존의 등록된 프로토콜 드라이버 링크를 찾아 NDIS와 통신하는 프로토콜 드라이버 및 NIC 드라이버의 I/O를 후킹하는 방법을 기반으로 한다.(4) NDIS hooking filter driver: As a way of hooking functions of NDIS library, hooking functions such as NdisRegisterProtocol, NdisDeregisterProtocol, NdisOpenAdapter, NdisCloseAdapter and NdisSend, or NdisProtocolHandle returned using NdisRegisterProtocol function to register own protocol driver. It is based on the method of hooking I / O of protocol driver and NIC driver that communicates with NDIS by finding existing registered protocol driver link such as TCP / IP.

본 발명에서 제시하는 인터넷 연결 방화벽은 상술한 커널 모드 소켓 필터, TDI 필터 드라이버, NDIS IM 드라이버, NDIS 후킹 필터 드라이버 등에서 구현될 수 있으며, 일반적으로는 NDIS IM 드라이버 또는 NDIS 후킹 필터 드라이버에서 구현한다.The Internet connection firewall proposed in the present invention may be implemented in the above-described kernel mode socket filter, TDI filter driver, NDIS IM driver, NDIS hooking filter driver, and the like, and is generally implemented in an NDIS IM driver or an NDIS hooking filter driver.

인터넷 연결 방화벽은 인터넷 연결 방화벽 컴퓨터에서 시작된 트래픽을 추적하여 아이피와 포트의 모든 통신 테이블을 보관한다. 그리고, 인터넷의 모든 인바운드 트래픽은 이 통신 테이블에 존재하는 항목과 비교된다. 인바운드 인터넷 트래픽은 테이블에 일치하는 항목이 있어서 통신 교환이 사용자의 컴퓨터에서 시작되었음을 입증하는 경우에만 인바운드 트래픽을 허용하고, 그러하지 아니한 경우에는 차단한다.Internet Connection Firewall tracks the traffic originating from the Internet Connection Firewall computer and keeps a table of all communication between the IP and the port. All inbound traffic on the Internet is then compared with the entries present in this communication table. Inbound Internet traffic allows inbound traffic only if there is a match in the table, proving that the communication exchange originated from the user's computer, and otherwise blocks.

이와 같은 인바운드 트래픽의 허용은 후킹한 함수의 원본 주소를 그대로 호출함으로써 수행되고, 인바운드 트래픽의 차단은 원본 함수를 호출하지 않고, 원본 함수의 호출이 성공 또는 실패하였다는 가짜 리턴을 함으로써, 또는, 원본 함수를 호출하지만 함수의 수행이 정상적으로 수행되지 않도록 잘못된 정보를 제공함으로써, 인바운드 트래픽을 차단한다.This allow of inbound traffic is performed by calling the source address of the hooked function as it is, and blocking of inbound traffic does not call the source function, by making a fake return that the call to the source function succeeded or failed, or Inbound traffic is blocked by calling the function but providing incorrect information to prevent the function from performing properly.

상술한 방화벽과 관련된 기본적인 내용을 토대로 본 발명에서 제시하는 신뢰할 수 있는 프로세스를 허용하는 유연화된 네트워크 보안 시스템 및 그 방법에 대하여 설명하도록 한다.On the basis of the above-described basic content related to the firewall, a flexible network security system and a method for allowing a reliable process proposed by the present invention will be described.

도 4는 본 발명에 따른 인터넷 연결 방화벽의 동작을 간략화한 흐름도로서, 포트 감시부와 인터넷 연결 방화벽 설치 및 허용 프로그램 목록을 내부 허용 프로그램 저장소에 저장하는 과정을 나타낸 흐름도이다.Figure 4 is a flow chart illustrating a simplified operation of the Internet connection firewall according to the present invention, which shows a process of installing the port monitoring unit and the Internet connection firewall and the list of allowed programs in the internal allowed program store.

먼저, 스텝 S410에서, 포트 감시부 및 인터넷 연결 방화벽을 설치한다.First, in step S410, a port monitoring unit and an internet connection firewall are installed.

이때, 포트 감시부는 TCP의 경우 소켓이 서버로 동작하기 위하여 리슨(Listen)을 수행할 때, Winsock 후킹을 통하여 리슨 포트를 추출한다. 또는 msafd.dll에서 이에 상응하는 연산이 발생하면, 또는, 이어서 커널의 소켓 부분인 AFD에서 이에 상응하는 연산이 발생하면, 또는, 이어서 TDI에 전달되고 TDI에서는 이에 상응하는 TdiSetEvent()를 통하여 TDI_EVENT_CONNECT가 호출될 때, 리슨하려는 포트를 추출한다.In this case, the port monitoring unit extracts the listen port through Winsock hooking when the socket performs a listen in order to operate as a server. Or if the corresponding operation occurs in msafd.dll, or if the corresponding operation occurs in AFD, which is the socket portion of the kernel, or is subsequently passed to TDI and TDI_EVENT_CONNECT is passed through the corresponding TdiSetEvent (). When called, it extracts the port to listen on.

그리고, 사용자 데이터그램 프로토콜(UDP : User Datagram Protocol)의 경우에는, 소켓에서 패킷을 받기 위하여 recvfrom을 호출하면, 유저 모드에서 Winsock 후킹을 통하여 패킷을 받기 위한 서버 포트를 추출한다. 또는, 커널 모드에서 이어서 발생하는 AFD에서의 연산이 있을 때, 또는, TDI에서 이에 상응하는 TdiSetEvemt()를 통하여 TDI_EVENT_RECEIVE_DATAGRAM이 발생할 때, 패킷을 받기 위한 서버 포트를 추출한다.In the case of User Datagram Protocol (UDP), when recvfrom is called to receive a packet from a socket, a server port for receiving a packet is extracted through Winsock hooking in user mode. Alternatively, when there is an operation in the AFD which occurs subsequently in kernel mode, or when TDI_EVENT_RECEIVE_DATAGRAM occurs through the corresponding TdiSetEvemt () in TDI, a server port for receiving a packet is extracted.

이와 같은 포트 감시부는 유저 모드에서 Winsock 후킹을 통하여, 또는, 커널 모드에서 커널 모드 소켓 필터, TDI 필터 드라이버를 통해서 설치하고, 서버 포트 정보, 프로토콜 정보(TCP, UDP 등) 및 OPEN/CLOSE 정보를 추출하는 역할을 수행한다.Such port monitoring unit is installed through Winsock hooking in user mode or kernel mode socket filter and TDI filter driver in kernel mode, and extracts server port information, protocol information (TCP, UDP, etc.) and OPEN / CLOSE information. It plays a role.

그리고, 인터넷 연결 방화벽을 설치한다. 이러한 인터넷 연결 방화벽은 상술한 바와 마찬가지로, 커널 모드 소켓 필터, TDI 필터 드라이버, NDIS IM 드라이버, 윈도우즈 2000 필터 후크 드라이버, NDIS 후킹 필터 드라이버에서 구현될 수 잇고, 일반적으로는 NDIS IM 드라이버 또는 NDIS 후킹 필터 드라이버를 통하여 설치한다.Then install the Internet Connection Firewall. As described above, such an Internet connection firewall may be implemented in a kernel mode socket filter, a TDI filter driver, an NDIS IM driver, a Windows 2000 filter hook driver, an NDIS hooking filter driver, and generally an NDIS IM driver or an NDIS hooking filter driver. Install via

이어서, 스텝 S420에서, 허용 프로그램 목록을 내부 허용 프로그램 저장소에 저장한다. 도 5는 본 발명의 일 실시예에 따른 유연한 인터넷 연결 방화벽에서 통신 허용 프로그램 목록을 내부 허용 프로그램 저장소에 저장하기 위하여 디스플레이되는 인터페이스 화면을 보여주는 도면이다.Next, in step S420, the allowable program list is stored in the internal allowable program storage. FIG. 5 is a diagram illustrating an interface screen displayed to store a list of communication permission programs in an internal permission program store in a flexible internet connection firewall according to an embodiment of the present invention.

도 5에 도시된 바와 같이, 인터넷 연결 방화벽에서 허용할 프로그램을 선택하면, 프로그램 이름, 프로그램 전체 경로 및 프로그램의 무결성 확인을 위한 해당 프로그램 파일의 MD5(Message Digest algorithm 5, 메시지 다이제스트 알고리즘 5) 해쉬값을 구한다. 이렇게 하여 얻어진 프로그램 이름, 프로그램 전체 경로 및 프로그램 MD5 해쉬값을 내부 허용 프로그램 저장소에 저장한다.As shown in FIG. 5, when a program to be allowed in the Internet connection firewall is selected, a program name, a program full path, and a MD5 (Message Digest algorithm 5) hash value of a corresponding program file for checking the integrity of the program Obtain The program name, program full path and program MD5 hash value obtained in this way are stored in the internal allowed program store.

내부 허용 프로그램 저장소는 아래의 [표 1]과 같은 형태로 저장되며, 프로그램 이름, 프로그램 전체 경로 및 프로그램 MD5 해쉬값 정보를 포함하는 파일 또는 데이터베이스의 형태로 저장한다.The internally allowed program storage is stored in the form as shown in [Table 1] below, and is stored in the form of a file or database including the program name, program full path, and program MD5 hash value information.

프로그램 전체 경로Program full path 프로그램 MD5 해쉬값Program MD5 hash value 1One D:\Program Files\MSN Messenger\msnmsgr.exeD: \ Program Files \ MSN Messenger \ msnmsgr.exe 0x832764827648273686823764826378720x83276482764827368682376482637872 22 D:\Program Files\PcAnywhere\PcAnywhere.exeD: \ Program Files \ PcAnywhere \ PcAnywhere.exe 0x939472938742983794279739284793740x93947293874298379427973928479374 33 ......

도 6은 본 발명에서 제시하는 인터넷 연결 방화벽 유연화 장치를 사용하는 전체 방화벽의 동작을 보여주는 블록도로서, 이를 상세히 설명하면, 다음과 같다.Figure 6 is a block diagram showing the operation of the entire firewall using the Internet connection firewall softening device proposed in the present invention, it will be described in detail as follows.

인터넷 사용 프로그램(610)이 서버로 동작하기 위해서 서버 포트를 오픈하면, 인터넷 연결 방화벽 기능 유연화 장치(620)는 해당 서버 포트를 오픈한 프로그램이 내부 허용 프로그램 저장소(650)에 등록되어 있는 프로그램인지 여부를 판단한다.When the Internet-enabled program 610 opens the server port to operate as a server, the Internet connection firewall function softening device 620 determines whether the program that opened the server port is a program registered in the internal allowed program storage 650. Judge.

해당 프로그램이 등록되어 있으면, 상기 인터넷 연결 방화벽 기능 유연화 장치(620)는 오픈한 서버 포트를 내부 허용 포트 저장소(660)에 등록한다.If the program is registered, the Internet connection firewall function softening device 620 registers the opened server port in the internal allowed port storage 660.

한편, 외부로부터 인바운드된 트래픽이 전송되면, 상기 네트워크 카드(640)를 지나서 상기 인터넷 연결 방화벽(630)으로 오게 된다. 상기 인터넷 연결 방화벽 기능 유연화 장치(620)는 인바운드된 트래픽의 패킷을 조사하여 목적지 포트가 상기 내부 허용 포트 저장소(660)에 등록되어 있는지 여부를 판단한다.Meanwhile, when inbound traffic is transmitted from the outside, the traffic comes to the Internet connection firewall 630 after passing through the network card 640. The apparatus for softening the Internet connection firewall function 620 determines whether a destination port is registered in the internal allowed port storage 660 by examining a packet of inbound traffic.

판단 결과, 해당 포트가 등록되어 있지 아니하면, 상기 인터넷 연결 방화벽(630)으로 패킷을 전송하며, 이 패킷은 차단될 것이다. 그러나, 해당 포트가 등록되어 있으면, 상기 인터넷 연결 방화벽(630)을 통과시키지 아니하고, 상기 인터넷 연결 방화벽 기능 유연화 장치(620)로 우회시키기 위하여 후킹한 원본 함수를 호출한다.As a result, if the corresponding port is not registered, the packet is transmitted to the Internet connection firewall 630, and the packet will be blocked. However, if the corresponding port is registered, the original function hooked is called to bypass the Internet connection firewall 630 and bypass the Internet connection firewall softening device 620.

아래의 [표 2]는 내부 허용 포트 저장소에 등록된 포트들을 보여주는 예이다.[Table 2] below shows the ports registered in the internal allowed port storage.

프로그램 전체 경로Program full path 프로토콜protocol 포트port 1One D:\Program Files\MSN Messenger\msnmsgr.exeD: \ Program Files \ MSN Messenger \ msnmsgr.exe TCPTCP 18631863 22 D:\Program Files\MSN Messenger\msnmsgr.exeD: \ Program Files \ MSN Messenger \ msnmsgr.exe TCPTCP 68916891 33 D:\Program Files\PcAnywhere\PcAnywhere.exeD: \ Program Files \ PcAnywhere \ PcAnywhere.exe TCPTCP 56315631 44 D:\Program Files\PcAnywhere\PcAnywhere.exeD: \ Program Files \ PcAnywhere \ PcAnywhere.exe UDPUDP 56325632 ......

상기 [표 2]에 도시되어 있듯이, 내부 허용 포트 저장소는 프로그램 전체 경로, 프로토콜 및 포트 정보를 포함하며, 메모리 상에 배열 또는 연결 리스트로 존재하거나, 파일 또는 데이터베이스의 형태로 존재한다.As shown in Table 2 above, the internal allowed port store includes the program full path, protocol and port information, and exists in an array or a linked list on the memory, or in the form of a file or a database.

도 7은 본 발명의 일 실시예에 따른 유연한 인터넷 연결 방화벽의 내부 허용 포트 저장소에 서버 포트를 저장하고 삭제하는 과정을 나타낸 흐름도로서, 이를 상세히 설명하면, 다음과 같다.7 is a flowchart illustrating a process of storing and deleting a server port in an internal allowed port storage of a flexible internet connection firewall according to an embodiment of the present invention.

먼저, 스텝 S701에서, 포트 감시부로부터 서버 포트, OPEN/CLOSE 정보 및 프로토콜(TCP, UDP 등) 정보를 추출한 후, 스텝 S703에서, 포트 감시부에서 서버 포트를 오픈한 현재의 프로그램이 내부 허용 프로그램 저장소에 등록되어 있는 프로그램인지 여부를 판단한다.First, in step S701, the server port, OPEN / CLOSE information, and protocol (TCP, UDP, etc.) information is extracted from the port monitoring unit. In step S703, the current program which opens the server port in the port monitoring unit is an internally permitted program. Determines whether the program is registered in the repository.

한편, 상기 스텝 S703에서 이와 같이 네트워크를 사용하는 현제 프로세스의 프로세스 정보를 얻어오는 방법은 포트 감시부에서 PsGetCurrentProcessId() 함수를 사용하여 현재의 프로세스 ID 정보를 추출한 후, 이 프로세스 ID를 통하여 현재 프로그램의 전체 경로를 얻어온다. 이렇게 얻어온 프로그램 전체 경로를 통하여 해당 프로그램의 MD5 해쉬값을 추출하며, 이 MD5 해쉬값과 프로그램 전체 경로로 현재의 프로그램이 내부 허용 프로그램 저장소에 있는지 여부를 판단하는 것이다.On the other hand, the method of obtaining the process information of the current process using the network as described above in step S703 is to extract the current process ID information by using the PsGetCurrentProcessId () function in the port monitoring unit, and then through the process ID of the current program Get the full path. The MD5 hash value of the corresponding program is extracted through the obtained program full path, and the MD5 hash value and the full path of the program are used to determine whether the current program is in the internal allowed program storage.

상기 스텝 S703에서의 판단 결과, 등록되어 있지 아니하면 종료하고, 등록되어 있으면, 스텝 S705에서, 상기 추출한 OPEN/CLOSE 정보로 서버 포트의 OPEN/CLOSE 여부를 판단한다.As a result of the determination in step S703, if not registered, the process ends. If so, in step S705, the extracted OPEN / CLOSE information determines whether the server port is open or closed.

상기 스텝 S705에서의 판단 결과, 오픈된 포트이면, 스텝 S709에서, 프로그램 전체 경로, 프로토콜 정보 및 서버 포트를 내부 허용 포트 저장소에 등록한 후, 종료한다.As a result of the determination in step S705, if it is an open port, in step S709, the program full path, protocol information, and server port are registered in the internal allowed port storage, and then the process ends.

또한, 상기 스텝 S705에서의 판단 결과, 오픈된 포트가 아니면, 스텝 S706 및 스텝 S707에서, 프로그램 전체 경로, 프로토콜 정보 및 서버 포트로 내부 허용 포트 저장소에서 일치하는 항목을 찾아내어 삭제한 후, 종료한다.If the determination result in step S705 is not an open port, in step S706 and step S707, a matching item is found and deleted from the internal allowed port storage by the program full path, protocol information and server port, and then terminated. .

도 8은 본 발명의 일 실시예에 따른 인터넷 연결 방화벽 이전에서의 패킷 처리 과정을 나타낸 흐름도로서, 이를 상세히 설명하면, 다음과 같다.8 is a flowchart illustrating a packet processing process before an internet connection firewall according to an embodiment of the present invention.

먼저, 스텝 S801에서, 인터넷 연결 방화벽 이전에 인바운드 트래픽에서 패킷을 추출한 후, 스텝 S803에서, 상기 추출된 패킷으로부터 인터넷 연결 방화벽 컴퓨터의 입장에서 서버 포트에 해당 목적지(로컬) 포트와 프로토콜 정보를 추출한다.First, in step S801, a packet is extracted from inbound traffic before the Internet connection firewall, and then, in step S803, a corresponding destination (local) port and protocol information are extracted from the extracted packet to the server port from the position of the Internet connection firewall computer. .

그리고, 스텝 S805에서, 상기 추출한 목적지 포트와 프로토콜 정보가 내부 허용 포트 저장소에 등록되어 있는지 여부를 판단한다.In step S805, it is determined whether the extracted destination port and protocol information are registered in the internal allowed port storage.

상기 스텝 S805에서의 판단 결과, 등록되어 있지 아니하면, 스텝 S807에서, 해당 패킷을 인터넷 연결 방화벽으로 전달하고, 등록되어 있으면, 허용해야 할 포트이므로, 스텝 S809에서, 후킹한 원본 함수를 호출함으로써, 인터넷 연결 방화벽을 우회시킨다.As a result of the determination in step S805, if not registered, the packet is forwarded to the Internet connection firewall in step S807, and if it is registered, it is a port to be allowed, so in step S809, by calling the hooked original function, Bypass Internet Connection Firewall.

위에서 양호한 실시예에 근거하여 이 발명을 설명하였지만, 이러한 실시예는 이 발명을 제한하려는 것이 아니라 예시하려는 것이다. 이 발명이 속하는 분야의 숙련자에게는 이 발명의 기술사상을 벗어남이 없이 위 실시예에 대한 다양한 변화나 변경 또는 조절이 가능함이 자명할 것이다. 그러므로, 이 발명의 보호범위는 첨부된 청구범위에 의해서만 한정될 것이며, 위와 같은 변화예나 변경예 또는 조절예를 모두 포함하는 것으로 해석되어야 할 것이다.While the invention has been described above based on the preferred embodiments thereof, these embodiments are intended to illustrate rather than limit the invention. It will be apparent to those skilled in the art that various changes, modifications, or adjustments to the above embodiments can be made without departing from the spirit of the invention. Therefore, the protection scope of the present invention will be limited only by the appended claims, and should be construed as including all such changes, modifications or adjustments.

이상과 같이 본 발명에 의하면, 인터넷 연결 방화벽에 통신이 허용된 프로그램이 사용하는 포트를 자동으로 추가 및 제거를 하게 함으로써, 전문 사용자가 아닌 일반 사용자들도 쉽게 우수한 기능의 인터넷 연결 방화벽을 사용할 수 있게끔 하는 효과가 있다.As described above, according to the present invention, by automatically adding and removing a port used by a program that is allowed to communicate with the Internet connection firewall, general users, not professional users, can easily use the excellent Internet connection firewall. It is effective.

도 1은 마이크로소프트(Microsoft) 사에서 윈도우 엑스피(Windows XP) 버젼부터 기본적으로 제공하는 해당 컴퓨터와 네트워크를 보호하기 위한 인터넷 연결 방화벽(ICF : Internet Connection Firewall)을 보여주는 도면이고,FIG. 1 is a diagram illustrating an Internet Connection Firewall (ICF) for protecting a computer and a network, which are basically provided from a Windows XP version by Microsoft.

도 2는 윈도우즈 엑스피에서 서버로 동작하는 소프트웨어가 사용하는 포트, 프로토콜, 아이피(IP : Internet Protocol) 등을 추가하는 인터페이스 화면을 보여주는 도면이고,FIG. 2 is a diagram illustrating an interface screen for adding a port, a protocol, an IP (IP), and the like used by a software operating as a server in Windows XP;

도 3은 본 발명에 이용되는 마이크로소프트 윈도우즈 운영 체제의 모드 구분 블록도이고,3 is a block diagram of mode division of the Microsoft Windows operating system used in the present invention,

도 4는 본 발명에 따른 인터넷 연결 방화벽의 동작을 간략화한 흐름도로서, 포트 감시부와 인터넷 연결 방화벽 설치 및 허용 프로그램 목록을 내부 허용 프로그램 저장소에 저장하는 과정을 나타낸 흐름도이고,4 is a flowchart illustrating an operation of the Internet connection firewall according to the present invention, which is a flowchart illustrating a process of installing a port monitor and an Internet connection firewall and a list of allowed programs in an internal allowed program store.

도 5는 본 발명의 일 실시예에 따른 유연한 인터넷 연결 방화벽에서 통신 허용 프로그램 목록을 내부 허용 프로그램 저장소에 저장하기 위하여 디스플레이되는 인터페이스 화면을 보여주는 도면이고,FIG. 5 is a view showing an interface screen displayed for storing a list of communication permission programs in an internal permission program store in a flexible Internet connection firewall according to an embodiment of the present invention.

도 6은 본 발명에서 제시하는 인터넷 연결 방화벽 유연화 장치를 사용하는 전체 방화벽의 동작을 보여주는 블록도이고,6 is a block diagram showing the operation of the entire firewall using the Internet connection firewall softening device proposed in the present invention,

도 7은 본 발명의 일 실시예에 따른 유연한 인터넷 연결 방화벽의 내부 허용 포트 저장소에 서버 포트를 저장하고 삭제하는 과정을 나타낸 흐름도이다.7 is a flowchart illustrating a process of storing and deleting a server port in an internal allowed port storage of a flexible internet connection firewall according to an embodiment of the present invention.

Claims (10)

네트워크 상에서 통신하기 위한 프로그램이 사용하는 서버 포트 정보를 추출하는 포트 감시 수단;Port monitoring means for extracting server port information used by a program for communicating on a network; 네트워크 사이에서 통신되는 정보의 제한 조건을 설정함으로써, 네트워크에 연결된 컴퓨터의 해당 네크워크 연결을 보호하는 방화벽(Firewall) 수단;Firewall means for protecting a corresponding network connection of a computer connected to the network by setting a restriction condition of information communicated between the networks; 상기 방화벽 수단에서 통신을 허용하는 프로그램에 대한 정보를 추출하여 이를 등록하는 내부 허용 프로그램 저장 수단;Internally allowed program storage means for extracting and registering information on a program allowing communication in the firewall means; 상기 내부 허용 프로그램 저장 수단에 등록되어 있는 프로그램이 사용하는 오픈된 서버 포트에 대한 정보를 상기 포트 감시 수단이 추출하면, 상기 추출된 서버 포트 정보를 등록하는 내부 허용 포트 저장 수단; 및Internal permission port storage means for registering the extracted server port information when the port monitoring means extracts information about an open server port used by a program registered in the internal permission program storage means; And 인바운드(Inbound)된 트래픽 패킷의 목적지 포트가 상기 내부 허용 포트 저장 수단에 등록되어 있는지 여부를 판단하여, 등록되지 아니한 포트이면 상기 방화벽 수단으로 전송하고, 등록되어 있는 포트이면 해당 패킷을 직접 해당 프로그램에 전송하는 방화벽 유연화 수단;It is determined whether the destination port of the inbound traffic packet is registered in the internal allowed port storage means. If the port is not registered, it is transmitted to the firewall means. If the port is registered, the packet is directly sent to the corresponding program. Firewall softening means for transmitting; 을 포함하여 이루어진 것을 특징으로 하는 신뢰할 수 있는 프로세스를 허용하는 네트워크 보안 시스템.Network security system that allows a trusted process, characterized in that made. 제 1 항에 있어서,The method of claim 1, 상기 내부 허용 프로그램 저장 수단이 추출하여 등록하는 프로그램 정보는 프로그램 이름, 프로그램 전체 경로 및 프로그램 MD5(Message Digest algorithm 5, 메시지 다이제스트 알고리즘 5) 해쉬값을 포함하는 것을 특징으로 하는 신뢰할 수 있는 프로세스를 허용하는 네트워크 보안 시스템.The program information extracted and registered by the internally permitted program storage means includes a program name, a program full path, and a program MD5 (Message Digest algorithm 5) hash value. Network security system. 제 1 항에 있어서,The method of claim 1, 상기 내부 허용 포트 저장 수단이 추출하여 등록하는 서버 포트 정보는 프로그램 전체 경로, 프로토콜 및 포트 정보를 포함하는 것을 특징으로 하는 신뢰할 수 있는 프로세스를 허용하는 네트워크 보안 시스템.The server port information extracted and registered by the internal allowed port storage means includes a program full path, protocol and port information. 네트워크 사이에서 통신되는 정보의 제한 조건을 설정함으로써, 네트워크에 연결된 컴퓨터의 해당 네크워크 연결을 보호하는 방화벽(Firewall)을 이용하는 네트워크 보안 방법에 있어서,In the network security method using a firewall that protects the network connection of the computer connected to the network by setting constraints on the information communicated between the network, 네트워크 상에서 통신하기 위한 프로그램이 사용하는 서버 포트 정보를 추출하는 제 1 단계;Extracting server port information used by a program for communicating on a network; 통신을 허용하는 프로그램에 대한 정보를 추출하여 등록하는 제 2 단계;Extracting and registering information on a program that allows communication; 상기 제 2 단계에서 등록되어 있는 프로그램이 사용하는 오픈된 서버 포트에 대한 정보를 상기 제 1 단계에서 추출하면, 상기 추출된 오픈 서버 포트 정보를 등록하는 제 3 단계;A third step of registering the extracted open server port information when the information on the open server port used by the program registered in the second step is extracted in the first step; 인바운드(Inbound)된 트래픽 패킷의 목적지 포트가 상기 제 3 단계에서 등록되어 있는지 여부를 판단하는 제 4 단계;A fourth step of determining whether a destination port of an inbound traffic packet is registered in the third step; 상기 제 4 단계에서의 판단 결과, 등록되지 아니한 포트이면, 상기 방화벽으로 전송하는 제 5 단계; 및A fifth step of transmitting to the firewall if the port is not registered as a result of the determination in the fourth step; And 상기 제 4 단계에서의 판단 결과, 등록되어 있는 포트이면, 해당 패킷을 직접 해당 프로그램에 전송하는 제 6 단계;A sixth step of transmitting the packet directly to the corresponding program if the port is registered as a result of the determination in the fourth step; 를 포함하는 것을 특징으로 하는 방화벽을 이용하는 네트워크 보안 방법.Network security method using a firewall comprising a. 제 4 항에 있어서,The method of claim 4, wherein 상기 제 1 단계는,The first step is, TCP(Transmission Control Protocol)를 이용하는 통신인 경우, 소켓이 서버로 동작하기 위하여 리슨(Listen)을 수행할 때, 후킹(Hooking)을 함으로써 리슨 포트를 추출하는 것을 특징으로 하는 방화벽을 이용하는 네트워크 보안 방법.In the case of communication using TCP (Transmission Control Protocol), when a socket performs listening to operate as a server, a network security method using a firewall comprising extracting a listen port by hooking. 제 4 항에 있어서,The method of claim 4, wherein 상기 제 1 단계는,The first step is, UDP(User Datagram Protocol)를 이용하는 통신인 경우, 소켓에서 패킷을 받기 위하여 관련 함수를 호출하면, 유저 모드(User Mode)에서 후킹을 함으로써, 서버 포트를 추출하는 것을 특징으로 하는 방화벽을 이용하는 네트워크 보안 방법.In case of communication using UDP (User Datagram Protocol), when a related function is called to receive a packet from a socket, the network port is extracted by hooking in user mode to extract a server port. . 제 5 항 또는 제 6 항에 있어서,The method according to claim 5 or 6, 상기 제 6 단계는,The sixth step, 후킹한 원본 함수를 호출함으로써, 해당 패킷을 직접 해당 프로그램에 전송하는 것을 특징으로 하는 방화벽을 이용하는 네트워크 보안 방법.A method for network security using a firewall, characterized in that a packet is sent directly to a corresponding program by calling a hooked original function. 제 4 항에 있어서,The method of claim 4, wherein 상기 제 2 단계에서 추출하여 등록하는 프로그램 정보는 프로그램 이름, 프로그램 전체 경로 및 프로그램 MD5 해쉬값을 포함하는 것을 특징으로 하는 방화벽을 이용하는 네트워크 보안 방법.The program information extracted and registered in the second step includes a program name, a program full path, and a program MD5 hash value. 제 4 항에 있어서,The method of claim 4, wherein 상기 제 3 단계에서 추출하여 등록하는 서버 포트 정보는 프로그램 전체 경로, 프로토콜 및 포트 정보를 포함하는 것을 특징으로 하는 방화벽을 이용하는 네트워크 보안 방법.The server port information extracted and registered in the third step includes a program full path, protocol, and port information. 네트워크 보안 방법을 실행할수 있는 컴퓨터로 읽을 수 있는 기록 매체에 있어서,In a computer-readable recording medium capable of executing a network security method, 네트워크 상에서 통신하기 위한 프로그램이 사용하는 서버 포트 정보를 추출하는 제 1 단계;Extracting server port information used by a program for communicating on a network; 통신을 허용하는 프로그램에 대한 정보를 추출하여 등록하는 제 2 단계;Extracting and registering information on a program that allows communication; 상기 제 2 단계에서 등록되어 있는 프로그램이 사용하는 오픈된 서버 포트에 대한 정보를 상기 제 1 단계에서 추출하면, 상기 추출된 서버 포트 정보를 등록하는 제 3 단계;A third step of registering the extracted server port information when the information on the open server port used by the program registered in the second step is extracted in the first step; 인바운드(Inbound)된 트래픽 패킷의 목적지 포트가 상기 제 3 단계에서 등록되어 있는지 여부를 판단하는 제 4 단계;A fourth step of determining whether a destination port of an inbound traffic packet is registered in the third step; 상기 제 4 단계에서의 판단 결과, 등록되지 아니한 포트이면, 방화벽으로 전송하는 제 5 단계; 및A fifth step of transmitting to the firewall if the port is not registered as a result of the determination in the fourth step; And 상기 제 4 단계에서의 판단 결과, 등록되어 있는 포트이면, 해당 패킷을 직접 해당 프로그램에 전송하는 제 6 단계;A sixth step of transmitting the packet directly to the corresponding program if the port is registered as a result of the determination in the fourth step; 를 포함하는 것을 특징으로 하는 방화벽을 이용하는 네트워크 보안 방법을 실행시킬 수 있는 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium capable of executing a network security method using a firewall comprising a.
KR10-2003-0101775A 2003-12-31 2003-12-31 Flexible network security system and method to permit trustful process KR100522138B1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR10-2003-0101775A KR100522138B1 (en) 2003-12-31 2003-12-31 Flexible network security system and method to permit trustful process
JP2006546833A JP4290198B2 (en) 2003-12-31 2004-12-27 Flexible network security system and network security method permitting reliable processes
PCT/KR2004/003456 WO2005064842A1 (en) 2003-12-31 2004-12-27 Flexible network security system and method for permitting trusted process
US10/582,127 US8544078B2 (en) 2003-12-31 2004-12-27 Flexible network security system and method for permitting trusted process
US13/924,504 US10218676B2 (en) 2003-12-31 2013-06-21 Flexible network security system and method for permitting trusted process
US16/267,681 US10972432B2 (en) 2003-12-31 2019-02-05 Flexible network security system and method for permitting trusted process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0101775A KR100522138B1 (en) 2003-12-31 2003-12-31 Flexible network security system and method to permit trustful process

Publications (2)

Publication Number Publication Date
KR20050083204A true KR20050083204A (en) 2005-08-26
KR100522138B1 KR100522138B1 (en) 2005-10-18

Family

ID=34737959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0101775A KR100522138B1 (en) 2003-12-31 2003-12-31 Flexible network security system and method to permit trustful process

Country Status (4)

Country Link
US (3) US8544078B2 (en)
JP (1) JP4290198B2 (en)
KR (1) KR100522138B1 (en)
WO (1) WO2005064842A1 (en)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631349B2 (en) 2001-01-11 2009-12-08 Digi International Inc. Method and apparatus for firewall traversal
KR100522138B1 (en) 2003-12-31 2005-10-18 주식회사 잉카인터넷 Flexible network security system and method to permit trustful process
US7966643B2 (en) * 2005-01-19 2011-06-21 Microsoft Corporation Method and system for securing a remote file system
US7536542B2 (en) * 2005-01-19 2009-05-19 Microsoft Corporation Method and system for intercepting, analyzing, and modifying interactions between a transport client and a transport provider
JP2007065807A (en) * 2005-08-30 2007-03-15 Yokogawa Electric Corp Access controller and access control method
US8135741B2 (en) 2005-09-20 2012-03-13 Microsoft Corporation Modifying service provider context information to facilitate locating interceptor context information
US8170020B2 (en) * 2005-12-08 2012-05-01 Microsoft Corporation Leveraging active firewalls for network intrusion detection and retardation of attack
US7664699B1 (en) * 2005-12-21 2010-02-16 Symantec Corporation Automatic generation of temporary credit card information
US8997076B1 (en) * 2007-11-27 2015-03-31 Google Inc. Auto-updating an application without requiring repeated user authorization
US20090172187A1 (en) * 2007-12-31 2009-07-02 Eetay Natan Techniques to enable firewall bypass for open mobile alliance device management server-initiated notifications in wireless networks
JP5503276B2 (en) * 2009-11-18 2014-05-28 キヤノン株式会社 Information processing apparatus and security setting method thereof
JP5601840B2 (en) * 2010-01-08 2014-10-08 株式会社日立ソリューションズ Information leak prevention device to network
US9009779B2 (en) * 2010-11-12 2015-04-14 Content Watch, Inc. Methods related to network access redirection and control and devices and systems utilizing such methods
JP5757160B2 (en) * 2011-05-31 2015-07-29 横河電機株式会社 Control bus system
JP5701715B2 (en) * 2011-08-12 2015-04-15 株式会社東芝 Energy management device, power management system and program
US9380081B1 (en) * 2013-05-17 2016-06-28 Ca, Inc. Bidirectional network data replications
BR112016003033A2 (en) * 2013-08-14 2017-09-12 Chien Daniel evaluation of questionable network communication
US10277717B2 (en) * 2013-12-15 2019-04-30 Nicira, Inc. Network introspection in an operating system
KR101841080B1 (en) 2017-11-13 2018-05-04 한국과학기술정보연구원 Method and system for data packet bypass transmission
CN109496409B (en) * 2017-12-27 2020-10-23 华为技术有限公司 Data transmission method and virtual switch
US11882448B2 (en) * 2021-06-07 2024-01-23 Sr Technologies, Inc. System and method for packet detail detection and precision blocking
CN114039787B (en) * 2021-11-15 2023-12-22 厦门服云信息科技有限公司 Rebound shell detection method in linux system, terminal equipment and storage medium

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987611A (en) * 1996-12-31 1999-11-16 Zone Labs, Inc. System and methodology for managing internet access on a per application basis for client computers connected to the internet
US6182146B1 (en) * 1997-06-27 2001-01-30 Compuware Corporation Automatic identification of application protocols through dynamic mapping of application-port associations
US6141686A (en) * 1998-03-13 2000-10-31 Deterministic Networks, Inc. Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control
US6182228B1 (en) * 1998-08-17 2001-01-30 International Business Machines Corporation System and method for very fast IP packet filtering
US6687732B1 (en) * 1998-09-28 2004-02-03 Inktomi Corporation Adaptive traffic bypassing in an intercepting network driver
US6728885B1 (en) * 1998-10-09 2004-04-27 Networks Associates Technology, Inc. System and method for network access control using adaptive proxies
KR100684986B1 (en) 1999-12-31 2007-02-22 주식회사 잉카인터넷 Online dangerous information screening system and method
KR20010090014A (en) * 2000-05-09 2001-10-18 김대연 system for protecting against network intrusion
US6868450B1 (en) * 2000-05-17 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for a process attribute based computer network filter
KR100358387B1 (en) * 2000-06-27 2002-10-25 엘지전자 주식회사 Apparatus for extended firewall protecting internal resources in network system
US20030115327A1 (en) * 2001-03-16 2003-06-19 Takeshi Kokado Method and apparatus for setting up a firewall
US7054944B2 (en) * 2001-12-19 2006-05-30 Intel Corporation Access control management system utilizing network and application layer access control lists
US20030149887A1 (en) * 2002-02-01 2003-08-07 Satyendra Yadav Application-specific network intrusion detection
US7174566B2 (en) 2002-02-01 2007-02-06 Intel Corporation Integrated network intrusion detection
US7340770B2 (en) 2002-05-15 2008-03-04 Check Point Software Technologies, Inc. System and methodology for providing community-based security policies
US7146638B2 (en) * 2002-06-27 2006-12-05 International Business Machines Corporation Firewall protocol providing additional information
JP2004054488A (en) 2002-07-18 2004-02-19 Yokogawa Electric Corp Firewall device
KR100419472B1 (en) * 2002-10-24 2004-02-25 (주)센타비전 Network-based Intrusion Control System
US7328451B2 (en) 2003-06-30 2008-02-05 At&T Delaware Intellectual Property, Inc. Network firewall policy configuration facilitation
KR100522138B1 (en) 2003-12-31 2005-10-18 주식회사 잉카인터넷 Flexible network security system and method to permit trustful process

Also Published As

Publication number Publication date
WO2005064842A1 (en) 2005-07-14
US20190173842A1 (en) 2019-06-06
US8544078B2 (en) 2013-09-24
JP2007517305A (en) 2007-06-28
US10218676B2 (en) 2019-02-26
US20130283366A1 (en) 2013-10-24
JP4290198B2 (en) 2009-07-01
US20070226788A1 (en) 2007-09-27
KR100522138B1 (en) 2005-10-18
US10972432B2 (en) 2021-04-06

Similar Documents

Publication Publication Date Title
KR100522138B1 (en) Flexible network security system and method to permit trustful process
JP3954385B2 (en) System, device and method for rapid packet filtering and packet processing
EP1650633B1 (en) Method, apparatus and system for enforcing security policies
US7474655B2 (en) Restricting communication service
US7792990B2 (en) Remote client remediation
US7240193B2 (en) Systems and methods that provide external network access from a protected network
US7107609B2 (en) Stateful packet forwarding in a firewall cluster
US11314614B2 (en) Security for container networks
CA2688553A1 (en) System and method for providing network and computer firewall protection with dynamic address isolation to a device
KR101076683B1 (en) Apparatus and method for splitting host-based networks
US20060150243A1 (en) Management of network security domains
US20100186068A1 (en) Communication apparatus, communication control method, and program
KR100468374B1 (en) Device and method for controlling network harmful traffic
JP2003264595A (en) Packet repeater device, packet repeater system, and decoy guiding system
JP4321375B2 (en) Access control system, access control method, and access control program
KR100539760B1 (en) System and method for inducing installing agent using internet access control
Hindocha Threats to instant messaging
JP2004104739A (en) System for virus and hacker invasion preventive mechanism, invasion prevention method, and information processing apparatus
JP2006165877A (en) Communication system, communication method, and communication program
JP2002199003A (en) Method for registering mobile terminal position and device for executing the method
EP1547340B1 (en) Method, system and computer program product for transmitting a media stream between client terminals
JP2005293007A (en) Security check system and security check method
Systola SystoLAN

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
A302 Request for accelerated examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120816

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131002

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141006

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20181011

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190926

Year of fee payment: 15