KR102100393B1 - 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램 - Google Patents

악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램 Download PDF

Info

Publication number
KR102100393B1
KR102100393B1 KR1020180079496A KR20180079496A KR102100393B1 KR 102100393 B1 KR102100393 B1 KR 102100393B1 KR 1020180079496 A KR1020180079496 A KR 1020180079496A KR 20180079496 A KR20180079496 A KR 20180079496A KR 102100393 B1 KR102100393 B1 KR 102100393B1
Authority
KR
South Korea
Prior art keywords
domain
malicious
gram
grams
domain name
Prior art date
Application number
KR1020180079496A
Other languages
English (en)
Other versions
KR20200005910A (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 KR1020180079496A priority Critical patent/KR102100393B1/ko
Publication of KR20200005910A publication Critical patent/KR20200005910A/ko
Application granted granted Critical
Publication of KR102100393B1 publication Critical patent/KR102100393B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시 예에 따른 악성 도메인을 판단하는 방법은 도메인 네임 문자열을 입력받고, 입력된 상기 도메인 네임 문자열을 각각이 N개의 문자로 구성된 복수의 N-그램들로 분할하여 상기 복수의 N-그램들로 구성된 N-그램 세트를 생성하는 단계, 생성된 상기 N-그램 세트에서 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 악성 스코어를 계산하는 단계 및 계산된 악성 스코어에 기초하여, 입력된 상기 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단하는 단계를 포함한다.

Description

악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램{METHOD FOR DETERMINING MALICIOUS DOMAIN, COMPUTING DEVICE AND PROGRAM USING THE SAME}
본 발명의 기술적 사상은 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램에 관한 것으로, 보다 상세하게는 도메인 네임 문자열을 복수의 N-그램들로 분할하고 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 악성 스코어를 계산하여 계산된 악성 스코어를 기초로 악성 도메인을 판단할 수 있는 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램에 관한 것이다.
점차 복잡해지고 정교해지는 IT 기술에 따라 보안 취약점을 이용한 공격 방법들도 진화하고 있다. 대표적인 예로 악성코드, 스팸 메일과 같이 사용자의 시스템을 조종하여 공격하거나 사용자의 행동을 유도하여 공격하는 방법이 많이 활용되고 있다.
스팸 메일을 걸러내기 위한 방법에 대해서는 서버 관리자나 ISP(Internet Service Provider)에 의해 오래 전부터 연구가 진행되어 왔다. 그 결과, 스팸 메일의 내용을 검사하거나 스팸 메일을 전송한 도메인 자체를 리스트에 추가시켜 리스트에 등재된 도메인으로부터 전송된 메일은 수신 자체를 거부하는 등의 필터링 기술들이 존재한다.
하지만, 상기의 필터링 기술들은 봇넷(botnet)을 이용하여 서버 관리자나 ISP의 규제를 벗어나 대량의 스팸 메일을 발송하는 경우에 대해서는 필터링에 한계를 가진다.
본 발명의 기술적 사상이 이루고자 하는 도메인 네임 문자열을 복수의 N-그램들로 분할하고 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 악성 스코어를 계산하여 계산된 악성 스코어를 기초로 악성 도메인을 판단할 수 있는 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램을 제공하는 것이다.
본 발명의 기술적 사상에 의한 일 양태에 따른 악성 도메인을 판단하는 방법은 도메인 네임 문자열을 입력받고, 입력된 상기 도메인 네임 문자열을 각각이 N개의 문자로 구성된 복수의 N-그램들로 분할하여 상기 복수의 N-그램들로 구성된 N-그램 세트를 생성하는 단계, 생성된 상기 N-그램 세트에서 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 악성 스코어를 계산하는 단계, 및 계산된 악성 스코어에 기초하여, 입력된 상기 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단하는 단계를 포함할 수 있다.
예시적인 실시 예에 따르면, 입력된 상기 도메인 네임 문자열은, 상기 도메인의 도메인 네임에서 최하위 도메인에 해당하는 부분의 문자를 추출하여 생성될 수 있다.
예시적인 실시 예에 따르면, 상기 복수의 N-그램들 각각은, 2개의 문자로 구성된 바이그램(bigram) 또는 3개의 문자로 구성된 트라이그램(trigram)일 수 있다.
예시적인 실시 예에 따르면, 상기 악성 스코어를 계산하는 단계는, 상기 복수의 N-그램들 각각이 상기 바이그램으로 구성되는 경우, 상기 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영하지 않고, 상기 복수의 N-그램들 각각이 상기 트라이그램으로 구성되는 경우, 상기 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영하여 상기 악성 스코어를 계산할 수 있다.
예시적인 실시 예에 따르면, 상기 악성 스코어를 계산하는 단계는, 상기 복수의 N-그램들 각각이 상기 바이그램으로 구성되는 경우, 상기 복수의 N-그램들 각각이 악성 도메인들로 분류된 도메인에서 등장하는 빈도에 기초하여 상기 악성 스코어를 계산할 수 있다.
예시적인 실시 예에 따르면, 상기 악성 스코어를 계산하는 단계는, 상기 도메인 네임 문자열의 전체 길이에 기초하여 상기 악성 스코어를 계산할 수 있다.
예시적인 실시 예에 따르면, 상기 악성 스코어를 계산하는 단계는, 생성된 상기 N-그램 세트의 상기 복수의 N-그램들 중에서 반모음 특성의 문자가 포함된 N-그램이 있는지 여부를 판단하는 단계, 반모음 특성의 문자가 포함된 N-그램에 대해서는 상기 반모음 특성의 문자의 위치에 기초하여, 상기 반모음 특성의 문자를 자음 또는 모음으로 처리하는 단계 및 상기 반모음 특성의 문자가 자음 또는 모음으로 처리된 N-그램 세트에서 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 상기 악성 스코어를 계산하는 단계를 포함할 수 있다.
예시적인 실시 예에 따르면, 상기 N-그램 세트를 생성하는 단계는, 상기 도메인 네임 문자열을 입력받고, 입력된 상기 도메인 네임 문자열의 총 문자수에 기초하여, 상기 복수의 N-그램들 각각을 구성할 문자수를 결정하는 단계 및 상기 도메인 네임 문자열을 각각이 결정된 상기 문자수로 구성된 복수의 N-그램들로 분할하여 상기 복수의 N-그램들로 구성된 상기 N-그램 세트를 생성하는 단계를 포함할 수 있다.
예시적인 실시 예에 따르면, 상기 악성 도메인을 판단하는 방법은, 입력된 상기 도메인 네임 문자열에 상응하는 상기 도메인이 악성 도메인에 해당하는지 여부를 판단한 결과에 따라, 상기 도메인 네임 문자열에 상응하는 상기 복수의 N-그램들을 악성 또는 정상으로 분류하여 저장하는 단계를 더 포함할 수 있다.
예시적인 실시 예에 따르면, 복수의 도메인들 각각에 대한 복수의 N-그램들을 악성 또는 정상으로 분류하여 저장한 결과, 상기 복수의 N-그램들 중에서 적어도 어느 하나의 N-그램이 악성으로도 분류되고 정상으로도 분류된 경우, 악성으로 분류된 빈도와 정상으로 분류된 빈도의 차이에 기초하여, 상기 적어도 어느 하나의 N-그램에 대한 가중치를 설정할 수 있다.
예시적인 실시 예에 따르면, 악성으로도 분류되고 정상으로도 분류된 상기 적어도 어느 하나의 N-그램이 상기 모음만 반복되는 N-그램 또는 상기 자음만 반복되는 N-그램인 경우, 상기 모음만 반복되는 N-그램 또는 상기 자음만 반복되는 N-그램에 대하여 기 설정되어 있던 가중치를 업데이트할 수 있다.
예시적인 실시 예에 따르면, 상기 악성 도메인에 해당하는지 여부를 판단하는 단계는, 상기 계산된 악성 스코어와 기준 스코어를 비교하고, 비교 결과에 따라 입력된 상기 도메인 네임 문자열에 상응하는 상기 도메인이 악성 도메인에 해당하는지 여부를 판단할 수 있다.
예시적인 실시 예에 따르면, 상기 악성 도메인에 해당하는지 여부를 판단하는 단계는, 상기 계산된 악성 스코어, 상기 N-그램 세트를 구성하는 상기 복수의 N-그램들의 개수, 상기 복수의 N-그램들 중에서 상기 모음만 반복되는 N-그램의 개수, 상기 자음만 반복되는 N-그램의 개수, 및 상기 도메인 네임 문자열의 총 문자수 중에서 적어도 어느 하나를 기초로 악성 여부가 판단된 복수의 도메인들을 분포시키는 단계 및 K-최근접 이웃 알고리즘(K-Nearest Neighbors(KNN) Algorithm)을 적용하여 입력된 상기 도메인 네임에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단할 수 있다.
본 발명의 기술적 사상에 의한 일 양태에 따른 컴퓨팅 장치는 도메인 네임 문자열을 입력받고, 입력된 상기 도메인 네임 문자열을 각각이 N개의 문자로 구성된 복수의 N-그램들로 분할하여 상기 복수의 N-그램들로 구성된 N-그램 세트를 생성하는 N-그램 세트 생성모듈, 생성된 상기 N-그램 세트에서 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 악성 스코어를 계산하는 악성 스코어 계산기 및 계산된 악성 스코어에 기초하여, 입력된 상기 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단하는 악성 도메인 판단 모듈을 포함할 수 있다.
본 발명의 기술적 사상에 의한 일 양태에 따른 프로세서(processor)와 결합되어 악성 도메인을 판단하는 방법을 수행하기 위한 매체에 저장된 프로그램은 도메인 네임 문자열을 입력받고, 입력된 상기 도메인 네임 문자열을 각각이 N개의 문자로 구성된 복수의 N-그램들로 분할하여 상기 복수의 N-그램들로 구성된 N-그램 세트를 생성하는 단계, 생성된 상기 N-그램 세트에서 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 악성 스코어를 계산하는 단계, 계산된 악성 스코어에 기초하여, 입력된 상기 도메인 네임 문자열에 상응하는 도메인이 상기 악성 도메인에 해당하는지 여부를 판단하는 단계를 수행할 수 있다.
본 발명의 실시 예에 따른 방법과 장치는 DGA(Domain Generation Algorithm)를 이용하여 대량의 도메인이 생성되는 경우에 생성되는 도메인 네임의 특성을 역이용하여, 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 악성 스코어를 계산하고 이를 이용하여 악성 도메인을 판단함으로써, 악성 도메인 판단의 정확성을 향상시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 컴퓨팅 장치의 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 악성 도메인을 판단하는 방법의 플로우차트이다.
도 3은 도 2에 도시된 악성 도메인을 판단하는 방법의 일 실시 예에 따라 K-최근접 이웃 알고리즘(K-Nearest Neighbors(KNN) Algorithm)을 이용하는 경우를 설명하기 위한 도면이다.
도 4는 입력된 도메인 네임 문자열을 바이그램(bigram)으로 분할하여 악성 도메인을 판단한 경우의 악성 도메인 판단 정확도를 나타낸 표이다.
도 5는 입력된 도메인 네임 문자열을 트라이그램(trigram)으로 분할하여 악성 도메인을 판단한 경우의 악성 도메인 판단 정확도를 나타낸 표이다.
도 6은 특정 N-그램에 대하여 가중치를 반영하지 않은 경우의 악성 도메인 판단 정확도를 나타낸 표이다.
도 7은 특정 N-그램에 대하여 가중치를 반영한 경우의 악성 도메인 판단 정확도를 나타낸 표이다.
도 8은 계산된 악성 스코어에 K-최근접 이웃 알고리즘을 적용하여 악성 도메인을 판단한 경우의 악성 도메인 판단 정확도를 나타낸 표이다.
본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processer), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Drive Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있으며, 적어도 하나의 기능이나 동작의 처리에 필요한 데이터를 저장하는 메모리(memory)와 결합되는 형태로 구현될 수도 있다.
그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
이하, 본 발명의 기술적 사상에 따른 실시 예들을 차례로 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 컴퓨팅 장치의 블록도이다.
도 1을 참조하면, 본 발명의 기술적 사상에 의한 일 실시 예에 따른 컴퓨팅 장치(100)는 악성 스코어 계산 모듈(110), 악성 도메인 판단 모듈(120), 가중치 업데이트 모듈(130), 및 메모리(140)를 포함할 수 있다.
실시 예에 따라, 컴퓨팅 시스템(100) 내의 데이터 처리과정은 컴퓨팅 시스템(100)에 포함된 하드웨어(hardware), 예컨대, 메모리(150)와 프로세서(processor; 미도시)를 기반으로 수행될 수 있다. 이 때, 악성 스코어 계산 모듈(110), 악성 도메인 판단 모듈(120), 및 가중치 설정 모듈(130)은 상기 프로세서의 일부 기능으로 구현될 수 있다. 예컨대, 본 발명의 실시 예에 따른 악성 도메인을 판단하는 방법은 프로그램 코드로 구현되어 매체에 저장될 수 있으며, 메모리(140)는 상기 프로세서와 결합되어 본 발명의 실시 예에 따른 악성 도메인을 판단하는 방법을 수행시킬 수 있다.
악성 스코어 계산 모듈(110)은 컴퓨팅 장치(100)가 입력된 도메인 네임 문자열을 분석하여, 입력된 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단하기 위한 기준이 되는 악성 스코어를 계산할 수 있다.
실시 예에 따라, 입력된 도메인 네임 문자열은 도메인의 도메인 네임에서 최하위 도메인에 해당하는 부분의 문자를 추출하여 생성될 수 있다. 예컨대, 도메인 네임 "hanyang.ac.kr"에서 최하위 도메인인 "hanynag"을 추출하여 추출된 부분이 도메인 네임 문자열로써 악성 스코어 계산 모듈(110)로 입력될 수 있다.
다른 실시 예에 따라, 최하위 도메인의 추출과정은 악성 스코어 계산 모듈(110) 내에서 수행될 수도 있다.
악성 스코어 계산 모듈(110)은 N-그램 세트 생성모듈(112), 이상 N-그램 판단모듈(114), 및 악성 스코어 계산기(116)를 포함할 수 있다.
N-그램 세트 생성모듈(112)은 입력된 도메인 네임 문자열을 각각이 N개의 문자로 구성된 복수의 N-그램들로 분할하여 복수의 N-그램들로 구성된 N-그램 세트를 생성할 수 있다.
실시 예에 따라, N-그램 세트 생성모듈(112)은 입력된 도메인 네임 문자열을 2개의 문자로 구성된 바이그램(bigram) 또는 3개의 문자로 구성된 트라이그램(trigram)으로 분할할 수 있다. 예컨대, 입력된 도메인 네임 문자열이 "hanyang"인 경우, 바이그램으로 분할되면 N-그램 세트는 {ha, an, ny, ya, an, ng}으로 생성되고, 트라이그램으로 분할되면 N-그램 세트는 {han, any, nya, yan, ang}으로 생성될 수 있다.
다른 실시 예에 따라, N-그램 세트 생성모듈(112)은 입력된 도메인 네임 문자열을 4개 이상의 문자로 구성된 N-그램으로 분할할 수도 있다.
실시 예에 따라, N-그램 세트 생성모듈(112)은 입력된 도메인 네임 문자열의 전체 길이에 기초하여, N-그램들 각각에 포함시킬 문자의 수를 결정할 수 있다. 예컨대, N-그램 세트 생성모듈(112)은 입력된 도메인 네임 문자열의 전체 길이와 기준 길이를 비교하고, 전체 길이가 기준 길이보다 짧은 경우에 N-그램들 각각에 포함되는 문자의 수를 2개로 결정하고, 전체 길이가 기준 길이와 같거나 기준 길이보다 긴 경우에 N-그램들 각각에 포함시킬 문자 수를 3개로 결정할 수 있다.
이상 N-그램 판단모듈(114)은 N-그램 세트 생성모듈(112)에 의해 생성된 N-그램 세트에 포함된 복수의 N-그램들 중에서 이상 N-그램이 포함되어 있는지 여부를 판단할 수 있다. 실시 예에 따라, 이상 N-그램은 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램일 수 있다. 예컨대 입력된 도메인 네임 문자열이 "abcde"이고, 3개의 문자로 구성된 N-그램들로 분할되는 경우 N-그램 세트는 {abc, bcd, cde}로 구성될 수 있다. 이 경우, "bcd"는 자음만 반복되는 N-그램에 해당하여 이상 N-그램으로 판단될 수 있다.
이상 N-그램 판단모듈(114)은 으로 판단된 N-그램에 대해서는 악성 스코어 계산시 가중치가 반영될 수 있도록, 이상 N-그램에 대한 정보를 악성 스코어 계산기(116)로 전달할 수 있다.
실시 예에 따라, 이상 N-그램 판단모듈(114)은 생성된 N-그램 세트의 복수의 N-그램들 중에서 반모음 특성의 문자가 포함된 N-그램이 있는지 여부를 판단할 수 있다.
실시 예에 따라, 이상 N-그램 판단모듈(114)은 반모음 특성의 문자가 포함된 N-그램에 대해서는 반모음 특성의 문자의 위치에 기초하여 상기 반모음 특성의 문자를 자음 또는 모음으로 처리할 수 있다.
예컨대, 반모음 특성의 알파벳 y의 경우, 반모음 특성의 알파벳 y이 도메인 네임 문자열의 처음에 위치하는 경우(예컨대, you 등)에는 자음으로 처리하고, 도메인 네임 문자열의 마지막에 위치하는 경우(예컨대, puppy, happy 등)에는 모음으로 처리하고, 자음 사이에 위치하는 경우(예컨대, myth 등)에는 모음으로 처리할 수 있다.
실시 예에 따라, 이상 N-그램 판단모듈(114)은 반모음 특성의 문자가 포함된 N-그램에 대해서는 반모음 특성의 문자의 발음형태에 따라 상기 반모음 특성의 문자를 자음 또는 모음으로 처리할 수 있다.
예컨대, 반모음 특성의 알파벳 y의 경우, j로 발음되는 경우에는 자음으로 처리하고 i로 발음되는 경우에는 모음으로 처리할 수 있다.
악성 스코어 계산기(116)는 입력된 도메인 네임 문자열에 대한 악성 스코어를 계산할 수 있다.
실시 예에 따라, 악성 스코어 계산기(116)는 이상 N-그램 판단모듈(114)로부터 전달된 이상 N-그램에 대한 정보를 수신하고, 수신된 이상 N-그램에 대한 정보에 기초하여 악성 스코어를 계산할 수 있다.
실시 예에 따라, 악성 스코어 계산기(116)는 입력된 도메인 네임 문자열에 대하여 생성된 N-그램 세트에서 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영하여 상기 도메인 네임 문자열에 대한 악성 스코어를 계산할 수 있다.
예컨대, 입력된 도메인 네임 문자열이 "abcde"이고, 3개의 문자로 구성된 N-그램들로 분할되는 경우 N-그램 세트는 {abc, bcd, cde}로 구성되며, 악성 스코어 계산기(116)는 각 N-그램에 대하여 스코어링을 할 수 있다. 이 때, 악성 스코어 계산기(116)는 자음만 반복되는 N-그램인 "bcd"에 대해서는 가중치를 반영하여 스코어링을 할 수 있으며, "abc","cde"에 대해서 1점을 부여한 경우 "bcd"에 대해서는 1.5점을 부여할 수 있다.
실시 예에 따라, 악성 스코어 계산기(116)는 도메인 네임 문자열의 전체 길이에 기초하여 악성 스코어를 계산할 수 있다. 이 경우, 악성 스코어 계산기(116)는 N-그램 세트에 대한 악성 스코어값을 계산하고, 계산된 악성 스코어값에 도메인 네임 문자열의 총길이의 역수를 곱하여 최종적인 악성 스코어값을 도출할 수 있다. 예컨대, 악성 스코어 계산기(116)는 아래의 [수학식 1]에 따라 악성 스코어를 계산할 수 있다.
[수학식 1]
TP1=
Figure 112018067386788-pat00001
(TP1는 해당 도메인 네임 문자열에 대한 악성 스코어, NP는 해당 도메인 네임 문자열에 상응하는 복수의 N-그램들 각각에 대한 악성 스코어, μ는 가중치, L은 해당 도메인 네임 문자열의 전체 길이)
실시 예에 따라, 악성 스코어 계산기(116)는 모음만 반복되는 N-그램에 대한 가중치 값보다 자음만 반복되는 N-그램에 대한 가중치 값을 더 크게 설정할 수 있다.
실시 예에 따라, 복수의 N-그램들 각각이 2개의 문자로 구성된 바이그램인 경우, 악성 스코어 계산기(116)는 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 별도의 가중치를 반영하지 않고 악성 스코어를 계산할 수 있다. 이 경우, 악성 스코어 계산기(116)는 복수의 N-그램들 각각이 악성 도메인들로 분류되어 메모리(140)에 저장된 도메인에서 등장하는 빈도에 기초하여 악성 스코어를 계산할 수 있다. 예컨대, 악성 스코어 계산기(116)는 아래의 [수학식 2]에 따라 악성 스코어를 계산할 수 있다.
[수학식 2]
TP2=
Figure 112018067386788-pat00002
(TP2는 해당 도메인 네임 문자열에 대한 악성 스코어, TF는 해당 도메인 네임 문자열에 상응하는 복수의 N-그램들 각각이 악성 도메인들로 분류되어 메모리(140)에 저장된 도메인에서 등장하는 빈도, L은 해당 도메인 네임 문자열의 전체 길이)
악성 도메인 판단 모듈(120)은 악성 스코어 계산 모듈(110)에 의해 계산된 악성 스코어에 기초하여, 입력된 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단할 수 있다.
악성 도메인 판단 모듈(120)은 기준 스코어 비교모듈(122) 및 KNN 모듈(124)을 포함할 수 있다.
기준 스코어 비교모듈(122)은 악성 스코어 계산 모듈(110)에 의해 계산된 악성 스코어와 기준 스코어를 비교하고, 비교 결과에 따라 입력된 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단할 수 있다.
실시 예에 따라, 기준 스코어 비교모듈(122)은 계산된 악성 스코어가 기준 스코어와 같거나 기준 스코어보다 큰 경우에 해당 도메인은 악성 도메인에 해당하는 것으로 판단하고, 계산된 악성 스코어가 기준 스코어보다 작은 경우에 해당 도메인은 악성 도메인에 해당하지 않는 것으로 판단할 수 있다.
KNN 모듈(124)은 악성 스코어 계산기(116)에 의해 계산된 악성 스코어, 입력된 도메인 네임 문자열에 대하여 생성된 N-그램 세트를 구성하는 복수의 N-그램들의 개수, 상기 복수의 N-그램들 중에서 모음만 반복되는 N-그램의 개수, 상기 복수의 N-그램들 중에서 자음만 반복되는 N-그램의 개수, 및 상기 도메인 네임 문자열의 총 문자수 중에서 적어도 어느 하나를 기초로 악성 여부가 판단된 복수의 도메인들을 그래프 상에 분포시킬 수 있다.
KNN 모듈(124)은 악성 여부가 판단된 후에 그래프 상에 분포된 복수의 도메인들과 입력된 도메인 네임 문자열에 상응하는 도메인에 K-최근접 이웃 알고리즘(K-Nearest Neighbors(KNN) Algorithm)을 적용하여, 입력된 도메인 네임 문자열에 상응하는 상기 도메인이 악성 도메인에 해당하는지 여부를 판단할 수 있다.
KNN 모듈(124)의 상세한 악성 도메인 판단 과정에 대해서는 도 2와 도 3을 참조하여 후술하도록 한다.
악성 도메인 판단 모듈(120)은 기준 스코어 비교모듈(122)과 KNN 모듈(124) 중의 적어도 어느 하나를 이용하여, 입력된 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단할 수 있다.
실시 예에 따라, 악성 도메인 판단 모듈(120)은 기준 스코어 비교모듈(122)과 KNN 모듈(124)을 함께 이용하여, 입력된 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단할 수 있다. 이 경우, 기준 스코어 비교모듈(122)과 KNN 모듈(124)의 판단 결과가 모두 악성 도메인인 경우에 입력된 도메인 네임 문자열에 상응하는 도메인이 악성 도메인인 것으로 판단할 수 있다.
악성 도메인 판단 모듈(120)은 입력된 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단한 결과에 따라, 상기 도메인 네임 문자열에 상응하는 복수의 N-그램들을 악성 또는 정상으로 분류하여 메모리(140)에 저장할 수 있다. 예컨대, 입력된 도메인 네임 문자열이 "abcde"이고, 상응하는 복수의 N-그램들이 {abc, bcd, cde}이며, 악성 도메인 판단 모듈(120)의 판단 결과 입력된 도메인 네임 문자열 "abcde"에 상응하는 도메인이 악성 도메인으로 판단된 경우, 상응하는 복수의 N-그램들 "abc", "bcd", "cde" 은 악성으로 분류되어 메모리(140)에 저장될 수 있다.
가중치 설정 모듈(130)은 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 기 설정되어 있던 가중치를 업데이트하거나, 모음만 반복되는 N-그램 및 자음만 반복되는 N-그램에 해당하지 않는 N-그램에 대해서 가중치를 새로 부여할 수 있다.
가중치 설정 모듈(130)은 가중치 설정기(132)와 가중치 업데이트기(134)를 포함할 수 있다.
가중치 설정기(132)는 모음만 반복되는 N-그램 및 자음만 반복되는 N-그램에 해당하지 않는 N-그램에 대해서 가중치를 새로 부여할 수 있다.
가중치 업데이트기(134)는 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 기 설정되어 있던 가중치를 업데이트할 수 있다.
복수의 도메인들 각각에 대한 복수의 N-그램들은 악성 또는 정상으로 분류되어 메모리(140)에 저장될 수 있으며, 적어도 어느 하나의 N-그램이 악성으로도 분류되고 정상으로도 분류되는 경우가 발생할 수 있다.
이 경우, 가중치 설정기(132)는 상기 적어도 어느 하나의 N-그램이 악성으로 분류된 빈도와 정상으로 분류된 빈도의 차이에 기초하여, 상기 적어도 어느 하나의 N-그램에 대한 가중치를 새로 부여할 수 있다.
실시 예에 따라, 가중치 설정기(132)는 상기 적어도 어느 하나의 N-그램이 악성으로 분류된 빈도에서 정상으로 분류된 빈도를 뺀 값이 양수인 경우에는 가중치를 1보다 큰 값으로 부여하고, 악성으로 분류된 빈도에서 정상으로 분류된 빈도를 뺀 값이 0인 경우에는 가중치를 부여하지 않고, 악성으로 분류된 빈도에서 정상으로 분류된 빈도를 뺀 값이 음수인 경우에는 가중치를 1보다 작은 값으로 부여할 수 있다.
악성으로도 분류되고 정상으로도 분류된 N-그램이 모음만 반복되는 N-그램 또는 자음만 반목되는 N-그램에 해당하는 경우, 가중치 업데이트기(134)는 기 설정되어 있던 가중치를 업데이트할 수 있다.
실시 예에 따라, 가중치 업데이트기(134)는 상기 적어도 어느 하나의 N-그램이 악성으로 분류된 빈도에서 정상으로 분류된 빈도를 뺀 값이 양수인 경우에는 기 설정되어 있던 가중치 값이 커지도록 업데이트하고, 악성으로 분류된 빈도에서 정상으로 분류된 빈도를 뺀 값이 0인 경우에는 기 설정되어 있던 가중치 값을 유지하며, 악성으로 분류된 빈도에서 정상으로 분류된 빈도를 뺀 값이 음수인 경우에는 기 설정되어 있던 가중치 값이 작아지도록 업데이트할 수 있다.
메모리(140)는 컴퓨팅 장치(100)의 동작에 필요한 프로그램 코드, 컴퓨팅 장치(100)에 포함된 악성 스코어 계산 모듈(110), 악성 도메인 판단 모듈(120), 및 가중치 설정 모듈(130) 각각의 동작에 필요한 데이터 및 처리 결과에 따른 데이터를 저장할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 악성 도메인을 판단하는 방법의 플로우차트이다. 도 3은 도 2에 도시된 악성 도메인을 판단하는 방법의 일 실시 예에 따라 K-최근접 이웃 알고리즘(K-Nearest Neighbors(KNN) Algorithm)을 이용하는 경우를 설명하기 위한 도면이다.
도 1 내지 도 3을 참조하면, 컴퓨팅 장치(100)는 도메인 네임 문자열을 입력받을 수 있다(S10).
악성 스코어 계산 모듈(110)의 N-그램 세트 생성모듈(112)은 입력된 도메인 네임 문자열의 전체 길이, 즉 총 문자수에 기초하여, N-그램의 문자수를 결정할 수 있다(S20).
실시 예에 따라, N-그램 세트 생성모듈(112)은 입력된 도메인 네임 문자열의 전체 길이와 기준 길이를 비교하고, 전체 길이가 기준 길이보다 짧은 경우에 N-그램들 각각에 포함되는 문자의 수를 2개로 결정하고, 전체 길이가 기준 길이와 같거나 긴 경우에 N-그램들 각각에 포함되는 문자 수를 3개로 결정할 수 있다.
실시 예에 따라, N-그램 세트 생성모듈(112)은 N-그램의 문자수를 기 설정된 값으로 결정할 수도 있다. 이 경우, S20단계는 생략될 수 있다.
악성 스코어 계산 모듈(110)의 N-그램 세트 생성모듈(112)은 상기 도메인 네임 문자열을 각각이 S20단계에서 결정된 문자수로 구성된 복수의 N-그램들로 분할하여 N-그램 세트를 생성할 수 있다(S30).
악성 스코어 계산 모듈(110)의 악성 스코어 계산기(116)는 S20 단계에서 결정된 N-그램의 문자수에 따라 N-그램이 바이그램(bigram)인지 여부, 즉 N-그램의 문자수가 2로 설정되었는지 여부를 판단할 수 있다(S40).
N-그램이 바이그램인 경우, 악성 스코어 계산 모듈(110)의 악성 스코어 계산기(116)는 복수의 N-그램들 각각이 악성 도메인으로 분류된 도메인들에서 등장하는 빈도에 기초하여 악성 스코어를 계산할 수 있다(S50).
N-그램이 바이그램이 아닌 경우, 악성 스코어 계산 모듈(110)의 악성 스코어 계산기(116)는 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 악성 스코어를 계산할 수 있다(S60).
악성 도메인 판단 모듈(120)은 S50단계 또는 S60단계에서 계산된 악성 스코어에 기초하여 입력된 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단할 수 있다(S70).
실시 예에 따라, 악성 도메인 판단 모듈(120)은 악성 스코어 계산 모듈(110)에 의해 계산된 악성 스코어와 기준 스코어를 비교하고, 비교 결과에 따라 입력된 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단할 수 있다.
다른 실시 예에 따라, 악성 도메인 판단 모듈(120)은 악성 스코어 계산기(116)에 의해 계산된 악성 스코어, 입력된 도메인 네임 문자열에 대하여 생성된 N-그램 세트를 구성하는 복수의 N-그램들의 개수, 상기 복수의 N-그램들 중에서 모음만 반복되는 N-그램의 개수, 상기 복수의 N-그램들 중에서 자음만 반복되는 N-그램의 개수, 및 상기 도메인 네임 문자열의 총 문자수 중에서 적어도 어느 하나를 기초로 악성 여부가 판단된 복수의 도메인들을 그래프 상에 분포시키고, 그래프 상에 분포된 복수의 도메인들과 입력된 도메인 네임 문자열에 상응하는 도메인에 K-최근접 이웃 알고리즘을 적용하여, 입력된 도메인 네임 문자열에 상응하는 상기 도메인이 악성 도메인에 해당하는지 여부를 판단할 수 있다.
도 3을 함께 참조하면, 악성 도메인 판단 모듈(120)은 악성 스코어, 입력된 도메인 네임 문자열에 대하여 생성된 N-그램 세트를 구성하는 복수의 N-그램들의 개수, 상기 복수의 N-그램들 중에서 모음만 반복되는 N-그램의 개수, 상기 복수의 N-그램들 중에서 자음만 반복되는 N-그램의 개수, 및 상기 도메인 네임 문자열의 총 문자수 중에서 적어도 2 이상을 기초로 악성 여부가 판단된 복수의 도메인들을 그래프 상에 분포시킬 수 있다.
예컨대, x축이 악성 스코어, y축이 자음만 반복되는 N-그램의 개수의 역수를 나타내는 경우, 정상으로 판단된 도메인 A,B,C, 악성으로 판단된 도메인 D,E,F를 그래프 상에 분포시킬 수 있다. 이 경우, 악성 도메인 판단 모듈(120)은 입력된 도메인 네임 문자열에 상응하는 도메인 N에 대하여 가장 인접한 K개의 도메인을 선택하고, 선택된 K개의 도메인이 정상 도메인 또는 악성 도메인인지 여부에 따라 도메인 N이 악성 도메인인지 여부를 판단할 수 있다. 예컨대, K=1인 경우, 도메인 N에 대하여 가장 인접한 1개의 도메인 C를 선택할 수 있으며, 선택된 C는 정상으로 판단된 도메인이므로 도메인 N도 정상으로 판단할 수 있다.
도 4는 입력된 도메인 네임 문자열을 바이그램(bigram)으로 분할하여 악성 도메인을 판단한 경우의 악성 도메인 판단 정확도를 나타낸 표이다. 도 5는 입력된 도메인 네임 문자열을 트라이그램(trigram)으로 분할하여 악성 도메인을 판단한 경우의 악성 도메인 판단 정확도를 나타낸 표이다.
도 4를 참조하면, 입력된 도메인 네임 문자열을 바이그램으로 분할하여 악성 도메인을 판단한 경우의 판단 정확도(accuracy)는 약 63%인 반면, 도 5를 참조하면, 입력된 도메인 네임 문자열을 트라이그램으로 분할하여 악성 도메인을 판단한 경우의 판단 정확도는 약 72%로 도메인 네임 문자열을 트라이그램으로 분할한 경우에 정확도가 상대적으로 높아짐을 알 수 있다.
도 6은 특정 N-그램에 대하여 가중치를 반영하지 않은 경우의 악성 도메인 판단 정확도를 나타낸 표이다. 도 7은 특정 N-그램에 대하여 가중치를 반영한 경우의 악성 도메인 판단 정확도를 나타낸 표이다. 도 8은 계산된 악성 스코어에 K-최근접 이웃 알고리즘을 적용하여 악성 도메인을 판단한 경우의 악성 도메인 판단 정확도를 나타낸 표이다.
도 6을 참조하면, 악성 도메인 판단 시 N-그램을 트라이그램으로 설정하고, N-그램에 대하여 아무런 가중치를 반영하지 않은 채 악성 스코어를 계산한 경우에 정확도가 약 72.177%이며, 도 7을 참조하면, N-그램을 트라이그램으로 설정하고, N-그램 중에서 자음만으로 구성된 N-그램 대하여 가중치를 반영하여 악성 스코어를 계산한 경우에 정확도가 약 72.183%로 향상됨을 알 수 있다. 본 발명의 실시 예에 따라 악성 도메인의 판단 결과에 따라 모음만 반복되는 N-그램 및 자음만 반복되는 N-그램에 해당하지 않는 N-그램에 대해서도 가중치를 부여하거나, 기 설정된 가중치를 업데이트하거나 하는 경우, 정확도는 더욱 향상될 수 있다.
도 4 내지 도 7에서는 계산된 악성 스코어를 기준 스코어와 비교하여 악성 도메인을 판단한 경우이며, 도 8에서는 계산된 악성 스코어에 K-최근접 이웃 알고리즘을 적용한 결과로, K-최근접 이웃 알고리즘을 적용한 경우에 정확도가 약 74.4%로 더욱 향상됨을 할 수 있다.
이상, 본 발명의 기술적 사상을 다양한 실시 예들을 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시 예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.
100 : 컴퓨팅 장치
110 : 악성 스코어 계산 모듈
120 : 악성 도메인 판단 모듈
130 : 가중치 설정 모듈
140 : 메모리

Claims (15)

  1. 도메인 네임 문자열을 입력받고, 입력된 상기 도메인 네임 문자열을 각각이 N개의 문자로 구성된 복수의 N-그램들로 분할하여 상기 복수의 N-그램들로 구성된 N-그램 세트를 생성하는 단계;
    생성된 상기 N-그램 세트에서 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 악성 스코어를 계산하는 단계; 및
    계산된 악성 스코어에 기초하여, 입력된 상기 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단하는 단계를 포함하며,
    입력된 상기 도메인 네임 문자열은,
    상기 도메인의 도메인 네임에서 최하위 도메인에 해당하는 부분의 문자를 추출하여 생성되는, 악성 도메인을 판단하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 복수의 N-그램들 각각은,
    2개의 문자로 구성된 바이그램(bigram) 또는 3개의 문자로 구성된 트라이그램(trigram)인, 악성 도메인을 판단하는 방법.
  4. 제3항에 있어서,
    상기 악성 스코어를 계산하는 단계는,
    상기 복수의 N-그램들 각각이 상기 바이그램으로 구성되는 경우, 상기 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영하지 않고,
    상기 복수의 N-그램들 각각이 상기 트라이그램으로 구성되는 경우, 상기 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영하여 상기 악성 스코어를 계산하는, 악성 도메인을 판단하는 방법.
  5. 제4항에 있어서,
    상기 악성 스코어를 계산하는 단계는,
    상기 복수의 N-그램들 각각이 상기 바이그램으로 구성되는 경우, 상기 복수의 N-그램들 각각이 악성 도메인들로 분류된 도메인에서 등장하는 빈도에 기초하여 상기 악성 스코어를 계산하는, 악성 도메인을 판단하는 방법.
  6. 제5항에 있어서,
    상기 악성 스코어를 계산하는 단계는,
    상기 도메인 네임 문자열의 전체 길이에 기초하여 상기 악성 스코어를 계산하는, 악성 도메인을 판단하는 방법.
  7. 제6항에 있어서,
    상기 악성 스코어를 계산하는 단계는,
    생성된 상기 N-그램 세트의 상기 복수의 N-그램들 중에서 반모음 특성의 문자가 포함된 N-그램이 있는지 여부를 판단하는 단계;
    반모음 특성의 문자가 포함된 N-그램에 대해서는 상기 반모음 특성의 문자의 위치에 기초하여, 상기 반모음 특성의 문자를 자음 또는 모음으로 처리하는 단계; 및
    상기 반모음 특성의 문자가 자음 또는 모음으로 처리된 N-그램 세트에서 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 상기 악성 스코어를 계산하는 단계를 포함하는, 악성 도메인을 판단하는 방법.
  8. 제7항에 있어서,
    상기 N-그램 세트를 생성하는 단계는,
    상기 도메인 네임 문자열을 입력받고, 입력된 상기 도메인 네임 문자열의 총 문자수에 기초하여, 상기 복수의 N-그램들 각각을 구성할 문자수를 결정하는 단계; 및
    상기 도메인 네임 문자열을 각각이 결정된 상기 문자수로 구성된 복수의 N-그램들로 분할하여 상기 복수의 N-그램들로 구성된 상기 N-그램 세트를 생성하는 단계를 포함하는, 악성 도메인을 판단하는 방법.
  9. 제8항에 있어서,
    상기 악성 도메인을 판단하는 방법은,
    입력된 상기 도메인 네임 문자열에 상응하는 상기 도메인이 악성 도메인에 해당하는지 여부를 판단한 결과에 따라, 상기 도메인 네임 문자열에 상응하는 상기 복수의 N-그램들을 악성 또는 정상으로 분류하여 저장하는 단계를 더 포함하는, 악성 도메인을 판단하는 방법.
  10. 제9항에 있어서,
    복수의 도메인들 각각에 대한 복수의 N-그램들을 악성 또는 정상으로 분류하여 저장한 결과, 상기 복수의 N-그램들 중에서 적어도 어느 하나의 N-그램이 악성으로도 분류되고 정상으로도 분류된 경우,
    악성으로 분류된 빈도와 정상으로 분류된 빈도의 차이에 기초하여, 상기 적어도 어느 하나의 N-그램에 대한 가중치를 설정하는, 악성 도메인을 판단하는 방법.
  11. 제10항에 있어서,
    악성으로도 분류되고 정상으로도 분류된 상기 적어도 어느 하나의 N-그램이 상기 모음만 반복되는 N-그램 또는 상기 자음만 반복되는 N-그램인 경우,
    상기 모음만 반복되는 N-그램 또는 상기 자음만 반복되는 N-그램에 대하여 기 설정되어 있던 가중치를 업데이트하는, 악성 도메인을 판단하는 방법.
  12. 제11항에 있어서,
    상기 악성 도메인에 해당하는지 여부를 판단하는 단계는,
    상기 계산된 악성 스코어와 기준 스코어를 비교하고, 비교 결과에 따라 입력된 상기 도메인 네임 문자열에 상응하는 상기 도메인이 악성 도메인에 해당하는지 여부를 판단하는, 악성 도메인을 판단하는 방법.
  13. 제11항에 있어서,
    상기 악성 도메인에 해당하는지 여부를 판단하는 단계는,
    상기 계산된 악성 스코어, 상기 N-그램 세트를 구성하는 상기 복수의 N-그램들의 개수, 상기 복수의 N-그램들 중에서 상기 모음만 반복되는 N-그램의 개수, 상기 자음만 반복되는 N-그램의 개수, 및 상기 도메인 네임 문자열의 총 문자수 중에서 적어도 어느 하나를 기초로 악성 여부가 판단된 복수의 도메인들을 분포시키는 단계; 및
    K-최근접 이웃 알고리즘(K-Nearest Neighbors(KNN) Algorithm)을 적용하여 입력된 상기 도메인 네임에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단하는, 악성 도메인을 판단하는 방법.
  14. 도메인 네임 문자열을 입력받고, 입력된 상기 도메인 네임 문자열을 각각이 N개의 문자로 구성된 복수의 N-그램들로 분할하여 상기 복수의 N-그램들로 구성된 N-그램 세트를 생성하는 N-그램 세트 생성모듈;
    생성된 상기 N-그램 세트에서 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 악성 스코어를 계산하는 악성 스코어 계산기; 및
    계산된 악성 스코어에 기초하여, 입력된 상기 도메인 네임 문자열에 상응하는 도메인이 악성 도메인에 해당하는지 여부를 판단하 악성 도메인 판단 모듈을 포함하며,
    입력된 상기 도메인 네임 문자열은,
    상기 도메인의 도메인 네임에서 최하위 도메인에 해당하는 부분의 문자를 추출하여 생성되는, 컴퓨팅 장치.
  15. 프로세서(processor)와 결합되어 악성 도메인을 판단하는 방법을 수행하기 위한 매체에 저장된 프로그램으로서,
    도메인 네임 문자열을 입력받고, 입력된 상기 도메인 네임 문자열을 각각이 N개의 문자로 구성된 복수의 N-그램들로 분할하여 상기 복수의 N-그램들로 구성된 N-그램 세트를 생성하는 단계;
    생성된 상기 N-그램 세트에서 모음만 반복되는 N-그램 또는 자음만 반복되는 N-그램에 대하여 가중치를 반영한 악성 스코어를 계산하는 단계; 및
    계산된 악성 스코어에 기초하여, 입력된 상기 도메인 네임 문자열에 상응하는 도메인이 상기 악성 도메인에 해당하는지 여부를 판단하는 단계를 수행하며,
    입력된 상기 도메인 네임 문자열은,
    상기 도메인의 도메인 네임에서 최하위 도메인에 해당하는 부분의 문자를 추출하여 생성되는, 프로그램.
KR1020180079496A 2018-07-09 2018-07-09 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램 KR102100393B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180079496A KR102100393B1 (ko) 2018-07-09 2018-07-09 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180079496A KR102100393B1 (ko) 2018-07-09 2018-07-09 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램

Publications (2)

Publication Number Publication Date
KR20200005910A KR20200005910A (ko) 2020-01-17
KR102100393B1 true KR102100393B1 (ko) 2020-04-13

Family

ID=69370110

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180079496A KR102100393B1 (ko) 2018-07-09 2018-07-09 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램

Country Status (1)

Country Link
KR (1) KR102100393B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102361513B1 (ko) * 2020-03-20 2022-02-10 엘아이지넥스원 주식회사 악성 도메인 탐지 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101473535B1 (ko) 2012-12-28 2014-12-18 한양대학교 산학협력단 Multi N―gram을 이용한 악성코드 분류 방법
KR101694179B1 (ko) 2016-09-13 2017-01-23 한국과학기술정보연구원 모음 제거 기반 인덱스 생성 방법 및 장치
CN107566376A (zh) * 2017-09-11 2018-01-09 中国信息安全测评中心 一种威胁情报生成方法、装置及系统
KR101828995B1 (ko) 2017-05-08 2018-02-14 한국과학기술정보연구원 키워드 클러스터링 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101473535B1 (ko) 2012-12-28 2014-12-18 한양대학교 산학협력단 Multi N―gram을 이용한 악성코드 분류 방법
KR101694179B1 (ko) 2016-09-13 2017-01-23 한국과학기술정보연구원 모음 제거 기반 인덱스 생성 방법 및 장치
KR101828995B1 (ko) 2017-05-08 2018-02-14 한국과학기술정보연구원 키워드 클러스터링 방법 및 장치
CN107566376A (zh) * 2017-09-11 2018-01-09 中国信息安全测评中心 一种威胁情报生成方法、装置及系统

Also Published As

Publication number Publication date
KR20200005910A (ko) 2020-01-17

Similar Documents

Publication Publication Date Title
Melicher et al. Fast, lean, and accurate: Modeling password guessability using neural networks
Ur et al. Measuring {Real-World} Accuracies and Biases in Modeling Password Guessability
Woodbridge et al. Predicting domain generation algorithms with long short-term memory networks
Houshmand et al. Next gen PCFG password cracking
Weir et al. Password cracking using probabilistic context-free grammars
US9479524B1 (en) Determining string similarity using syntactic edit distance
WO2019153605A1 (zh) 文本中敏感信息的鉴定方法、电子装置及可读存储介质
CN107798052B (zh) 词典更新装置及词典更新方法
US9471712B2 (en) Approximate matching of strings for message filtering
CN104866478B (zh) 恶意文本的检测识别方法及装置
WO2017106669A1 (en) Systems and methods evaluating password complexity and strength
Nuhn et al. Beam search for solving substitution ciphers
US20200412740A1 (en) Methods, devices and systems for the detection of obfuscated code in application software files
Yan et al. Captcha security: A case study
WO2019038755A1 (en) DOMAIN USURPATION IDENTIFICATION SYSTEM
JP6553180B2 (ja) 言語検出を行うためのシステムおよび方法
KR102100393B1 (ko) 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램
CN112948725A (zh) 基于机器学习的钓鱼网站url检测方法及系统
CN112364625A (zh) 文本筛选方法、装置、设备及存储介质
US20220377107A1 (en) System and method for detecting phishing-domains in a set of domain name system (dns) records
EP2919422A1 (en) Method and device for detecting spoofed messages
Kanta et al. PCWQ: A framework for evaluating password cracking wordlist quality
US20200099718A1 (en) Fuzzy inclusion based impersonation detection
JP6194180B2 (ja) 文章マスク装置及び文章マスクプログラム
CN108536713B (zh) 字符串审核方法、装置及电子设备

Legal Events

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