KR20060119002A - Method for checking transmitted files in network and apparatus of enabling the method - Google Patents

Method for checking transmitted files in network and apparatus of enabling the method Download PDF

Info

Publication number
KR20060119002A
KR20060119002A KR1020050041503A KR20050041503A KR20060119002A KR 20060119002 A KR20060119002 A KR 20060119002A KR 1020050041503 A KR1020050041503 A KR 1020050041503A KR 20050041503 A KR20050041503 A KR 20050041503A KR 20060119002 A KR20060119002 A KR 20060119002A
Authority
KR
South Korea
Prior art keywords
file
packet
offset
pattern
received packet
Prior art date
Application number
KR1020050041503A
Other languages
Korean (ko)
Other versions
KR100729266B1 (en
Inventor
이종일
이상윤
김명환
이윤섭
Original Assignee
주식회사 파이오링크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 파이오링크 filed Critical 주식회사 파이오링크
Priority to KR1020050041503A priority Critical patent/KR100729266B1/en
Publication of KR20060119002A publication Critical patent/KR20060119002A/en
Application granted granted Critical
Publication of KR100729266B1 publication Critical patent/KR100729266B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A method for checking a file transmitted through the network in network equipment and the network equipment applying the same are provided to keep the same check accuracy as file recombination while checking the file in a packet unit without recombining the file. A pattern storing part(1210) stores pattern lists to be checked in offset order of the files. A pattern includes character string information matched in a specific offset of the file. A detector(1220) detects start of file transmission by tracking a network session. A receiver(1230) receives the packets according to the start of the file transmission. A position tracker(1240) tracks which part of the file the received packet is in by referring to session information of the transmitted file. A pattern comparator(1250) compares the packet with the pattern corresponding to the offset in case that the received packet corresponds to the offset of the file. A transmission controller(1260) controls packet transmission according to a packet check result.

Description

네트워크 장비에서 소정의 네트워크를 통해 전송되는 파일을 검사하는 방법 및 상기 방법이 채용된 네트워크 장비{METHOD FOR CHECKING TRANSMITTED FILES IN NETWORK AND APPARATUS OF ENABLING THE METHOD}TECHNICAL FIELD FOR CHECKING TRANSMITTED FILES IN NETWORK AND APPARATUS OF ENABLING THE METHOD}

도 1은 호스트간에 네트워크 구성의 일례를 나타내는 도면이다.1 is a diagram illustrating an example of a network configuration between hosts.

도 2는 도 1에 도시된 제1 호스트에서 제2 호스트로 패킷의 전송하는 경우를 나타내는 도면이다.FIG. 2 is a diagram illustrating a case of transmitting a packet from a first host to a second host shown in FIG. 1.

도 3은 프록시를 포함하는 네트워크 구성의 일례를 나타내는 도면이다.3 is a diagram illustrating an example of a network configuration including a proxy.

도 4는 종래 파일 재조합 검사 방식의 일례를 나타내는 도면이다.4 is a diagram illustrating an example of a conventional file recombination test method.

도 5는 패킷 필터를 포함하는 네트워크 구성의 일례를 나타내는 도면이다.5 is a diagram illustrating an example of a network configuration including a packet filter.

도 6은 종래 패킷 단위 검사 방식의 일례를 나타내는 도면이다.6 is a diagram illustrating an example of a conventional packet-based inspection method.

도 7은 파일 오프셋을 일례를 나타내는 도면이다.7 is a diagram illustrating an example of a file offset.

도 8은 패킷 오프셋의 일례를 나타내는 도면이다.8 is a diagram illustrating an example of a packet offset.

도 9는 패킷에서 파일 오프셋을 이용하여 가상 오프셋을 계산하는 일례를 나타내는 도면이다.9 is a diagram illustrating an example of calculating a virtual offset using a file offset in a packet.

도 10은 본 발명의 일실시예에 따른 가상 오프셋에 대응하는 검사 규칙의 일례를 나타내는 도면이다.10 is a diagram illustrating an example of a check rule corresponding to a virtual offset according to an embodiment of the present invention.

도 11은 본 발명의 실시예에 따른 파일 검사 대상인 이메일웜의 일례를 나타 내는 도면이다.11 is a diagram illustrating an example of an email worm that is a file scan target according to an embodiment of the present invention.

도 12는 본 발명의 일실시예에 따른 네트워크 장비의 구성을 나타내는 도면이다.12 is a diagram illustrating a configuration of network equipment according to an embodiment of the present invention.

도 13은 본 발명의 일실시예에 따른 파일을 검사할 때 사용되는 규칙 테이블을 나타내는 도면이다.13 is a diagram illustrating a rule table used when inspecting a file according to an embodiment of the present invention.

도 14는 본 발명의 일실시예에 따른 파일 검사 방식의 개념을 나타내는 도면이다.14 illustrates a concept of a file checking method according to an embodiment of the present invention.

도 15는 종래 파일 필터링 방식의 개념을 나타내는 도면이다.15 illustrates a concept of a conventional file filtering method.

도 16은 본 발명의 실시예에 따른 파일 검사 방법의 흐름도를 나타내는 도면이다.16 is a flowchart illustrating a file checking method according to an embodiment of the present invention.

도 17은 본 발명의 실시예에 따른 파일 검사 방법에 있어서, 패킷의 오프셋이 파일의 어느 부분에 위치하는지를 추적하는 단계를 구체화한 일례를 나타내는 도면이다.FIG. 17 is a diagram illustrating an example in which a step of tracking where an offset of a packet is located in a file in the method for checking a file according to an embodiment of the present invention.

도 18은 본 발명의 실시예에 따른 파일 검사 방법에 있어서, 수신된 패킷을 오프셋에 대응하는 검사할 패턴과 비교하는 단계를 구체화한 일례를 나타내는 도면이다.18 is a diagram illustrating an example in which a step of comparing a received packet with a pattern to be inspected corresponding to an offset in the file inspection method according to an embodiment of the present invention is specified.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100, 300, 500: 네트워크100, 300, 500: network

110, 310, 510: 제1 호스트 120, 320, 520: 제2 호스트110, 310, 510: first host 120, 320, 520: second host

330: 프록시 530: 패킷 필터330: proxy 530: packet filter

710, 910: 파일 오프셋 810, 920: 패킷 오프셋710, 910: file offset 810, 920: packet offset

930: 패킷 데이터930: packet data

1200: 네트워크 장비1200: network equipment

1210: 패턴 저장부 1220: 감지부1210: pattern storage unit 1220: detection unit

1230: 수신부 1240: 위치 추적부1230: receiver 1240: location tracking unit

1250: 패턴 비교부 1260: 전송 제어부1250: pattern comparison unit 1260: transmission control unit

1270: 전송부1270: transmission unit

본 발명은 네트워크를 통해 전송되는 파일을 검사하는 방법 및 그 장치에 관한 것으로서, 더욱 상세하게는 네트워크를 통해 전송되는 패킷의 가상 오프셋을 계산하고 해당 가상 오프셋에 대응하여 검사할 패턴이 있는 경우에만 패킷을 검사하는 방법 및 그 장치에 관한 것이다.The present invention relates to a method and an apparatus for inspecting a file transmitted over a network, and more particularly, to calculate a virtual offset of a packet transmitted over a network and to determine a packet only when there is a pattern to be inspected corresponding to the virtual offset. The present invention relates to a method and an apparatus thereof.

네트워크의 보안을 위협하는 요소들이 점점 자동화 및 지능화되어 가는 경향을 보이고 있다. 최근 몇 년간 이러한 보안 위협 요소들 중에서 자동으로 전파되는 웜(worm)에 의해 엄청난 규모의 보안 사고가 계속 발생하고 있는 실정이다. Threats to network security are becoming increasingly automated and intelligent. In recent years, a huge amount of security incidents continue to be caused by worms that automatically spread among these security threats.

또한, 2003년 후반부터 베이글(Bagle)과 넷스카이(Netsky)로 대변되는 이메일웜(e-mail worm)에 의해 천문학적인 규모의 손실이 발생하고 있다. 현재도 인터넷 트래픽의 상당수가 이메일웜이 보내는 반복적인 이메일에 의해 채워지고 있는 실정이다. 인터넷과 이메일을 이용하는 많은 사람들은 자신의 메일박스에 채워져 있는 메일 중에서 정상적인 메일과 웜을 구분하기 위해서 시간을 소모해야 하며, 웜에 의한 피해로 물질적 피해뿐만 아니라 정신적인 피해까지 입고 있는 실정이다. In addition, since late 2003, e-mail worms represented by Bagle and Netsky have been causing astronomical losses. Today, much of the Internet traffic is being filled by repetitive emails sent by email worms. Many people who use the Internet and e-mail have to spend time to distinguish between normal mail and worm among the mails filled in their mailboxes, and the worm damages not only physical damage but also mental damage.

따라서, 이러한 이메일웜의 효율적인 차단에 대한 요구가 점차적으로 증대되고 있다.Therefore, the demand for efficient blocking of such email worms is gradually increasing.

일반적인 네트워크에서 파일을 전송하는 절차는 하기와 같다.The procedure for transferring a file in a general network is as follows.

도 1 및 도 2를 참조하면, 파일(210)이 제1 호스트(110)로부터 네트워크(100)를 통해 제2 호스트(120)로 전송될 때 네트워크(100)의 전송 단위인 패킷(packet)으로 분리되어 전송된다. 네트워크(100)가 전송할 수 있는 패킷의 최대 전송 크기를 초과하는 데이터들(파일)은 여러 개의 패킷으로 나누어진다. 따라서, 일반적으로 크기가 큰 파일들은 여러 개의 패킷으로 분리된다. 1 and 2, when the file 210 is transmitted from the first host 110 to the second host 120 through the network 100, the packet 210 is a packet that is a transmission unit of the network 100. Transmitted separately. Data (files) exceeding the maximum transmission size of a packet that the network 100 can transmit is divided into several packets. Thus, in general, large files are divided into several packets.

예를 들어, 제1 호스트(110)에서 제2 호스트(120)로 파일(210)을 전송하고자 하는 경우 제1 호스트(110)에서 전송된 파일(210)은 네트워크(100)의 패킷 전송 크기에 맞게 작게 분리되어 패킷들의 페이로드(payload)에 담겨서 제2 호스트(120)로 전송된다. For example, when the file 210 is to be transmitted from the first host 110 to the second host 120, the file 210 transmitted from the first host 110 may be configured to have a packet transmission size of the network 100. The packet is separated into small payloads and sent to the second host 120 in a payload of packets.

제2 호스트(120)에 도달한 패킷들은 페이로드의 데이터(231~233)가 분리되어 원래의 파일(230)로 재구성된다.The packets arriving at the second host 120 are separated from the payload data 231 to 233 and reconstructed into the original file 230.

종래에는 바이러스나 웜 등을 차단하거나 기밀 문서 유출 방지 등의 이유로 파일 단위의 검사를 수행해야 할 경우에 전송되는 패킷들을 모두 수집한 후에 파일로 재조합하는 파일 재조합 검사 방식이 주로 사용되어 왔고, 패킷을 그대로 검사 하는 패킷 단위 검사 방식이 제한적으로 사용되어 왔다.Conventionally, a file recombination scanning method has been mainly used to collect a packet and then recombine a file when a file-by-file scan is required for blocking a virus or worm or preventing confidential document leakage. The packet-based inspection method that checks as it has been used on a limited basis.

종래 파일 재조합 검사 방식은 도 3에 도시된 것과 같이 네트워크(300)에서 파일을 검사하는 장비인 프록시(330)가 네트워크(330)의 가운데 위치해서 네트워크(300)로 전송되는 패킷을 감시하는 것이다. 프록시(330)에서는 네트워크(300)로 파일 전송이 감지되면, 파일에 해당하는 패킷을 수집하여 메모리(도면에 도시되어 있지 않음)에 저장한다. 프록시(330)는 제1 호스트(310)로부터 전송된 원래 파일(410)의 전송이 완료되면, 상기 메모리에 저장된 패킷들에서 파일의 부분들을 분리해서 원래의 파일 형태로 재조합한다. 프록시(330)는 상기 재조합된 파일(420)을 기존의 파일 검사 엔진을 사용해서 검사한 후에 상기 메모리에 저장되어 있는 패킷들을 삭제해서 파일 전송을 차단하거나 또는 차례대로 파일을 전송시켜 준다. In the conventional file recombination inspection method, as illustrated in FIG. 3, a proxy 330, which is a device for inspecting a file in the network 300, is positioned in the center of the network 330 to monitor packets transmitted to the network 300. When the file transfer is detected to the network 300, the proxy 330 collects a packet corresponding to the file and stores the packet corresponding to the file in a memory (not shown). When the transmission of the original file 410 transmitted from the first host 310 is completed, the proxy 330 separates portions of the file from the packets stored in the memory and reassembles the original file. The proxy 330 inspects the recombined file 420 using an existing file inspection engine and then deletes the packets stored in the memory to block the file transfer or transmit the file in sequence.

도 3 및 도 4를 참조하면, 제1 호스트(310)에서 제2 호스트(320)로 예를 들어, "I love you"라는 내용이 들어 있는 파일을 전송하는 상황을 살펴보면 다음과 같다. 제1 호스트(310)와 제2 호스트(320)의 네트워크 전송 경로에 포함된 검사 시스템이 제1 호스트(310)가 속한 네트워크(300)의 게이트웨이에 위치해 있는 HTTP 프록시(Proxy, 330)에 설치되어 있다고 가정한다. 제1 호스트(310)가 속한 네트워크에서 나가는 모든 HTTP 트래픽은 프록시(330)를 통과하게 된다. 프록시(330)는 자신을 통과하는 HTTP 패킷들을 감시하다가 파일 전송이 시작되면, 그때부터 파일에 해당하는 패킷들을 메모리에 저장한다. 즉, "I", "love", "you"가 포함된 패킷들이 전송되는 차례대로 상기 메모리에 저장하는 것이다. Referring to FIGS. 3 and 4, a situation in which a file including, for example, “I love you” is transmitted from the first host 310 to the second host 320 is as follows. The inspection system included in the network transmission path of the first host 310 and the second host 320 is installed in an HTTP proxy 330 located at the gateway of the network 300 to which the first host 310 belongs. Assume that there is. All HTTP traffic leaving the network to which the first host 310 belongs passes through the proxy 330. The proxy 330 monitors the HTTP packets passing through itself, and when the file transfer starts, the proxy 330 stores the packets corresponding to the file in the memory. That is, packets including "I", "love", and "you" are stored in the memory in order of being transmitted.

제1 호스트(310)로부터 모든 파일의 전송이 완료되면, 프록시(330)는 상기 메모리에 저장되어 있는 "I", "love", "you" 패킷들을 순서대로 재배열해서 "I love you"가 포함된 파일을 생성한다. 프록시(330)는 검사를 수행할 대상인 파일 전체가 재구성되어 있으므로 모든 검사 규칙들을 "I love you" 전체에 대해서 수행할 수 있다.When the transfer of all files from the first host 310 is completed, the proxy 330 rearranges the "I", "love", and "you" packets stored in the memory in order so that "I love you" Create an included file. Since the proxy 330 is reconstructed with the entire file to be scanned, all the scan rules may be performed on the entirety of "I love you".

상기 검사 규칙들을 모두 수행한 후 상기 파일에 대해 문제가 없는 경우 프록시(330)는 네트워크(300)를 통해 상기 메모리에 저장해 두었던 "I", "love", "you"를 순서대로 제2 호스트(320)로 전송한다. After performing all of the check rules, if there is no problem with the file, the proxy 330 stores the second host (I), “love”, and “you” stored in the memory through the network 300 in order. To 320).

이와 같이, 종래 파일 재조합 검사 방식은 프록시에서 상기 파일을 재조합하기 위해서 전송되는 파일에 관련된 패킷들을 모두 메모리에 수집해야 하므로 메모리 요구량이 높다. 또한, 종래 파일 재조합 검사 방식은 프록시에서 모든 패킷을 다 수집하고, 수집된 패킷들을 조합하여 검사를 하고 난 후에 실제로 전송해주기 때문에 전송 지연이 발생하며, 파일을 재조합하는 작업을 수행함으로 인해 처리 속도가 떨어지는 문제점이 있다.As described above, the conventional file recombination checking method has a high memory requirement because all the packets related to the transmitted file must be collected in the memory in order to reassemble the file in the proxy. In addition, the conventional file recombination inspection method collects all the packets from the proxy, combines the collected packets, and actually transmits them after the inspection. Therefore, transmission delay occurs and processing speed is increased due to recombination of files. There is a problem falling.

따라서, 종래 파일 재조합 검사 방식은 고속의 처리 속도가 요구되는 네트워크 장비에서 사용되기 부적합하다.Therefore, the conventional file recombination test method is not suitable for use in network equipment that requires high processing speed.

한편, 종래 패킷 단위 검사 방식은 패킷 단위로 네트워크 전송을 처리하는 대부분의 네트워크 장비에서 사용하는 방식이다. 종래 패킷 단위 검사 방식은 L2/L3 스위치(switch), 라우터(router), 패킷 필터링 방화벽(packet filtering firewall), L7 스위치 등과 같은 시스템에서 주로 사용되고 있다. 하지만, 종래 패킷 단위 검사 방식은 모든 검사 규칙들이 하나의 패킷 단위로 지정이 되고, 검사 의 범위도 한 패킷 내로 한정된다. 종래 패킷 단위 검사 방식은 패킷 내에 기록되어 있는 헤더 정보뿐만 아니라 페이로드(payload) 부분의 데이터도 검사가 가능하다. 상기 페이로드 검사는 패킷의 페이로드 시작점부터 인덱싱(indexing)되는 오프셋(offset)도 검사 옵션으로 지정이 가능하다. 이런 방식으로 패킷의 페이로드를 검색하는 것을 L7 패킷 필터링(packet filtering)이라고도 한다. On the other hand, the conventional packet-based inspection method is a method used in most network equipment that processes network transmission on a packet basis. Conventional packet inspection is mainly used in systems such as L2 / L3 switches, routers, packet filtering firewalls, and L7 switches. However, in the conventional packet-based inspection method, all inspection rules are designated in one packet unit, and the range of inspection is also limited to one packet. In the conventional packet-based inspection method, not only the header information recorded in the packet but also the data of the payload portion can be inspected. The payload check can also specify an offset that is indexed from the payload start point of the packet as a check option. Retrieving the payload of a packet in this way is also referred to as L7 packet filtering.

종래 패킷 단위로 검사하는 방식을 간략히 설명하면 아래와 같다. A brief description will be given of a conventional packet-based inspection method.

도 5 및 도 6를 참조하면, 제1 호스트(510)와 제2 호스트(520) 사이에 위치한 패킷 필터(530)는 모든 패킷을 검사한다. 패킷 필터(530)는 제1 호스트(510)로부터 파일(610)의 전송을 시작되면, 패킷으로 나누어진 파일 조각들을 소정의 규칙에 따라 필터링하여 제2 호스트(320)로 전송한다. 패킷 필터(530)는 상기 전송 과정에서 규칙에 위배되는 내용이 패킷이 포함되어 있으면, 해당 패킷을 차단한다. 이와 같이 종래 패킷 단위 검사 방식은 전송되는 패킷이 정해진 규칙에 위배되는 경우 해당 패킷을 차단하여 파일 전송을 차단할 수 있다.5 and 6, the packet filter 530 positioned between the first host 510 and the second host 520 examines all packets. When the packet filter 530 starts transmitting the file 610 from the first host 510, the packet filter 530 filters the file fragments divided into packets according to a predetermined rule and transmits the file fragments to the second host 320. The packet filter 530 blocks the packet if the content of the packet in violation of the rule is included in the transmission process. As such, the conventional packet-based inspection method may block a file transmission by blocking a corresponding packet when a transmitted packet violates a predetermined rule.

제1 호스트(510)는 "I love you"가 포함되어 있는 파일을 네트워크(500)로 전송한다. 이때, 파일(610)은 "I", "love", "you"로 나눠져서 전송된다. 패킷 필터(530)는 검사 규칙을 "I", "love", "you" 각각의 패킷에 대해서 검사를 한다. 만약, "you"가 포함되어 있는 패킷이 검사 규칙에 위배되면, 패킷 필터(530)는 상기 패킷을 차단한다. 따라서, 제2 호스트(520)는 "I"와 "love" 패킷을 수신하지만 "you" 패킷이 패킷 필터(530)에 의해 차단됨에 따라 결국 전체 파일(I love you)을 수신하지 못하게 됨에 따라 상기 파일에 대한 수신 실패로 처리한다. The first host 510 transmits a file including "I love you" to the network 500. At this time, the file 610 is transmitted divided into "I", "love", "you". The packet filter 530 checks the inspection rule for each packet of "I", "love", and "you". If a packet containing "you" violates a check rule, the packet filter 530 blocks the packet. Accordingly, the second host 520 receives the "I" and "love" packets, but as the "you" packet is blocked by the packet filter 530, the second host 520 may not receive the entire file (I love you). Treat it as a failure to receive a file.

이와 같이, 종래 패킷 단위 검사 방식은 패킷을 검사하는데 사용되는 방식이므로 네트워크로 전송되는 파일을 검사할 때는 많은 문제점을 드러낸다. 즉, 종래 패킷 단위 검사 방식은 파일에 들어 있는 특정 패턴이 여러 개의 패킷으로 나뉘어지는 상황을 처리할 수 없는 문제점이 있다. 또한, 종래 패킷 단위 검사 방식은 패킷 내에서만 오프셋을 지정 가능하므로 파일의 특정 위치를 지정하는 오프셋을 사용할 수 없는 문제점이 있다. As such, the conventional packet-based inspection method is a method used to inspect a packet, and thus reveals many problems when examining a file transmitted to a network. That is, the conventional packet inspection method has a problem in that it is not possible to handle a situation in which a specific pattern included in a file is divided into multiple packets. In addition, the conventional packet-based inspection method has a problem in that an offset that designates a specific position of a file cannot be used because an offset can be specified only within a packet.

종래 패킷 단위 검사 방식은 검사 규칙이 예를 들어, "ove y"라는 패턴을 파일의 오프셋 3에서 찾는 것으로 가정하면, "I love you"라는 파일이 이 규칙에 일치되므로 차단되어야 한다. 하지만, 파일 필터(530)는 "I", "love", "you"라는 패킷들의 각 패킷 내에서는 이런 규칙이 전혀 발견되지 않기 때문에 차단이 불가능한 문제점 있다. The conventional packet-based inspection scheme should be blocked because the inspection rule assumes that the pattern "ove y" is found at offset 3 of the file, for example, and the file "I love you" matches this rule. However, the file filter 530 has a problem in that blocking is not possible because such a rule is not found in each packet of the packets "I", "love", and "you".

이와 같이, 종래 패킷 단위 검사 방식은 여러 패킷으로 나뉘어져서 검사가 이루어지기 때문에 한 패킷에 검사 패턴이 모두 포함되지 않은 경우 검출이 불가능한 문제점과 동일하다. 이러한 종래 패킷 단위 검사 방식은 여러 패킷으로 나누어진 패턴에 대한 검사가 가능하도록 하는 알고리즘을 채용한다고 하더라도, 검사 규칙에 파일의 오프셋을 지정할 수 없기 때문에 정확도가 떨어지고, 오프셋이 지정되지 않기 때문에 모든 위치에서 불필요한 검사를 수행해야 하는 문제점이 있다. As described above, the conventional packet-based inspection method is the same as the problem that detection is not possible when all the inspection patterns are not included in one packet because the inspection is divided into several packets. Although the conventional packet-based inspection method employs an algorithm that enables inspection of a pattern divided into several packets, the accuracy is inferior because the file offset cannot be specified in the inspection rule, and the offset is not specified at all positions. There is a problem that an unnecessary inspection must be performed.

만약 파일 오프셋을 지정할 수 있다면, 도 7에 도시된 것과 같이 파일의 오프셋(710)이 '3'인 경우에 한번만 "ove y"를 비교하면 되지만, 종래 패킷 단위 검사 방식은 패킷으로 나뉘어질 때 패킷이 어떤 크기로 나누어질지 예상할 수 없고, 현재 패킷이 파일의 어느 부분인지 알 수 없기 때문에 패킷에서 오프셋을 특정할 수 없다. 따라서, 종래 패킷 단위 검사 방식은 파일에서 특정 오프셋에 있는 패턴을 검사할 때도 패킷 단위에서 모든 패킷의 처음부터 끝까지 계속해서 비교를 수행해야 한다. 이러한 문제점은 궁극적으로 엄청난 양의 연산 오버헤드를 유발하게 되고, 심각한 성능 저하가 발생하게 된다. If the file offset can be specified, "ove y" is compared only once when the file's offset 710 is '3', as shown in FIG. You can't predict what size to divide, and you can't specify the offset in the packet because you don't know which part of the file is the current packet. Therefore, the conventional packet-based inspection method must continuously perform the comparison from beginning to end of every packet in a packet even when checking a pattern at a specific offset in a file. This problem ultimately incurs a great deal of computational overhead and serious performance degradation.

이와 같이, 정확성 문제와 성능 문제로 인해 네트워크 장비에서 종래의 패킷 단위 검사 방식으로 파일의 특정 패턴을 검사하는 것은 불가능하다고 볼 수 있다. As such, due to accuracy and performance issues, it may be considered impossible to check a specific pattern of a file using a conventional packet-based inspection method in a network device.

한편, 종래 패킷 단위 검사 방식에 따른 이메일웜의 차단 방법은 이메일웜 첨부 파일의 규칙에 오프셋을 지정할 수 없고, 어떤 패킷에 그 규칙을 위반하는 패턴이 포함될지 예상할 수 없기 때문에 목적지 포트가 예를 들어, 25번인 모든 패킷에 대해서 모든 데이터 영역을 검색하도록 규칙을 설정할 수 밖에 없다. 만약 검사 규칙이 도 15에 도시된 것과 같이 8개인 경우라면, 네트워크는 상기 8개의 검사 규칙을 모든 패킷마다 데이터의 처음부터 끝까지 진행하면서 비교를 계속해야 한다. 이는 네트워크의 심각한 성능 저하를 유발하며, 상기 규칙의 개수가 많아질수록 처리 성능은 계속해서 떨어지게 마련이다.On the other hand, the blocking method of the email worm according to the conventional packet inspection method cannot specify an offset in the rule of the email worm attachment and cannot predict which packet contains a pattern that violates the rule. For example, you can set a rule to search all data areas for every packet numbered 25. If there are eight check rules as shown in Fig. 15, the network must continue the comparison while proceeding through the eight check rules from beginning to end of data for every packet. This causes serious performance degradation of the network, and as the number of rules increases, processing performance continues to drop.

이와 같이, 네트워크에서 종래 패킷 단위 이메일 검사 방식은 상기 이메일웜의 경우 첨부 파일의 위치가 가변적이기 때문에 패턴이 하나의 패킷 안에 들어간다는 보장이 없고, 여러 패킷에 걸쳐 있을 수 있는데 이러한 상황에서는 상기 이메일웜을 찾아낼 수 없는 심각한 문제점이 있다. 또한, 종래 패킷 단위 이메일 검사 방식은 패턴을 찾았다고 하더라도 특정 오프셋에서 발견한 것이 아니기 때문에 잘 못된 탐지일 가능성이 아주 높은 문제점도 있다.As described above, the conventional packet-based email scanning method in the network does not guarantee that the pattern fits in one packet because the location of the attachment is variable in the email worm, and may be spread over several packets. There is a serious problem that cannot be found. In addition, the conventional packet-based e-mail inspection method has a problem that is very likely to be a false detection because the pattern is not found at a specific offset even if the pattern is found.

대량으로 발생하는 이메일웜을 차단하기 위해서는 빠른 성능과 정확성이 요구되는데 기존의 네트워크와 보안장비에 적용되어 있는 기술로는 이러한 요구에 대응하는데 한계가 있다.Fast performance and accuracy are required to block large numbers of e-mail worms. However, the technology applied to existing networks and security devices is limited in responding to these demands.

본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 네트워크에서 파일을 검사할 때 파일 재조합 검사 방식과 패킷 단위 검사 방식의 한계점을 극복한 것으로 파일을 재조합하지 않고 패킷 단위로 검사하면서도 파일을 재조합하는 것과 동일한 검사 정확도를 유지할 수 있는 방법 및 그 장치를 제공하는 것을 목적으로 한다.The present invention has been made to solve the above problems, and overcomes the limitations of the file recombination check method and packet unit check method when checking a file in a network, recombining the file while checking the file by packet without recombining the file. It is an object of the present invention to provide a method and an apparatus capable of maintaining the same inspection accuracy as the above.

본 발명의 다른 목적은, 네트워크를 통해 전송되는 파일 검사를 보다 신속하게 처리하는 방법 및 그 장치를 제공하는 것을 목적으로 한다.Another object of the present invention is to provide a method and apparatus for more quickly processing file inspection transmitted through a network.

본 발명의 또 다른 목적은, 네트워크를 통해 전송되는 패킷의 가상 오프셋을 계산하여 수신된 패킷이 파일에서의 위치를 파악하는 방법 및 그 장치를 제공하는 데에 있다.It is still another object of the present invention to provide a method and apparatus for calculating a virtual offset of a packet transmitted through a network to determine a position of a received packet in a file.

본 발명의 또 다른 목적은, 네트워크를 통해 수신된 패킷을 파일의 위치에 대응하는 검사 패턴과 비교하는 방법 및 그 장치를 제공하는 데에 있다.It is still another object of the present invention to provide a method and apparatus for comparing a packet received over a network with a check pattern corresponding to the location of a file.

상기의 목적을 이루기 위한 본 발명의 일실시예에 따른 네트워크 장비에서 소정의 네트워크를 통해 전송되는 파일을 검사하는 방법은, 검사할 패턴을 파일의 오프셋(offset)을 기준으로 하는 패턴 리스트(pattern list)를 저장하고 유지하는 단계 - 상기 패턴은 상기 파일의 소정 오프셋에 위치해야 하는 문자열 정보를 포함함 -; 상기 네트워크의 세션을 추적하여 파일 전송 시작을 감지하는 단계; 상기 파일 전송 시작을 감지함에 따라 상기 파일에서 나누어진 패킷을 수신하는 단계; 상기 전송되는 파일의 세션 정보를 참조하여 상기 수신된 패킷의 오프셋이 상기 파일의 어느 부분에 위치하는지를 추적하는 단계; 상기 수신된 패킷의 가상 오프셋이 상기 파일에서 추적할 필요가 있는 위치인 오프셋에 해당하는 경우 상기 수신된 패킷을 상기 오프셋에 대응하는 검사할 패턴과 비교하는 단계 - 상기 가상 오프셋은 상기 수신된 패킷이 상기 파일의 어느 부분에 위치하는지를 나타내는 정보임 -; 및 상기 비교 결과에 따라 상기 수신된 패킷에 대한 전송을 제어하는 단계를 포함하는 것을 특징으로 한다.In the network device according to an embodiment of the present invention for achieving the above object, a method for inspecting a file transmitted through a predetermined network, a pattern list based on the offset of the file (pattern list) Storing and maintaining the pattern, wherein the pattern includes string information that must be located at a predetermined offset of the file; Detecting a start of file transfer by tracking a session of the network; Receiving a packet divided in the file in response to detecting the start of the file transfer; Tracking in which part of the file an offset of the received packet is located by referring to session information of the transmitted file; Comparing the received packet with a pattern to be inspected corresponding to the offset if the virtual offset of the received packet corresponds to an offset that is a location that needs to be tracked in the file, the virtual offset being determined by the received packet Information indicating where in the file it is located; And controlling transmission of the received packet according to the comparison result.

또한, 상기 목적을 달성하기 위한 기술적 구성으로서, 파일을 패킷으로 전송하는 네트워크에서 파일을 검사하는 네트워크 장비는, 검사할 패턴 리스트를 상기 파일의 오프셋(offset)을 기준으로 배열하여 저장하는 패턴 저장부 - 상기 패턴은 상기 파일의 소정 오프셋에서 일치해야 하는 문자열 정보를 포함함 -; 상기 네트워크의 세션을 추적하여 파일 전송 시작을 감지하는 감지부; 상기 파일 전송 시작에 따라 패킷을 수신하는 수신부; 상기 전송되는 파일의 세션 정보를 참조하여 상기 수신된 패킷이 상기 파일의 어느 부분의 위치인지를 추적하는 위치 추적부; 상기 수신된 패킷이 상기 파일의 오프셋에 해당하는 경우 상기 패킷을 상기 오프셋에 대응하는 패턴을 비교하는 패턴 비교부; 및 상기 패턴의 검사 결과에 따라 상기 패킷 전송을 제어하는 전송 제어부를 포함하는 것을 특징으로 한다.In addition, as a technical configuration for achieving the above object, a network device for inspecting a file in a network that transmits a file as a packet, the pattern storage unit for arranging and storing the list of patterns to be inspected based on the offset of the file The pattern includes string information that must match at a predetermined offset of the file; A detector for detecting a file transfer start by tracking a session of the network; A receiver which receives a packet according to the start of the file transfer; A location tracking unit for tracking a location of the file in which the received packet is located by referring to session information of the transmitted file; A pattern comparison unit comparing the packet corresponding to the offset when the received packet corresponds to the offset of the file; And a transmission control unit for controlling the packet transmission according to the inspection result of the pattern.

이하, 첨부된 도면들을 참조하여 네트워크를 통해 전송되는 파일 검사 방법 및 그 장치에 대하여 설명한다.Hereinafter, a method and an apparatus for checking a file transmitted through a network will be described with reference to the accompanying drawings.

도 12는 본 발명의 일실시예에 따른 네트워크를 통해 전송되는 파일을 검사하는 장치의 구성을 나타내는 도면으로서, 네트워크 장비(1200)는 패턴 저장부(1210), 감지부(1220), 수신부(1230), 위치 추적부(1240), 패턴 비교부(1250), 전송 제어부(1260), 및 전송부(1270)를 포함한다.12 is a diagram illustrating a configuration of an apparatus for inspecting a file transmitted through a network according to an embodiment of the present invention. The network device 1200 includes a pattern storage unit 1210, a detection unit 1220, and a reception unit 1230. ), A location tracking unit 1240, a pattern comparison unit 1250, a transmission control unit 1260, and a transmission unit 1270.

도 12를 참조하면, 패턴 저장부(1210)는 검사할 패턴 리스트를 상기 파일의 오프셋(offset)을 기준으로 배열하여 저장한다. 상기 패턴 리스트는 도 13에 도시된 것과 같이 각 규칙에 대응하는 시그니쳐(Signature) 정보를 포함한다. 상기 시그니쳐 정보는 파일의 오프셋에 대응하는 검사해야 할 패턴 정보를 포함한다. 상기 패턴은 상기 파일의 소정 오프셋에서 일치해야 하는 문자열 정보를 포함한다. 상기 문자열 정보는 2진 코드로 구현될 수도 있다. Referring to FIG. 12, the pattern storage unit 1210 arranges and stores a pattern list to be inspected based on an offset of the file. The pattern list includes signature information corresponding to each rule as shown in FIG. 13. The signature information includes pattern information to be checked corresponding to the offset of the file. The pattern includes string information that must match at a predetermined offset of the file. The string information may be implemented in binary code.

감지부(1220)는 상기 네트워크의 세션을 추적하여 파일 전송 시작을 감지한다. The detector 1220 detects the start of file transfer by tracking the session of the network.

수신부(1230)는 상기 파일 전송 시작에 따라 상기 네트워크를 통해 전송되는 패킷을 수신한다. The receiver 1230 receives a packet transmitted through the network according to the start of the file transfer.

위치 추적부(1240)는 상기 전송되는 파일의 세션 정보를 참조하여 상기 수신된 패킷이 상기 파일의 어느 부분의 위치인지를 추적한다. 위치 추적부(1240)는 상기 네트워크를 통해 파일의 전송이 종료될 때까지 전송되는 패킷들이 전체 파일 의 어떤 부분인지를 나타내는 가상 오프셋(Virtual Offset)을 계산함으로써 상기 패킷의 위치를 추적한다. 위치 추적부(1240)는 상기 전송되는 파일의 세션 정보를 참조하여 상기 패킷의 오프셋에 대한 상기 파일의 오프셋인 가상 오프셋(920)를 계산한다. 위치 추적부(1240)는 도 9를 참조하면, 제2 패킷(P2)의 시작 부분이 전체 파일에서 오프셋이 '2'에 해당하므로 제2 패킷(P2)의 데이터들에 대한 가상 오프셋(920)을 '2'부터 '6'까지로 지정한다. 마찬가지로 세 번째 패킷(P3)은 '7'에서 '9'까지의 가상 오프셋으로 지정될 수 있다. 위치 추적부(1240)는 상기 가상 오프셋으로부터 상기 패킷 데이터(930)의 위치가 전체 파일의 어느 위치에 해당하는지를 추적할 수 있다. The location tracker 1240 tracks which part of the file the location of the received packet is by referring to session information of the transmitted file. The location tracking unit 1240 tracks the location of the packet by calculating a virtual offset indicating which part of the entire file is transmitted until the transmission of the file through the network is completed. The location tracker 1240 calculates a virtual offset 920 that is an offset of the file with respect to an offset of the packet by referring to session information of the transmitted file. Referring to FIG. 9, the location tracking unit 1240 may have a virtual offset 920 of data of the second packet P2 since the beginning of the second packet P2 corresponds to an offset of '2' in the entire file. Is specified as '2' through '6'. Similarly, the third packet P3 may be designated as a virtual offset from '7' to '9'. The location tracker 1240 may track which location of the entire file corresponds to the location of the packet data 930 from the virtual offset.

패턴 비교부(1250)는 도 13에 도시된 것과 같은 규칙 테이블을 참조하여 상기 수신된 패킷이 상기 파일의 오프셋에 해당하는 경우 상기 패킷을 상기 오프셋에 대응하는 패턴을 비교한다. 패턴 비교부(1250)는 규칙을 검사할 때 순차적으로 규칙을 검사하는 것이 아니라 현재 오프셋에서 일치가 되어야 하는 부분들을 규칙에서 분리해서 선택적으로 비교함으로써 패킷에서 비교하는 규칙의 범위를 최소화함으로써 성능을 향상시킨다. The pattern comparison unit 1250 compares the packet with the pattern corresponding to the offset when the received packet corresponds to the offset of the file with reference to a rule table as shown in FIG. 13. The pattern comparator 1250 improves performance by minimizing the range of rules compared in a packet by selectively comparing parts to be matched at the current offset in the rule, instead of checking the rules sequentially when checking the rules. Let's do it.

전송 제어부(1260)는 상기 패턴의 검사 결과에 따라 상기 패킷 전송을 제어한다.The transmission control unit 1260 controls the packet transmission according to the inspection result of the pattern.

전송부(1270)는 전송 제어부(1260)의 제어에 따라 상기 패킷을 전송한다.The transmission unit 1270 transmits the packet under the control of the transmission control unit 1260.

상술한 본 발명에 따른 네트워크 장비는 스위치, 라우터, 방화벽, IPS(Intrusion Prevention System), 바이러스 월(virus wall), 및 ADSL 모뎀 중 어 느 하나일 수 있다. The network equipment according to the present invention described above may be any one of a switch, a router, a firewall, an intrusion prevention system (IPS), a virus wall, and an ADSL modem.

네트워크 장비(1200)가 도 10에 도시된 것과 같이 예를 들어, 규칙 4개의 검사를 수행한다고 가정한다. 도 10을 참조하면, 제1 규칙(1010)은 수신된 패킷이 파일의 처음(파일 오프셋 또는 가상 오프셋이 '0'인 경우)에 위치하고, 상기 위치에 대응하는 패킷의 데이터에 "by"가 존재하면 상기 패킷을 차단한다. Assume that network equipment 1200 performs four checks, for example, as shown in FIG. Referring to FIG. 10, the first rule 1010 is that the received packet is located at the beginning of the file (when the file offset or virtual offset is '0'), and "by" exists in the data of the packet corresponding to the location. Block the packet.

제2 규칙(1020)은 수신된 패킷이 파일의 세 번째 오프셋에 해당되는 가상 오프셋(3)을 포함하고, 상기 가상 오프셋을 포함하는 패킷의 데이터에 "ove y"가 존재하면, 상기 패킷을 차단한다. The second rule 1020 blocks the packet if the received packet includes a virtual offset 3 corresponding to the third offset of the file, and if "ove y" exists in the data of the packet including the virtual offset. do.

제3 규칙(1030)은 수신된 패킷이 파일의 다섯 번째 오프셋에 해당되는 가상 오프셋(5)을 포함하고, 상기 가상 오프셋을 포함하는 패킷의 데이터에 "days"가 존재하면, 상기 패킷을 차단한다. The third rule 1030 blocks the packet if the received packet includes the virtual offset 5 corresponding to the fifth offset of the file and "days" exists in the data of the packet including the virtual offset. .

제4 규칙(1040)은 수신된 패킷이 파일의 열 번째 오프셋에 해당되는 가상 오프셋(10)을 포함하고, 상기 가상 오프셋을 포함하는 패킷의 데이터에 "hi"가 존재하면, 상기 패킷을 차단한다. The fourth rule 1040 blocks the packet if the received packet includes the virtual offset 10 corresponding to the tenth offset of the file, and "hi" exists in the data of the packet including the virtual offset. .

본 발명에 따른 네트워크 장비에서 상기 4개의 규칙을 적용하여 패킷을 검사하는 절차는 다음과 같다.The procedure of inspecting a packet by applying the four rules in the network equipment according to the present invention is as follows.

도 10 내지 도 12를 참조하면, 네트워크 장비(1200)는 수신부(1230)를 통해 제1 패킷(P1)을 수신하면, 위치 추적부(1240)를 통해 제1 패킷(P1)에 대한 위치를 추적한다. 위치 추적부(1240)는 상기 전송되는 파일의 세션 정보를 참조하여 제1 패킷(P1)의 가상 오프셋을 계산하여 제1 패킷(P1)이 상기 파일의 어느 부분에 위치 하는지의 정보를 추적한다. 네트워크 장비(1200)는 제1 패킷(P1)에 대한 가상 오프셋이 '0'에서 '1'이므로 패턴 비교부(1250)를 통해 상기 파일의 처음에 해당하는 제1 규칙(1010)과 제1 패킷(P1)을 비교한다. 네트워크 장비(1200)는 패턴 비교부(1250)를 통해 비교한 결과로서 만약 제1 규칙(1010)에 해당하는 패턴이 존재하면, 전송 제어부(1260)를 통해 제1 패킷(P1)의 전송을 차단한다. 네트워크 장비(1200)는 수신부(1230)를 통해 제2 패킷(P2)이 수신되면, 위치 추적부(1240)를 통해 상기 수신된 제2 패킷(P2)의 위치를 추적한다. 위치 추적부(1240)는 제2 패킷(P2)에 대한 패킷 오프셋(910)이 '0'에서 '4'이므로, 상기 패킷 오프셋(910)과 상기 파일의 세션 정보를 이용하여 제2 패킷(P2)에 대한 가상 오프셋(920)을 계산한다. 제2 패킷(P2)에 대한 계산된 가상 오프셋(920)은 '2'에서 '6'이다. 네트워크 장비(1200)는 제2 패킷(P2)의 가상 오프셋(920)이 제2 규칙(1020)에 대응하는 위치 정보(3부터 7까지)에 포함되므로 패턴 비교부(1250)를 통해 제2 규칙(1020)과 제2 패킷(P2)을 비교한다. 네트워크 장비(1200)는 패턴 비교부(1250)의 비교 결과에 따라 제2 규칙(1020)에 해당하는 단어가 존재하면, 전송 제어부(1260)를 통해 제2 패킷(P2)의 전송을 차단한다. 네트워크 장비(1200)는 예를 들어, 제2 규칙(1020)과 부분적으로만 일치한 경우 제2 규칙(1020)에서 부분적으로 일치한 부분에 대한 위치를 세션 정보에 저장해둔다. 네트워크 장비(1200)는 제2 규칙(1020)과 부분적으로 일치하는 경우 계속해서 다음 규칙을 처리한다. 네트워크 장비(1200)는 패턴 비교부(1250)의 비교 결과에 따라 제3 규칙(1030)과 제2 패킷(P2)이 일치하지 않으므로 제3 패킷(P3)을 처리한다. 네트워크 장비(1200)는 제 2규칙(1020)을 제3 패킷(P3) 의 가상 오프셋에 해당하는 "y"에 대해서만 비교하고 일치하였으므로 차단한다. 네트워크 장비(1200)는 제4 규칙(1040)이 전송되는 파일의 가상 오프셋의 범위 밖이기 때문에 비교하지 않는다. 10 to 12, when the network device 1200 receives the first packet P1 through the receiver 1230, the network device 1200 tracks the position of the first packet P1 through the location tracker 1240. do. The location tracking unit 1240 calculates a virtual offset of the first packet P1 by referring to the session information of the transmitted file and tracks information on which part of the file the first packet P1 is located. Since the virtual offset for the first packet P1 is '0' to '1', the network device 1200 uses the pattern comparison unit 1250 to determine the first rule 1010 and the first packet corresponding to the beginning of the file. Compare (P1). The network device 1200 blocks the transmission of the first packet P1 through the transmission control unit 1260 if a pattern corresponding to the first rule 1010 exists as a result of the comparison through the pattern comparison unit 1250. do. When the second packet P2 is received through the receiver 1230, the network device 1200 tracks the location of the received second packet P2 through the location tracker 1240. The location tracking unit 1240 uses the packet offset 910 and the session information of the file since the packet offset 910 of the second packet P2 is '0' to '4'. Compute a virtual offset 920 for. The calculated virtual offset 920 for the second packet P2 is '2' to '6'. The network device 1200 includes the second rule through the pattern comparison unit 1250 since the virtual offset 920 of the second packet P2 is included in the location information 3 to 7 corresponding to the second rule 1020. 1020 and the second packet (P2) is compared. If the word corresponding to the second rule 1020 is present according to the comparison result of the pattern comparison unit 1250, the network device 1200 blocks transmission of the second packet P2 through the transmission control unit 1260. For example, if the network device 1200 partially matches the second rule 1020, the network device 1200 stores the location of the partially matched portion of the second rule 1020 in the session information. The network equipment 1200 continues to process the next rule if it partially matches the second rule 1020. The network device 1200 processes the third packet P3 since the third rule 1030 and the second packet P2 do not match according to the comparison result of the pattern comparison unit 1250. The network device 1200 compares the second rule 1020 only with respect to “y” corresponding to the virtual offset of the third packet P3 and blocks the match. The network equipment 1200 does not compare because the fourth rule 1040 is outside the range of the virtual offset of the file to be transmitted.

한편, 이메일웜은 이메일을 통해서 전파되는 웜으로, 피해자의 컴퓨터에서 실행되어 대량의 이메일을 무작위로 전송하는 웜이다. 상기 이메일웜은 전파를 위해서 자기가 전송하는 이메일에 자기 자신을 포함한다. 따라서, 상기 이메일웜을 차단하기 위해서는 이메일에 첨부된 파일을 검사해야 한다. On the other hand, an email worm is a worm that spreads through email and is executed on a victim's computer to send a large amount of email randomly. The email worm includes itself in the emails it sends for propagation. Therefore, in order to block the email worm, a file attached to the email should be scanned.

상기 이메일웜의 구조는 도 11에 도시된 것과 같다.The structure of the email worm is as shown in FIG.

도 11을 참조하면, 상기 이메일이 전송되기 위한 헤더 정보(1110)가 포함되어 있고, MIME 헤더(1120), 인코딩된 첨부 파일(1130)의 순으로 저장된다. Referring to FIG. 11, header information 1110 for transmitting the email is included, and is stored in order of a MIME header 1120 and an encoded attachment file 1130.

이메일이 전송되는 SMTP 프로토콜은 상기 이메일이 전달되면서 전달하는 서버들의 정보들이 상기 이메일의 헤더 앞부분에 추가되기 때문에 전체 이메일의 크기는 항상 가변적이고, 전체 이메일에서 첨부 파일이 시작되는 위치 또한 가변적이다. 이런 가변적인 이메일웜을 차단하기 위해서는 SMTP 상태 추적 기술이 필수적이다. In the SMTP protocol in which an email is transmitted, the size of the entire email is always variable because the information of servers delivering the email is added to the header of the email, and the location of the attachment in the entire email is also variable. SMTP status tracking technology is essential to block this variable email worm.

SMTP는 이메일을 전송하기 위해서 사용되는 프로토콜이다. 정확한 이메일웜 차단을 위해서 SMTP 상태 추적 기술을 사용하며, 상기 SMTP 상태 추적 기술을 이용한 메일 필터링 방법은 본 출원인에 의해 2004년 9월 24일에 출원된 출원번호 제10-2004-0077389호에 상세히 설명되어 있다.SMTP is a protocol used to send email. SMTP status tracking technology is used for accurate email worm blocking, and the mail filtering method using the SMTP status tracking technology is described in detail in the application number 10-2004-0077389 filed on September 24, 2004 by the present applicant. It is.

이메일웜을 차단하기 위해서는 이메일에 첨부되어 있는 첨부 파일에 대한 검 사를 수행해야 하는데 이 첨부 파일의 시작 위치는 상기 이메일 내에서도 정해져 있지 않다. 따라서, 본 발명에 따른 네트워크 장비는 SMTP 세션 추적을 통해서 첨부 파일의 시작 위치를 찾아내고 상기 첨부 파일이 발견되면, 패킷 단위 파일 검사 방식을 적용하여 이메일웜을 찾아낸다.In order to block the email worm, it is necessary to check the attachments attached to the e-mail. The starting position of the attachment is not defined in the e-mail. Therefore, the network device according to the present invention finds the starting position of the attached file through the SMTP session tracking, and if the attached file is found, applies the packet-based file inspection method to find the email worm.

상기 이메일의 첨부 파일에서 이메일웜을 찾아내는 방식은 도 14에 도시된 것과 같다. The method of finding an email worm in the attachment of the email is as shown in FIG.

도 14를 참조하면, 네트워크 장비(1200)는 상기 이메일의 첨부가 시작되면, 가상 오프셋을 계산하여 각 패킷에서 비교할 필요가 있는 규칙들 중에서 상기 가상 오프셋에 속하는 부분만을 한번만 비교하면 한다. 네트워크 장비(1200)는 앞서 설명된 바와 같이 수신된 패킷이 검사 규칙들에 의해 검사되는 오프셋을 넘어서는 경우 상기 세션의 패킷들을 모두 바이패스(bypass)시킴으로써 종래 파일 재조합 검사 방식 또는 종래 패킷 단위 검사 방식과 비교할 때 그 처리 성능을 향상시킬 수 있다. Referring to FIG. 14, when the attachment of the e-mail is started, the network device 1200 needs to calculate only the virtual offset and compare only the part belonging to the virtual offset once among the rules that need to be compared in each packet. As described above, the network device 1200 bypasses all the packets of the session when the received packet exceeds the offset checked by the inspection rules. In comparison, the processing performance can be improved.

본 발명에 따른 비교 횟수는 시그니쳐 개수와 동일하며, 종래 패킷 단위 이메일 검사 방식에 따른 비교 횟수는 시그니쳐 개수*세션 데이터량/평균 시그니쳐 크기에 해당된다.The number of comparisons according to the present invention is the same as the number of signatures, and the number of comparisons according to the conventional packet-based email checking method corresponds to the number of signatures * session data amount / average signature size.

예를 들면, 30KB 세션, 시그니쳐 100개, 패턴 길이가 20바이트인 경우 도 14에 도시된 본 발명에 따른 비교 횟수는 시그니쳐 개수와 동일한 100인데 반해 도 15에 도시된 종래 패킷 단위 이메일 검사 방식에 따른 비교 횟수는 100*(30*1024)/20=153,600이다. 따라서, 본 발명의 파일 검사 방식에 따른 비교 횟수에 비해 종래 패킷 단위 이메일 검사 방식에 따른 비교 횟수가 무려 1,536배나 된다. 이와 같이, 본 발명에 따른 파일 검사 방식은 종래 검사 방식에 비해 그 비교 횟수가 현저하게 감소됨에 따라 파일 검사 속도가 상대적으로 빨라진다.For example, in the case of a 30KB session, 100 signatures, and a pattern length of 20 bytes, the number of comparisons according to the present invention shown in FIG. 14 is equal to the number of signatures, whereas the number of signatures according to the conventional packet unit email checking method shown in FIG. The number of comparisons is 100 * (30 * 1024) / 20 = 153,600. Therefore, the number of comparisons according to the conventional packet-based email inspection method is as much as 1,536 times compared to the comparison number according to the file inspection method of the present invention. As described above, the file checking method according to the present invention is relatively faster than the conventional scanning method as the number of comparisons is significantly reduced.

도 16은 본 발명의 실시예에 따른 네트워크 장비에서의 파일을 검사하기 위한 동작 흐름도를 나타내는 도면이다.16 is a flowchart illustrating an operation for checking a file in a network device according to an embodiment of the present invention.

도 16을 참조하면, 단계(1610)에서 네트워크 장비는 검사할 패턴을 파일의 오프셋(offset)을 기준으로 하는 패턴 리스트(pattern list)를 저장하고 유지한다. 상기 패턴은 상기 파일의 소정 오프셋에 위치해야 하는 문자열 정보를 포함한다. 상기 패턴 리스트는 동일 오프셋에 대한 패턴이 많은 경우 해시 테이블(hash table)로 구성될 수 있다. Referring to FIG. 16, in operation 1610, the network device stores and maintains a pattern list based on an offset of a file for a pattern to be checked. The pattern includes string information that must be located at a predetermined offset of the file. The pattern list may be configured as a hash table when there are many patterns for the same offset.

단계(1620)에서 상기 네트워크 장비는 상기 네트워크의 세션을 추적하여 파일 전송 시작을 감지한다.In step 1620, the network device tracks the session of the network to detect the start of file transfer.

단계(1630)에서 상기 네트워크 장비는 상기 파일 전송 시작을 감지함에 따라 상기 파일에서 나누어진 패킷을 수신한다.In step 1630, the network device receives the packet divided in the file as detecting the start of the file transfer.

단계(1640)에서 상기 네트워크 장비는 상기 전송되는 파일의 세션 정보를 참조하여 상기 수신된 패킷의 오프셋이 상기 파일의 어느 부분에 위치하는지를 추적한다.In step 1640, the network equipment keeps track of where the offset of the received packet is located in the file by referring to the session information of the transmitted file.

단계(1650)에서 상기 네트워크 장비는 상기 수신된 패킷의 가상 오프셋이 상기 파일에서 추적할 필요가 있는 위치에 해당하는지를 판단한다. In step 1650, the network equipment determines whether the virtual offset of the received packet corresponds to a location that needs to be tracked in the file.

상기 수신된 패킷의 오프셋이 상기 추적할 필요가 있는 위치에 해당하는 오 프셋인 경우 단계(1660)에서 상기 네트워크 장비는 상기 수신된 패킷을 상기 오프셋에 대응하는 검사할 패턴과 비교한다. 상기 가상 오프셋은 상기 수신된 패킷이 상기 파일의 어느 부분에 위치하는지를 나타내는 정보이다. 상기 네트워크 장비는 상기 수신된 패킷을 상기 오프셋에 대응하는 검사할 패턴과 비교할 때 상기 해시 테이블로 구성된 경우 해시를 계산해서 동일 해시의 패턴만을 검사한다. If the offset of the received packet is an offset corresponding to the location that needs to be tracked, in step 1660 the network equipment compares the received packet with a pattern to check corresponding to the offset. The virtual offset is information indicating in which part of the file the received packet is located. When comparing the received packet with the pattern to be checked corresponding to the offset, the network equipment calculates a hash when the hash table is configured to check only the pattern of the same hash.

단계(1670)에서 상기 네트워크 장비는 상기 비교 결과에 따라 상기 수신된 패킷에 대한 전송을 제어한다. 상기 네트워크 장비는 단계(1670)를 수행할 때 상기 가상 오프셋이 상기 패턴 리스트에 포함된 상기 패턴의 오프셋을 초과하는 경우 상기 세션의 패킷들을 모두 바이패스한다. In step 1670, the network equipment controls the transmission of the received packet according to the comparison result. When performing the step 1670, the network equipment bypasses all packets of the session if the virtual offset exceeds the offset of the pattern included in the pattern list.

이와 같이, 본 발명은 수신된 패킷에 대한 파일의 위치를 파악하고, 상기 파악된 위치에 대응하는 검사 패턴을 비교하여 동일한 패킷 데이터가 없거나 또는 상기 파악된 위치에 대응하는 검사 패턴이 없는 경우 검사를 수행하지 않아도 수신된 패킷을 전송할 수 있으므로 그 만큼 파일 검사를 수행하는데 걸리는 시간을 단축시킬 수 있는 이점이 있다. As such, the present invention determines the location of a file with respect to the received packet and compares the inspection pattern corresponding to the identified position to perform an inspection if there is no identical packet data or there is no inspection pattern corresponding to the identified position. Since the received packet can be transmitted without performing it, the time required to perform the file check can be shortened.

도 17은 본 발명의 실시예에 따른 파일 검사 방법에 있어서, 패킷의 오프셋이 파일의 어느 부분에 위치하는지를 추적하는 단계를 구체화한 일례를 나타내는 도면이다.FIG. 17 is a diagram illustrating an example in which a step of tracking where an offset of a packet is located in a file in the method for checking a file according to an embodiment of the present invention.

도 17을 참조하면, 단계(1710)에서 상기 네트워크 장비는 상기 수신된 패킷의 오프셋을 참조하여 상기 파일에 대한 상기 패킷의 가상 오프셋을 계산한다.Referring to FIG. 17, in step 1710, the network equipment calculates a virtual offset of the packet with respect to the file by referring to the offset of the received packet.

단계(1720)에서 상기 네트워크 장비는 상기 계산된 가상 오프셋으로 상기 파 일에서 상기 패킷의 위치를 파악한다.In step 1720, the network equipment locates the packet in the file with the calculated virtual offset.

도 18은 본 발명의 실시예에 따른 파일 검사 방법에 있어서, 수신된 패킷을 오프셋에 대응하는 검사할 패턴과 비교하는 단계를 구체화한 일례를 나타내는 도면이다.18 is a diagram illustrating an example in which a step of comparing a received packet with a pattern to be inspected corresponding to an offset in the file inspection method according to an embodiment of the present invention is specified.

도 18을 참조하면, 단계(1810)에서 상기 네트워크 장비는 상기 수신된 패킷의 이전 패킷에서 상기 패턴과 일부 일치한 부분을 검출한다. Referring to FIG. 18, in step 1810, the network equipment detects a portion of the received packet that partially matches the pattern.

단계(1820)에서 상기 네트워크 장비는 상기 수신된 패킷을 상기 패턴에서 상기 일부 일치한 부분 이외의 나머지 부분과 비교한다.In step 1820, the network equipment compares the received packet with the remainder other than the partially matched portion in the pattern.

단계(1830)에서 상기 네트워크 장비는 상기 수신된 패킷이 상기 패턴에서 상기 일부 일치한 부분 이외의 나머지 부분과 일치하는지의 여부를 판단한다.In step 1830, the network equipment determines whether the received packet matches the remaining portion other than the partially matched portion in the pattern.

상기 일부 일치한 부분 이외의 나머지 부분과 일치하는 경우 단계(1840)에서 상기 네트워크 장비는 상기 수신된 패킷이 상기 패턴과 전부 일치하는지의 여부를 판단한다. If it matches the remaining part other than the partially matched part, in step 1840, the network equipment determines whether the received packet completely matches the pattern.

상기 수신된 패킷이 상기 패턴과 전부 일치하지 않는 경우 즉, 상기 패턴과 부분적으로만 일치하는 경우 단계(1850)에서 상기 네트워크 장비는 세션 정보에 부분 일치 정보를 저장한다. If the received packet does not fully match the pattern, that is, only partially matches the pattern, in step 1850 the network equipment stores the partial match information in session information.

이와 달리, 상기 수신된 패킷이 상기 패턴과 전부 일치하는 경우 단계(1860)에서 상기 네트워크 장비는 상기 수신된 패킷이 상기 패턴과 일치함에 따라 그에 대응하는 처리 동작을 수행한다. 상기 네트워크 장비는 상기 패턴과 전부 일치하는 패킷이 포함된 파일을 차단한다. Alternatively, if the received packet matches all of the patterns, in step 1860 the network equipment performs a corresponding processing operation as the received packet matches the pattern. The network equipment blocks a file containing a packet that completely matches the pattern.

한편, 상기 비교 결과가 일치하지 않은 경우 단계(1870)에서 상기 네트워크 장비는 상기 수신된 패킷의 가상 오프셋에 대응하는 상기 패턴 리스트의 패턴들을 상기 수신된 패킷과 비교한다.On the other hand, if the comparison result does not match, in step 1870, the network equipment compares the patterns of the pattern list corresponding to the virtual offset of the received packet with the received packet.

단계(1871)에서 상기 네트워크 장비는 상기 수신된 패킷의 다른 위치(가상 오프셋)에 대응하는 패턴과 일치하는지의 여부를 판단한다.In step 1871, the network equipment determines whether or not the pattern matches a pattern corresponding to another location (virtual offset) of the received packet.

이와 달리, 상기 패턴과 일치하는 경우 단계(1872)에서 상기 네트워크 장비는 상기 수신된 패킷과 상기 패턴이 전부 일치하는지의 여부를 판단한다.Alternatively, if it matches the pattern, in step 1872, the network equipment determines whether the received packet and the pattern all match.

상기 패턴과 전부 일치하지 않고 부분적으로만 일치하는 경우 상기 네트워크 장비는 단계(1850)과 동일하게 상기 세션 정보에 부분 일치 정보를 저장한다. If the pattern does not match all but only partially, the network equipment stores partial match information in the session information in the same manner as in step 1850.

하지만, 상기 패턴과 전부 일치하는 경우 상기 네트워크 장비는 단계(1860)과 동일하게 상기 수신된 패킷에 대해 일치 처리 동작을 수행한다. However, if all of the patterns match, the network equipment performs a matching processing operation on the received packet in the same manner as in step 1860.

한편, 상기 패턴과 일치하지 않는 경우 단계(1873)에서 상기 네트워크 장비는 상기 수신된 패킷이 특정의 위치에 대응하는 패턴과 모두 일치하지 않으므로 상기 수신된 패킷을 전달하는 불일치 처리 동작을 수행한다. On the other hand, if the pattern does not match, in step 1873, the network equipment performs a mismatch processing operation for delivering the received packet since the received packet does not match all of the patterns corresponding to a specific location.

본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Embodiments of the invention include a computer readable medium containing program instructions for performing various computer-implemented operations. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical recording media such as CD-ROMs, DVDs, magnetic-optical media such as floppy disks, and ROM, RAM, flash memory, and the like. Hardware devices specifically configured to store and execute the same program instructions are included. The medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, or the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.

지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다.While specific embodiments of the present invention have been described so far, various modifications are possible without departing from the scope of the present invention.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허 청구의 범위뿐 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the claims below, but also by the equivalents of the claims.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허 청구 범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above-described embodiments, which can be variously modified and modified by those skilled in the art to which the present invention pertains. Modifications are possible. Accordingly, the spirit of the present invention should be understood only by the claims set forth below, and all equivalent or equivalent modifications thereof will belong to the scope of the present invention.

이상의 설명에서 알 수 있는 바와 같이, 본 발명에 따르면, 네트워크를 통해 전송되는 파일을 검사할 때 메모리에서 패킷을 재조합하지 않기 때문에 패킷을 저장하기 위해 많은 메모리가 필요하지 않고 파일 검사를 위해서 패킷의 전송을 지연시키지 않는 이점이 있다.As can be seen from the above description, according to the present invention, since the packet is not recombined in memory when inspecting a file transmitted over a network, a large amount of memory is not required to store the packet and the packet is transmitted for file inspection. There is an advantage of not delaying.

또, 본 발명에 따르면, 네트워크를 통해 전송되는 패킷의 가상 오프셋을 계산하여 수신된 패킷이 파일에서의 위치를 파악함으로써 파일 검사를 보다 정확하게 할 수 있는 이점이 있다.In addition, according to the present invention, by checking the virtual offset of the packet transmitted over the network by the location of the received packet in the file, there is an advantage that can be more accurate file inspection.

또, 본 발명에 따르면, 네트워크를 통해 수신된 패킷을 파일의 위치에 대응하는 검사 패턴만 비교함으로써 파일을 검사하는데 걸리는 시간을 단축시킬 수 있는 이점이 있다. Further, according to the present invention, there is an advantage that the time taken to inspect a file can be shortened by comparing only the inspection pattern corresponding to the location of the file with the packet received through the network.

본 발명에 따르면, 네트워크를 통해 전송되는 파일을 검사할 때 전체 세션에 속한 패킷의 위치 정보를 이용해서 패킷 단위로 파일을 검사함으로써 파일 검색을 보다 정확하고 빠르게 처리할 수 있는 이점이 있다. According to the present invention, when checking a file transmitted through a network, the file can be scanned more accurately and quickly by checking the file on a packet basis by using the location information of the packet belonging to the entire session.

Claims (10)

네트워크 장비에서 소정의 네트워크를 통해 전송되는 파일을 검사하는 방법에 있어서,In the method for checking a file transmitted over a predetermined network in a network device, 검사할 패턴을 파일의 오프셋(offset)을 기준으로 하는 패턴 리스트(pattern list)를 저장하고 유지하는 단계 - 상기 패턴은 상기 파일의 소정 오프셋에 위치해야 하는 문자열 정보를 포함함 -;Storing and maintaining a pattern list in which the pattern to be checked is based on an offset of a file, wherein the pattern includes string information that must be located at a predetermined offset of the file; 상기 네트워크의 세션을 추적하여 파일 전송 시작을 감지하는 단계;Detecting a start of file transfer by tracking a session of the network; 상기 파일 전송 시작을 감지함에 따라 상기 파일에서 나누어진 패킷을 수신하는 단계;Receiving a packet divided in the file in response to detecting the start of the file transfer; 상기 전송되는 파일의 세션 정보를 참조하여 상기 수신된 패킷의 오프셋이 상기 파일의 어느 부분에 위치하는지를 추적하는 단계;Tracking in which part of the file an offset of the received packet is located by referring to session information of the transmitted file; 상기 수신된 패킷의 가상 오프셋이 상기 파일에서 추적할 필요가 있는 위치인 오프셋에 해당하는 경우 상기 수신된 패킷을 상기 오프셋에 대응하는 검사할 패턴과 비교하는 단계 - 상기 가상 오프셋은 상기 수신된 패킷이 상기 파일의 어느 부분에 위치하는지를 나타내는 정보임 -; 및Comparing the received packet with a pattern to be inspected corresponding to the offset if the virtual offset of the received packet corresponds to an offset that is a location that needs to be tracked in the file, the virtual offset being determined by the received packet Information indicating where in the file it is located; And 상기 비교 결과에 따라 상기 수신된 패킷에 대한 전송을 제어하는 단계Controlling transmission for the received packet according to the comparison result 를 포함하는 것을 특징으로 하는 파일 검사 방법.File inspection method comprising a. 제1항에 있어서,The method of claim 1, 수신된 패킷의 오프셋이 상기 파일의 어느 부분에 위치하는지를 추적하는 상기 단계는The step of tracking where in the file the offset of the received packet is located 상기 수신된 패킷의 오프셋을 참조하여 상기 파일에 대한 상기 패킷의 가상 오프셋을 계산하는 단계; 및 Calculating a virtual offset of the packet relative to the file with reference to the offset of the received packet; And 상기 계산된 가상 오프셋으로 상기 파일에서 상기 패킷의 위치를 파악하는 단계를 포함하는 것을 특징으로 하는 파일 검사 방법.Determining the location of the packet in the file with the calculated virtual offset. 제1항에 있어서,The method of claim 1, 수신된 패킷을 상기 오프셋에 대응하는 검사할 패턴과 비교하는 상기 단계는,Comparing the received packet with the pattern to be checked corresponding to the offset, 상기 수신된 패킷의 이전 패킷에서 상기 패턴과 일부 일치한 부분을 검출한 경우 상기 수신된 패킷을 상기 패턴에서 상기 일부 일치한 부분 이외의 나머지 부분과 비교하여 일치하는지의 여부를 검사하는 단계;Checking whether the received packet matches the remaining portion other than the partially matched portion in the pattern when the portion of the previous packet of the received packet matches the pattern; 상기 비교 결과가 일치하지 않은 경우 상기 수신된 패킷을 상기 패턴 리스트에서 상기 수신된 패킷에 대한 파일의 위치에 대응하는 패턴과 비교하는 단계; 및Comparing the received packet with a pattern corresponding to a position of a file for the received packet in the pattern list if the comparison result does not match; And 상기 비교 결과로 상기 패킷의 끝부분에서 상기 패턴과 부분적으로 일치한 경우 상기 세션 정보에 상기 부분 일치 정보를 저장하는 단계를 포함하는 것을 특징으로 하는 파일 검사 방법.And storing the partial match information in the session information when the comparison results in partial matching with the pattern at the end of the packet. 제1항에 있어서,The method of claim 1, 상기 비교 결과에 따라 상기 수신된 패킷에 대한 전송을 제어하는 상기 단계는The controlling the transmission of the received packet according to the comparison result is 상기 가상 오프셋이 상기 패턴 리스트에 포함된 상기 패턴의 오프셋을 초과하는 경우 상기 세션의 패킷들을 모두 바이패스하는 것을 특징으로 하는 파일 검사 방법.And bypassing all packets of the session when the virtual offset exceeds an offset of the pattern included in the pattern list. 제1항에 있어서,The method of claim 1, 상기 패턴 리스트는 동일 오프셋에 대핸 패턴이 많은 경우 해시 테이블(Hash Table)로 구성되는 것을 특징으로 하는 파일 검사 방법.And the pattern list comprises a hash table when there are many patterns for the same offset. 제5항에 있어서,The method of claim 5, 수신된 패킷을 상기 오프셋에 대응하는 검사할 패턴과 비교하는 상기 단계는Comparing the received packet with the pattern to be inspected corresponding to the offset 상기 해시 테이블로 구성된 경우 해시를 계산해서 동일 해시의 패턴만을 검사하는 것을 특징으로 하는 파일 검사 방법.The file checking method of claim 1, wherein the hash table is calculated to check only patterns of the same hash. 제1항에 있어서,The method of claim 1, 상기 네트워크 장비는 스위치, 라우터, 방화벽, IPS, 바이러스월, 및 ADSL 모뎀 중 어느 하나인 것을 특징으로 하는 파일 검사 방법The network device is a file inspection method, characterized in that any one of a switch, router, firewall, IPS, virus wall, and ADSL modem 제1항 내지 제7항 중 어느 한 항의 방법을 컴퓨터에서 실행하기 위한 프로그 램을 기록하는 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium for recording a program for executing the method of any one of claims 1 to 7 on a computer. 소정의 네트워크를 통해 전송되는 파일을 패킷 단위로 수신하는 네트워크 장비에 있어서,In the network equipment that receives a file transmitted through a predetermined network in a packet unit, 검사할 패턴 리스트를 상기 파일의 오프셋(offset)을 기준으로 배열하여 저장하는 패턴 저장부 - 상기 패턴은 상기 파일의 소정 오프셋에서 일치해야 하는 문자열 정보를 포함함 -;A pattern storage unit arranged to store a pattern list to be checked based on an offset of the file, wherein the pattern includes string information that must match at a predetermined offset of the file; 상기 네트워크의 세션을 추적하여 파일 전송 시작을 감지하는 감지부;A detector for detecting a file transfer start by tracking a session of the network; 상기 파일 전송 시작에 따라 패킷을 수신하는 수신부; A receiver which receives a packet according to the start of the file transfer; 상기 전송되는 파일의 세션 정보를 참조하여 상기 수신된 패킷이 상기 파일의 어느 부분의 위치인지를 추적하는 위치 추적부; A location tracking unit for tracking a location of the file in which the received packet is located by referring to session information of the transmitted file; 상기 수신된 패킷이 상기 파일의 오프셋에 해당하는 경우 상기 패킷을 상기 오프셋에 대응하는 패턴을 비교하는 패턴 비교부; 및A pattern comparison unit comparing the packet corresponding to the offset when the received packet corresponds to the offset of the file; And 상기 패턴의 검사 결과에 따라 상기 패킷 전송을 제어하는 전송 제어부A transmission control unit for controlling the packet transmission according to the inspection result of the pattern 를 포함하는 것을 특징으로 하는 네트워크 장비.Network equipment comprising a. 제9항에 있어서,The method of claim 9, 상기 네트워크 장비는 스위치, 라우터, 방화벽, IPS, 바이러스 월(virus wall), 및 ADSL 모뎀 중 어느 하나인 것을 특징으로 하는 네트워크 장비.The network equipment is any one of a switch, a router, a firewall, an IPS, a virus wall, and an ADSL modem.
KR1020050041503A 2005-05-18 2005-05-18 Method for checking transmitted files in network and apparatus of enabling the method KR100729266B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050041503A KR100729266B1 (en) 2005-05-18 2005-05-18 Method for checking transmitted files in network and apparatus of enabling the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050041503A KR100729266B1 (en) 2005-05-18 2005-05-18 Method for checking transmitted files in network and apparatus of enabling the method

Publications (2)

Publication Number Publication Date
KR20060119002A true KR20060119002A (en) 2006-11-24
KR100729266B1 KR100729266B1 (en) 2007-06-15

Family

ID=37705924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050041503A KR100729266B1 (en) 2005-05-18 2005-05-18 Method for checking transmitted files in network and apparatus of enabling the method

Country Status (1)

Country Link
KR (1) KR100729266B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090093187A (en) * 2008-02-28 2009-09-02 윤성진 interception system of Pornographic and virus using of hash value.

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347087B1 (en) 1998-10-05 2002-02-12 Packet Engines Incorporated Content-based forwarding/filtering in a network switching device
KR100350451B1 (en) * 2000-03-13 2002-08-28 삼성전자 주식회사 Packet filtering method of network device
IL159264A0 (en) 2001-06-11 2004-06-01 Bluefire Security Technology Packet filtering system and methods
KR100488357B1 (en) * 2002-11-11 2005-05-11 주식회사 인티게이트 Apparatus for classifying service of ethernet packet and method of the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090093187A (en) * 2008-02-28 2009-09-02 윤성진 interception system of Pornographic and virus using of hash value.

Also Published As

Publication number Publication date
KR100729266B1 (en) 2007-06-15

Similar Documents

Publication Publication Date Title
US8474044B2 (en) Attack-resistant verification of auto-generated anti-malware signatures
EP1873992B1 (en) Packet classification in a network security device
KR101111433B1 (en) Active network defense system and method
US8353037B2 (en) Mitigating malicious file propagation with progressive identifiers
US8615785B2 (en) Network threat detection and mitigation
US8782787B2 (en) Distributed packet flow inspection and processing
US20040179477A1 (en) Method and apparatus for processing network packets
JP2015528263A (en) Network traffic processing system
EP3509001B1 (en) Method and apparatus for detecting zombie feature
TWI407328B (en) Network virus protection method and system
US7810158B2 (en) Methods and systems for deceptively trapping electronic worms
US20070166051A1 (en) Repeater, repeating method, repeating program, and network attack defending system
Manna et al. Review of syn-flooding attack detection mechanism
Steadman et al. Dnsxd: Detecting data exfiltration over dns
US20080295153A1 (en) System and method for detection and communication of computer infection status in a networked environment
CN115834091A (en) Network flow control method and related system
CN115017502A (en) Flow processing method and protection system
KR100729266B1 (en) Method for checking transmitted files in network and apparatus of enabling the method
CA2738690A1 (en) Distributed packet flow inspection and processing
KR101420301B1 (en) Method and apparatus for detecting ddos attack
US20170346844A1 (en) Mitigating Multiple Advanced Evasion Technique Attacks
EP2040437B1 (en) Distributed ISP system for the inspection and elimination of eThreats in a multi-path environment
Worms Electrical Engineering and Computer Science Department

Legal Events

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

Payment date: 20130730

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140610

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150522

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160610

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170609

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180611

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190610

Year of fee payment: 13