KR20160052978A - Ids system and method using the smartphone - Google Patents

Ids system and method using the smartphone Download PDF

Info

Publication number
KR20160052978A
KR20160052978A KR1020140148683A KR20140148683A KR20160052978A KR 20160052978 A KR20160052978 A KR 20160052978A KR 1020140148683 A KR1020140148683 A KR 1020140148683A KR 20140148683 A KR20140148683 A KR 20140148683A KR 20160052978 A KR20160052978 A KR 20160052978A
Authority
KR
South Korea
Prior art keywords
driver
data
packet
buffer
application
Prior art date
Application number
KR1020140148683A
Other languages
Korean (ko)
Inventor
김남호
정성철
석경우
Original Assignee
(주)엠텍정보
김남호
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)엠텍정보, 김남호 filed Critical (주)엠텍정보
Priority to KR1020140148683A priority Critical patent/KR20160052978A/en
Publication of KR20160052978A publication Critical patent/KR20160052978A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/121Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]

Landscapes

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

Abstract

The present invention relates to a system for monitoring intrusion detection of a server by using a smart phone and a method thereof and, more specifically, to a system for monitoring intrusion detection of a server by using a smart phone and a method thereof which parse data with respect to a packet through an intermediate driver realized between a miniport driver and a protocol driver which is an network driver interface specification (NDIS) driver to monitor and block a current network state through an application of a smart phone in case of an attack and an action with malicious intentions against a computer of a user.

Description

스마트폰을 이용한 서버의 침입탐지 모니터링 시스템 및 방법{IDS SYSTEM AND METHOD USING THE SMARTPHONE}TECHNICAL FIELD [0001] The present invention relates to an IDS system and a method for monitoring intrusion detection of a server using a smart phone,

본 발명은 스마트폰을 이용한 서버의 침입탐지 모니터링 시스템 및 방법에 관한 것으로서, 더욱 상세하게는 NDIS(Network Driver Interface Specification) 드라이버인 프로토콜 드라이버와 미니포트 드라이버 사이에 구현되는 인터미디어트 드라이버(Intermediate Driver)를 통해 패킷에 대한 데이터에 대한 정보를 파싱하여 악의적인 의도를 가지고 사용자의 컴퓨터에 대한 공격 및 행동 시에 어플리케이션을 통해 현재의 네트워크 상태를 스마트폰을 통해 모니터링하고 차단할 수 있는 스마트폰을 이용한 서버의 침입탐지 모니터링 시스템 및 방법에 관한 것이다.
The present invention relates to a system and a method for intrusion detection monitoring of a server using a smart phone, and more particularly, to a system and method for intrusion detection and monitoring of a server using a smart phone. More particularly, the present invention relates to an intermittent driver implemented between a Protocol Driver (NDIS (Network Driver Interface Specification) A server using a smart phone that can monitor and block the current network status through a smartphone through an application when the user attacks and acts on the user's computer with a malicious intention To an intrusion detection monitoring system and method.

인터넷으로 연결되는 서버 호스트가 늘어나는 상황에서 서버 관리자들은 일반적인 사용자들의 접속을 통한 서비스 이외에 해커들의 공격도 받아왔다. 해커들의 공격에 따른 피해는 점차 늘어나고 있고, 그 방법 또한 다양해져서 서버 자체만으로는 해커들의 공격을 막아내기에 무리가 있다고 볼 수 있다. 그래서 많은 PC에 방화벽이나 침입탐지기법을 적용하여 이를 대처하고 있다. 하지만 이와 같은 공격이 언제 일어날지 모르는 상황에서 24시간 지속적으로 모니터링하고 이를 놓치지 않는다는 것은 사실상 힘들다. 특히 중소규모의 기업에서 이들 침입을 탐지하기 위하여 운영요원을 상주시켜 관리하는데 많은 시간적, 경제적 부담이 가중되고 있는 현실이다.In the increasing number of server hosts connected to the Internet, server administrators have been attacked by hackers in addition to services through accessing ordinary users. The damage caused by hackers' attacks is gradually increasing, and the method is also diversified, so it can not be enough to prevent hackers from attacking with only the server itself. So many PCs are using firewalls or intrusion detection techniques to deal with them. However, it is hard to monitor these attacks continuously 24 hours a day without knowing when they will happen and not miss them. Especially, small and medium sized enterprises have a lot of time and economic burden to manage these agents by detecting them.

윈도우 OS에서는 기본적으로 원도우 방화벽을 제공하고 있다.In Windows OS, Windows Firewall is basically provided.

Windows SP2에서부터 사용자를 위해 OS 자체에서 내부적으로 제공하는 방화벽 기능이다. 이는 Windows의 제어판에서 Windows 방화벽에 접근하여, 사용자가 손쉽게 방화벽을 사용하거나 사용하지 않거나 할 수 있도록 한다. 또한 방화벽을 사용하지 않을 경우에는 사용하지 않는다는 알림 경고창을 띄워서 사용자에게 알려준다. 한편, 더욱 자세한 보안 정책을 설정하여 컴퓨터를 관리하고 싶어한다면 프로세스별 또는 포트별, IP별 등의 규칙으로 인바운드, 아웃바운드 모두 패킷을 필터할 수 있도록 되어있다. 그리고 이러한 정책을 내보내거나 가져오기 등을 통해서 저장해 두었던 정책 등으로 변경하여 사용할 수 있다.It is a firewall function internally provided by the OS itself for users from Windows SP2. It accesses Windows Firewall from the Windows Control Panel, allowing the user to easily enable or disable the firewall. Also, if you do not use a firewall, you will be notified that you will not use it. On the other hand, if you want to set up a more detailed security policy and want to manage computers, you can filter packets in both inbound and outbound according to process, per port, and IP-specific rules. And you can change the policy to the policy that you saved through export or import.

다른 한편, 국내 보안기업 중의 하나인 AhnLab에서 개발한 방화벽 기능이 포함된 백신이 있다. 이는 기본적으로 PC보안을 해주는 바이러스 백신 엔진이 있으며 이에 개인 방화벽이 포함되어 있는 형태이다. 그리고 이외에 다양한 부가 기능을 제공하고 있는데, 쿠키, 임시 인터넷 파일, 열어 본 페이지 목록을 삭제하는 등의 기능과 개인정보 및 회사 기밀 자료 등의 복구를 방지하기 위한 완전 삭제 기능, 메모리 최적화를 통한 최적의 시스템 상태 유지 등의 사용자가 PC를 사용하면 유용한 다양한 기능 등을 포함하고 있다. 또한, 방화벽과 관련된 기능으로는 네트워크로 유입/유출되는 모든 트래픽을 모니터링하여 웜, 트로이목마 등과 같은 비정상적인 트래픽을 유발하는 악성코드 등을 차단하는데 그 기능이 특화되어있다.On the other hand, there is a vaccine that includes a firewall feature developed by AhnLab, one of the domestic security companies. It is basically an antivirus engine that provides PC security and includes a personal firewall. In addition, it offers a variety of additional functions, such as cookies, temporary Internet files, the ability to delete the history of pages opened, and the complete deletion function to prevent the recovery of personal and company confidential data, And various functions that are useful when the user uses the PC, such as maintaining the system state. In addition, the functions related to the firewall are designed to monitor all traffic flowing into / out of the network and to block malicious codes causing abnormal traffic such as worms, trojan horses, and the like.

또한 실시간으로 침입차단 패턴이 업데이트 되기 때문에 실시간으로 최신화된 패턴으로 악성코드 등을 차단할 수 있다.In addition, since the intrusion prevention pattern is updated in real time, it is possible to block the malicious code with the updated pattern in real time.

그러나, 위와 같은 종래의 기술들은 오진을 별도로 모니터링하거나 확인할 수 없는 한계점이 있다.However, the above conventional techniques have a limitation in that they can not be separately monitored or confirmed.

한편, 해외 보안업체인 PC tools에서 제공하는 무료 방화벽 프로그램은, 응용프로그램 제어, 기록(Log) 등의 기능이 있다. 우선 메인화면에서는 방화벽 보호 기능을 통하여 실시간 PC 보호를 하도록 활성화/비활성화 여부 선택, 응용 프로그램 제어, 프로파일, 기록 활동 설정을 지원하고 있다.Meanwhile, a free firewall program provided by an overseas security company, PC tools, has functions such as application program control and logging. First, the main screen supports enabling / disabling of real-time PC protection through firewall protection function, application control, profile and recording activity setting.

기본적으로 사용자 또는 시스템이 특정 프로그램을 동작할 경우 사용자(방화벽 규칙)에게 허용 여부를 확인하며 사용자가 지정한 규칙에 따라 해당 항목에 프로그램 규칙이 저장되도록 구성되어 있다. 또한 네트워크 트래픽과 방화벽 활동 기록에 대한 세부 정보를 제공하는 기능도 포함되어 있다. 이 기능을 통해 어느 시간에 어떠한 동작이 일어났는지를 확인이 가능하다.Basically, when the user or the system operates a specific program, the user (firewall rule) is checked for permission and the program rule is stored in the corresponding item according to the rule designated by the user. It also includes the ability to provide detailed information about network traffic and firewall activity records. With this function, it is possible to check what action occurred at what time.

한편, 국내등록특허 제1446280호(등록일: 2014년 09월 24일)는, "인터미디어트 드라이버를 이용한 변종 악성코드 탐지 및 차단 시스템 및 그 방법"을 개시하고 있다. 위 등록특허는, NDIS(Network Driver Interface Specification) Intermediate 드라이버를 이용하여 시스템 및 네트워크 상태 변화를 분석하고 커널모드에서 불규칙한 패턴의 악성코드를 탐지 및 차단하는 모델을 제안하여 기존 Signature 분석의 단점을 보완한 인터미디어트 드라이버를 이용한 변종 악성코드 탐지 및 차단 시스템 및 그 방법에 관한 것으로, 변종 악성코드 탐지 및 차단 시스템이 인터미디어트(Intermediate) 드라이버를 이용하여, 해당 악성코드를 분석하는 단계와, 변종 악성코드 탐지 및 차단 시스템이 상기 악성코드에 대한 분석 후 특정 Signature를 찾고, Signature 분석을 마친 패킷은 상위 계층의 프로토콜(protocol) 드라이버로 전송하는 단계와, 변종 악성코드 탐지 및 차단 시스템이 시스템 및 네트워크 상태를 상태 분석 모델로 주기적으로 모니터링 하여, 특정 프로세스가 특정 포트에서 패킷의 이상 상태가 탐지되면 커널 모드에서 프로세스 및 포트를 차단하는 단계를 포함하여 구성된다.On the other hand, Korean Patent Registration No. 1446280 (filed on September 24, 2014) discloses "a system and method for detecting and blocking malicious codes of variants using an intermediate driver ". The above patent discloses a model that analyzes system and network status changes using the NDIS (Network Driver Interface Specification) Intermediate driver, and detects and blocks malicious codes with irregular patterns in the kernel mode. The present invention relates to a malicious code detection and blocking system and method using an intermediary driver, the malicious code detection and blocking system comprising: analyzing a malicious code using an intermediate driver; A step in which the code detection and blocking system finds a specific signature after analyzing the malicious code and transmits the signature-analyzed packet to a protocol driver of an upper layer; and a step in which the malicious code detection / Is periodically monitored by a state analysis model, When the process detects the abnormal state of the packet on a port is configured to include the steps of blocking the process and the port in the kernel mode.

그러나, 상술한 바와 같은 종래의 공개된 시스템 및 방법들은 해커들의 침입이 언제 일어날지 모르는 상황에서 지속적으로 모니터링하고 이를 놓치지 않고 감지할 수 없는 한계점이 있다.
However, the above-described conventional systems and methods have limitations in that they are continuously monitored in the event that they do not know when an intrusion of hackers will occur, and can not be missed and detected.

본 발명은 상술한 문제점을 해결하기 위해 제안된 것으로, 본 발명은 단지 보안 위협을 탐지하여 차단하는데 그치지 않고 관리자가 언제 어디서나 스마트폰을 휴대하고 있는 상황이라면 장비와 떨어져 있는 외부에서도 위협을 탐지하여 방화벽을 실시간으로 원격 조작할 수 있는 기능을 추가하여 보다 신속하고 안전한 관리가 지원될 수 있는 스마트폰을 이용한 서버의 침입탐지 모니터링 시스템 및 방법을 제공하는 목적이 있다.The present invention has been proposed in order to solve the above-mentioned problems. The present invention is not only to detect and block security threats, but also to detect a threat even outside the device, if a manager is carrying the smartphone anytime and anywhere, The present invention provides a system and method for intrusion detection monitoring of a server using a smart phone, which can support quick and safe management by adding a function of remotely operating in real time.

본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
The problems to be solved by the present invention are not limited to the above-mentioned problems, and other matters not mentioned can be clearly understood by those skilled in the art from the following description.

상기의 목적을 달성하기 위한 본 발명에 의한 스마트폰을 이용한 서버의 침입탐지 모니터링 시스템 및 방법은, 안드로이드 플랫폼에 적용될 수 있는 어플리케이션 및 시스템(10)과, 윈도우 어플리케이션 및 시스템(20)과, 네트워크 인터페이스 카드(40) 및 인터미디어트 드라이버(30)를 포함하며, 상기 인터미디어트 드라이버(30)는, 인스톨과 언인스톨이 가능하고 콜백 루틴들을 초기화하는 드라이버 초기화부(31)와, 프로토콜 드라이버와 미니포트 드라이버 사이에서 오가는 패킷들을 수집하여 조합하여 패킷에 정보를 파싱하여 모니터링하기 위한 패킷 프로세싱부(32)와, 모니터링된 결과를 패턴매칭을 통해 악의적인 패킷인지를 파악하고 로그를 남기는 로깅부(33) 및 침입감지부(34)를 포함하여 구성되는 것을 특징으로 한다.
In order to accomplish the above object, according to the present invention, there is provided a system and method for intrusion detection monitoring of a server using a smart phone, including an application and system 10 that can be applied to an Android platform, a window application and system 20, Card 40 and an intermittent driver 30. The intermittent driver 30 includes a driver initialization unit 31 that can be installed and uninstalled and initializes callback routines, A packet processing unit 32 for collecting and combining packets traversing between the drivers and parsing the packets to monitor the packets, a logging unit 33 for recognizing the malicious packet through pattern matching and leaving a log, And an intrusion detection unit (34).

본 발명은 상기와 같은 문제점을 개선하기 위하여 창안된 것으로서, PC서버의 불법접근과 침입을 조기에 감지하여 원격지의 서버관리자에게 스마트폰 앱을 이용하여 신속히 알려줄 수 있는 효과가 있다.
SUMMARY OF THE INVENTION The present invention has been made to overcome the above problems, and it is an object of the present invention to promptly detect illegal access and intrusion of a PC server and promptly inform a server manager of a remote place using a smartphone app.

도 1은 본 발명에 의한 스마트폰을 이용한 서버의 침입탐지 모니터링 시스템의 개략적인 구성도,
도 2는 본 발명에 의한 스마트폰을 이용한 서버의 침입탐지 모니터링 시스템의 드라이버의 개략적인 구성도,
도 3은 NDIS Driver
도 4는 Intermediate Driver Part
도 5는 Direct I/O 방식 데이터 전달 순서
도 6은 Bufferd I/O 방식 데이터 전달 순서
도 7은 패킷 전송 콜백 함수 순서
도 8은 NDIS_BUFFER 조합 그림
도 9는 Aho-Corasick Failure 적용 tir
도 10은 어플리케이션 예상 UI
도 11은 패킷 모니터링 예상 UI
도 12는 GCM 아키덱처
도 13은 예상 UI.
FIG. 1 is a schematic diagram of an intrusion detection and monitoring system for a server using a smartphone according to the present invention;
2 is a schematic configuration diagram of a driver of an intrusion detection monitoring system of a server using a smartphone according to the present invention;
FIG.
FIG. 4 is a block diagram of the Intermediate Driver Part
FIG. 5 is a flowchart illustrating a direct I / O method data transfer sequence
FIG. 6 shows a Bufferd I / O method data transfer sequence
FIG. 7 shows a sequence of packet transmission callback functions
Figure 8 shows an NDIS_BUFFER combination picture
FIG. 9 is a diagram illustrating an Aho-Corasick Failure applied tir
FIG.
11 shows a packet monitoring estimation UI
12 is a graphical representation
13 shows an expected UI.

이하, 첨부된 도면을 참조하여 본 발명에 의한 스마트폰을 이용한 서버의 침입탐지 모니터링 시스템을 상세히 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an intrusion detection and monitoring system for a server using a smartphone according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 의한 스마트폰을 이용한 서버의 침입탐지 모니터링 시스템의 개략적인 구성도, 도 2는 본 발명에 의한 스마트폰을 이용한 서버의 침입탐지 모니터링 시스템의 드라이버의 개략적인 구성도, 도 3은 NDIS Driver 도 4는 Intermediate Driver Part 도 5는 Direct I/O 방식 데이터 전달 순서 도 6은 Bufferd I/O 방식 데이터 전달 순서 도 7은 패킷 전송 콜백 함수 순서 도 8은 NDIS_BUFFER 조합 그림 도 9는 Aho-Corasick Failure 적용 tir 도 10은 어플리케이션 예상 UI 도 11은 패킷 모니터링 예상 UI 도 12는 GCM 아키덱처 도 13은 예상 UI.2 is a schematic block diagram of a driver of an intrusion detection monitoring system of a server using a smartphone according to the present invention, and FIG. 3 is a block diagram of the intrusion detection and monitoring system of a server using a smart phone according to the present invention. Figure 4 shows the NDIS Driver. Figure 4 shows the Intermediate Driver Part. Figure 5 shows the direct I / O data transfer. Figure 6 shows Bufferd I / O data transfer. Figure 7 shows the packet transfer callback function. Figure 8 shows the NDIS_BUFFER combination. Corasick Failure tir Figure 10 shows the application UI. Figure 11 shows the expected packet UI. Figure 12 shows the GCM architecture. Figure 13 shows the expected UI.

상기 도면의 구성 요소들에 인용부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 동일한 부호를 가지도록 하고 있으며, 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 공지 기능 및 구성에 대한 상세한 설명은 생략한다. 또한, '상부', '하부', '앞', '뒤', '선단', '전방', '후단' 등과 같은 방향성 용어는 개시된 도면(들)의 배향과 관련하여 사용된다. 본 발명의 실시 예의 구성요소는 다양한 배향으로 위치설정될 수 있기 때문에 방향성 용어는 예시를 목적으로 사용되는 것이지 이를 제한하는 것은 아니다.In the drawings, the same reference numerals are given to the same elements even when they are shown in different drawings. In the drawings, the same reference numerals as used in the accompanying drawings are used to designate the same or similar elements. And detailed description of the configuration will be omitted. Also, directional terms such as "top", "bottom", "front", "back", "front", "forward", "rear", etc. are used in connection with the orientation of the disclosed drawing (s). Since the elements of the embodiments of the present invention can be positioned in various orientations, the directional terminology is used for illustrative purposes, not limitation.

본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대하여 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 또는 대체물을 포함한다,The embodiments according to the concept of the present invention can make various changes and can take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. It is to be understood, however, that the intention is not to limit the embodiments according to the concepts of the present invention to the specific disclosed embodiments, but includes all changes, equivalents, or alternatives falling within the spirit and scope of the present invention,

본 발명의 일실시 예에 의한 바람직한 In accordance with one embodiment of the present invention,

도 1에 도시된 바와 같이, 안드로이드 플랫폼에 적용될 수 있는 어플리케이션 및 시스템(10)과, 윈도우 어플리케이션 및 시스템(20)과, 네트워크 인터페이스 카드(40) 및 인터미디어트 드라이버(30)를 포함하여 구성될 수 있다.As shown in FIG. 1, includes an application and system 10 that can be applied to an Android platform, a window application and system 20, a network interface card 40, and an intermittent driver 30 .

상기 인터미디어트 드라이버(30)는, 상기 도 2a 내지 도 2b에 도시된 바와 같이, 사용자가 자신의 컴퓨터에 대한 네트워크 상태를 모니터링하거나 차단할 수 있도록 한다. 즉 악의적인 의도를 가지고 사용자의 컴퓨터에 대한 공격 및 행동 시에는 어플리케이션을 통해 현재 네트워크 상태를 모니터링하고 차단하게 된다. 이러한 기능은 NDIS Driver(Network Driver Interface Specipication Driver)인 프로토콜 드라이버(Protocol Driver)와 미니포트(Miniport Driver) 간의 인터미디어트 드라이버(Intermediate Driver: 30)를 설치하여, 패킷에 대한 송.수신시 데이터에 대한 정보를 알 수 있다.As shown in FIGS. 2A and 2B, the intermittent driver 30 allows a user to monitor or block the network status of his / her computer. In other words, the malicious intention is to monitor and block the current network status through the application when attacking and acting on the user's computer. This function installs an Intermediate Driver (30) between a protocol driver and a miniport driver, which are NDIS Driver (Network Driver Interface Specification Driver) You can get information about.

특히, 상기 인터미디어트 드라이버(30)는, 프로토콜 드라이버와 미니포트 드라이버 사이에 오가는 패킷에 정보를 파싱하고 악의적인 패턴들과 페이로드를 비교하여 악의적인 행동들을 탐지하여 사용자에게 알려준다.In particular, the intermittent driver 30 parses information in a packet between a protocol driver and a miniport driver, compares malicious patterns with a payload, and detects malicious actions to inform the user.

상기 도 2a에 도시된 바와 같이, 인터미디어트 드라이버(30)는, 인스톨과 언인스톨이 가능하고 콜백 루틴들을 초기화하는 드라이버 초기화부(31)와, 프로토콜 드라이버와 미니포트 드라이버 사이에서 오가는 패킷들을 수집하여 조합하여 패킷에 정보를 파싱하여 모니터링하기 위한 패킷 프로세싱부(32)와, 모니터링된 결과를 패턴매칭을 통해 악의적인 패킷인지를 파악하고 로그를 남기는 로깅부(33) 및 침입감지부(34)를 포함한다.2A, the intermediate driver 30 includes a driver initialization unit 31 that can perform installation and uninstallation and initialize callback routines, packets collected between the protocol driver and the miniport driver A packet processing unit 32 for parsing and monitoring the information in the packet, and a logging unit 33 and an intrusion detection unit 34 for detecting a malicious packet through pattern matching and leaving a log, .

도 2b에 도시된 바와 같이, 사용자가 컴퓨터를 이용하여 인터넷을 했을 시 각각의 계층들을 통해 데이터가 출력되는 것을 알 수 있다. 각각의 계층마다 데이터들을 가지고 있는데, TCP 헤더는 포트 번호, IP 헤더는 IP 주소, 이더넷 헤더는 랜카드 주소 및 컴퓨터 주소 정보들을 가지고 있다. 이러한 정보들을 토대로 통신을 하는 것을 알 수 있다.As shown in FIG. 2B, when a user uses the computer to access the Internet, data is output through the respective layers. Each layer has data. The TCP header has a port number, the IP header has an IP address, the Ethernet header has a LAN card address, and computer address information. It can be seen that communication is performed based on such information.

상기 인터미디어트 드라이버(30)는, 위 계층에서 사용자의 컴퓨터에 대한 네트워크 상태를 모니터링 및 차단하기 위해서는 DataLink계층에 속하도록 한다. NDIS 드라이버는 하위계층이기 때문에 위에서 이미 첨가된 헤더들에 접근할 수 있으며, 이더넷 헤더, IP 헤더, TCP 헤더와 Data 부분에 모든 접근 할 수 있지만, Transport 계층이나 Network 계층인 경우 이더넷 헤더에는 접근하지 못하기 때문이다.The intermittent driver 30 belongs to the DataLink layer in order to monitor and block the network status of the user's computer in the upper layer. Since the NDIS driver is a lower layer, it can access the headers already added, access all of the Ethernet header, IP header, TCP header and data part, but not the Ethernet header in the Transport layer or Network layer .

상기와 같이 NDIS 드라이버는, 프로토콜 드라이버(Protocol Driver: 35)와, 인터미디어트 드라이버(Intermediate Driver: 36)와, 미니포트 드라이버(Miniport Driver:37)를 포함하여 구성된다.As described above, the NDIS driver includes a protocol driver 35, an intermediate driver 36, and a miniport driver 37.

상기 프로토콜 드라이버(35)는, NDIS 드라이버 계층의 상위에 위치하고 있으며 하드웨어와 독립적으로 구현할 수 있고, NDIS 인터페이스를 통해 하위의 미니포트 드라이버나 인터미디어트 드라이버와 통신이 이뤄지며 상위의 TDI 계층과 연결되어 있으며 TCP/IP 등의 프로토콜 등이 정의되어 있다. 또한 프로토콜 드라이버는 임의로 개발자에 의해 추가될 수 있는데, 추가 시에는 기존의 프로토콜 드라이버를 대체하는 것이 아니라 병렬적으로 추가됨으로써 사용자가 프로토콜 드라이버를 제작하고 로드하여 특정 패킷에 대해 차단하여도 기존의 프로토콜 드라이버는 그 패킷에 대해서 차단되지 못한다는 한계가 있다.The protocol driver 35 is located above the NDIS driver layer and can be implemented independently of hardware. The protocol driver 35 communicates with a lower miniport driver or an intermediate driver through an NDIS interface, and is connected to an upper TDI layer Protocols such as TCP / IP are defined. In addition, the protocol driver can be added by the developer, and when added, it is added not in place of replacing the existing protocol driver but in parallel, so that even if a user creates and loads a protocol driver and blocks a specific packet, Has a limitation that it can not be blocked with respect to the packet.

상기 미니포트 드라이버(37)는, NDIS 드라이버 계층의 최하위에 위치하고 있으며, NIC를 통해 데이터를 보내고 받는 것을 포함해서 NIC를 관리하며, 인터미디어트 드라이버와 같은 상위 레벨 드라이버들과 통신을 하고, 이더넷 헤더, IP 헤더, TCP 헤더, Data 정보들을 가지고 있다. 하지만 미니포트 드라이버는 NIC를 관리하기 때문에 하드웨어 환경에 종속적인 한계가 있다.The miniport driver 37 is located at the bottom of the NDIS driver layer and manages the NIC including sending and receiving data through the NIC, communicates with upper level drivers such as the intermediate driver, , IP header, TCP header, and Data information. However, because the miniport driver manages the NIC, there is a hardware-environment-dependent limitation.

상기 인터미디어트 드라이버(36)는, 프로토콜 드라이버와 미니포트 드라이버 사이에 위치하며, 프로토콜 드라이버와 미니포트 드라이버들과 통신을 수행한다.The intermittent driver 36 is located between the protocol driver and the miniport driver and communicates with the protocol driver and the miniport drivers.

즉, 도 3에 도시된 바와 같이, 로우에지(Lower Edge)에서 인터미디어트 드라이버는 미니포트 드라이버와 통신하기 위해 호출하는 프로토콜 엔트리 포인트인 Protocol XXX들을 노출한다. 미리포트 드라이버가 인터미디어트 드라이버를 볼 때 인터미디어트 드라이버는 프로토콜 드라이버가 된다.That is, as shown in FIG. 3, at the lower edge, the intermediate driver exposes Protocol XXXs, which are protocol entry points that are called to communicate with the miniport driver. When the port driver sees the intermediate driver in advance, the intermediate driver becomes the protocol driver.

어퍼에지(Upper Edge)에서 인터미디어트 드라이버는 프로토콜 드라이버와 통신하기 위해 호출하는 미니포트 엔트리 포인트인 Miniport XXX들을 노출한다. 프로토콜 드라이버가 인터미디어트 드라이버를 볼 때 인터미디어트 드라이버는 미니포트 드라이버가가 된다.At the Upper Edge, the intermediate driver exposes Miniport XXX, which is the miniport entry point that it calls to communicate with the protocol driver. When the protocol driver sees the intermediate driver, the intermediate driver becomes the miniport driver.

인터미디어트 드라이버 또한 Data Link 계층으로써, 이더넷 헤더, IP 헤더, TCP 헤더, Data 정보들을 가지고 있다.The Intermediate driver is also a Data Link layer, which has Ethernet header, IP header, TCP header, and Data information.

인터미디어트 드라이버(37)는 하드웨어에 종속적이지 않고 패킷 캡쳐링, 패킷 블로킹, 패킷 필터링, 패킷 재가공, 변조 등이 가능하도록 한다.Intermediate driver 37 is not hardware dependent and allows packet capturing, packet blocking, packet filtering, packet reprocessing, modulation, and the like.

상기 안드로이드 어플리케이션 및 시스템(10)은, 침입이 탐지될 경우 즉각 알 수 있도록 GCM을 이용한 푸시를 제공하고, PC 어플리케이션에서 할 수 있는 방화벽의 조작을 원격지에서 할 수 있다.The Android application and system 10 can provide a push using GCM so that an intrusion can be detected immediately, and a firewall can be operated remotely in a PC application.

상기 윈도우 어플리케이션 및 시스템(20)은, 디바이스 드라이버와의 통신을 통해 디바이스 드라이버를 컨트롤하고, 통신량 및 각종 정책을 사용자가 조작할 수 있도록 MFC를 이용하여 설계되며, 안드로이드와의 통신을 통해 각종 정보를 전달할 수 있다.The window application and system 20 are designed using a MFC to control a device driver through communication with a device driver and to enable a user to manipulate traffic volume and various policies. .

여기서, 상기 안드로이드 어플리케이션 및 시스템(10)과 상기 윈도우 어플리케이션 및 시스템(20)은 스마트폰에서 방화벽에 대한 정보의 수신과 조작이 가능하기 때문에 패킷 스니핑을 통한 악의적 행동이 가능하므로 패킷을 암호화하고, GCM은 메시지의 전송과 전송 순서를 보장하지 않기 때문에 이를 보완하는 프로토콜을 사용하는 것이 바람직하다.Since the Android application and the system 10 and the window application and the system 20 can receive and manipulate information about a firewall in a smart phone, malicious behavior through packet sniffing is possible. Therefore, a packet is encrypted and a GCM It is preferable to use a protocol that complements the transmission and transmission order of messages.

상기 NDIS 인터미디어트 드라이버(30)와 어플리케이션 간의 통신은, 네트워크 패킷과 여러 가지 정보(출발지 목적지 IP, PORT, MAC주소 등)와 Payload 등을 유저 어플리케이션으로 송신해야하고 차단 리스트 등 여러 가지 정보 등을 유저 어플리케이션으로부터 수신받아야 하기 때문에 속도와 안전성이 있어야 한다.Communication between the NDIS Intermediate driver 30 and the application requires transmitting a network packet and various pieces of information (source IP, port, MAC address, etc.) and payload to the user application, It must be speed and safe because it must be received from the user application.

상기 I/O요청에 대한 데이터의 버퍼 종류는 다이렉트 I/O(Direct I/O), 버퍼드 I/O(Buffered I/O), 나이더 I/O(Neither I/O)의 3가지로 할 수 있다.The buffer type of the data for the I / O request is divided into three types: direct I / O, buffered I / O, and old I / O can do.

먼저, Direct I/O는 I/O를 요청한 스레드가 정의한 데이터 버퍼와 시스템 버퍼 사이에서 메모리 할당과 데이터 복사에 대한 오버헤드를 피하고자 할 때 자주 사용되는 방식이다. 드라이버가 Direct I/O 방식을 선택하면 I/O 관리자는 데이터를 읽고 저장하기 위한 I/O 요청과 관련된 데이터 버퍼를 MDL 구조체를 사용하여 나타낸다. MDL 구조체는 드라이버에서 직접 액세스할 수 없는 구조체이다.First, Direct I / O is often used to avoid the overhead of allocating memory and copying data between the data buffer and the system buffer defined by the thread requesting the I / O. When the driver selects Direct I / O, the I / O manager uses the MDL structure to indicate the data buffer associated with the I / O request to read and store data. An MDL structure is a structure that is not directly accessible by the driver.

Direct I/O 방식은 데이터 버퍼가 클 경우 Buffered I/O 방식보다는 좀더 효과적이지만, 드라이버가 직접 MDL를 처리할 수 있어야 한다. 특히 Direct I/O 방식은 드라이버가 데이터를 전송할 때 사용할 어떠한 가상 주소 영역도 사용할 수 없을 때 유용하다. 또한 DMA 데이터 전송 방식을 사용하는 하위 레벨 드라이버에서 MDL을 전송할 때 역시 유용하게 사용된다.The Direct I / O scheme is more efficient than the Buffered I / O scheme when the data buffer is large, but the driver must be able to handle the MDL directly. Direct I / O is especially useful when the driver can not use any virtual address space to use when transferring data. It is also useful when transferring MDLs from low-level drivers that use the DMA data transfer method.

Bufferd I/O는, I/O 관리자는 I/O를 요청한 스레드에서 전달된 데이터를 스레드가 제공한 버퍼로부터 시스템 버퍼로 복사한다. 또한 처리된 데이터를 I/O를 요청한 스레드에 전달하기 위하여 I/O 관리자가 할당한 시스템 버퍼에서 스레드가 제공한 버퍼로 필요한 데이터를 복사한다. 이처럼 I/O 관리자가 I/O를 요청한 스레드가 할당한 버퍼와 관련된 시스템 버퍼를 할당하여 데이터 전송을 처리하는 방식을 말한다. Bufferd I/O 방식은 시스템 영역에 있는 인터미디어트 버퍼를 데이터 버퍼로 사용하며, I/O 관리자는 I/O를 요청한 스레드가 가지고 있는 데이터 버퍼와 인터미디어트 버퍼 사이에서 데이터 이동을 담당하며, I/O 요청을 나타내는 IRP가 마지막으로 완료될 때 시스템 버퍼를 해제한다.In Bufferd I / O, the I / O manager copies the data passed from the thread requesting I / O from the buffer provided by the thread to the system buffer. It also copies the necessary data from the system buffer allocated by the I / O manager to the buffer provided by the thread in order to pass the processed data to the thread requesting the I / O. In this way, the I / O manager allocates the system buffer related to the buffer allocated by the thread requesting I / O to process the data transfer. The Bufferd I / O scheme uses the intermediate buffer in the system area as a data buffer. The I / O manager takes care of data movement between the data buffer of the thread requesting I / O and the intermediate buffer, Releases the system buffer when the IRP representing the I / O request completes last.

도 4는 Bufferd I/O가 시스템 버퍼를 어떻게 사용되어 있는지 도시한 것이다.Figure 4 shows how Bufferd I / O is used as a system buffer.

Buffered I/O 방식을 사용할 때의 단점은 I/O 관리자가 데이터 전송을 위해 추가로 데이터 복사를 구현함으로 인해 시스템의 성능이 떨어진다는 것이다. Bufferd I/O 방식은 시스템의 성능을 최대로 유지하기 위해서는 좋지 않은 방식이지만 I/O를 요청한 스레드가 제공한 버퍼를 다루는 데 있어 가장 간단하기 때문에 가장 많이 사용되는 방식이다.The disadvantage of using the buffered I / O scheme is that the I / O manager implements additional data copy for data transfer, which degrades the performance of the system. Bufferd I / O is the most popular method because it is the simplest way to deal with the buffers provided by the thread requesting I / O, though this is not a good way to maximize system performance.

Neither I/O은, I/O 관리자는 데이터 버퍼에 대한 I/O를 요청한 스레드의 가상 주소를 드라이버에 제공한다. Neither I/O 방식에서 사용하는 데이터 버퍼는 메모리에서 보호되지 않으며, 데이터의 복사 과정에서 발생할 수 있는 어떠한 인터미디어트 버퍼링도 없다. I/O를 요청한 스레드의 가상 주소는 IRP의 UserBuffer 필드에 전달된다.In Neither I / O, the I / O manager provides the driver with the virtual address of the thread that requested I / O to the data buffer. The data buffers used in the Neither I / O scheme are not protected in memory and there is no intermediate buffering that can occur during data copying. The virtual address of the thread requesting I / O is passed to the UserBuffer field of the IRP.

I/O를 요청한 스레드의 가상 주소는 오직 I/O를 요청한 프로세스 컨텍스트 에서만 유효하기 때문에 Neither I/O를 사용할 수 있는 드라이버는 I/O 관리자로부터 직접 I/O 요청을 받아 처리하는 드라이버에서만 사용할 수 있다.Because the virtual address of the thread requesting the I / O is valid only in the context of the process requesting the I / O, drivers that can use Neither I / O can only be used by drivers that receive and process I / O requests directly from the I / O manager. have.

위 3가지 방식을 비교해보면 아래와 같다.The following three methods are compared.

Direct I/ODirect I / O Buffered I/OBuffered I / O Neither I/ONeither I / O 데이터 버퍼 위치Data Buffer Location MDL 구조체MDL structure 시스템 영역에 있는 인터미디어트 버퍼Intermediate buffers in the system area I/O를 요청한 스레드의 가상주소The virtual address of the thread that requested I / O 데이터 보호Data protection I/O 관리자가 데이터 보호Data Protection by I / O Manager 데이터 보호하지 않음No data protection 데이터 보호하지 않음No data protection 페이징 I/OPaging I / O 불가능impossible 가능possible 가능possible IRP 내의 데이터 저장필드Data storage fields in IRP IRP -> MDL AddressIRP -> MDL Address IRP -> Associated IRD, SystemBufferIRP -> Associated IRD, SystemBuffer IRP -> User BufferIRP -> User Buffer 컨텍스트Context 임의의 스레드 컨텍스트Any thread context 임의의 스레드 컨텍스트Any thread context I/O를 요청한 스레드 컨텍스트The thread context that requested the I / O

이러한 세 가지 방식을 이용하여 제공하는 방식에는 METHOD_BUFFERD 방법과 METHOD_IN_DIRECT와 METHOD_OUT_DIRECT 방법, METHOD_NEITHER 방법이 있다. 이러한 세 가지 방식을 비교하면 아래의 표와 같다.There are three ways to use these methods: METHOD_BUFFERD, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, METHOD_NEITHER. The comparison of these three methods is shown in the table below.

METHOD_BUFFERDMETHOD_BUFFERD METHOD_IN_DIRECTMETHOD_IN_DIRECT METHOD_OUT_DIRECTMETHOD_OUT_DIRECT METHOD_NEITHERMETHOD_NEITHER 입력버퍼 사용방식How the input buffer is used Bufferd I/OBufferd I / O Bufferd I/OBufferd I / O Bufferd I/OBufferd I / O Neither I/ONeither I / O IRP 내에서 입력버퍼의 저장위치Storage location of input buffer in IRP IRP -> Associated IRP, System BufferIRP -> Associated IRP, System Buffer Current I/O Stack Location->Parameters. DeviceloControl.Type3 inputBufferCurrent I / O Stack Location-> Parameters. DeviceloControl.Type3 inputBuffer 입력버퍼길이 저장위치Input Buffer Length Storage Location Current I/O Stack Location->Parameters. DeviceloControl.Type3 inputBufferLengthCurrent I / O Stack Location-> Parameters. DeviceloControl.Type3 inputBufferLength 출력버퍼 사용방식How the output buffer is used Bufferd I/OBufferd I / O Direct I/ODirect I / O Direct I/ODirect I / O Neither I/ONeither I / O IRP 내에서 출력버퍼의 저장위치Storage location of output buffer in IRP IRP -> Associated IRP, System BufferIRP -> Associated IRP, System Buffer IRP -> MDL AddressIRP -> MDL Address IRP -> MDL AddressIRP -> MDL Address IRP -> UserBufferIRP -> UserBuffer 출력버퍼길이 저장위치Output Buffer Length Storage Location Current I/O Stack Location->Parameters. DeviceloControl.Type3 inputBufferLengthCurrent I / O Stack Location-> Parameters. DeviceloControl.Type3 inputBufferLength

한편, 본 발명의 침입탐지기술(IDS)은 다음과 같다.Meanwhile, the intrusion detection technology (IDS) of the present invention is as follows.

네트워크 패킷의 전송은 프로토콜 드라이버, 인터미디어트 드라이버, 미니포트 드라이버에서의 콜백 함수 구조이다.The transmission of network packets is a callback function structure in the protocol driver, the intermediate driver, and the miniport driver.

프로토콜 드라이버는 그 위 계층에서 데이터를 받아서 인터미디어트 드라이버를 거쳐 미니포트 드라이버까지 데이터를 전달해주고, 미니포트에서 컴퓨터 밖으로 데이터를 전송했다면 전송완료 메시지를 다시 그 위로 보내 주는 구조이다.The protocol driver receives data from the upper layer, passes the data to the miniport driver through the intermediate driver, and sends the transmission completion message back to the miniport if it has transferred data out of the computer.

그래서 인터미디어트 드라이버의 MPSend 부분에서의 패킷을 필터해 IDS기술을 적용한다. NDIS 이러한 패킷구조를 사용하기 위해서는 NDIS_패킷이라는 구조체를 사용하여 패킷의 첫 번째 포인트를 가지고 있고, 여기서 NDIS_BUFFER 구조체를 얻을 수 있다. 다음 NDIS_BUFFER 구조체의 포인터는 현재의 NDIS_BUFFER의 구조체에서 얻는 식의 리스트 방식으로 커널 상에 존재한다. 즉 데이터의 용량이 클수록 NDIS_BUFFER의 체인의 수가 길어지게 된다.So we filter the packets in the MPSend part of the intermediate driver and apply IDS technology. NDIS To use this packet structure, we use the structure called NDIS_PACKET to have the first point of the packet, where we can get the NDIS_BUFFER structure. The pointer to the next NDIS_BUFFER structure exists in the kernel as a list of expressions obtained from the current NDIS_BUFFER structure. That is, the larger the data capacity, the longer the number of chains in NDIS_BUFFER.

도 5는 상기 구조체를 도시한 것이다.Figure 5 shows the structure.

상기 방식으로 NDIS 패킷의 NDIS 버퍼에 있는 데이터들을 조합하여 Payload에서 악의적인 행위인지를 판단하는 패턴매칭을 적용하게 된다.In this way, pattern matching is performed to combine data in the NDIS buffer of the NDIS packet to determine whether the payload is malicious.

패턴매칭은 여러 가지 방식이 있으나 IDS에서 사용하는 방식은 여러 가지 종류의 패턴을 동시에 비교해야하기 때문에 단순 패턴매칭에서 많이 사용되는 알고리즘으로는 좋은 성능을 발휘하기 힘들다. 따라서 다양한 공격의 패턴을 탐지할 수 있도록 다양한 패턴을 비교할 수 있는 패턴 매칭 알고리즘을 적용한다. 즉 다중패턴매칭 기법을 사용하게 되는데 이러한 방법은 전처리 단계에서 유효한 오토마타를 생성하고 이를 기반으로 패턴을 검색하는 방법을 이용한다.There are several ways of pattern matching, but the method used in IDS requires many types of patterns to be compared at the same time, so it is difficult to achieve good performance with algorithms used in simple pattern matching. Therefore, we apply pattern matching algorithm which can compare various patterns to detect various attack patterns. That is, a multi-pattern matching technique is used. In this method, a valid automata is generated in a preprocessing step and a pattern is retrieved based on the generated automata.

이러한 알고리즘을 사용하고 있는 패턴 매칭 방식으로 Aho-Corasick 방식을 사용할 수 있다.The Aho-Corasick method can be used as a pattern matching method using these algorithms.

이 방식은 tire를 기반으로 하는 알고리즘으로 여러 가지 악의적인 행위를 막을 수 있도록 여러 개의 패턴을 단 한 번의 스캔으로 결과를 추출할 수 있다는 장점이 있다.This method is based on a hyphen, which has the advantage of extracting the results of several patterns in a single scan to prevent malicious behavior.

일반적인 패턴매칭 기법은 4개의 패턴을 동시에 검색한다고 하면 4개의 검색어 전체를 각각 한 번씩 스캔해야하는 경우가 생긴다. 하지만, Aho-Corasick 패턴 매칭을 채택하여 스캔한다고 하면 4개의 검색어를 이용하여 전처리 단계에서 tire를 구성하여, 구성된 tire를 기반으로 패턴 매칭을 행하게 되는 것이다.A common pattern matching technique would be to scan all four query words one at a time if four patterns are searched simultaneously. However, if Aho-Corasick pattern matching is adopted and scanning is performed, four search words are used to form a hyphen in the preprocessing step, and pattern matching is performed based on the configured hyphens.

도 7은 이러한 Aho-Corasick Failure를 적용한 tire이다.Fig. 7 is a hyphen using this Aho-Corasick Failure.

tire를 기반으로 Failure 노드의 개념이 들어간 것이 바로 Aho-Corasick 패턴매칭이다. Failure는 BFS로 tire들을 탐색하면서 Failure노드를 해당 노드의 부모노드의 Failure노드로부터 전이된 노드 중 해당 노드와 String key값이 같은 노드가 있는지 살펴본다라는 규칙을 통해 노드를 지정하게 된다. 이러한 형식으로 Failure노드를 다 지정해준 후의 tire가 바로 Aho-Corasick tire이고 이를 이용하여 패턴 매칭을 하는 방식이 Aho-Corasick 방식이다.
Aho-Corasick pattern matching is the concept of failure nodes based on hyphens. Failure refers to the failure nodes by searching the dashes in the BFS and checking the failure node to see if there is a node having the same string key value as the corresponding node among the transition nodes from the failure node of the parent node of the corresponding node. The Aho-Corasick method is a pattern matching method using the Aho-Corasick tire as a hyphen after assigning failure nodes in this format.

상기 윈도우 어플리케이션 및 시스템은, 사용자가 자신의 컴퓨터의 상태를 확인 할 수 있도록 MFC를 이용하여 어플리케이션을 제작하여 방화벽 상태, 통신량 그래프, 포트리스트, 정책 설정, Android 설정, 로그 등 사용자가 선택하여 볼 수 있도록 하며 지정한 방화벽 설정과 각종 정책을 다음 실행 시에도 사용할 수 있도록 저장한다. 이때 저장 포맷은 XML을 사용하여 저장한다.The window application and system can be used by a user to select an application such as a firewall status, a traffic graph, a port list, a policy setting, an Android setting, and a log by using an MFC so that a user can check the status of his or her computer And stores the specified firewall settings and various policies so that they can be used at the next execution. At this time, the storage format is stored using XML.

사용자가 방어벽의 상태를 확인하기 위해서는 버튼을 클릭하여 방화벽의 동작 상태를 확인할 수 있도록 하며, 동작 상태를 선택하여 끄기와 켜기를 선택할 수 있도록 한다. 또한, 사용자가 직관적으로 통신량을 사용자가 확인할 수 있도록 그래프를 표시하며, 그래프의 데이터로는 프로토콜 종류별로 통신량을 표시하도록 한다.In order to check the status of the firewall, the user can check the operation status of the firewall by clicking the button, and select the operation status to select the off and on. In addition, a graph is displayed so that the user can intuitively confirm the traffic amount, and the traffic amount is displayed for each type of protocol as data of the graph.

또한, 프로세스 및 포트리스트는, 현재 컴퓨터의 프로세스의 정보 목록과, 각각의 프로세스가 사용하고 있는 포트의 출발지와 목적지의 IP, 포트, 프로토콜 등의 정보를 한 눈에 보기 쉽게 리스트 형식으로 출력한다.Also, the process and port list output information list of processes of the current computer and information such as IP, port, and protocol of the source and destination of the port used by each process at a glance in a list format.

정책설정은, 관리자가 방화벽의 기본 정책을 설정할 수 있는 부분으로써, 현재 설정된 정책을 확인하거나 수정할 수 있다. 정책은 인 바운드와 아웃바운드 모두에 출발지와 목적지의 IP, 포트의 정보를 통해 차단할 수 있다. 또한, 정책 설정 내용을 저장하거나 저장된 내용을 불러올 수 있도록 한다.The policy setting is a part where the administrator can set a basic policy of the firewall, and can confirm or modify the currently set policy. The policy can block both inbound and outbound through the IP and port information of the origin and destination. It also allows you to save policy settings or retrieve stored content.

안드로이드 설정은, MFC 어플리케이션과 Android 어플리케이션간의 통신 설정을 사용자가 설정할 수 있다. 비밀번호와 기기 ID를 등록하여 한 대의 스마트폰 에서만 방화벽 설정을 조작하거나 위험 침입 탐지 내용을 수신할 수 있도록 한다.The Android setting allows the user to set the communication settings between the MFC application and the Android application. Register your password and device ID so that only one smartphone can manipulate the firewall settings or receive danger intrusion detection.

로그는, 위험 포착 시 드라이버가 작성한 방화벽의 로그들을 확인할 수 있도록 한다. 로그의 정보는 IP, 포트 정보, 출발지, 목적지, 통신 방식 등을 저장한다.The log allows you to check the logs of the firewall created by the driver when capturing the danger. The log information stores IP, port information, a source, a destination, and a communication method.

도 8은 MFC 어플리케이션의 전체적인 UI의 일실시 예이다.
Figure 8 is an embodiment of an overall UI of an MFC application.

상기 안드로이드 어플리케이션 및 시스템은, 안드로이드 어플리케이션이 가지는 기능은 PC 어플리케이션이 가지는 기능을 구현한다. 가장 중요한 기능인 위험 행위에 대한 알림을 통해, 해당하는 패킷을 보여주는 기능을 비롯하여, 현재 주고받고 있는 통신량 뷰어, 사용자 정책 설정, 방화벽 시작/정지등을 수행할 수 있다. 단, 로그 기능은 과다한 트래픽을 요구할 수 있어 제외하는 것이 바람직하다.In the above-mentioned Android application and system, the functions of the Android application implement the functions of the PC application. Through the notification of dangerous activity, which is the most important function, it is possible to perform the function of showing the corresponding packet, the traffic information viewer currently being exchanged, user policy setting, firewall start / stop, and the like. However, it is desirable to exclude the log function because it may require excessive traffic.

악의적 의도를 가진 사용자가 어플리케이션을 디컴파일할 경우에 대비하기 위해 안티 디컴파일(Anti Decompile)기술과, 안티 리버싱(Anti Reversing)기술을 적용한다. VM기반인 안드로이드는 필연적으로 Decompile에 취약할 수 밖에 없다. 하지만 여러 기법을 통하여 Decompile을 어렵게 하거나 지연시킬 수 있다.Anti-Decompilation and Anti-Reversing techniques are applied to prevent malicious intentional users from decompiling an application. Android based on VM is inevitably vulnerable to Decompile. However, there are several techniques that can make Decompile difficult or delayed.

예로써, 코드 난독화가 있다. 난독화란 사람이 읽기 힘들도록 변환하는 것을 의미하는데, 크게 나누어 보면 레이아웃 난독화, 제어 난독화, 데이터 난독화로 나눌 수 있다. 레이아웃 난독화는 변수의 이름을 바꾸거나 클래스 파일에서 식별자의 위치를 이동함으로써 Decompile된 소스 코드가 큰 의미를 가지지 못하도록 하는 기법이다. 제어 난독화는 제어 흐름을 파악하기 힘들게 하도록 의도적으로 실행되지 않거나 필요가 없는 코드를 삽입하기도 하는 기법이다. 또한 잘 알려진 디자인 패턴을 사용하였을 경우 패턴을 알아내기 쉽기 때문에 제거하여 난독화 할 수 있다. 데이터 난독화로는 하나의 배열을 이차원 또는 삼차원 배열로 만들고 홀, 짝을 번갈아 가면서 사용하는 기법 등이 있다.As an example, there is code obfuscation. Obfuscation means conversion of a person to be hard to read, and can be roughly divided into layout obfuscation, control obfuscation, and data obfuscation. Layout obfuscation is a technique that prevents decompiled source code from having meaning by renaming a variable or moving the position of an identifier in a class file. Control obfuscation is a technique that inserts code that is not intentionally executed or unnecessary to make it difficult to grasp the control flow. Also, if a well - known design pattern is used, it can be obfuscated because it is easy to recognize the pattern. Data obfuscation is a technique of making one array into a two-dimensional or three-dimensional array and alternating between holes and pairs.

하지만 위와 같은 Decompile기법들은 Decompile을 하는 비용을 높일 뿐 완전히 막을 수 없다. 이를 좀 더 보완하기 위해서 Android NDK를 통해 네이티브 메소드를 이용하는 방법이 있다. 하지만 이 또한 Reversing에 대해 안전하다고 볼 수는 없으므로 Anti Reversing기술을 적용한다. However, such decompile techniques increase the cost of decompile but can not be completely prevented. To make up for this, there is a way to use native methods through Android NDK. However, this is also not safe for Reversing, so Anti Reversing technology is applied.

NDK로 작성이 불가능한 Android 클래스, 메소드 등에는 Anti Decompile을 적용하고 NDK로 작성이 가능한 부분에는 Anti Reversing 기술을 적용하는 것이 바람직하다.Anti-Decompile should be applied to Android classes and methods that can not be created by NDK, and Anti-Reversing technology should be applied to parts that can be created by NDK.

상기 윈도우 어플리케이션과 안드로이드 어플레이션 간의 통신은 여러 가지 정보가 포함된다. 패턴 감지에 대한 위험의 통보나 윈도우 어플리케이션의 정책을 조작하는 등의 행위가 패킷 스니핑에 의해 감청되거나 조작될 수 있다. 이를 방지 하기 위해 송수신 되는 모든 패킷을 암호화하여 송수신한다. 암호화 알고리즘은 AES알고리즘을 사용한다. AES알고리즘은 이전에 미국 정부 표준으로 쓰이던 DES가 상대적으로 느리고 안정성이 위협 받음에 따라 새로 공모하여 공포된 암호화 알고리즘이다. 가변 길이의 블록과 가변 길이의 키 사용이 가능하고 속도와 코드의 간결성, 단순한 설계를 지향하고 있다. 이런 장점을 바탕으로 IEEE 802.11n에서는 AES를 이용한 암호화를 권장하고 있다.The communication between the window application and the Android application includes various kinds of information. Actions such as notification of a risk to a pattern detection or manipulating a policy of a window application can be audited or manipulated by packet sniffing. To prevent this, all packets transmitted and received are encrypted and transmitted and received. The encryption algorithm uses the AES algorithm. The AES algorithm is a newly publicized and promulgated cryptographic algorithm as DES, previously used as a US government standard, is relatively slow and its stability is threatened. It is possible to use a variable length block and a variable length key, and is aiming at simplicity of speed and code simplicity. Based on these advantages, IEEE 802.11n recommends encryption using AES.

앞에서 설명되고, 도면에 도시된 본 발명의 실시 예들은 본 발명의 기술적 사상을 한정하는 것으로 해석되어서는 안 된다. 본 발명의 보호범위는 청구범위에 기재된 사항에 의하여만 제한되고, 본 발명의 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상을 다양한 형태로 개량 변경하는 것이 가능하다. 따라서 이러한 개량 및 변경은 통상의 지식을 가진 자에게 자명한 것인 경우에는 본 발명의 보호범위에 속하게 될 것이다.
The embodiments of the present invention described above and shown in the drawings should not be construed as limiting the technical idea of the present invention. The scope of protection of the present invention is limited only by the matters described in the claims, and those skilled in the art will be able to modify the technical idea of the present invention in various forms. Accordingly, such improvements and modifications will fall within the scope of the present invention if they are apparent to those skilled in the art.

10: 안드로이드 어플리케이션 및 시스템
20: 윈도우 어플리케이션
30: 인터미티어트 드라이버
40: 네트워크 카드
10: Android Applications and Systems
20: Windows application
30: Intermittent driver
40: Network card

Claims (1)

안드로이드 플랫폼에 적용될 수 있는 어플리케이션 및 시스템(10)과, 윈도우 어플리케이션 및 시스템(20)과, 네트워크 인터페이스 카드(40) 및 인터미디어트 드라이버(30)를 포함하며,
상기 인터미디어트 드라이버(30)는, 인스톨과 언인스톨이 가능하고 콜백 루틴들을 초기화하는 드라이버 초기화부(31)와, 프로토콜 드라이버와 미니포트 드라이버 사이에서 오가는 패킷들을 수집하여 조합하여 패킷에 정보를 파싱하여 모니터링하기 위한 패킷 프로세싱부(32)와, 모니터링된 결과를 패턴매칭을 통해 악의적인 패킷인지를 파악하고 로그를 남기는 로깅부(33) 및 침입감지부(34)를 포함하여 구성되는 것을 특징으로 하는 스마트폰을 이용한 서버의 침입탐지 모니터링 시스템.
An application and system 10 that can be applied to an Android platform, a window application and system 20, a network interface card 40 and an intermittent driver 30,
The intermittent driver 30 includes a driver initialization unit 31 that can perform installation and uninstallation and initialize callback routines, and packets that are transmitted between the protocol driver and the miniport driver, And a logging unit 33 and an intrusion detection unit 34 for detecting a malicious packet through pattern matching of a monitored result and leaving a log. Intrusion Detection Monitoring System of Server using Smart Phone.
KR1020140148683A 2014-10-29 2014-10-29 Ids system and method using the smartphone KR20160052978A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140148683A KR20160052978A (en) 2014-10-29 2014-10-29 Ids system and method using the smartphone

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140148683A KR20160052978A (en) 2014-10-29 2014-10-29 Ids system and method using the smartphone

Publications (1)

Publication Number Publication Date
KR20160052978A true KR20160052978A (en) 2016-05-13

Family

ID=56022920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140148683A KR20160052978A (en) 2014-10-29 2014-10-29 Ids system and method using the smartphone

Country Status (1)

Country Link
KR (1) KR20160052978A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102587114B1 (en) * 2023-05-17 2023-10-11 주식회사 스틸리언 Apparatus and method for detecting remote control software based on whitelist

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102587114B1 (en) * 2023-05-17 2023-10-11 주식회사 스틸리언 Apparatus and method for detecting remote control software based on whitelist

Similar Documents

Publication Publication Date Title
US10212134B2 (en) Centralized management and enforcement of online privacy policies
US9467470B2 (en) System and method for local protection against malicious software
US9832227B2 (en) System and method for network level protection against malicious software
CN109495443B (en) Method and system for resisting Lexong software attack based on host honeypot
US9952790B2 (en) Application security policy actions based on security profile exchange
Modi et al. A survey of intrusion detection techniques in cloud
US20060026683A1 (en) Intrusion protection system and method
CN101496025A (en) System and method for providing network security to mobile devices
EP3509001B1 (en) Method and apparatus for detecting zombie feature
KR101076683B1 (en) Apparatus and method for splitting host-based networks
EP1742438A1 (en) Network device for secure packet dispatching via port isolation
KR100500589B1 (en) An apparatus and method for worm protection using pattern matching method based on a hardware system
KR20040065674A (en) Host-based security system and method
KR101006372B1 (en) System and method for sifting out the malicious traffic
KR20030049853A (en) system for protecting of network and operation method thereof
KR20160052978A (en) Ids system and method using the smartphone
US10757078B2 (en) Systems and methods for providing multi-level network security
US20100157806A1 (en) Method for processing data packet load balancing and network equipment thereof
US20240086538A1 (en) Computer investigation method and system for investigating authentication in remote host computers
KR100419472B1 (en) Network-based Intrusion Control System
JP2011186728A (en) User terminal protection method and system

Legal Events

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