[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR101577404B1 - System and method for blocking access malware by using monitoring java-script object and computer program for executing the method - Google Patents

System and method for blocking access malware by using monitoring java-script object and computer program for executing the method Download PDF

Info

Publication number
KR101577404B1
KR101577404B1 KR1020150114437A KR20150114437A KR101577404B1 KR 101577404 B1 KR101577404 B1 KR 101577404B1 KR 1020150114437 A KR1020150114437 A KR 1020150114437A KR 20150114437 A KR20150114437 A KR 20150114437A KR 101577404 B1 KR101577404 B1 KR 101577404B1
Authority
KR
South Korea
Prior art keywords
javascript
malicious code
external link
packet
code
Prior art date
Application number
KR1020150114437A
Other languages
Korean (ko)
Inventor
이호철
Original Assignee
인스소프트 주식회사
이호철
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인스소프트 주식회사, 이호철 filed Critical 인스소프트 주식회사
Priority to KR1020150114437A priority Critical patent/KR101577404B1/en
Application granted granted Critical
Publication of KR101577404B1 publication Critical patent/KR101577404B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • 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
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/306Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information intercepting packet switched data communications, e.g. Web, Internet or IMS communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/141Denial of service attacks against endpoints in a network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 악성코드 접근 차단 시스템에 관한 것으로서, 악성코드 유포코드 목록을 포함하는 악성코드 DB; 사용자 단말이 인터넷에 접속할 때 전송하는 패킷을 수집하고 분석하는 패킷 수집분석장치; 및 상기 패킷에 난독화된 자바 스크립트가 포함되어 있는 경우, 상기 난독화된 자바 스크립트가 외부 링크를 호출하는지 탐지하며, 호출되는 외부 링크에 상기 악성코드 유포코드가 삽입되어 있는지 판단하는 자바 스크립트 분석장치를 포함한다.The present invention relates to a malicious code access blocking system, comprising: a malicious code DB including a malicious code distribution code list; A packet collection analyzing device for collecting and analyzing packets transmitted when a user terminal accesses the Internet; And a JavaScript analyzing unit for determining whether the obfuscated JavaScript is calling an external link when the packet includes obfuscated JavaScript, and determining whether the malicious code distribution code is inserted in the external link to be called, .

Description

자바 스크립트 오브젝트 모니터링을 이용한 악성코드 접근 차단 시스템, 방법 및 상기 방법을 실행시키기 위한 컴퓨터프로그램{System and method for blocking access malware by using monitoring java-script object and computer program for executing the method}[0001] The present invention relates to a malicious code access blocking system, a method and a computer program for executing the method,

본 발명은 악성코드 차단 기술에 관한 것으로, 구체적으로 자바 스크립트 오브젝트 모니터링을 이용해 악성코드의 접근을 차단하는 시스템 및 그 방법에 관한 것이다.The present invention relates to a malicious code blocking technology, and more particularly, to a system and a method for blocking malicious code access using JavaScript object monitoring.

최근에는 개인정보 및 기업기밀의 유출 등으로 개인 및 기업의 피해가 증가되고 있다. 이러한 개인정보 및 기업기밀의 유출은 개인 및 기업이 인터넷을 이용할 때, 악성코드의 공격으로 인해 발생된다. 악성코드란 사용자의 의사와 이익에 반하여 시스템을 파괴하거나 정보를 유출하는 등 악의적 활동을 수행하도록 의도적으로 제작된 소프트웨어를 말한다. 이러한 악성코드의 종류로는 바이러스(virus), 웜(worm), 트로이얀(Trojan), 백도어(backdoor), 논리폭탄(Logic Bomb), 트랩도어(Trap Door) 등의 해킹 툴, 악의적인 스파이웨어(spyware) 및 애드웨어(ad-ware) 등이 있다. 이들은 자기복제나 자동방식 기능을 구비한 채, 사용자 ID와 암호 등의 개인정보 유출, 대상 시스템의 통제, 파일 삭제 변경, 시스템 파괴, 핵심 자료 유출 및 다른 해킹 프로그램 설치 등의 문제를 일으켜 그 피해가 매우 다양하고 심각하다.In recent years, damage to individuals and companies has been increasing due to leakage of personal information and corporate secrets. The leakage of such personal information and corporate confidentiality is caused by malicious code attacks when individuals and companies use the Internet. Malicious code refers to software that is intentionally made to perform malicious activities such as destroying the system or leaking information against the will and interest of the user. These types of malicious code include hacking tools such as viruses, worms, Trojans, backdoors, Logic Bombs, Trap Doors, malicious spyware spyware and adware. They have problems such as leakage of personal information such as user ID and password, control of target system, change of file deletion, system destruction, leakage of key data and installation of other hacking program, It is very diverse and serious.

또한, 과거에는 악성코드 개발자가 호기심 또는 자기과시를 목적으로 악성코드를 제작하였으나, 최근에는 금전적 이득 및 정치적인 목적을 달성하기 위해 악성코드를 제작하는 경우가 많아지고 있다. 이에 따라, 최근의 악성코드는 공격 기술과 전파 기술이 고도화, 지능화 및 자동화되어 인터넷 사용자들을 위협하고 있다. 그 결과 악성코드로 인한 피해의 규모가 광범위해지고 있으며, 악성코드의 개체 수는 시간이 지남에 따라 기하급수적으로 늘어나고 있다. 또한, 최근의 악성코드들은 다양한 기술들이 접목되어 악성코드의 탐지를 우회하거나 악성코드의 분석을 방해 및 지연시킬 수 있다. In the past, malicious code developers have created malicious codes for the purpose of curiosity or self-disclosure, but recently, malicious codes have been produced to achieve financial benefits and political purposes. As a result, recent malicious codes are threatening Internet users because of the advanced, intelligent and automated attack and propagation technologies. As a result, the damage caused by malicious code has become widespread, and the number of malicious codes has increased exponentially over time. In addition, recent malicious codes may be able to bypass malicious code detection or interfere with and delay analysis of malicious code by incorporating various technologies.

게다가 최근의 해커들은 악성코드의 배포를 사업적으로 이용하고 있으며, 지명도 있는 홈페이지를 해킹한 후 악성 프로그램을 유포하기 위해서 악성코드를 은닉하는 방법을 사용하고 있다. 해커들은 의도적인 공격으로 인해 제로데이 취약점(새로운 취약점이 발생된 시점부터 소프트웨어의 보안 패치 출시 사이의 기간)이 발견되면 즉시 악의적인 공격도구를 제작하고, 해킹한 홈페이지를 통해서 홈페이지를 방문하는 사용자에게 악성코드를 유포한다. 또한, 해커들은 비의도적 공격으로 협력사에서 제작한 콘텐츠가 악성코드가 삽입된 상태로 홈페이지에 업로드 되게 하여 사용자에게 악성코드를 유포할 수 있다. In addition, recent hackers are using malicious code to distribute business, hacking a homepage and using malicious code to spread malicious programs. Hackers will immediately create a malicious attack tool if a zero-day vulnerability (the period between new vulnerabilities and the release of the software's security patches) is discovered due to intentional attack, Distribute malicious code. In addition, hackers can distribute malicious code to a user by causing content created by a partner company to be uploaded to the homepage with the malicious code inserted by an unintentional attack.

악성코드의 배포를 목적으로 하는 해커들은 해킹한 홈페이지에 악성코드 유포코드를 효과적으로 은닉하기 위해서 회피기술을 사용한다. 이러한 회피기술의 한 예로, 악성코드 유포코드의 자바 스크립트(java script) 난독화(encoding)를 통한 자동화 탐지 방지 기술이 있다. 악성코드의 자바 스크립트 난독화는 인코딩된 문자열 형태의 스크립트 소스 코드를 사용해서 자동화된 프로그램이 찾지 못하게 하거나 홈페이지 관리자가 인식하기 어렵게 만드는 것이다. 이러한 자바 스크립트 난독화의 예로 문자열 인코딩, 크래프트 코드(crafted code) 인코딩, 자바 스크립트 문자열 이스케이프(escape)함수를 이용한 인코딩 등 다양한 난독화 방법이 존재한다. Hackers who want to distribute malicious code use evasion techniques to effectively hide malicious code on the hacked homepage. One example of such a circumventing technique is an automated detection prevention technique using a java script obfuscation of a malicious code distributed code. JavaScript obfuscation of malicious code uses scripted source code in the form of encoded strings to prevent automated programs from being found or to be difficult for home page managers to recognize. There are various obfuscation methods such as string encoding, crafted code encoding, and encoding using JavaScript string escape function as examples of such JavaScript obfuscation.

이러한 방법으로 악성코드가 유포된 홈페이지에 방문한 단말은 개인정보 유출, 기업정보 유출, 이메일 자동발송 또는 단말 원격제어 등의 피해를 입고, 악성 프로그램을 유포한 기업은 금전적 손실 등 직/간접적인 피해를 입게 된다. 또한, 기업 홈페이지를 방문하는 일반 사용자뿐 아니라 기업 내부직원의 단말이 악성코드에 감염됨으로써 고객의 개인정보 및 기업의 내부정보가 유출될 수 있다.In this way, malicious code is distributed on the homepage of the visited terminal, such as personal information leakage, corporate information leakage, automatic e-mail sending or terminal remote control, such as damage to the malicious program distributed to businesses, such as financial loss, direct or indirect damage I will wear it. In addition, not only the general user who visits the company homepage but also the terminal of the employees inside the company are infected with the malicious code, so that the personal information of the customer and internal information of the company can be leaked.

따라서, 보호 대상 기업의 웹 서버가 악성코드를 경유 또는 유포하는 사이트로 악용되는 것을 사전에 탐지하고, 개인 또는 기업 내부 조직이 외부의 웹사이트 방문을 통해서 악성코드에 감염되는 것을 차단하는 기술이 필요하다.Therefore, it is necessary to detect the abuse of the web server of the protected company via the malicious code, and to prevent the malicious code from being infected by visiting the external website Do.

따라서, 본 발명은 자바 스크립트로 난독화된 악성코드 유포코드를 탐지하고, 악성코드 유포 사이트 접근을 차단하는 시스템 및 방법을 제공하는 것을 목적으로 한다.Accordingly, it is an object of the present invention to provide a system and method for detecting a malicious code distribution code obfuscated with JavaScript and blocking malicious code distribution site access.

이에 따라, 본 발명의 일 실시예에 따른 사용자 단말과 인터넷 사이에서 사용자 단말이 악성코드 유포 웹사이트로 접근하는 것을 차단하는 악성코드 접근 시스템은 사용자 단말이 인터넷에 접속할 때 송수신되는 패킷을 수집하고 분석하는 패킷 수집분석장치 및 상기 패킷에 난독화된 자바 스크립트가 포함되어 있는 경우, 상기 난독화된 자바 스크립트를 실행하여 실행된 자바 스크립트로부터 호출되는 외부 링크에 상기 악성코드 유포코드가 삽입되어 있는지 판단하는 자바 스크립트 분석장치를 포함하되, 상기 자바 스크립트 분석장치는 상기 난독화된 자바 스크립트를 실행하는 자바 스크립트 엔진을 생성하는 자바 스크립트 엔진 생성부, 상기 난독화된 자바 스크립트가 실행되는 자바 스크립트 오브젝트를 생성하는 자바 스크립트 오브젝트 생성부 및 상기 자바 스크립트 오브젝트의 생성 또는 변경에 따라, 실행된 난독화된 자바 스크립트로부터 호출되는 외부 링크에 상기 악성코드 유포코드를 삽입하고 있는지 판단하는 자바 스크립트 오브젝트 모니터를 생성하는 자바 스크립트 오브젝트 모니터 생성부를 포함하되, 상기 외부 링크에 상기 악성코드 유포코드가 삽입되어 있는 경우, 상기 외부링크에 접속할 수 없도록 상기 패킷을 변형하여 상기 사용자 단말에게 전송함으로써 상기 사용자 단말이 상기 외부 링크에 접속하는 것을 차단하는 접속차단장치를 더 포함할 수 있다.Accordingly, a malicious code access system, which prevents a user terminal from accessing a malicious code distribution web site between a user terminal and the Internet according to an embodiment of the present invention, collects packets transmitted and received when the user terminal accesses the Internet, And if the packet includes the obfuscated Javascript, it is determined whether the malicious code distribution code is inserted into the external link called from the JavaScript executed by executing the obfuscated JavaScript And a JavaScript analyzing apparatus, wherein the JavaScript analyzing apparatus comprises: a JavaScript engine generating unit that generates a JavaScript engine that executes the obfuscated Javascript; a generating unit that generates a JavaScript object in which the obfuscated JavaScript is executed Create JavaScript object And a JavaScript object monitor generating unit for generating a JavaScript object monitor for determining whether the malicious code distribution code is inserted into an external link called from the executed obfuscated JavaScript according to creation or modification of the JavaScript object The malicious code is transmitted to the user terminal by modifying the packet so that the malicious code is inserted into the external link so that the malicious code can not be connected to the external link, thereby preventing the user terminal from accessing the external link Device. ≪ / RTI >

삭제delete

삭제delete

상기 자바 스크립트 오브젝트 모니터는 상기 자바 스크립트 오브젝트의 생성 또는 변경을 탐지하며, 상기 자바 스크립트 오브젝트의 생성 또는 변경이 탐지되면, 외부 링크의 호출 여부를 탐지하는 자바 스크립트 오브젝트 탐지모듈; 및 상기 외부 링크가 호출되면, 상기 외부 링크가 상기 악성코드 유포코드를 삽입하고 있는지 판단하는 자바 스크립트 오브젝트 판단모듈을 포함한다.Wherein the JavaScript object monitor detects creation or modification of the JavaScript object and detects whether the external link is invoked if generation or modification of the JavaScript object is detected; And a JavaScript object determination module that determines whether the external link is inserting the malicious code distribution code when the external link is called.

상기 자바 스크립트 오브젝트 판단모듈은 상기 외부 링크를 상기 악성코드 DB에서 검색하여, 상기 외부 링크가 상기 악성코드 DB에 존재하는 경우, 상기 접속차단장치에게 외부 링크의 접속을 차단하도록 요청하며, 상기 외부 링크가 상기 악성코드 DB에 존재하지 않는 경우, 복수의 가상 머신을 통해 상기 외부 링크를 실행시켜 동작을 확인함으로써 상기 악성코드 감염 위험 여부를 판단하며, 상기 악성코드의 감염 위험이 있다고 판단되는 경우, 상기 접속차단장치에게 상기 외부 링크의 접속을 차단하도록 요청한다.The JavaScript object determination module searches the malicious code DB for the external link and requests the connection blocking device to block access to the external link when the external link exists in the malicious code DB, Judges whether the malicious code is infected or not by checking the operation by executing the external link through a plurality of virtual machines when the malicious code is not present in the malicious code DB, The access blocking device is requested to block the connection of the external link.

상기 접속차단장치는 상기 수집된 패킷을 복사하는 패킷 복사부; 상기 외부 링크가 상기 악성코드 DB에 존재하지 않음에도 상기 악성코드의 감염 위험이 있다고 판단되는 경우, 상기 외부 링크를 상기 악성코드 DB에 추가 등록하여 관리하는 악성코드 유포코드 수집 관리부; 및 상기 외부 링크의 접속 차단 요청을 받은 경우, 상기 복사된 패킷을 변형하여 상기 사용자 단말에게 전송하는 악성코드 유포코드 차단부를 포함한다.Wherein the access blocking device comprises: a packet copying unit for copying the collected packets; A malicious code distributed code collection management unit for additionally registering and managing the external link in the malicious code DB when it is determined that there is a risk of infecting the malicious code even though the external link does not exist in the malicious code DB; And a malicious code spreading code blocking unit for modifying the copied packet and transmitting the modified packet to the user terminal when a connection blocking request is received from the external link.

상기 패킷 수집분석장치는 상기 사용자 단말로부터 전송되는 패킷을 수집하는 패킷 수집부; 및 상기 수집된 패킷에 자바 스크립트로 표현된 콘텐츠가 있는지 분석하는 패킷 분석부를 포함한다.Wherein the packet collection and analysis apparatus comprises: a packet collection unit for collecting packets transmitted from the user terminal; And a packet analyzer for analyzing whether the collected packet includes content represented by JavaScript.

본 발명의 일 실시예에 따른 사용자 단말과 인터넷 사이에서 사용자 단말이 악성코드 유포 웹사이트로 접근하는 것을 차단하는악성코드 접근 시스템에서 악성코드 접근을 차단하는 방법은 상기 사용자 단말이 인터넷에 접속할 때 송수신되는 패킷을 수집하는 단계, 상기 패킷에 난독화된 자바 스크립트가 포함되어 있는지 분석하는 단계, 상기 패킷에 난독화된 자바 스크립트가 포함되어 있는 경우, 상기 난독화된 자바 스크립트를 실행하여 실행된 자바 스크립트로부터 호출되는 외부 링크에 악성코드 유포코드가 삽입되어 있는지 판단하는 단계, 상기 외부 링크에 상기 악성코드 유포코드가 삽입되어 있는 경우, 상기 외부링크에 접속할 수 없도록 상기 패킷을 변형하는 단계 및 상기 변형된 패킷을 상기 사용자 단말로 전송하여, 상기 사용자 단말이 상기 외부 링크에 접속하는 것을 차단하는 단계를 포함하되, 상기 패킷에 난독화된 자바 스크립트가 포함되어 있는지 분석하는 단계는 상기 난독화된 자바 스크립트를 실행하는 환경을 제공하는 단계, 상기 난독화된 자바 스크립트를 실행되는 자바 스크립트 오브젝트를 생성하는 단계, 상기 자바 스크립트 오브젝트의 생성 또는 변경을 탐지하는 단계 및 실행된 난독화된 자바 스크립트로부터 호출되는 외부 링크에서 상기 외부 링크가 상기 악성코드 유포코드를 삽입하고 있는지 판단하는 단계를 포함악성코드 접근 차단 방법은 상기 사용자 단말이 인터넷에 접속할 때 전송하는 패킷을 수집하는 단계; 상기 패킷에 자바 스크립트가 포함되어 있는지 분석하는 단계; 및 상기 패킷에 자바 스크립트가 포함되어 있는 경우, 상기 자바 스크립트가 호출하는 외부 링크에 악성코드 유포코드가 삽입되어 있는지 판단하는 단계를 포함한다.A method for blocking malicious code access in a malicious code access system that prevents a user terminal from accessing a malicious code distribution web site between a user terminal and the Internet according to an embodiment of the present invention includes: Analyzing whether the packet includes obfuscated JavaScript, if the packet includes obfuscated JavaScript, executing the obfuscated JavaScript, and executing the obfuscated JavaScript, Determining whether a malicious code distribution code is inserted in an external link that is called from the external link; modifying the packet so that the malicious code distribution code can not be connected to the external link when the malicious code distribution code is inserted in the external link; And transmits the packet to the user terminal, Blocking the access to the external link, wherein analyzing whether the packet includes obfuscated Javascript comprises: providing an environment for executing the obfuscated Javascript; Generating a JavaScript object to execute a script, detecting creation or modification of the JavaScript object, and inserting the malicious code distribution code into the external link from an external link called from the executed obfuscated Javascript The malicious code access blocking method comprising the steps of: collecting a packet transmitted when the user terminal accesses the Internet; Analyzing whether the packet includes JavaScript; And determining whether a malicious code distribution code is inserted in an external link called by the JavaScript if the packet includes JavaScript.

또한, 본 발명은 상기 악성코드 접근 차단 방법을 실행하는 컴퓨터 프로그램을 포함한다.The present invention also includes a computer program for executing the malicious code access blocking method.

기존의 기술로는 홈페이지 상의 html 콘텐츠의 난독화된 자바 스크립트 코드를 해석하지 못해 악성코드 유포코드의 탐지 및 차단의 정확도가 현저히 떨어졌다. 그러나 본 발명의 일 실시예에 따르면, 사용자 단말과 인터넷 사이에서 패킷을 복사하여 수집, 분석하는 것으로, 자바 스크립트로 난독화된 악성코드의 유포코드를 탐지할 수 있고, 사용자 단말이 악성코드의 유포 웹사이트로 접근 하는 것을 차단할 수 있다. 또한, 본 발명은 시스템 내부 메모리에서 자바 스크립트 엔진을 생성하여 자바 스크립트를 실행하고 있어, 사용자에게 사용자 단말의 시스템 사용에 대한 부담을 주지 않을 뿐만 아니라 감염을 완벽하게 차단할 수 있다. With the existing technology, the accuracy of detecting and intercepting malicious code is significantly reduced because the obfuscated JavaScript code of html contents on the homepage can not be interpreted. However, according to an embodiment of the present invention, it is possible to detect a distributed code of obfuscated malicious code by copying, collecting and analyzing a packet between a user terminal and the Internet, You can block access to websites. In addition, the present invention generates a JavaScript engine in a system internal memory and executes JavaScript, thereby not only imposing a burden on the user's use of the system, but also completely blocking the infection.

이로 인해 개인의 경우, 사용자는 서비스를 제공 받기 위해 방문한 웹사이트로부터의 악성코드 감염을 예방할 수 있다. 기업의 경우 조직 내에서 업무 중 방문하는 외부 악성코드 유포 사이트로부터의 감염을 예방할 수 있다. 즉, 인터넷 사용자는 악성코드로부터 안전하고 쾌적한 인터넷 환경을 제공받을 수 있다.As a result, in the case of an individual, a user can prevent infection of a malicious code from a visited website in order to receive the service. In the case of enterprise, it can prevent infection from external malicious code distribution site visited in the organization. That is, an Internet user can receive a safe and pleasant Internet environment from malicious code.

또한, 제로데이 공격에 따른 새로운 취약점 발견 시 백신 제조사에서 시그니쳐(침입 탐지 및 침입 방지 시스템 등의 정보 보호 솔루션에서, 해킹, 취약점, 바이러스 또는 유해 트래픽 등을 탐지 및 차단하기 위해 적용되는 정규화된 패턴을 의미)를 패치 하는데 평균 3~5주의 시간이 소요된다. 반면, 본 발명의 일 실시예에 따른 시스템을 이용할 경우, 악성코드를 유포하는 URI 탐지 수행을 통해서 제로데이 공격에 대응할 수 있다.In addition, when a new vulnerability is discovered due to zero-day attacks, the vaccine manufacturer can use a normalized pattern to detect and block hacking, vulnerabilities, viruses or harmful traffic in signatures (intrusion detection and intrusion prevention systems and other information protection solutions) Meaning) takes an average of 3-5 weeks to patch. On the other hand, when the system according to an embodiment of the present invention is used, a zero-day attack can be coped with by performing URI detection that distributes malicious code.

도 1은 본 발명의 일 실시예에 따른 악성코드 접근 차단 시스템을 설명하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 자바 스크립트 분석장치를 설명하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 접속차단장치를 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 악성코드 접근 차단 방법을 설명하는 도면이다.
도 5a 내지 도 5c는 본 발명의 일 실시예에 따른 자바 스크립트 오브젝트 모니터의 기능을 예시적으로 설명하는 도면이다.
1 is a view for explaining a malicious code access blocking system according to an embodiment of the present invention.
2 is a view for explaining a JavaScript analysis apparatus according to an embodiment of the present invention.
3 is a view for explaining an access breaker according to an embodiment of the present invention.
4 is a view for explaining a malicious code access blocking method according to an embodiment of the present invention.
FIGS. 5A through 5C illustrate functions of a JavaScript object monitor according to an exemplary embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.While the present invention has been described in connection with certain exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and similarities. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 하나 이상을 의미하는 것으로 해석되어야 한다.Furthermore, the singular terms used in this specification and the claims should generally be construed to mean one or more unless otherwise stated.

도 1은 본 발명의 일 실시예에 따른 악성코드 접근 차단 시스템을 설명하는 도면이다.1 is a view for explaining a malicious code access blocking system according to an embodiment of the present invention.

인터넷에는 악성코드를 유포하는 코드가 삽입된 웹 페이지가 다수 존재한다. 그러나 사용자 단말은 어떤 웹 페이지가 악성코드를 포함하고 있는지 알지 못하기 때문에, 다수의 웹 페이지들을 아무런 검사 없이 탐색할 수 있다. 따라서, 사용자 단말은 악성코드를 유포하는 코드가 삽입된 웹 페이지에 접속하는 것만으로도 악성코드를 다운받게 되고, 피해를 입게 된다. There are many web pages on the Internet with code that distributes malicious code. However, since the user terminal does not know which web page contains malicious code, it can search many web pages without any inspection. Therefore, even if the user terminal accesses the web page where the code for distributing the malicious code is inserted, the malicious code is downloaded and the user terminal is damaged.

악성코드 접근 차단 시스템(100)은 이러한 점을 방지하기 위한 시스템으로, 사용자 단말이 인터넷에 접속할 때 패킷을 수집하며, 수집된 패킷을 분석함으로써 악성코드를 유포하는 코드(이하, 악성코드 유포코드)가 삽입된 웹 페이지를 접속하는 것을 미연에 차단할 수 있다. 악성코드 접근 차단 시스템(100)은 패킷 수집분석장치(110), 자바 스크립트 분석장치(120), 접속차단장치(130) 및 악성코드 DB(140)를 포함한다.The malicious code access blocking system 100 is a system for preventing such a problem. The malicious code access blocking system 100 collects a packet when a user terminal accesses the Internet, analyzes a collected packet, and transmits a malicious code distribution code (hereinafter referred to as malicious code distribution code) It is possible to prevent connection of the inserted web page. The malicious code access blocking system 100 includes a packet acquisition and analysis apparatus 110, a JavaScript analysis apparatus 120, an access blocking apparatus 130 and a malicious code DB 140.

패킷 수집분석장치(110)는 사용자 단말로부터 수신한 패킷을 분석하여 난독화된 자바 스크립트가 포함되어 있는지 확인한다. 구체적으로, 패킷 수집분석장치(110)는 패킷 수집부(111) 및 패킷 분석부(112)를 포함한다.The packet collection and analysis apparatus 110 analyzes the packet received from the user terminal to check whether obfuscated JavaScript is included. Specifically, the packet collection and analysis apparatus 110 includes a packet collection unit 111 and a packet analysis unit 112.

패킷 수집부(111)는 사용자 단말이 인터넷을 접속할 때의 패킷(http, https)을 수집한다. 이때, 패킷 수집부(111)는 사용자가 모니터링 원하는 다수의 TCP 포트 패킷을 수집할 수 있다. The packet collecting unit 111 collects packets (http, https) when the user terminal connects to the Internet. At this time, the packet collecting unit 111 may collect a plurality of TCP port packets that the user wants to monitor.

패킷 수집부(111)는 인라인 모드(inline mode) 또는 스니핑 모드(sniffing mode)를 사용하여 패킷을 수집할 수 있다. 인라인 모드는 네트워크 방화벽 구성과 동일하게 모든 패킷이 네트워크 장비를 거쳐야만 목적지로 전송될 수 있도록 브릿지 형태로 네트워크가 구성된다. 이때, 네트워크 장비는 모든 패킷을 감시하여 패킷을 통과시킬지 거절할지 결정할 수 있다. 스니핑 모드는 네트워크 장비에서 단순히 패킷의 사본을 입수하도록 네트워크가 구성된다. 스니핑 모드의 경우 포트 미러링 또는 패킷 미러링이 이용될 수 있다.The packet collecting unit 111 may collect packets using an inline mode or a sniffing mode. The inline mode is configured as a bridge network so that all packets can be transmitted to the destination only after all the packets have passed through the network equipment. At this time, the network device can monitor all the packets and decide whether to pass the packets or not. The sniffing mode is configured in the network device to simply obtain a copy of the packet. For the sniffing mode, port mirroring or packet mirroring may be used.

또한, 패킷 수집부(111)는 웹 크롤러(web crawler)를 이용해 패킷을 수집할 수 있다. 웹 크롤러는 방문한 사이트의 웹 페이지를 복사할 수 있으며, 복사된 페이지를 빠른 검색을 위해 인덱싱(indexing)할 수 있다.In addition, the packet collecting unit 111 can collect packets using a web crawler. The web crawler can copy the web page of the visited site and index the copied page for quick search.

패킷 분석부(112)는 패킷 수집부(111)로부터 수집한 패킷을 분석한다. 일반적으로 전송되는 패킷은 html 콘텐츠(예를 들어, 문서)를 포함하고 있기 때문에, html 콘텐츠를 기준으로 설명한다. 구체적으로, 패킷 분석부(112)는 html 콘텐츠 중 자바 스크립트가 포함되어 있는지 분석한다. 이때, 패킷 분석부(112)는 html 콘텐츠를 파싱(parsing)할 수 있다.The packet analyzing unit 112 analyzes the packet collected from the packet collecting unit 111. Generally, since a packet to be transmitted includes html content (for example, a document), it is described based on html content. Specifically, the packet analyzing unit 112 analyzes JavaScript content included in the html contents. At this time, the packet analyzing unit 112 can parse the html contents.

분석 결과 html 콘텐츠 중 난독화된 자바 스크립트가 포함되어 있다면, 패킷 분석부(112)는 자바 스크립트 분석장치(120)로 자바 스크립트 엔진을 생성을 요청한다.If the obfuscated JavaScript is included in the html content, the packet analyzer 112 requests the JavaScript analyzer 120 to generate a JavaScript engine.

자바 스크립트 분석장치(120)는 html 콘텐츠 내에 포함되어 있는 난독화된 자바 스크립트를 실행하여, html 콘텐츠가 악성코드 유포코드를 포함하고 있는지 판단한다.The JavaScript analysis apparatus 120 executes the obfuscated Javascript included in the html content to determine whether the html content includes a malicious code distribution code.

구체적으로, html 콘텐츠 중 난독화된 자바 스크립트가 포함되어 있다면 자바 스크립트 분석장치(120)는 자바 스크립트 엔진을 통해 포함된 자바 스크립트를 실행한다. 이후, 자바 스크립트 분석장치(120)는 실행된 자바 스크립트로부터 호출되는 URI를 탐지해 악성코드 유포코드가 삽입되어 있는지 판단할 수 있다. 호출되는 URI에 악성코드 유포코드가 삽입된 것으로 판단되면, 자바 스크립트 분석장치(120)는 접속차단장치(130)에게 html 콘텐츠에 대한 정보를 전송하여, 사용자 단말의 접속을 차단할 수 있도록 한다. 자바 스크립트 분석장치(120)에 대해서는 이하 도 2에서 자세히 설명하도록 한다.Specifically, if the obfuscated JavaScript is included in the html content, the JavaScript analysis apparatus 120 executes the embedded JavaScript through the JavaScript engine. Thereafter, the JavaScript analysis apparatus 120 can detect a URI called from the executed JavaScript to determine whether a malicious code distribution code is inserted. If it is determined that the malicious code distribution code is inserted into the called URI, the JavaScript analysis apparatus 120 transmits information about the html content to the access blocking apparatus 130 so that the connection to the user terminal can be blocked. The JavaScript analysis apparatus 120 will be described in detail with reference to FIG.

html 콘텐츠에 악성코드 유포코드가 삽입된 것으로 판단되면, 접속차단장치(130)는 사용자 단말이 악성코드 유포코드가 삽입된 웹 페이지에 접속하는 것을 차단한다. 접속차단장치(130)에 대해서는 이하 도 3에서 자세히 설명하도록 한다.If it is determined that the malicious code distribution code is inserted into the html content, the access blocking device 130 blocks the user terminal from accessing the web page in which the malicious code distribution code is inserted. The connection blocking device 130 will be described later in detail with reference to FIG.

악성코드 DB(140)는 악성코드 및 악성코드 유포코드에 대한 목록을 포함한다.The malicious code DB 140 includes a list of malicious codes and malicious code distributed codes.

패킷 수집분석장치(110), 자바 스크립트 분석장치(120) 및 접속차단장치(130)는 하나의 시스템 내에서 수행될 수 있을 뿐 아니라 각각 다른 외부 시스템에서 수행될 수 있다. 예를 들어, 자바 스크립트 분석장치(120)의 경우 복수의 가상 머신(Virtual Machine)을 운영해야 하는 부담이 있기 때문에 접속차단장치(130)와 분리되어 다른 시스템에서 수행될 수 있다.The packet collection analyzing device 110, the JavaScript analyzing device 120, and the access blocking device 130 can be performed in one system as well as in different external systems. For example, since the JavaScript analysis apparatus 120 has a burden of operating a plurality of virtual machines, the JavaScript analysis apparatus 120 can be separated from the access blocking apparatus 130 and executed in another system.

도 2는 본 발명의 일 실시예에 따른 자바 스크립트 분석장치를 설명하는 도면이다.2 is a view for explaining a JavaScript analysis apparatus according to an embodiment of the present invention.

도 2를 참조하면, 자바 스크립트 분석장치(200)는 자바 스크립트 엔진 생성부(210), 자바 스크립트 오브젝트 생성부(220), 자바 스크립트 오브젝트 모니터 등록부(230) 및 자바 스크립트 오브젝트 모니터(240)를 포함한다.2, the JavaScript analyzing apparatus 200 includes a JavaScript engine generating unit 210, a JavaScript object generating unit 220, a JavaScript object monitor registering unit 230, and a JavaScript object monitor 240 do.

자바 스크립트 엔진 생성부(210)는 악성코드 접근 차단 시스템 내부 메모리에 자바 스크립트 엔진(215)을 생성한다. 자바 스크립트 엔진(215)은 자바 스크립트가 실행될 수 있는 환경을 제공할 수 있고, 자바 스크립트를 실행할 수 있다.The JavaScript engine creation unit 210 creates the JavaScript engine 215 in the internal memory of the malicious code access blocking system. The JavaScript engine 215 may provide an environment in which JavaScript may be executed and may execute JavaScript.

자바 스크립트 오브젝트 생성부(220)는 자바 스크립트 DOM(Document Object Model, 문서 객체 모델) 및 자바 스크립트 BOM(Browser Object Model, 브라우저 객체 모델) 등 자바 스크립트가 실행될 수 있는 오브젝트들을 생성한다.The JavaScript object generating unit 220 generates objects in which JavaScript can be executed, such as a Javascript DOM (document object model) and a JavaScript BOM (browser object model).

자바 스크립트 오브젝트 생성부(220)를 통해 자바 스크립트 오브젝트가 생성되면, 자바 스크립트 엔진(215)은 자바 스크립트 오브젝트로부터 html 콘텐츠 내부에 존재하는 난독화된 자바 스크립트 코드를 실행할 수 있다. 또한, 자바 스크립트 엔진(215)은 실행된 자바 스크립트로부터 호출되는 URI를 추출할 수 있다.When the JavaScript object is generated through the JavaScript object creation unit 220, the JavaScript engine 215 can execute obfuscated JavaScript code existing in the html content from the JavaScript object. In addition, the JavaScript engine 215 can extract a URI called from the executed JavaScript.

자바 스크립트 오브젝트 모니터 생성부(230)는 자바 스크립트 오브젝트 모니터(240)를 생성한다. 생성된 자바 스크립트 오브젝트 모니터(240)는 자바 스크립트 엔진(215)을 통해 자바 스크립트 분석장치(200)에 등록될 수 있다.The JavaScript object monitor generation unit 230 generates the JavaScript object monitor 240. The generated JavaScript object monitor 240 can be registered in the JavaScript analysis apparatus 200 via the JavaScript engine 215.

자바 스크립트 오브젝트 모니터(240)는 자바 스크립트 오브젝트 탐지모듈(241) 및 자바 스크립트 오브젝트 판단모듈(242)을 포함한다. The JavaScript object monitor 240 includes a JavaScript object detection module 241 and a JavaScript object determination module 242.

자바 스크립트 오브젝트 모니터(240)는 수집되는 패킷으로부터 html 콘텐츠를 실시간으로 모니터링할 수 있다. 특히, 자바 스크립트 오브젝트 모니터(240)는 자바 스크립트 오브젝트의 생성 또는 변경을 실시간으로 모니터링할 수 있다.The JavaScript object monitor 240 can monitor the html content in real time from the packets being collected. In particular, the JavaScript object monitor 240 can monitor creation or modification of JavaScript objects in real time.

자바 스크립트 오브젝트 탐지모듈(241)은 자바 스크립트 엔진(225)을 통해 실행된 난독화된 자바 스크립트로부터 생성되는 html 콘텐츠를 탐지한다. 자바 스크립트 오브젝트 탐지모듈(241)은 html 콘텐츠 중 외부 자원을 링크시키는 태그(tag)들이 존재하는지 탐지할 수 있다. 외부 자원을 링크시키는 태그는 a tag, img tag, link tag, Iframe tag, Embed tag, object tag 및 script tag 등 다수 존재하며, 앞으로 개발되는 html 태그가 추가될 수 있다.The JavaScript object detection module 241 detects html content generated from the obfuscated JavaScript executed via the JavaScript engine 225. The JavaScript object detection module 241 can detect whether there are tags that link external resources among html contents. There are many tags such as a tag, img tag, link tag, Iframe tag, Embed tag, object tag, and script tag that link external resources, and html tags developed in the future can be added.

예를 들어, 자바 스크립트 오브젝트 탐지모듈(241)은 생성 또는 변경되는 콘텐츠 내에서 외부 자원을 호출(including)하는 html 태그의 src 속성이 존재하는지 여부를 탐지할 수 있다. 여기서, src 속성은 embed tag로 사용할 자원의 위치를 지정하기 위한 HTML 언어로, 외부 자원을 링크시키는 태그로 사용될 수 있다.For example, the JavaScript object detection module 241 may detect whether the src attribute of the html tag, including external resources, is present in the content being created or changed. Here, the src attribute is an HTML language for specifying the location of a resource to be used as an embed tag, and can be used as a tag for linking an external resource.

src 속성이 존재한다면, 자바 스크립트 오브젝트 판단모듈(242)은 src 속성에 존재하는 URI가 악성코드 DB에 존재하는지 판단한다. 여기서 URI(Uniform Resource Identifier)는 인터넷에 있는 모든 자원을 나타내는 식별자로, URI의 존재는 인터넷을 사용하기 위해 요구되는 기본 조건으로서 인터넷 프로토콜에 항상 붙어 다닌다. URI는 URL(Uniform Resource Locator) 및 URN(Uniform Resource Name)을 포함한다. If the src attribute exists, the JavaScript object determination module 242 determines whether the URI existing in the src attribute exists in the malicious code DB. The Uniform Resource Identifier (URI) is an identifier that identifies all the resources on the Internet. The existence of a URI is always attached to the Internet protocol as a basic condition required to use the Internet. The URI includes a URL (Uniform Resource Locator) and a URN (Uniform Resource Name).

URI가 악성코드 DB에 존재한다면, html 컨텐츠는 악성코드 유포코드가 삽입된 것으로 판단되어, 자바 스크립트 오브젝트 판단모듈(242)은 접속차단장치로 html 콘텐츠에 대한 정보를 전송한다. If the URI exists in the malicious code DB, it is determined that the malicious code distribution code is inserted in the html content, and the JavaScript object determination module 242 transmits information on the html content to the access blocking device.

URI가 악성코드 DB에 존재하지 않는다면, 자바 스크립트 오브젝트 판단모듈(242)은 가상 머신을 활용하여 삽입된 URI를 동적 분석한다. 이를 위해, 자바 스크립트 오브젝트 판단모듈(242)은 하나 이상의 가상 머신을 실행시켜 다수의 URI를 실행할 수 있다. 자바 스크립트 오브젝트 판단모듈(242)은 가상 머신 내의 프로그램을 이용하여 URI를 방문함으로써, 어떤 행위를 하는지 판단할 수 있다. 여기서 악성코드를 다운받는 행위를 한다면, 자바 스크립트 오브젝트 판단모듈(242)은 접속차단장치로 상기 URI 및 html 콘텐츠에 대한 정보를 전송한다. If the URI does not exist in the malicious code DB, the JavaScript object determination module 242 uses the virtual machine to dynamically analyze the inserted URI. To this end, the JavaScript object determination module 242 may execute one or more virtual machines to execute a plurality of URIs. The JavaScript object judging module 242 can judge which action is performed by visiting the URI using the program in the virtual machine. If the malicious code is downloaded, the JavaScript object determination module 242 transmits information about the URI and html contents to the access blocking device.

또한, 자바 스크립트 오브젝트 판단모듈(242)는 가상 머신을 통해 추출된 URI를 실행시켜 DBD(Drive By Downloads)가 발생하는지 검사할 수 있다. DBD가 발생된다면, 자바 스크립트 오브젝트 판단모듈(242)는 악성코드 유포코드가 삽입된 것으로 판단하고, 접속차단장치로 URI 및 html 콘텐츠 정보를 전송한다. 여기서 DBD는 이미 알려진 보안 취약점을 이용하여 불특정 다수에게 악성코드를 유포하는 방법으로, 사용자 자신도 모르게 다운로드 되어 실행되는 악성코드이다. DBD에 의해 사용자가 웹 페이지를 접속하는 것 만으로도 악성코드에 감염될 수 있다.In addition, the JavaScript object determination module 242 can execute a URI extracted through a virtual machine to check whether a DBD (Drive By Downloads) occurs. If the DBD is generated, the JavaScript object determination module 242 determines that the malicious code distribution code is inserted, and transmits the URI and html content information to the access blocking device. Here, DBD is a malicious code that is downloaded and executed without the user's knowledge, by distributing malicious code to an unspecified number of users by using a known security vulnerability. A user accessing a web page by a DBD can be infected with malicious code.

이때, 자바 스크립트 오브젝트 판단모듈(242)은 시스템 외부의 악성코드 DB 또는 하나 이상의 백신과 연동하여 추출된 URI가 악성코드 유포코드를 포함하고 있는지 판단할 수 있다.At this time, the JavaScript object determination module 242 can determine whether the URI extracted in conjunction with the malicious code DB or one or more vaccines outside the system contains malicious code distribution code.

도 3은 본 발명의 일 실시예에 따른 접속차단장치를 설명하는 도면이다.3 is a view for explaining an access breaker according to an embodiment of the present invention.

도 3을 참조하면, 접속차단장치(300)는 패킷 복사부(310), 악성코드 유포코드 수집 관리부(320) 및 악성코드 유포코드 차단부(330)를 포함한다.3, the access blocking device 300 includes a packet copying unit 310, a malicious code distribution code collection management unit 320, and a malicious code distribution code blocking unit 330.

패킷 복사부(310)는 패킷 수집부가 수집한 패킷을 복사한다. 이후, 복사된 패킷은 악성코드 유포코드 차단부(330)에 의해 웹 페이지로의 접속을 차단하는 정보가 포함되어 사용자 단말에게 전송될 수 있다.The packet copying unit 310 copies the packet collected by the packet collecting unit. Thereafter, the copied packet may be transmitted to the user terminal by including information for blocking access to the web page by the malicious code distributed code blocking unit 330.

악성코드 유포코드 수집 관리부(320)는 악성코드 유포코드를 포함하는 URI에 대한 수집이 가능하다. 구체적으로 자바 스크립트 오브젝트 판단모듈이 악성코드 DB에 없는 URI임에도 불구하고, 가상 머신을 통해 URI가 악성코드 유포코드를 포함하고 있다고 판단한 경우, 악성코드 유포코드 수집 관리부(320)는 상기 URI를 악성코드 DB에 저장할 수 있다.The malicious code distributed code collection management unit 320 can collect the URI including the malicious code distributed code. Specifically, when the JavaScript object determination module determines that the URI includes a malicious code distribution code through the virtual machine despite the fact that the JavaScript object determination module is not a URI in the malicious code DB, the malicious code distribution code collection management unit 320 transmits the URI to the malicious code It can be saved in DB.

악성코드 유포코드 차단부(330)는 사용자 단말이 악성코드 유포코드가 포함된 URI로 접속하는 것을 차단한다. 구체적으로 자바 스크립트 모니터를 통해, URI가 악성코드 유포코드를 포함하고 있다고 판단한 경우, 악성코드 유포코드 차단부(330)는 복사한 패킷을 URI에 접속할 수 없도록 변형하여 사용자 단말에게 전송할 수 있다. 예를 들어, html 콘텐츠 내부의 소스 코드를 변형하여 접속이 불가한 오류 페이지로 바꿔 사용자 단말에게 전송할 수 있다. 이때, 악성코드 유포코드 차단부(330)는 사용자 단말에게 접속하려는 웹 페이지가 악성코드 유포코드를 포함하고 있기 때문에 접속이 차단된다는 메시지를 함께 전송할 수 있다.The malicious code distribution code blocking unit 330 blocks the user terminal from accessing the URI including the malicious code distribution code. Specifically, when it is determined through the JavaScript monitor that the URI includes a malicious code distribution code, the malicious code distribution code blocking unit 330 can modify the copied packet so that it can not access the URI, and transmit the modified packet to the user terminal. For example, the source code in the html content can be transformed into an error page that can not be accessed and transmitted to the user terminal. At this time, the malicious code distribution code blocking unit 330 may transmit a message that the connection is blocked because the web page to be connected to the user terminal contains malicious code distribution code.

도 4는 본 발명의 일 실시예에 따른 악성코드 접근 차단 방법을 설명하는 도면이다.4 is a view for explaining a malicious code access blocking method according to an embodiment of the present invention.

도 4를 참조하면, 단계(S400)에서 패킷 수집부는 사용자 단말로부터 패킷을 수집한다. 패킷은 일반적으로 사용자 단말인 클라이언트가 HTTP 또는 HTTPS 서버에 통신을 요청(request)하고, 서버가 클라이언트에 응답(response)하는 과정에서 나타나는 명령어를 전송할 수 있는 데이터의 집합이다. 이후, 패킷 분석부는 수집된 패킷이 자바 스크립트를 포함하고 있는지 분석한다. 또한, 패킷 분석부는 패킷 내에 포함되어 있는 html 콘텐츠를 파싱하여 난독화된 자바 스크립트를 포함하고 있는지 분석할 수 있다.Referring to FIG. 4, in step S400, the packet collecting unit collects packets from the user terminal. A packet is a set of data that a client, which is a user terminal, can request a communication to an HTTP or HTTPS server and transmit a command that appears in the process of the server responding to the client. Thereafter, the packet analyzer analyzes whether the collected packet includes JavaScript. In addition, the packet analyzing unit can parse the html contents contained in the packet to analyze whether it contains obfuscated JavaScript.

html 콘텐츠에 난독화된 자바 스크립트가 포함되어 있다면, 단계(S405)에서 자바 스크립트 엔진이 생성된다. 자바 스크립트 엔진은 난독화된 자바 스크립트를 실행하는 프로그램으로, 자바 스크립트가 실행될 수 있는 환경을 제공한다. 또한 자바 스크립트 엔진은 악성코드 접근 차단 시스템의 내부 메모리에 생성되기 때문에, 사용자 단말 또는 외부 서버의 영향을 받지 않을 수 있다.If the html content includes obfuscated JavaScript, a JavaScript engine is created in step S405. The JavaScript engine is a program that runs obfuscated JavaScript and provides an environment in which JavaScript can be executed. Also, since the JavaScript engine is created in the internal memory of the malicious code access blocking system, it may not be affected by the user terminal or the external server.

단계(S410)에서 자바 스크립트 오브젝트를 생성한다. 자바 스크립트 오브젝트는 자바 스크립트 DOM 및 자바 스크립트 BOM 등 자바 스크립트가 실행될 수 있는 오브젝트이다. 자바 스크립트는 오브젝트(Object, 객체)를 기반으로 실행되는 스크립트(script) 언어이기 때문에 기본적인 자바 스크립트 오브젝트는 자바 스크립트 코드를 실행하기 위해 필수적으로 존재해야 한다.In step S410, a JavaScript object is created. A JavaScript object is an object from which JavaScript can be executed, such as a JavaScript DOM and a JavaScript BOM. Because JavaScript is a scripting language that is based on objects (objects), a basic JavaScript object must exist to execute JavaScript code.

단계(S415)에서 자바 스크립트 오브젝트 모니터를 생성한다. A JavaScript object monitor is created in step S415.

단계(S420)에서 자바 스크립트 오브젝트 모니터는 실행되는 자바 스크립트로부터 자바 스크립트 오브젝트의 생성 또는 변경 여부를 모니터링한다. In step S420, the JavaScript object monitor monitors whether the JavaScript object is created or changed from the JavaScript being executed.

자바 스크립트 오브젝트 모니터를 통해 자바 스크립트 오브젝트의 생성 또는 변경이 탐지되면 단계(S425)에서, 자바 스크립트 오브젝트 탐지모듈은 실행된 난독화된 자바 스크립트로부터 생성되는 html 콘텐츠를 분석한다. 이후, 자바 스크립트 오브젝트 탐지모듈은 html 콘텐츠 중 외부 자원의 호출 여부를 탐지한다.If the creation or modification of the JavaScript object is detected through the JavaScript object monitor, the JavaScript object detection module analyzes the html content generated from the executed obfuscated JavaScript in step S425. Then, the JavaScript object detection module detects whether external resources are invoked among the html contents.

외부 자원을 호출하는 것으로 탐지된다면 단계(S430)에서, 자바 스크립트 오브젝트 판단모듈은 호출되는 외부 자원, 즉 URI가 악성코드 DB에 존재하는지 판단한다.If it is detected that the external resource is called, the JavaScript object determination module determines in step S430 whether the external resource to be called, that is, the URI exists in the malicious code DB.

URI가 악성코드 DB에 존재한다면 단계(S435)에서, 자바 스크립트 오브젝트 판단모듈은 접속차단장치에게 사용자 단말이 상기 html 콘텐츠를 이용하지 못하도록 접속을 차단할 것을 요청한다.If the URI exists in the malicious code DB, in step S435, the JavaScript object determination module requests the access blocking device to block the connection so that the user terminal can not use the html content.

URI가 악성코드 DB에 존재하지 않는다면 단계(S440)에서, 자바 스크립트 오브젝트 판단모듈은 가상 머신을 이용해 URI를 실행할 수 있다. 자바 스크립트 오브젝트 판단모듈은 가상 머신 내의 프로그램을 이용하여 URI를 방문하며, 어떤 행위를 하는지 분석할 수 있다.If the URI does not exist in the malicious code DB, in step S440, the JavaScript object determination module can execute the URI using the virtual machine. The JavaScript Object Decision Module visits a URI using a program in the virtual machine and can analyze what it does.

단계(S445)에서, 자바 스크립트 오브젝트 판단모듈은 가상 머신에서 실행되는 URI에서 악성코드 감염 위험이 발생하는지 판단할 수 있다. 예를 들어, 자바 스크립트 오브젝트 판단모듈은 URI를 실행할 때 DBD가 발생하는지 검사할 수 있다.In step S445, the JavaScript object determination module may determine whether a risk of malicious code infection occurs in the URI executed in the virtual machine. For example, a JavaScript object decision module can check if a DBD occurs when executing a URI.

URI가 악성코드 감염 위험이 있는 것으로 판단된다면, 단계(S450)에서 자바 스크립트 오브젝트 모니터는 URI 및 html 콘텐츠 정보를 접속차단장치에게 전송한다. 이후, 접속차단장치는 URI를 악성코드 DB에 추가 등록하며 사용자 단말이 상기 URI로 접속하는 것을 차단한다.If it is determined that there is a risk of malicious code infection, the JavaScript object monitor transmits URI and html content information to the access blocking device in step S450. Thereafter, the access blocking device additionally registers the URI in the malicious code DB and blocks the user terminal from accessing the URI.

도 5a 내지 도 5c는 본 발명의 일 실시예에 따른 자바 스크립트 오브젝트 모니터의 기능을 예시적으로 설명하는 도면이다.FIGS. 5A through 5C illustrate functions of a JavaScript object monitor according to an exemplary embodiment of the present invention.

도 5a는 자바 스크립트 DOM이 생성된 상태에서, 자바 스크립트 오브젝트 모니터가 외부 링크의 변경을 탐지하는 예시를 설명하는 도면이다.FIG. 5A is a diagram illustrating an example in which a JavaScript object monitor detects a change in an external link in a state where a JavaScript DOM is generated. FIG.

도 5a와 같은 html 문서가 패킷에 포함되어 사용자 단말로부터 전송된다면, 악성코드 접근 차단 시스템은 패킷 수집분석장치를 통해 상기 html 문서를 수집한다. html 문서에 난독화된 자바 스크립트가 포함된 것으로 판단된다면, 패킷 수집분석장치는 자바 스크립트 분석장치로 난독화된 자바 스크립트의 분석을 요청한다. 이후, 자바 스크립트 분석장치는 자바 스크립트 엔진 및 자바 스크립트 DOM을 생성한다. 자바 스크립트 오브젝트 모니터는 자바 스크립트 DOM의 생성을 탐지해, 악성코드 감염 위험 여부가 있을지 판단한다. If the html document as shown in FIG. 5A is included in the packet and is transmitted from the user terminal, the malicious code access blocking system collects the html document through the packet collection and analysis apparatus. If it is determined that the html document contains obfuscated JavaScript, the packet acquisition and analysis device requests analysis of the obfuscated JavaScript with the JavaScript analysis device. The JavaScript parser then generates the JavaScript engine and JavaScript DOM. The JavaScript Object Monitor detects the creation of a JavaScript DOM and determines if there is a risk of malware infection.

구체적으로 단계(S500)에서, 자바 스크립트 오브젝트 탐지모듈은 src 속성을 이용해 http://www.w3schools.com(이하, 제 1 URI)을 호출되는 것이 탐지된다. 이에 따라, 자바 스크립트 오브젝트 판단모듈은 제 1 URI가 악성코드 DB에 존재하는 URI인지 판단할 수 있다. Specifically, in step S500, the JavaScript object detection module is detected to be invoked at http://www.w3schools.com ( hereinafter, the first URI) using the src attribute. Accordingly, the JavaScript object determination module can determine whether the first URI is a URI existing in the malicious code DB.

뿐만 아니라, 단계(S510)에서 자바 스크립트 오브젝트 탐지모듈은 src 속성이 외부 링크인 http://www.malware.com/mal.html(이하, 제 2 URI)을 호출하는 것을 탐지할 수 있다. 즉, 자바 스크립트 오브젝트 탐지 모듈은 단계(S510)이 수행되면, 단계(S500)에서 호출한 제 1 URI가 제 2 URI로 변경되는 것을 탐지할 수 있다. 따라서, 자바 스크립트 오브젝트 판단모듈은 제 2 URI가 악성코드 DB에 존재하는지 판단할 수 있다. In addition, in step S510, the JavaScript object detection module may detect that the src attribute calls the external link http://www.malware.com/mal.html ( hereinafter, the second URI). That is, when the step S510 is performed, the JavaScript object detection module may detect that the first URI called in step S500 is changed to the second URI. Accordingly, the JavaScript object determination module can determine whether the second URI exists in the malicious code DB.

이후, 제 1 URI 또는 제 2 URI가 악성코드 DB에 포함되어 있거나, 포함되어 있지 않더라도 가상 머신을 통해 악성코드 감염 위험이 있는 URI일 경우, 접속차단장치는 사용자 단말이 상기 URI에 접속하는 것을 차단할 수 있다.Thereafter, if the first URI or the second URI is included in the malicious code DB or is not included in the malicious code DB, the access blocking device blocks the user terminal from accessing the URI .

도 5b는 자바 스크립트 DOM이 생성된 상태에서, 자바 스크립트 오브젝트 모니터가 src 속성의 외부 링크 탐지를 수행하는 예시를 설명하는 도면이다. 도 5a와 동일한 점은 생략하고 차이점을 위주로 설명한다.5B is a view for explaining an example in which a JavaScript object monitor performs an external link detection of a src attribute in a state where a JavaScript DOM is generated. The same points as those in FIG. 5A will be omitted and differences will be mainly described.

자바 스크립트 분석장치는 자바 스크립트 엔진 및 자바 스크립트 DOM을 생성함으로써 단계(S520)을 수행할 수 있다. 자바 스크립트 오브젝트 모니터는 자바 스크립트 DOM의 생성을 탐지하면서, 단계(S520)의 수행으로 자바 스크립트인 Iframe 태그가 생성되는 것을 탐지할 수 있다. 특히, 자바 스크립트 오브젝트 탐지모듈은 생성된 태그 내의 src 속성의 생성을 탐지할 수 있다. src 속성의 생성이 탐지되면, 자바 스크립트 오브젝트 판단모듈은 src 속성이 호출하는 URI가 악성코드를 유포하는 코드를 삽입하고 있는지 판단할 수 있다.The JavaScript analysis apparatus can perform step S520 by generating a JavaScript engine and a JavaScript DOM. The JavaScript object monitor can detect that the JavaScript script Iframe tag is generated by performing the step S520 while detecting the creation of the JavaScript DOM. In particular, the JavaScript object detection module can detect the creation of the src attribute in the generated tag. If the creation of the src attribute is detected, the JavaScript object decision module can determine if the URI that the src attribute invokes is inserting code that propagates the malicious code.

도 5c는 자바 스크립트 BOM이 생성된 상태에서, 자바 스크립트 오브젝트 모니터가 location 속성의 외부 링크 탐지를 수행하는 예시를 설명하는 도면이다. 도 5a와 동일한 점은 생략하고 차이점을 위주로 설명한다.5C is a view for explaining an example in which a JavaScript object monitor performs an external link detection of a location attribute in a state where a JavaScript BOM is generated. The same points as those in FIG. 5A will be omitted and differences will be mainly described.

자바 스크립트 오브젝트 모니터는 자바 스크립트 BOM의 생성 또는 변경을 탐지할 수 있다. 이에 따라, 자바 스크립트 오브젝트 모니터는 자바 스크립트 BOM의 변경을 탐지하면서, 단계(S530)의 수행으로 location 속성의 변경을 탐지할 수 있다. location 속성의 변경이 탐지되면, 자바 스크립트 오브젝트 판단모듈은 location 속성이 호출하는 URI가 악성코드를 유포하는 코드를 삽입하고 있는지 판단할 수 있다.The JavaScript object monitor can detect the creation or modification of a JavaScript BOM. Accordingly, the JavaScript object monitor can detect the change of the location property by performing the step S530 while detecting the change of the JavaScript BOM. If a change in the location attribute is detected, the JavaScript object decision module can determine if the URI that the location attribute invokes is inserting code that propagates the malicious code.

본 발명의 전술한 실시예에 따른 장치 및 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. The apparatus and method according to the above-described embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination.

컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Program instructions to be recorded on a computer-readable medium may be those specially designed and constructed for the present invention or may be available to those skilled in the computer software arts. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Includes hardware devices specifically configured to store and execute program instructions such as magneto-optical media and ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.

상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described with reference to the preferred embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

100: 악성코드 접근 차단 시스템
110: 패킷수집분석장치
120: 자바 스크립트 분석장치
130: 접속차단장치
140: 악성코드 DB
100: malicious code access blocking system
110: Packet collection analyzer
120: JavaScript analysis device
130:
140: Malicious Code DB

Claims (14)

사용자 단말과 인터넷 사이에서 사용자 단말이 악성코드 유포 웹사이트로 접근하는 것을 차단하는 악성코드 접근 시스템에 있어서,
사용자 단말이 인터넷에 접속할 때 송수신되는 패킷을 수집하고 분석하는 패킷 수집분석장치; 및
상기 패킷에 난독화된 자바 스크립트가 포함되어 있는 경우, 상기 난독화된 자바 스크립트를 실행하여 실행된 자바 스크립트로부터 호출되는 외부 링크에 악성코드 유포코드가 삽입되어 있는지 판단하는 자바 스크립트 분석장치를 포함하되,
상기 자바 스크립트 분석장치는
상기 난독화된 자바 스크립트를 실행하는 자바 스크립트 엔진을 생성하는 자바 스크립트 엔진 생성부;
상기 난독화된 자바 스크립트가 실행되는 자바 스크립트 오브젝트를 생성하는 자바 스크립트 오브젝트 생성부; 및
상기 자바 스크립트 오브젝트의 생성 또는 변경에 따라, 실행된 난독화된 자바 스크립트로부터 호출되는 외부 링크에 악성코드 유포코드를 삽입하고 있는지 판단하는 자바 스크립트 오브젝트 모니터를 생성하는 자바 스크립트 오브젝트 모니터 생성부를 포함하되,
상기 외부 링크에 악성코드 유포코드가 삽입되어 있는 경우, 상기 외부링크에 접속할 수 없도록 상기 패킷을 변형하여 상기 사용자 단말에게 전송함으로써 상기 사용자 단말이 상기 외부 링크에 접속하는 것을 차단하는 접속차단장치를 더 포함하는 악성코드 접근 차단 시스템.
A malicious code access system for blocking a user terminal from accessing a malicious code distribution web site between a user terminal and the Internet,
A packet collection and analysis apparatus for collecting and analyzing packets transmitted and received when a user terminal accesses the Internet; And
And a JavaScript analyzer for determining whether a malicious code distribution code is inserted in an external link called from the JavaScript executed by executing the obfuscated JavaScript if the packet includes obfuscated JavaScript, ,
The JavaScript analysis device
A JavaScript engine generating unit for generating a JavaScript engine for executing the obfuscated JavaScript;
A JavaScript object generation unit for generating a JavaScript object in which the obfuscated JavaScript is executed; And
And a JavaScript object monitor generating unit for generating a JavaScript object monitor for determining whether a malicious code distribution code is inserted into an external link called from the executed obfuscated JavaScript according to creation or modification of the JavaScript object,
And an access blocking device for blocking the user terminal from accessing the external link by transmitting the modified packet to the user terminal so that the malicious code is inserted into the external link, Includes malicious code access blocking system.
삭제delete 삭제delete 제1항에 있어서,
상기 자바 스크립트 오브젝트 모니터는,
상기 자바 스크립트 오브젝트의 생성 또는 변경을 탐지하며, 상기 자바 스크립트 오브젝트의 생성 또는 변경이 탐지되면, 외부 링크의 호출 여부를 탐지하는 자바 스크립트 오브젝트 탐지모듈; 및
상기 외부 링크가 호출되면, 상기 외부 링크가 상기 악성코드 유포코드를 삽입하고 있는지 판단하는 자바 스크립트 오브젝트 판단모듈을 포함하는 악성코드 접근 차단 시스템.
The method according to claim 1,
Wherein the JavaScript object monitor comprises:
A JavaScript object detection module that detects creation or modification of the JavaScript object and detects whether an external link is invoked if generation or modification of the JavaScript object is detected; And
And a JavaScript object determination module for determining whether the external link is inserting the malicious code distribution code when the external link is called.
제4항에 있어서,
상기 자바 스크립트 오브젝트 판단모듈은,
상기 외부 링크를 악성코드 DB에서 검색하여,
상기 외부 링크가 악성코드 DB에 존재하는 경우, 상기 접속차단장치에게 외부 링크의 접속을 차단하도록 요청하며,
상기 외부 링크가 악성코드 DB에 존재하지 않는 경우, 복수의 가상 머신을 통해 상기 외부 링크를 실행시켜 동작을 확인함으로써 상기 악성코드 감염 위험 여부를 판단하며, 상기 악성코드의 감염 위험이 있다고 판단되는 경우, 상기 접속차단장치에게 상기 외부 링크의 접속을 차단하도록 요청하는 악성코드 접근 차단 시스템.
5. The method of claim 4,
Wherein the JavaScript object determination module comprises:
Searches the malicious code DB for the external link,
If the external link is present in the malicious code DB, requesting the connection blocking device to block the connection of the external link,
If the external link does not exist in the malicious code DB, the external link is executed through a plurality of virtual machines to check the operation to determine whether the malicious code is infected. If it is determined that there is a risk of infection of the malicious code And requests the connection blocking device to block the connection of the external link.
제5항에 있어서,
상기 접속차단장치는
상기 수집된 패킷을 복사하는 패킷 복사부;
상기 외부 링크가 상기 악성코드 DB에 존재하지 않음에도 상기 악성코드의 감염 위험이 있다고 판단되는 경우, 상기 외부 링크를 상기 악성코드 DB에 추가 등록하여 관리하는 악성코드 유포코드 수집 관리부; 및
상기 외부 링크의 접속 차단 요청을 받은 경우, 상기 복사된 패킷을 변형하여 상기 사용자 단말에게 전송하는 악성코드 유포코드 차단부를 포함하는 악성코드 접근 차단 시스템.
6. The method of claim 5,
The connection blocking device
A packet copying unit for copying the collected packets;
A malicious code distributed code collection management unit for additionally registering and managing the external link in the malicious code DB when it is determined that there is a risk of infecting the malicious code even though the external link does not exist in the malicious code DB; And
And transmitting the modified packet to the user terminal when the connection blocking request is received from the external link.
제6항에 있어서,
상기 패킷 수집분석장치는
상기 사용자 단말로부터 전송되는 패킷을 수집하는 패킷 수집부; 및
상기 수집된 패킷에 자바 스크립트로 표현된 콘텐츠가 있는지 분석하는 패킷 분석부를 포함하는 악성코드 접근 차단 시스템.
The method according to claim 6,
The packet collection and analysis apparatus
A packet collector for collecting packets transmitted from the user terminal; And
And a packet analyzer for analyzing whether the collected packet includes content represented by JavaScript.
사용자 단말과 인터넷 사이에서 사용자 단말이 악성코드 유포 웹사이트로 접근하는 것을 차단하는악성코드 접근 시스템에서 악성코드 접근을 차단하는 방법에 있어서,
상기 사용자 단말이 인터넷에 접속할 때 송수신되는 패킷을 수집하는 단계;
상기 패킷에 난독화된 자바 스크립트가 포함되어 있는지 분석하는 단계;
상기 패킷에 난독화된 자바 스크립트가 포함되어 있는 경우, 상기 난독화된 자바 스크립트를 실행하여 실행된 자바 스크립트로부터 호출되는 외부 링크에 악성코드 유포코드가 삽입되어 있는지 판단하는 단계;
상기 외부 링크에 상기 악성코드 유포코드가 삽입되어 있는 경우, 상기 외부링크에 접속할 수 없도록 상기 패킷을 변형하는 단계; 및
상기 변형된 패킷을 상기 사용자 단말로 전송하여, 상기 사용자 단말이 상기 외부 링크에 접속하는 것을 차단하는 단계를 포함하되,
상기 패킷에 난독화된 자바 스크립트가 포함되어 있는지 분석하는 단계는
상기 난독화된 자바 스크립트를 실행하는 환경을 제공하는 단계;
상기 난독화된 자바 스크립트를 실행되는 자바 스크립트 오브젝트를 생성하는 단계;
상기 자바 스크립트 오브젝트의 생성 또는 변경을 탐지하는 단계; 및
실행된 난독화된 자바 스크립트로부터 호출되는 외부 링크에서 상기 외부 링크가 상기 악성코드 유포코드를 삽입하고 있는지 판단하는 단계를 포함하는 악성코드 접근 차단 방법.
A method for blocking malicious code access in a malicious code access system that prevents a user terminal from accessing a malicious code distributed web site between a user terminal and the Internet,
Collecting packets transmitted and received when the user terminal accesses the Internet;
Analyzing whether the packet includes obfuscated JavaScript;
If the packet includes obfuscated JavaScript, determining whether a malicious code distribution code is inserted in an external link called from the executed JavaScript by executing the obfuscated JavaScript;
Modifying the packet so that it can not be connected to the external link when the malicious code distribution code is inserted in the external link; And
Transmitting the modified packet to the user terminal, and blocking the user terminal from accessing the external link,
The step of analyzing whether the packet includes obfuscated JavaScript
Providing an environment for executing the obfuscated JavaScript;
Generating a JavaScript object in which the obfuscated JavaScript is executed;
Detecting creation or modification of the JavaScript object; And
And determining whether the external link is inserting the malicious code distribution code in an external link called from the executed obfuscated JavaScript.
삭제delete 삭제delete 제8항에 있어서,
상기 외부 링크가 상기 악성코드 유포코드를 삽입하고 있는지 판단하는 단계는,
상기 외부 링크와 악성코드 DB를 비교하는 단계;
상기 외부 링크가 상기 악성코드 DB에 존재하는 경우, 상기 외부 링크의 접속을 차단하는 단계;
상기 외부 링크가 상기 악성코드 DB에 존재하지 않는 경우, 복수의 가상 머신을 실행시키는 단계;
상기 가상 머신에서 상기 외부 링크를 실행시켜 동작을 확인하는 단계; 및
상기 동작에 상기 악성코드의 감염 위험이 있는 경우, 상기 외부 링크의 접속을 차단하는 단계를 포함하는 악성코드 접근 차단 방법.
9. The method of claim 8,
Wherein the step of determining whether the external link inserts the malicious code-
Comparing the external link with a malicious code database;
Blocking the connection of the external link when the external link exists in the malicious code DB;
Executing a plurality of virtual machines when the external link is not present in the malicious code DB;
Executing the external link in the virtual machine to confirm the operation; And
And blocking the connection of the external link when the operation has a risk of infecting the malicious code.
제11항에 있어서,
상기 외부 링크의 접속을 차단하는 단계는,
상기 수집된 패킷을 복사하는 단계;
상기 복사된 패킷을 변형하여 상기 사용자 단말에게 전송하는 단계를 포함하는 악성코드 접근 차단 방법.
12. The method of claim 11,
Wherein the step of interrupting the connection of the external link comprises:
Copying the collected packets;
And modifying the copied packet and transmitting the modified packet to the user terminal.
제12항에 있어서,
상기 외부 링크가 상기 악성코드 DB에 존재하지 않음에도 상기 악성코드의 감염 위험이 있다고 판단되는 경우, 상기 외부 링크를 상기 악성코드 DB에 추가 등록하는 단계를 포함하는 악성코드 접근 차단 방법.
13. The method of claim 12,
Further comprising registering the external link in the malicious code DB when it is determined that there is a risk of infecting the malicious code even though the external link does not exist in the malicious code DB.
제8항, 제11항 내지 제13항 중 어느 하나의 항에 있어서,
악성코드 접근 차단 방법을 실행하는 컴퓨터가 판독가능한 기록매체에 기록된 컴퓨터프로그램.
14. The method according to any one of claims 8 to 13,
A computer program for causing a malicious code access blocking method to be recorded on a computer readable recording medium.
KR1020150114437A 2015-08-13 2015-08-13 System and method for blocking access malware by using monitoring java-script object and computer program for executing the method KR101577404B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150114437A KR101577404B1 (en) 2015-08-13 2015-08-13 System and method for blocking access malware by using monitoring java-script object and computer program for executing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150114437A KR101577404B1 (en) 2015-08-13 2015-08-13 System and method for blocking access malware by using monitoring java-script object and computer program for executing the method

Publications (1)

Publication Number Publication Date
KR101577404B1 true KR101577404B1 (en) 2015-12-28

Family

ID=55084985

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150114437A KR101577404B1 (en) 2015-08-13 2015-08-13 System and method for blocking access malware by using monitoring java-script object and computer program for executing the method

Country Status (1)

Country Link
KR (1) KR101577404B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019027106A1 (en) * 2017-08-01 2019-02-07 주식회사 에프원시큐리티 System for analyzing degree of risk for malicious code distribution site by using machine learning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100123368A (en) * 2009-05-15 2010-11-24 인포뱅크 주식회사 System and method for analyzing malicious code
KR101200906B1 (en) * 2011-04-27 2012-11-13 (주)소만사 High Performance System and Method for Blocking Harmful Sites Access on the basis of Network
KR101514984B1 (en) * 2014-03-03 2015-04-24 (주)엠씨알시스템 Detecting system for detecting Homepage spreading Virus and Detecting method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100123368A (en) * 2009-05-15 2010-11-24 인포뱅크 주식회사 System and method for analyzing malicious code
KR101200906B1 (en) * 2011-04-27 2012-11-13 (주)소만사 High Performance System and Method for Blocking Harmful Sites Access on the basis of Network
KR101514984B1 (en) * 2014-03-03 2015-04-24 (주)엠씨알시스템 Detecting system for detecting Homepage spreading Virus and Detecting method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019027106A1 (en) * 2017-08-01 2019-02-07 주식회사 에프원시큐리티 System for analyzing degree of risk for malicious code distribution site by using machine learning

Similar Documents

Publication Publication Date Title
US10956566B2 (en) Multi-point causality tracking in cyber incident reasoning
US11184374B2 (en) Endpoint inter-process activity extraction and pattern matching
US10592676B2 (en) Application security service
US11941054B2 (en) Iterative constraint solving in abstract graph matching for cyber incident reasoning
KR101514984B1 (en) Detecting system for detecting Homepage spreading Virus and Detecting method thereof
US10447730B2 (en) Detection of SQL injection attacks
Egele et al. Defending browsers against drive-by downloads: Mitigating heap-spraying code injection attacks
Li et al. A survey on server-side approaches to securing web applications
US9092823B2 (en) Internet fraud prevention
US8499283B2 (en) Detection of scripting-language-based exploits using parse tree transformation
Akiyama et al. Design and implementation of high interaction client honeypot for drive-by-download attacks
CN103428186A (en) Method and device for detecting phishing website
US20090070663A1 (en) Proxy engine for custom handling of web content
KR101080953B1 (en) Real-time web shell detection and defense system and method
WO2017056121A1 (en) Method for the identification and prevention of client-side web attacks
KR101372906B1 (en) Method and system to prevent malware code
JP6450022B2 (en) Analysis device, analysis method, and analysis program
KR101487476B1 (en) Method and apparatus to detect malicious domain
KR100961149B1 (en) How to scan malicious sites, How to collect malicious site information, Recording media that records devices, systems and computer programs
TWI470468B (en) System and method for detecting web malicious programs and behaviors
KR101754195B1 (en) Method for security enhancement based on multi log gathering server
JP2013152497A (en) Black list extraction device, extraction method and extraction program
KR20080036706A (en) Web security module using web attack regular expression and script file inclusion
KR101234066B1 (en) Web / email for distributing malicious code through the automatic control system and how to manage them
CN104346573A (en) Method and device for realizing WEB application system information security frame

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20150813

PA0201 Request for examination
PA0302 Request for accelerated examination

Patent event date: 20150901

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20150813

Patent event code: PA03021R01I

Comment text: Patent Application

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20150924

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20151204

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20151208

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20151209

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20181206

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20181206

Start annual number: 4

End annual number: 4

PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20200919