KR20210054799A - Url 클러스터링을 위한 url의 요약을 생성하는 방법 및 장치 - Google Patents

Url 클러스터링을 위한 url의 요약을 생성하는 방법 및 장치 Download PDF

Info

Publication number
KR20210054799A
KR20210054799A KR1020190140901A KR20190140901A KR20210054799A KR 20210054799 A KR20210054799 A KR 20210054799A KR 1020190140901 A KR1020190140901 A KR 1020190140901A KR 20190140901 A KR20190140901 A KR 20190140901A KR 20210054799 A KR20210054799 A KR 20210054799A
Authority
KR
South Korea
Prior art keywords
url
generating
attribute information
field
fields
Prior art date
Application number
KR1020190140901A
Other languages
English (en)
Other versions
KR102516454B1 (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 KR1020190140901A priority Critical patent/KR102516454B1/ko
Priority to US17/081,095 priority patent/US20210136032A1/en
Publication of KR20210054799A publication Critical patent/KR20210054799A/ko
Application granted granted Critical
Publication of KR102516454B1 publication Critical patent/KR102516454B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/258Heading extraction; Automatic titling; Numbering
    • H04L61/3085
    • 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
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • H04L2101/385Uniform resource identifier for session initiation protocol [SIP URI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/604Address structures or formats

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

URL의 요약을 생성하는 방법 및 장치가 제공된다. 본 개시의 몇몇 실시예에 따른 컴퓨터 장치에 의해 수행되는 URL의 요약을 생성하는 방법은 URL을 획득하는 단계, 상기 URL을 파싱(parsing)하여 상기 URL로부터 복수의 필드를 추출하는 단계, 상기 복수의 필드에 대해 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계 및 상기 속성 정보를 이용하여 상기 URL의 요약을 생성하는 단계를 포함한다.
이러한 방법에 따르면, URL의 구조적 특징을 반영하여 URL의 요약을 생성하고 이를 URL 클러스터링에 제공하므로, URL의 구조적 특징이 온전히 반영된 URL 클러스터링이 가능해진다. 나아가, 기존 머신러닝 기반의 클러스터링과 달리, 룰(rule) 기반으로 URL 요약을 생성하여 URL 클러스터링에 적용하므로, URL 요약 또는 클러스터링에 소요되는 연산 시간이 짧고 새로운 데이터에 대해서도 즉각적인 반영이 가능하게 된다.

Description

URL 클러스터링을 위한 URL의 요약을 생성하는 방법 및 장치{METHOD AND APPARATUS FOR GENERATING SUMMARY OF URL FOR URL CLUSTERING}
본 개시는 URL의 요약을 생성하는 방법 및 장치에 관한 것이다. 보다 자세하게는, URL 클러스터링을 위해 URL의 요약을 생성하는 방법 및 장치에 관한 것이다.
최근 사이버 공격이나 해킹의 위협이 증가함에 따라, 여러 기관과 기업에서는 네트워크를 통해 외부로부터 접속하는 URL(Uniform Resource Locator) 로그들을 분석하여 사이버 공격이나 해킹의 시도를 사전에 탐지하는 데 많은 노력을 기울이고 있다. 이는 수집된 URL 로그들 중에서 정상 로그와 악성 로그를 구분하여, 악성 로그가 탐지되는 경우 이에 대비한 경고를 발생하거나 상응하는 조치를 취하는 방식으로 이루어진다.
한편, 많게는 하루 수십억 건 이상씩 대량으로 수집되는 URL 로그들 속에서 악성 로그를 효과적으로 탐지하기 위해서는, 유사한 URL들을 묶어 자동으로 클러스터링(clustering, 군집화)할 수 있는 기술이 필수적이다. 이러한, URL 클러스터링을 위해 종래에 다양한 방법이 시도되었는데, 예를 들어 자연어 처리 알고리즘을 통해 유사한 텍스트를 갖는 URL들을 클러스터링하거나, 유클리디안 거리 계산식과 같은 문자열 간 거리 계산 알고리즘을 이용하여 유사한 URL을 클러스터링하거나, K-means 클러스터링과 같은 머신러닝 알고리즘을 이용하여 유사한 URL들을 클러스터링하는 방법들이 일반적으로 사용되었다.
그러나, 이러한 종래의 방법들은 URL에 포함된 글자들을 워드 단위로 구분하거나 자연어의 형태소 기반으로 텍스트를 처리, 분석하였기 때문에, 텍스트를 전처리하는 과정에서 URL의 구조적 특징을 제대로 반영하지 못했을 뿐만 아니라 글자(character) 단위로 URL 로그를 분석하는 것이 필요한 보안 로그 분야와는 다소 맞지 않는 부분이 있었다.
또한, 종래의 방법들은 주로 URL에 포함된 텍스트들의 벡터 거리를 기준으로 유사도를 판단하였는데, 일반적으로 URL의 경우 텍스트의 벡터 거리(또는, 의미 유사도)보다는 텍스트의 유형이나 형태, 또는 길이에 의해 그 특징이 구분지어지므로, 종래의 방식으로는 URL을 적절하게 클러스터링하기 어려웠다.
특히, 종래의 클러스터링 방법들 중 머신러닝 기반의 방법들은 딥러닝 학습에 많은 시간이 소요되는 문제가 있었으며, 새로운 URL이 수집되는 경우 이를 반영하기 위해 기존의 URL까지 포함한 전체 URL에 대해 재학습을 수행해야 하여 실시간 클러스터링이 필요한 보안 로그 분야에 적합하지 않은 문제가 있었다.
한국공개특허 제10-2010-0080728호 (2010.07.12 공개)
본 개시의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, URL의 구조적 특징을 반영하여 URL 클러스터링을 위한 URL의 요약을 생성하는 방법 및 장치를 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, URL 로그를 글자 단위로 분석하고 URL 텍스트의 유형, 형태, 또는 길이를 기준으로 URL의 요약을 생성하는 방법 및 장치를 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, 연산 시간이 짧고 새로운 데이터에 대해서도 즉각적인 반영이 가능하여 실시간 클러스터링에 기여할 수 있는 URL의 요약을 생성하는 방법 및 장치를 제공하는 것이다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 컴퓨터 장치에 의해 수행되는 URL의 요약을 생성하는 방법은, URL을 획득하는 단계; 상기 URL을 파싱(parsing)하여 상기 URL로부터 복수의 필드를 추출하는 단계; 상기 복수의 필드에 대해 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계; 및 상기 속성 정보를 이용하여 상기 URL의 요약을 생성하는 단계를 포함한다.
일 실시예로서, 상기 복수의 필드는 경로 필드, 파일 및 확장자 필드, 또는 파라미터 필드를 포함할 수 있다.
일 실시예로서, 상기 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계는, 상기 경로 필드에 포함된 서로 연속하여 위치하는 하나 이상의 글자(character)들의 유형을 나타내는 식별 문자 및 상기 하나 이상의 글자들의 길이를 나타내는 숫자를 포함하는 속성 정보를 생성하는 단계를 포함할 수 있다.
일 실시예로서, 상기 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계는, 상기 파일 및 확장자 필드의 파일 이름에 포함된 서로 연속하여 위치하는 하나 이상의 글자들의 유형을 나타내는 식별 문자 및 상기 하나 이상의 글자들의 길이를 나타내는 숫자를 포함하는 속성 정보를 생성하는 단계를 포함할 수 있다.
일 실시예로서, 상기 속성 정보는 상기 파일 및 확장자 필드의 확장자에 포함된 하나 이상의 다른 글자들을 더 포함할 수 있다.
일 실시예로서, 상기 하나 이상의 글자들의 유형은 영문자(alphabetical character), 숫자(numeric character), 또는 특수문자(special character)일 수 있다.
일 실시예로서, 상기 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계는, 상기 파라미터 필드에 포함된 서로 연속하여 위치하는 하나 이상의 글자들의 유형을 나타내는 제1 식별 문자 및 상기 파라미터 필드에 포함된 서로 연속하여 위치하는 하나 이상의 다른 글자들의 유형을 나타내는 제2 식별문자를 포함하는 속성 정보를 생성하는 단계를 포함할 수 있다.
일 실시예로서, 상기 속성 정보는 상기 파라미터 필드에 포함된 특수문자를 더 포함할 수 있다.
일 실시예로서, 상기 하나 이상의 글자들은 상기 파라미터 필드의 키(key)를 나타내는 글자들이고, 상기 하나 이상의 다른 글자들은 상기 파라미터 필드의 밸류(value)를 나타내는 글자들일 수 있다.
일 실시예로서, 상기 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계는, 상기 복수의 필드에 포함된 글자들 중 일부를 필터링하는 단계를 포함할 수 있다.
일 실시예로서, 상기 URL의 요약에 기반하여 상기 URL을 클러스터링(clustering)하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 클러스터링의 결과에 따라 상기 URL을 라벨링(labeling)하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 URL의 요약과 다른 URL의 요약을 비교하여, 상기 다른 URL의 요약이 상기 URL의 요약과 동일한 경우 상기 다른 URL을 상기 URL과 동일한 클러스터(cluster)로 클러스터링하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 URL의 요약과 다른 URL의 요약을 비교하여, 상기 다른 URL의 요약이 상기 URL의 요약과 상이한 경우 상기 다른 URL을 새로운 클러스터(cluster)로 클러스터링하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 새로운 클러스터를 포함한 클러스터들의 발생 추이에 기반하여, 외부로부터의 비정상 접속 또는 사이버 공격 여부를 감지할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 URL의 요약을 생성하는 장치는, 프로세서; 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은 URL을 획득하는 동작, 상기 URL을 파싱(parsing)하여 상기 URL로부터 복수의 필드를 추출하는 동작, 상기 복수의 필드에 대해 각 필드의 특성을 나타내는 속성 정보를 생성하는 동작, 및 상기 속성 정보를 이용하여 상기 URL의 요약을 생성하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함한다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 컴퓨터 프로그램은 URL의 요약을 생성하는 방법을 실행하기 위해 컴퓨팅 장치와 결합되어, URL을 획득하는 단계; 상기 URL을 파싱(parsing)하여 상기 URL로부터 복수의 필드를 추출하는 단계; 상기 복수의 필드에 대해 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계; 및 상기 속성 정보를 이용하여 상기 URL의 요약을 생성하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장된다.
상술한 본 개시의 다양한 실시예들에 따르면, URL의 구조적 특징을 반영하여 URL 클러스터링을 위한 URL의 요약을 생성할 수 있다.
또한, URL 로그를 글자 단위로 분석하고 URL 텍스트의 유형, 형태, 또는 길이를 기준으로 URL의 요약을 생성하여 URL 클러스터링에 제공할 수 있다.
또한, URL 요약을 생성하는데 필요한 연산 시간이 짧고 새로운 데이터에 대해서도 즉각적인 반영이 가능하므로, 실시간 URL 클러스터링에 기여할 수 있게 된다.
본 개시의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 본 개시의 실시예들로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 몇몇 실시예들에 따른 URL 요약 생성 장치를 나타내는 블록도이다.
도 2는 본 개시의 몇몇 실시예들에 따른 URL 요약 생성 방법을 나타내는 순서도이다.
도 3은 도 1에 도시된 전처리부(110)의 구성을 구체화한 일 실시예를 나타내는 블록도이다.
도 4는 도 3의 전처리부(110)가 URL로부터 필드를 추출하는 방법을 개념적으로 나타내는 도면이다.
도 5는 도 2의 속성 정보를 생성하는 단계(S130)를 구체화한 일 실시예를 나타내는 순서도이다.
도 6은 도 1에 도시된 URL 요약 생성부(120)의 구성을 구체화한 일 실시예를 나타내는 순서도이다.
도 7은 도 5 및 도 6에서 설명된 방법에 의해 각 필드(52, 53, 54, 55)로부터 속성 정보를 생성하는 구체적인 예시를 보여주는 도면이다.
도 8은 본 개시의 몇몇 실시예들에 따라, URL의 각 필드들의 속성 정보를 이용하여 URL의 요약을 생성한 결과를 예시적으로 보여주는 도면이다.
도 9는 도 2의 URL을 클러스터링하는 단계(S150)를 구체화한 일 실시예를 나타내는 순서도이다.
도 10은 도 1에 도시된 클러스터링부(130)의 구체적인 구성 및 URL들의 클러스터링된 결과를 예시적으로 보여주는 블록도이다.
도 11은 본 개시의 몇몇 다른 실시예들에 따른 URL 요약 생성 방법을 나타내는 순서도이다.
도 12는 도 11에 도시된 방법에 따라 외부의 비정상 접속 또는 사이버 공격 여부를 감지하는 방법을 개념적으로 설명하는 도면이다.
도 13은 본 개시의 다양한 실시예에 따른 장치들을 구현할 수 있는 예시적인 컴퓨팅 장치를 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 개시에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하에서는, 앞서 상술한 기술적 과제를 해결하기 위한 본 개시의 다양한 실시예들에 대하여 설명하도록 한다.
도 1은 본 개시의 몇몇 실시예들에 따른 URL 요약 생성 장치를 나타내는 블록도이다. 도 1을 참조하면, URL 요약 생성 장치(100)가 동작하는 시스템 환경(1000)이 도시된다. 시스템 환경(1000)에서, URL 요약 생성 장치(100)는 외부로부터 URL을 수신하고 이를 처리하여 URL에 대한 요약을 생성한다. 일 실예로서, URL 요약 생성 장치(100)는 전처리부(110), URL 요약 생성부(120), 클러스터링부(130) 및 URL 저장소(140)를 포함할 수 있다.
전처리부(110)는 외부로부터 URL을 수집하고, URL을 파싱(parsing)하여 URL 요약 생성에 적합한 형태로 전처리한다. 이를 위해, 전처리부(110)는 먼저 외부의 다양한 경로, 예를 들어, IDS/IPS 로그(10), Web Access 로그(20), Firewall 로그(30), 또는 APT 로그(40)를 통해 URL을 수집한다. 그리고, URL을 파싱하여 URL을 구성하는 텍스트로부터 미리 정의된 복수의 필드(예를 들어, 도메인 필드, 경로 필드, 파일 및 확장자 필드, 또는 파라미터 필드)를 추출한다. 전처리부(110)가 추출한 필드들은 URL 요약 생성부(120)로 제공된다.
URL 요약 생성부(120)는 전처리부(110)가 제공하는 복수의 필드에 대해 각 필드의 특성을 나타내는 속성 정보를 생성한다. 이때, URL 요약 생성부(120)는 각 필드에 포함된 텍스트가 나타내는 언어적 의미에는 별다른 비중을 두지 않고, 각 필드에 포함된 텍스트의 유형이나 형태 또는 길이를 축약적으로 나타내도록 속성 정보를 생성한다. URL 요약 생성부(120)가 각 필드에 대해 속성 정보를 생성하는 구체적인 방법은 도 5 내지 도 8을 통해 상세히 후술되므로 여기서는 그에 대한 자세한 설명을 생략한다.
그리고, URL 요약 생성부(120)는 생성한 속정 정보를 기반으로 URL의 요약을 생성한다. 이때, URL 요약 생성부(120)는 생성한 각 필드들의 속성 정보들을 서로 결합하여 URL의 요약을 생성할 수 있다. URL 요약 생성부(120)는 생성된 URL 요약을 클러스터링부(130)로 제공한다.
클러스터링부(130)는 제공된 URL의 요약에 기반하여 URL을 클러스터링한다. 이때, 클러스터링부(130)는 동일한 요약을 갖는 URL들은 동일한 클러스터에 속하도록 URL들을 클러스터링한다. 일 실시예로서, 클러스터링부(130)는 URL 요약 생성부(120)로부터 URL 요약이 제공되면, 제공된 URL 요약이 기존 URL의 요약과 동일한지 비교하고 동일한 경우 제공된 URL을 기존 URL의 클러스터로 클러스터링한다. 반면에, 제공된 URL 요약이 기존 URL의 요약과 상이한 경우, 클러스터링부(130)는 제공된 URL 요약을 기존 URL의 클러스터와 상이한 새로운 클러스터로 클러스터링한다. 클러스터링부(130)가 클러스터링을 완료한 URL 및 상기 URL의 클러스터링 정보는 URL 저장소(140)에 저장될 수 있다.
상기한 실시예의 구성들에 따르면, URL의 구조적 특징을 반영하여 URL의 요약을 생성하고 이를 URL 클러스터링에 제공하므로, URL의 구조적 특징이 온전히 반영된 URL 클러스터링이 가능해진다.
또한, 상기 URL 요약을 생성할 때, URL 텍스트를 글자 단위로 그 유형, 형태, 또는 길이를 분석하므로, 보안 로그 분야에 적합하지 않던 기존 클러스터링 방식의 문제점을 극복할 수 있다.
나아가, 기존 머신러닝 기반의 클러스터링과 달리, 룰(rule) 기반으로 URL 요약을 생성하여 URL 클러스터링에 적용하므로, URL 요약 또는 클러스터링에 소요되는 연산 시간이 짧고 새로운 데이터에 대해서도 즉각적인 반영이 가능하게 된다.
도 2 이하에서는 도 1에 도시된 URL 요약 생성 장치(100)에 의해 수행되는 URL 요약 방법의 구체적인 실시예들이 설명된다. 따라서, 도 2 이하에서 URL 요약 생성 방법의 각 단계를 수행하는 주체가 명시되지 않은 경우, 그 수행 주체는 상기한 URL 요약 생성 장치(100)임을 전제한다.
도 2는 본 개시의 몇몇 실시예들에 따른 URL 요약 생성 방법을 나타내는 순서도이다. 도 2를 참조하면, URL 요약 생성 방법은 S110 단계 내지 S150 단계의 다섯 단계로 구성된다.
S110 단계에서, URL 요약 생성 장치(100)는 다양한 경로를 통해 URL을 획득한다. 예를 들어, URL 요약 생성 장치(100)는 IDS/IPS 로그(10), Web Access 로그(20), Firewall 로그(30), 또는 APT 로그(40)로부터 다수의 URL을 획득할 수 있다.
S120 단계에서, URL 요약 생성 장치(100)는 획득한 URL을 파싱(parsing)하여 URL을 구성하는 텍스트로부터 미리 정의된 복수의 필드를 추출한다. 이때, 추출되는 복수의 필드는 도메인 필드, 경로 필드, 파일 및 확장자 필드, 또는 파라미터 필드를 포함할 수 있다.
이에 대한, 더욱 구체적인 설명을 위해, 도 3 및 도 4를 참조하여 관련 설명을 이어 가기로 한다. 도 3은 도 1에 도시된 전처리부(110)의 구성을 구체화한 일 실시예를 나타내는 블록도이다. 도 4는 도 3의 전처리부(110)가 URL로부터 필드를 추출하는 방법을 개념적으로 나타내는 도면이다.
먼저, 도 3을 참조하면, 전처리부(110)는 입력되는 URL(또는, URL 텍스트)로부터 도메인 필드를 추출하는 도메인 추출부(111), 경로 필드를 추출하는 경로 추출부(112), 파일 및 확장자 필드를 추출하는 파일 및 확장자 추출부(113), 및 파라미터 필드를 추출하는 파라미터 추출부(114)를 포함한다. 일반적으로, URL은 컴퓨터 프로그램에 의해 소정의 규칙에 따라 생성되므로, URL을 구성하는 요소들도 정해진 형식과 범위를 크게 벗어나지 않는다.
예를 들어, 도 4에 도시된 바와 같이, 일반적으로 URL(50)은 가장 처음에 "http://" 구문을 포함하는 프리앰블(preamble) 필드(51), 도메인 주소를 나타내는 도메인 필드(52), URL을 통해 실행되는 파일의 경로를 나타내는 경로 필드(53), 상기 실행되는 파일의 이름(54a) 및 확장자(54b)를 나타내는 파일 및 확장자 필드(54), 및 여러 개의 키(55a, 55c)와 밸류(55b, 55d)로 구성되는 쿼리 스트링(query string)을 나타내는 파라미터 필드(55)를 포함하게 된다. 또한, URL 내에서 상기 필드들이 배치되는 순서도 정형적이어서, 보통은 도 4에 도시된 순서대로 필드들이 배치된다.
이러한 점을 참고하여, 전처리부(110)는 URL(50)을 파싱하여, URL(50)의 각 텍스트 부분들(51, 52, 53, 54, 55)이 어떤 필드에 해당하는지 분석한다. 그리고, 분석한 결과를 기반으로, 소정의 기준에 따라 추출 대상 필드들을 URL(50)로부터 추출한다. 예를 들어, 프리앰블 필드(51)와 같은 경우 URL을 특징짓는 데 기여하지 않으므로, 굳이 추출할 필요가 없어 추출 대상에 포함되지 않는다. 반면에, 도메인 필드(52), 경로 필드(53), 파일 및 확장자 필드(54), 및 파라미터 필드(55)는 그것에 따라 해당 URL(50)이 특징지어질 수 있으므로 추출 대상에 포함된다. 이와 같은 방식으로, 전처리부(110)는 URL(50)의 원문 텍스트로부터 소정의 필드들(52, 53, 54, 55)을 추출한다.
S130 단계에서, URL 요약 생성 장치(100)는 상기 추출된 필드들(52, 53, 54, 55)에 대해 각 필드의 특성을 나타내는 속성 정보를 생성한다. S130 단계에 대한 보다 구체적인 설명을 위해 도 5 내지 도 6을 참조하기로 한다. 도 5는 도 2의 속성 정보를 생성하는 단계(S130)를 구체화한 일 실시예를 나타내는 순서도이다. 도 6은 도 5의 단계들을 수행하는 URL 요약 생성부(120)의 구성을 구체화한 일 실시예를 나타내는 순서도이다.
먼저, 도 5를 참조하면, S131 단계에서, URL 요약 생성부(120)는 전처리부(110)가 제공한 필드들(52, 53, 54, 55) 중에서 URL 분류에 사용되지 않는 불필요한 일부 글자들을 필터링한다. 예를 들어, URL의 경우 영문자(alphabetical character), 숫자(numeric character), 또는 특수문자(special character)는 URL의 분류에 있어서 유의미한 구성요소이나, 한국어, 중국어, 또는 일본어로 된 문자들은 일반적으로 URL 공격 구문에 사용되지 않기 때문에, URL 분류에 있어 별다른 의미를 갖지 않는다. 따라서, 이후의 단계들을 용이하게 하기 위해, S131 단계에서는 추출된 복수의 필드들(52, 53, 54, 55) 중에서 URL 분류에 사용되지 않는 일부 글자들을 필터링한다. 이러한 필터링 과정은 도 6의 필터링부(121)에 의해 수행될 수 있다.
그리고, S132 단계에서, URL 요약 생성부(120)는 추출된 필드들(52, 53, 54, 55)에 포함된 글자들의 유형 또는 길이에 기반하여 각 필드들의 특징을 나타내는 속성 정보를 생성한다. 이때, URL 요약 생성부(120)는 각 필드에 포함된 텍스트가 나타내는 언어적 의미에는 별다른 비중을 두지 않고, 각 필드에 포함된 텍스트의 유형이나 형태 또는 길이를 축약적으로 나타내도록 속성 정보를 생성할 수 있다. 다만, 예외적으로, 도메인 필드(52)에 대해서는 그 자체로서 유일한(unique) 특징을 나타내므로, 속성 정보를 생성할 때 도메인 필드(52)에 포함된 텍스트는 원문 그대로 유지하는 것으로 한다.
한편, 나머지 필드들(53, 54, 55)에 대해 속성 정보를 생성하는 경우, 각 필드들(53, 54, 55)의 고유한 특성을 반영하기 위해, 각 필드(53, 54, 55)마다 다른 규칙을 적용하여 속성 정보를 생성할 수 있다.
일 실시예로서, 경로 필드(53)에 대한 속성 정보를 생성할 때, URL 요약 생성부(120)는 경로 필드(53)에 포함된 서로 연속하여 위치하는 하나 이상의 글자(character)들을 참조하여, 그 유형을 나타내는 식별 문자와 그 길이를 나타내는 숫자로써 속성 정보를 구성할 수 있다. 이때, 상기 식별 문자는 경로 필드(53)에 포함된 글자들의 유형(type)이 영문자(alphabetical character)인지, 숫자(numeric character)인지, 또는 특수문자(special character)인지를 나타내는 문자일 수 있다. 가령, 글자들의 유형(type)이 영문자이면 알파벳(alphabet)의 두문자를 따서 식별 문자는 "A"가 되고, 글자들의 유형(type)이 숫자이면 숫자(number)의 두문자를 따서 식별 문자는 "N"이 되고, 글자들의 유형(type)이 특수문자이면 특수문자(special character)의 두문자를 따서 식별 문자는 "S"가 된다.
예를 들어 도 7을 참조하면, 경로 필드(53)에는 "app"이라는 텍스트가 포함되어 있다. 이 글자들의 유형은 영문자이므로 식별 문자는 "A"가 되고, 글자들의 길이(개수)는 "3"이 된다. 이 경우, 상기 경로 필드(53)의 속성 정보(63)는 "A"와 "3"이 결합한 "A3"으로 결정된다.
일 실시예로서, 파일 및 확장자 필드(54)에 대한 속성 정보를 생성할 때, URL 요약 생성부(120)는 파일 및 확장자 필드(53)의 파일 이름은 파일 이름을 구성하는 글자들의 유형을 나타내는 식별 문자 및 그 글자들의 길이를 나타내는 숫자로 표현하되, 확장자는 그 자체로서 어느정도 특징적인 의미를 가지므로 원문 그대로 유지하는 방식으로 속성 정보를 구성할 수 있다.
예를 들어 도 7을 참조하면, 파일 및 확장자 필드(54)에는 "initialization.jsp"라는 텍스트가 포함되어 있다. 그 중 "initialization"은 파일 이름(54a)에 해당하므로 그 글자들의 유형을 나타내는 식별 문자 "A"와 그 글자들의 길이를 나타내는 숫자 "14"가 결합된 "A14"로서 표현된다. 반면에, "jsp"는 확장자(54b)에 해당하므로 원문 그대로 "jsp"를 유지한다. 그에 따라, 파일 및 확장자 필드(54)의 속성 정보(64)는 상기 "A14" 및 "jsp"가 결합한 "A14.jsp"로 결정된다. 한편, "A14"와 "jsp"사이에 위치한 마침표(.)는 확장자(54b)와 마찬가지로 그대로 유지하는 것으로 한다.
일 실시예로서, 파라미터 필드(55)에 대한 속성 정보를 생성할 때, URL 요약 생성부(120)는 파라미터 필드(55)의 서로 연속하는 동일한 유형의 글자들에 대해 그 유형을 나타내는 식별 문자만 속성 정보에 포함시키고, 그 글자들의 길이는 포함시키지 않을 수 있다. 왜냐하면, 파라미터 필드(55)에 포함되는 키 및 밸류는 URL의 공격 구문 분석에 있어 일반적으로 그 길이가 중요하지 않기 때문이다. 한편, 파라미터 필드(55)에 포함된 특수문자는 URL 분류에 있어 의미를 가질 수 있으므로 원문 그대로 유지하는 것으로 한다.
예를 들어 도 7을 참조하면, 파라미터 필드(55)에는 "? odType = A"라는 텍스트가 포함되어 있다. 그 중 키(55a)에 해당하는 영문자 "odType"는 그 유형을 나타내는 식별 문자 "A"로, 그리고 다음에 출현하는 밸류(55b)에 해당하는 영문자 "A" 또한 그 유형을 나타내는 식별 문자 "A"로 표현된다. 그리고, 나머지 특수문자들은 그대로 유지된다. 그에 따라, 파라미터 필드(55)의 속성 정보(65)는 특수문자 "?"와 상기 "A14", 특수문자 "=" 및 상기 "A"가 순서대로 결합된 "? A = A"가 된다. 상기한 속성 정보를 생성하는 일련의 과정은 도 6의 속성 정보 생성부(122)에 의해 수행될 수 있다.
다시 도 2로 돌아가면, S140 단계에서, URL 요약 생성 장치(100)는 앞서 생성된 속성 정보를 이용하여 URL의 요약을 생성한다. 일 실시예로서, URL 요약 생성부(120)는 생성한 각 필드들의 속성 정보들을 서로 결합하여 URL의 요약을 생성할 수 있다. 이때, 결합되는 각 속성 정보들 간에는 그 구분을 위해 별도의 구분 문자(예를 들어, "/")가 위치할 수 있다. 가령, 앞서 도 7의 예를 참조하면, URL의 각 필드들(52, 53, 54, 55)의 속성 정보들을(62, 63, 64, 65) 순차적으로 결합하여, "samsung.com / A3 / A14.jsp / ? A = A"와 같이 URL의 요약이 생성된다. 이렇게 생성된 요약은 URL에 포함된 텍스트의 언어적 의미보다는 텍스트의 유형이나 형태, 길이에 비중을 둔 것이다. 가령, 고유한 특징을 나타내는 도메인 부분 및 확장자 부분을 제외하면, URL은 다른 단어나 글자를 포함한 경우에도 그 글자의 유형과 길이만 같으면 동일한 요약을 생성하도록 구성된다.
도 8을 참조하면, 본 개시의 실시예들에 따라 URL의 요약을 생성한 몇몇 예들이 도시된다. URL의 원본 텍스트(71)가 서로 다른 경우에도 그 URL 요약(72)은 동일하게 생성되고 있음을 확인할 수 있다.
이러한 URL 요약은 그 자체로서 URL 클러스터로서 기능할 수 있다. 가령, 어떤 두 URL의 요약이 서로 동일하다는 의미는 두 URL이 도메인 네임 뿐만 아니라 파일 경로, 파일 이름, 쿼리 스트링 등의 텍스트 구조가 완전히 동일하다는 의미이므로, URL 구문의 특성상 두 URL은 서로 깊은 연관관계가 있을 가능성이 높기 때문이다. 따라서, 동일한 URL 요약을 갖는 URL들을 동일한 클러스터로 관리하는 것이 가능하다.
도 9 이하에서는 이처럼 URL 요약에 기반하여 URL의 클러스터를 관리하는 방법을 설명한다. 도 9는 도 2의 URL을 클러스터링하는 단계(S150)를 구체화한 일 실시예를 나타내는 순서도이다. 도 9를 참조하면, S150 단계는 S151 단계 내지 S153 단계의 세 단계로 구성된다.
S151 단계에서, URL 요약 생성 장치(100)는 동일한 URL 요약을 갖는 URL들끼리 묶이도록 (또는, 군집화되도록) URL들을 클러스터링한다. 앞서 설명한 바와 같이, URL 요약이 동일하다는 것은 URL 구문의 특성이 동일하다는 의미이므로, 그러한 URL들은 동일한 클러스터로 분류 및 관리될 수 있다. 이러한 방법에 따르면, URL의 요약만 생성되면, 이후 클러스터링을 위한 별도의 연산 과정이 불필요하므로, 자동으로 URL이 클러스터링되는 효과를 얻을 수 있다. 그에 따라, URL을 실시간으로 신속하게 클러스터링할 수 있고, 새로운 URL이 수집되는 경우에도 그것의 URL 요약만 생성하면 바로 클러스터링을 수행할 수 있다. S151 단계는 도 10의 클러스터 관리부(132)에 의해 수행될 수 있다.
S152 단계에서, URL 요약 생성 장치(100)는 URL 및 그것의 요약을 클러스터링 결과로서 URL 저장소(140)에 저장할 수 있다. 도 10을 참조하면, URL 저장소(140) 내에 클러스터링 결과가 저장된 실시예가 도시된다. 도 10에서 보는 바와 같이, 같은 요약을 가지는 URL들은 하나의 클러스터로 분류된다. 가령, URL 1-1 및 URL 1-2 등은 자신의 URL 요약인 "요약 1"에 의해 하나의 클러스터(141)로 클러스터링 된다. 유사하게, URL 2-1 및 URL 2-2 등은 "요약 2"에 의해 다른 클러스터(142)로 클러스터링 되고, URL N-1 및 URL N-2 등은 "요약 N"에 의해 또 다른 클러스터(143)로 클러스터링 된다.
S153 단계에서, URL 요약 생성 장치(100)는 URL을 클러스터링한 결과에 따라 URL을 라벨링한다. 경우에 따라, URL 요약에 의해 클러스터링 된 URL들에 대해서도 별도의 라벨링이 필요한 경우가 있다. 가령, 특정 요약을 갖는 URL들이 악성 로그와 관련된 것으로 판단되는 경우(또는, 악성 로그와 관련된 것으로 판단되는 URL들의 요약을 확인한 경우), 해당 요약을 갖는 URL들에 "악성 로그"를 라벨링하여 잠재적인 사이버 공격이나 위협을 관리할 수 있다. 이 경우, URL들은 URL 요약을 기준으로 클러스터링되고 라벨링 되기 때문에, 동일한 URL 요약을 갖는 URL들에 대해 모두 동일한 라벨링이 이루어진다. S153 단계는 도 10의 라벨링부(133)에 의해 수행될 수 있다.
도 11은 본 개시의 몇몇 다른 실시예들에 따른 URL 요약 생성 방법을 나타내는 순서도이다. 도 11의 실시예에서는, URL 요약에 의해 기존 URL들에 대한 클러스터링이 완료된 후 새로운 URL이 수집되었을 때의 클러스터링 방법을 설명한다. 도 11을 참조하면, 본 실시예는 S210 단계 내지 S250 단계의 다섯 단계로 구성된다.
S210 단계에서, URL 요약 생성 장치(100)는 새로운 URL의 요약을 생성한다. 새로운 URL의 요약을 생성하는 방법은 앞서 도 1 내지 도 10에서 설명한 URL 요약을 생성하는 방법과 동일하므로, 설명의 중복을 피하기 위해 더 이상의 자세한 설명은 생략한다.
S220 단계에서, URL 요약 생성 장치(100)는 새로운 URL의 요약이 기존 URL의 요약을 비교하여, 서로 동일한지 판단한다. 서로 동일하면, 본 실시예는 S230 단계로 진행한다. 그렇지 않으면, 본 실시예는 S240 단계로 진행한다.
S230 단계에서, URL 요약 생성 장치(100)는 새로운 URL을 기존 URL과 동일한 클러스터로 클러스터링한다. 본 개시의 실시예들에서는 URL의 요약을 기준으로 클러스터링하므로, 새로운 URL의 요약이 기존 URL의 요약과 동일한 경우 자동으로 기존 URL과 동일한 클러스터(즉, 도 10에 도시된 바와 같이 하나의 요약에 의해 군집화되는 클러스터)로 클러스터링되는 것이다.
한편, S240 단계로 진행하는 경우, URL 요약 생성 장치(100)는 새로운 URL을 그것의 URL 요약에 의해 군집화되는 새로운 클러스터로 클러스터링한다. 이는, 새로운 URL과 동일한 URL 요약이 기존에 없는 경우이므로, 당연하게도 새로운 URL의 요약으로 새로운 클러스터가 만들어지는 것이다.
S250 단계에서, URL 요약 생성 장치(100)는 상기 새로운 클러스터를 포함하는 신규 클러스터들의 발생 추이에 기반하여 외부로부터의 비정상 접속 또는 사이버 공격 여부를 감지한다. S250 단계의 설명을 위해, 도 12를 참조한다. 도 12는 본 개시에 따라 URL들을 클러스터링하였을 때, 신규 클러스터들이 발생하는 정도를 시간에 따라 나타내는 그래프이다. 도 12의 그래프에서 가로축은 신규 클러스터의 발생 시간을 의미하고, 세로축은 신규 클러스터의 발생 수를 의미한다.
도 12를 보면, 초기에는 기존 만들어진 URL 요약이 없는 상태이므로, 수집되는 URL에 대해 생성되는 URL 요약이 신규 클러스터를 발생시킬 가능성이 높다. 따라서, 초기에는 신규 클러스터 발생 수가 높게 된다. 그러다가, 어느 정도 URL들에 대한 요약 생성이 마무리되면, 이후 수집되는 URL들은 대부분 기존 URL과 요약이 중복될 것이므로 점점 신규 클러스터를 발생시키지 않게 된다. 따라서, 일반적인 상황에서 도 12의 그래프는 우하향을 그리게 된다. 그러나, 도 12의 점선 원(81)과 같이 간혹 그래프가 우하향 추세를 이탈하여 피크를 표시하는 경우가 있다. 이는 기존에 확인되었던 URL들과 상이한 구문 구조를 갖는 URL들이 갑자기 대량 확인되고 있다는 의미로서, 외부로부터의 비정상 접속 또는 사이버 공격에 기인한 것을 확률이 높다. 따라서, URL 요약 생성 장치(100)는 이처럼 신규 클러스터들의 발생 추이를 모니터링하여, 점선 원(81)과 같이 그래프의 추세를 갑자기 이탈하는 부분이 확인되는 경우, 이를 잠재적인 위협 요소로 판단하고 이에 대비한 경고를 발생하거나 상응하는 조치를 취할 수 있다.
도 13은 본 개시의 다양한 실시예에 따른 장치들을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다. 이하에서는, 도 13을 참조하여 본 개시의 다양한 실시예에 따른 장치를 구현할 수 있는 예시적인 컴퓨팅 장치에 대하여 설명하도록 한다.
도 13은 컴퓨팅 장치(2000)를 나타내는 하드웨어 구성도이다. 도 13에 도시된 바와 같이, 컴퓨팅 장치(2000)는 하나 이상의 프로세서(2100), 프로세서(2100)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(2200), 버스(2500), 통신 인터페이스(2400)와 컴퓨터 프로그램(2310)을 저장하는 스토리지(2300)를 포함할 수 있다. 다만, 도 13에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 13에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 도 13의 컴퓨팅 장치(2000)는 도 1의 URL 요약 생성 장치(100)일 수 있다.
프로세서(2100)는 컴퓨팅 장치(2000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(3100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(2100)는 본 개시의 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(2000)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(2200)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(2200)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위하여 스토리지(2300)로부터 하나 이상의 프로그램(2310)을 로드할 수 있다. 메모리(2200)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(2500)는 컴퓨팅 장치(2000)의 구성 요소 간 통신 기능을 제공한다. 버스(2500)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(2400)는 컴퓨팅 장치(2000)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(2400)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(2400)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 경우에 따라, 통신 인터페이스(2400)는 생략될 수도 있다.
스토리지(2300)는 상기 하나 이상의 컴퓨터 프로그램(2310)과 각종 데이터 등을 비임시적으로 저장할 수 있다. 스토리지(2300)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(2310)은 메모리(2200)에 로드될 때 프로세서(2100)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(2100)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(2310)은 URL을 획득하는 동작, URL을 파싱하여 URL로부터 복수의 필드를 추출하는 동작, 복수의 필드에 대해 각 필드의 특성을 나타내는 속성 정보를 생성하는 동작, 속성 정보를 이용하여 URL의 요약을 생성하는 동작, 및 URL의 요약에 기반하여 URL을 클러스터링하는 동작들을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
또는, 컴퓨터 프로그램(2310)은 새로운 URL의 요약을 생성하는 동작, 새로운 URL의 요약을 기존 URL의 요약과 비교하는 동작, 새로운 URL의 요약이 기존 URL의 요약과 동일하면 새로운 URL을 기존 URL과 동일한 클러스터로 클러스터링하는 동작, 새로운 URL의 요약이 기존 URL의 요약과 상이하면 새로운 URL을 새로운 클러스터로 클러스터링하는 동작, 새로운 클러스터들의 발생 추이에 기반하여 외부 공격 여부를 감지하는 동작들을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
지금까지 도 1 내지 도 13을 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 13을 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 개시의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (17)

  1. 컴퓨터 장치에 의해 수행되는 URL(Uniform Resource Locator)의 요약을 생성하는 방법에 있어서,
    URL을 획득하는 단계;
    상기 URL을 파싱(parsing)하여 상기 URL로부터 복수의 필드를 추출하는 단계;
    상기 복수의 필드에 대해 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계; 및
    상기 속성 정보를 이용하여 상기 URL의 요약을 생성하는 단계를 포함하는,
    URL의 요약을 생성하는 방법.
  2. 제1 항에 있어서,
    상기 복수의 필드는,
    경로 필드, 파일 및 확장자 필드, 또는 파라미터 필드를 포함하는,
    URL의 요약을 생성하는 방법.
  3. 제2 항에 있어서,
    상기 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계는,
    상기 경로 필드에 포함된 서로 연속하여 위치하는 하나 이상의 글자(character)들의 유형을 나타내는 식별 문자 및 상기 하나 이상의 글자들의 길이를 나타내는 숫자를 포함하는 속성 정보를 생성하는 단계를 포함하는,
    URL의 요약을 생성하는 방법.
  4. 제2 항에 있어서,
    상기 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계는,
    상기 파일 및 확장자 필드의 파일 이름에 포함된 서로 연속하여 위치하는 하나 이상의 글자들의 유형을 나타내는 식별 문자 및 상기 하나 이상의 글자들의 길이를 나타내는 숫자를 포함하는 속성 정보를 생성하는 단계를 포함하는,
    URL의 요약을 생성하는 방법.
  5. 제4 항에 있어서,
    상기 속성 정보는,
    상기 파일 및 확장자 필드의 확장자에 포함된 하나 이상의 다른 글자들을 더 포함하는,
    URL의 요약을 생성하는 방법.
  6. 제3 항 및 제4 항에 있어서,
    상기 하나 이상의 글자들의 유형은,
    영문자(alphabetical character), 숫자(numeric character), 또는 특수문자(special character)인,
    URL의 요약을 생성하는 방법.
  7. 제2 항에 있어서,
    상기 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계는,
    상기 파라미터 필드에 포함된 서로 연속하여 위치하는 하나 이상의 글자들의 유형을 나타내는 제1 식별 문자 및 상기 파라미터 필드에 포함된 서로 연속하여 위치하는 하나 이상의 다른 글자들의 유형을 나타내는 제2 식별문자를 포함하는 속성 정보를 생성하는 단계를 포함하는,
    URL의 요약을 생성하는 방법.
  8. 제7 항에 있어서,
    상기 속성 정보는,
    상기 파라미터 필드에 포함된 특수문자를 더 포함하는,
    URL의 요약을 생성하는 방법.
  9. 제7 항에 있어서,
    상기 하나 이상의 글자들은 상기 파라미터 필드의 키(key)를 나타내는 글자들이고,
    상기 하나 이상의 다른 글자들은 상기 파라미터 필드의 밸류(value)를 나타내는 글자들인,
    URL의 요약을 생성하는 방법.
  10. 제1 항에 있어서,
    상기 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계는,
    상기 복수의 필드에 포함된 글자들 중 일부를 필터링하는 단계를 포함하는,
    URL의 요약을 생성하는 방법.
  11. 제1 항에 있어서,
    상기 URL의 요약에 기반하여 상기 URL을 클러스터링(clustering)하는 단계를 더 포함하는,
    URL의 요약을 생성하는 방법.
  12. 제11 항에 있어서,
    상기 클러스터링의 결과에 따라, 상기 URL을 라벨링(labeling)하는 단계를 더 포함하는,
    URL의 요약을 생성하는 방법.
  13. 11 항에 있어서,
    상기 URL의 요약과 다른 URL의 요약을 비교하여, 상기 다른 URL의 요약이 상기 URL의 요약과 동일한 경우, 상기 다른 URL을 상기 URL과 동일한 클러스터(cluster)로 클러스터링하는 단계를 더 포함하는,
    URL의 요약을 생성하는 방법.
  14. 제11 항에 있어서,
    상기 URL의 요약과 다른 URL의 요약을 비교하여, 상기 다른 URL의 요약이 상기 URL의 요약과 상이한 경우, 상기 다른 URL을 새로운 클러스터(cluster)로 클러스터링하는 단계를 더 포함하는,
    URL의 요약을 생성하는 방법.
  15. 제14 항에 있어서,
    상기 새로운 클러스터를 포함한 클러스터들의 발생 추이에 기반하여, 외부로부터의 비정상 접속 또는 사이버 공격 여부를 감지하는,
    URL의 요약을 생성하는 방법.
  16. 프로세서;
    상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    URL을 획득하는 동작,
    상기 URL을 파싱(parsing)하여 상기 URL로부터 복수의 필드를 추출하는 동작,
    상기 복수의 필드에 대해 각 필드의 특성을 나타내는 속성 정보를 생성하는 동작, 및
    상기 속성 정보를 이용하여 상기 URL의 요약을 생성하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함하는,
    URL의 요약을 생성하는 장치.
  17. URL의 요약을 생성하는 방법을 실행하기 위해 컴퓨팅 장치와 결합되어,
    URL을 획득하는 단계;
    상기 URL을 파싱(parsing)하여 상기 URL로부터 복수의 필드를 추출하는 단계;
    상기 복수의 필드에 대해 각 필드의 특성을 나타내는 속성 정보를 생성하는 단계; 및
    상기 속성 정보를 이용하여 상기 URL의 요약을 생성하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장되는,
    컴퓨터 프로그램.
KR1020190140901A 2019-11-06 2019-11-06 Url 클러스터링을 위한 url의 요약을 생성하는 방법 및 장치 KR102516454B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190140901A KR102516454B1 (ko) 2019-11-06 2019-11-06 Url 클러스터링을 위한 url의 요약을 생성하는 방법 및 장치
US17/081,095 US20210136032A1 (en) 2019-11-06 2020-10-27 Method and apparatus for generating summary of url for url clustering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190140901A KR102516454B1 (ko) 2019-11-06 2019-11-06 Url 클러스터링을 위한 url의 요약을 생성하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210054799A true KR20210054799A (ko) 2021-05-14
KR102516454B1 KR102516454B1 (ko) 2023-03-30

Family

ID=75688302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190140901A KR102516454B1 (ko) 2019-11-06 2019-11-06 Url 클러스터링을 위한 url의 요약을 생성하는 방법 및 장치

Country Status (2)

Country Link
US (1) US20210136032A1 (ko)
KR (1) KR102516454B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023054858A1 (ko) * 2021-09-30 2023-04-06 (주)모니터랩 머신러닝 기반 url 카테고리 자동 분류 방법 및 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11916949B2 (en) * 2019-11-19 2024-02-27 National Technology & Engineering Solutions Of Sandia, Llc Internet of things and operational technology detection and visualization platform
US11449201B1 (en) 2021-08-23 2022-09-20 Intercom, Inc. Predictive answers based on context modeling

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100080728A (ko) 2009-01-02 2010-07-12 한국인터넷진흥원 응용계층 url 주소정보기반의 sip 플루딩 공격을 탐지하는 방법
US20110289434A1 (en) * 2010-05-20 2011-11-24 Barracuda Networks, Inc. Certified URL checking, caching, and categorization service
US20150264105A1 (en) * 2014-03-12 2015-09-17 Adobe Systems Incorporated Automatic uniform resource locator construction

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769820B1 (en) * 2005-06-30 2010-08-03 Voltage Security, Inc. Universal resource locator verification services using web site attributes
EP2272009A4 (en) * 2008-04-24 2011-11-16 Movideo Pty Ltd SYSTEM AND METHOD FOR MONITORING USE
US8768926B2 (en) * 2010-01-05 2014-07-01 Yahoo! Inc. Techniques for categorizing web pages
US8505094B1 (en) * 2010-01-13 2013-08-06 Trend Micro, Inc. Detection of malicious URLs in a web page
KR101410838B1 (ko) * 2012-11-09 2014-06-23 최미선 고형세제 그라인더

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100080728A (ko) 2009-01-02 2010-07-12 한국인터넷진흥원 응용계층 url 주소정보기반의 sip 플루딩 공격을 탐지하는 방법
US20110289434A1 (en) * 2010-05-20 2011-11-24 Barracuda Networks, Inc. Certified URL checking, caching, and categorization service
US20150264105A1 (en) * 2014-03-12 2015-09-17 Adobe Systems Incorporated Automatic uniform resource locator construction

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
도로락, "[Python] 파이썬 URL 다루는 법 (Python urllib)." [Online], [URL: https://dololak.tistory.com/254], (2018. 03. 23). *
콜라봇, "[코딩도장] 문자열 압축하기." [Online], [URL: https://middle2sick.tistory.com/80], (2017. 12. 18). *
한명지, et al. "X-means 클러스터링을 이용한 악성 트래픽 탐지 방법." 정보과학회논문지 41.9 (2014): 617-624. (2014. 09. 30.). *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023054858A1 (ko) * 2021-09-30 2023-04-06 (주)모니터랩 머신러닝 기반 url 카테고리 자동 분류 방법 및 시스템

Also Published As

Publication number Publication date
US20210136032A1 (en) 2021-05-06
KR102516454B1 (ko) 2023-03-30

Similar Documents

Publication Publication Date Title
US20210256127A1 (en) System and method for automated machine-learning, zero-day malware detection
US9665713B2 (en) System and method for automated machine-learning, zero-day malware detection
US11463476B2 (en) Character string classification method and system, and character string classification device
US20210136032A1 (en) Method and apparatus for generating summary of url for url clustering
CN110213207B (zh) 一种基于日志分析的网络安全防御方法及设备
Carlin et al. The effects of traditional anti-virus labels on malware detection using dynamic runtime opcodes
EP3051767A1 (en) Method and apparatus for automatically identifying signature of malicious traffic using latent dirichlet allocation
Abbas et al. Low-complexity signature-based malware detection for IoT devices
EP3744060B1 (en) System and method for malware signature generation
NL2026909B1 (en) Method and system for determining affiliation of software to software families
NL2026782A (en) Method and system for determining affiliation of software to software families
US11206277B1 (en) Method and apparatus for detecting abnormal behavior in network
US20200034224A1 (en) Early risk detection and management in a software-defined data center
Mimura et al. Using LSI to detect unknown malicious VBA macros
Vadrevu et al. Maxs: Scaling malware execution with sequential multi-hypothesis testing
Ognev et al. Clustering of malicious executable files based on the sequence analysis of system calls
NL2029433A (en) Method and system for clustering executable files
KR20160099160A (ko) 명령어 집합의 행위 패턴을 엔-그램 방식으로 모델링하는 방법, 그 방법으로 동작하는 컴퓨팅 장치, 및 그 방법을 컴퓨팅 장치에서 실행하도록 구성되는 기록 매체에 저장된 프로그램
JP6856527B2 (ja) メッセージ分析装置、メッセージ分析方法、および、メッセージ分析プログラム
CN113067792A (zh) 一种xss攻击识别方法、装置、设备及介质
Abaimov et al. A survey on the application of deep learning for code injection detection
Ugarte-Pedrero et al. On the adoption of anomaly detection for packed executable filtering
CN108319853B (zh) 病毒特征码处理方法及装置
US8935154B1 (en) Systems and methods for determining authorship of an unclassified notification message
CN113688240B (zh) 威胁要素提取方法、装置、设备及存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant