IP Library Granted Patent US 10,148,677
Granted Patent B2
US 10,148,677 · App. 15/490,849 · Granted Dec 4, 2018

Model training and deployment in complex event processing of computer network data

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,148,677
App. No.
15/490,849
Granted
Dec 4, 2018
Kind
B2
Abstract

A security platform employs a variety techniques and mechanisms to detect security related anomalies and threats in a computer network environment. The security platform is “big data” driven and employs machine learning to perform security analytics. The security platform performs user/entity behavioral analytics (UEBA) to detect the security related anomalies and threats, regardless of whether such anomalies/threats were previously known. The security platform can include both real-time and batch paths/modes for detecting anomalies and threats. By visually presenting analytical results scored with risk ratings and supporting evidence, the security platform enables network security administrators to respond to a detected anomaly or threat, and to take action promptly.

Claims (49)

1. A method comprising:

computing in real-time a score by processing a stream of events through a first version of a machine learning model, wherein the stream of events corresponds to a time slice and includes time stamped machine data produced by a component within an information environment and reflects activity within the information technology environment, and wherein the machine learning model is configured to be trained by computer network activity characterized by the stream of events involving at least one entity;

training, in parallel with said processing the stream of events, a second version of the machine learning model with the time slice that is being processed through the first version for scoring, wherein said training includes retraining a model state of the second version of the machine learning model when a group-specific stream of events provides additional event feature sets;

invoking a model readiness logic to determine whether the second version of the machine learning model has sufficient training; and

performing live-swapping in the second version of the machine learning model to replace the first version of the machine learning model as an active version to compute another score, said live-swapping being based on a determination of whether the second version of the machine learning model is ready for active deployment.

2. The method of claim 1 , wherein the determination of whether the second version is ready is based on at least one of: a number of events that have been used to train the second version, a length of time that the second version has been in training, or whether the model state of the second version is converging.

3. The method of claim 1 , wherein said live-swapping comprises processing a subsequent time slice from the stream of events through the second version of the machine learning model.

4. The method of claim 1 , further comprising processing the time slice of the stream of events through the first version of the machine learning model prior to when a subsequent time slice becomes available.

5. The method of claim 1 , wherein the stream of events are created based on raw event data pertaining to a plurality machine-observed events.

6. The method of claim 1 , wherein the time slice being processed by the first version of the machine learning model is a most recent time slice from the stream of events.

7. The method of claim 1 , wherein the time slice includes event feature sets that correspond to an event in the stream of events.

8. The method of claim 1 , further comprising training the machine learning model by processing a previous time slice of the stream of events, prior to said computing the score.

9. The method of claim 1 , wherein said processing the time slice through the first version of the machine learning model includes processing the time slice through a model deliberation process logic configured by the first version of the machine learning model; wherein said training the second version of the machine learning model includes processing the time slice through a model training process logic; and wherein the model training process logic and the model deliberation process logic are both machine learning models of a particular type.

10. The method of claim 1 , wherein

said live swapping includes re-configuring, without first terminating, a model deliberation process thread that is performing said computing, said computing being performed in real-time.

11. The method of claim 1 , furthering comprising processing the stream of events through a plurality of machine learning models of different types to detect security-related anomalies or threats of different types.

12. The method of claim 1 , further comprising: identifying a security-related anomaly or a security-related threat to enable remediation of the anomaly or threat as the stream of events is processed, the stream of events being processed in real-time.

13. The method of claim 1 , wherein the machine learning model is specific to a particular entity involved in the stream of events, wherein the entity is a user, a device, a system, a network resource locator, an application, a process thread, or any combination thereof.

14. The method of claim 1 , wherein the machine learning model performs behavioral analysis of a particular entity involved in the stream of events.

15. The method of claim 1 , wherein the machine learning model performs peer group analysis amongst entities involved in the stream of events.

16. The method of claim 1 , wherein the machine learning model performs time series analysis on a stream of the events.

17. The method of claim 1 , wherein the machine learning model performs graph correlation analysis amongst entities involved in the stream of events.

18. The method of claim 1 , wherein the machine learning model includes a state machine specific to an entity involved in an event represented in the time slice.

19. The method of claim 1 , wherein said computing the score includes processing the stream of events through the machine learning model according to model deliberation processing logic specified by a model type associated with the machine learning model.

20. The method of claim 1 , further comprising training the machine learning model according to model training processing logic specified by a model type associated with the machine learning model.

21. The method of claim 1 , further comprising training the machine learning model according to model training processing logic specified by a model type associated with the machine learning model, wherein a model type associated with the machine learning model includes definitions for a model training workflow and a model deliberation workflow.

22. The method of claim 1 , further comprising incrementally updating the machine learning model in real-time using the time slice of the events, wherein said incremental updating includes:

isolating a portion of a model state representative of the machine learning model affected by the events; and

re-training only the portion of the model state.

23. The method of claim 1 , further comprising simultaneously training multiple machine learning models, associated with different purposes or different entities, in real-time.

24. The method of claim 1 , wherein computing the score is performed in a distributed computation system that implements a task-parallel distributed data processing engine.

25. The method of claim 1 , further comprising training the machine learning model in a distributed computation system that implements a task-parallel distributed data processing engine.

26. The method of claim 1 , further comprising training the machine learning model in real-time using single-pass training processing logic.

27. The method of claim 1 , further comprising:

training the machine learning model; and

storing a model state of the machine learning model, resulting from said training, in a distributed cache for use in said computing of the score.

28. The method of claim 1 , wherein a threshold defining sufficiency of training is defined by the machine learning model.

29. A system comprising:

a communication device for receiving a stream of events; and

at least one hardware processor configured to:

compute in real-time a score by processing the stream of events through a first version of a machine learning model, wherein the stream of events corresponds to a time slice and includes time stamped machine data produced by a component within an information environment and reflects activity within the information technology environment, and wherein the machine learning model is configured to be trained to by computer network activity characterized by the stream of events involving at least one entity;

train, in parallel with said processing the stream of events, a second version of the machine learning model with the time slice that is being processed through the first version for scoring, wherein said training includes retraining a model state of the second version of the machine learning model when a group-specific stream of events provides additional event feature sets;

invoke a model readiness logic to determine whether the second version of the machine learning model has sufficient training; and

perform live-swapping in the second version of the machine learning model to replace the first version of the machine learning model as an active version to compute another score, said live-swapping being based on a determination of whether the second version of the machine learning model is ready for active deployment.

30. A non-transitory computer readable medium storing instructions, execution of which by a processor in a computer system causes the computer system to:

compute in real-time a score by processing a stream of events through a first version of a machine learning model, wherein the stream of events corresponds to a time slice and includes time stamped machine data produced by a component within an information environment and reflects activity within the information technology environment, and wherein the machine learning model is configured to be trained by computer network activity characterized by the stream of events involving at least one entity;

train, in parallel with said processing the stream of events, a second version of the machine learning model with the time slice that is being processed through the first version for scoring, wherein said training includes retraining a model state of the second version of the machine learning model when a group-specific stream of events provides additional event feature sets;

invoke a model readiness logic to determine whether the second version of the machine learning model has sufficient training; and

perform live-swapping in the second version of the machine learning model to replace the first version of the machine learning model as an active version to compute another score, said live-swapping being based on a determination of whether the second version of the machine learning model is ready for active deployment.

Assignments (4)
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 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069825/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2018
From: MUDDU, SUDHAKAR; TRYFONAS, CHRISTOS
To: SPLUNK INC.
Reel/Frame 045824/0349 →
Cited By (110)
US 12,192,216 US 12,206,696 US 12,242,639 US 12,244,621 US 12,261,866 US 12,267,338 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,355,626 US 12,355,787 US 12,355,793 US 12,363,148 US 12,368,745 US 12,368,746 US 12,368,747 US 12,375,573 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,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,506,762 US 12,511,110 US 12,513,221 US 12,526,297 US 12,535,955 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,556,548 US 12,556,559 US 12,563,060 US 12,563,064 US 12,563,071 US 12,563,072 US 12,580,932 US 12,580,934 US 12,580,935 US 12,580,936 US 12,580,937 US 12,585,730 US 12,587,535 US 12,587,553 US 12,592,950 US 12,598,205 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,634,312 US 12,634,376 US 12,639,057 US 12,647,441 US 12,652,302 US 12,659,325 US 12,659,326 US 12,659,327 US 12,659,333 US 12,669,986 US 12,676,874 US 12,689,638 US 12,689,640 US 12,695,768 US 12,706,930 US 12,706,931 US 12,706,932 US 12,706,933 US 12,706,980 US 12,712,897 US 12,719,896