IP Library Granted Patent US 10,205,735
Granted Patent B2
US 10,205,735 · App. 15/419,959 · Granted Feb 12, 2019

Graph-based network security threat detection across time and entities

Inventor: Georgios Apostolopoulos (San Jose, CA)
Assignee: SPLUNK INC.
H04L63/1425G06F17/30569G06F17/30598G06F17/30958
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,205,735
App. No.
15/419,959
Filed
Jan 30, 2017
Granted
Feb 12, 2019
Kind
B2
Art Unit
2431
USPC
726/23
Abstract

The disclosed techniques relate to a graph-based network security analytic framework to combine multiple sources of information and security knowledge in order to detect risky behaviors and potential threats. In some examples, the input can be anomaly events or simply regular events. The entities associated with the activities can be grouped into smaller time units, e.g., per day. The riskiest days of activity can be found by computing a risk score for each day and according to the features in the day. A graph can be built with links between the time units. The links can also receive scoring based on a number of factors. The resulting graph can be compared with known security knowledge for adjustments. Threats can be detected based on the adjusted risk score for a component (i.e., a group of linked entities) as well as a number of other factors.

Claims (77)

1. A method comprising:

accessing, from a data store, a relationship graph corresponding to a time range, the time range having a number of time units, the relationship graph having entities as nodes and relationships among the entities as links, the relationship graph reflecting a batch of events that occurred during the time range, wherein each event of the batch of events includes timestamped, raw machine data that reflects one or more of: (1) activity occurred in an information technology (IT) or a security technology environment, (2) a time at which the activity occurred, and (3) a number of entities associated with the activity;

assigning the nodes in the relationship graph to groups based on event timestamps, each group corresponding to a time unit and including nodes associated with activities that occurred in the time unit;

constructing links for nodes between different groups, each link representing a relationship between nodes as established by a respective activity recorded in the batch of events, each chain of linked nodes forming a component;

computing a total interest score for each of the formed components, wherein the total interest score reflects a totality of interest generated from all nodes attached to a given link;

adjusting the total interest score for each of the formed components based on comparing events underlying a component with a pattern of interest, wherein the pattern of interest identifies an expected temporal order and/or logical relationship in underlying events for such component to be of interest; and

identifying a component for further security scrutiny based on the adjusted total interest score.

2. The method of claim 1 , wherein the plurality of events comprise events that have been earmarked as anomalies.

3. The method of claim 1 , wherein each node carries an anomaly score that is assigned from a previous data analytic stage.

4. The method of claim 1 , wherein the relationship graph is a subset of a composite relationship graph that includes edges representing a plurality of anomaly activities conducted by entities.

5. The method of claim 1 , further comprising: determining a group interest score for each of the groups, based on steps including:

generating the group interest score based on a set of features from a respective group, wherein the set of features are identified by a predetermined list of features that are characteristic of the activities recorded in the events in the respective group.

6. The method of claim 1 , further comprising: determining a group interest score for each of the groups, based on steps including:

generating the group interest score based on a set of features from a respective group, wherein the set of features are identified by a predetermined list of features that are characteristic of the activities recorded in the events in the respective group,

wherein a feature in the set of features carries a different weight than another feature.

7. The method of claim 1 , further comprising: determining a group interest score for each of the groups, based on steps including:

generating the group interest score based on a set of features from a respective group, wherein the set of features are identified by a predetermined list of features that are characteristic of the activities recorded in the events in the respective group,

wherein the total interest score for a formed component factors in the group interest score of the groups to which the nodes in the formed component belong.

8. The method of claim 1 , further comprising: determining a group interest score for each of the groups, based on steps including:

generating the group interest score based on a set of features from a respective group, wherein the set of features are identified by a predetermined list of features that are characteristic of the activities recorded in the events in the respective group; and

ranking the number of groups based on their group interest scores, wherein only a predetermined number of top ranked groups are further processed for constructing links for nodes between different groups.

9. The method of claim 1 , further comprising: determining a group interest score for each of the groups, based on steps including:

generating the group interest score based on a set of features from a respective group, wherein the set of features are identified by a predetermined list of features that are characteristic of the activities recorded in the events in the respective group;

ranking the number of groups based on their group interest scores, wherein only a predetermined number of top ranked groups are further processed for constructing links for nodes between different groups; and

performing clustering for the number of groups after normalizing values in the set of features in each group.

10. The method of claim 1 , further comprising:

determining a link score for each link in the formed components.

11. The method of claim 1 , further comprising:

determining a link score for each link in the formed components,

wherein the link score is determined based on a number of common nodes between the groups with which the formed component is associated.

12. The method of claim 1 , further comprising:

determining a link score for each link in the formed components,

wherein the link score is determined based on a distance in time between the groups with which the formed component is associated.

13. The method of claim 1 , further comprising:

determining a link score for each link in the formed components,

wherein the link score is determined based on an anomaly score of each node in the formed component.

14. The method of claim 1 , further comprising:

determining a link score for each link in the formed components,

wherein the total interest score for the formed component factors in the link score of the link that connects the nodes in the formed component.

15. The method of claim 1 , further comprising:

creating a new graph using the formed components, wherein the new graph includes the nodes with respective links and corresponding groups.

16. The method of claim 1 , further comprising:

creating a new graph using the formed components, wherein the new graph includes the nodes with respective links and corresponding group,

wherein the nodes in the new graph are coupled to underlying events so that, responsive to a request, the underlying events are produced as supporting evidence.

17. The method of claim 1 , further comprising:

before assigning nodes to groups, filtering the nodes and links in the relationship graph by removing nodes that include a whitelisted entity.

18. The method of claim 1 , further comprising:

before assigning nodes to groups, filtering the nodes and links in the relationship graph by removing nodes that include an entity having an exceeding number of anomaly links to other entities as compared to a threshold.

19. The method of claim 1 , wherein the total interest score for a formed component increases exponentially when the events underlying the formed component matches the pattern of interest.

20. The method of claim 1 , wherein the total interest score for a formed component increases exponentially when the events underlying the formed component matches the pattern of interest,

wherein the total interest score for a formed component decreases exponentially when the events underlying the formed component mismatches the pattern of interest.

21. The method of claim 1 , wherein the pattern of interest includes definitions for a sequence and an anti-sequence associated with an anomaly.

22. The method of claim 1 , wherein the pattern of interest includes definitions for a sequence and an anti-sequence associated with an anomaly,

wherein the total interest score for a formed component decreases exponentially when the events underlying the formed component matches the anti-sequence.

23. The method of claim 1 , wherein the pattern of interest includes a malware installation followed by a file transfer or a beaconing anomaly.

24. The method of claim 1 , further comprising: performing a network security related action on the identified component.

25. The method of claim 1 , wherein the entities are users, computing devices, or any combination thereof.

26. The method of claim 1 , wherein the time range is more than one day, and wherein the time unit is one day.

27. The method of claim 1 , wherein steps recited in the method are repeated at a predetermined periodicity.

28. The method of claim 1 , wherein steps recited in the method are performed by a batch analysis engine that is implemented using APACHE SPARK™, and wherein the data store is implemented using APACHE HADOOP™.

29. A computer system comprising:

a processor; and

a communication device, operatively coupled to the processor, through which to receive first event data indicative of computer network activity of an entity that is part of or interacts with a computer network and second event data indicative of additional computer network activity associated with the entity;

wherein the processor is configured to perform steps including:

accessing, from a data store, a relationship graph corresponding to a time range, the time range having a number of time units, the relationship graph having entities as nodes and relationships among the entities as links, the relationship graph reflecting a batch of events that occurred during the time range, wherein each event of the batch of events includes timestamped, raw machine data that reflects one or more of: (1) activity occurred in an information technology (IT) or a security technology environment, (2) a time at which the activity occurred, and (3) a number of entities associated with the activity;

assigning the nodes in the relationship graph to groups based on event timestamps, each group corresponds to a time unit and including nodes associated with activities that occurred in the time unit;

constructing links for nodes between different groups, each link representing a relationship between nodes as established by a respective activity recorded in the batch of events, each chain of linked nodes forming a component;

computing a total interest score for each of formed components, wherein the total interest score reflects a totality of interest generated from all nodes attached to a given link;

adjusting the total interest score for each of the formed components based on comparing events underlying a component with a pattern of interest, wherein the pattern of interest identifies an expected temporal order and/or logical relationship in underlying events for such component to be of interest;

identifying a component for further security scrutiny based on the adjusted total interest score.

30. A non-transitory machine-readable storage medium for use in a processing system, the non-transitory machine-readable storage medium storing instructions, an execution of which in the processing system causes the processing system to perform operations comprising:

accessing, from a data store, a relationship graph corresponding to a time range, the time range having a number of time units, the relationship graph having entities as nodes and relationships among the entities as links, the relationship graph reflecting a batch of events that occurred during the time range, wherein each event of the batch of events includes timestamped, raw machine data that reflects one or more of: (1) activity occurred in an information technology (IT) or a security technology environment, (2) a time at which the activity occurred, and (3) a number of entities associated with the activity;

assigning the nodes in the relationship graph to groups based on event timestamps, each group corresponds to a time unit and including nodes associated with activities that occurred in the time unit;

constructing links for nodes between different groups, each link representing a relationship between nodes as established by a respective activity recorded in the batch of events, each chain of linked nodes forming a component;

computing a total interest score for each of formed components, wherein the total interest score reflects a totality of interest generated from all nodes attached to a given link;

adjusting the total interest score for each of the formed components based on comparing events underlying a component with a pattern of interest, wherein the pattern of interest identifies an expected temporal order and/or logical relationship in underlying events for such component to be of interest;

identifying a component for further security scrutiny based on the adjusted total interest score.

Assignments (3)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2017
From: APOSTOLOPOULOS, GEORGIOS
To: SPLUNK INC.
Reel/Frame 041196/0748 →
Continuity (1)
Related Publication 20180219888A1 · Aug 2, 2018
Cited By (117)
US 12,204,870 US 12,206,696 US 12,244,621 US 12,261,866 US 12,265,526 US 12,267,345 US 12,284,197 US 12,309,181 US 12,309,182 US 12,309,185 US 12,309,236 US 12,323,449 US 12,335,286 US 12,335,348 US 12,341,797 US 12,348,545 US 12,354,043 US 12,355,626 US 12,355,787 US 12,355,793 US 12,361,358 US 12,363,148 US 12,368,745 US 12,368,746 US 12,368,747 US 12,375,573 US 12,381,900 US 12,381,901 US 12,395,573 US 12,401,669 US 12,405,849 US 12,407,701 US 12,407,702 US 12,418,552 US 12,418,555 US 12,425,428 US 12,425,430 US 12,445,474 US 12,452,272 US 12,452,279 US 12,457,231 US 12,463,994 US 12,463,995 US 12,463,996 US 12,463,997 US 12,464,003 US 12,470,577 US 12,470,578 US 12,475,215 US 12,483,576 US 12,489,770 US 12,489,771 US 12,495,052 US 12,500,910 US 12,500,911 US 12,500,912 US 12,505,126 US 12,505,249 US 12,506,762 US 12,511,110 US 12,513,221 US 12,526,289 US 12,526,297 US 12,537,836 US 12,537,837 US 12,537,839 US 12,537,840 US 12,537,884 US 12,549,575 US 12,549,577 US 12,549,598 US 12,556,548 US 12,556,559 US 12,563,060 US 12,563,064 US 12,563,071 US 12,563,072 US 12,572,777 US 12,580,932 US 12,580,934 US 12,580,935 US 12,580,936 US 12,580,937 US 12,587,553 US 12,592,950 US 12,596,839 US 12,598,205 US 12,608,861 US 12,613,930 US 12,615,271 US 12,621,324 US 12,621,329 US 12,627,686 US 12,627,687 US 12,627,690 US 12,632,545 US 12,634,312 US 12,634,376 US 12,641,123 US 12,652,302 US 12,657,297 US 12,659,325 US 12,659,326 US 12,659,327 US 12,659,333 US 12,670,455 US 12,676,874 US 12,689,638 US 12,689,640 US 12,695,768 US 12,706,931 US 12,706,932 US 12,706,933 US 12,706,980 US 12,712,897 US 12,717,909 US 12,719,896