WO2018131199A1 - 結合装置、結合方法および結合プログラム - Google Patents
結合装置、結合方法および結合プログラム Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 43
- 238000013515 script Methods 0.000 claims abstract description 54
- 238000004458 analytical method Methods 0.000 claims description 27
- 230000008878 coupling Effects 0.000 claims description 22
- 238000010168 coupling process Methods 0.000 claims description 21
- 238000005859 coupling reaction Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000007796 conventional method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003211 malignant effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded 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は、本実施の形態に係る結合装置の構成を示すブロック図である。図1に示すように、結合装置10は、入力部11、通信部12、記憶部13、制御部14および出力部15を有する。なお、実施の形態1では、スクリプトコードのうち、ウェブブラウザに使用されているJavaScriptコードを、解析対象となり得るサイズに結合する場合を例に説明する。
図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は、例えば実ブラウザまたは疑似ブラウザにより出力される情報を用いてもよい。
次に、コード結合部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)。
図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にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
図5は、プログラムが実行されることにより、結合装置10が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
図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 コード結合部
11 入力部
12 通信部
13 記憶部
14 制御部
15 出力部
141 取得部
142 コード結合部
Claims (6)
- ウェブサイトに含まれるスクリプトコードであって前記ウェブサイト中の複数箇所に分割して記述されたスクリプトコードを取得する取得部と、
前記取得部が取得した前記分割して記述されたスクリプトコード内のデータ間の依存関係、或いは、前記分割して記述されたスクリプトコードの実行に起因した動的生成関係に基づいて、複数の前記分割して記述されたスクリプトコードを結合するコード結合部と、
を有することを特徴とする結合装置。 - 前記コード結合部は、前記分割して記述されたスクリプトコード内のデータから、変数或いは関数の定義情報、および、変数或いは関数の参照情報を取得し、該取得した情報に基づいて、複数の前記分割して記述されたスクリプトコードを結合することを特徴とする請求項1に記載の結合装置。
- 前記コード結合部は、解析対象のコードが、前記分割して記述されたスクリプトコードを実行して動的に生成された新たなスクリプトコードであるか否かを判断し、前記解析対象のコードが前記新たなスクリプトコードである場合に、実行元の前記分割して記述されたスクリプトコードと前記新たなスクリプトコードとを結合することを特徴とする請求項1または2に記載の結合装置。
- 前記取得部は、前記分割して記述されたスクリプトコードを各スクリプトコードの実行順に取得することを特徴とする請求項1~3のいずれか一つに記載の結合装置。
- 分割して記述されたスクリプトコードを結合する結合装置が実行する結合方法であって、
ウェブサイトに含まれるスクリプトコードであって前記ウェブサイト中の複数箇所に分割して記述されたスクリプトコードを取得する工程と、
取得した前記分割して記述されたスクリプトコード内のデータ間の依存関係、或いは、前記分割して記述されたスクリプトコードの実行に起因する動的生成関係に基づいて、複数の前記分割して記述されたスクリプトコードを結合する工程と、
を含んだことを特徴とする結合方法。 - コンピュータを、請求項1~4のいずれか一つに記載の結合装置として機能させるための結合プログラム。
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)
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)
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)
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 |
-
2017
- 2017-08-09 US US16/476,304 patent/US11019096B2/en active Active
- 2017-08-09 WO PCT/JP2017/028900 patent/WO2018131199A1/ja unknown
- 2017-08-09 EP EP17891858.7A patent/EP3547121B1/en active Active
- 2017-08-09 JP JP2018561794A patent/JP6687761B2/ja active Active
Non-Patent Citations (7)
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)
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 |