WO2018131199A1 - 結合装置、結合方法および結合プログラム - Google Patents

結合装置、結合方法および結合プログラム Download PDF

Info

Publication number
WO2018131199A1
WO2018131199A1 PCT/JP2017/028900 JP2017028900W WO2018131199A1 WO 2018131199 A1 WO2018131199 A1 WO 2018131199A1 JP 2017028900 W JP2017028900 W JP 2017028900W WO 2018131199 A1 WO2018131199 A1 WO 2018131199A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
script code
divided
script
combining
Prior art date
Application number
PCT/JP2017/028900
Other languages
English (en)
French (fr)
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 JP2018561794A priority Critical patent/JP6687761B2/ja
Priority to US16/476,304 priority patent/US11019096B2/en
Priority to EP17891858.7A priority patent/EP3547121B1/en
Publication of WO2018131199A1 publication Critical patent/WO2018131199A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • 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/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

Definitions

  • the present invention relates to a coupling device, a coupling method, and a coupling program.
  • Drive-by download attack transfers a client accessing a website to a different website mainly using HTML (HyperText Markup Language) tags and JavaScript (registered trademark), and then the attack code. It is an attack that forwards to a malicious website to be executed.
  • a client accesses a malicious website
  • attack code that exploits vulnerabilities in a web browser (hereinafter referred to as a browser) or a browser plug-in (hereinafter referred to as a plug-in) is executed, and a malicious code such as a computer virus is executed.
  • Download and install programs malware.
  • the URL Uniform Resource Locator
  • a method for detecting drive-by download attacks by detecting changes in the file system by accessing a malicious website using a real system browser hereinafter referred to as a real browser
  • downloading and installing malware See Non-Patent Document 1, for example.
  • a method for detecting a drive-by download attack a method for detecting malicious JavaScript by executing JavaScript in a browser emulator (hereinafter referred to as a pseudo browser) and analyzing the execution result (for example, non-patent literature) 2).
  • the attacker identifies the type and version of the client (hereinafter referred to as browser fingerprinting) before transferring the accessing client to the malicious URL, and determines the predetermined attack target.
  • browser fingerprinting the type and version of the client
  • the success rate of the attack is improved by changing the control flow of JavaScript so that only the client who performs the transfer is transferred to the malicious URL (for example, see Non-Patent Document 3).
  • analysis avoidance code the attacker can use the plug-in function or cause intentional exception handling to avoid or obstruct analysis by existing methods (hereinafter referred to as analysis avoidance code). Is used (for example, see Non-Patent Document 4).
  • Non-Patent Document 4 Conventionally, methods for analyzing JavaScript have been proposed (see, for example, Non-Patent Document 4 and Non-Patent Document 5).
  • the method described in Non-Patent Document 5 extracts code features based on the tree structure (ie, code structure) of the abstract syntax tree converted from the benign JavaScript and malignant JavaScript to be analyzed, and learns it from the classifier. This is a method to detect malicious JavaScript.
  • Non-Patent Document 4 The method described in Non-Patent Document 4 is that the malicious JavaScript detected by constantly monitoring the malicious website using the above-described attack detection method and the attacker changed the malicious JavaScript. This is a method in which JavaScript that can no longer be detected from an attack is input and an analysis avoidance code is extracted from the difference information of the input. This method is applied when an attacker discovers a method for avoiding analysis and adds the method to existing malicious code (update of attack method).
  • JavaScript there are multiple ways to execute JavaScript. For example, as a method of executing JavaScript, there are a method of executing a code read from a different URL, a method of executing a code described in a script tag, and a method of executing a dynamically generated code.
  • the method described in Non-Patent Document 5 is a method of extracting feature values from the entire malicious code. For this reason, the method described in Non-Patent Document 5 has a problem in that a feature quantity that sufficiently contributes to classification cannot be obtained from a code described in a script tag by finely dividing JavaScript. In addition, the method described in Non-Patent Document 4 has a problem that dummy codes that do not need to be analyzed may be excessively combined because a code having a size equal to or smaller than a threshold is simply combined and analyzed. .
  • the present invention has been made in view of the above, and the script code described by being divided into a plurality of locations in a website that has not been the object of analysis so far can be sized to be an object of analysis. It is an object to provide a coupling device, a coupling method, and a coupling program.
  • the coupling device of the present invention includes an acquisition unit that acquires script code included in a website and is divided into a plurality of locations in the website, and is described in a divided manner acquired by the acquisition unit.
  • a code combining unit that combines a plurality of divided script codes based on a dependency relationship between data in the script code or a dynamic generation relationship resulting from execution of the script code divided and written; It is characterized by having.
  • the script code divided and described in a plurality of locations in the website that has not been the object of analysis so far can be sized to be the object of analysis.
  • FIG. 1 is a block diagram showing the configuration of the coupling device according to the present embodiment.
  • FIG. 2 is a diagram for explaining the processing of the code combining unit shown in FIG.
  • FIG. 3 is a diagram for explaining the script code execution history information shown in FIG.
  • FIG. 4 is a flowchart showing a processing procedure of code combining processing by the combining device shown in FIG.
  • FIG. 5 is a diagram illustrating an example of a computer in which a coupling device is realized by executing a program.
  • Embodiments of the present invention will be described.
  • a combining apparatus, a combining method, and a script code that is divided into a plurality of locations in a website and that can be analyzed The combined program will be described.
  • an outline of the coupling device in the embodiment will be described.
  • FIG. 1 is a block diagram showing the configuration of the coupling device according to the present embodiment.
  • the coupling device 10 includes an input unit 11, a communication unit 12, a storage unit 13, a control unit 14, and an output unit 15.
  • the first embodiment a case will be described as an example in which JavaScript code used in a web browser among script codes is combined with a size that can be analyzed.
  • the input unit 11 is an input interface that accepts various operations from the operator of the coupling device 10.
  • the input unit 11 includes a touch panel, a voice input device, and input devices such as a keyboard and a mouse.
  • the communication unit 12 is a communication interface that transmits and receives various types of information to and from other devices connected via a network or the like.
  • the communication unit 12 is realized by a NIC (Network Interface Card) or the like, and performs communication between another device and the control unit 14 via a telecommunication line such as a LAN (Local Area Network) or the Internet.
  • NIC Network Interface Card
  • the communication unit 12 inputs the executed JavaScript code information Da acquired when accessing the URL with a browser to the control unit 14 via a network or the like.
  • the executed JavaScript code information Da is information including JavaScript described by being divided into a plurality of locations in a website that may be a malicious website.
  • the communication unit 12 executes JavaScript code information (for example, Y. Takata, M. Akiyama, T. Yagi, T. Yada, and S. Goto, “Website” acquired by the pseudo browser. Forensic Investment to Identify Evidence and Impact of Compromise, “In Proceedings of the International Conference on Security and Privacy in Communication Networks (SecureComm, see 2016)” is input to the control unit 14.
  • JavaScript code information for example, Y. Takata, M. Akiyama, T. Yagi, T. Yada, and S. Goto, “Website” acquired by the pseudo browser. Forensic Investment to Identify Evidence and Impact of Compromise, “In Proceedings of the International Conference on Security and Privacy in Communication Networks (SecureComm, see 2016)” is input to the control unit 14.
  • JavaScript code information for example, Y. Takata, M. Akiyama, T. Yagi, T. Yada, and S. Goto, “Website” acquired by the pseudo browser. For
  • the communication unit 12 analyzes the content and script of the website via the network or the like using the combined JavaScript code information Db, which is a JavaScript code combined to a size that can be analyzed, by the code combining unit 142. Output to analysis device. If the combining device 10 itself has an analysis function for analyzing website contents and scripts, the code combining unit 142 outputs the combined JavaScript code information Db to this analysis function.
  • the storage unit 13 is realized by a semiconductor memory device such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk. Data used during execution is stored.
  • a semiconductor memory device such as a RAM (Random Access Memory) or a flash memory
  • a storage device such as a hard disk or an optical disk. Data used during execution is stored.
  • the control unit 14 has an internal memory for storing a program that defines various processing procedures and necessary data, and executes various processes.
  • the control unit 14 is an electronic circuit such as a CPU (Central Processing Unit) or MPU (Micro Processing Unit).
  • the control unit 14 includes an acquisition unit 141 and a code combination unit 142.
  • the acquisition unit 141 acquires a script code included in a website and divided and described in a plurality of locations in the website.
  • the acquisition unit 141 acquires the script codes described in a divided manner based on the JavaScript code information execution history in the order of execution of the script codes.
  • the code combining unit 142 is based on the dependency relationship between the data in the script code described in a divided manner acquired by the acquisition unit or the dynamic generation relationship resulting from the execution of the script code described in the divided portion. Combine script codes written in multiple parts. In other words, the code combining unit 142 can analyze the divided code or dynamically generated code included in the executed JavaScript code information Da acquired by the browser, and can be analyzed. To join.
  • the output unit 15 is realized by, for example, a display device such as a liquid crystal display, a printing device such as a printer, an information communication device, or the like.
  • the output unit 15 outputs a combination result, an analysis result, and the like to the operator.
  • FIG. 2 is a diagram for explaining the processing of the code combining unit 142 shown in FIG.
  • the left side of FIG. 2 shows JavaScript included in the website configuration W1 as an example of executed JavaScript code information Da, and the right side shows the combined JavaScript code Db combined by the code combining unit 142.
  • FIG. 3 is a diagram for explaining JavaScript code execution history information D1 acquired from the website configuration W1 shown in FIG.
  • the URL of the website configuration W1 is assumed to be “http: //a.example/”, and the execution method “rendered_exec” executed the execution destination JavaScript code when accessing the execution source URL.
  • the execution method “eval” indicates that, when the execution source JavaScript code is executed, the execution destination JavaScript code is dynamically generated and executed.
  • the execution method “location.href” means that the execution source JavaScript code is transferred to the execution destination URL when it is executed.
  • As the JavaScript code execution history information D1 for example, information output by a real browser or a pseudo browser may be used.
  • the acquired JavaScript code is input to the acquisition unit 141 in the order of execution of each JavaScript code.
  • the acquisition unit 141 acquires the divided JavaScript code in the execution order, and inputs it to the code combining unit 142.
  • a plurality of JavaScripts can be described with script tags in the content of the website, and are executed in the order of reading.
  • the execution order is not necessarily limited as long as the data dependency relationship between JavaScript codes or the dynamic generation relationship can be specified.
  • the code combining unit 142 records variables and functions defined or referred to for each JavaScript code based on the executed JavaScript code information Da. In other words, the code combining unit 142 acquires variable or function definition information and variable or function reference information from the data in the divided JavaScript code.
  • a variable or a function is shared between codes, that is, when a data dependency exists between codes, a plurality of codes having the data dependency are combined and extracted.
  • the variable “hoge” is defined in the code C2.
  • the variable “hoge” is referred to and the variable “foo” is defined. Therefore, the code combining unit 142 determines that the code C2 and the code C3 share the variable “hoge”. As a result, the code combining unit 142 combines the code C2 and the code C3 based on the shared variable “hoge” to generate the code C20. In this manner, the code combining unit 142 combines codes having data dependency relationships (see (1) in FIG. 2), and generates a more meaningful large-size code.
  • JavaScript can generate and execute code dynamically by using “document.write (“ ⁇ script> code ⁇ / script> ”);”, “eval (“ code ”);”, etc.
  • the code is dynamically generated by executing “eval (“ code ”);” using the C4 code as an execution source.
  • the code combining unit 142 extracts the execution source code C4 and the newly generated code C5 from the JavaScript code execution history information D1, combines these codes C4 and C5, and generates the code C40. Is generated.
  • the code to be analyzed is a new script code that is dynamically generated by executing the script code divided and described
  • the code combining unit 142 and the dynamic code Are combined with the new code generated (see (2) in FIG. 2) to generate a more meaningful large size code.
  • FIG. 4 is a flowchart showing a processing procedure of code combining processing by the combining device 10 shown in FIG.
  • the acquisition unit 141 executes the code executed according to the execution time information recorded in the JavaScript code execution history information D1 based on the JavaScript code information Da executed on the analysis target website. Are acquired in the execution order (step S1).
  • the code combining unit 142 selects unanalyzed codes in order with respect to the codes acquired by the acquiring unit 141 (step S2).
  • the code combining unit 142 obtains variables and function information defined in the code and variables and function information referenced in the code by converting the analysis target code into, for example, an abstract syntax tree and analyzing the syntax. (Step S3). Subsequently, based on the acquisition result, the code combining unit 142 determines whether or not the selected analysis target code is a dynamically generated new code (step S4).
  • step S4 If the code combining unit 142 determines that the selected analysis target code is a dynamically generated new code (step S4: Yes), the code combining unit 142 combines the analysis target code with the dynamic generation source code (step S5). ).
  • step S4 determines that the selected analysis target code is not a dynamically generated code
  • step S6 determines whether there is a code including variable and function information
  • the code combining unit 142 determines that there is a code including the acquired variable and function information in the analyzed code and the combined code (step S6: Yes)
  • the code combining unit 142 selects the analyzed code and / or the combined code.
  • the analyzed codes to be analyzed are combined (step S7).
  • the code combining unit 142 determines that there is no code including the acquired variable and function information in the analyzed code and the combined code (step S6: No), that is, the analyzed code and the combined code are If the code does not include the variable and function information acquired in step S3, the process proceeds to step S8. In step S8, the code combining unit 142 determines whether all the codes acquired in step S1 have been analyzed (step S8).
  • step S8: No the code combining unit 142 returns to step S2 and continues processing for the next code that has not been analyzed.
  • step S8: Yes the code combining process ends.
  • the divided code and the dynamically generated code can be made into a code having a more meaningful size and a size that can be analyzed.
  • the script code divided and described in a plurality of locations in the website that has not been the object of analysis so far can be sized to be the object of analysis.
  • the divided code is Can be combined.
  • the codes are combined so as to be a size that can be analyzed based on the context such as the data dependency relationship or the dynamic generation relationship, compared with the conventional method, It is possible to extract a feature amount having a larger amount of information that contributes sufficiently to classification.
  • codes are combined based on data dependency relationships and dynamic generation relationships, dummy codes that do not need to be analyzed can be excluded from analysis targets.
  • the analysis is avoided by manually analyzing the combined code so as to be the size that can be analyzed based on the data dependency relationship and the dynamic generation relationship, as compared with the conventional method. It can realize code identification, signature generation for malicious website detection, improvement of simulated browser simulation performance, and so on.
  • each component of each illustrated device is functionally conceptual and does not necessarily need to be physically configured as illustrated.
  • the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or a part of the distribution / integration is functionally or physically distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured.
  • all or a part of each processing function performed in each device may be realized by a CPU and a program that is analyzed and executed by the CPU, or may be realized as hardware by wired logic.
  • FIG. 5 is a diagram illustrating an example of a computer in which the coupling device 10 is realized by executing a program.
  • the computer 1000 includes a memory 1010 and a CPU 1020, for example.
  • the computer 1000 also includes a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These units are connected by a bus 1080.
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012.
  • the ROM 1011 stores a boot program such as BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • the hard disk drive interface 1030 is connected to the hard disk drive 1090.
  • the disk drive interface 1040 is connected to the disk drive 1100.
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100.
  • the serial port interface 1050 is connected to a mouse 1110 and a keyboard 1120, for example.
  • the video adapter 1060 is connected to the display 1130, for example.
  • the hard disk drive 1090 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, a program that defines each process of the coupling device 10 is implemented as a program module 1093 in which a code executable by the computer 1000 is described.
  • the program module 1093 is stored in the hard disk drive 1090, for example.
  • a program module 1093 for executing processing similar to the functional configuration in the coupling device 10 is stored in the hard disk drive 1090.
  • the hard disk drive 1090 may be replaced by an SSD (Solid State Drive).
  • the setting data used in the processing of the above-described embodiment is stored as program data 1094 in, for example, the memory 1010 or the hard disk drive 1090. Then, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1090 to the RAM 1012 and executes them as necessary.
  • the program module 1093 and the program data 1094 are not limited to being stored in the hard disk drive 1090, but may be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program module 1093 and the program data 1094 may be stored in another computer connected via a network (LAN, WAN, etc.). The program module 1093 and the program data 1094 may be read by the CPU 1020 from another computer via the network interface 1070.

Landscapes

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

Abstract

結合装置(10)は、ウェブサイトに含まれるスクリプトコードであって前記ウェブサイト中の複数箇所に分割して記述されたスクリプトコードを取得する取得部(141)と、取得部(141)が取得した分割して記述されたスクリプトコード内のデータ間の依存関係、或いは、分割して記述されたスクリプトコードの実行に起因した動的生成関係に基づいて、複数の分割して記述されたスクリプトコードを結合するコード結合部(142)と、を有する。

Description

結合装置、結合方法および結合プログラム
 本発明は、結合装置、結合方法および結合プログラムに関する。
 ドライブバイダウンロード攻撃(Drive-by Download攻撃)は、ウェブサイトにアクセスしたクライアントを、主にHTML(HyperText Markup Language)タグやJavaScript(登録商標)を用いて異なるウェブサイトへ転送した後、攻撃コードを実行する悪性ウェブサイトへ転送する攻撃である。クライアントが悪性ウェブサイトにアクセスすると、ウェブブラウザ(以下、ブラウザと呼ぶ。)やブラウザのプラグイン(以下、プラグインと呼ぶ。)の脆弱性を悪用する攻撃コードが実行され、コンピュータウィルスなどの悪性プログラム(マルウェア)をダウンロード、インストールしてしまう。なお、以下、攻撃コードが実行されるウェブサイトやマルウェアをダウンロードするウェブサイトのURL(Uniform Resource Locator)を悪性URLと呼ぶ。
 ドライブバイダウンロード攻撃を検知する方法として、実システムのブラウザ(以下、実ブラウザと呼ぶ。)で悪性ウェブサイトへアクセスし、マルウェアをダウンロード、インストールすることによって、発生するファイルシステムの変化を検知する方法(例えば、非特許文献1参照)がある。また、ドライブバイダウンロード攻撃を検知する方法として、JavaScriptをブラウザのエミュレータ(以下、疑似ブラウザと呼ぶ。)で実行し、実行結果を解析することで悪性なJavaScriptを検知する方法(例えば、非特許文献2参照)などもある。
 これらの検知方法に対し、攻撃者は、アクセスしてきたクライアントを悪性URLへ転送する前に、このクライアントの種別やバージョンを識別し(以下、ブラウザフィンガープリンティングと呼ぶ。)、予め定めた攻撃対象とするクライアントのみを悪性URLへ転送するようJavaScriptの制御フローを変更することによって、攻撃の成功率を向上させる(例えば、非特許文献3参照)。
 その他にも、攻撃者は、プラグインの機能を使用したり、意図的な例外処理を発生させたりすることで、既存手法による解析を回避、妨害するコード(以下、解析回避コードと呼ぶ。)が用いられるものがある(例えば、非特許文献4参照)。
 上述した複数の転送、ブラウザフィンガープリンティングコード、或いは、解析回避コードを用いる悪性ウェブサイトのほとんどは、エクスプロイトキットと呼ばれるツールで自動的に構築される。
 ここで、従来、JavaScriptを解析する方法が提案されている(例えば、非特許文献4、非特許文献5参照)。例えば、非特許文献5記載の方法は、解析対象の良性JavaScriptおよび悪性JavaScriptから変換した抽象構文木の木構造(すなわち、コードの構造)に基づき、コードの特徴量を抽出し、分類器に学習させることで、悪性JavaScriptを検知する方法である。
 また、非特許文献4記載の方法は、上述の攻撃検知方法を用いて定常的に悪性ウェブサイトを監視することで検知した悪性JavaScriptと、攻撃者が悪性JavaScriptに変更を加えたことで、ある時点から攻撃検知できなくなったJavaScriptを入力とし、該入力の差分情報から解析回避コードを抽出する方法である。この方法は、攻撃者が解析回避方法を発見し、その方法を既存の悪性コードに追記(攻撃手法のアップデート)するような場合に適用する。
L. Lu, V. Yegneswaran, P. Porras, and W. Lee, "BLADE: An Attack-Agnostic Approach for Preventing Drive-By Malware Infections", Proc. ACM on Conference Computer and Communications Security, pp. 440-450, 2010. M. Cova, C. Kruegel, and G. Vigna, "Detection and Analysis of Drive-by-Download Attacks and Malicious JavaScript Code", Proc. World Wide Web Conference, pp. 281-290, 2010. Y. Takata, M. Akiyama, T. Yagi, T. Hariu, and S. Goto, "MineSpider: Extracting Hidden URLs Behind Evasive Drive-by Download Attacks", IEICE Trans. Information and System, vol. E99.D, no. 4, pp. 860-872, 2016. A. Kapravelos, Y. Shoshitaishvili, M. Cova, C. Kruegel, and G. Vigna, "Revolver: An Automated Approach to the Detection of Evasive Web-based Malware", In Proceedings of the USENIX Security Symposium, 2013. C. Curtsinger, B. Livshits, B. Zorn, and C. Seifert, "ZOZZLE: Fast and Precise In-Browser JavaScript Malware Detection",In Proceedings of the USENIX Security Symposium, 2011.
 ここで、JavaScriptを実行する方法は、複数存在する。例えば、JavaScriptを実行する方法として、異なるURLから読み込んだコードを実行する方法、scriptタグに記述されたコードを実行する方法、動的に生成されたコードを実行する方法がある。
 そして、悪性ウェブサイトの中には、JavaScriptを細かく分割してscriptタグに記述することによって、或いは、意味のない計算ダミーコードや使用しない変数、関数を定義するダミーコードを記述することによって、解析を妨害するウェブサイトが存在する。
 しかしながら、従来の解析方法では、分割されたコードや動的生成されたコードに対しては、悪性JavaScriptを検知できない場合があった。
 例えば、非特許文献5に記載の方法は、悪性コード全体から特徴量を抽出する方法である。このため、非特許文献5に記載の方法では、JavaScriptを細かく分割してscriptタグに記述されたコードからは、分類に十分寄与する特徴量を得られないという問題があった。また、非特許文献4に記載の方法では、閾値以下のサイズのコードを単純に結合して解析するため、解析する必要のないダミーコードを余分に結合してしまう場合があるという問題があった。
 したがって、これまでの方法では解析対象とならなかったコードを解析するために、分割されたコードや動的生成されたコードを、より意味のある大きいサイズのコードにする必要がある。
 本発明は、上記に鑑みてなされたものであって、これまで解析対象とならなかったウェブサイト中の複数箇所に分割して記述されたスクリプトコードを、解析対象となり得るサイズにすることができる結合装置、結合方法および結合プログラムを提供することを目的とする。
 本発明の結合装置は、ウェブサイトに含まれるスクリプトコードであってウェブサイト中の複数箇所に分割して記述されたスクリプトコードを取得する取得部と、取得部が取得した分割して記述されたスクリプトコード内のデータ間の依存関係、或いは、分割して記述されたスクリプトコードの実行に起因した動的生成関係に基づいて、複数の分割して記述されたスクリプトコードを結合するコード結合部と、を有することを特徴とする。
 本発明によれば、これまで解析対象とならなかったウェブサイト中の複数箇所に分割して記述されたスクリプトコードを、解析対象となり得るサイズにすることができる。
図1は、本実施の形態に係る結合装置の構成を示すブロック図である。 図2は、図1に示すコード結合部の処理を説明するための図である。 図3は、図2に示すスクリプトコード実行履歴情報を説明するための図である。 図4は、図1に示す結合装置によるコード結合処理の処理手順を示すフローチャートである。 図5は、プログラムが実行されることにより結合装置が実現されるコンピュータの一例を示す図である。
 以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態]
 本発明の実施の形態について説明する。本発明の実施の形態では、ウェブサイトのコンテンツおよびスクリプトを解析するために、ウェブサイト中の複数箇所に分割して記述されたスクリプトコードを、解析対象となり得るサイズにする結合装置、結合方法および結合プログラムについて説明する。まず、実施の形態における結合装置の概略について説明する。
[結合装置の構成]
 図1は、本実施の形態に係る結合装置の構成を示すブロック図である。図1に示すように、結合装置10は、入力部11、通信部12、記憶部13、制御部14および出力部15を有する。なお、実施の形態1では、スクリプトコードのうち、ウェブブラウザに使用されているJavaScriptコードを、解析対象となり得るサイズに結合する場合を例に説明する。
 入力部11は、結合装置10の操作者からの各種操作を受け付ける入力インタフェースである。例えば、入力部11は、タッチパネル、音声入力デバイス、キーボードやマウス等の入力デバイスによって構成される。
 通信部12は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部12は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置と制御部14との間の通信を行う。
 具体的には、通信部12は、ブラウザでURLにアクセスした際に取得した、実行されたJavaScriptコード情報Daを、ネットワークなどを介して、制御部14に入力する。ここで、悪性ウェブサイトの中には、JavaScriptコードを複数に分割して記述し、解析を妨害するウェブサイトが存在する。この実行されたJavaScriptコード情報Daは、悪性ウェブサイトであるおそれがあるウェブサイト中の複数箇所に分割して記述されたJavaScriptを含む情報である。
 本実施の形態では、例えば、通信部12は、疑似ブラウザで取得した実行されたJavaScriptコード情報(例えば、Y. Takata, M. Akiyama, T. Yagi, T. Yada, and S. Goto, “Website Forensic Investigation to Identify Evidence and Impact of Compromise,” In Proceedings of the International Conference on Security and Privacy in Communication Networks (SecureComm), 2016参照)を制御部14に入力する。なお、JavaScriptコード情報を取得できれば、疑似ブラウザに限らず、任意の実ブラウザであってもよい。すなわち、ブラウザは、実行されたJavaScriptコード情報を取得できれば、疑似ブラウザに限定されず、任意の実ブラウザを使用できる。
 また、通信部12は、コード結合部142によって、解析対象となり得るサイズに結合されたJavaScriptコードである、結合済みJavaScriptコード情報Dbを、ネットワーク等を介して、ウェブサイトのコンテンツおよびスクリプトを解析する解析装置に出力する。なお、結合装置10自体が、ウェブサイトのコンテンツおよびスクリプトを解析する解析機能を有する場合には、コード結合部142から、この解析機能に結合済みJavaScriptコード情報Dbが出力される。
 記憶部13は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、結合装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。
 制御部14は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部14は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。制御部14は、取得部141及びコード結合部142を有する。
 取得部141は、ウェブサイトに含まれるスクリプトコードであってウェブサイト中の複数箇所に分割して記述されたスクリプトコードを取得する。取得部141は、JavaScriptコード情報実行履歴に基づき、分割して記述されたスクリプトコードを各スクリプトコードの実行順に取得する。
 コード結合部142は、取得部が取得した、分割して記述されたスクリプトコード内のデータ間の依存関係、或いは、分割して記述されたスクリプトコードの実行に起因した動的生成関係に基づいて、複数の分割して記述されたスクリプトコードを結合する。言い換えると、コード結合部142は、ブラウザで取得した、実行されたJavaScriptコード情報Daに含まれる分割されたコードや動的生成されたコードを、解析対象となり得る、より意味のある大きいサイズのコードに結合する。
 出力部15は、例えば、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置等によって実現される。出力部15は、結合結果や解析結果等を操作者に対して出力する。
[コード結合部の処理]
 次に、コード結合部142の処理について具体的に説明する。図2は、図1に示すコード結合部142の処理を説明するための図である。図2の左側には、実行されたJavaScriptコード情報Daの一例として、ウェブサイト構成W1に含まれるJavaScriptを示し、右側には、コード結合部142が結合した結合済みJavaScriptコードDbを示す。図3は、図2に示すウェブサイト構成W1から取得したJavaScriptコード実行履歴情報D1を説明するための図である。図3では、ウェブサイト構成W1のURLを仮に「http://a.example/」としており、実行方法「rendered_exec」は実行元のURLにアクセスした際に、実行先のJavaScriptコードを実行したことを表し、実行方法「eval」は実行元のJavaScriptコードを実行した際に、実行先のJavaScriptコードを動的に生成し、実行したことを表している。また、実行方法「location.href」は実行元のJavaScriptコードを実行した際に、実行先のURLへ転送したことを意味する。JavaScriptコード実行履歴情報D1は、例えば実ブラウザまたは疑似ブラウザにより出力される情報を用いてもよい。
 予め保持するJavaScriptコード実行履歴情報D1に基づき、取得部141には、分割されたJavaScriptコードが各JavaScriptコードの実行順に入力される。取得部141は、分割されたJavaScriptコードを実行順に取得し、コード結合部142に対し、入力する。JavaScriptは、ウェブサイトのコンテンツ中にscriptタグで複数記述でき、それぞれ読み込んだ順に実行される。ただし、JavaScriptコード間のデータ依存関係、或いは、動的生成関係を特定できれば、必ずしも実行順でなくてもよい。
 コード結合部142は、実行されたJavaScriptコード情報Daを基に、JavaScriptコードごとに定義或いは参照された変数および関数を記録しておく。言い換えると、コード結合部142は、分割されたJavaScriptコード内のデータから、変数或いは関数の定義情報、および、変数或いは関数の参照情報を取得する。コード間で変数または関数を共有する場合、すなわち、コード間にデータ依存関係が存在する場合、データ依存関係が存在する複数のコードを結合し、抽出する。
 例えば、図2の例では、コードC2において変数「hoge」を定義している。そして、コードC3において変数「hoge」を参照し、変数「foo」を定義している。このため、コード結合部142は、コードC2およびコードC3が変数「hoge」を共有すると判断する。これによって、コード結合部142は、共有する変数「hoge」に基づき、コードC2とコードC3を結合し、コードC20を生成する。このように、コード結合部142は、データ依存関係のあるコードを結合し(図2の(1)参照)、より意味のある大きいサイズのコードを生成する。
 また、JavaScriptは、「document.write(“<script>code</script>”);」や「eval(“code”);」等を用いることで、動的にコードを生成し実行できる。図2の例では、C4のコードを実行元として、「eval(“code”);」の実行によって動的にコードが生成される。この場合には、コード結合部142は、実行元のコードC4と、新たに生成されたコードC5とを、JavaScriptコード実行履歴情報D1から抽出し、これらのコードC4,C5を結合し、コードC40を生成する。このように、コード結合部142は、解析対象のコードが、分割して記述されたスクリプトコードを実行して動的に生成された新たなスクリプトコードである場合に、実行元コードと、動的に生成された新たなコードとを結合し(図2の(2)参照)、より意味のある大きいサイズのコードを生成する。
[コード結合処理の処理手順]
 図4は、図1に示す結合装置10によるコード結合処理の処理手順を示すフローチャートである。図4に示すように、まず、取得部141は、解析対象ウェブサイトにて実行されたJavaScriptコード情報Daに基づき、JavaScriptコード実行履歴情報D1に記録された実行時間情報にしたがって、実行されたコードを実行順に取得する(ステップS1)。そして、コード結合部142は、取得部141が取得したコードに対し、順番に、未解析のコードを選択する(ステップS2)。
 コード結合部142は、解析対象コードを、例えば抽象構文木に変換し、構文解析することによって、コード内で定義されている変数および関数情報、コード内で参照されている変数および関数情報を取得する(ステップS3)。続いて、取得結果を基に、コード結合部142は、選択した解析対象コードは動的に生成された新たなコードであるか否かを判断する(ステップS4)。
 コード結合部142は、選択した解析対象コードは動的に生成された新たなコードであると判断した場合(ステップS4:Yes)、解析対象コードを動的生成元のコードに結合する(ステップS5)。
 一方、コード結合部142は、選択した解析対象コードは動的生成されたコードでないと判断した場合(ステップS4:No)、既に解析した解析済みコードおよび結合済みコード内に、ステップS3において取得した変数、関数情報を含むコードはあるか否かを判断する(ステップS6)。
 コード結合部142は、解析済みコードおよび結合済みコード内に、取得した変数および関数情報を含むコードはあると判断した場合(ステップS6:Yes)、解析済みコードおよび/または結合済みコードに、選択した解析対象コードを結合する(ステップS7)。
 一方、コード結合部142は、解析済みコードおよび結合済みコード内に、取得した変数、関数情報を含むコードはないと判断した(ステップS6:No)、すなわち、解析済みコードおよび結合済みコードが、ステップS3において取得した変数および関数情報を含まないコードである場合、ステップS8へ進む。コード結合部142は、ステップS8として、ステップS1において取得した全てのコードを解析したか否かを判断する(ステップS8)。
 コード結合部142は、ステップS1において取得した全てのコードを解析していないと判断した場合(ステップS8:No)、ステップS2に戻り、未解析の次のコードに対して処理を続ける。これに対し、コード結合部142は、ステップS8として、ステップS1において取得した全てのコードを解析したと判断した場合(ステップS8:Yes)、当該コードの結合処理を終了する。
[実施の形態の効果]
 上述のように、本実施の形態では、ウェブサイトに含まれるスクリプトコードがウェブサイト中の複数箇所に分割して記述されていた場合であっても、分割して記述されたスクリプトコード内のデータ間の依存関係、或いは、分割して記述されたスクリプトコードの実行に起因した動的生成関係に基づいて、複数の分割して記述されたスクリプトコードを結合する。
 すなわち、本実施の形態によれば、分割されたコードや動的生成されたコードを、より意味のある大きいサイズであって解析可能なサイズのコードにすることができる。言い換えると、これまで解析対象とならなかったウェブサイト中の複数箇所に分割して記述されたスクリプトコードを、解析対象となり得るサイズにすることができる。
 したがって、本実施の形態によれば、疑似ブラウザで取得したウェブサイトアクセス中に実行されたJavaScriptコード情報を入力することにより、たとえ分割してJavaScriptが記述されていたとしても、分割されたコードを結合することができる。このように、本実施の形態によれば、データ依存関係や動的生成関係等のコンテキストに基づいて、解析対象となり得るサイズとなるようにコードを結合するため、従来の方法と比較して、分類に十分寄与する、より多くの情報量を持った特徴量を抽出できる。また、本実施の形態によれば、データ依存関係や動的生成関係に基づいてコードを結合するため、解析する必要のないダミーコードを解析対象から排除することも可能になる。
 このため、本実施の形態によれば、データ依存関係や動的生成関係に基づき解析対象となり得るサイズとなるように結合したコードを手動解析することによって、従来の方法と比較して、解析回避コードの特定、悪性ウェブサイト検知のためのシグネチャの生成、疑似ブラウザの模擬性能の改善などが実現できる。
[システム構成等]
 図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
 また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
 図5は、プログラムが実行されることにより、結合装置10が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
 メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
 ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、結合装置10の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、結合装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
 また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
 なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093およびプログラムデータ1094は、ネットワーク(LAN、WAN等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093およびプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例および運用技術等は全て本発明の範疇に含まれる。
 10 結合装置
 11 入力部
 12 通信部
 13 記憶部
 14 制御部
 15 出力部
 141 取得部
 142 コード結合部

Claims (6)

  1.  ウェブサイトに含まれるスクリプトコードであって前記ウェブサイト中の複数箇所に分割して記述されたスクリプトコードを取得する取得部と、
     前記取得部が取得した前記分割して記述されたスクリプトコード内のデータ間の依存関係、或いは、前記分割して記述されたスクリプトコードの実行に起因した動的生成関係に基づいて、複数の前記分割して記述されたスクリプトコードを結合するコード結合部と、
     を有することを特徴とする結合装置。
  2.  前記コード結合部は、前記分割して記述されたスクリプトコード内のデータから、変数或いは関数の定義情報、および、変数或いは関数の参照情報を取得し、該取得した情報に基づいて、複数の前記分割して記述されたスクリプトコードを結合することを特徴とする請求項1に記載の結合装置。
  3.  前記コード結合部は、解析対象のコードが、前記分割して記述されたスクリプトコードを実行して動的に生成された新たなスクリプトコードであるか否かを判断し、前記解析対象のコードが前記新たなスクリプトコードである場合に、実行元の前記分割して記述されたスクリプトコードと前記新たなスクリプトコードとを結合することを特徴とする請求項1または2に記載の結合装置。
  4.  前記取得部は、前記分割して記述されたスクリプトコードを各スクリプトコードの実行順に取得することを特徴とする請求項1~3のいずれか一つに記載の結合装置。
  5.  分割して記述されたスクリプトコードを結合する結合装置が実行する結合方法であって、
     ウェブサイトに含まれるスクリプトコードであって前記ウェブサイト中の複数箇所に分割して記述されたスクリプトコードを取得する工程と、
     取得した前記分割して記述されたスクリプトコード内のデータ間の依存関係、或いは、前記分割して記述されたスクリプトコードの実行に起因する動的生成関係に基づいて、複数の前記分割して記述されたスクリプトコードを結合する工程と、
     を含んだことを特徴とする結合方法。
  6.  コンピュータを、請求項1~4のいずれか一つに記載の結合装置として機能させるための結合プログラム。
PCT/JP2017/028900 2017-01-11 2017-08-09 結合装置、結合方法および結合プログラム WO2018131199A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018561794A JP6687761B2 (ja) 2017-01-11 2017-08-09 結合装置、結合方法および結合プログラム
US16/476,304 US11019096B2 (en) 2017-01-11 2017-08-09 Combining apparatus, combining method, and combining program
EP17891858.7A EP3547121B1 (en) 2017-01-11 2017-08-09 Combining device, combining method and combining program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-002379 2017-01-11
JP2017002379 2017-01-11

Publications (1)

Publication Number Publication Date
WO2018131199A1 true WO2018131199A1 (ja) 2018-07-19

Family

ID=62839621

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/028900 WO2018131199A1 (ja) 2017-01-11 2017-08-09 結合装置、結合方法および結合プログラム

Country Status (4)

Country Link
US (1) US11019096B2 (ja)
EP (1) EP3547121B1 (ja)
JP (1) JP6687761B2 (ja)
WO (1) WO2018131199A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110119618A (zh) * 2018-10-31 2019-08-13 哈尔滨安天科技股份有限公司 恶意脚本的检测方法及装置
US20220272126A1 (en) * 2021-02-23 2022-08-25 Five Media Marketing Limited Monitoring of javascript object properties for detection of web browser security threats

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11423099B2 (en) * 2017-12-20 2022-08-23 Nippon Telegraph And Telephone Corporation Classification apparatus, classification method, and classification program
EP3776316B1 (en) * 2018-05-04 2021-11-17 Google LLC Detecting injection vulnerabilities of client-side templating systems
CN110262803B (zh) * 2019-06-30 2023-04-18 潍柴动力股份有限公司 一种依赖关系的生成方法及装置
US11748460B2 (en) * 2020-04-27 2023-09-05 Imperva, Inc. Procedural code generation for challenge code
CN112214205B (zh) * 2020-10-10 2023-09-26 中国平安人寿保险股份有限公司 设置菜单路径的方法、装置、设备及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9058177B2 (en) * 2004-02-12 2015-06-16 Raju Venkata Chiluvuri Real software components for achieving real component-based design
US7971245B2 (en) * 2004-06-21 2011-06-28 Ebay Inc. Method and system to detect externally-referenced malicious data for access and/or publication via a computer system
US20080127343A1 (en) * 2006-11-28 2008-05-29 Avaya Technology Llc Self-Operating Security Platform
US8424004B2 (en) * 2007-06-23 2013-04-16 Microsoft Corporation High performance script behavior detection through browser shimming
US8549099B2 (en) * 2007-07-12 2013-10-01 Viasat, Inc. Methods and systems for javascript parsing
US8789178B2 (en) * 2009-08-03 2014-07-22 Barracuda Networks, Inc. Method for detecting malicious javascript
EP2767900B1 (en) * 2013-02-19 2019-10-30 Códice Software S.L Parque Tecnológico de Boecillo Method for programming language dependent merging of program codes
US9774620B2 (en) * 2013-06-18 2017-09-26 Microsoft Technology Licensing, Llc Automatic code and data separation of web application
US20150033339A1 (en) 2013-07-29 2015-01-29 Crowdstrike, Inc. Irrelevant Code Identification
US9729583B1 (en) * 2016-06-10 2017-08-08 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US9805203B2 (en) * 2015-04-21 2017-10-31 Sap Se Cooperative static and dynamic analysis of web application code for finding security vulnerabilities
US20170300306A1 (en) * 2016-04-13 2017-10-19 Qualcomm Innovation Center, Inc. Accelerated parsing in a virtual machine for similar javascript codes in webpages

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
A. KAPRAVELOSY. SHOSHITAISHVILIM. COVAC. KRUEGELG. VIGNA: "Revolver: An Automated Approach to the Detection of Evasive Web-based Malware", PROCEEDINGS OF THE USENIX SECURITY SYMPOSIUM, 2013
C. CURTSINGERB. LIVSHITSB. ZORNC. SEIFERT: "ZOZZLE: Fast and Precise In-Browser JavaScript Malware Detection", PROCEEDINGS OF THE USENIX SECURITY SYMPOSIUM, 2011
L. LUV. YEGNESWARANP. PORRASW. LEE: "BLADE: An Attack-Agnostic Approach for Preventing Drive-By Malware Infections", PROC. ACM ON CONFERENCE COMPUTER AND COMMUNICATIONS SECURITY, 2010, pages 440 - 450
LU , GEN ET AL.: "Automatic Simplification of Obfuscated JavaScript Code: A Semantics-Based Approach", 2012 IEEE SIXTH INTERNATIONAL CONFERENCE ON SOFTWARE SECURITY AND RELIABILITY (SERE), 20 June 2012 (2012-06-20), pages 31 - 40, XP032218101, Retrieved from the Internet <URL:http://ieeexplore.ieee.org/abstract/document/6258292/><DOI:10.1109/SERE.2012.13> [retrieved on 20171023] *
M. COVAC. KRUEGELG. VIGNA: "Detection and Analysis of Drive-by-Download Attacks and Malicious JavaScript Code", PROC. WORLD WIDE WEB CONFERENCE, 2010, pages 281 - 290
Y. TAKATAM. AKIYAMAT. YAGIT. HARIUS. GOTO: "MineSpider: Extracting Hidden URLs Behind Evasive Drive-by Download Attacks", IEICE TRANS. INFORMATION AND SYSTEM, vol. E99.D, no. 4, 2016
Y. TAKATAM. AKIYAMAT. YAGIT. YADAS. GOTO: "Website Forensic Investigation to Identify Evidence and Impact of Compromise", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON SECURITY AND PRIVACY IN COMMUNICATION NETWORKS (SECURECOMM, 2016

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110119618A (zh) * 2018-10-31 2019-08-13 哈尔滨安天科技股份有限公司 恶意脚本的检测方法及装置
US20220272126A1 (en) * 2021-02-23 2022-08-25 Five Media Marketing Limited Monitoring of javascript object properties for detection of web browser security threats
US11949712B2 (en) * 2021-02-23 2024-04-02 Five Media Marketing Limited Monitoring of JavaScript object properties for detection of web browser security threats

Also Published As

Publication number Publication date
EP3547121A4 (en) 2020-08-05
JPWO2018131199A1 (ja) 2019-04-25
US11019096B2 (en) 2021-05-25
US20190356675A1 (en) 2019-11-21
EP3547121A1 (en) 2019-10-02
JP6687761B2 (ja) 2020-04-28
EP3547121B1 (en) 2023-11-15

Similar Documents

Publication Publication Date Title
JP6687761B2 (ja) 結合装置、結合方法および結合プログラム
US10416970B2 (en) Analysis device, analysis method, and analysis program
US11089038B2 (en) Safe sharing of sensitive data
US8176556B1 (en) Methods and systems for tracing web-based attacks
CN107563201B (zh) 基于机器学习的关联样本查找方法、装置及服务器
US20200120118A1 (en) Endpoint inter-process activity extraction and pattern matching
JP6557334B2 (ja) アクセス分類装置、アクセス分類方法、及びアクセス分類プログラム
EP2881877A1 (en) Program execution device and program analysis device
US20190303584A1 (en) Method and apparatus to detect security vulnerabilities in a web application
JP6114480B2 (ja) 構築装置、構築方法、および、構築プログラム
EP3340097B1 (en) Analysis device, analysis method, and analysis program
JP6527111B2 (ja) 解析装置、解析方法および解析プログラム
KR101781780B1 (ko) 다중 서버, 다중 브라우저 기반의 고속 악성 웹 사이트 탐지 시스템 및 방법
US11163882B2 (en) Analysis apparatus, analysis method, and analysis program
Yin et al. Privacy-breaching behavior analysis
JP7427146B1 (ja) 攻撃分析装置、攻撃分析方法、及び攻撃分析プログラム
RU2757330C1 (ru) Способ выявления несогласованного использования ресурсов вычислительного устройства пользователя
JP6498413B2 (ja) 情報処理システム、情報処理装置、制御サーバ、生成サーバ、動作制御方法及び動作制御プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17891858

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018561794

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017891858

Country of ref document: EP

Effective date: 20190628