A Graph Stream Mining Pipeline for Efficient Subgraph Discovery

The graph stream mining pipeline system addresses inefficiencies in botnet detection by parallelizing and pipelining the process, achieving real-time and accurate identification of botnets in network flow data with reduced false positives.

JP7602482B2Active Publication Date: 2024-12-18NTT SECURITY CORP(US)
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2021557956
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-03-28
Filing Date
2020-03-30
Publication Date
2024-12-18
Estimated Expiration
2040-03-30

AI Technical Summary

Technical Problem

Existing graph mining systems are inefficient and unsuitable for large sets of continuously updated data, such as network flow data, leading to time-consuming and error-prone botnet detection in cybersecurity.

Method used

A graph stream mining pipeline system that significantly parallelizes and pipelines the process, enabling efficient and scalable detection of botnets by analyzing network flow data as a directed graph, using parallel processing and subgraph detection criteria.

Benefits of technology

The system achieves real-time botnet detection with reduced false positives and improved interpretability by leveraging parallel processing and subgraph detection, identifying unknown botnet components and validating results through external sources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007602482000001
    Figure 0007602482000001
  • Figure 0007602482000002
    Figure 0007602482000002
  • Figure 0007602482000003
    Figure 0007602482000003
Patent Text Reader

Abstract

The graph stream mining processing system and method may be used to analyze data from multiple data streams. In one embodiment, the graph stream mining processing system and method may be used to detect malicious nodes of one or more candidate botnets.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates generally to graph analysis, and more particularly to detecting subgraphs that are constructed for particular purposes and / or reasons. [Background technology]

[0002] Graph mining is widely used in various domains including bioinformatics, program flow analysis, computer networks, and cybersecurity. In graph mining, a data set is represented as a graph and analyzed to obtain insights from the graph. Graph stream mining is a type of graph mining that analyzes streams of graph data. Graph stream mining can be used, for example, for the detection of "botnets" in the cybersecurity domain. A botnet is a group of malicious computers that are controlled and used by an attacker across the Internet in many ways. Today, many cybersecurity attacks use botnets. For example, tens of thousands of malicious computers are used for large-scale distributed denial of service (DDoS) attacks. Many of these malicious computers are owned by consumers, infected with malware, and exploited by attackers. Botnets affect Internet services and are therefore becoming a very big threat to society worldwide. It is therefore important to detect the structure of botnets and identify their constituents so that computer networks can be protected from botnet attacks and ultimately botnets can be identified and neutralized.

[0003] Internet service providers (ISPs) typically collect network flow data ("netflow"), which is a record of communications between computers on the Internet, i.e., historical data showing computers communicating with each other. Network flow data can be represented as a directed graph, in which computers are represented as nodes and flows (or communications between computers) are represented as edges. The network flow data represented as a graph is then analyzed to detect botnets in the Internet. Such detection is time-consuming and error-prone due to the sheer volume and complexity of the data to be analyzed.

[0004] Thus, known existing systems and methods for performing graph mining suffer from technical problems because they are too inefficient to apply to large sets of continuously updated data, such as network flow data, and therefore cannot be used to effectively detect, for example, botnets. It is therefore desirable to provide a system and method for graph mining that addresses the inefficiency and scalability problem and provides a technical solution to this technical problem, which is the objective to which the present disclosure is directed. [Brief description of the drawings]

[0005] [Figure 1A] FIG. 2 illustrates an example of a botnet that may be detected by a graph stream mining processing system. [Figure 1B] FIG. 1 shows a snapshot of the Trickbot botnet. [Diagram 2] FIG. 1 illustrates an embodiment of a botnet detection system that includes a graph stream mining processing system. [Diagram 3] 3 illustrates an example malicious IP address seed generated by the malicious seed generator of FIG. 2. [Figure 4A]FIG. 1 illustrates a graph stream mining processing system that may be used for botnet detection. [Figure 4B] FIG. 1 illustrates a graph stream mining processing system that may be used for botnet detection. [Diagram 5] FIG. 1 illustrates a method for botnet detection using graph stream mining processing. [Figure 6] FIG. 1 illustrates an example set of seed subgraph matching criteria that may be input to the graph stream processing method. [Figure 7A-7C] FIG. 2 illustrates examples of subgraph detection rules that may be implemented by a graph stream mining processing system. [Figure 8] FIG. 13 is a diagram illustrating an example of network flow data. [Figure 9] FIG. 2 illustrates an example of a network flow graph generated from exemplary network flow data. [Figure 10] FIG. 2 illustrates an example of a user interface for a system that shows data about botnets. [Figure 11] FIG. 13 illustrates an example of a user interface showing data about a trickbot. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0006] The present disclosure is particularly applicable to a graph stream mining pipeline system having elements disclosed below for use in botnet detection, and it is in this context that the disclosure will be described, however, the graph stream mining pipeline system can be used on various types of data sets and is not limited to the botnet example discussed below, and it will be understood that the graph stream mining pipeline system and method can be implemented differently than disclosed below, such that the system and method have greater utility and other implementations thereof are within the scope of the present disclosure.

[0007] The disclosed system and method provide a technical solution to the above-mentioned technical problems due to inefficiency and scalability by significantly parallelizing and pipelined the process. Thus, the system and method can be used in any graph streaming mining task to find nodes related to a given seed node from a large amount of graph streaming data. Thus, the disclosed system and method enable an efficient and scalable pipeline that can be used as graph streaming mining, including future graph stream mining, which can leverage the efficient and scalable processing power implemented by the disclosed system and method.

[0008] Hereinafter, an illustrative example of graph stream mining is a system that detects botnets used for TrickBot malware. The botnet consists of a victim, a command and controller server (or C&C server), and a botmaster. The victim is a computer infected with TrickBot malware. For example, the victim can be a computer used by a bank employee and infected by malware attached to a spoofed email message. The victim, for example, steals customer account numbers and passwords and sends them to the criminals behind the botnet. The C&C server is a computer that controls the victim by sending commands. The botmaster is a computer that controls the C&C server. In this example, the network flow data is represented as a directed graph with computers as nodes and network flows between the computers as edges. For example, FIG. 8 shows an example of network flow data showing information about data flows between two nodes (a source node at xxx.23.23.23 IP address and a destination node at yyy.33.44.55 IP address). The network flow data may also include start time, duration, source and destination port numbers, number of packets in the data flow, and size of the packets. Based on the above, a network flow graph as shown in Figure 9 is generated from the exemplary network flow data, where each node in the graph is a node (source or destination in the network flow data) with an identifier that is an IP address, and the edges between the nodes are data flows. These graphs are constantly changing over time, thus requiring the disclosed graph stream mining for botnet detection.

[0009] FIG. 1A shows an example of a general botnet 100 that may be detected using a graph stream mining processing system. As shown in FIG. 1A, the botnet 100 may include a group of malicious computers controlled and used by attackers across the Internet in many ways, and the goal is to detect / identify each malicious computer (and its IP address) that is part of the botnet. The botnet 100 may include a botmaster computer 102 that controls multiple command and control computers / servers 104A-N that may run command and control software that controls multiple infected customer computers 106A-N that have installed malware that allows the C&C computer and botmaster to control the customer computers. All of the computers shown in FIG. 1A are a group of malicious computers.

[0010] In computer security, it is desirable to be able to detect each or preferably all of the computers (and their IP addresses) that are part of a botnet in order to remove or reduce the threat of that botnet, such as the TrickBot mentioned above. An example snapshot of the TrickBot botnet is shown in FIG. 1B. According to the graph stream mining processing system described below, the disclosed system can identify the C&C computer 104N (right-most in FIG. 1) and use the identified C&C computer and its IP address as a seed to detect the three other C&C computers / nodes shown in FIG. 1. Those previously unknown C&C nodes 104A-C can then be added to a blacklist / MSS. This is an example of what the results / data from the graph stream mining processing system can be used to accomplish.

[0011] FIG. 2 illustrates an embodiment of a botnet detection system 200 including a graph stream mining processing system capable of achieving botnet computer detection. The system 200 can have a curated malicious IP address seed generator 202 that receives a PCAP feed (packet data for a network) and a TI / MISP feed (open source threat information) and generates one or more identified malicious IP addresses based on the feeds. Further details of the generator 202, its implementation, and detailed operation are provided in U.S. patent application Ser. No. 15 / 996,213, filed Jun. 1, 2018, entitled “Ensemble-Based Data Curation Pipeline for Efficient Label Propagation,” which is incorporated herein by reference in its entirety. FIG. 3 illustrates an example malicious IP address seed generated by the malicious seed generator of FIG. 2. As shown in the example of FIG. 3, one or more malicious IP addresses are identified based on the feeds.

[0012] The one or more malicious IP addresses and known netflow data are input to the graph stream mining processor 204, which outputs the detected botnet computers in the example in which the system is used to detect botnets and botnet computers. The graph stream mining processor 204 and its elements are shown in more detail in Figures 4A and 4B.

[0013] 4A and 4B show more details of a graph stream mining processing system / module 204 that may be used for botnet detection, but may be used for processing other types of data and is not limited to botnet detection. The system 204 may receive one or more raw data streams (e.g., network flow data for the botnet detection example) into a messaging queue 400 that distributes the incoming data stream to each job (custom job 1, custom job 2, ..., custom job n, or seed subgraph generation job). The messaging queue is used to implement parallel processing of different jobs. In an example implementation of botnet detection, each job of the parallel processed jobs may extract data such as communication from the network flow data to or from a particular port and / or detect relevant subgraphs in the network flow data as described below. Messaging queues are known for implementing parallel processing, but are not known for being used to perform parallel processing on network flow data or to generate candidate nodes for a botnet in a botnet (or trickbot) detection process. Each job (details of which are described below) may be managed by a job management module 402, which creates, updates, terminates, or deletes jobs. The job management module 4021 is also part of a parallel processing implementation. The output of each of the jobs (results) may be stored in one or more stores by the storage management module 404, as shown in FIG. 4A, which may perform data processing or data formatting operations on the data before it is stored in its stores. The output of each job may be received in various formats, such as CSV / JSON, etc., or compressed formats, and the output may be network flow data or data extracted from a seed subgraph.

[0014] In addition to the exemplary bot detection example, the system shown in Figures 4A and 4B can be used for any unlimited data, where the data set includes relationships that can be represented as a graph. For example, other applications can include vehicle traffic analysis for road optimization and planning based on vehicle and road data streams, and blood (and other bodily fluid) flow analysis for medical diagnostics.

[0015] The system 204 may also have an API server 406 that sends job requests for one or more users to the job manager 402 and communicates with the storage manager 404 about job results. The API server 406 may communicate custom job results and subgraph detection results (from the subgraph detection module 408, whose results are stored by the storage manager 404) to the analysis module 410. The API server 406 may also communicate seed subgraphs to the subgraph detection module 408, whose operation is described in more detail below. The subgraph detection module 408 may return the subgraph detection results to the API server 406 and to the analysis module 410. The analysis module 410 may perform analysis and validation to arrive at a result, such as a set of candidate botnet nodes in a botnet detection example, as described in more detail below. The analysis module 410 may display the analysis results to a user. Two examples of graphical displays from the analysis module 410 for botnet detection are shown in Figures 10 and 11. Figure 10 graphically displays the botnet nodes per country, while Figure 11 shows the detected TrickBot nodes in different layers.

[0016] There are existing systems that use machine learning models based on statistical analysis of flow data to detect botnets, such as Bilge, Leyla, et al. "Disclosure: detecting botnet command and control servers through large-scale netflow analysis." Proceedings of the 28th Annual Computer Security Applications Conference. ACM, 2012. These systems have three significant problems: (1) a long time to obtain final results, (2) a high false positive rate, and (3) poor interpretability. The disclosed graph stream mining method and system (1) produces final results in real time by eliminating the need to calculate statistics and store and process seed subgraphs, (2) achieves a lower false positive rate by using detection criteria as needed, and (3) demonstrates higher interpretability by using and thus enabling the attribution of results to specific, human-readable criteria.

[0017] FIG. 5 illustrates a method 500 for botnet detection using graph stream mining processing. The method may be performed by the system illustrated in FIGS. 2 and 4A-4B, but also by other computer systems having a processor, in which the processor executes lines of computer code in a software embodiment, or by other hardware elements such as a microprocessor, GPU, data processor, etc., in a hardware embodiment. In the method, network flow data (which may be the raw data stream illustrated in FIG. 4A) may be a graph stream that is analyzed to detect botnets using a series of processes. The first process 502 may be graph stream preparation, during which a user prepares and inputs a job request, seed nodes, and seed subgraph matching criteria into the system, such as the exemplary system illustrated in FIGS. 4A and 4B. The job description / request describes the job to be performed in the graph stream processing module / system. For example, the job description may be to collect and store network flow data, including traffic over port 447, which is often used in botnet attacks. Another example of a job (which can be one of the custom jobs performed) is to collect and store network flow data including hosts with flows per second more than a given threshold, which makes those hosts candidates for being part of a botnet. The job description can be submitted through the API server of the graph stream processing system. Each seed node is the IP address of each known C&C server of the TrickBot malware when the system is used to detect malicious computers of the TrickBot malware (e.g., 94.23.252.37 as shown in Figure 3).

[0018] The seed subgraph matching criteria defines a set of conditions to detect subgraphs of interest in the network flow data represented as a graph stream. For example, the criteria detect C&C server candidates with a seed node that have traffic with the seed node that is greater than a certain threshold amount. FIG. 6 shows an example set of seed subgraph matching criteria 600 that may be input to the graph stream processing method. As shown, the set of seed subgraph matching criteria may use a pivot node structure from the seed node, which is dst1 in the example of FIG. 6. The set of seed subgraph matching criteria may detect nodes in the network flow data that are found in the pivot node structure, which are candidates for botnet infrastructure. Using the pivot node structure (discussed in more detail below), communications in each network flow data stream from or to a first pivot node, such as src1 in the example of FIG. 6, are stored to allow additional dependencies to be captured, up to a threshold N. Additionally, the communications are stored at a depth D. An occurrence of S may indicate that an edge will become a pivot node. The value N determines the number of inbound and outbound edges to store in the graph (and therefore consider as pivot candidates at the next level). The algorithm remains the same, but becomes computationally more intensive for larger values ​​of N. D sets a limit on how "deep" the graph can be based on a single seed, i.e. this is the maximum distance (relationship links) from the seed that is of interest. Higher values ​​of S instead require more consecutive relationships between nodes to allow them to expand into pivot nodes, i.e. slowly growing the graph structure.

[0019] In the example of FIG. 6, the set of seed subgraph matching criteria may have a first phase at depth 0 at t1, a second phase at depth 1 at t2, and a third phase at depth 2 at t3. Each node has a label, such as src1, derived from the network flow data, but each node also has its IP address label. For example, the src1 node may have a xxx.23.23.23 IP address, as shown in the example of FIG. 8. In the first phase, the src1 node (pivot node) is associated with the seed node dst1. The src1 pivot node is determined based on a threshold amount of traffic in the network flow data with the seed node, dst1. In the second phase at pivot depth 1, the src2 and dst2 nodes are identified. In the third phase at pivot depth 2, src3 is identified as the pivot node at depth 2, and dst2 is moved from depth 1 to depth 0 because a direct path was identified between dst2 and dst1, as shown in FIG. 6.

[0020] During the preparation process 502, the user also prepares network flow data feeds and feeds them to the graph stream processing module. Such data can be collected from network devices, e.g., routers. External information can be used to verify the analysis results in the analysis module as shown in FIG. 4B. As described below, an example of an external source is the well-known Virus Total data. Virus Total (VT) indicates whether a given IP address is malicious or not. By comparing the results of the graph stream mining system with the results from the VT, the system can check whether the predictions from the disclosed system are the same as the VT. The agreement with the VT can be used to benchmark the results of the graph stream mining system. For example, it was found that the results from the graph stream mining system preceded the findings of the VT by more than two weeks in the same case.

[0021] Returning to FIG. 5, the method may ingest graph stream data at 504. Specifically, network flow data in netflow format may be continuously fed into the messaging queue 400 of the system shown in FIGS. 4A and 4B. After the netflow data (in the form of a graph stream) is ingested, the method may execute user jobs 506. Specifically, custom jobs and seed subgraph generation jobs take data from the messaging queue 400, collect data that matches the job description, and build subgraphs from the collected data as shown in FIGS. 6 and 7A-7C. The system's API server 406 may then make the subgraphs accessible to other modules (subgraph detector 408 and / or analysis module 410) through dedicated URLs over HTTPS with appropriate authentication information, in a well-known manner.

[0022] The method may then perform a subgraph detection process 508. During this process, the subgraph detection module 408 filters out victim and harmless computers in the seed subgraph store by applying one or more noise reduction criteria. For example, a noise reduction criterion is to detect and filter out consumer computers that exhibit normal consumer web browsing traffic patterns, including accessing popular websites, such as the Google search site. This process 508 may then apply one or more subgraph detection criteria to the data in the seed subgraph store connected to the storage manager 404 to detect potential C&C servers and botmasters in the botnet detection example used for illustrative purposes.

[0023] 7A-7C show examples of subgraph detection criteria 700, 702, 704 that may be implemented by a graph stream mining processing system. In the method, one or more of these subgraph detection criteria may be applied to each data in a seed subgraph store connected to the storage manager 404 to identify relevant subgraphs. The first subgraph detection criteria 700 may identify a subgraph that has an unknown high centrality node (a node with multiple inbound network data flows) connected to a known malicious node (a B2B IP node in FIG. 7A) by one or more intermediate / linker nodes as shown in FIG. 7A. Each linker node in the subgraph is a node whose maliciousness / participation in a botnet is known and that in some way links the unknown node to a known botnet node / IP address. Each unknown node is a node that is not known as malicious at the time the method is performed.

[0024] The second subgraph detection criteria 702 can identify subgraphs that have unknown callback nodes that are used by two or more known malicious / botnet nodes (B2B IP nodes in the example). An unknown callback node is a node whose status as malicious or part of a botnet is unknown and to which two or more botnet nodes call back based on network flow data. The callback node, in the botnet example, is a candidate to become the bot master of the botnet.

[0025] The third subgraph detection criteria 704 can identify subgraphs that have correlated / parallel temporal communication patterns from a linker node. In the example shown in FIG. 7C, the linker node has continuous communication with a known malicious node (B2B IP in the example) and an unknown node. Thus, each of the subgraphs identifies at least one unknown node that is a candidate for a botnet / malicious node. In one example, the linker node can be a known bot master and the unknown node can be a C&C server controlled by the bot master.

[0026] Returning to FIG. 5, after the subgraphs are identified, the method may perform analysis and validation 510. In the botnet example used for illustrative purposes, the analysis and validation may generate one or more unknown candidate nodes that are likely to be part of the botnet. In more detail using the system of FIGS. 4A and 4B, this process 510 takes the results from the custom job from API module 406 and the results from the subgraph detection module, and then correlates these results to produce a set of final candidates. The correlation is done by performing a logical combination of the set of IP addresses contained in the custom job results and the subgraph detection results. An example of this correlation is shown in FIG. 11, where the botmaster is identified by an outgoing edge from TRICKBOT_C2_MCCONF through TRICKBOT_LAYER2 to the actual botmaster. After the final candidates are identified, they are validated using an external source, such as VirusTotal, a commercial malware information site. The validation is done automatically. A program module (or script) obtains data for validation from the external data source through the source's API and compares the analysis results to the external data.

[0027] The above description has been set forth with reference to specific embodiments for purposes of illustration. However, the above illustrative discussion is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. Many modifications and variations are possible in light of the above teachings. The embodiments have been chosen to best explain the principles of the disclosure and its practical application, thereby enabling those skilled in the art to best utilize the disclosure and various embodiments with various modifications as appropriate for the particular use contemplated.

[0028] The systems and methods disclosed herein can be implemented by one or more components, systems, servers, devices, or other subcomponents, or can be distributed among such elements. When implemented as a system, such a system can include and / or involve components such as software modules, general purpose CPUs, RAM, etc. found in a general purpose computer, among others. In implementations in which the innovation resides on a server, such a server can include or involve components such as CPUs, RAM, etc. found in a general purpose computer.

[0029] Furthermore, the systems and methods herein may be achieved through implementations using disparate or entirely different software, hardware, and / or firmware components beyond those described above. Such other components (e.g., software, processing components, etc.) and / or computer-readable media associated with or embodying aspects of the present invention, e.g., the present innovations herein, may be implemented consistently with numerous general-purpose or special-purpose computing systems or configurations. Various exemplary computing systems, environments, and / or configurations that may be suitable for use with the present innovations herein may include, but are not limited to, personal computers, servers or server computing devices such as routing / connectivity components, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, consumer electronic devices, network PCs, other existing computer platforms, software or other components embodied within or in distributed computing environments including one or more of the above systems or devices.

[0030] In some cases, aspects of the systems and methods may be accomplished or performed by logical instructions, including logic and / or program modules, executed in conjunction with such components or circuits, for example. Generally, program modules may include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular instructions herein. The present invention may also be implemented in the context of a distributed software, computer, or circuit configuration in which circuits are connected through a communication bus, circuit, or link. In a distributed configuration, control / instructions may originate from both local and remote computer storage media, including memory storage devices.

[0031] Software, circuits, and components herein may also include and / or utilize one or more types of computer-readable media. Computer-readable media may be any available medium that resides on, can be associated with, or can be accessed by such circuits and / or computing components. By way of example, computer-readable media may include, but is not limited to, computer storage media and communication media. Computer storage media include volatile and non-volatile, removable and non-removable media implemented in any method and technology for storing information, such as computer-readable instructions, data structures, program modules, or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and that can be accessed by a computing component. Communication media may comprise computer-readable instructions, data structures, program modules, and / or other components. Additionally, communication media may include wired media, such as a wired network or direct-wired connection, although as used herein any such type of media does not include transitory media. Combinations of any of the above are also included within the scope of computer-readable media.

[0032] In this description, terms such as components, modules, devices, etc. may refer to any type of logical or functional software element, circuit, block, and / or process that may be implemented in a variety of ways. For example, the functions of various circuits and / or blocks may be combined together in any other number of modules. Each module may further be implemented as a software program stored on a tangible memory (e.g., random access memory, read-only memory, CD-ROM memory, hard disk drive, etc.) to be read by a central processing unit to perform the functions of the present innovation herein. Alternatively, the modules may comprise programming instructions transmitted by a transmission carrier wave to a general-purpose computer or to processing / graphics hardware. The modules may also be implemented as hardware logic circuits that perform the functions encompassed by the present innovation herein. Finally, the modules may be implemented using special purpose instructions (SIMD instructions), field programmable logic arrays, or any mix thereof that provides a desired level of performance and cost.

[0033] As disclosed herein, features consistent with the present disclosure may be implemented by computer hardware, software, and / or firmware. For example, the systems and methods disclosed herein may be embodied in various forms, including, for example, a data processor, such as a computer including a database, digital electronic circuitry, firmware, software, or a combination thereof. Furthermore, while some of the disclosed implementations recite specific hardware components, the systems and methods consistent with the present innovation herein may be implemented in any combination of hardware, software, and / or firmware. Furthermore, the above features and other aspects and principles of the present innovation herein may be implemented in a variety of environments. Such environments and related applications may include general-purpose computers or computing platforms that may be specifically constructed to perform various routines, processes, and / or operations according to the present invention, which are selectively activated or reconfigured by code to provide the required functions. The processes disclosed herein are not inherently related to any particular computer, network, architecture, environment, or other apparatus, and may be implemented by any suitable combination of hardware, software, and / or firmware. For example, various general purpose machines may be used with programs written in accordance with the teachings of the invention, or it may prove more convenient to construct specialized apparatus or systems to perform the required methods and techniques.

[0034] Aspects of the methods and systems described herein, such as logic, may also be implemented as programmed functions in any of a variety of circuits, including field programmable gate arrays ("FPGAs"), programmable array logic ("PAL") devices, programmable logic devices ("PLDs") such as electrically programmable logic and memory devices, and standard cell-based devices, as well as application specific integrated circuits. Some other possibilities for implementing aspects include memory devices, microcontrollers with memory (such as EEPROM), embedded microprocessors, firmware, software, and the like. Additionally, aspects may be embodied in microprocessors with software-based circuit emulation, discrete logic (sequential and combinatorial), custom devices, fuzzy (neural) logic, quantum devices, and hybrids of any of the above device types. The underlying device technology can come in a variety of component types, e.g., metal-oxide-semiconductor field effect transistor ("MOSFET") technologies such as complementary metal-oxide-semiconductor ("CMOS"), bipolar technologies such as emitter-coupled logic ("ECL"), polymer technologies (e.g., silicon-conjugated polymers, and metal-conjugated polymer-metal structures), mixed analog and digital, etc.

[0035] It should also be noted that the various logics and / or functions disclosed herein, in terms of their behavior, may be enabled using any number of combinations, register transfers, logic components, and / or other characteristics as hardware, firmware, and / or data and / or instructions embodied in various machine-readable or computer-readable media. Computer-readable media in which such formatted data and / or instructions may be embodied include, without limitation, non-volatile storage media in various forms (e.g., optical, magnetic, or semiconductor storage media), but also not including transitory media. Unless the context clearly requires a different interpretation, throughout this description, the words "comprise, comprising" and similar should be interpreted in an inclusive sense, i.e., "including, but not limited to," rather than an exclusive or exhaustive sense. Words using the singular or plural also include the plural or singular, respectively. Additionally, the words "herein," "hereinafter," "above," "below," and words of similar import refer to this application as a whole and not to any particular portion of this application. When the word "or" is used in reference to a list of two or more items, it includes all of the following interpretations of that word: any of the items in the list, all of the items in the list, and any combination of the items in the list.

[0036] While presently preferred implementations of the invention have been specifically described herein, it will be apparent to those skilled in the art to which the invention pertains that various variations and modifications of the implementations shown and described herein may be made without departing from the spirit and scope of the invention. Accordingly, it is intended that the present invention be limited only to the extent required by applicable law.

[0037] While the foregoing relates to particular embodiments of the present disclosure, those skilled in the art will recognize that modifications therein can be made without departing from the principles and spirit of the present disclosure, the scope of which is defined by the appended claims.

Claims

1. 1. A computer-implemented method for botnet node detection, comprising: receiving a plurality of network data flows, each network data flow including data about a data communication between a source node having a first IP address and a destination node having a second IP address, the plurality of network data flows including botnet nodes that are known to be part of a botnet and unknown nodes that are not known to be malicious at the time the network data flows are received; extracting a plurality of network data flow data streams simultaneously from the plurality of network data flows; generating a graph for the plurality of network data flows, the graph for each network data flow data stream, the graph having source nodes, destination nodes, and edges between the source nodes and destination nodes representing data communications between the source nodes and the destination nodes, the edges of the graph being generated based on the plurality of network data flow data streams; generating at least one seed subgraph from the plurality of network data flow data streams, the at least one seed subgraph having a seed node that is the botnet node and one or more unknown nodes that communicate with the seed node as determined by the generated graph, the one or more unknown nodes being identified in a pivot node structure; performing a set of subgraph detection criteria using the generated at least one seed subgraph to detect one or more subgraphs including at least one botnet node and at least one candidate node, the candidate node being a candidate node for the botnet; The method includes:

2. 2. The method of claim 1 , wherein generating the at least one seed subgraph further comprises identifying at least one unknown node at a first pivot depth that communicates with the seed node, and identifying at least one unknown node at a second pivot depth that communicates with the at least one unknown node at the first pivot depth.

3. 3. The method of claim 2, wherein generating the at least one seed subgraph further comprises moving a particular node of the plurality of unknown nodes at the second pivot depth to the first pivot depth if the particular unknown node at the second pivot depth is in direct communication with the seed node.

4. 2. The method of claim 1, wherein performing a set of subgraph detection criteria further comprises identifying a subgraph having an unknown node of high centrality as a destination node for a predetermined number of network data flows, the unknown node of high centrality being a destination node for communication with a linker node that is the source node for communication with the at least one botnet node.

5. 2. The method of claim 1, wherein performing a set of subgraph detection criteria further comprises identifying a subgraph having an unknown callback node that is a destination node for communication with the at least one botnet node.

6. 2. The method of claim 1, wherein performing a set of subgraph detection criteria further comprises identifying a subgraph having an unknown linker node, the unknown linker node being a source node for communication with at least one botnet node and one of the unknown nodes.

7. 1. A system comprising:

1. A data stream mining system for receiving a plurality of network data flows, each network data flow including data about data communications between a source node having a first IP address and a destination node having a second IP address, the plurality of network data flows including botnet nodes that are known to be part of a botnet and unknown nodes that are not known to be malicious at the time the network data flows are received; the data stream mining system has a messaging queue for generating multiple jobs to be executed simultaneously, the messaging queue extracting multiple network data flow data streams from the multiple network data flows; generating a graph for the multiple network data flows, the graph for each network data flow data stream, the graph having a source node, a destination node, and edges between the source node and the destination node representing data communication between the source node and the destination node, the edges of the graph being generated based on the multiple network data flow data streams; and generating at least one seed subgraph from the multiple network data flow data streams, the at least one seed subgraph having a seed node that is the botnet node and one or more unknown nodes that communicate with the seed node as determined by the generated graph, the one or more unknown nodes being identified in a pivot node structure; The data stream mining system has a subgraph detection unit coupled to the messaging queue, the subgraph detection unit performs a set of subgraph detection criteria using the generated at least one seed subgraph to detect one or more subgraphs including at least one botnet node and at least one candidate node, the candidate node being a candidate node for the botnet.

8. 8. The system of claim 7, wherein the messaging queue identifies at least one unknown node at a first pivot depth that communicates with the seed node, and identifies at least one unknown node at a second pivot depth that communicates with the at least one unknown node at the first pivot depth.

9. 9. The system of claim 8, wherein the messaging queue moves a particular node of the plurality of unknown nodes at the second pivot depth to the first pivot depth if the particular unknown node at the second pivot depth communicates directly with the seed node.

10. 8. The system of claim 7, wherein the subgraph detection unit identifies subgraphs having unknown nodes of high centrality as destination nodes for a predetermined number of network data flows, the unknown nodes of high centrality being destination nodes for communication with a linker node that is the source node for communication with the at least one botnet node.

11. The system of claim 7 , wherein the subgraph detection unit identifies subgraphs having unknown callback nodes that are destination nodes for communications with the at least one botnet node.

12. 8. The system of claim 7, wherein the subgraph detection unit identifies a subgraph having an unknown linker node, the unknown linker node being a source node for communication with at least one botnet node and one of the unknown nodes.

Citation Information

Patent Citations

  • Graph database analysis for network anomaly detection systems

    JP2018049602A

  • Method and apparatus for identifying members of a peer-to-peer botnet

    US20110179164A1

  • Techniques for botnet detection and member identification

    US20170251005A1

  • Botnet detection system and method

    US20170374084A1

  • Performance and usability enhancements for continuous subgraph matching queries on graph-structured data

    US20180329958A1