IP Library Granted Patent US 11,924,072
Granted Patent B2
US 11,924,072 · App. 17/161,968 · Granted Mar 5, 2024

Technologies for annotating process and user information for network flows

Inventors: Navindra Yadav (Cupertino, CA); Abhishek Ranjan Singh (Pleasanton, CA); Anubhav Gupta (Fremont, CA); Shashidhar Gandham (Fremont, CA); Jackson Ngoc Ki Pang (Sunnyvale, CA); Shih-Chun Chang (San Jose, CA); Hai Trong Vu (San Jose, CA)
Assignee: Cisco Technology, Inc.
H04L43/045G06F3/0482G06F3/04842G06F3/04847G06F9/45558G06F16/122G06F16/137G06F16/162G06F16/17G06F16/173G06F16/174G06F16/1744G06F16/1748G06F16/2322G06F16/235G06F16/2365G06F16/24578G06F16/248G06F16/285G06F16/288G06F16/29G06F16/9535G06F21/53G06F21/552G06F21/556G06F21/566G06N20/00G06N99/00G06T11/206H04J3/0661H04J3/14H04L1/242H04L9/0866H04L9/3239H04L9/3242H04L41/046H04L41/0668H04L41/0803H04L41/0806H04L41/0816H04L41/0893H04L41/12H04L41/16H04L41/22H04L43/02H04L43/026H04L43/04H04L43/062H04L43/08H04L43/0805H04L43/0811H04L43/0829H04L43/0841H04L43/0858H04L43/0864H04L43/0876H04L43/0882H04L43/0888H04L43/10H04L43/106H04L43/12H04L43/16H04L45/306H04L45/38H04L45/46H04L45/507H04L45/66H04L45/74H04L47/11H04L47/20H04L47/2441H04L47/2483H04L47/28H04L47/31H04L47/32H04L61/5007H04L63/0227H04L63/0263H04L63/06H04L63/0876H04L63/1408H04L63/1416H04L63/1425H04L63/1433H04L63/1441H04L63/145H04L63/1458H04L63/1466H04L63/16H04L63/20H04L67/01H04L67/10H04L67/1001H04L67/12H04L67/51H04L67/75H04L69/16H04L69/22H04W72/54H04W84/18G06F2009/4557G06F2009/45587G06F2009/45591G06F2009/45595G06F2221/033G06F2221/2101G06F2221/2105G06F2221/2111G06F2221/2115G06F2221/2145H04L67/535
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 11,924,072
App. No.
17/161,968
Granted
Mar 5, 2024
Kind
B2
Abstract

Systems, methods, and computer-readable media for annotating process and user information for network flows. In some embodiments, a capturing agent, executing on a first device in a network, can monitor a network flow associated with the first device. The first device can be, for example, a virtual machine, a hypervisor, a server, or a network device. Next, the capturing agent can generate a control flow based on the network flow. The control flow may include metadata that describes the network flow. The capturing agent can then determine which process executing on the first device is associated with the network flow and label the control flow with this information. Finally, the capturing agent can transmit the labeled control flow to a second device, such as a collector, in the network.

Claims (56)

1. A non-transitory computer-readable media encoding a set of non-transitory computer-readable instructions, which when executed on one or more processors on devices connected to a network, cause one or more devices to:

at a first device, receive a stream of network flow data via an attached communications network;

evaluate the stream of network flow data to derive a directed control flow graph corresponding to a distributed application, the control flow graph including a plurality of nodes and a plurality of edges between various nodes, wherein:

the nodes of the graph correspond to network-addressable application components connected to the communications network, each application component sending and receiving network traffic including one or more packets at a network interface;

one or more of the application components includes a workload creating and/or processing a data stream as part of the distributed application; and

one or more first edges of the plurality of edges between the nodes of the graph correspond to data streams between source nodes and destination nodes;

annotate one or more flows associated with one or more nodes plurality of nodes and/or one or more second edges plurality of edges in the control flow graph with one or more tags, the tags relating to a functioning of the distributed application;

identify patterns of normal behavior of the distributed application; and

display a representation of the distributed application.

2. The non-transitory computer-readable media of claim 1 , further comprising computer-readable instructions that cause a second device to generate network flow data based upon the packets being sent and/or received via a network interface local to the second device, and send generated network flow data to the first device.

3. The non-transitory computer-readable media of claim 2 , further comprising computer-readable instructions that, when executed, cause the one or more devices to enable a user to search and query information associated with the directed control flow graph.

4. The non-transitory computer-readable media of claim 2 , wherein the one or more first and/or the one or more second edges in the directed control flow graph correspond to dependencies between services in the distributed application, and wherein the computer-readable media further comprise instructions that display to the user the dependencies between services.

5. The non-transitory computer-readable media of claim 2 , further comprising computer-readable instructions that, when executed, cause the one or more devices to evaluate newly received information from the stream of network flow data against the patterns and identify a change in conditions, the change in conditions including at least one of network traffic that varies from the normal behavior expected by the patterns and a change in the control flow graph; and respond to the change in conditions, wherein responding to the change in conditions includes updating the displayed representation of the distributed application.

6. The non-transitory computer-readable media of claim 2 , wherein the patterns are identified by a machine learning model.

7. The non-transitory computer-readable media of claim 6 , further comprising computer-readable instructions that, when executed, cause the one or more devices to use machine learning techniques to identify patterns that are desirable or unwanted.

8. The non-transitory computer-readable media of claim 7 , further comprising computer-readable instructions that, when executed, cause the one or more devices to enforce and/or modify a network traffic policy that mitigates an unwanted network traffic pattern.

9. The non-transitory computer-readable media of claim 5 , wherein responding to the change in conditions includes sending an alert.

10. The non-transitory computer-readable media of claim 2 , further comprising computer-readable instructions that, when executed, cause the one or more devices to persist at least a portion of information from the stream of network flow data via a storage facility accessible to the first device.

11. The non-transitory computer-readable media of claim 2 , further comprising computer-readable instructions that, when executed, cause the one or more devices to present a web-based user interface to the user.

12. The non-transitory computer-readable media of claim 1 , further comprising computer-readable instructions that, when executed, cause the one or more devices to enable a user to search and query information associated with the control flow graph.

13. The non-transitory computer-readable media of claim 1 , wherein the one or more first and/or the one or more second edges in the directed control flow graph correspond to dependencies between services in the distributed application, and wherein the computer-readable media further comprise instructions that display to the user the dependencies between services.

14. The non-transitory computer-readable media of claim 1 , further comprising computer-readable instructions that, when executed, cause the one or more devices to evaluate newly received information from the stream of network flow data against the patterns and identify a change in conditions, the change in conditions including at least one of network traffic that varies from the normal behavior expected by the patterns and a change in the control flow graph; and respond to the change in conditions, wherein responding to the change in conditions includes updating the displayed representation of the distributed application.

15. The non-transitory computer-readable media of claim 14 , wherein responding to the change in conditions includes sending an alert.

16. The non-transitory computer-readable media of claim 15 , further comprising computer-readable instructions that, when executed, cause the one or more devices to use machine learning techniques to identify patterns that are desirable or unwanted.

17. The non-transitory computer-readable media of claim 16 , further comprising computer-readable instructions that, when executed, cause the one or more devices to enforce and/or modify a network traffic policy that mitigates an unwanted network traffic pattern.

18. The non-transitory computer-readable media of claim 1 , wherein the patterns are identified by a machine learning model.

19. The non-transitory computer-readable media of claim 1 , further comprising computer-readable instructions that, when executed, cause the one or more devices to persist at least a portion of information from the stream of network flow data via a storage facility accessible to the first device.

20. The non-transitory computer-readable media of claim 1 , further comprising computer-readable instructions that, when executed, cause the one or more devices to present a web-based user interface to the user.

21. A method of monitoring network traffic, the method comprising:

at a first device, receiving a stream of network flow data via an attached communications network;

evaluating the stream of network flow data to derive a directed control flow graph corresponding to a distributed application, the control flow graph including a plurality of nodes and a plurality of edges between various nodes, wherein:

the nodes of the graph correspond to network-addressable application components connected to the communications network, each application component sending and receiving network traffic including one or more packets at a network interface;

one or more of the application components includes a container-hosted workload creating and/or processing a data stream as part of the distributed application; and

one or more first edges of the plurality of edges between the nodes of the graph correspond to data streams between source nodes and destination nodes;

annotating one or more flows associated with one or more nodes of the plurality of nodes and/or one or more second edges of the plurality of edges in the control flow graph with one or more tags, the tags relating to a functioning of the distributed application;

identifying patterns of normal behavior of the distributed application; and

displaying a representation of the distributed application.

22. The method of claim 21 , further comprising generating, at a second device, network flow data based upon the packets being sent and/or received via a network interface local to the second device; and sending generated network flow data from the second device to the first device.

23. The method of claim 22 , further comprising receiving a user-provided query and searching information associated with the control flow graph based on the query.

24. The method of claim 22 , wherein the patterns are identified by a machine learning model.

25. The method of claim 24 , further comprising using machine learning techniques to identify traffic patterns that represent normal operation of the distributed application, and traffic patterns which may indicate anomalies in or attacks against the distributed application.

26. The method of claim 21 , further comprising enforcing and/or modifying a network traffic policy to mitigate an anomalous or attacking network traffic pattern.

27. The method of claim 21 , further comprising receiving a user-provided query and searching information associated with the control flow graph based on the query.

28. The method of claim 21 , wherein the patterns are identified by a machine learning model.

29. The method of claim 28 , further comprising using machine learning techniques to identify traffic patterns that represent normal operation of the distributed application, and traffic patterns which may indicate anomalies in or attacks against the distributed application.

30. A system comprising:

one or more processors; and

non-transitory computer-readable media encoding instructions which, when executed by the one or more processors, cause one or more processors to:

receive, at a first device, a stream of network flow data via an attached communications network;

evaluate the stream of network flow data to derive a directed control flow graph corresponding to a distributed application, the control flow graph including a plurality of nodes and a plurality of edges between various nodes, wherein:

the nodes of the graph correspond to network-addressable application components connected to the communications network, each application component sending and receiving network traffic including one or more packets at a network interface;

one or more of the application components includes a workload creating and/or processing a data stream as part of the distributed application; and

one or more first edges of the plurality of edges between the nodes of the graph correspond to data streams between source nodes and destination nodes;

annotate one or more flows associated with one or more nodes of the plurality of nodes and/or one or more second edges of the plurality of edges in the control flow graph with one or more tags, the tags relating to a functioning of the distributed application;

identify patterns of normal behavior of the distributed application; and

display a representation of the distributed application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2021
From: YADAV, NAVINDRA; SINGH, ABHISHEK RANJAN; GUPTA, ANUBHAV; GANDHAM, SHASHIDHAR; PANG, JACKSON NGOC KI; CHANG, SHIH-CHUN; VU, HAI TRONG
To: CISCO TECHNOLOGY, INC.
Reel/Frame 055177/0174 →
Continuity (4)
Continuation 16237187 · Dec 31, 2018
Continuation 15152163 · May 11, 2016
Provisional Application 62171899 · Jun 5, 2015
Related Publication 20210152443A1 · May 20, 2021
Cited By (1)
US 12,450,348