KR101767594B1 - 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법 - Google Patents

악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법 Download PDF

Info

Publication number
KR101767594B1
KR101767594B1 KR1020160142466A KR20160142466A KR101767594B1 KR 101767594 B1 KR101767594 B1 KR 101767594B1 KR 1020160142466 A KR1020160142466 A KR 1020160142466A KR 20160142466 A KR20160142466 A KR 20160142466A KR 101767594 B1 KR101767594 B1 KR 101767594B1
Authority
KR
South Korea
Prior art keywords
address
web
malicious code
addresses
url
Prior art date
Application number
KR1020160142466A
Other languages
English (en)
Other versions
KR20170046103A (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 KR1020160142466A priority Critical patent/KR101767594B1/ko
Publication of KR20170046103A publication Critical patent/KR20170046103A/ko
Application granted granted Critical
Publication of KR101767594B1 publication Critical patent/KR101767594B1/ko

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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

본 발명은 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법에 관한 것으로서, (a) 중계장치로부터 접속로그를 수집하고, 상기 수집된 접속로그에서 웹주소들을 추출하는 단계, (b) 상기 추출된 웹 주소에서 중복된 주소와 허용 주소를 필터링하여, 점검대상 주소를 추출하는 단계, (c) 상기 추출된 점검대상 주소의 웹 페이지로부터 하위 주소를 추출하고, 상기 점검대상 주소와 하위주소를 포함하는 점검대상 주소목록을 생성하는 단계를 포함한다.

Description

악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법{WEB ADDRESS EXTRACTION SYSTEM FOR CHECKING MALICIOUS CODE AND METHOD THEREOF}
본 발명은 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법에 관한 것으로서, 더욱 상세하게는 클라이언트가 웹 서비스를 이용하기 위해 접속하는 웹 프락시(Web Proxy), L7 Switch 등의 중계장치에 저장된 접속로그를 이용하여 악성코드 점검을 위한 웹주소를 자동으로 추출하는 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법에 관한 것이다.
*웹은 우리에게 많은 편리성을 주며 전세계 거의 모든 사람들이 매일 이용하고 있지만, 사용자 모르게 악성코드 감염 매개체로 빈번히 악용되고 있다. 이용자가 많이 방문하는 웹사이트가 악성코드 유포에 악용될 경우, 피해가 크게 확산될 수 있어 각별한 주의가 필요하다. 악성사이트에 대한 선제적 탐지 및 조치를 통해 악성코드 피해확산을 최소화할 수 있다.
최근에는 알려지지 않은 취약점 악용 및 탐지 회피기술 적용 등의 공격기술이 진화하고 있어 탐지기술에 대한 고도화가 필요하다. 웹 사이트 은닉 여부 점검을 위한 방법으로는 대표적으로 속도가 빠르나 시그니쳐에 의존적인 로우 인터렉션 웹 크롤링 탐지방식과 탐지범위가 넓고 알려지지 않은 공격탐지가 가능하나 속도가 느린 하이 인터렉션 행위기반 탐지기법이 있다.
인터넷 상에서 운영되는 웹사이트 수는 대규모이며, 하위 페이지를 감안하면 점검대상의 URL 규모는 백만 단위, 천만 단위 또는 그 이상으로 많아지게 된다.
그러나, 전사적인 IT 인프라 관리시스템이 구축되지 않은 기업에서는 악성코드 점검대상인 웹 사이트의 URL(IP, URL)을 수기로 작성하므로, 점검대상 웹사이트 변경 내역을 실시간으로 수집할 수 없을 뿐 아니라, 점검대상이 누락되는 문제가 발생하였다.
선행기술1: 한국등록특허 제1,200,906호: 네트워크 기반 고성능 유해사이트 차단 시스템 및 방법
본 발명은 상기한 문제점을 해결하기 위하여 안출된 것으로, 클라이언트가 웹 서비스를 이용하기 위해 접속하는 중계장치의 접속로그를 활용하여 악성코드 점검대상을 실시간으로 수집할 수 있는 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법을 제공함에 그 목적이 있다.
본 발명의 다른 목적은 점검대상 웹주소의 웹페이지 소스 분석을 통해 웹페이지에 연결된 하위 웹주소의 웹페이지를 점검하여 악성코드가 은닉되어 있는 웹사이트를 탐지하는 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법을 제공하는데 있다.
본 발병의 다른 목적은 웹사이트 악성코드 점검을 통해 경유지와 유포지를 구분하는 방법을 제공하는데 있다.
한편, 본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 이하에서 설명할 내용으로부터 통상의 기술자에게 자명한 범위 내에서 다양한 기술적 과제가 포함될 수 있다.
상술한 과제를 해결하기 위한 본 발명의 일 측면에 따르면, (a) 중계장치로부터 접속로그를 수집하고, 상기 수집된 접속로그에서 웹주소들을 추출하는 단계, (b) 상기 추출된 웹 주소에서 중복된 주소와 허용 주소를 필터링하여, 점검대상 주소를 추출하는 단계, (c) 상기 추출된 점검대상 주소의 웹 페이지로부터 하위 주소를 추출하고, 상기 점검대상 주소와 하위주소를 포함하는 점검대상 주소목록을 생성하는 단계를 포함하는 점검대상 추출장치의 악성코드 점검을 위한 웹주소 자동 추출 방법이 제공된다.
상기 악성코드 점검을 위한 웹주소 자동 추출방법은 상기 (c) 단계 이후, 상기 점검대상 주소목록의 점검대상 주소들에 대한 접속 가능 여부를 확인하고, 접속 가능한 것으로 확인된 주소에 접속하여 악성코드 점검을 수행하는 단계를 더 포함할 수 있다.
상기 (c)단계는, 상기 점검대상 주소에 해당하는 웹페이지를 크롤링하여 웹페이지 소스 중 링크(link)가 존재하는 부분을 하위 주소로 추출하는 단계, 상기 점검대상 주소와 상기 추출된 하위주소를 포함하는 점검대상 주소목록을 생성하는 단계를 포함할 수 있다.
본 발명의 다른 측면에 따르면, 중계장치로부터 접속로그를 수집하는 수집부, 상기 수집된 접속로그에서 웹주소들을 추출하고, 상기 추출된 웹 주소에서 중복된 주소와 허용 주소를 필터링하여, 점검대상 주소를 추출하며, 상기 추출된 점검대상 주소의 웹 페이지로부터 하위 주소를 추출하고, 상기 점검대상 주소와 하위주소를 포함하는 점검대상 주소목록을 생성하는 점검대상 추출부를 포함하는 점검대상 추출장치가 제공된다.
상기 점검대상 추출부는 상기 점검대상 주소에 해당하는 웹페이지를 크롤링하여 웹페이지 소스 중 링크(link)가 존재하는 부분을 하위 주소로 추출할 수 있다.
또한, 상기 점검대상 추출부는 상기 점검대상 주소에 해당하는 웹 페이지를 방문할 때 생성되는 HTTP 요청(Request)와 HTTP 응답(Response)의 헤더(Header) 부분을 분석하여 하위 주소를 수집할 수 있다.
본 발명의 또 다른 측면에 따르면, 클라이언트로부터 웹 사이트 접속이 요청되면, 접속 요청에 따른 접속로그를 저장하는 중계장치, 상기 중계장치로부터 접속로그를 수집하여 웹주소들을 추출하고, 상기 추출된 웹 주소에서 중복된 주소와 허용 주소를 필터링하여, 점검대상 주소를 추출하며, 상기 추출된 점검대상 주소의 웹 페이지로부터 하위 주소를 추출하고, 상기 점검대상 주소와 하위주소를 포함하는 점검대상 주소목록을 생성하는 점검대상 추출장치를 포함하는 악성코드 점검을 위한 웹주소 자동 추출 시스템이 제공된다.
상기 중계장치는 웹 프록시 서버(Web Proxy) 또는 L7 스위치(Switch)일 수 있다.
상기 악성코드 점검을 위한 웹주소 자동 추출 시스템은 상기 점검대상 추출장치로부터 점검대상 주소목록을 수신하고, 상기 점검대상 주소목록의 점검대상 주소들에 대한 접속 가능 여부를 확인하여, 접속 가능한 것으로 확인된 주소에 접속하여 악성코드 점검을 수행하는 악성코드 점검장치를 더 포함할 수 있다.
상기 점검대상 추출장치는 상기 점검대상 주소에 해당하는 웹페이지를 크롤링하여 웹페이지 소스 중 링크(link)가 존재하는 부분을 하위 주소로 추출할 수 있다.
한편, 이상에 살핀 상기 '악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법'은, 프로그램의 형태로 구현된 뒤에 전자 장치에서 판독 가능한 기록 매체에 기록되거나, 프로그램 다운로드 관리 장치(서버 등)를 통해 배포될 수 있다.
본 발명에 따르면, 클라이언트가 웹 서비스를 이용하기 위해 접속하는 Web Proxy, L7 Switch 등의 중계장치를 활용하여 악성코드 점검대상을 수집함으로써, 점검목적에 맞도록 로그를 가공하면 실시간 탐지에 필요한 URL을 추출할 수 있다.
또한, 점검대상 웹주소의 웹페이지 소스 분석을 통해 웹페이지에 연결된 하위 웹주소의 웹페이지를 점검하여 악성코드가 은닉되어 있는 웹사이트를 탐지할 수 있다.
또한, 웹사이트 방문점검 및 악성여부 판별을 통해 악성으로 확인된 악성사이트 내의 악성 URL을 추출할 수 있다.
한편, 본 발명의 효과는 이상에서 언급한 효과들로 제한되지 않으며, 이하에서 설명할 내용으로부터 통상의 기술자에게 자명한 범위 내에서 다양한 효과들이 포함될 수 있다.
도 1은 본 발명의 실시예에 따른 악성코드 점검을 위한 웹주소 자동 추출 시스템을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 점검대상 추출장치의 구성을 개략적으로 나타낸 블럭도이다.
도 3은 본 발명의 실시예에 따른 악성코드 점검장치의 구성을 개략적으로 나타낸 블럭도이다.
도 4는 본 발명의 일 실시예에 따른 악성코드 점검을 위한 웹주소 자동 추출 방법을 나타낸 도면이다.
도 5는 본 발명의 다른 실시예에 따른 악성코드 점검을 위한 웹주소 자동 추출 방법을 나타낸 도면이다.
도 6은 본 발명의 실시예에 따른 악성코드 점검장치의 악성코드 점검 방법을 나타낸 도면이다.
이하, 첨부된 도면들을 참조하여 본 발명에 따른 '악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법'을 상세하게 설명한다. 설명하는 실시 예들은 본 발명의 기술 사상을 당업자가 용이하게 이해할 수 있도록 제공되는 것으로 이에 의해 본 발명이 한정되지 않는다. 또한, 첨부된 도면에 표현된 사항들은 본 발명의 실시 예들을 쉽게 설명하기 위해 도식화된 도면으로 실제로 구현되는 형태와 상이할 수 있다.
한편, 이하에서 표현되는 각 구성부는 본 발명을 구현하기 위한 예일 뿐이다. 따라서, 본 발명의 다른 구현에서는 본 발명의 사상 및 범위를 벗어나지 않는 범위에서 다른 구성부가 사용될 수 있다.
또한, 각 구성부는 순전히 하드웨어 또는 소프트웨어의 구성만으로 구현될 수도 있지만, 동일 기능을 수행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합으로 구현될 수도 있다. 또한, 하나의 하드웨어 또는 소프트웨어에 의해 둘 이상의 구성부들이 함께 구현될 수도 있다.
또한, 어떤 구성요소들을 '포함'한다는 표현은, '개방형'의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.
도 1은 본 발명의 실시예에 따른 악성코드 점검을 위한 웹주소 자동 추출 시스템을 나타낸 도면이다.
도 1을 참조하면, 악성코드 점검을 위한 웹주소 자동 추출 시스템은 적어도 하나 이상의 클라이언트(110), 중계장치(200), 점검대상 추출장치(300), 악성코드 점검장치(400), DNS 서버(500), 서비스 서버(600)를 포함한다. 여기서, 중계장치(200), 점검대상 추출장치(300), 악성코드 점검장치(400)는 내부망에 위치하고, DNS서버(500)와 서비스 서버(600)는 서비스망(DMZ망)에 위치할 수 있다. 그러나 이는 하나의 실시 예일 뿐이며, 필요에 따라 일부 구성이 삭제되거나 추가될 수 있음은 물론이다.
클라이언트(100)는 인터넷 등과 같은 통신망을 통해 서비스 서버(600)에 자료를 요청하거나 서비스 서버(600)로부터 자료를 제공받는다.
이러한 클라이언트(100)는 인터넷을 사용하는 모든 장치로, 스마트폰, 태블릿, PC, 노트북, PDA 등의 전자 장치의 형태로 구현될 수 있으며, 이 외에도 연산 동작과 데이터 송수신 동작이 가능한 다양한 전자 장치의 형태로 구현될 수 있다.
중계장치(200)는 서비스 서버(600)의 자원을 찾는 클라이언트(100)의 요청을 받아 중계하는 장치로, 예컨대, 웹 프록시 서버(Web Proxy) 또는 L7 스위치(Switch) 등일 수 있다. L7 스위치는 클라이언트(100)로부터 전송된 컨텐츠를 인지하여 스위칭(switching)하는 장치이다.
중계장치(200)는 클라이언트(100)로부터 웹 사이트 접속이 요청되면, 접속 요청에 따른 접속로그를 캐시(210, cache)에 임시 저장하고, 해당 웹 사이트와 클라이언트 사이의 통신을 중계한다. 중계장치(200)의 캐시(210)에는 접속로그가 저장되고, 접속로그는 클라이언트 식별정보, 접속하고자 하는 웹 사이트의 URL, IP 등을 포함할 수 있다.
중계장치(200)는 클라이언트(100)와 서비스 서버(600) 사이의 네트워크상 어디에든 위치할 수 있다. 클라이언트(100)는 원격의 목적지 서버의 주소를 기반으로 자원을 요청하고, 중계서버(200)는 그 주소를 받아 목적지 서버에 연결을 하고 자원을 가져온다.
점검대상 추출장치(300)는 중계장치(200)에 기록된 접속 로그를 활용하여 악성코드 점검대상 주소를 선별한다.
즉, 점검대상 추출장치(300)는 중계장치(200)로부터 접속로그를 수집하고, 수집된 접속로그에서 웹 주소들을 추출하며, 추출된 웹 주소에서 중복된 주소와 허용 주소를 필터링하여 점검대상 주소목록을 생성한다. 허용 주소는 방화벽에서 접속을 허용하는 주소로, 방화벽에 저장된 공인주소 데이터베이스를 이용하여 허용된 주소를 필터링하게 된다. 이때, 생성된 점검대상 주소목록은 웹 사이트의 URL 또는 IP로 구성된다.
점검대상 추출장치(300)는 점검대상 주소목록을 악성코드 점검을 수행하는 악성코드 점검장치(400)로 전송한다. 이때, 점검대상 추출장치(300)는 FTP, SNMP, syslog 등의 다양한 프로토콜을 이용하여 악성코드 점검장치(400)로 점검대상 주소목록을 전송할 수 있다.
이처럼 점검대상 추출장치(300)는 악성코드 점검을 위한 점검대상 웹주소를 자동으로 수집한다.
*본 발명의 다른 실시예에 따르면, 점검대상 추출장치(300)는 점검대상 주소목록에 있는 주소의 웹 페이지로부터 하위 주소를 추출하여, 점검대상 주소와 하위주소를 포함하는 점검대상 주소목록을 생성할 수 있다.
즉, 점검대상 추출장치(300)는 점검대상 주소목록에 있는 점검대상 URL의 웹페이지를 크롤링하여 웹페이지 소스 중 링크(link)가 존재하는 부분을 추출한다. 여기서, 링크 부분은 스크립트(script)의 src부분, A href의 URL, URL 태그(tag)에 포함되어 있는 URL, img의 src 부분 등을 포함한다. 이와 같이, 웹페이지 소스 분석을 통해 하위 URL을 수집하는 경우 사용자의 행위가 필요한 링크 클릭이나 페이지 이동에 사용되는 하위 페이지도 점검할 수 있다.
또한, 점검대상 추출장치(300)는 점검대상 URL과 연결되어 있는 깊이(depth)별 하위 URL을 추출할 수 있다. 이를 통해 악성코드 점검장치(400)가 점검대상 웹주소 외에 점검대상 웹주소와 연결되어 있는 모든 웹주소에 대한 깊이별 악성행위 여부를 점검할 수 있다.
또한, 점검대상 추출장치(300)는 웹 페이지를 방문할 때 생성되는 HTTP 요청(Request)와 HTTP 응답(Response)의 헤더(Header) 부분을 분석하여 하위 URL을 수집할 수 있다. HTTP 응답의 경유지 URL(Referer URL) 정보와 요청 URL(GET URL) 정보를 이용하여 두 URL 간의 선/후 관계를 확인할 수 있다. 경유지 URL은 Iframe 또는 요청 URL의 화면에 링크가 포함된 경우 등이고, 요청 URL은 다수의 경유지 URL을 가질 수 있으며, 개념상 상위 URL일 수 있다.
이를 통해 점검대상 추출장치(300)는 점검대상 주소의 하위 주소를 포함하는 점검대상 주소목록을 생성할 수도 있다.
인터넷으로 연결되는 다수의 클라이언트(100)는 인터넷으로 하나 또는 복수의 대상 웹사이트(Web Site)에 접속하여 원하는 자료를 얻고 자유롭게 사용할 수 있다. 이러는 중에 사용자가 무의식적으로 이용하는 일부 웹사이트의 컨텐츠가 악성 코드 및 바이러스를 포함할 수 있는데, 본 발명에 의한 점검대상 추출장치(300)에서는 이들 악성코드 정보, 바이러스 정보 등과 관련될 우려가 있는 웹 사이트 주소를 추출한다.
이처럼 점검대상 추출장치(300)는 클라이언트(100)가 웹 서비스를 이용하기 위해 접속하는 Web Proxy, L7 Switch 등의 중계장치(200)를 활용하여 악성코드 점검대상을 수집함으로써, 점검목적에 맞도록 접속로그를 가공하면 실시간 탐지에 필요한 URL을 추출할 수 있다.
또한, 점검대상 추출장치(300)는 점검대상 웹주소의 웹페이지 소스 분석을 통해 웹페이지에 연결된 하위 웹주소의 웹페이지를 점검하여 악성코드가 은닉되어 있는 웹사이트를 탐지할 수 있다.
한편, 점검대상 추출장치(300)는 단일의 연산 장치로 구현되거나 둘 이상의 연산 장치가 서로 연결된 집합 장치의 형태로 구현될 수도 있다. 예를 들어, 점검대상 추출장치(300)는 단일의 서버로 구현되거나 둘 이상의 서버가 연결된 형태로 구현될 수 있다.
악성코드 점검장치(400)는 점검대상 추출장치(300)로부터 전송된 점검대상 주소목록의 점검대상 주소들에 대해 악성코드 점검을 수행한다. 이때, 악성코드 점검장치(400)는 점검대상 웹사이트에 대한 접속 가능 여부를 확인하고, 접속 가능한 것(alive)로 확인된 웹사이트에 대해서만 방문점검을 수행한다.
점검대상 웹사이트의 접속 가능 여부를 고속으로 확인하기 위해, 악성코드 점검장치(400)는 DNS(domain name system) 질의를 전송한 후 응답 수신 여부를 확인한다. DNS 응답이 수신되면 TCP 80포트에 대한 동기신호를 전송한 후 긍정응답신호가 수신되면 TCP 80포트로 웹 서비스가 제공되고 있는 것으로 판단한다. 여기서, 악성코드 점검장치(400)는 다중 스레드(thread)를 이용하여 동시에 복수 개의 웹사이트에 대해 접속 가능 여부를 사전에 확인할 수 있다.
악성코드 점검장치(400)는 점검대상 주소목록이 수신되면, 다중 브라우저를 이용하여 동시에 복수 개의 점검대상 웹사이트에 접속한다. 여기서, 점검대상 웹사이트 목록은 대규모의 점검대상 웹사이트의 URL들로 구성된다. 그리고, 악성코드 점검장치(400)는 기 설정된 동시에 접속 가능한 단위로 브라우저를 실행시키고, 브라우저를 통해 점검대상 웹사이트를 방문한다. 예를 들어, 100개의 브라우저를 동시에 실행시킬 수 있다면, 악성코드 점검장치(400)는 점검대상 주소목록의 점검대상 웹사이트를 100개 단위로 접속한다.
한편, 점검대상 주소목록이 메인 주소와 하위 주소로 구성된 경우, 악성코드 점검장치(400)는 메인주소와 하위 주소에 따라 다르게 해당 웹 사이트를 방문하게 된다.
점검대상 웹사이트가 메인 주소이면 악성코드 점검장치는 기 설정된 개수의 다중 브라우저를 실행시켜 동시에 각각의 점검대상 웹사이트에 방문한다. 예를 들어, 악성코드 점검장치(400)는 30개의 다중 브라우저를 실행시키고 각 브라우저를 통해 각기 다른 30개의 점검대상 웹사이트를 동시에 방문한다.
점검대상 웹사이트가 하위 주소이면 악성코드 점검장치(400)는 다중 브라우저에 멀티프레임 방문기법을 동시에 이용하여 속도를 증폭시킨다. 예를 들어, 5개의 프레임을 삽입한 20개의 브라우저를 동시에 열어 점검대상 웹사이트에 방문하면 한번의 점검으로 100개(5×20)의 사이트를 점검하는 것이 가능해진다.
다중 브라우저 및 멀티프레임을 이용하여 복수 개의 사이트를 동시에 방문하여 악성코드 감염시도가 탐지되지 않으면 다음 점검대상 그룹에 대한 방문을 실시하며 감염 시도가 확인될 경우 동시 방문한 사이트 중 문제의 사이트(악성 사이트)를 추적한다. 이때, 문제의 사이트를 추적할 때 트리 탐색을 이용하여 최소한의 점검횟수로 신속하게 찾을 수 있게 한다.
악성코드 점검장치(400)는 복수 개의 점검대상 웹사이트 중 악성코드 감염시도가 있는지를 점검한다. 이때, 악성코드 점검장치(400)는 점검대상 웹사이트 방문 후 발생되는 파일, 프로세스, 레지스트리 현상에 대한 상관분석을 통해 악성코드를 감염시키는 공격의 발생 여부를 확인할 수 있다.
악성코드 점검장치(400)는 복수 개의 점검대상 웹사이트 중 악성코드 감염시도가 탐지되면 악성사이트를 추출한다. 이때, 악성코드 점검장치(400)는 트리 탐색을 이용하여 점검범위를 소정 비율로 좁혀가면 복수 개의 점검대상 웹사이트 중 악성사이트를 추출한다.
악성코드 점검장치(400)는 악성사이트가 추출되면, 악성사이트에 접속하여 악성코드를 유포하는 악성 URL을 추적한다. 여기서, 악성코드 점검장치(400)는 악성사이트 방문 시 추가적으로 접속이 발생한 접속 URL을 추출하고 그 추출된 접속 URL를 하나씩 차단시키며 악성사이트의 재방문을 통해 취약점 공격 URL을 추적한다.
악성코드 점검장치(400)는 해커가 phishing과 같은 방법으로 내부직원의 PC에 취약점을 공격하는 경우, 내부망으로 악성코드가 유입되는지와 내부 PC가 외부로 Reverse connection을 생성하는 것을 감시한다.
또한 악성코드 점검장치(400)는 외부 서비스(상용)용 서버를 대상으로 해커가 취약점을 공격하는 경우, 웹 서버에 악성코드의 링크 및 injection 여부를 감시한다. 이 경우 내부망과 상용망 구성의 차이점 때문에 DNS와 방화벽 ACL 등으로 특정 회사 및 조직에서 운영하는 웹 서버 점검대상(변경될 수 있는 현상을)을 실시간으로 파악하고 확인할 수 있게 된다.
한편, 악성코드 점검장치(400)는 단일의 연산 장치로 구현되거나 둘 이상의 연산 장치가 서로 연결된 집합 장치의 형태로 구현될 수도 있다. 예를 들어, 악성코드 점검장치(400)는 단일의 서버로 구현되거나 둘 이상의 서버가 연결된 형태로 구현될 수 있다.
도 2는 본 발명의 실시예에 따른 점검대상 추출장치의 구성을 개략적으로 나타낸 블럭도이다.
도 2를 참조하면, 점검대상 추출장치(300)는 통신부(310), 수집부(320), 점검대상 추출부(330), 저장부(340), 제어부(350)를 포함한다. 그러나 이는 하나의 실시 예일 뿐이며, 필요에 따라 일부 구성이 삭제되거나 추가될 수 있음은 물론이다.
통신부(310)는 다양한 전자 장치들과 데이터를 송수신하기 위한 구성이다. 구체적으로, 통신부(310)는, 중계장치(200), 악성코드 점검장치(400)와 유선 통신망, 무선 통신망, 근거리 통신망 등을 통해 연결될 수 있으며, 이러한 연결을 기초로 접속로그, 점검대상 목록 등을 포함하는 다양한 데이터를 송수신할 수 있는 구성이다. 이러한 통신부(310)는 다양한 유선 통신 모듈 또는 무선 통신 모듈을 포함할 수 있으며, 다양한 무선 또는 유선 통신 규격을 통해 데이터를 송신 또는 수신할 수 있다. 예를 들어, 통신부(310)는, ITU, IEEE, ISO, IEC 등의 다양한 표준 통신 모듈을 포함하는 형태로 구현될 수 있으며, 이러한 표준 통신 모듈 이외에도 다양한 통신 모듈을 포함하는 형태로 구현될 수 있다.
수집부(320)는 통신부(310)를 통해 중계장치로부터 접속로그를 수집한다. 접속로그는 클라이언트 식별정보, 접속하고자 하는 웹 사이트의 URL, IP 등을 포함할 수 있다. 즉, 수집부(320)는 중계장치의 캐시에 저장된 접속로그를 실시간 또는 주기적으로 수집할 수 있다.
점검대상 추출부(330)는 수집부(320)에서 수집된 접속로그에서 웹 주소들을 추출하고, 추출된 웹 주소에서 중복된 주소와 허용 주소를 필터링하여 점검대상 주소목록을 생성한다. 허용 주소는 방화벽에서 접속을 허용하는 주소로, 방화벽에 저장된 공인주소 데이터베이스를 이용하여 허용된 주소를 필터링하게 된다. 이때, 생성된 점검대상 주소목록은 웹 사이트의 URL 또는 IP로 구성된다.
본 발명의 다른 실시예에 따르면, 점검대상 추출부(330)는 점검대상 주소목록에 있는 주소의 웹 페이지로부터 하위 주소를 추출하여, 점검대상 주소와 하위주소를 포함하는 점검대상 주소목록을 생성할 수 있다. 즉, 점검대상 추출부(330)는 점검대상 주소목록에 있는 점검대상 URL의 웹페이지를 크롤링하여 웹페이지 소스 중 링크(link)가 존재하는 부분을 추출한다. 여기서, 링크 부분은 스크립트(script)의 src부분, A href의 URL, URL 태그(tag)에 포함되어 있는 URL, img의 src 부분 등을 포함한다. 이와 같이, 웹페이지 소스 분석을 통해 하위 URL을 수집하는 경우 사용자의 행위가 필요한 링크 클릭이나 페이지 이동에 사용되는 하위 페이지도 점검할 수 있다.
또한, 점검대상 추출부(330)는 점검대상 URL과 연결되어 있는 깊이(depth)별 하위 URL을 추출할 수 있다. 이를 통해 악성코드 점검장치가 점검대상 웹주소 외에 점검대상 웹주소와 연결되어 있는 모든 웹주소에 대한 깊이별 악성행위 여부를 점검할 수 있다.
또한, 점검대상 추출부(330)는 웹 페이지를 방문할 때 생성되는 HTTP 요청(Request)와 HTTP 응답(Response)의 헤더(Header) 부분을 분석하여 하위 URL을 수집할 수 있다. HTTP 응답의 경유지 URL(Referer URL) 정보와 요청 URL(GET URL) 정보를 이용하여 두 URL 간의 선/후 관계를 확인할 수 있다. 경유지 URL은 요청 URL 이전에 방문한 웹사이트 정보이며 요청 URL이 경유지 URL의 하위 URL이 된다.
이를 통해 점검대상 추출부(330)는 점검대상 주소의 하위 주소를 포함하는 점검대상 주소목록을 생성할 수도 있다.
한편, 수집부(320), 점검대상 추출부(330)는 컴퓨팅 장치상에서 프로그램을 실행하기 위해 필요한 프로세서 등에 의해 각각 구현될 수 있다. 이처럼 수집부(320), 점검대상 추출부(330)는 물리적으로 독립된 각각의 구성에 의해 구현될 수도 있고, 하나의 프로세서 내에서 기능적으로 구분되는 형태로 구현될 수도 있다.
저장부(340)는 점검대상 추출장치(300)의 동작과 관련된 데이터들을 저장하는 구성이다. 예를 들어, 저장부(340)는 수집부(320)에서 수집된 접속로그, 점검대상 추출부(330)에서 생성된 점검대상 주소 목록 등을 포함하는 다양한 데이터들을 저장할 수 있다. 이러한 저장부(340)는 공지된 저장매체를 이용할 수 있으며, 예를 들어, ROM, PROM, EPROM, EEPROM, RAM 등과 같이 공지된 저장매체 중 어느 하나 이상을 이용할 수 있다.
제어부(350)는 통신부(310), 수집부(320), 점검대상 추출부(330), 저장부(340)를 포함하는 점검대상 추출장치(300)의 다양한 구성부들의 동작을 제어하는 구성이다.
이러한 제어부(350)는 적어도 하나의 연산 장치를 포함할 수 있는데, 여기서 상기 연산 장치는 범용적인 중앙연산장치(CPU), 특정 목적에 적합하게 구현된 프로그래머블 디바이스 소자(CPLD, FPGA), 주문형 반도체 연산장치(ASIC) 또는 마이크로 컨트롤러 칩일 수 있다.
이러한, 점검대상 추출장치(300)는 단일의 연산 장치로 구현되거나 둘 이상의 연산 장치가 서로 연결된 집합 장치의 형태로 구현될 수도 있다. 예를 들어, 점검대상 추출장치(300)는 단일의 서버로 구현되거나 둘 이상의 서버가 연결된 형태로 구현될 수 있다.
도 3은 본 발명의 실시예에 따른 악성코드 점검장치의 구성을 개략적으로 나타낸 블럭도이다.
도 3을 참조하면, 악성코드 점검장치(400)는 통신부(410), 점검부(420), 저장부(430), 제어부(440)를 포함한다. 그러나 이는 하나의 실시 예일 뿐이며, 필요에 따라 일부 구성이 삭제되거나 추가될 수 있음은 물론이다.
통신부(410)는 다양한 전자 장치들과 데이터를 송수신하기 위한 구성이다. 구체적으로, 통신부(410)는 악성코드 점검장치(400)와 점검대상 추출장치(300)를 유선 통신망, 무선 통신망, 근거리 통신망 등을 통해 연결할 수 있으며, 이러한 연결을 기초로 접속로그, 점검대상 목록 등을 포함하는 다양한 데이터를 송수신할 수 있는 구성이다. 이러한 통신부(410)는 다양한 유선 통신 모듈 또는 무선 통신 모듈을 포함할 수 있으며, 다양한 무선 또는 유선 통신 규격을 통해 데이터를 송신 또는 수신할 수 있다. 예를 들어, 통신부(410)는, ITU, IEEE, ISO, IEC 등의 다양한 표준 통신 모듈을 포함하는 형태로 구현될 수 있으며, 이러한 표준 통신 모듈 이외에도 다양한 통신 모듈을 포함하는 형태로 구현될 수 있다.
점검부(420)는 점검대상 추출장치로부터 전송된 점검대상 주소목록의 점검대상 주소들에 대해 악성코드 점검을 수행한다. 이때, 점검부(420)는 점검대상 웹사이트에 대한 접속 가능 여부를 확인하고, 접속 가능한 것(alive)로 확인된 웹사이트에 대해서만 방문점검을 수행한다. 점검대상 웹사이트의 접속 가능 여부를 고속으로 확인하기 위해, 점검부(420)는 DNS(domain name system) 질의를 전송한 후 응답 수신 여부를 확인한다. DNS 응답이 수신되면 TCP 80포트에 대한 동기신호를 전송한 후 긍정응답신호가 수신되면 TCP 80포트로 웹 서비스가 제공되고 있는 것으로 판단한다. 여기서, 점검부(420)는 다중 스레드(thread)를 이용하여 동시에 복수 개의 웹사이트에 대해 접속 가능 여부를 사전에 확인할 수 있다.
점검부(420)는 점검대상 주소목록이 수신되면, 다중 브라우저를 이용하여 동시에 복수 개의 점검대상 웹사이트에 접속한다. 여기서, 점검대상 웹사이트 목록은 대규모의 점검대상 웹사이트의 URL들로 구성된다. 그리고, 점검부(420)는 기 설정된 동시에 접속가능한 단위로 브라우저를 실행시키고, 브라우저를 통해 점검대상 웹사이트를 방문한다. 예를 들어, 100개의 브라우저를 동시에 실행시킬 수 있다면, 점검부는 점검대상 주소목록의 점검대상 웹사이트를 100개 단위로 접속한다.
한편, 점검대상 주소목록이 메인 주소와 하위 주소로 구성된 경우, 점검부(420)는 메인주소와 하위 주소에 따라 다르게 해당 웹 사이트를 방문하게 된다.
점검대상 웹사이트가 메인 주소이면, 점검부(420)는 기설정된 개수의 다중 브라우저를 실행시켜 동시에 각각의 점검대상 웹사이트에 방문한다. 예를 들어, 점검부(420)는 30개의 다중 브라우저를 실행시키고 각 브라우저를 통해 각기 다른 30개의 점검대상 웹사이트를 동시에 방문한다.
점검대상 웹사이트가 하위 주소이면, 점검부(420)는 다중 브라우저에 멀티프레임 방문기법을 동시에 이용하여 속도를 증폭시킨다. 예를 들어, 5개의 프레임을 삽입한 20개의 브라우저를 동시에 열어 점검대상 웹사이트에 방문하면 한번의 점검으로 100개(5×20)의 사이트를 점검하는 것이 가능해진다.
*다중 브라우저 및 멀티프레임을 이용하여 복수 개의 사이트를 동시에 방문하여 악성코드 감염시도가 탐지되지 않으면 다음 점검대상 그룹에 대한 방문을 실시하며 감염 시도가 확인될 경우 동시 방문한 사이트 중 문제의 사이트(악성 사이트)를 추적한다. 이때, 문제의 사이트를 추적할 때 트리 탐색을 이용하여 최소한의 점검횟수로 신속하게 찾을 수 있게 한다.
점검부(420)는 복수 개의 점검대상 웹사이트 중 악성코드 감염시도가 있는지를 점검한다. 이때, 점검부(420)는 점검대상 웹사이트 방문 후 발생되는 파일, 프로세스, 레지스트리 현상에 대한 상관분석을 통해 악성코드를 감염시키는 공격의 발생 여부를 확인할 수 있다.
점검부(420)는 복수 개의 점검대상 웹사이트 중 악성코드 감염시도가 탐지되면 악성사이트를 추출한다. 이때, 점검부(420)는 트리 탐색을 이용하여 점검범위를 소정 비율로 좁혀가면 복수 개의 점검대상 웹사이트 중 악성사이트를 추출한다.
점검부(420)는 악성사이트가 추출되면, 악성사이트에 접속하여 악성코드를 유포하는 악성 URL을 추적한다. 여기서, 점검브(420)는 악성사이트 방문 시 추가적으로 접속이 발생한 접속 URL을 추출하고 그 추출된 접속 URL를 하나씩 차단시키며 악성사이트의 재방문을 통해 취약점 공격 URL을 추적한다.
한편, 점검부(420)는 컴퓨팅 장치상에서 프로그램을 실행하기 위해 필요한 프로세서 등에 의해 각각 구현될 수 있다. 이처럼 점검부(420)는 물리적으로 독립된 각각의 구성에 의해 구현될 수도 있고, 하나의 프로세서 내에서 기능적으로 구분되는 형태로 구현될 수도 있다.
저장부(430)는 악성코드 점검장치(400)의 동작과 관련된 데이터들을 저장하는 구성이다. 특히, 저장부(440)는 점검대상 추출장치로부터 전송된 점검대상 주소목록 등을 포함하는 다양한 데이터들을 저장할 수 있다. 이러한 저장부(440)는 공지된 저장매체를 이용할 수 있으며, 예를 들어, ROM, PROM, EPROM, EEPROM, RAM 등과 같이 공지된 저장매체 중 어느 하나 이상을 이용할 수 있다.
제어부(440)는 통신부(410), 점검부(420), 저장부(430)를 포함하는 악성코드 점검장치(400)의 다양한 구성부들의 동작을 제어하는 구성이다.
이러한 제어부(440)는 적어도 하나의 연산 장치를 포함할 수 있는데, 여기서 상기 연산 장치는 범용적인 중앙연산장치(CPU), 특정 목적에 적합하게 구현된 프로그래머블 디바이스 소자(CPLD, FPGA), 주문형 반도체 연산장치(ASIC) 또는 마이크로 컨트롤러 칩일 수 있다.
이러한, 악성코드 점검장치(400)는 단일의 연산 장치로 구현되거나 둘 이상의 연산 장치가 서로 연결된 집합 장치의 형태로 구현될 수도 있다. 예를 들어, 악성코드 점검장치(400)는 단일의 서버로 구현되거나 둘 이상의 서버가 연결된 형태로 구현될 수 있다.
도 4는 본 발명의 일 실시예에 따른 악성코드 점검을 위한 웹주소 자동 추출 방법을 나타낸 도면이다. 이는 본 발명의 목적을 달성함에 있어서 바람직한 단계들을 포함하는 하나의 실시 예일 뿐이며, 일부 단계가 수정되거나 추가 또는 삭제될 수 있음은 물론이다.
도 4를 참조하면, 점검대상 추출장치는 중계장치로부터 접속로그를 수집하고(S402), 수집된 접속로그에서 웹주소들을 추출한다(S404).
그런 후, 점검대상 추출장치는 추출된 웹 주소에서 중복된 주소와 허용 주소를 필터링하여(S406) 점검대상 주소목록을 생성한다(S408). 이때, 점검대상 추출장치는 방화벽 공인 IP를 필터링하여 점검대상 주소목록을 생성하고, 생성된 점검대상 주소목록은 웹 사이트의 URL 또는 IP로 구성된다.
S408이 수행되면, 점검대상 추출장치는 점검대상 주소목록을 저장은 물론 악성코드 점검을 수행하는 악성코드 점검장치로 전송한다(S410). 이때, 점검대상 추출장치는 FTP, SNMP, syslog 등의 다양한 프로토콜을 이용하여 악성코드 점검장치로 점검대상 주소목록을 전송할 수 있다.
본 발명의 실시 예에 따른 악성코드 점검을 위한 웹주소 자동 추출 방법을 프로그램의 형태로 구현할 수도 있으며, 이러한 상태에서 컴퓨터에 실행시키기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체에 저장시키거나, 프로그램 제공 서버를 통해 배포할 수도 있다.
도 5는 본 발명의 다른 실시예에 따른 악성코드 점검을 위한 웹주소 자동 추출 방법을 나타낸 도면이다. 이는 본 발명의 목적을 달성함에 있어서 바람직한 단계들을 포함하는 하나의 실시 예일 뿐이며, 일부 단계가 수정되거나 추가 또는 삭제될 수 있음은 물론이다.
도 5를 참조하면, 점검대상 추출장치는 중계장치로부터 접속로그를 수집하고(S502), 수집된 접속로그에서 웹주소들을 추출한다(S504).
그런 후, 점검대상 추출장치는 추출된 웹 주소에서 중복된 주소와 허용 주소를 필터링하여(S506) 점검대상 주소를 추출한다(S508). 이때, 점검대상 추출장치는 방화벽 공인 IP를 필터링하여 점검대상 주소를 추출한다.
S508이 수행되면, 점검대상 추출장치는 추출된 점검대상 주소의 웹 페이지로부터 하위 주소를 추출하고(S510), 점검대상 주소와 하위주소를 포함하는 점검대상 주소목록을 생성한다(S512). 즉, 점검대상 추출장치는 점검대상 주소목록에 있는 점검대상 URL의 웹페이지를 크롤링하여 웹페이지 소스 중 링크(link)가 존재하는 부분을 하위 주소로 추출한다. 여기서, 링크 부분은 스크립트(script)의 src부분, A href의 URL, URL 태그(tag)에 포함되어 있는 URL, img의 src 부분 등을 포함한다. 이와 같이, 웹페이지 소스 분석을 통해 하위 URL을 수집하는 경우 사용자의 행위가 필요한 링크 클릭이나 페이지 이동에 사용되는 하위 페이지도 점검할 수 있다.
또한, 점검대상 추출장치는 점검대상 URL과 연결되어 있는 깊이(depth)별 하위 URL을 추출할 수 있다. 이를 통해 악성코드 점검장치가 점검대상 웹주소 외에 점검대상 웹주소와 연결되어 있는 모든 웹주소에 대한 깊이별 악성행위 여부를 점검할 수 있다.
또한, 점검대상 추출장치는 웹 페이지를 방문할 때 생성되는 HTTP 요청(Request)와 HTTP 응답(Response)의 헤더(Header) 부분을 분석하여 하위 URL을 수집할 수 있다. HTTP 응답의 경유지 URL(Referer URL) 정보와 요청 URL(GET URL) 정보를 이용하여 두 URL 간의 선/후 관계를 확인할 수 있다. 경유지 URL은 요청 URL 이전에 방문한 웹사이트 정보이며 요청 URL이 경유지 URL의 하위 URL이 된다.
이를 통해 점검대상 추출장치는 점검대상 주소의 하위 주소를 포함하는 점검대상 주소목록을 생성할 수도 있다.
그런 후, 점검대상 추출장치는 점검대상 주소목록을 저장은 물론 악성코드 점검을 수행하는 점검장치로 전송한다(S514). 이때, 점검대상 추출장치는 FTP, SNMP, syslog 등의 다양한 프로토콜을 이용하여 악성코드 점검장치로 점검대상 주소목록을 전송할 수 있다.
본 발명의 실시 예에 따른 악성코드 점검을 위한 웹주소 자동 추출 방법을 프로그램의 형태로 구현할 수도 있으며, 이러한 상태에서 컴퓨터에 실행시키기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체에 저장시키거나, 프로그램 제공 서버를 통해 배포할 수도 있다.
도 6은 본 발명의 실시예에 따른 악성코드 점검장치의 악성코드 점검 방법을 나타낸 도면이다. 이는 본 발명의 목적을 달성함에 있어서 바람직한 단계들을 포함하는 하나의 실시 예일 뿐이며, 일부 단계가 수정되거나 추가 또는 삭제될 수 있음은 물론이다.
도 6을 참조하면, 악성코드 점검장치는 점검대상 추출장치로부터 점검대상 주소목록이 수신되면(S602), 점검대상 주소에 해당하는 웹사이트에 접속한다(S604). 이때, 악성코드 점검장치는 점검대상 웹사이트에 대한 접속 가능 여부를 확인하고, 접속 가능한 것(alive)로 확인된 웹사이트에 대해서만 방문점검을 수행한다. 점검대상 웹사이트의 접속 가능 여부를 고속으로 확인하기 위해, 악성코드 점검장치는 DNS(domain name system) 질의를 전송한 후 응답 수신 여부를 확인한다. DNS 응답이 수신되면 TCP 80포트에 대한 동기신호를 전송한 후 긍정응답신호가 수신되면 TCP 80포트로 웹 서비스가 제공되고 있는 것으로 판단한다. 여기서, 악성코드 점검장치는 다중 스레드(thread)를 이용하여 동시에 복수 개의 웹사이트에 대해 접속 가능 여부를 사전에 확인할 수 있다.
또한, 악성코드 점검장치는 점검대상 주소목록이 수신되면, 다중 브라우저를 이용하여 동시에 복수 개의 점검대상 웹사이트에 접속한다. 여기서, 점검대상 웹사이트 목록은 대규모의 점검대상 웹사이트의 URL들로 구성된다. 그리고, 악성코드 점검장치는 기 설정된 동시에 접속 가능한 단위로 브라우저를 실행시키고, 브라우저를 통해 점검대상 웹사이트를 방문한다. 예를 들어, 100개의 브라우저를 동시에 실행시킬 수 있다면, 악성코드 점검장치는 점검대상 주소목록의 점검대상 웹사이트를 100개 단위로 접속한다.
한편, 점검대상 주소목록이 메인 주소와 하위 주소로 구성된 경우, 악성코드 점검장치는 메인주소와 하위 주소에 따라 다르게 해당 웹 사이트를 방문하게 된다.
점검대상 웹사이트가 메인 주소이면 악성코드 점검장치는 기설정된 개수의 다중 브라우저를 실행시켜 동시에 각각의 점검대상 웹사이트에 방문한다. 예를 들어, 악성코드 점검장치는 30개의 다중 브라우저를 실행시키고 각 브라우저를 통해 각기 다른 30개의 점검대상 웹사이트를 동시에 방문한다.
점검대상 웹사이트가 하위 주소이면 악성코드 점검장치는 다중 브라우저에 멀티프레임 방문기법을 동시에 이용하여 속도를 증폭시킨다. 예를 들어, 5개의 프레임을 삽입한 20개의 브라우저를 동시에 열어 점검대상 웹사이트에 방문하면 한번의 점검으로 100개(5×20)의 사이트를 점검하는 것이 가능해진다.
다중 브라우저 및 멀티프레임을 이용하여 복수 개의 사이트를 동시에 방문하여 악성코드 감염시도가 탐지되지 않으면 다음 점검대상 그룹에 대한 방문을 실시하며 감염 시도가 확인될 경우 동시 방문한 사이트 중 문제의 사이트(악성 사이트)를 추적한다. 이때, 문제의 사이트를 추적할 때 트리 탐색을 이용하여 최소한의 점검횟수로 신속하게 찾을 수 있게 한다.
S604가 수행되면, 악성코드 점검장치는 복수 개의 점검대상 웹사이트 중 악성코드 감염시도가 있는지를 점검한다(S606). 이때, 악성코드 점검장치는 점검대상 웹사이트 방문 후 발생되는 파일, 프로세스, 레지스트리 현상에 대한 상관분석을 통해 악성코드를 감염시키는 공격의 발생 여부를 확인할 수 있다.
악성코드 점검장치는 복수 개의 점검대상 웹사이트 중 악성코드 감염시도가 탐지되면 악성사이트를 추출한다(S608). 이때, 악성코드 점검장치는 트리 탐색을 이용하여 점검범위를 소정 비율로 좁혀가면 복수 개의 점검대상 웹사이트 중 악성사이트를 추출한다.
악성사이트가 추출되면, 악성코드 점검장치는 악성사이트에 접속하여 악성코드를 유포하는 악성 URL을 추적한다(S610). 여기서, 악성코드 점검장치는 악성사이트 방문 시 추가적으로 접속이 발생한 접속 URL을 추출하고 그 추출된 접속 URL를 하나씩 차단시키며 악성사이트의 재방문을 통해 취약점 공격 URL을 추적한다.
이러한 악성코드 점검을 위한 웹주소 자동 추출 방법은 프로그램으로 작성 가능하며, 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 악성코드 점검을 위한 웹주소 자동 추출 방법에 관한 프로그램은 전자장치가 읽을 수 있는 정보저장매체(Readable Media)에 저장되고, 전자장치에 의하여 읽혀지고 실행될 수 있다.
이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 실시 형태로 실시될 수 있다는 것을 인지할 수 있을 것이다. 따라서 이상에서 기술한 실시 예들은 예시적인 것일 뿐이며, 그 범위를 제한해놓은 한정적인 것이 아닌 것으로 이해해야만 한다. 또한, 도면에 도시된 순서도들은 본 발명을 실시함에 있어서 가장 바람직한 결과를 달성하기 위해 예시적으로 도시된 순차적인 순서에 불과하며, 다른 추가적인 단계들이 제공되거나, 일부 단계가 삭제될 수 있음은 물론이다.
본 명세서에서 기술한 기술적 특징과 이를 실행하는 구현물은 디지털 전자 회로로 구현되거나, 본 명세서에서 기술하는 구조 및 그 구조적인 등가물 등을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현되거나, 이들 중 하나 이상의 조합으로 구현 가능하다. 또한 본 명세서에서 기술한 기술적 특징을 실행하는 구현물은 컴퓨터 프로그램 제품, 다시 말해 처리 시스템의 동작을 제어하기 위하여 또는 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령어에 관한 모듈로서 구현될 수도 있다.
컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 또는 이들 중 하나 이상의 조합일 수 있다.
한편, 본 명세서에서 "장치"나 "시스템"이라 함은 예를 들어, 프로세서, 컴퓨터 또는 다중 프로세서나 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 기구, 장치 및 기계를 모두 포함한다. 처리 시스템은, 하드웨어에 부가하여 예를 들어, 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 제체 또는 이들 중 하나 이상의 조합 등 요청 시 컴퓨터 프로그램에 대한 실행 환경을 형성하는 모든 코드를 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드 등으로 알려진 컴퓨터 프로그램은 컴파일 되거나 해석된 언어 또는 선험적, 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 구현될 수 있다.
한편, 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응되는 것은 아니며, 요청된 프로그램에 제공되는 단일 파일 내에 또는 다중의 상호 작용하는 파일(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드의 일부를 저장하는 파일)내에, 또는 다른 프로그램이나 데이터를 보유하는 파일의 일부(예를 들어, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트)내에 저장될 수 있다.
컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 유/무선 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나 이상의 컴퓨터 상에서 실행되도록 구현될 수 있다.
한편, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예를 들어 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD와 DVD 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함할 수 있다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
본 명세서에서 기술한 기술적 특징을 실행하는 구현물은 예를 들어, 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 예를 들어, 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 본 명세서에서 설명한 주제의 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 하나 이상의 모든 조합을 포함하는 연산 시스템에서 구현될 수도 있다. 시스템의 컴포넌트는 예를 들어, 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다.
이하, 상기 기술한 내용과 더불어 본 명세서에 기술한 시스템과 악성코드 점검을 위한 웹주소 자동 추출 방법이 포함하는 구성들을 구현할 수 있는 보다 구체적인 실시 예에 대하여 자세히 기술하도록 한다.
본 명세서에서 기술한 시스템과 악성코드 점검을 위한 웹주소 자동 추출 방법은 클라이언트 디바이스 또는 웹 기반의 스토리지 시스템과 관련된 서버 또는 서버에 포함된 하나 이상의 프로세서(Processor) 상에서 컴퓨터 소프트웨어, 프로그램 코드 또는 명령어를 실행하는 수단을 통해 부분적 또는 전체적으로 사용될 수 있다. 여기서 프로세서는 서버, 클라이언트, 네트워크 인프라 구조, 모바일 컴퓨팅 플랫폼, 고정 컴퓨팅 플랫폼 등과 같은 컴퓨팅 플랫폼 중 일부일 수 있으며, 구체적으로 프로그램 명령어, 코드 등을 실행할 수 있는 컴퓨터 또는 프로세싱 디바이스의 한 종류일 수 있다. 또한, 프로세서는 악성코드 점검을 위한 웹주소 자동 추출 방법, 명령어, 코드 및 프로그램을 저장하는 메모리를 더 포함할 수 있으며, 메모리를 포함하지 않는 경우 별도의 인터페이스를 통해 악성코드 점검을 위한 웹주소 자동 추출 방법, 명령어, 코드 및 프로그램이 저장된 CD-ROM, DVD, 메모리, 하드 디스크, 플래시 드라이브, RAM, ROM, 캐시 등과 같은 스토리지 디바이스에 접근(Access)할 수도 있다.
또한, 본 명세서에서 기술한 시스템과 악성코드 점검을 위한 웹주소 자동 추출 방법은 서버, 클라이언트, 게이트웨이, 허브, 라우터 또는 네트워크 하드웨어 상의 컴퓨터 소프트웨어를 실행하는 장치를 통해 부분적 또는 전체적으로 사용될 수 있다. 여기서 소프트웨어는 파일 서버, 프린트 서버, 도메인 서버, 인터넷 서버, 인트라넷 서버, 호스트 서버, 분산 서버 등과같이 다양한 종류의 서버에서 실행될 수 있으며, 상기 언급한 서버들은 메모리, 프로세서, 컴퓨터에서 판독 가능한 저장매체, 스토리지 매체, 통신 디바이스, 포트, 클라이언트 그리고 다른 서버들을 유/무선 네트워크를 통해 접근할 수 있는 인터페이스를 더 포함할 수 있다.
또한, 악성코드 점검을 위한 웹주소 자동 추출 방법, 명령어, 코드 등 역시 서버에 의해 실행될 수 있으며, 악성코드 점검을 위한 웹주소 자동 추출 방법을 실행하기 위해 필요한 다른 디바이스들은 서버와 연관된 계층구조의 일 부분으로 구현될 수 있다.
아울러, 서버는 클라이언트, 다른 서버, 프린터, 데이터베이스 서버, 프린트 서버, 파일 서버, 통신 서버, 분산 서버 등을 제한 없이 포함하는 다른 디바이스에게 인터페이스를 제공할 수 있으며, 인터페이스를 통한 연결은 유/무선 네트워크를 통해 프로그램의 원격 실행을 용이하게 할 수 있다.
또한, 인터페이스를 통해 서버에 연결된 디바이스 중 어느 것이라도 악성코드 점검을 위한 웹주소 자동 추출 방법, 명령어, 코드 등을 저장할 수 있는 적어도 하나의 스토리지 디바이스를 더 포함할 수 있으며, 서버의 중앙 프로세서는 상이한 디바이스 상에서 실행될 명령어, 코드 등을 디바이스에 제공하여 스토리지 디바이스에 저장되게 할 수 있다.
한편, 본 명세서에서 기술한 시스템과 악성코드 점검을 위한 웹주소 자동 추출 방법은 네트워크 인프라구조를 통해 부분적 또는 전체적으로 사용될 수 있다. 여기서 네트워크 인프라구조는 컴퓨팅 디바이스, 서버, 라우터, 허브, 방화벽, 클라이언트, 개인용 컴퓨터, 통신 디바이스, 라우팅 디바이스 등과 같은 디바이스와 각각의 기능을 실행할 수 있는 별도의 모듈 등을 모두 포함할 수 있으며, 상기 언급한 디바이스와 모듈 외에 스토리 플래시 메모리, 버퍼, 스택, RAM, ROM 등과 같은 스토리지 매체를 더 포함할 수 있다. 또한, 악성코드 점검을 위한 웹주소 자동 추출 방법, 명령어, 코드 등 역시 네트워크 인프라구조가 포함하는 디바이스, 모듈, 스토리지 매체 중 어느 하나에 의해 실행 및 저장될 수 있으며, 악성코드 점검을 위한 웹주소 자동 추출 방법을 실행하기 위해 필요한 다른 디바이스 역시 네트워크 인프라구조의 일 부분으로 구현될 수 있다.
또한, 본 명세서에서 기술한 시스템과 악성코드 점검을 위한 웹주소 자동 추출 방법은 하드웨어 또는 특정 애플리케이션(Application)에 적합한 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 여기서 하드웨어는 개인용 컴퓨터, 이동통신 단말기 등과 같은 범용 컴퓨터 디바이스와 기업형 특정 컴퓨터 디바이스를 모두 포함하며, 컴퓨터 디바이스는 메모리, 마이크로프로세서, 마이크로콘트롤러, 디지털 신호 프로세서, 애플리케이션 집적 회로, 프로그래머블 게이트 어레이, 프로그래머블 어레이 조직 등을 포함하는 디바이스 또는 이들의 조합으로 구현될 수 있다.
이상에서 기술한 컴퓨터 소프트웨어, 명령어, 코드 등은 판독 가능한 디바이스에 의해 저장 또는 접근될 수 있으며, 여기서 판독 가능한 디바이스는 일정 시간 간격 동안 컴퓨팅하는데 사용되는 디지털 데이터를 구비하는 컴퓨터 컴포넌트, RAM 또는 ROM과 같은 반도체 스토리지, 광디스크와 같은 영구적인 스토리지, 하드 디스크, 테이프, 드럼 등과 같은 대용량 스토리지, CD 또는 DVD와 같은 광 스토리지, 플래시 메모리, 플로피 디스크, 자기 테이프, 페이퍼 테이프, 독립형 RAM 디스크, 컴퓨터로부터 착탈 가능한 대용량 스토리지와 동적 메모리, 정적 메모리, 가변 스토리지, 클라우드와 같은 네트워크 접속형 스토리지 등과 같은 메모리를 포함할 수 있다. 한편, 여기서 명령어와 코드 등은 SQL, dBase 등과 같은 데이터 지향 언어, C, Objective C, C++, 어셈블리 등과 같은 시스템 언어, Java, NET 등과 같은 아키텍처 언어, PHP, Ruby, Perl, Python 등과 같은 애플리케이션 언어 등과 같은 언어들을 모두 포함하지만, 이에 한정되지는 않고 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려진 언어들을 모두 포함할 수 있다.
또한, 본 명세서에서 기술한 "컴퓨터에서 판독 가능한 매체"는 프로그램 실행을 위해 명령어를 프로세서로 제공하는데 기여하는 모든 매체를 포함한다. 구체적으로 데이터 스토리지 디바이스, 광디스크, 자기 디스크 등과 같은 비휘발성 매체, 동적 메모리 등과 같은 휘발성 매체와 데이터를 전송하는 동축 케이블, 구리 와이어, 광섬유 등과 같은 전송 매체를 포함하지만 이에 한정되지는 않는다.
한편, 본 명세서에 첨부된 도면에 도시된 블록도와 순서도에 포함된 본 발명의 기술적 특징을 실행하는 구성들은 상기 구성들 사이의 논리적인 경계를 의미한다.
그러나 소프트웨어나 하드웨어의 실시 예에 따르면, 도시된 구성들과 그 기능들은 독립형 소프트웨어 모듈, 모놀리식 소프트웨어 구조, 코드, 서비스 및 이들을 조합한 형태로 실행되며, 저장된 프로그램 코드, 명령어 등을 실행할 수 있는 프로세서를 구비한 컴퓨터에서 실행 가능한 매체에 저장되어 그 기능들이 구현될 수 있으므로 이러한 모든 실시 예 역시 본 발명의 권리범위 내에 속하는 것으로 보아야 할 것이다.
따라서, 첨부된 도면과 그에 대한 기술은 본 발명의 기술적 특징을 설명하기는 하나, 이러한 기술적 특징을 구현하기 위한 소프트웨어의 특정 배열이 분명하게 언급되지 않는 한, 단순히 추론되어서는 안된다. 즉, 이상에서 기술한 다양한 실시 예들이 존재할 수 있으며, 그러한 실시 예들이 본 발명과 동일한 기술적 특징을 보유하면서 일부 변형될 수 있으므로, 이 역시 본 발명의 권리범위 내에 속하는 것으로 보아야 할 것이다.
또한, 순서도의 경우 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 가장 바람직한 결과를 얻기 위하여 도시된 것으로서, 도시된 특정한 순서나 순차적인 순서대로 그러한 동작들을 반드시 실행되어야 한다거나 모든 도시된 동작들이 반드시 실행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티 태스킹과 병렬 프로세싱이 유리할 수 있다. 아울러, 이상에서 기술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.
이와 같이, 본 명세서는 그 제시된 구체적인 용어에 의해 본 발명을 제한하려는 의도가 아니다. 따라서, 이상에서 기술한 실시 예를 참조하여 본 발명을 상세하게 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 범위를 벗어나지 않으면서도 본 실시 예들에 대한 개조, 변경 및 변형을 가할 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 권리범위에 포함되는 것으로 해석되어야 한다.
본 발명은 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법을 제공함으로써, 클라이언트가 웹 서비스를 이용하기 위해 접속하는 Web Proxy, L7 Switch 등의 중계장치를 활용하여 악성코드 점검대상을 실시간으로 수집할 수 있고, 이를 통해 점검목적에 맞도록 로그를 가공하면 실시간 탐지에 필요한 URL을 추출할 수 있다.
또한, 점검대상 웹주소의 웹페이지 소스 분석을 통해 웹페이지에 연결된 하위 웹주소의 웹페이지를 점검하여 악성코드가 은닉되어 있는 웹사이트를 탐지할 수 있다.
또한, 웹사이트 방문점검 및 악성여부 판별을 통해 악성으로 확인된 악성사이트 내의 악성 URL을 추출할 수 있다.
100 : 클라이언트
200 : 중계장치
300 : 점검대상 추출장치
310, 410 : 통신부
320 : 수집부
330 : 점검대상 추출부
340, 430 : 저장부
350, 440 : 제어부
400 : 악성코드 점검장치
420 : 점검부
500 : DNS 서버
600 : 서비스 서버

Claims (3)

  1. 중계장치로부터 접속로그를 수집하는 수집부;
    상기 수집된 접속로그에서 웹주소들을 추출하고, 상기 추출된 웹 주소에서 중복된 주소와 허용 주소를 필터링하여, 점검대상 주소를 추출하며, 상기 추출된 점검대상 주소의 웹 페이지로부터 하위 주소를 추출하고, 상기 점검대상 주소와 하위주소를 포함하는 점검대상 주소목록을 생성하는 점검대상 추출부;
    를 포함하되,
    상기 점검대상 추출부는 점검대상 URL과 연결되어 있는 깊이(depth)별 하위 URL을 추출하는 것을 특징으로 하는 점검대상 추출장치.
  2. 제1항에 있어서,
    상기 점검대상 추출부는 상기 점검대상 주소에 해당하는 웹페이지를 크롤링하여 웹페이지 소스 중 링크(link)가 존재하는 부분을 하위 주소로 추출하는 것을 특징으로 하는 특징으로 하는 점검대상 추출장치.
  3. 제1항에 있어서,
    상기 점검대상 추출부는 상기 점검대상 주소에 해당하는 웹 페이지를 방문할 때 생성되는 HTTP 요청(Request)와 HTTP 응답(Response)의 헤더(Header) 부분을 분석하여 하위 주소를 수집하는 것을 특징으로 하는 점검대상 추출장치.
KR1020160142466A 2016-10-28 2016-10-28 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법 KR101767594B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160142466A KR101767594B1 (ko) 2016-10-28 2016-10-28 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160142466A KR101767594B1 (ko) 2016-10-28 2016-10-28 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020150146240A Division KR101767589B1 (ko) 2015-10-20 2015-10-20 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20170046103A KR20170046103A (ko) 2017-04-28
KR101767594B1 true KR101767594B1 (ko) 2017-08-18

Family

ID=58702238

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160142466A KR101767594B1 (ko) 2016-10-28 2016-10-28 악성코드 점검을 위한 웹주소 자동 추출 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101767594B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102623681B1 (ko) * 2022-02-21 2024-01-11 주식회사 리니어리티 네트워크 통신 로그 분석을 통한 악성코드 감염 탐지 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101281160B1 (ko) * 2006-02-03 2013-07-02 주식회사 엘지씨엔에스 하이퍼 텍스터 전송규약 요청 정보 추출을 이용한침입방지시스템 및 그를 이용한 유알엘 차단방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101281160B1 (ko) * 2006-02-03 2013-07-02 주식회사 엘지씨엔에스 하이퍼 텍스터 전송규약 요청 정보 추출을 이용한침입방지시스템 및 그를 이용한 유알엘 차단방법

Also Published As

Publication number Publication date
KR20170046103A (ko) 2017-04-28

Similar Documents

Publication Publication Date Title
Kumar et al. Signature based intrusion detection system using SNORT
US10193929B2 (en) Methods and systems for improving analytics in distributed networks
KR101890272B1 (ko) 보안이벤트 자동 검증 방법 및 장치
CN103634306B (zh) 网络数据的安全检测方法和安全检测服务器
Akiyama et al. Searching structural neighborhood of malicious urls to improve blacklisting
CN103384888A (zh) 用于恶意软件的检测和扫描的系统和方法
RU2634209C1 (ru) Система и способ автогенерации решающих правил для систем обнаружения вторжений с обратной связью
CN108768921B (zh) 一种基于特征检测的恶意网页发现方法及系统
CN103685294A (zh) 拒绝服务攻击的攻击源的识别方法和装置
CN106302512B (zh) 一种用于控制访问的方法、设备与系统
US20150047038A1 (en) Techniques for validating distributed denial of service attacks based on social media content
WO2013111027A1 (en) Dynamically scanning a web application through use of web traffic information
CN108573146A (zh) 一种恶意url检测方法及装置
CN107528812B (zh) 一种攻击检测方法及装置
WO2017063274A1 (zh) 一种恶意跳转及恶意嵌套类不良网站的自动判定方法
CN110362992A (zh) 在基于云端环境中阻挡或侦测计算机攻击的方法和设备
JP5752642B2 (ja) 監視装置および監視方法
CN113518077A (zh) 一种恶意网络爬虫检测方法、装置、设备及存储介质
CN108351941B (zh) 分析装置、分析方法、以及计算机可读存储介质
RU2738337C1 (ru) Система и способ обнаружения интеллектуальных ботов и защиты от них
Samarasinghe et al. On cloaking behaviors of malicious websites
CN103440454B (zh) 一种基于搜索引擎关键词的主动式蜜罐检测方法
CN103561076B (zh) 一种基于云的网页挂马实时防护方法及系统
JP2013191133A (ja) アドレス抽出装置
CN107566371B (zh) 一种面向海量日志的WebShell挖掘方法

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant