KR101809159B1 - 머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템 - Google Patents

머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템 Download PDF

Info

Publication number
KR101809159B1
KR101809159B1 KR1020170097491A KR20170097491A KR101809159B1 KR 101809159 B1 KR101809159 B1 KR 101809159B1 KR 1020170097491 A KR1020170097491 A KR 1020170097491A KR 20170097491 A KR20170097491 A KR 20170097491A KR 101809159 B1 KR101809159 B1 KR 101809159B1
Authority
KR
South Korea
Prior art keywords
malicious code
unit
url
risk
malicious
Prior art date
Application number
KR1020170097491A
Other languages
English (en)
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 KR1020170097491A priority Critical patent/KR101809159B1/ko
Priority to PCT/KR2017/014233 priority patent/WO2019027106A1/ko
Application granted granted Critical
Publication of KR101809159B1 publication Critical patent/KR101809159B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Virology (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템이 개시된다.
본 발명은 악성코드 유포지를 탐지하여 유포지로 발견되는 웹사이트에 대해 실제 악성코드 유포가 활성화 되어 있는지 여부 등을 분석하여 위험도를 산정하고, 이를 바탕으로 악성코드 유포지의 반복성, 최신성, 악성코드 활성화 여부 등을 변수로 하여, 계속적으로 학습함으로써, 위험도 분석에 정확성을 가져올 수 있

Description

머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템{A SYSTEM FOR ANALYZING THE RISK OF MALICIOUS CODES USING MACHINE LEARNING}
본 발명은 악성코드 유포지 위험도 분석 시스템에 관한 것으로서, 보다 상세하게는 웹사이트에 악성코드를 유포하는 코드를 삽입함으로써 대상 웹서버가 악성코드 유표/경유하는 사이트로 악용되는 것을 사전에 탐지하여 대응할 수 있고, 웹사이트에 악성프로그램을 배포하는 코드가 삽입되는지를 주기적으로 검사하여 악성코드가 배포되기 전에 미리 탐지, 시스템관리자 또는 관제시스템에 알림으로써, 선 조치를 취할 수 있는 머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템에 관한 것이다.
네트워크 및 컴퓨터의 발전에 따라 악성코드 역시 폭발적인 증가 추이를 보이고 있으며, 새로운 악성코드의 출현과 더불어 기존의 악성코드를 이용한 변종 역시 큰 몫을 차지하고 있다.
악성코드는 사용자가 알지 못하는 사이 컴퓨터 시스템에 침입, 설치되어 시스템이나 네트워크에 피해를 주고, 불법적으로 정보를 취득하도록 설계된 소프트웨어를 의미한다. 이러한 악성코드의 위협에 대응하기 위해, 현재 다양한 악성코드 분석 및 탐지 연구가 활발하게 진행되고 있지만, 날이 갈수록 지능화되고 정교해지는 악성코드들에 대응하기에는 많은 한계가 따르는 것이 현실이다.
악성코드를 분석하는 방법은 크게 정적 분석과 동적 분석 두 가지로 분류될 수 있다. 정적 분석은 악성코드를 실행시키지 않고 분석하는 방법으로, 바이너리 패턴 매칭, 데이터 플로우와 코드 플로우 분석 등이 대표적인 정적 분석기법의 하나이다. 정적 분석 기법은 악성코드의 실행을 배제하기 때문에 안전하고 빠른 분석이 용이하다는 장점을 가지고 있지만, 정확한 분석이 쉽지 않은 단점을 갖고 있다.
정적 분석의 단점을 극복하기 위해 제안된 새로운 형태의 분석 접근법이 동적 분석 기법이다. 동적 분석은 가상 머신과 같은 제어 가능한 환경 속에서 악성코드를 동작시켜 그 행위를 분석하는 기법으로, 실행압축과 같은 코드 난독화와 무관하게 정확한 실제 행위를 볼 수 있다는 장점을 가지고 있다. 동적 분석 기법은 실제 악성코드 실행에 따르는 실험환경의 오염 가능성과 행위 관찰을 위해 많은 시간이 소요되는 단점이 있다.
공개특허공보 제2007-0049511호(2007.05.11, 공개)는 행위 관찰을 위해 많은 시간이 소요되는 단점을 극복하기 위한 방안으로, 악성코드에 관련된 정보를 자체적으로 분석할 수 있도록 기준을 마련함으로써, 악성코드에 의해 발생하는 피해 및 악성코드에 대한 예방 대책 수립 등이 가능한 악성코드 분석 기술을 제시하고 있다.
하지만, 이러한 종래기술은 백신에 기반하여 악성코드를 탐지하는바, 최근 해커들이 웹사이트를 해킹하여 악성코드를 심어 놓고 유포시키는 등의 신종 기법들을 탐지 및 분석할 수 없는 문제가 있다. 인터넷 사용자들은 웹 사이트에 심어놓은 악성코드의 피해를 입게 되므로, 웹 사이트나 홈페이지에 악성코드가 발생하는 경우 해당 기업의 이미지가 실추될 수 있고 접속 고객이 감소하며, 고객 피해를 해결해야 하는 문제가 뒤따른다.
공개특허공보 제2007-0049511호(2007.05.11, 공개)
따라서, 이러한 문제점을 해결하기 위한 본 발명의 첫 번째 목적은 웹사이트에 악성코드를 유포하는 코드를 삽입함으로써 대상 웹서버가 악성코드 유표/경유하는 사이트로 악용되는 것을 사전에 탐지하여 대응할 수 있는 악성코드 유포지 위험 분석 시스템을 제공하는 것이다.
또한, 본 발명의 두 번째 목적은 웹사이트에 악성프로그램을 배포하는 코드가 삽입되는지를 주기적으로 검사하여 악성코드가 배포되기 전에 미리 탐지, 시스템관리자 또는 관제시스템에 알릴 수 있는 악성코드 유포지 위험 분석 시스템을 제공하는 것이다.
그리고 본 발명의 세 번째 목적은 악성코드 유포지를 탐지하여 유포지로 발견되는 웹사이트에 대해 실제 악성코드 유포가 활성화 되어 있는지 여부 등을 분석하여 위험도를 산정하고, 이를 바탕으로 악성코드 유포지의 반복성, 최신성, 악성코드 활성화 여부 등을 변수로 하여, 위험도 확률을 도출하며, 이를 계속적으로 학습함으로써, 위험도 분석에 정확성을 가져올 수 있는 악성코드 유포지 위험 분석 시스템을 제공하는 것이다.
상기 첫 번째 내지 세 번째 목적을 달성하기 위하여, 본 발명은 악성코드 유포지 위험도 분석 시스템에 있어서, 사용자가 접속한 URL의 기 설정된 깊이까지 링크 페이지의 복사본을 생성하고, 생성된 복사본을 인덱싱하는 웹 크롤링부, 상기 복사본의 HTML을 파싱하는 HTML 파싱부, 상기 HTML 파싱부가 파싱한 HTML을 이용하여 악성코드 유포 패턴을 분석하는 악성코드 유포 패턴 분석부, 상기 악성코드 유포 패턴 분석부가 분석한 악성코드 유포 패턴을 이용하여, 악성코드 유포 URL을 탐지하는 악성코드 유포 URL 탐지부, 상기 악성코드 유포 URL에 대한 내용을 저장하는 악성코드 DB부, 악성코드 유포 URL로 판단한 경우, 사용자 단말의 해당 URL에 접속을 차단하는 악성코드 URL 접속 차단부를 포함하는 위험도 분석 시스템을 제공한다.
상기 악성코드 유포지 위험도 분석 시스템은 상기 악성코드 유포 패턴을 분석하기 위하여, 악성코드 유포 패턴을 디코딩하는 스크립트 난독화 처리부를 더 포함할 수 있다.
상기 악성코드 유포지 위험도 분석 시스템은 상기 HTML 파싱부가 파싱한 HTML을 이용하여 DOM 또는 BOM을 생성하는 DOM 및 BOM 생성부를 더 포함할 수 있다.
상기 악성코드 유포지 위험도 분석 시스템은 웹 크롤링부가 생성한 복사본에 따라 시나리오 스크립트를 생성하고, 생성한 스크립트에 따른 동작을 수행하는 스크립트 엔진부를 더 포함할 수 있다.
상기 악성코드 유포지 위험도 분석 시스템은 악성코드 유포 패턴 및 악성코드 유포 URL 중 적어도 하나를 이용하여, 악성코드 유포지 위험도를 분석하는 위험도 분석부를 더 포함할 수 있다.
상기 위험도 분석부는 재귀적 신경망(Recurrent Neural Network 이하 'RNN')을 이용하여, 악성코드 유포지의 최신성, 반복성 및 악성코드 활성화 여부를 포함하는 변수에 따른 위험도 확률을 도출하는 RNN 학습 모듈을 포함할 수 있다.
상기 악성코드 DB부는 상기 RNN 학습 모듈이 도출한 위험도 확률을 저장하고, 상기 위험도 확률을 반영하여 악성코드 유포 URL에 대한 내용을 갱신할 수 있다.
상기에서 설명한 본 발명의 머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템에 의하면, 웹사이트에 악성코드를 유포하는 코드를 삽입함으로써 대상 웹서버가 악성코드 유표/경유하는 사이트로 악용되는 것을 사전에 탐지하여 대응할 수 있다.
또한, 웹사이트에 악성프로그램을 배포하는 코드가 삽입되는지를 주기적으로 검사하여 악성코드가 배포되기 전에 미리 탐지, 시스템관리자 또는 관제시스템에 알릴 수 있다.
그리고 악성코드 유포지를 탐지하여 유포지로 발견되는 웹사이트에 대해 실제 악성코드 유포가 활성화 되어 있는지 여부 등을 분석하여 위험도를 산정하고, 이를 바탕으로 악성코드 유포지의 반복성, 최신성, 악성코드 활성화 여부 등을 변수로 하여, 위험도 확률을 도출하며, 이를 계속적으로 학습함으로써, 위험도 분석에 정확성을 가져올 수 있다.
도 1은 본 발명의 일 실시예인 악성코드 유포지 위험도 분석 시스템의 개략적인 구성을 나타낸 도면이다.
도 2는 본 발명의 일 구성인 스크립트 난독화 처리부의 디코딩 전후 코드의 예시를 나타낸 도면이다.
도 3은 본 발명의 일 구성인 위험도 분석부에 대한 개략적인 구성을 나타낸 도면이다.
도 4는 본 발명의 일 구성인 RNN 학습 모듈의 학습 방법을 개략적으로 나타낸 도면이다.
도 5는 본 발명의 일 구성인 RNN 학습 모듈의 학습 방법에 따른 위험도 확률 도출 결과를 나타낸 도면이다.
본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정 해석되지 아니하며, 발명자는 그 사용자의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 “…부”, “…기”, “…단”, “모듈”, “장치” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 및/또는 소프트웨어의 결합으로 구현될 수 있다.
본 발명의 실시 예에서 사용되는 용어에 대해 간략히 설명하고, 본 실시 예들에 대해 구체적으로 설명하기로 한다.
본 발명의 실시 예에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예들의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시예들의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 발명의 실시 예에서, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, 본 발명의 실시 예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
또한, 본 발명의 실시 예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 발명의 실시 예에서, ‘모듈’ 혹은 ‘부’는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의‘모듈’ 혹은 복수의‘부’는 특정한 하드웨어로 구현될 필요가 있는 ‘모듈’ 혹은 ‘부’를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
또한, 본 발명의 실시 예에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
이하, 본 발명의 실시 예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예인 악성코드 유포지 위험도 분석 시스템(10)의 개략적인 구성을 나타낸 도면이며, 도 2는 본 발명의 일 구성인 스크립트 난독화 처리부의 디코딩 전후 코드의 예시를 나타낸 도면이다.
도 1을 참고하면, 악성코드 유포지 위험도 분석 시스템(10)은 웹 크롤링부(100), HTML 파싱부(200), 악성코드 유포 패턴 분석부(300), 악성코드 유포 URL 탐지부(400), 악성코드 DB부(500), 악성코드 URL 접속 차단부(600), 스크립트 난독화 처리부(700), DOM 및 BOM 생성부(800), 스크립트 엔진부(900) 및 위험도 분석부(1000)를 포함할 수 있다.
웹 크롤링부(100)는 사용자가 접속한 URL의 기 설정된 깊이까지 링크 페이지의 복사본을 생성하고, 생성된 복사본을 인덱싱할 수 있다.
그리고 웹 크롤링부(100)는 웹 제공 서버(미도시)에서 운용하는 웹 사이트 및 홈페이지에 접속하여 기 설정된 깊이까지 웹 사이트 및 홈페이지에서 제공하는 컨텐츠들을 이용하고 컨텐츠 제공시 발생되는 유포 코드 및 실행코드(예를 들어, 스크립트 코드 등)를 제공받을 수 있다.
또한, 웹 크롤링부(100)는 특정 URL의 위험도 확률이 기 설정된 임계치 이상인 경우, 특정 URL은 기 설정된 깊이뿐만 아니라 특정 URL의 서브 링크를 포함한 모든 링크 페이지의 복사본을 생성하고, 생성된 복사본을 인덱싱할 수 있다.
즉, 웹 크롤링부(100)는 특정 URL의 위험도 확률이 기 설정된 임계치 이상인 경우, 기 설정된 깊이가 전체(full depth)로 설정되어, 특정 URL의 모든 링크 페이지의 복사본을 생성하고, 생성된 복사본의 인덱싱을 수행할 수 있다.
그리고 웹 크롤링부(100)는 특정 URL의 위험도 확률이 기 설정된 임계치 이상인 경우, 웹 제공 서버(미도시)에서 운용하는 웹 사이트 및 홈페이지에 접속하여 전체 웹 사이트 및 홈페이지에서 제공하는 모든 컨텐츠를 이용하고 컨텐츠 제공시 발생되는 유포 코드 및 실행코드(예를 들어, 스크립트 코드 등)를 제공받을 수 있다.
즉, 특정 URL의 위험도 확률이 기 설정된 임계치 이상인 경우, 후술할 악성코드 URL 차단부(600)가 특정 URL의 접속을 차단하는 것과는 별개로 웹 크롤링부(100)는 기 설정된 깊이가 아닌 전체 웹 사이트 및 홈페이지에서 제공하는 모든 컨텐츠를 이용하고, 유포 코드 및 실행코드를 제공받아 이를 기초하여 악성코드 유포 패턴 분석부(300)가 악성코드 유포 패턴을 분석하는바, 악성코드 유포 패턴을 보다 정확히 분석할 수 있다.
또한, 추가적으로 악성코드 유포 URL을 탐지함으로써, 악성코드 유포지를 보다 폭넓게 탐지할 수 있는 효과도 있다.
HTML 파싱부(200)는 생성된 복사본의 HTML을 파싱할 수 있다.
보다 구체적으로, HTML 파싱부(200)는 스크립트 엔진부(900)의 동작에 따라 발생하는 HTML 컨텐츠의 Http/Https URL을 제공받고, HTML 컨텐츠를 순차적으로 파싱해서 분석할 수 있다.
스크립트 난독화 처리부(700)는 악성코드 유포 패턴을 분석하기 위하여, 악성코드 유포 패턴을 디코딩할 수 있다.
보다 구체적으로 스크립트 난독화 처리부(700)는 스크립트 엔진부(900)의 동작에 따라 순차적으로 발생되는 URL, HTML 컨텐츠 제공시 발생되는 유포 코드의 스크립트 및 악성코드의 스크립트를 실시간 순차적으로 로딩하고 메모리에 저장한다.
이후, HTML 파싱부(200)는 URL, 유포 코드의 스크립트 및 악성코드의 스크립트를 순차적으로 파싱(parsing) 해서 분석하며, DOM 및 BOM 생성부(800)는 HTML 파싱부(200)가 파싱한 HTML을 이용하여 DOM 또는 BOM을 생성할 수 있다.
스크립트 난독화 처리부(700)는 상술한 DOM 또는 BOM의 스크립트와 악성코드 DB부(500)가 저장하고 있는 드랍퍼, 키로그, 데이터 유출파일, 악성 프로그램 유포 스크립트, 악성코드 스크립트들의 디코딩 정보들과 비교하여 실시간으로 디코딩함으로써, 드랍퍼, 키로그, 데이터 유출파일, 악성코드, 악성코드 접속 URL, 악성 프로그램 유포 코드를 각각 검출할 수 있다.
또한, 스크립트 난독화 처리부(700)는 스크립트 엔진부(900)에 의해 순차적으로 발생되는 URL, HTML 컨텐츠 제공시 발생되는 유포 코드 및 스크립트 코드 중 적어도 하나의 URL이나 코드들을 실시간으로 디코딩한다.
이후, 악성코드 URL 접속 차단부(600)는 검출 결과에 따라 발생되는 URL, HTML 컨텐츠 제공시 발생되는 유포 코드 및 스크립트 코드 유입 및 접속을 차단할 수 있다.
악성코드 유포 패턴 분석부(300)는 HTML 파싱부(200)가 파싱한 HTML을 이용하여 악성코드 유포 패턴을 분석할 수 있다.
즉, 악성코드 유포 패턴 분석부(300)는 HTML 파싱부(200)가 파싱한 HTML를 스크립트 난독화 처리부(700)가 디코딩한 이후, 디코딩된 HTML을 이용하여 악성코드 유포 패턴을 분석할 수 있다.
또한, 악성코드 유포 패턴 분석부(300)는 웹 사이트 및 홈페이지에서 제공하는 컨텐츠들과 컨텐츠 제공시 발생되는 유포 코드 및 실행코드를 실시간으로 분석하여, 드랍퍼, 키로그, 데이터 유출파일, 악성코드, 악성코드 접속 URL, 악성 프로그램 유포 코드 및 악성 프로그램 유포 패턴을 검출할 수 있다.
보다 구체적으로, 악성코드 유포 패턴 분석부(300)는 스크립트 엔진부(900)의 동작에 따라 순차적으로 발생되는 URL, 컨텐츠 제공시 발생되는 유포 코드 및 스크립트 코드와 같은 실행 코드를 악성코드 DB부(500)가 저장하고 있는 악성 프로그램 유포 패턴 정보, 악성코드 유포에 사용되었던 패턴 정보, src, width, height 중 적어도 하나의 속성 값과 비교하여 악성코드 유포 패턴의 유무를 확인할 수 있다.
그리고 악성코드 유포 URL 탐지부(400)는 악성코드 유포 패턴 분석부(300)가 분석한 악성코드 유포 패턴을 이용하여, 악성코드 유포 URL을 탐지할 수 있다.
보다 구체적으로, 악성코드 유포 URL 탐지부(400)는 악성코드 유포 패턴 분석부(300)의 악성코드 유포 패턴의 유무 확인 결과에 따라 URL, HTML 컨텐츠 제공시 발생되는 악성코드 접속 URL, 악성 프로그램 유포 코드 및 악성 프로그램 유포 패턴을 탐지할 수 있다.
또한, 악성코드 유포 패턴 분석부(300)는 스크립트 난독화 처리부(700)의 디코딩 결과를 이용하여, HTML 컨텐츠에서 악성코드 유포에 사용되는 아이 프레임(inline frame, iframe) 태그, 내부 프레임(inline frame) 태그, 임베드, 오브젝트 태그, 링크 태그, 스크립트 태그, 자바스크립트 태그 중 적어도 하나의 태그를 검출할 수 있다.
또한, 악성코드 유포 패턴 분석부(300)는 HTML 컨텐츠에서 src, width, height 중 적어도 하나의 속성값을 참조 및 비교하여 악성코드 유포에 사용되는 패턴의 유무를 확인 및 검출하게 된다.
또한, 악성코드 DB부(500)는 악성코드 유포 URL에 대한 내용을 저장할 수 있다.
악성코드 DB부(500)가 저장하는 악성코드 유포 URL에 대한 내용은 서버의 물리적 위치, 사용자, 업종 정보 등을 포함할 수 있다.
악성코드 URL 접속 차단부(600)는 특정 URL이 악성코드 유포 URL로 판단된 경우, 사용자 단말(미도시)의 해당 URL에 접속을 차단할 수 있다.
또한, 악성코드 URL 접속 차단부(600)는 무선 통신을 이용하여, 관리자 단말(미도시)로 특정 URL이 악성코드 유포 URL로 판단되었음을 송신할 수 있다.
이를 통해 관리자는 웹 사이트에 악성프로그램을 배포하는 악성 코드가 삽입되었는지 여부를 미리 확인할 수 있고, 이를 통해 악성 코드를 통해 문제가 발생하기 전에 미리 조치할 수 있는 효과가 있다.
여기서 사용자 단말(미도시) 및 관리자 단말(미도시)은 스마트 폰, 스마트 워치, 데스크탑 PC, 태블릿 PC, 노트북 PC 등과 같은 다양한 전자 장치로 구현될 수 있다.
보다 구체적으로 악성코드 URL 접속 차단부(600)는 악성코드 유포 패턴 분석부(300)의 악성코드 유포 패턴의 유무 확인 결과 및 악성코드 유포 URL 탐지부(400)의 악성 프로그램 유포 코드의 탐지 결과에 따라 URL 및 악성코드 접속 URL을 차단할 수 있다.
스크립트 엔진부(900)는 웹 크롤링부(100)가 생성한 복사본에 따라 시나리오 스크립트를 생성하고, 생성한 스크립트에 따른 동작을 수행할 수 있다.
또한, 스크립트 엔진부(900)는 웹 크롤링부(100)가 웹 제공 서버(미도시)로부터 제공 받은 유포 코드 및 실행코드(예를 들어, 스크립트 코드 등)를 이용하여, 해당 유포 코드 및 실행코드에 따른 동작을 순차적으로 수행할 수 있다.
위험도 분석부(1000)는 악성코드 유포 패턴 및 악성코드 유포 URL 중 적어도 하나를 이용하여, 악성코드 유포지 위험도를 분석할 수 있다.
또한, 위험도 분석부(1000)는 재귀적 신경망(Recurrent Neural Network 이하 'RNN')을 이용하여, 악성코드 유포지의 최신성, 반복성 및 악성코드 활성화 여부를 포함하는 변수에 따른 위험도 확률을 도출할 수 있다.
그리고 악성코드 DB부(500)는 위험도 분석부(1000)가 도출한 위험도 확률을 저장하고, 위험도 확률을 반영하여 악성코드 유포 URL에 대한 내용을 갱신할 수 있다.
위험도 확률이 기 설정된 임계치 이상인 경우, 위험도 분석부(1000)는 악성코드 유포 URL과 관련된 IP 대역, 호스트, 유사 업종에 대하여 웹 크롤링부(100)가 링크 페이지의 복사본 생성 및 인덱싱을 수행하도록 제어할 수 있다.
또한, 특정 URL의 위험도 확률이 기 설정된 임계치 이상인 경우, 위험도 분석부(1000)는 유사 도메인에 대하여 IP 정보를 도출할 수 있고, 악성코드 URL 접속 차단부(600)가 특정 URL에 대한 접속을 차단하도록 제어할 수 있다.
도 3은 본 발명의 일 구성인 위험도 분석부에 대한 개략적인 구성을 나타낸 도면이며, 도 4는 본 발명의 일 구성인 RNN 학습 모듈의 학습 방법을 개략적으로 나타낸 도면이고, 도 5는 본 발명의 일 구성인 RNN 학습 모듈의 학습 방법에 따른 위험도 확률 도출 결과를 나타낸 도면이다.
도 3을 참고하면, 위험도 분석부는 RNN 학습 모듈(1010) 및 유포지 위험도 분류 모듈(1020)을 포함할 수 있다.
RNN 학습 모듈(1010)은 재귀적 신경망(Recurrent Neural Network 이하 'RNN')을 이용하여, 악성코드 유포지의 최신성, 반복성 및 악성코드 활성화 여부를 포함하는 변수에 따른 위험도 확률을 도출할 수 있다.
여기서, 악성코드 유포지의 최신성은 현 시점을 기준으로 기 설정된 기간 동안 악성코드를 유포한 적이 있는지 여부를 판단하는 것이며, 악성코드 유포지의 반복성은 해당 악성코드 유포지의 유포 횟수를 의미하고, 악성코드 활성화 여부는 실제 악성프로그램 다운로드 여부(해쉬 값 비교를 통한 파일 확인) 또는 악성프로그램 실행 여부 등을 의미한다.
도 4를 참고하면, RNN 학습 모듈(1010)은 상술한 악성코드 유포지의 회신성, 반복성 및 악성코드 활성화 여부(X1, X2, X3)을 변수로 하여, 입력계층에 입력을 하고, 은닉계층에서 기 설정된 알고리즘 또는 기 입력된 함수를 이용하여, 특정 URL에 대한 출력계층에서 y1, y2 및 y3의 출력 값을 도출할 수 있다.
도 5를 참고하면, RNN 학습 모듈(1010)은 도출된 출력 값을 이용하여, 위험도 확률을 도출할 수 있고, 도출된 위험도 확률이 기 설정된 임계치 이상 또는 미만 여부에 따라서, 특정 URL에 대한 위험도 높음 또는 낮음을 판단할 수 있다.
유포지 위험도 분류 모듈(1020)은 RNN 학습 모듈(1010)의 위험도 판단 결과에 따라 특정 URL을 위험도 높음 또는 낮음으로 분류할 수 있다.
그리고 유포지 위험도 분류 모듈(1020)은 악성코드 DB부(500)가 도출된 위험도 확률을 저장하도록 제어할 수 있고, 유포지 위험도 분류 모듈(1020)은 악성코드 DB부(500)가 위험도 확률을 반영하여 악성코드 유포 URL에 대한 내용을 갱신하도록 제어할 수 있다.
위험도 확률이 기 설정된 임계치 이상인 경우, 유포지 위험도 분류 모듈(1020)은 악성코드 유포 URL과 관련된 IP 대역, 호스트, 유사 업종에 대하여 웹 크롤링부(100)가 링크 페이지의 복사본 생성 및 인덱싱을 수행하도록 제어할 수 있다.
또한, 특정 URL의 위험도 확률이 기 설정된 임계치 이상인 경우, 유포지 위험도 분류 모듈(1020)은 유사 도메인에 대하여 IP 정보를 도출할 수 있고, 악성코드 URL 접속 차단부(600)가 특정 URL에 대한 접속을 차단하도록 제어할 수 있다.
상술한 위험도 분석부(1000)를 통해 머신러닝을 이용하여 위험도를 산정할 수 있으므로 기존 전문 인력이 수동으로 위험도를 산정하는 것에 비해 위험도 산정의 정확성 및 효율이 상승하고, 위험도 산정에 따른 악성코드 오탐율을 현저히 낮출 수 있는 효과가 있다.
또한, 위험도 분석부(1000)의 변수 산정 과정에서 기존 기술이 수동으로 업데이트하는데 비해 위험도 분석부(1000)는 머신러닝을 이용하는 바, 자동으로 업데이트를 할 수 있는 장점이 있다.
상기와 같이 본 발명의 실시 예에 따른 머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템의 구성 및 동작이 이루어질 수 있으며, 한편 상기 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나 여러 가지 변형이 본 발명의 범위를 벗어나지 않고 실시될 수 있다.
이상에서 본 발명은 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 수정 및 변형이 가능함은 물론이다.
본 실시 예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
10: 악성코드 유포지 위험도 분석 시스템
100: 웹 크롤링부 200: HTML 파싱부
300: 악성코드 유포 패턴 분석부 400: 악성코드 유포 URL 탐지부
500: 악성코드 DB부 600: 악성코드 URL 접속 차단부
700: 스크립트 난독화 처리부 800: DOM 및 BOM 생성부
900: 스크립트 엔진부 1000: 위험도 분석부
1010: RNN 학습 모듈 1020: 유포지 위험도 분류 모듈

Claims (7)

  1. 악성코드 유포지 위험도 분석 시스템에 있어서,
    사용자가 접속한 URL의 기 설정된 깊이까지 링크 페이지의 복사본을 생성하고, 생성된 복사본을 인덱싱하는 웹 크롤링부;
    상기 복사본의 HTML을 파싱하는 HTML 파싱부;
    상기 HTML 파싱부가 파싱한 HTML을 이용하여 악성코드 유포 패턴을 분석하는 악성코드 유포 패턴 분석부;
    상기 악성코드 유포 패턴 분석부가 분석한 악성코드 유포 패턴을 이용하여, 악성코드 유포 URL을 탐지하는 악성코드 유포 URL 탐지부;
    상기 악성코드 유포 URL에 대한 내용을 저장하는 악성코드 DB부;
    악성코드 유포 URL로 판단한 경우, 사용자 단말의 해당 URL에 접속을 차단하는 악성코드 URL 접속 차단부;및
    웹 크롤링부가 생성한 복사본에 따라 시나리오 스크립트를 생성하고, 생성한 스크립트에 따른 동작을 수행하는 스크립트 엔진부;
    를 포함하는 악성코드 유포지 위험도 분석 시스템.
  2. 제1항에 있어서,
    상기 악성코드 유포 패턴을 분석하기 위하여, 악성코드 유포 패턴을 디코딩하는 스크립트 난독화 처리부;
    를 더 포함하는 악성코드 유포지 위험도 분석 시스템.
  3. 제1항에 있어서,
    상기 HTML 파싱부가 파싱한 HTML을 이용하여 DOM 또는 BOM을 생성하는 DOM 및 BOM 생성부;
    를 더 포함하는 악성코드 유포지 위험 분석 시스템.
  4. 삭제
  5. 제1항에 있어서,
    악성코드 유포 패턴 및 악성코드 유포 URL 중 적어도 하나를 이용하여, 악성코드 유포지 위험도를 분석하는 위험도 분석부;
    를 더 포함하는 악성코드 유포지 위험 분석 시스템.
  6. 제5항에 있어서,
    상기 위험도 분석부는
    재귀적 신경망(Recurrent Neural Network 이하 'RNN')을 이용하여, 악성코드 유포지의 최신성, 반복성 및 악성코드 활성화 여부를 포함하는 변수에 따른 위험도 확률을 도출하는 RNN 학습 모듈;
    을 포함하는 악성코드 유포지 위험 분석 시스템.
  7. 제6항에 있어서,
    상기 악성코드 DB부는
    상기 RNN 학습 모듈이 도출한 위험도 확률을 저장하고, 상기 위험도 확률을 반영하여 악성코드 유포 URL에 대한 내용을 갱신하는 것을 특징으로 하는 악성코드 유포지 위험 분석 시스템.
KR1020170097491A 2017-08-01 2017-08-01 머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템 KR101809159B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170097491A KR101809159B1 (ko) 2017-08-01 2017-08-01 머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템
PCT/KR2017/014233 WO2019027106A1 (ko) 2017-08-01 2017-12-06 머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170097491A KR101809159B1 (ko) 2017-08-01 2017-08-01 머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템

Publications (1)

Publication Number Publication Date
KR101809159B1 true KR101809159B1 (ko) 2017-12-14

Family

ID=60954211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170097491A KR101809159B1 (ko) 2017-08-01 2017-08-01 머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템

Country Status (2)

Country Link
KR (1) KR101809159B1 (ko)
WO (1) WO2019027106A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200071869A (ko) 2018-12-05 2020-06-22 단국대학교 산학협력단 머신러닝을 이용하여 애플리케이션의 난독화 또는 패킹 여부를 식별하는 시스템과, 그것을 포함하는 은폐된 멀웨어 탐지 분류 시스템 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11573785B2 (en) 2020-05-14 2023-02-07 International Business Machines Corporation Predicting code vulnerabilities using machine learning classifier models trained on internal analysis states

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101514984B1 (ko) 2014-03-03 2015-04-24 (주)엠씨알시스템 홈페이지 악성코드 유포 탐지 시스템 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101329108B1 (ko) * 2011-12-15 2013-11-20 고려대학교 산학협력단 악성코드 경유-유포지의 위험도 평가 시스템 및 그 방법
KR101428727B1 (ko) * 2012-11-09 2014-08-12 한국인터넷진흥원 악성코드 최종 유포지 및 경유지 탐지 시스템 및 방법
KR101577404B1 (ko) * 2015-08-13 2015-12-28 인스소프트 주식회사 자바 스크립트 오브젝트 모니터링을 이용한 악성코드 접근 차단 시스템, 방법 및 상기 방법을 실행시키기 위한 컴퓨터프로그램
KR101688390B1 (ko) * 2016-11-30 2016-12-22 주식회사 에프원시큐리티 웹 사이트의 악성코드 탐지 및 차단 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101514984B1 (ko) 2014-03-03 2015-04-24 (주)엠씨알시스템 홈페이지 악성코드 유포 탐지 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200071869A (ko) 2018-12-05 2020-06-22 단국대학교 산학협력단 머신러닝을 이용하여 애플리케이션의 난독화 또는 패킹 여부를 식별하는 시스템과, 그것을 포함하는 은폐된 멀웨어 탐지 분류 시스템 및 방법

Also Published As

Publication number Publication date
WO2019027106A1 (ko) 2019-02-07

Similar Documents

Publication Publication Date Title
US10089464B2 (en) De-obfuscating scripted language for network intrusion detection using a regular expression signature
US11570211B1 (en) Detection of phishing attacks using similarity analysis
Gupta et al. Enhancing the browser-side context-aware sanitization of suspicious HTML5 code for halting the DOM-based XSS vulnerabilities in cloud
Borgolte et al. Delta: automatic identification of unknown web-based infection campaigns
US9509714B2 (en) Web page and web browser protection against malicious injections
US11036855B2 (en) Detecting frame injection through web page analysis
US20140173736A1 (en) Method and system for detecting webpage Trojan embedded
Fraiwan et al. Analysis and identification of malicious javascript code
CN103617390A (zh) 一种恶意网页判断方法、装置和系统
KR20210084204A (ko) 악성 코드 수집 방법 및 시스템
Gorji et al. Detecting obfuscated JavaScript malware using sequences of internal function calls
KR101809159B1 (ko) 머신러닝을 이용한 악성코드 유포지 위험도 분석 시스템
Takata et al. Minespider: Extracting urls from environment-dependent drive-by download attacks
Raja et al. Malicious webpage classification based on web content features using machine learning and deep learning
Criscione et al. ZARATHUSTRA: Extracting Webinject signatures from banking trojans
KR101639869B1 (ko) 악성코드 유포 네트워크 탐지 프로그램
KR101688390B1 (ko) 웹 사이트의 악성코드 탐지 및 차단 시스템
Das et al. Detection of cross-site scripting attack under multiple scenarios
Tian et al. FrameHanger: Evaluating and classifying iframe injection at large scale
KR101699009B1 (ko) 모바일 악성앱 유포지 추적을 위한 블랙마켓 수집방법
Yin et al. A web application runtime application self-protection scheme against script injection attacks
US10515219B2 (en) Determining terms for security test
Tyagi et al. Prevention of drive by download attack (URL Malware Detector)
Manan et al. A survey on current malicious javascript behavior of infected web content in detection of malicious web pages
Nagarjun et al. ImageSubXSS: an image substitute technique to prevent Cross-Site Scripting attacks

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant