WO2017018377A1 - 分析方法、分析装置、および分析プログラム - Google Patents

分析方法、分析装置、および分析プログラム Download PDF

Info

Publication number
WO2017018377A1
WO2017018377A1 PCT/JP2016/071720 JP2016071720W WO2017018377A1 WO 2017018377 A1 WO2017018377 A1 WO 2017018377A1 JP 2016071720 W JP2016071720 W JP 2016071720W WO 2017018377 A1 WO2017018377 A1 WO 2017018377A1
Authority
WO
WIPO (PCT)
Prior art keywords
event
events
block
log
attack
Prior art date
Application number
PCT/JP2016/071720
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 US15/579,463 priority Critical patent/US10516685B2/en
Priority to JP2017530856A priority patent/JP6473234B2/ja
Priority to CN201680043698.2A priority patent/CN107851156B/zh
Priority to EP16830482.2A priority patent/EP3293657B1/en
Publication of WO2017018377A1 publication Critical patent/WO2017018377A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • 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
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • 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

Definitions

  • the present invention relates to an analysis method, an analysis apparatus, and an analysis program.
  • Non-Patent Document 1 In order to detect an attack on a Web application, a technique for associating a plurality of different types of events such as an HTTP request event generated in the same Web server with other events is known. For example, an HTTP request and a FireWall log are compared, and events with similar event occurrence times are associated with each other as related events (see Non-Patent Document 1).
  • event correlation is performed by referring only to the event occurrence time, there is a possibility that the correlation may not be performed correctly. For example, if a plurality of unrelated events occur at a time close to chance, they may be erroneously associated. On the other hand, if the occurrence times of a plurality of related events differ greatly, they may not be related although they are related. If the association of a plurality of events is not accurately performed in this way, there is a possibility that an attack on the Web application cannot be accurately detected.
  • the present invention has been made in view of the above, and it is an object of the present invention to accurately detect an attack on a Web application by accurately associating a plurality of different types of events occurring in the same server.
  • an analysis method includes an event acquisition step of acquiring a log of an event including a request to a server, and a process of a process that processes the event included in the log
  • An event block creation step for creating a set of the request and its related event as an event block using an ID, and an event block created from a log of an event to be detected by an attack is an event created from a normal event.
  • an attack detection step of detecting an event block containing an abnormal event due to an attack when the similarity is obtained by comparing with a block and the similarity is equal to or less than a predetermined threshold value.
  • FIG. 1 is a schematic diagram showing a schematic configuration of a system to be analyzed by an analyzer according to an embodiment of the present invention.
  • FIG. 2 is a schematic diagram showing a schematic configuration of the analyzer according to the present embodiment.
  • FIG. 3 is an explanatory diagram for explaining an event that is an object of analysis processing according to the present embodiment.
  • FIG. 4 is an explanatory diagram for explaining an event block according to the present embodiment.
  • FIG. 5 is a schematic view illustrating a process tree according to this embodiment.
  • FIG. 6 is an explanatory diagram for explaining the transmission source port number method of the present embodiment.
  • FIG. 7 is an explanatory diagram for explaining ID assignment for an event block according to the present embodiment.
  • FIG. 8 is a diagram illustrating a profile list of this embodiment.
  • FIG. 9 is an explanatory diagram illustrating attack detection processing according to the present embodiment.
  • FIG. 10 is a flowchart showing the analysis processing procedure of this embodiment.
  • FIG. 11A is an explanatory diagram for explaining another embodiment.
  • FIG. 11B is an explanatory diagram for explaining another embodiment.
  • FIG. 12 is an explanatory diagram for explaining another embodiment.
  • FIG. 13 is a diagram illustrating a computer that executes an analysis program.
  • FIG. 1 is a schematic view illustrating a schematic configuration of a system to be analyzed by the analysis apparatus according to this embodiment.
  • the Web server 1 operated by the service provider receives a request for the Web server 1 such as an HTTP request from the client terminal 3 via the network 2, and sends a Web application to the user of the client terminal 3.
  • Provide service The Web server 1 stores an event log such as an HTTP request, file access, network access, command execution, and database (DB) access related to Web application service provision in an appropriate storage area.
  • DB database
  • the analysis apparatus 10 acquires an event log from the Web server 1 and associates a plurality of different types of events that have occurred in the Web server 1 by an analysis process described later.
  • the analysis device 10 and the Web server 1 may be configured by the same hardware. In that case, the Web server 1 performs analysis processing.
  • FIG. 2 is a schematic diagram showing a schematic configuration of the analyzer according to the present embodiment.
  • the analysis device 10 is realized by a general-purpose computer such as a workstation or a personal computer, and includes an input unit 11, an output unit 12, a communication control unit 13, a storage unit 14, and a control unit 15.
  • the input unit 11 is realized by using an input device such as a keyboard or a mouse, and inputs various instruction information such as processing start to the control unit 15 in response to an input operation by a data analyst.
  • the output unit 12 is realized by a display device such as a liquid crystal display, a printing device such as a printer, an information communication device, and the like, and outputs a result of analysis processing described later to a data analyst.
  • the communication control unit 13 is realized by a NIC (Network Interface Card) or the like, and controls communication between an external device such as the Web server 1 and the control unit 15 via a telecommunication line such as a LAN (Local Area Network) or the Internet. To do.
  • the storage unit 14 is realized by a semiconductor memory device such as a RAM (Random Access Memory), a flash memory (Flash Memory), or a storage device such as a hard disk or an optical disk, and includes an unrelated event list 141, an event block list 142, The profile list 143 is stored. As described later, these pieces of information are generated in the analysis process based on the event log acquired from the Web server 1 via the communication control unit 13 or the input unit 11.
  • the storage unit 14 may be configured to communicate with the control unit 15 via the communication control unit 13.
  • control unit 15 executes a processing program stored in a memory by an arithmetic processing unit such as a CPU (Central Processing Unit), so that an event acquisition unit 151, an event correlation unit 152, an event ID It functions as a granting unit 153, a profiling unit 154, and an attack detection unit 155.
  • arithmetic processing unit such as a CPU (Central Processing Unit)
  • CPU Central Processing Unit
  • the event acquisition unit 151 acquires an event log including a request to the server. Specifically, the event acquisition unit 151 acquires an event log including an HTTP request from the Web server 1 and formats the format so as to facilitate analysis processing described later, as illustrated in FIG. For example, the event acquisition unit 151 performs the formatting of the HTTP request exemplified by the following expression (1) acquired from the Web server 1 as exemplified by the following expression (2).
  • an event type such as an HTTP request, file access, network access, command execution, or database (DB) access
  • DB database
  • the HTTP request is “type: http_req”
  • the file access is “type: file”
  • the network access is “type: net”
  • the command execution is “type: command”
  • the DB access is “type: db”. "Is set.
  • the event correlation unit 152 For the event acquired by the event acquisition unit 151, the event correlation unit 152 performs event block creation processing for creating a set of HTTP requests and related events as event blocks using the process ID of the process that processed the event. Do. Specifically, as illustrated in FIG. 4, the event correlation unit 152 creates an event block from the shaped event and stores the event block in the event block list 142 of the storage unit 14. In addition, the event correlation unit 152 stores events that are not included in the event block in the unrelated event list 141 of the storage unit 14.
  • the event correlation unit 152 confirms whether or not there is a relationship between the events, depending on the type of event, one of two methods: a process ID method and a source port number method. Apply.
  • a process ID method a process ID of each event (hereinafter, may be abbreviated as PID) is used.
  • PID a process ID of each event
  • the transmission source port number method the transmission source port number of each event (hereinafter sometimes abbreviated as SRC_PORT) is used.
  • the event correlation unit 152 confirms the relationship between the PID of the HTTP request and the PID of each event or the PID of the parent process (parent process ID, hereinafter abbreviated as PPID) and performs association.
  • This process ID method targets an HTTP request and an event including PID and / or PPID such as file access, network access, and command execution.
  • the event correlation unit 152 first obtains a process tree that represents a parent-child relationship of each event in a tree structure with the process that has processed the HTTP request as a parent process.
  • the process tree is obtained by using an OS function such as UNIX (registered trademark) ptree.
  • the event correlation unit 152 selects an event whose occurrence time difference from the HTTP request as the parent process is within a predetermined time ⁇ from among the events including the PIDs constituting the obtained process tree in the HTTP request. Associate as a related event.
  • the predetermined time ⁇ means the shortest time until the OS of the Web server 1 reuses the same PID for different processes.
  • the Web server 1 operates in a mode called “Preform” to prevent a memory leak.
  • Preform mode a process is assigned to each HTTP request, and a plurality of HTTP requests are not processed simultaneously by one process. Therefore, each HTTP request can be identified by the PID within the predetermined time ⁇ .
  • the event correlation unit 152 associates an event associated with the HTTP request in the above process ID method and an event having the same transmission source port number with this HTTP request.
  • This transmission source port number method targets an event including a transmission source port number such as network access and DB access.
  • the event correlation unit 152 confirms the occurrence time for the network access associated with the HTTP request by the process ID method and the DB access in which the included transmission source port number matches. If the difference in generation time from the HTTP request is within ⁇ , the event correlation unit 152 associates this DB access as an event related to the HTTP request and network access.
  • the PID of the HTTP request is not given to the DB access that accesses the DB outside the Web server 1 using TCP communication. Therefore, by confirming the transmission source port number used in the TCP communication between the Web server and the DB, the response to the DB query can be confirmed, and the DB access related to the HTTP request can be specified. Thereby, as illustrated in FIG. 6, the DB access is associated with the HTTP request and the network access by the source port number method.
  • event1, event2, event3, and event6 are associated by the process ID method because the PIDs match (pid: 1001).
  • event4 is associated by the process ID method because PPID (: 1001) matches the PID (: 1001) of event1, that is, event1 is the parent process of event4.
  • event 8 is associated by the process ID method because PPID (: 1002) matches PID (: 1002) of event 4, that is, event 4 is the parent process of event 8.
  • event6 and event7 are associated by the source port number method because the source port numbers (src_port: 50001) match.
  • the event ID assigning unit 153 assigns an event ID that can identify each event in the event block. For example, as illustrated in FIG. 7, an event ID that can identify each event together with the event type is given, such as web1, file2, network1, command1, db1, and the like.
  • the HTTP request is represented by “web”
  • the file access is “file”
  • the network access is “network”
  • the command execution is “command”
  • the DB access is “db”.
  • the profiler 154 abstracts the event block and creates a profile. Specifically, the profiling unit 154 creates, as a profile, a pattern that can identify the event ID and order of the associated events from the event blocks in the event block list 142. For example, a profile illustrated in the following equation (3) is created from the event block illustrated in FIG. Expression (3) represents how many times each event has occurred. For example, Web1: 1 indicates that an event of Web1 has occurred once.
  • the profiling unit 154 stores the created profile in the profile list 143 as illustrated in FIG. Note that the event ID assigning process by the event ID assigning unit 153 and the profile creating process by the profiling unit 154 correspond to learning for an attack detecting process by the attack detecting unit 155 described later.
  • the attack detection unit 155 obtains the similarity by comparing the event block created from the event detection target log with the profile in the profile list 143 created from the normal event, and the similarity is equal to or less than a predetermined threshold. In the case of, attack detection processing for detecting an event block including an abnormal event due to an attack is performed.
  • the attack detection unit 155 first compares the event block to be detected with the profile. That is, the attack detection unit 155 lists an HTTP request (web1) as a parent process and events (web1, file1, file2, command1, command2, network1, db1) included in this event block. In the example shown in FIG. 9, the number of occurrences of each event is also shown.
  • the attack detection unit 155 calculates the similarity between each event included in the event block to be detected and each event of the profile in the profile list 143.
  • the similarity for example, TF-IDF calculated based on two indexes of TF (Term Frequency, word appearance frequency) and IDF (Inverse Document Frequency) is used.
  • the attack detection unit 155 determines that the abnormality is due to the attack. .
  • the attack detection unit 155 determines that the abnormality is due to an attack.
  • the attack detection unit 155 may calculate the similarity between the event block itself and the profile in the profile list 143 instead of calculating the similarity of each event of the event block targeted for attack detection.
  • the attack detection unit 155 may use a profile list 143 created from an abnormal event. In this case, the attack detection unit 155 determines that the abnormality is caused by an attack when the degree of similarity with the profile in the profile list 143 is higher than a predetermined threshold.
  • the event correlation unit 152 first checks whether there is an unprocessed event (step S2). If there is no unprocessed event (step S2, No), the event correlation unit 152 returns to the process of step S1, and then checks whether there is a next unprocessed event. If there is an unprocessed event (step S2, Yes), it is confirmed whether it is an HTTP request (step S3).
  • step S3 If it is an HTTP request (step S3, Yes), the event correlation unit 152 creates an event block including the HTTP request (step S31). Further, if there is an event that can be associated with this HTTP request in the unrelated event list 141, the event correlation unit 152 removes the event from the unrelated event list 141, adds it to this event block (step S32), and returns to the process of step S1. Then check for the next unprocessed event. On the other hand, if the request is not an HTTP request (step S3, No), the event correlation unit 152 checks whether the event includes a PID (step S4).
  • step S4 the event correlation unit 152 confirms whether it can be associated with the event block created in step S31 (step S41). If it can be associated (Yes in step S41), the event correlation unit 152 adds the event to the event block (step S42), returns to the process in step S1, and then refers to the next event. On the other hand, if the association cannot be made (No at Step S41), the event correlation unit 152 adds the event to the unrelated event list 141 (Step S43), returns to the process at Step S1, and then refers to the next event. . If the event does not include the PID (step S4, No), the event correlation unit 152 checks whether the event includes SRC_PORT (step S5).
  • the event correlation unit 152 checks whether it can be associated with the network access event of the event block created in the process of step S31 (step S51). If it can be associated (Yes in step S51), the event correlation unit 152 adds the event to the event block (step S52), returns to the process in step S1, and then refers to the next event. On the other hand, if the association cannot be made (No at Step S51), the event correlation unit 152 adds the event to the unrelated event list 141 (Step S53), returns to the process at Step S1, and then refers to the next event. . If the event does not include SRC_PORT (step S5, No), the event correlation unit 152 refers to the next event after returning to the process of step S1.
  • the event correlation unit 152 creates an event block from a normal event and then creates an event block from the event detection target event log. Then, the attack detection unit 155 compares the event block created from the event detection target event log with the profile in the profile list 143 created by the event ID adding unit 153 and the profiling unit 154 from the normal event. Find the similarity. Further, the attack detection unit 155 performs an attack detection process for detecting an event block including an abnormal event due to an attack when the obtained similarity is equal to or less than a predetermined threshold. Thereby, a series of analysis processing is completed.
  • the event acquisition unit 151 acquires a log of an event including an HTTP request for the Web server 1, and the event correlation unit 152 processes the process ID of the process that processed the event. Is used to create a set of HTTP requests and related events as event blocks. As a result, a plurality of different types of events that occur in the same Web server 1 can be accurately associated.
  • the attack detection unit 155 compares the event block created from the event detection target event log with the profile in the profile list 143 created from the normal event, and obtains the similarity. When it is below the threshold, it is detected as an event block including an abnormal event due to an attack. Therefore, it is possible to accurately detect an attack on the Web application.
  • each HTTP request within a predetermined time ⁇ is identified by PID.
  • PID the number of HTTP requests generated in a very short time within the predetermined time ⁇ .
  • the event acquisition unit 151 acquires the processing start and processing end as events for the HTTP request of the Web server 1. If it does so, the event correlation part 152 should just associate the event which generate
  • the event acquisition unit 151 acquires the start of processing of the event 1 HTTP request as event 1-1 and the end of processing as event 1-2. Also, the process start of event 2 HTTP request is acquired as event 2-1, and the process end is acquired as event 2-2.
  • an event including start is eventx-1
  • an event including end is eventx-2.
  • the event correlation unit 152 correctly sets event3 to event2 even if the PIDs of event1 (event1-1, event1-2) and event2 (event2-1, event2-2) are the same (pid: 1001). Can be associated.
  • the event correlation unit 152 refers to the event occurrence time timestamp, and the event 3 occurrence time is from the event 2-1 occurrence time, that is, the event 2 process start, to the event 2-2 occurrence time, that is, the event 2 process end. Make sure it is between. As a result, event3 is accurately associated with event2 instead of event1.
  • program It is also possible to create a program in which processing executed by the analysis apparatus 10 according to the above embodiment is described in a language that can be executed by a computer. In this case, the same effect as the above-described embodiment can be obtained by the computer executing the program. Furthermore, the program similar to the above-described embodiment may be realized by recording the program on a computer-readable recording medium, and reading and executing the program recorded on the recording medium.
  • a computer that executes an analysis program that realizes the same function as the analysis apparatus 10 will be described.
  • the computer 1000 that executes the analysis program includes, for example, a memory 1010, a CPU 1020, 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 1031.
  • the disk drive interface 1040 is connected to the disk drive 1041.
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1041.
  • a mouse 1051 and a keyboard 1052 are connected to the serial port interface 1050.
  • a display 1061 is connected to the video adapter 1060.
  • the hard disk drive 1031 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094.
  • Each table described in the above embodiment is stored in the hard disk drive 1031 or the memory 1010, for example.
  • the analysis program is stored in the hard disk drive 1031 as a program module 1093 in which a command executed by the computer 1000 is described, for example.
  • a program module describing each process executed by the analysis apparatus 10 described in the above embodiment is stored in the hard disk drive 1031.
  • program data 1094 data used for information processing by the analysis program is stored as program data 1094 in, for example, the hard disk drive 1031.
  • the CPU 1020 reads the program module 1093 and the program data 1094 stored in the hard disk drive 1031 to the RAM 1012 as necessary, and executes the above-described procedures.
  • program module 1093 and the program data 1094 related to the analysis program are not limited to being stored in the hard disk drive 1031, but are stored in, for example, a removable storage medium and read out by the CPU 1020 via the disk drive 1041 or the like. May be.
  • the program module 1093 and the program data 1094 related to the analysis program are stored in another computer connected via a network such as a LAN (Local Area Network) or a WAN (Wide Area Network), and via the network interface 1070. It may be read by the CPU 1020.
  • LAN Local Area Network
  • WAN Wide Area Network
  • the present invention can be applied to detection of attacks on Web applications.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

同一のWebサーバ内で発生した異種の複数のイベントを正確に関連付けして、Webアプリケーションへの攻撃を正確に検知するため、イベント取得部(151)がWebサーバに対するHTTPリクエストを含むイベントのログを取得し、イベント相関部(152)が、ログに含まれるイベントを処理したプロセスのプロセスIDを用いて、HTTPリクエストとそれに関連するイベントとの集合をイベントブロックとして作成し、攻撃検知部(155)が、攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたプロファイルリスト(143)のプロファイルに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する。イベント相関部(152)は、さらに、イベントに含まれる送信元ポート番号を用いてイベントブロックを作成する。

Description

分析方法、分析装置、および分析プログラム
 本発明は、分析方法、分析装置、および分析プログラムに関する。
 近年、Webアプリケーションは、多くのサービスで利用され、社会基盤の一部となりつつある。同時に、Webアプリケーションの脆弱性を悪用する攻撃も増加している。このような攻撃によりコンテンツ改ざんや情報漏洩が発生すると、サービス提供者に甚大な被害が発生するため、攻撃を検知する必要がある。
 Webアプリケーションへの攻撃を検知するため、同一のWebサーバ内で発生したHTTPリクエストイベントと他のイベント等の異種の複数のイベントを関連付けする技術が知られている。例えば、HTTPリクエストとFireWallログとが比較され、イベントの発生時刻が近いものが相互に関連があるイベントとして関連付けされている(非特許文献1参照)。
Florian Skopik,Roman Fiedler,"Intrusion Detection in Distributed Systems using Fingerprinting and Massive Event Correlation"[online],2012年、[平成27年7月16日検索]、インターネット<URL:http://www.ait.ac.at/uploads/media/Skopik_Fiedler_2013_02.pdf>
 しかしながら、イベントの発生時刻のみを参照してイベントの関連付けを行うと、正しく関連付けが行われないケースが発生する恐れがある。例えば、関連がない複数のイベントが偶然に近い時刻に発生すると、誤って関連付けされてしまう場合がある。一方、関連がある複数のイベントの発生時刻が大きく異なると、関連があるにも関わらず関連付けされない場合がある。このように複数のイベントの関連付けが正確に行われないと、Webアプリケーションへの攻撃を正確に検知することができない恐れがある。
 本発明は、上記に鑑みてなされたものであって、同一のサーバ内で発生した異種の複数のイベントを正確に関連付けして、Webアプリケーションへの攻撃を正確に検知することを目的とする。
 上述した課題を解決し、目的を達成するために、本発明に係る分析方法は、サーバに対するリクエストを含むイベントのログを取得するイベント取得工程と、前記ログに含まれるイベントを処理したプロセスのプロセスIDを用いて、前記リクエストとそれに関連するイベントとの集合をイベントブロックとして作成するイベントブロック作成工程と、攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたイベントブロックに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知工程と、を含んだことを特徴とする。
 本発明によれば、同一のサーバ内で発生した異種の複数のイベントを正確に関連付けして、Webアプリケーションへの攻撃を正確に検知することができる。
図1は、本発明の一実施形態に係る分析装置の分析対象のシステムの概略構成を示す模式図である。 図2は、本実施形態に係る分析装置の概略構成を示す模式図である。 図3は、本実施形態の分析処理の対象とするイベントを説明するための説明図である。 図4は、本実施形態のイベントブロックを説明するための説明図である。 図5は、本実施形態のプロセスツリーを例示する模式図である。 図6は、本実施形態の送信元ポート番号方式を説明するための説明図である。 図7は、本実施形態のイベントブロックに対するID付与を説明するための説明図である。 図8は、本実施形態のプロファイルリストを例示する図である。 図9は、本実施形態の攻撃検知処理を示す説明図である。 図10は、本実施形態の分析処理手順を示すフローチャートである。 図11Aは、他の実施形態を説明するための説明図である。 図11Bは、他の実施形態を説明するための説明図である。 図12は、他の実施形態を説明するための説明図である。 図13は、分析プログラムを実行するコンピュータを示す図である。
 以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[システム構成]
 図1は、本実施形態に係る分析装置が分析対象とするシステムの概略構成を例示する模式図である。図1に示すように、サービス提供者が運用するWebサーバ1は、ネットワーク2を介してクライアント端末3からのHTTPリクエスト等のWebサーバ1に対するリクエストを受け付けて、クライアント端末3の使用者にWebアプリケーションサービスを提供する。Webサーバ1は、Webアプリケーションサービス提供に関するHTTPリクエスト、ファイルアクセス、ネットワークアクセス、コマンド実行、およびデータベース(DB)アクセス等のイベントのログを適当な記憶領域に記憶している。
 このようなシステムにおいて、本実施形態の分析装置10は、Webサーバ1からイベントのログを取得し、後述する分析処理により、Webサーバ1内で発生した異種の複数のイベントの関連付けを行う。なお、分析装置10とWebサーバ1とを同一のハードウェアで構成してもよい。その場合、Webサーバ1が分析処理を行う。
[分析装置の構成]
 図2は、本実施形態に係る分析装置の概略構成を示す模式図である。分析装置10は、ワークステーションやパソコン等の汎用コンピュータで実現され、入力部11と、出力部12と、通信制御部13と、記憶部14と、制御部15とを備える。
 入力部11は、キーボードまたはマウス等の入力デバイスを用いて実現され、データ分析者による入力操作に対応して、制御部15に対して処理開始などの各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置等によって実現され、後述する分析処理の結果等をデータ分析者に対して出力する。通信制御部13は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介したWebサーバ1等の外部の装置と制御部15との通信を制御する。
 記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現され、未関連イベントリスト141と、イベントブロックリスト142と、プロファイルリスト143とを記憶する。これらの情報は、後述するように、通信制御部13あるいは入力部11を介してWebサーバ1から取得されるイベントのログをもとに、分析処理において生成される。なお、記憶部14は、通信制御部13を介して制御部15と通信する構成としてもよい。
 制御部15は、CPU(Central Processing Unit)等の演算処理装置がメモリに記憶された処理プログラムを実行することにより、図2に例示するように、イベント取得部151、イベント相関部152、イベントID付与部153、プロファイル化部154、および攻撃検知部155として機能する。
 イベント取得部151は、サーバに対するリクエストを含むイベントのログを取得する。具体的に、イベント取得部151は、Webサーバ1からHTTPリクエストを含むイベントのログを取得し、図3に例示するように、後述する分析処理を行い易くするために形式を整形する。例えば、イベント取得部151は、Webサーバ1から取得した次式(1)に例示されるHTTPリクエストを、次式(2)に例示するように形式の整形を行う。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 この整形では、例えば、HTTPリクエスト、ファイルアクセス、ネットワークアクセス、コマンド実行、またはデータベース(DB)アクセス等のイベントの種類が、項目「type」に設定される。具体的には、例えば、HTTPリクエストは「type:http_req」、ファイルアクセスは「type:file」、ネットワークアクセスは「type:net」、コマンド実行は「type:command」、DBアクセスは「type:db」として設定される。
 イベント相関部152は、イベント取得部151により取得されたイベントについて、イベントを処理したプロセスのプロセスIDを用いて、HTTPリクエストとそれに関連するイベントとの集合をイベントブロックとして作成するイベントブロック作成処理を行う。具体的に、イベント相関部152は、図4に例示するように、整形されたイベントからイベントブロックを作成して、記憶部14のイベントブロックリスト142に格納する。また、イベント相関部152は、イベントブロックに含められなかったイベントを、記憶部14の未関連イベントリスト141に格納する。
 イベント相関部152は、イベントブロック作成処理を行う際、各イベント間の関連の有無を確認する方式として、イベントの種類に応じて、プロセスID方式、送信元ポート番号方式の2つの方式のいずれかを適用する。ここで、プロセスID方式では、各イベントのプロセスID(以下、PIDと略記する場合もある)が用いられる。一方、送信元ポート番号方式では、各イベントの送信元ポート番号(以下、SRC_PORTと略記する場合もある)が用いられる。
 プロセスID方式では、イベント相関部152は、HTTPリクエストのPIDと各イベントのPIDまたは親プロセスのPID(親プロセスID、以下、PPIDと略記する)との関係を確認して関連付けを行う。このプロセスID方式は、HTTPリクエストと、ファイルアクセス、ネットワークアクセス、コマンド実行等のPIDおよび/またはPPIDが含まれるイベントが対象とされる。
 具体的に、イベント相関部152は、まず、図5に例示するように、HTTPリクエストを処理したプロセスを親プロセスとした各イベントの親子関係を木構造で表すプロセスツリーを求める。プロセスツリーは、例えばUNIX(登録商標)のpstree等のOSの機能を用いることにより求められる。図5の例では、HTTPリクエストのPIDと、ファイルアクセス、コマンド実行、およびネットワークアクセスのPIDまたはPPIDとが一致する等して親子関係にあることが表されている。すなわち、HTTPリクエスト、ファイルアクセス、ネットワークアクセスのPIDが一致している(PID=1001)。また、ファイルアクセスに続くコマンド実行のPPID(=1001)がファイルアクセスのPIDと一致することから、親子関係が確認される。このコマンド実行のPID(=1002)と、これに続くコマンド実行のPPID(=1002)とが一致することから、親子関係が確認される。
 次に、イベント相関部152は、求められたプロセスツリーを構成するPIDが含まれるイベントのうち、親プロセスであるHTTPリクエストとの発生時刻の差が所定時間Δ以内のイベントを、このHTTPリクエストに関連があるイベントとして関連付けする。
 ここで、所定時間Δとは、Webサーバ1のOSが、異なるプロセスに同一のPIDを再利用するまでの最短の時間を意味する。通常、Webサーバ1は、Preforkと呼ばれるモードで動作してメモリリークを防止している。このPreforkモードでは、各HTTPリクエストにプロセスが割り当てられ、1つのプロセスで同時に複数のHTTPリクエストの処理は行われない。したがって、所定時間Δ以内には、各HTTPリクエストをPIDで識別することができる。
 送信元ポート番号方式では、イベント相関部152は、上記のプロセスID方式でHTTPリクエストに関連付けされたイベントと、含まれる送信元ポート番号が一致するイベントをこのHTTPリクエストに関連付けする。この送信元ポート番号方式は、ネットワークアクセス、DBアクセス等の送信元ポート番号が含まれるイベントが対象とされる。
 具体的に、イベント相関部152は、プロセスID方式でHTTPリクエストに関連付けされたネットワークアクセスと、含まれる送信元ポート番号が一致するDBアクセスについて、発生時刻を確認する。そして、HTTPリクエストとの発生時刻の差がΔ以内であれば、イベント相関部152は、このDBアクセスをHTTPリクエストおよびネットワークアクセスに関連があるイベントとして関連付けする。
 通常、Webサーバ1の外部のDBにTCP通信を利用してアクセスするDBアクセスには、HTTPリクエストのPIDが付与されない。そこで、WebサーバとDBとの間のTCP通信で用いられる送信元ポート番号を確認することにより、DBクエリに対する応答を確認でき、HTTPリクエストに関連があるDBアクセスを特定することができる。これにより、図6に例示するように、送信元ポート番号方式によりDBアクセスがHTTPリクエストおよびネットワークアクセスに関連付けされる。
 図6の例では、HTTPリクエストとネットワークアクセスとが、PIDが一致する(PID=1001)ことから、プロセスID方式により関連付けされている。さらに、ネットワークアクセスとDBアクセスとが、送信元ポート番号が一致する(SRC_PORT=50001)ことから、送信元ポート番号方式により関連付けされている。
 同様に、図4の例では、event1とevent2、event3、およびevent6とは、PIDが一致する(pid:1001)ことから、プロセスID方式により関連付けされている。また、event4は、PPID(:1001)がevent1のPID(:1001)と一致すること、すなわち、event1がevent4の親プロセスであることから、プロセスID方式により関連付けされている。また、event8は、PPID(:1002)がevent4のPID(:1002)と一致すること、すなわち、event4がevent8の親プロセスであることから、プロセスID方式により関連付けされている。さらに、event6とevent7とは、送信元ポート番号(src_port:50001)が一致することから、送信元ポート番号方式により関連付けされている。
 イベントID付与部153は、イベントブロック内の各イベントを識別可能なイベントIDを付与する。例えば、図7に例示するように、web1、file2、network1、command1、db1等のように、各イベントをイベントの種類とともに識別可能なイベントIDが付与される。図7の例では、HTTPリクエストが「web」、ファイルアクセスが「file」、ネットワークアクセスが「network」、コマンド実行が「command」、DBアクセスが「db」で表されている。
 プロファイル化部154は、イベントブロックを抽象化してプロファイルを作成する。具体的に、プロファイル化部154は、イベントブロックリスト142のイベントブロックから、関連付けされたイベントのイベントIDと順序とを識別可能なパターンをプロファイルとして作成する。例えば、図7に例示されたイベントブロックから、次式(3)に例示するプロファイルが作成される。なお、式(3)には、各イベントが何回発生したかが表されている。例えば、Web1:1とは、Web1のイベントが1回発生したことを表している。
Figure JPOXMLDOC01-appb-M000003
 そして、プロファイル化部154は、作成したプロファイルを、図8に例示するように、プロファイルリスト143に格納する。なお、上記のイベントID付与部153によるイベントID付与処理と、プロファイル化部154によるプロファイル作成処理とは、後述する攻撃検知部155による攻撃検知処理のための学習に相当する。
 攻撃検知部155は、攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたプロファイルリスト143のプロファイルに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知処理を行う。
 具体的に、攻撃検知部155は、図9に例示するように、まず、検知対象のイベントブロックをプロファイルと対比させる。すなわち、攻撃検知部155は、親プロセスとしてのHTTPリクエスト(web1)と、このイベントブロックに含まれるイベント(web1,file1,file2,command1,command2,network1,db1)とを列挙する。図9に示す例では、各イベントの発生回数が併せて示されている。
 そして、攻撃検知部155は、検知対象のイベントブロックに含まれる各イベントとプロファイルリスト143のプロファイルの各イベントとの類似度を算出する。ここで類似度は、例えば、TF(Term Frequency、単語の出現頻度)とIDF(Inverse Document Frequency、逆文書頻度)との二つの指標にもとづいて算出されるTF-IDF等が用いられる。図9の例では、類似度に代えて非類似度を算出し、この非類似度が所定の閾値より大きい異常値を示した場合に、攻撃検知部155は、攻撃による異常と判定している。例えば、図9に示す例では、command2の非類似度2.3が所定の閾値より大きい異常値であることから、攻撃検知部155は、攻撃による異常と判定している。
 なお、攻撃検知部155は、攻撃検知対象のイベントブロックの各イベントの類似度を算出する代わりに、イベントブロックそのものとプロファイルリスト143のプロファイルとの類似度を算出してもよい。また、攻撃検知部155は、異常なイベントから作成されたプロファイルリスト143を用いてもよい。その場合には、攻撃検知部155は、プロファイルリスト143のプロファイルとの類似度が所定の閾値より高い場合に、攻撃による異常と判定する。
[分析処理]
 次に、図10のフローチャートを参照して、分析装置10における分析処理手順について説明する。図10のフローチャートは、例えば、データ分析者により入力部11を介して分析開始の指示入力があったタイミングで開始となり、分析終了の命令を示す入力がある(ステップS1,Yes)まで、以降の処理が続行される(ステップS1,No)。
 イベント相関部152は、まず、未処理のイベントがあるかをチェックする(ステップS2)。イベント相関部152は、未処理のイベントがなければ(ステップS2,No)、ステップS1の処理に戻した後、次の未処理のイベントがあるかをチェックする。未処理のイベントがあれば(ステップS2,Yes)、HTTPリクエストであるか否かを確認する(ステップS3)。
 HTTPリクエストであれば(ステップS3,Yes)、イベント相関部152は、このHTTPリクエストを含むイベントブロックを作成する(ステップS31)。また、イベント相関部152は、未関連イベントリスト141に、このHTTPリクエストに関連付けできるイベントがあれば、未関連イベントリスト141から取り除き、このイベントブロックに加え(ステップS32)、ステップS1の処理に戻した後、次の未処理イベントがあるかをチェックする。一方、HTTPリクエストでなければ(ステップS3,No)、イベント相関部152は、PIDが含まれるイベントか否かを確認する(ステップS4)。
 PIDが含まれるイベントであれば(ステップS4,Yes)、イベント相関部152は、ステップS31の処理で作成済みのイベントブロックに関連付けできるかを確認する(ステップS41)。関連付けできる場合には(ステップS41,Yes)、イベント相関部152は、当該イベントをイベントブロックに加え(ステップS42)、ステップS1の処理に戻した後、次のイベントを参照する。一方、関連付けできない場合には(ステップS41,No)、イベント相関部152は、当該イベントを未関連イベントリスト141に加え(ステップS43)、ステップS1の処理に戻した後、次のイベントを参照する。PIDが含まれるイベントでなければ(ステップS4,No)、イベント相関部152は、SRC_PORTが含まれるイベントか否かを確認する(ステップS5)。
 SRC_PORTが含まれるイベントであれば(ステップS5,Yes)、イベント相関部152は、ステップS31の処理で作成済みのイベントブロックのネットワークアクセスイベントに関連付けできるかを確認する(ステップS51)。関連付けできる場合には(ステップS51,Yes)、イベント相関部152は、当該イベントをイベントブロックに加え(ステップS52)、ステップS1の処理に戻した後、次のイベントを参照する。一方、関連付けできない場合には(ステップS51,No)、イベント相関部152は、当該イベントを未関連イベントリスト141に加え(ステップS53)、ステップS1の処理に戻した後、次のイベントを参照する。SRC_PORTが含まれるイベントでなければ(ステップS5,No)、イベント相関部152は、ステップS1の処理に戻した後、次のイベントを参照する。
 イベント相関部152は、上記の処理により、正常なイベントからイベントブロックを作成した後、攻撃検知対象のイベントのログからイベントブロックを作成する。そして、攻撃検知部155が、攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントからイベントID付与部153およびプロファイル化部154により作成されたプロファイルリスト143のプロファイルに対比させて類似度を求める。また、攻撃検知部155が、求めた類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知処理を行う。これにより、一連の分析処理が終了する。
 以上、説明したように、本実施形態の分析装置10では、イベント取得部151がWebサーバ1に対するHTTPリクエストを含むイベントのログを取得し、イベント相関部152が、イベントを処理したプロセスのプロセスIDを用いて、HTTPリクエストとそれに関連するイベントとの集合をイベントブロックとして作成する。これにより、同一のWebサーバ1内で発生した異種の複数のイベントを正確に関連付けすることができる。
 また、攻撃検知部155が、攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたプロファイルリスト143のプロファイルに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する。したがって、Webアプリケーションへの攻撃を正確に検知することが可能となる。
 なお、上記したイベント相関部152の処理において、所定時間Δ以内の各HTTPリクエストをPIDで識別している。ただし、図11Aに示すように、所定時間Δ以内のごく短時間に複数のHTTPリクエストが発生した場合に、同一のPID(=1)で処理が行われる可能性がある。この場合に、後続するイベントが異なるHTTPリクエストに誤って関連付けされる恐れがある。そこで、図11Bに示すように、イベント取得部151が、Webサーバ1のHTTPリクエストについて、処理開始および処理終了をイベントとして取得する。そうすれば、イベント相関部152は、HTTPリクエストの処理開始から処理終了までの間に発生したイベントをこのHTTPリクエストに関連付けすればよい。
 具体的には、図12に例示するように、イベント取得部151が、event1のHTTPリクエストの処理開始をevent1-1、処理終了をevent1-2として取得する。また、event2のHTTPリクエストの処理開始をevent2-1、処理終了をevent2-2として取得する。ここでは、startが含まれているイベントをeventx-1、endが含まれているイベントをeventx-2としている。これにより、イベント相関部152は、event1(event1-1,event1-2)、event2(event2-1,event2-2)のPIDが同一(pid:1001)であっても、event3を正確にevent2に関連付けすることができる。すなわち、イベント相関部152は、各イベントの発生時刻timestampを参照して、event3の発生時刻が、event2-1の発生時刻すなわちevent2の処理開始から、event2-2の発生時刻すなわちevent2の処理終了までの間であることを確認する。これにより、event3が正確にevent1ではなくevent2に関連付けされる。
[プログラム]
 上記実施形態に係る分析装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、係るプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、分析装置10と同様の機能を実現する分析プログラムを実行するコンピュータの一例を説明する。
 図13に示すように、分析プログラムを実行するコンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
 メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
 ここで、図13に示すように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ1031やメモリ1010に記憶される。
 また、分析プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した分析装置10が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ1031に記憶される。
 また、分析プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
 なお、分析プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、分析プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
 以上のように、本発明は、Webアプリケーションへの攻撃の検知に適用することができる。
 1 Webサーバ
 2 ネットワーク
 3 クライアント端末
 10 分析装置
 11 入力部
 12 出力部
 13 通信制御部
 14 記憶部
 141 未関連イベントリスト
 142 イベントブロックリスト
 143 プロファイルリスト
 15 制御部
 151 イベント取得部
 152 イベント相関部
 153 イベントID付与部
 154 プロファイル化部
 155 攻撃検知部

Claims (5)

  1.  サーバに対するリクエストを含むイベントのログを取得するイベント取得工程と、
     前記ログに含まれるイベントを処理したプロセスのプロセスIDを用いて、前記リクエストとそれに関連するイベントとの集合をイベントブロックとして作成するイベントブロック作成工程と、
     攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたイベントブロックに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知工程と、
     を含んだことを特徴とする分析方法。
  2.  前記イベントブロック作成工程において、さらに前記イベントに含まれる送信元ポート番号を用いてイベントブロックを作成することを特徴とする請求項1に記載の分析方法。
  3.  前記イベント取得工程において、前記リクエストについて、処理開始および処理終了をそれぞれイベントとして取得して、
     前記イベントブロック作成工程において、発生時刻が該リクエストの処理開始のイベントの発生時刻から処理終了のイベントの発生時刻までの間であるイベントを、該リクエストに関連があるイベントとして前記イベントブロックに含める、
     ことを特徴とする請求項1または2に記載の分析方法。
  4.  サーバに対するリクエストを含むイベントのログを取得するイベント取得部と、
     前記ログに含まれるイベントを処理したプロセスのプロセスIDを用いて、前記リクエストとそれに関連するイベントとの集合をイベントブロックとして作成するイベントブロック作成部と、
     攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたイベントブロックに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知部と、
     を備えることを特徴とする分析装置。
  5.  サーバに対するリクエストを含むイベントのログを取得するイベント取得ステップと、
     前記ログに含まれるイベントを処理したプロセスのプロセスIDを用いて、前記リクエストとそれに関連するイベントとの集合をイベントブロックとして作成するイベントブロック作成ステップと、
     攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたイベントブロックに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知ステップと、
     をコンピュータに実行させるための分析プログラム。
PCT/JP2016/071720 2015-07-30 2016-07-25 分析方法、分析装置、および分析プログラム WO2017018377A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/579,463 US10516685B2 (en) 2015-07-30 2016-07-25 Analysis method, analysis device and analysis program
JP2017530856A JP6473234B2 (ja) 2015-07-30 2016-07-25 分析方法、分析装置、および分析プログラム
CN201680043698.2A CN107851156B (zh) 2015-07-30 2016-07-25 分析方法、分析装置和记录介质
EP16830482.2A EP3293657B1 (en) 2015-07-30 2016-07-25 Analysis method, analysis device, and analysis program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015151264 2015-07-30
JP2015-151264 2015-07-30

Publications (1)

Publication Number Publication Date
WO2017018377A1 true WO2017018377A1 (ja) 2017-02-02

Family

ID=57884374

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/071720 WO2017018377A1 (ja) 2015-07-30 2016-07-25 分析方法、分析装置、および分析プログラム

Country Status (5)

Country Link
US (1) US10516685B2 (ja)
EP (1) EP3293657B1 (ja)
JP (1) JP6473234B2 (ja)
CN (1) CN107851156B (ja)
WO (1) WO2017018377A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020160679A (ja) * 2019-03-26 2020-10-01 日本電気株式会社 スクリプト検出装置、方法及びプログラム
US20210105253A1 (en) * 2019-10-07 2021-04-08 Cameron International Corporation Security system and method for pressure control equipment
CN115801305A (zh) * 2022-09-08 2023-03-14 武汉思普崚技术有限公司 一种网络攻击的检测识别方法及相关设备

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3053683A1 (en) * 2017-02-17 2018-08-23 Royal Bank Of Canada Web application firewall
WO2018159380A1 (ja) * 2017-03-03 2018-09-07 日本電信電話株式会社 学習装置、再学習要否判定方法及び再学習要否判定プログラム
CN109034781B (zh) * 2018-06-27 2022-02-22 美味不用等(上海)信息科技股份有限公司 一种收银系统识别方法、识别装置及计算机可读存储介质
US11017085B2 (en) * 2018-07-06 2021-05-25 Percepio AB Methods and nodes for anomaly detection in computer applications
CN112165471B (zh) * 2020-09-22 2022-05-24 杭州安恒信息技术股份有限公司 一种工控系统流量异常检测方法、装置、设备及介质
CN116881917B (zh) * 2023-09-08 2023-11-10 北京安天网络安全技术有限公司 恶意进程关联处理方法、装置、电子设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0985995A1 (en) * 1998-09-09 2000-03-15 International Business Machines Corporation Method and apparatus for intrusion detection in computers and computer networks
JP2004186878A (ja) * 2002-12-02 2004-07-02 Keyware Solutions Inc 侵入検知装置及び侵入検知プログラム
JP2005038116A (ja) * 2003-07-18 2005-02-10 Hitachi Ltd 不正侵入分析装置
WO2014174681A1 (ja) * 2013-04-26 2014-10-30 株式会社日立製作所 特定装置、特定方法、および特定プログラム
JP2014531647A (ja) * 2011-09-09 2014-11-27 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 基準ベースラインに基づき、イベントシーケンス中の時間的位置に従ってイベントを評価するシステム及び方法
JP5640167B1 (ja) * 2014-03-31 2014-12-10 株式会社ラック ログ分析システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008151321A2 (en) * 2007-06-08 2008-12-11 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for enforcing a security policy in a network including a plurality of components
US8069374B2 (en) * 2009-02-27 2011-11-29 Microsoft Corporation Fingerprinting event logs for system management troubleshooting
JP5530897B2 (ja) * 2010-10-28 2014-06-25 株式会社日立メディコ 機器障害分析装置、機器障害分析方法、および機器障害分析プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0985995A1 (en) * 1998-09-09 2000-03-15 International Business Machines Corporation Method and apparatus for intrusion detection in computers and computer networks
JP2004186878A (ja) * 2002-12-02 2004-07-02 Keyware Solutions Inc 侵入検知装置及び侵入検知プログラム
JP2005038116A (ja) * 2003-07-18 2005-02-10 Hitachi Ltd 不正侵入分析装置
JP2014531647A (ja) * 2011-09-09 2014-11-27 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 基準ベースラインに基づき、イベントシーケンス中の時間的位置に従ってイベントを評価するシステム及び方法
WO2014174681A1 (ja) * 2013-04-26 2014-10-30 株式会社日立製作所 特定装置、特定方法、および特定プログラム
JP5640167B1 (ja) * 2014-03-31 2014-12-10 株式会社ラック ログ分析システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3293657A4 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020160679A (ja) * 2019-03-26 2020-10-01 日本電気株式会社 スクリプト検出装置、方法及びプログラム
JP7302223B2 (ja) 2019-03-26 2023-07-04 日本電気株式会社 スクリプト検出装置、方法及びプログラム
US20210105253A1 (en) * 2019-10-07 2021-04-08 Cameron International Corporation Security system and method for pressure control equipment
US11765131B2 (en) * 2019-10-07 2023-09-19 Schlumberger Technology Corporation Security system and method for pressure control equipment
CN115801305A (zh) * 2022-09-08 2023-03-14 武汉思普崚技术有限公司 一种网络攻击的检测识别方法及相关设备
CN115801305B (zh) * 2022-09-08 2023-11-07 武汉思普崚技术有限公司 一种网络攻击的检测识别方法及相关设备

Also Published As

Publication number Publication date
EP3293657A1 (en) 2018-03-14
US10516685B2 (en) 2019-12-24
EP3293657B1 (en) 2019-09-18
EP3293657A4 (en) 2019-01-02
CN107851156B (zh) 2021-06-04
CN107851156A (zh) 2018-03-27
US20180167406A1 (en) 2018-06-14
JPWO2017018377A1 (ja) 2017-12-07
JP6473234B2 (ja) 2019-02-20

Similar Documents

Publication Publication Date Title
JP6473234B2 (ja) 分析方法、分析装置、および分析プログラム
US9900344B2 (en) Identifying a potential DDOS attack using statistical analysis
JP6106340B2 (ja) ログ分析装置、攻撃検知装置、攻撃検知方法およびプログラム
US10944784B2 (en) Identifying a potential DDOS attack using statistical analysis
US9300682B2 (en) Composite analysis of executable content across enterprise network
US20160226893A1 (en) Methods for optimizing an automated determination in real-time of a risk rating of cyber-attack and devices thereof
WO2018159337A1 (ja) プロファイル生成装置、攻撃検知装置、プロファイル生成方法、および、プロファイル生成プログラム
EP3547121B1 (en) Combining device, combining method and combining program
CN103279710A (zh) Internet信息系统恶意代码的检测方法和系统
JP6691240B2 (ja) 判定装置、判定方法、および、判定プログラム
EP3312755B1 (en) Method and apparatus for detecting application
CN108804914B (zh) 一种异常数据检测的方法及装置
JP6623128B2 (ja) ログ分析システム、ログ分析方法及びログ分析装置
Yamada et al. Robust identification of browser fingerprint comparison using edit distance
US20220035914A1 (en) Information processing device, control method, and program
US20140143871A1 (en) Method of inspecting mass websites by visiting
KR101725450B1 (ko) 웹 페이지에 안전성을 제공하기 위한 평판관리 시스템 및 방법
JP6070688B2 (ja) イベント相関規則検出システム、イベント相関規則検出方法およびイベント相関規則検出用プログラム
WO2023175954A1 (ja) 情報処理装置、情報処理方法、及びコンピュータ読み取り可能な記録媒体
GENGE et al. Identifying chains of software vulnerabilities: a passive non-intrusive methodology

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: 16830482

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017530856

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15579463

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2016830482

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE