KR101265448B1 - Method of detecting phishing site using network filter driver - Google Patents

Method of detecting phishing site using network filter driver Download PDF

Info

Publication number
KR101265448B1
KR101265448B1 KR1020120006053A KR20120006053A KR101265448B1 KR 101265448 B1 KR101265448 B1 KR 101265448B1 KR 1020120006053 A KR1020120006053 A KR 1020120006053A KR 20120006053 A KR20120006053 A KR 20120006053A KR 101265448 B1 KR101265448 B1 KR 101265448B1
Authority
KR
South Korea
Prior art keywords
http
web browser
packet
session
script
Prior art date
Application number
KR1020120006053A
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 KR1020120006053A priority Critical patent/KR101265448B1/en
Application granted granted Critical
Publication of KR101265448B1 publication Critical patent/KR101265448B1/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/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/306Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information intercepting packet switched data communications, e.g. Web, Internet or IMS communications

Abstract

PURPOSE: A phishing site test method is provided to reduce the burden of maintenance by implementing an anti-phishing function with a network filter driver. CONSTITUTION: A web browser(110) generates and delivers an HTTP(Hypertext Transfer Protocol) request message. A network filter driver(120) analyzes the HTTP request message and stores URL(Uniform Resource Locator) information of a web site. The network filter driver verifies if an HTTP response message is a response to the HTTP request message. The network filter driver inserts a test request script and delivers to the web browser. A verification server(300) checks if the web site is a phishing site by using the URL information of the web site. [Reference numerals] (110) Web browser; (121) HTTP session management part; (122) Packet transmitting part; (123) Packet receiving part; (124) HTTP request processing part; (125) HTTP response processing part; (130) Network interface card; (200) Web server; (300) Verification server

Description

네트워크 필터 드라이버를 이용한 피싱 사이트 검사방법{METHOD OF DETECTING PHISHING SITE USING NETWORK FILTER DRIVER}Phishing site inspection method using network filter driver {METHOD OF DETECTING PHISHING SITE USING NETWORK FILTER DRIVER}

본 발명은 네트워크 필터 드라이버를 이용한 피싱 사이트 검사방법에 관한 것으로서, 보다 상세하게는 네트워크 필터가 웹브라우저의 요청에 의해 웹서버로부터 전송되는 HTTP 응답메시지 내부에 피싱 사이트 검사요청 스크립트를 삽입하여 웹브라우저에 전달하고, 웹브라우저가 검사요청 스크립트를 실행하면 검증서버가 피싱 사이트인지 여부를 검사하여 웹브라우저에 전달하도록 하는 네트워크 필터 드라이버를 이용한 피싱 사이트 검사방법에 관한 것이다.The present invention relates to a phishing site inspection method using a network filter driver. More specifically, the network filter inserts a phishing site inspection request script into an HTTP response message transmitted from a web server by a web browser request to the web browser. And a phishing site inspection method using a network filter driver that checks whether the verification server is a phishing site and delivers it to the web browser when the web browser executes the inspection request script.

피싱(Phishing)이란 개인정보(Private data)와 낚시(Fishing)의 합성어로서, 도메인명, IP주소 등 인터넷 식별자를 위조한 이-메일과 가짜 웹사이트를 이용하여 사용자의 개인정보를 빼내는 사기수법이다.Phishing is a compound word of private data and fishing. It is a fraudulent method that extracts user's personal information by using e-mails and fake websites forging Internet identifiers such as domain names and IP addresses. .

일반적으로 피싱 공격자는 이-메일이나 메신저와 같은 커뮤니케이션 수단을 통해 신뢰할 수 있는 사람 또는 기업이 보낸 것처럼 가장된 메시지를 공격 대상자에게 보낸다. 이후 공격자는 가짜 메시지에 속아 미리 만들어 놓은 위장된 사이트로 들어온 공격 대상자의 주민등록번호, 비밀번호, 그리고 금융 정보와 같은 기밀이 요구되는 개인 정보를 얻으려고 한다.In general, phishing attackers send impersonated messages to a victim by sending them through a means of communication such as e-mail or messenger. The attacker then tries to obtain confidential personal information such as social security numbers, passwords, and financial information of the victim who came to the fake site pretended by fake messages.

이러한 피싱 공격을 막기 위한 클라이언트단 안티 피싱 솔루션(anti-phising solution)들은 보통 사용자가 접속하는 웹사이트 감시를 통해 피싱 사이트를 검출하고, 그 사실을 사용자에게 알린다. 이러한 안티 피싱 솔루션들은 피싱 사이트 검출을 위해서 기본적으로 사용자가 접속하는 웹사이트 감시 및 분석이 선행되어야 하는데, 보통 이와 같은 작업을 구현하기 위해서 웹브라우저에서 제공하는 플러그인(Plug-in) 제작 방식을 사용한다. 예를 들어 안티 피싱 솔루션이 마이크로소프트사의 인터넷 익스플로러(Microsoft Internet Explorer) 브라우저를 지원하고자 한다면, 인터넷 익스플로러에서 제공하는 툴바 혹은 BHO(Browser Helper Objects) 기능을 이용하여 기능을 개발해야 한다.Client-side anti-phising solutions to prevent such phishing attacks usually detect phishing sites through website monitoring that users access, and notify the user. In order to detect phishing sites, these anti-phishing solutions must be basically monitored and analyzed by the user's website. In order to implement such a task, a plug-in method provided by a web browser is usually used. . For example, if your anti-phishing solution wants to support Microsoft's Microsoft Internet Explorer browser, you'll need to develop functionality using the Internet Explorer's toolbar or Browser Helper Objects (BHO).

도 1은 종래기술에 따른 안티피싱 과정을 나타낸 도면으로서, 플러그인 제작방식의 안티 피싱 시스템을 설명한다.1 is a view showing an anti-phishing process according to the prior art, it describes the anti-phishing system of the plug-in manufacturing method.

사용자가 웹브라우저를 통하여 웹페이지를 웹서버에 요청하면, 웹서버는 웹브라우저에 전송할 웹페이지 및 세션 아이디를 생성한다. 생성된 웹페이지를 해시하여 해시 값(H(Spage))을 계산하고, 계산된 해시 값을 세션 아이디 및 웹 페이지를 요청한 웹브라우저의 IP(Internet Protocol)와 함께 데이터베이스에 저장한다. 이 과정에서, 웹서버는, 도 1에 도시된 바와 같이, 웹페이지(Cpage)와 세션 아이디를 웹브라우저로 전송한다.When a user requests a web page from a web browser through a web browser, the web server generates a web page and a session ID to be sent to the web browser. The generated web page is hashed to calculate a hash value (H (Spage)), and the calculated hash value is stored in a database along with the session ID and the IP (Internet Protocol) of the web browser that requested the web page. In this process, as shown in FIG. 1, the web server transmits a web page (Cpage) and a session ID to the web browser.

웹브라우저는 웹서버로부터 생성된 웹페이지를 전송받고, 또한 쿠키를 통하여 세션 아이디를 전송받는다.The web browser receives a web page generated from a web server and also receives a session ID through a cookie.

웹서버로부터 전송받은 웹페이지에는 플러그인을 실행시키는 코드가 포함되어 있으며, 그 결과 플러그인을 실행시키는데, 플러그인은 웹서버와 공유할 세션 키(Session Key; SK)를 생성한다.The web page received from the web server contains the code to execute the plug-in. As a result, the plug-in generates a session key (SK) to be shared with the web server.

생성된 세션 키를 웹서버와 공유하고 있는 플러그인의 고유키를 이용하여 암호화한 후, 플러그인의 고유 아이디, 웹서버로부터 전송받은 세션 아이디 및 메시지 인증 코드와 함께 전송한다. 여기서, 메시지 인증 코드(MAC)는 도 1에 도시된 바와 같이, 암호화된 세션 키, 플러그인의 고유 아이디, 세션 아이디 및 웹 페이지의 해시 값에 기초하여 세션 키(SK)를 이용하여 생성된다.The generated session key is encrypted using the unique key of the plug-in shared with the web server, and then transmitted along with the unique ID of the plug-in, the session ID received from the web server, and the message authentication code. Here, as shown in FIG. 1, the message authentication code MAC is generated using the session key SK based on an encrypted session key, a unique ID of a plug-in, a session ID, and a hash value of a web page.

플러그인이 최초로 설치되는 경우에 자신이 사용할 고유키(Pluginkey)를 생성하여 웹서버에서 플러그인 배포 시에 사용한 공개키를 이용하여 암호화한 후, 이를 웹서버로 전송한다. 웹서버는 개인키로 이를 복호화하여, 웹서버에서 생성한 고유 아이디(PluginID)와 함께 데이터베이스에 저장한 후, 플러그인으로 고유 아이디(PluginID)를 전송한다. 이와 같은 과정을 통하여, 플러그인과 웹서버는 플러그인 고유키와 플러그인 고유 아이디를 공유할 수 있게 된다.When the plug-in is installed for the first time, it generates its own unique key (Pluginkey), encrypts it using the public key used when deploying the plug-in in the web server, and sends it to the web server. The web server decrypts it with the private key, stores it in the database with the unique ID (PluginID) generated by the web server, and sends the unique ID (PluginID) to the plug-in. Through this process, the plug-in and the web server can share the plug-in unique key and the plug-in unique ID.

웹서버는 우선 플러그인으로부터 받은 메시지 인증 코드(MAC)를 확인하여, 이상이 있으면 플러그인에 오류를 알리는 이미지를 전송하게 된다. 만약, 메시지 인증 코드(MAC)에 이상이 없다면, 웹서버는 플러그인으로부터 받은 암호화된 세션 키를 웹서버에 저장되어 있는 플러그인의 아이디에 지정된 플러그인 고유키(PluginKey)를 이용하여 복원하고, 복원된 세션 키 이용하여 웹페이지의 트레이(tray)에 표시할 축소 이미지를 데이터베이스에 저장되어 있는 웹페이지의 해시 값(H(Spage))과 함께 플러그인으로 전송한다. 추가로, 웹서버는 플러그인으로 전송한 축소 이미지에 대한 원본 이미지의 이름을 Spage와 세션 키(SK)를 해시한 이름으로 변경한다(Image.bmp -> H(Spage|SK)).The web server first checks the message authentication code (MAC) received from the plug-in and sends an image notifying the plug-in if there is a problem. If there is no error in the message authentication code (MAC), the web server restores the encrypted session key received from the plug-in using the plug-in unique key (PluginKey) assigned to the ID of the plug-in stored in the web server. Using the key, the thumbnail image to be displayed on the tray of the web page is transmitted to the plug-in together with the hash value (H (Spage)) of the web page stored in the database. In addition, the web server renames the original image for the thumbnail image sent to the plug-in to the name hashed by Spage and the session key (SK) (Image.bmp-> H (Spage | SK)).

플러그인은 먼저 웹서버로부터 받은 내용을 세션 키를 이용하여 복호화한 후, 복호화한 내용 중 H(Spage)를 자신이 가지고 있는 H(Cpage)와 비교한다. 비교 결과, H(Spage)와 H(Cpage)가 동일하면, 웹서버로부터 올바른 내용을 받은 것이므로 웹서버로부터 받은 이미지를 웹페이지의 트레이에 표시하게 된다. 그리고 웹페이지 코드 내에 있는 메서드를 통하여 원본 이미지(H(Spage|SK).bmp) 파일을 웹서버에 요청하게 된다. 요청하는 원본 이미지는 웹페이지에 표시될 그림이다.The plug-in first decrypts the content received from the web server using the session key, and then compares H (Spage) with the H (Cpage) it has. As a result of the comparison, if H (Spage) and H (Cpage) are the same, since the correct contents are received from the web server, the image received from the web server is displayed in the tray of the web page. The web page code requests the original image (H (Spage | SK) .bmp) file from the web server. The original image you are requesting is the picture that will be displayed on the web page.

웹서버는 이미 H(Spage|SK).bmp를 가지고 있으므로 웹브라우저의 이미지 요청에 응답하게 되고, 이에 따라 웹브라우저는 정상적인 이미지를 출력하게 된다. 최종적으로, 사용자는 트레이에 표시되는 축소 이미지와 웹페이지 내에 표시되는 원본 이미지를 비교함으로써, 현재 웹페이지가 피싱 사이트인지 여부를 직접 판단할 수 있게 된다.Since the web server already has H (Spage | SK) .bmp, the web server responds to the image request from the web browser, and the web browser outputs the normal image. Finally, the user can directly determine whether the current web page is a phishing site by comparing the thumbnail image displayed in the tray with the original image displayed in the web page.

이러한 웹브라우저별 플러그인 제작 방식은 먼저 지원 대상 웹브라우저에서 사용자가 접속하는 웹사이트 감시를 가능케 해주는 애드온(Add-on) 혹은 플러그인을 지원해야 하고, 지원 대상 웹브라우저마다 안티 피싱이 구현된 플러그인을 각각 제작해야 하므로, 신속한 피싱 사이트의 발견이 어려운 문제점이 있었다.This web browser-specific plug-in creation method must first support add-ons or plug-ins that enable users to monitor websites accessed by the supported web browsers. Since the production, it was difficult to find a quick phishing site.

또한 웹브라우저별 플러그인 제작 방식에서 지원하고자 하는 웹브라우저가 안티 피싱 기능을 구현하기 위해 필요한 기능을 플러그인을 통해 제공하지 않는다면, 해당 브라우저는 안티 피싱 기능 지원을 포기하거나 다른 방법을 찾아야 하는 문제점이 있었다.In addition, if the web browser that the web browser to support in the web browser creation method does not provide the necessary functions to implement the anti-phishing function through the plug-in, the browser had to give up the anti-phishing support or find another way.

또한 종래의 안티 피싱 솔루션은 "안티 피싱 검사 -> 웹페이지 브라우징 또는 차단" 의 순서로 동작하기 때문에, 안티 피싱 검사가 끝나기 전까지는 웹페이지를 브라우징할 수 없어서 웹페이지 열기 속도가 느려지는 문제점이 있었다.In addition, the conventional anti-phishing solution operates in the order of "anti-phishing check-> web page browsing or blocking", the web page can not be browsed until the anti-phishing check is over, the web page opening speed is slowed .

대한민국 공개특허 제2010-0008729호Republic of Korea Patent Publication No. 2010-0008729

전술한 문제점을 해결하기 위한 본 발명은 웹브라우저에서 나가거나 들어오는 HTTP 메시지를 가로채서 기록하고, 외부의 웹서버로부터 들어오는 HTTP 응답메시지의 HTML 코드 내부에 피싱 사이트 검사요청 스크립트를 삽입하여 실행시킴으로써 검증서버로부터 피싱 사이트인지에 대한 결과를 얻을 수 있도록 하는 네트워크 필터 드라이버를 이용한 피싱 사이트 검사방법을 제공하는 것을 목적으로 한다.The present invention for solving the above problems intercepts and records the incoming or outgoing HTTP message from the web browser, by inserting the phishing site inspection request script into the HTML code of the HTTP response message coming from the external web server verification server An object of the present invention is to provide a phishing site inspection method using a network filter driver that can obtain a result of whether or not a phishing site is obtained from a network.

전술한 문제점을 해결하기 위해 안출된 본 발명은 사용자단말기(100)가 접속하려는 웹사이트가 피싱 사이트인지를 확인하여 알려주는 방법으로서, 웹브라우저(110)가 생성하여 전달한 HTTP 요청메시지를 네트워크 필터 드라이버(120)가 분석하여 상기 웹브라우저(110)가 접속하려고 하는 웹사이트의 URL 정보를 저장하는 제1단계와; 상기 웹사이트를 관리하는 웹서버(200)로부터 HTTP 응답메시지가 전송되면, 상기 네트워크 필터 드라이버(120)가 상기 HTTP 응답메시지가 상기 HTTP 요청메시지에 대한 답변인지를 파악하고, 상기 HTTP 응답메시지의 본문에 포함된 HTML 코드에 피싱 사이트인지를 검사해달라는 검사요청 스크립트를 삽입하여 상기 웹브라우저(110)에 전달하는 제2단계와; 상기 웹브라우저(110)가 상기 검사요청 스크립트를 실행하면, 검증서버(300)가 상기 웹브라우저(110)로부터 상기 웹사이트의 URL 정보를 받아서 상기 웹사이트가 피싱 사이트인지를 확인하고, 확인된 결과를 상기 사용자단말기(100)에 전달하는 제3단계;를 포함한다.The present invention devised to solve the above-described problem is a method for informing and confirming whether or not a website to be accessed by the user terminal 100 is a phishing site, and the web request message generated by the web browser 110 is transmitted to the network filter driver. A first step (120) analyzing and storing URL information of a website which the web browser (110) tries to access; When the HTTP response message is transmitted from the web server 200 managing the website, the network filter driver 120 determines whether the HTTP response message is an answer to the HTTP request message, and the body of the HTTP response message. Inserting a check request script to check whether a phishing site is included in HTML code included in the second code and transmitting the same to the web browser 110; When the web browser 110 executes the inspection request script, the verification server 300 receives the URL information of the website from the web browser 110 and confirms whether the website is a phishing site, and confirms the result. It includes; a third step of delivering to the user terminal 100.

상기 제1단계는 특정 웹사이트에 접속하기 위해서 상기 웹브라우저(110)가 TCP 패킷을 생성하여 네트워크 필터 드라이버(120)로 전송하면, 상기 네트워크 필터 드라이버(120)에 포함된 패킷송신부(122)는 상기 웹브라우저(110)가 전송하는 모든 TCP 패킷을 가로채서 HTTP 세션관리부(121)에 전달하는 제1-1단계와; 상기 HTTP 세션관리부(121)가 상기 웹브라우저(110)에서 TCP(Trasmission Control Protocol) 세션이 성립되는지를 모니터링하는 제1-2단계와; 상기 HTTP 세션관리부(121)가 상기 웹브라우저(110)에서 TCP 세션이 성립되는 시점의 TCP 패킷을 선별하고, 상기 선별된 TCP 패킷에 포함된 세션정보를 세션테이블에 저장하는 제1-3단계와; 상기 웹브라우저(110)로부터 전송되는 HTTP 패킷이 HTTP 요청메시지인 경우, 상기 HTTP 세션관리부(121)가 상기 HTTP 패킷을 HTTP 요청처리부(124)로 전달하는 제1-4단계와; 상기 HTTP 요청처리부(124)가 상기 HTTP 세션관리부(121)로부터 전달받은 상기 HTTP 패킷의 헤더를 분석하여 상기 웹브라우저(110)가 접속을 시도하는 웹사이트의 URL 정보를 추출하여 저장하는 제1-5단계와; 상기 URL 정보의 추출과 저장이 끝나면 상기 HTTP 요청처리부(124)가 상기 HTTP 패킷을 네트워크 인터페이스 카드(130)로 전달하여 상기 웹서버(200)에 전송하도록 하는 제1-6단계;를 포함한다.In the first step, when the web browser 110 generates a TCP packet and transmits it to the network filter driver 120 to access a specific website, the packet transmitter 122 included in the network filter driver 120 Step 1-1 to intercept all the TCP packets transmitted by the web browser 110 to the HTTP session management unit 121; A first step (2) of the HTTP session manager (121) monitoring whether a TCP (Trasmission Control Protocol) session is established in the web browser (110); The first and second steps of the HTTP session manager 121 selecting the TCP packet at the time when the TCP session is established in the web browser 110 and storing the session information included in the selected TCP packet in a session table; ; If the HTTP packet transmitted from the web browser 110 is an HTTP request message, steps 1-4 of the HTTP session managing unit 121 delivering the HTTP packet to the HTTP request processing unit 124; The HTTP request processing unit 124 analyzes the header of the HTTP packet received from the HTTP session management unit 121, and extracts and stores URL information of a website to which the web browser 110 attempts to access. Step 5; After the extraction and storage of the URL information is finished, the HTTP request processing unit 124 to deliver the HTTP packet to the network interface card 130 to transmit to the web server 200; steps 1-6.

상기 제2단계는 상기 네트워크 필터 드라이버(120)에 포함된 패킷수신부(123)가 상기 네트워크 인터페이스 카드(130)를 통해 수신되는 모든 HTTP 패킷을 가로채서 상기 HTTP 세션관리부(121)에 전달하는 제2-1단계와; 상기 패킷수신부(123)로부터 전달되는 HTTP 패킷의 세션정보와 동일한 세션정보가 상기 세션테이블에 이미 저장되어 있는 경우, 상기 HTTP 세션관리부(121)가 상기 HTTP 패킷을 HTTP 응답처리부(125)에 전달하는 제2-2단계와; 상기 HTTP 응답처리부(125)가 상기 HTTP 세션관리부(121)로부터 전달받은 HTTP 패킷의 본문에 포함된 HTML 코드 내부에 상기 검사요청 스크립트를 삽입하는 제2-3단계와; 상기 HTTP 응답처리부(125)가 상기 검사요청 스크립트가 삽입된 HTTP 패킷을 상기 웹브라우저(110)에 전달하는 제2-4단계;를 포함한다.In the second step, the packet receiver 123 included in the network filter driver 120 intercepts all HTTP packets received through the network interface card 130 and delivers the received HTTP packets to the HTTP session manager 121. -1 step; When the same session information as the session information of the HTTP packet transmitted from the packet receiver 123 is already stored in the session table, the HTTP session manager 121 transmits the HTTP packet to the HTTP response processor 125. Step 2-2; Step 2-3 of the HTTP response processor 125 inserting the test request script into the HTML code included in the body of the HTTP packet received from the HTTP session manager 121; And step 2-4 of the HTTP response processor 125 delivering the HTTP packet including the check request script to the web browser 110.

상기 제3단계는 상기 웹브라우저(110)가 상기 HTTP 응답메시지가 포함된 HTTP 패킷을 분석하여 상기 웹사이트를 브라우징하는 제3-1단계와; 상기 웹브라우저(110)가 상기 HTTP 패킷에 삽입된 상기 검사요청 스크립트를 실행하고, 상기 HTTP 패킷에 포함된 상기 웹사이트의 URL 정보를 상기 검증서버(300)에 전송하면서 피싱 사이트 검사를 요청하는 제3-2단계와; 상기 검증서버(300)가 피싱 사이트 여부를 검사한 결과를 전송하면, 상기 웹브라우저(110)는 검사 결과 내용을 상기 사용자단말기(100)에 표시하는 제3-3단계;를 포함한다.The third step may include a step 3-1 of the web browser 110 analyzing the HTTP packet including the HTTP response message to browse the website; The web browser 110 executes the inspection request script inserted into the HTTP packet, and transmits the URL information of the website included in the HTTP packet to the verification server 300 to request a phishing site inspection; Step 3-2; When the verification server 300 transmits a result of checking whether or not a phishing site, the web browser 110, step 3-3 to display the content of the test results on the user terminal (100).

상기 검사요청 스크립트는 상기 웹브라우저(110)에 의해 실행될 자바(Java) 스크립트 또는 HTML 태그로서, 상기 검증서버(300)의 주소, 상기 검증서버(300) 내부에서 피싱 사이트 검사요청 페이지의 경로, 피싱 사이트인지를 검사하려는 웹사이트의 주소를 포함하는 것을 특징으로 한다.The inspection request script is a Java script or HTML tag to be executed by the web browser 110, the address of the verification server 300, the path of a phishing site inspection request page in the verification server 300, phishing It is characterized by including the address of the website to check whether the site.

상기 검사요청 스크립트는 상기 HTTP 응답메시지의 HTML 코드에 body 태그가 존재할 경우, 상기 body 태그 내부에 삽입되며, 상기 HTTP 응답메시지의 HTML 코드에 body 태그는 존재하지 않고, script 태그가 존재할 경우, 최상위 script 태그 위에 삽입되며, 상기 HTTP 응답메시지의 HTML 코드에 body 태그와 script 태그가 모두 존재하지 않는 경우, 상기 HTML 태그 내부에 삽입되는 것을 특징으로 한다.The check request script is inserted in the body tag when the body tag is present in the HTML code of the HTTP response message. The body tag is not present in the HTML code of the HTTP response message. The tag is inserted above the tag, and when both the body tag and the script tag are not present in the HTML code of the HTTP response message, the tag is inserted into the HTML tag.

본 발명에 따르면 특정한 기능을 가진 플러그인을 제공하지 않는 웹브라우저의 경우에도 안티 피싱 기능을 지원하는 것이 가능해지며, 웹브라우저와 상관없이 네트워크 필터 드라이버 하나의 모듈만 있어도 안티 피싱 기능 구현이 가능하기 때문에 여러 모듈들을 유지보수하는데 드는 부담을 줄일 수 있는 효과가 있다.According to the present invention, it is possible to support the anti-phishing function even in a web browser that does not provide a plug-in having a specific function, and since a single module of the network filter driver can implement the anti-phishing function regardless of the web browser, This reduces the burden on maintaining the modules.

또한 웹브라우저별 플러그인 제작방식과 비교했을 때, 제품 설치 및 제거가 상대적으로 간단해지는 효과가 있다.In addition, compared to the web browser-specific plug-in production method, the product installation and removal is relatively simple effect.

또한 HTML 코드에 스크립트를 삽입하는 방식을 통해 웹페이지 브라우징과 안티 피싱 검사가 별개로 이루어지기 때문에 안티 피싱 검사가 끝나지 않더라도 웹페이지는 정상적으로 브라우징되어 웹페이지 열기 속도에 거의 영향을 끼치지 않는 효과가 있다.In addition, by inserting a script into HTML code, web page browsing and anti-phishing checking are performed separately. Therefore, even if the anti-phishing check is not completed, the web page is normally browsed, which has little effect on the opening speed of the web page. .

도 1은 종래기술에 따른 안티피싱 과정을 나타낸 도면.
도 2는 본 발명의 실시예에 따른 안티피싱 시스템의 구성을 나타낸 개념도.
도 3은 사용자단말기의 구성과 연결상태를 나타낸 블럭도.
도 4는 HTTP 세션관리부가 TCP 패킷을 등록하는 과정을 나타낸 순서도.
도 5는 피싱 사이트를 검사하는 과정을 나타낸 순서도.
도 6은 피싱 사이트가 검출되었다는 내용을 경고하는 화면을 나타낸 도면.
1 illustrates an antiphishing process according to the prior art.
2 is a conceptual diagram showing the configuration of an anti-phishing system according to an embodiment of the present invention.
3 is a block diagram showing a configuration and a connection state of a user terminal.
4 is a flowchart illustrating a process of registering a TCP packet by the HTTP session manager.
5 is a flowchart illustrating a process of inspecting a phishing site.
Fig. 6 is a diagram illustrating a screen for warning that a phishing site has been detected.

이하에서 도면을 참조하여 본 발명의 실시예에 따른 "네트워크 필터 드라이버를 이용한 피싱 사이트 검사방법"(이하, '피싱검사방법'이라 함)을 설명한다.Hereinafter, a "phishing site inspection method using a network filter driver" (hereinafter referred to as "phishing inspection method") according to an embodiment of the present invention with reference to the drawings.

도 2는 본 발명의 실시예에 따른 안티피싱 시스템의 구성을 나타낸 개념도이며, 도 3은 사용자단말기의 구성과 연결상태를 나타낸 블럭도이다.2 is a conceptual diagram showing the configuration of an anti-phishing system according to an embodiment of the present invention, Figure 3 is a block diagram showing the configuration and connection state of the user terminal.

본 발명의 피싱검사방법은 사용자단말기(100)가 인터넷을 통해 웹서버(200)에 접속할 때, 해당 웹서버(200)가 관리하는 웹사이트가 피싱 사이트인지를 검사하기 위해서 검증서버(300)에 검사를 요청하는 방식으로 구현된다. 이를 위해 사용자단말기(100)에 피싱검사방법을 수행하는 모듈이 설치된다.The phishing inspection method of the present invention, when the user terminal 100 is connected to the web server 200 via the Internet, to the verification server 300 to check whether the website managed by the web server 200 is a phishing site Implemented by requesting a test. To this end, a module for performing a phishing test method is installed in the user terminal 100.

본 발명의 피싱검사방법을 사용하는 사용자가 특정 웹사이트의 웹서버(200)에 접속하는 과정은 크게 세 가지 단계로 나눌 수 있다. 첫 번째는 웹브라우저(110)가 사용자가 접속하고자 하는 웹사이트의 웹서버(200)로 HTTP 요청메시지를 전송하는 단계이다. 두 번째는 웹서버(200)가 HTTP 메시지를 요청한 웹브라우저(110)에게 이에 상응하는 HTTP 응답메시지를 돌려주는 단계이다. 세 번째는 웹브라우저(110)가 수신한 HTTP 응답메시지를 해석하여, 사용자가 원하는 웹사이트 화면을 출력해주는 단계이다.The process of accessing the web server 200 of a specific website by a user using the phishing test method of the present invention can be divided into three steps. The first step is that the web browser 110 sends an HTTP request message to the web server 200 of the web site to which the user wants to access. The second step is the web server 200 returns a corresponding HTTP response message to the web browser 110 requesting the HTTP message. The third step is to interpret the HTTP response message received by the web browser 110 and output the desired website screen.

본 발명은 첫 번째 단계에서 발생하는 HTTP 요청메시지를 가로채 사용자가 접속하길 원하는 웹사이트의 URL 정보를 수집한다. 두 번째 단계에서는 수신한 HTTP 응답메시지를 가로채 전체 HTML 코드 중 적절한 위치를 찾아 피싱 사이트 검사 요청 스크립트(script)를 삽입해 웹브라우저(110)에게 넘겨준다. 마지막으로 세 번째 단계에서는 웹브라우저(110)가 수신한 HTTP 응답메시지를 해석하는 과정에서 이전 단계에서 추가된 피싱 사이트 검사 요청 스크립트를 실행하여 피싱 사이트 검증서버(300)로 현재 접속한 웹사이트의 피싱 사이트 여부에 대한 검사를 요청하는 단계이다.The present invention intercepts the HTTP request message generated in the first step and collects URL information of a website that the user wants to access. In the second step, the received HTTP response message is intercepted to find an appropriate location among the entire HTML code, and the phishing site inspection request script is inserted into the web browser 110. Finally, in the third step, the phishing site website currently connected to the phishing site verification server 300 is executed by executing the phishing site inspection request script added in the previous step in the process of interpreting the HTTP response message received by the web browser 110. It is a step of requesting inspection of the site.

첫 번째와 두 번째 단계는 인바운드/아웃바운드 패킷 검사 및 조작을 하기 위해 제작된 네트워크 필터 드라이버(120) 내에서 이루어진다. 마지막 세 번째 단계는 피싱 사이트 검사를 위해 마련된 피싱 사이트 검증서버(300)가 외부에서 운영 중이어야 한다.The first and second steps are performed within the network filter driver 120, which is designed for inbound / outbound packet inspection and manipulation. The final third step is that the phishing site verification server 300 prepared for phishing site inspection must be operating from the outside.

이러한 동작을 수행하기 위해 사용자단말기(100) 내부에는 HTTP 메시지를 송수신하거나 가로채기 위한 모듈이 설치되는데, 본 발명에서는 네트워크 필터 드라이버(120)가 이러한 기능을 수행한다.In order to perform such an operation, a module for transmitting and receiving or intercepting an HTTP message is installed inside the user terminal 100. In the present invention, the network filter driver 120 performs such a function.

도 3과 같이, 사용자단말기(100)에는 웹서버(200)로부터 전송되는 웹페이지 데이터를 표현하는 웹브라우저(110)와, 네트워크 인터페이스 카드(NIC; 130)를 통해 들어오거나 나가는 네트워크 데이터 패킷을 수신하는 네트워크 필터 드라이버(120)가 구비된다. 네트워크 필터 드라이버(120)는 웹브라우저(110)가 주고받는 데이터 패킷을 걸러주거나 수정하여 전달하는 기능을 하며, 본 발명에서와 같은 데이터 패킷 감시기능이 추가될 수 있다.As shown in FIG. 3, the user terminal 100 receives a web browser 110 representing a web page data transmitted from the web server 200 and a network data packet coming in or going out through a network interface card (NIC) 130. The network filter driver 120 is provided. The network filter driver 120 filters, modifies, and transmits data packets transmitted and received by the web browser 110, and a data packet monitoring function may be added as in the present invention.

네트워크 필터 드라이버(120)에는 HTTP 세션관리부(121)가 구비된다. HTTP 세션관리부(121)는 웹브라우저(110)와 웹서버(200) 사이의 네트워크 연결 상태를 감시하면서 연결이 성립된 세션에 대한 정보를 저장한다. 그리고 사용자단말기(100)로 들어오거나 사용자단말기(100)로부터 나가는 네트워크 패킷(HTTP 패킷) 중에서 세션에 대한 정보가 저장된 HTTP 패킷을 선별한다.The network filter driver 120 includes an HTTP session manager 121. The HTTP session manager 121 stores information about a session in which a connection is established while monitoring a network connection state between the web browser 110 and the web server 200. In addition, the network packet (HTTP packet) that enters or exits the user terminal 100 is selected and selects an HTTP packet in which information about a session is stored.

패킷송신부(122)는 사용자단말기(100)에서 외부로 전송되는 모든 HTTP 패킷을 가로채서 HTTP 세션관리부(121)에 전달하며, 패킷수신부(123)는 반대로 외부에서 사용자단말기(100)로 전송되는 모든 HTTP 패킷을 가로채서 HTTP 세션관리부(121)에 전달한다.The packet transmitter 122 intercepts all HTTP packets transmitted from the user terminal 100 to the outside and delivers them to the HTTP session manager 121, and the packet receiver 123 is reversely transmitted from the outside to the user terminal 100. It intercepts the HTTP packet and delivers it to the HTTP session manager 121.

HTTP 요청처리부(124)는 HTTP 세션관리부(121)가 선별한 HTTP 패킷을 분석하여 웹브라우저(110)의 프로세스가 접속하려고 하는 웹사이트의 URL 정보를 추출하여 저장한다.The HTTP request processing unit 124 analyzes the HTTP packet selected by the HTTP session management unit 121, extracts and stores URL information of a website to which the process of the web browser 110 attempts to access.

그리고 HTTP 응답처리부(125)는 HTTP 세션관리부(121)가 선별한 HTTP 패킷을 분석하여 메시지의 본문에 포함된 HTML 코드의 적절한 위치내에 피싱 사이트 검사요청 스크립트를 삽입한다.The HTTP response processor 125 analyzes the HTTP packet selected by the HTTP session manager 121 and inserts a phishing site inspection request script into an appropriate location of the HTML code included in the body of the message.

검증서버(300)는 웹브라우저(110)의 요청에 의해 지금 웹브라우저(110)가 접속하려고 하는 웹사이트가 피싱 사이트인지를 검사하여 그 결과를 웹브라우저(110)에 전달한다.The verification server 300 checks whether the website which the web browser 110 is attempting to access is a phishing site at the request of the web browser 110, and transmits the result to the web browser 110.

이와 같은 구성을 이용하여 피싱 사이트를 검사하는 방법에 대해서 좀 더 자세히 설명한다.This article describes how to scan phishing sites in more detail.

먼저 HTTP 세션관리부(121)가 웹브라우저(110)에서 이루어지는 세션 성립과정을 모니터링하는 방법을 설명한다.First, a description will be given of how the HTTP session manager 121 monitors the process of establishing a session in the web browser 110.

도 4는 HTTP 세션관리부가 TCP 패킷을 등록하는 과정을 나타낸 순서도이다.4 is a flowchart illustrating a process of registering a TCP packet by the HTTP session manager.

먼저 특정 웹사이트에 접속하기 위해서 웹브라우저(110)가 TCP 패킷(HTTP 패킷을 포함)을 생성하여 네트워크 필터 드라이버(120)로 전송한다.(S102) 패킷송신부(122)는 웹브라우저(110)가 전송하는 모든 TCP 패킷을 가로채서 HTTP 세션관리부(121)에 전달한다.(S104)First, in order to access a specific website, the web browser 110 generates a TCP packet (including an HTTP packet) and transmits it to the network filter driver 120. (S102) The packet transmitter 122 is configured to send a web browser 110. It intercepts all the TCP packets and transmits them to the HTTP session manager 121 (S104).

HTTP 세션관리부(121)는 패킷송신부(122)를 통해 들어오는 TCP 패킷을 받아서 웹브라우저(110) 프로세스가 웹사이트에 연결하기 위해 TCP(Trasmission Control Protocol) 세션을 맺는 행위를 실시간으로 모니터링한다. 모니터링 도중에 HTTP 세션관리부(121)가 웹브라우저(110)의 프로세스에서 맺은 TCP 세션을 감지하면, 이후 해당 TCP 세션에서 발생하는 TCP 메시지들을 효율적으로 선별하기 위한 목적으로 해당 세션정보를 HTTP 세션관리부(121) 내부의 세션테이블에 저장한다.(S106) 저장되는 세션정보는 패킷송신부(122)와 패킷수신부(123)를 통해 송수신되는 모든 TCP 패킷 중에서 TCP 세션이 성립되는 시점의 TCP 패킷에 기본적으로 포함되는 정보들로서, 로컬 IP 주소, 로컬 포트 번호, 원격 IP 주소, 원격 포트 번호 등이 포함된다.The HTTP session manager 121 receives the incoming TCP packet through the packet transmitter 122 and monitors the behavior of establishing a TCP (Trasmission Control Protocol) session for the web browser 110 to connect to the website in real time. If the HTTP session manager 121 detects a TCP session made by the web browser 110 during the monitoring, the session information is transmitted to the HTTP session manager 121 for the purpose of efficiently selecting TCP messages generated in the TCP session. (S106) The stored session information is basically included in the TCP packet at the time of establishing a TCP session among all the TCP packets transmitted and received through the packet transmitter 122 and the packet receiver 123. Information includes local IP address, local port number, remote IP address, remote port number, and the like.

TCP 세션은 클라이언트와 서버 사이에 SYN 패킷, SYN-ACK 패킷, ACK 패킷이 순차적으로 전달되면서 클라이언트와 서버의 포트 정보를 서로 저장하고, 지정된 포트끼리 데이터를 주고받으면서 세션이 성립된다. 따라서 세 종류의 TCP 패킷이 순차적으로 전송되는 3 Way-Handshaking 과정을 모니터링함으로써 세션의 성립을 감지할 수 있는데, TCP 세션의 성립과정인 3 Way-Handshaking 과정은 일반적인 기술이므로, 상세한 설명은 생략한다.In the TCP session, SYN packets, SYN-ACK packets, and ACK packets are sequentially transmitted between the client and the server, thereby storing the port information of the client and the server, and establishing a session while exchanging data between designated ports. Accordingly, the establishment of a session can be detected by monitoring a three-way-handshaking process in which three types of TCP packets are sequentially transmitted. Since the three-way-handshaking process, which is a establishment process of a TCP session, is a general technology, a detailed description thereof will be omitted.

3 Way-Handshaking 과정을 문제없이 거쳐 TCP 세션이 성립되는 순간, TCP 세션이 나타내는 로컬 포트 번호가 사용자단말기(100)의 어떤 프로세스에서 열고 있는 것인지를 확인한다. 만약 웹브라우저(110) 프로세스에서 열고 있는 로컬 포트 번호라면, 해당 세션은 "관심 TCP 세션"이 되는 것이고, 세션테이블에 해당 세션에 대한 세션정보를 저장한다. 따라서 HTTP 세션관리부(121)의 세션테이블에 저장되는 정보는 "웹브라우저(110) 프로세스에서 성립된 TCP 세션"의 정보가 된다.As soon as a TCP session is established through 3 Way-Handshaking without any problem, it is checked in which process of the user terminal 100 the local port number indicated by the TCP session is open. If the local port number being opened by the web browser 110 process, the session becomes a "TCP session of interest" and stores session information about the session in the session table. Therefore, the information stored in the session table of the HTTP session management unit 121 becomes information of the "TCP session established in the web browser 110 process."

또한 HTTP 세션관리부(121)는 웹사이트 요청 과정과 별도로 이미 관리 중인 TCP 세션의 종료 행위도 같이 모니터링하여 관리 중인 TCP 세션의 종료를 감지하면, 해당 세션정보를 내부 세션테이블에서 삭제할 수도 있다.In addition, the HTTP session management unit 121 may monitor the termination behavior of the already managed TCP session separately from the website request process and detect the termination of the managed TCP session, and may delete the corresponding session information from the internal session table.

세션테이블에 세션이 성립된 TCP 세션에 대한 정보가 저장된 상태에서 패킷송신부(122)로부터 HTTP 패킷이 전송되면, HTTP 세션관리부(121)는 들어오는 HTTP 패킷들 중에서 세션정보가 내부 세션테이블에 저장된 세션정보와 일치하는 HTTP 패킷(HTTP 요청메시지)을 선별한다.(S108)When the HTTP packet is transmitted from the packet transmitter 122 while the information about the TCP session in which the session is established is stored in the session table, the HTTP session management unit 121 stores the session information among the incoming HTTP packets in the session information. Select the HTTP packet (HTTP request message) matching the (S108).

HTTP 세션관리부(121)는 수신된 HTTP 패킷이 HTTP 요청메시지인지를 확인하고, HTTP 요청메시지인 경우에는 HTTP 요청처리부(124)로 전달하여 HTTP 요청처리부(124)가 HTTP 요청메시지의 헤더를 분석하도록 한다. HTTP 요청처리부(124)는 HTTP 요청메시지의 헤더를 분석하여 현재 웹브라우저(110) 프로세스가 접속을 시도하는 웹사이트의 URL 정보를 추출하여 저장한다.(S110)The HTTP session manager 121 checks whether the received HTTP packet is an HTTP request message, and in the case of an HTTP request message, delivers the HTTP request message to the HTTP request processor 124 so that the HTTP request processor 124 analyzes the header of the HTTP request message. do. The HTTP request processing unit 124 analyzes the header of the HTTP request message and extracts and stores URL information of a website to which the current web browser 110 process attempts to access (S110).

URL 정보의 추출과 저장이 끝나면 HTTP 요청처리부(124)는 가로챘던 HTTP 패킷을 네트워크 인터페이스 카드(130)로 전달하여 웹서버(200)에 전송하도록 한다.(S112)After extraction and storage of the URL information, the HTTP request processing unit 124 transmits the intercepted HTTP packet to the network interface card 130 to transmit to the web server 200 (S112).

이와 같이 네트워크 필터 드라이버(120)에 의해 HTTP 패킷의 등록과 세션정보의 저장이 이루어진다.In this way, the network filter driver 120 registers the HTTP packet and stores the session information.

다음으로 HTTP 세션관리부가 검사 요청 스크립트를 삽입하는 과정을 설명한다.Next, the HTTP session manager inserts the test request script.

도 5는 피싱 사이트를 검사하는 과정을 나타낸 순서도이다.5 is a flowchart illustrating a process of inspecting a phishing site.

먼저 입력되는 HTTP 패킷 중에서 응답메시지가 있는지를 선별하여야 한다. 이를 위해 패킷수신부(123)가 네트워크 인터페이스 카드(130)를 통해 사용자단말기(100)로 들어오는 모든 HTTP 패킷을 가로채서 HTTP 세션관리부(121)에 넘겨준다.(S202)First, it is necessary to select whether there is a response message among the HTTP packets. To this end, the packet receiver 123 intercepts all HTTP packets coming into the user terminal 100 through the network interface card 130 and hands them over to the HTTP session manager 121 (S202).

HTTP 세션관리부(121)는 들어오는 HTTP 패킷 중에서 웹브라우저(110)가 웹서버(200)에 전송했던 HTTP 요청메시지에 대한 답변으로 들어오는 HTTP 응답메시지가 포함된 HTTP 패킷을 선별하여 HTTP 응답처리부(125)에 전달한다.(S204) 선별 방법은 들어온 HTTP 패킷의 세션정보가 HTTP 세션관리부(121)의 세션테이블에 저장된 세션정보와 동일한지를 조회한다. 동일한 세션정보를 가진 메시지일 경우에는 TCP 세션이 성립된 프로세스의 HTTP 응답메시지인 것으로 간주할 수 있다.The HTTP session manager 121 selects an HTTP packet including an incoming HTTP response message as a response to the HTTP request message transmitted by the web browser 110 from the incoming HTTP packet to the HTTP server 200, and then the HTTP response processor 125. The screening method inquires whether the session information of the incoming HTTP packet is the same as the session information stored in the session table of the HTTP session management unit 121. If the message has the same session information, it can be regarded as the HTTP response message of the process in which the TCP session is established.

HTTP 응답처리부(125)는 HTTP 세션관리부(121)로부터 전달받은 HTTP 패킷의 본문에 포함된 HTML 코드의 적절한 위치에 피싱 사이트 검사를 요청하는 스크립트를 삽입한다.(S206)The HTTP response processing unit 125 inserts a script requesting a phishing site inspection at an appropriate position of the HTML code included in the body of the HTTP packet received from the HTTP session management unit 121 (S206).

검사요청 스크립트는 웹브라우저(110)에 의해 실행될 자바(Java) 스크립트 또는 HTML 태그이다. 웹브라우저(110)가 이 스크립트를 실행하면, 먼저 피싱 사이트 검증서버(300)에서 제공하는 피싱 사이트 검사 페이지를 요청하게 되고, 검증서버(300)가 피싱 사이트인지를 확인한 후, 사용자단말기(100)에 그 결과를 통지해준다.The check request script is a Java script or HTML tag to be executed by the web browser 110. When the web browser 110 executes this script, it first requests a phishing site inspection page provided by the phishing site verification server 300, and then confirms whether the verification server 300 is a phishing site, and then the user terminal 100. Notify the result.

현재 단계에서 삽입되는 검사요청 스크립트 내에 피싱 사이트 검사 페이지는 HTTP 요청처리부(124)가 추출해서 저장했던 웹사이트의 URL정보를 포함한다.The phishing site inspection page in the inspection request script inserted at the present stage includes URL information of a website which the HTTP request processing unit 124 has extracted and stored.

피싱 사이트 검사를 위한 검사요청 스크립트가 삽입될 '적절한 위치'는 세 가지 경우로 나눠진다. 첫 번째는 HTTP 응답메시지가 포함된 HTTP 패킷의 HTML 코드에 body 태그가 존재할 경우로서, 이때에는 body 태그 내부에 스크립트를 삽입한다.There are three cases where the 'proper location' is inserted into the scan request script for phishing site scans. The first is when the body tag exists in the HTML code of an HTTP packet containing an HTTP response message. In this case, a script is inserted inside the body tag.

두 번째는 HTML 코드에 body 태그는 존재하지 않고, script 태그가 존재할 경우로서, 이때에는 최상위 script 태그 위에 검사요청 스크립트를 삽입한다.The second is when the body tag does not exist in the HTML code and the script tag exists. In this case, the test request script is inserted above the top-level script tag.

마지막으로 body 태그와 script 태그가 모두 존재하지 않고 HTML 태그만 존재할 경우로서, 이때에는 HTML 태그 내부에 검사요청 스크립트를 삽입한다.Finally, when both the body tag and the script tag do not exist, and only the HTML tag exists, in this case, an inspection request script is inserted inside the HTML tag.

검사요청 스크립트는 다음과 같은 형식으로 구성된다.The test request script consists of the following format:

bodybody 태그 또는  Tag or HTMLHTML 태그 내부에 삽입할 경우 When inserted inside a tag

<iframe src="(A)(B)?url=(C)&ip=218.153.8.103" width=0 height=0 frameborder=0></iframe>
<iframe src = "(A) (B)? url = (C) & ip = 218.153.8.103" width = 0 height = 0 frameborder = 0></iframe>

최상위 Top scriptscript 태그 위에 삽입할 경우 If you insert it above the tag

<script type="text/javascript"><script type = "text / javascript">

//<! [CDATA[// <! [CDATA [

document.write("<iframe src='(A)(B)?(C)&ip=218.153.8.103' width=0 height=0 frameborder=0></iframe>");document.write ("<iframe src = '(A) (B)? (C) & ip = 218.153.8.103' width = 0 height = 0 frameborder = 0> </ iframe>");

//]]>
//]]>

여기서 (A)는 피싱 사이트 검증서버(300)의 주소이며, (B)는 검증서버(300) 내부에서 피싱 사이트 검사요청 페이지의 경로이며, (C)는 피싱 사이트인지를 검사하려는 웹사이트의 주소, 즉 웹브라우저(110)가 HTTP 응답메시지를 요청했던 웹사이트의 주소이다.Where (A) is the address of the phishing site verification server 300, (B) is the path of the phishing site inspection request page in the verification server 300, (C) is the address of the website to check whether the phishing site That is, the address of the web site where the web browser 110 requested the HTTP response message.

만약 검증서버(300)의 주소(A)가 "http://1.1.1.1"이고, 검사요청 페이지의 경로(B)가 "/anti_phishing_scan.php"이고, 검사 대상이 되는 웹사이트의 주소(C)가 "http://www.estsoft.co.kr"인 경우, 검사요청 스크립트의 작성예는 도 6 및 7과 같다. 도 6은 body 태그 또는 HTML 태그 내부에 삽입되는 스크립트의 작성예이며, 도 7은 최상위 script 태그 위에 삽입되는 스크립트의 작성예이다.If the address (A) of the verification server 300 is "http://1.1.1.1", the path (B) of the inspection request page is "/anti_phishing_scan.php", and the address (C) of the website to be inspected. ) Is " http: //www.estsoft.co.kr" FIG. 6 shows an example of writing a script inserted into a body tag or an HTML tag, and FIG. 7 shows an example of writing a script inserted over a top-level script tag.

HTTP 응답처리부(125)는 컨텐츠 인코딩 혹은 전송 인코딩되어있는 HTTP 응답메시지는 모두 디코딩하여 평문인 상태에서 스크립트를 삽입하고 난 후, 다시 인코딩한다. HTTP 응답처리부(125)는 스크립트 삽입이 완료되면 스크립트 삽입을 위해 가로챘던 HTTP 패킷을 웹브라우저(110)에 전달한다.(S208)The HTTP response processor 125 decodes all content encoded or transfer encoded HTTP response messages, inserts a script in a plain text state, and re-encodes the script. The HTTP response processor 125 transmits the HTTP packet intercepted for the script insertion to the web browser 110 when the script insertion is completed.

HTTP 응답처리부(125)에 의해 피싱 사이트에 대한 검사요청 스크립트가 추가된 HTTP 패킷을 수신한 웹브라우저(110)는 수신된 HTTP 패킷을 분석하여 HTTP 응답메시지를 보낸 웹사이트를 브라우징한다.(S210) 본 발명에서는 피싱 사이트의 검사가 완료되기 전에도 웹사이트에 대한 브라우징이 이루어지기 때문에 실제 피싱 사이트가 아닌 경우에 웹페이지 실행이 느려지는 현상을 미연에 방지할 수 있다.After receiving the HTTP packet to which the inspection request script for the phishing site is added by the HTTP response processor 125, the web browser 110 analyzes the received HTTP packet and browses the website to which the HTTP response message is sent (S210). In the present invention, since the browsing of the website is performed even before the inspection of the phishing site is completed, it is possible to prevent the phenomenon that the execution of the web page is slow when the actual phishing site is not.

웹브라우저(110)가 HTTP 응답메시지를 해석하는 과정에서 피싱 사이트에 대한 검사요청 스크립트가 실행된다.(S212) 검사요청 스크립트가 실행되면 스크립트 내부에 포함된 웹사이트의 URL 정보를 검증서버(300)에 보내면서 피싱 사이트 검사를 요청한다.(S214)In the process of interpreting the HTTP response message, the web browser 110 executes a check request script for a phishing site. (S212) When the check request script is executed, the verification server 300 verifies URL information of a website included in the script. Send a request to the phishing site inspection (S214).

피싱 사이트에 대한 검사 요청을 받은 검증서버(300)는 전송된 URL 정보를 바탕으로 웹사이트가 피싱 사이트인지를 검사한다.(S216) 검증서버(300)가 피싱 사이트를 검사하는 방법은 본 발명의 출원일 이전에 공개된 기존 기술을 사용하기 때문에 본 발명에서는 자세한 설명은 생략한다.The verification server 300 receiving the inspection request for the phishing site checks whether the website is a phishing site based on the transmitted URL information. (S216) The verification server 300 checks the phishing site according to the present invention. Since the existing technology disclosed before the filing date is used, detailed description thereof will be omitted.

검증서버(300)의 검사가 끝나면 검증서버(300)는 검사 결과를 웹브라우저(110)에 전달한다.(S218)After the inspection of the verification server 300, the verification server 300 transmits the inspection result to the web browser 110 (S218).

검증서버(300)로부터 받은 결과는 피싱 사이트 여부를 사용자에게 알리기 위해 결과 내용을 담은 창을 띄우는 자바 스크립트로 구성되어 있고, 웹브라우저(110)는 결과로 받은 이 스크립트를 실행하여 검사 결과를 사용자단말기(100)의 디스플레이 장치에 표시한다.(S220)The result received from the verification server 300 is composed of Javascript that opens a window containing the results of the content to inform the user whether or not a phishing site, the web browser 110 executes this script received as a result of the user terminal In operation S220, the display apparatus 100 displays the display device.

도 8은 피싱 사이트가 검출되었다는 내용을 경고하는 화면을 나타낸 도면으로서, 검사 결과로 받은 스크립트의 실행에 따라 경고창(

Figure 112012005014333-pat00001
)이 나타나는 화면이다.8 is a view showing a screen for warning that the phishing site has been detected, the warning window (
Figure 112012005014333-pat00001
) Is displayed.

이상 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하였지만, 상술한 본 발명의 기술적 구성은 본 발명이 속하는 기술 분야의 당업자가 본 발명의 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Although the preferred embodiments of the present invention have been described above with reference to the accompanying drawings, the above-described technical configuration of the present invention may be embodied by those skilled in the art to which the present invention pertains without changing its technical spirit or essential features of the present invention. It will be appreciated that the present invention may be practiced as. Therefore, the above-described embodiments are to be understood as illustrative and not restrictive in all respects, and the scope of the present invention is indicated by the appended claims rather than the detailed description, and the meaning and scope of the claims and All changes or modifications derived from the equivalent concept should be interpreted as being included in the scope of the present invention.

100 : 사용자단말기 110 : 웹브라우저
120 : 네트워크 필터 드라이버 121 : HTTP 세션관리부
122 : 패킷송신부 123 : 패킷수신부
124 : HTTP 요청처리부 125 : HTTP 응답처리부
130 : 네트워크 인터페이스 카드 200 : 웹서버
300 : 검증서버
100: user terminal 110: web browser
120: network filter driver 121: HTTP session management unit
122: packet transmitter 123: packet receiver
124: HTTP request processing unit 125: HTTP response processing unit
130: network interface card 200: web server
300: verification server

Claims (6)

삭제delete 사용자단말기(100)가 접속하려는 웹사이트가 피싱 사이트인지를 확인하여 알려주는 방법으로서,
웹브라우저(110)가 생성하여 전달한 HTTP 요청메시지를 네트워크 필터 드라이버(120)가 분석하여 상기 웹브라우저(110)가 접속하려고 하는 웹사이트의 URL 정보를 저장하는 제1단계와;
상기 웹사이트를 관리하는 웹서버(200)로부터 HTTP 응답메시지가 전송되면, 상기 네트워크 필터 드라이버(120)가 상기 HTTP 응답메시지가 상기 HTTP 요청메시지에 대한 답변인지를 파악하고, 상기 HTTP 응답메시지의 본문에 포함된 HTML 코드에 피싱 사이트인지를 검사해달라는 검사요청 스크립트를 삽입하여 상기 웹브라우저(110)에 전달하는 제2단계와;
상기 웹브라우저(110)가 상기 검사요청 스크립트를 실행하면, 검증서버(300)가 상기 웹브라우저(110)로부터 상기 웹사이트의 URL 정보를 받아서 상기 웹사이트가 피싱 사이트인지를 확인하고, 확인된 결과를 상기 사용자단말기(100)에 전달하는 제3단계;를 포함하며,
상기 제1단계는
특정 웹사이트에 접속하기 위해서 상기 웹브라우저(110)가 TCP 패킷을 생성하여 네트워크 필터 드라이버(120)로 전송하면, 상기 네트워크 필터 드라이버(120)에 포함된 패킷송신부(122)는 상기 웹브라우저(110)가 전송하는 모든 TCP 패킷을 가로채서 HTTP 세션관리부(121)에 전달하는 제1-1단계와;
상기 HTTP 세션관리부(121)가 상기 웹브라우저(110)에서 TCP(Trasmission Control Protocol) 세션이 성립되는지를 모니터링하는 제1-2단계와;
상기 HTTP 세션관리부(121)가 상기 웹브라우저(110)에서 TCP 세션이 성립되는 시점의 TCP 패킷을 선별하고, 상기 선별된 TCP 패킷에 포함된 세션정보를 세션테이블에 저장하는 제1-3단계와;
상기 웹브라우저(110)로부터 전송되는 HTTP 패킷이 HTTP 요청메시지인 경우, 상기 HTTP 세션관리부(121)가 상기 HTTP 패킷을 HTTP 요청처리부(124)로 전달하는 제1-4단계와;
상기 HTTP 요청처리부(124)가 상기 HTTP 세션관리부(121)로부터 전달받은 상기 HTTP 패킷의 헤더를 분석하여 상기 웹브라우저(110)가 접속을 시도하는 웹사이트의 URL 정보를 추출하여 저장하는 제1-5단계와;
상기 URL 정보의 추출과 저장이 끝나면 상기 HTTP 요청처리부(124)가 상기 HTTP 패킷을 네트워크 인터페이스 카드(130)로 전달하여 상기 웹서버(200)에 전송하도록 하는 제1-6단계;를 포함하는, 네트워크 필터 드라이버를 이용한 피싱 사이트 검사방법.
As a method of confirming whether the user terminal 100 is a phishing site to be connected to the website,
A first step of the network filter driver 120 analyzing the HTTP request message generated and delivered by the web browser 110 to store URL information of a website to which the web browser 110 attempts to access;
When the HTTP response message is transmitted from the web server 200 managing the website, the network filter driver 120 determines whether the HTTP response message is an answer to the HTTP request message, and the body of the HTTP response message. Inserting a check request script to check whether a phishing site is included in HTML code included in the second code and transmitting the same to the web browser 110;
When the web browser 110 executes the inspection request script, the verification server 300 receives the URL information of the website from the web browser 110 and confirms whether the website is a phishing site, and confirms the result. Includes; a third step of delivering to the user terminal 100;
The first step
When the web browser 110 generates a TCP packet and transmits it to the network filter driver 120 to access a specific website, the packet transmitter 122 included in the network filter driver 120 transmits the web browser 110. Intercepting all the TCP packets transmitted by the &lt; RTI ID = 0.0 &gt;)&lt; / RTI &gt;
A first step (2) of the HTTP session manager (121) monitoring whether a TCP (Trasmission Control Protocol) session is established in the web browser (110);
The first and second steps of the HTTP session manager 121 selecting the TCP packet at the time when the TCP session is established in the web browser 110 and storing the session information included in the selected TCP packet in a session table; ;
If the HTTP packet transmitted from the web browser 110 is an HTTP request message, steps 1-4 of the HTTP session managing unit 121 delivering the HTTP packet to the HTTP request processing unit 124;
The HTTP request processing unit 124 analyzes the header of the HTTP packet received from the HTTP session management unit 121, and extracts and stores URL information of a website to which the web browser 110 attempts to access. Step 5;
After the extraction and storage of the URL information is finished, the HTTP request processing unit 124 to deliver the HTTP packet to the network interface card 130 to transmit to the web server 200; including; How to check phishing site using network filter driver.
제2항에 있어서,
상기 제2단계는
상기 네트워크 필터 드라이버(120)에 포함된 패킷수신부(123)가 상기 네트워크 인터페이스 카드(130)를 통해 수신되는 모든 HTTP 패킷을 가로채서 상기 HTTP 세션관리부(121)에 전달하는 제2-1단계와;
상기 패킷수신부(123)로부터 전달되는 HTTP 패킷의 세션정보와 동일한 세션정보가 상기 세션테이블에 이미 저장되어 있는 경우, 상기 HTTP 세션관리부(121)가 상기 HTTP 패킷을 HTTP 응답처리부(125)에 전달하는 제2-2단계와;
상기 HTTP 응답처리부(125)가 상기 HTTP 세션관리부(121)로부터 전달받은 HTTP 패킷의 본문에 포함된 HTML 코드 내부에 상기 검사요청 스크립트를 삽입하는 제2-3단계와;
상기 HTTP 응답처리부(125)가 상기 검사요청 스크립트가 삽입된 HTTP 패킷을 상기 웹브라우저(110)에 전달하는 제2-4단계;를 포함하는, 네트워크 필터 드라이버를 이용한 피싱 사이트 검사방법.
The method of claim 2,
The second step
A step 2-1 of the packet receiving unit 123 included in the network filter driver 120 intercepting all HTTP packets received through the network interface card 130 and delivering them to the HTTP session managing unit 121;
When the same session information as the session information of the HTTP packet transmitted from the packet receiver 123 is already stored in the session table, the HTTP session manager 121 transmits the HTTP packet to the HTTP response processor 125. Step 2-2;
Step 2-3 of the HTTP response processor 125 inserting the test request script into the HTML code included in the body of the HTTP packet received from the HTTP session manager 121;
And a second step (4) of transmitting, by the HTTP response processor (125), the HTTP packet into which the check request script is inserted, to the web browser (110).
제3항에 있어서,
상기 제3단계는
상기 웹브라우저(110)가 상기 HTTP 응답메시지가 포함된 HTTP 패킷을 분석하여 상기 웹사이트를 브라우징하는 제3-1단계와;
상기 웹브라우저(110)가 상기 HTTP 패킷에 삽입된 상기 검사요청 스크립트를 실행하고, 상기 HTTP 패킷에 포함된 상기 웹사이트의 URL 정보를 상기 검증서버(300)에 전송하면서 피싱 사이트 검사를 요청하는 제3-2단계와;
상기 검증서버(300)가 피싱 사이트 여부를 검사한 결과를 전송하면, 상기 웹브라우저(110)는 검사 결과 내용을 상기 사용자단말기(100)에 표시하는 제3-3단계;를 포함하는, 네트워크 필터 드라이버를 이용한 피싱 사이트 검사방법.
The method of claim 3,
The third step is
Step 3-1 of the web browser 110 analyzing the HTTP packet including the HTTP response message to browse the website;
The web browser 110 executes the inspection request script inserted into the HTTP packet, and transmits the URL information of the website included in the HTTP packet to the verification server 300 to request a phishing site inspection; Step 3-2;
When the verification server 300 transmits a result of checking whether or not a phishing site, the web browser 110, step 3-3 to display the content of the test results on the user terminal 100; Network filter comprising a, How to check phishing sites using a driver.
제2항 내지 제4항 중 어느 한 항에 있어서,
상기 검사요청 스크립트는 상기 웹브라우저(110)에 의해 실행될 자바(Java) 스크립트 또는 HTML 태그로서, 상기 검증서버(300)의 주소, 상기 검증서버(300) 내부에서 피싱 사이트 검사요청 페이지의 경로, 피싱 사이트인지를 검사하려는 웹사이트의 주소를 포함하는 것을 특징으로 하는, 네트워크 필터 드라이버를 이용한 피싱 사이트 검사방법.
5. The method according to any one of claims 2 to 4,
The inspection request script is a Java script or HTML tag to be executed by the web browser 110, the address of the verification server 300, the path of a phishing site inspection request page in the verification server 300, phishing Phishing site inspection method using a network filter driver, characterized in that it includes the address of the website to be checked whether the site.
제5항에 있어서,
상기 검사요청 스크립트는
상기 HTTP 응답메시지의 HTML 코드에 body 태그가 존재할 경우, 상기 body 태그 내부에 삽입되며,
상기 HTTP 응답메시지의 HTML 코드에 body 태그는 존재하지 않고, script 태그가 존재할 경우, 최상위 script 태그 위에 삽입되며,
상기 HTTP 응답메시지의 HTML 코드에 body 태그와 script 태그가 모두 존재하지 않는 경우, 상기 HTML 태그 내부에 삽입되는 것을 특징으로 하는, 네트워크 필터 드라이버를 이용한 피싱 사이트 검사방법.
The method of claim 5,
The inspection request script
If a body tag exists in the HTML code of the HTTP response message, it is inserted into the body tag.
The body tag does not exist in the HTML code of the HTTP response message. If a script tag exists, it is inserted above the top level script tag.
If neither the body tag nor the script tag in the HTML code of the HTTP response message, characterized in that inserted into the HTML tag, phishing site inspection method using a network filter driver.
KR1020120006053A 2012-01-19 2012-01-19 Method of detecting phishing site using network filter driver KR101265448B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120006053A KR101265448B1 (en) 2012-01-19 2012-01-19 Method of detecting phishing site using network filter driver

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120006053A KR101265448B1 (en) 2012-01-19 2012-01-19 Method of detecting phishing site using network filter driver

Publications (1)

Publication Number Publication Date
KR101265448B1 true KR101265448B1 (en) 2013-05-16

Family

ID=48666419

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120006053A KR101265448B1 (en) 2012-01-19 2012-01-19 Method of detecting phishing site using network filter driver

Country Status (1)

Country Link
KR (1) KR101265448B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106169965A (en) * 2016-09-28 2016-11-30 北京金山安全软件有限公司 Network repairing method, device and terminal
US10911487B2 (en) * 2018-06-20 2021-02-02 Checkpoint Mobile Security Ltd On-device network protection
KR102308800B1 (en) * 2021-03-26 2021-10-06 임한빈 method for protecting personal information leaked by phising

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060018630A (en) * 2004-08-25 2006-03-02 한국전자통신연구원 A terminal apparatus for wireless connection and a wireless connection administration method using the same
KR101064201B1 (en) * 2010-07-27 2011-09-14 주식회사 파수닷컴 Right managing device of web data, recording medium for operating right managing method of web data and apparatus and method for providing information for right management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060018630A (en) * 2004-08-25 2006-03-02 한국전자통신연구원 A terminal apparatus for wireless connection and a wireless connection administration method using the same
KR101064201B1 (en) * 2010-07-27 2011-09-14 주식회사 파수닷컴 Right managing device of web data, recording medium for operating right managing method of web data and apparatus and method for providing information for right management

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
전남대 대학원 학위논문 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106169965A (en) * 2016-09-28 2016-11-30 北京金山安全软件有限公司 Network repairing method, device and terminal
US10911487B2 (en) * 2018-06-20 2021-02-02 Checkpoint Mobile Security Ltd On-device network protection
KR102308800B1 (en) * 2021-03-26 2021-10-06 임한빈 method for protecting personal information leaked by phising

Similar Documents

Publication Publication Date Title
US8984630B2 (en) System and method for preventing web frauds committed using client-scripting attacks
EP2005698B1 (en) Method for providing web application security
JP4596275B2 (en) Method, system and software for detecting relay communication
US9237168B2 (en) Transport layer security traffic control using service name identification
CN105430011B (en) A kind of method and apparatus detecting distributed denial of service attack
US8775619B2 (en) Web hosted security system communication
US9407650B2 (en) Unauthorised/malicious redirection
CN103095676A (en) Filtrating system and filtrating method
AU2006324171A1 (en) Email anti-phishing inspector
US10972507B2 (en) Content policy based notification of application users about malicious browser plugins
CN107347076B (en) SSRF vulnerability detection method and device
CN104954386A (en) Network anti-hijacking methods and device
CN110557358A (en) Honeypot server communication method, SSLStrip man-in-the-middle attack perception method and related device
US20120166552A1 (en) Managing Messaging Subscriptions in a Messaging System
KR101265448B1 (en) Method of detecting phishing site using network filter driver
CN106789882A (en) Defence method and system that a kind of domain name request is attacked
US10360379B2 (en) Method and apparatus for detecting exploits
US11979374B2 (en) Local network device connection control
EP3971748A1 (en) Network connection request method and apparatus
CN113709136B (en) Access request verification method and device
WO2021242496A1 (en) User interface for web server risk awareness
JP2013069016A (en) Information leakage prevention device and limitation information generation device
JP6418422B2 (en) Mail delivery device and Web proxy server
KR101731838B1 (en) Apparatus and Method for Scanning Vulnerability of Web Site Based Java Script
US20180077065A1 (en) Transmitting packet

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