IP Library Granted Patent US 11,368,495
Granted Patent B2
US 11,368,495 · App. 17/510,007 · Granted Jun 21, 2022

Securely managing network connections

Inventors: James Calvin Armstrong (Foster City, CA); Jonathan Claybaugh (San Francisco, CA)
Assignee: Snowflake Inc.
H04L63/20G06F21/566G06F21/57G06F21/6218H04L41/0604H04L41/22H04L43/00H04L43/026H04L43/062H04L43/0811H04L47/10H04L63/0263H04L63/102H04L63/104H04L63/1408H04L63/1416
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,368,495
App. No.
17/510,007
Granted
Jun 21, 2022
Kind
B2
Abstract

The disclosure relates generally to methods, systems, and apparatuses for managing network connections. A system for managing network connections includes a storage component, a decoding component, a rule manager component, and a notification component. The storage component is configured to store a list of expected connections for a plurality of networked machines, wherein each connection in the list of expected connections defines a start point and an end point for the connection. The decoding component is configured to decode messages from the plurality of networked machines indicating one or more connections for a corresponding machine. The rule manager component is configured to identify an unexpected presence or absence of a connection on at least one of the plurality of network machines based on the list of expected connections. The notification component is configured to provide a notification or indication of the unexpected presence or absence.

Claims (50)

1. A method for managing connections by a host, the method comprising:

storing a first list of connections indicative of respective configurations of a plurality of networked resources, the respective configurations comprising communication permissions among the plurality of networked resources;

requesting and receiving, from a first networked resource of the plurality of network resources, a second list of connections indicating communication permissions at the first networked resource;

detecting, by one or more processors of the host, one or more differences between the first list of connections and a second list of connections of the first networked resource of the plurality of networked resources; and

updating, by the one or more processors, the second list of connections based on the one or more differences to align the second list of connections with the first list of connections.

2. The method of claim 1 , wherein the first list of connections comprises a list of desired connections among the plurality of networked resources.

3. The method of claim 2 , wherein each desired connection in the list of desired connections defines two network resources between which the desired connection exists.

4. The method of claim 1 , wherein the second list of connections indicates existing connections between the first networked resource and the plurality of networked resources.

5. The method of claim 1 , wherein updating the second list of connections comprises:

adding or removing one or more connections to the first list of connections based on one or more differences between the second list of connections and the first list of connections.

6. The method of claim 1 , further comprising obtaining, for each of one or more of the plurality of networked resources, a connection indication file indicating one or more actual connections maintained by the networked resource.

7. The method of claim 1 , further comprising providing a notification of the one or more differences between the first list of connections and the second list of connections.

8. The method of claim 7 , wherein each of the one or more differences indicates an unauthorized connection or an inaccuracy of the second list of connections.

9. The method of claim 1 , wherein detecting the one or more differences between the first list of connections and the second list of connections of the first networked resource comprises:

determining whether a particular desired connection of the first list of connections has a matching actual connection among the second list of connections of the first networked resource.

10. The method of claim 1 , wherein each connection in the first list of connections among the plurality of networked resources comprises a protocol, a port number, a port number range, or a security group.

11. A system comprising:

a memory to store a first list of connections among a plurality of networked resources; and

one or more processors operatively coupled to the memory, the one or more processors to:

detect, by one or more processors, one or more differences between the first list of connections and a second list of connections of a first networked resource of the plurality of networked resources, wherein the first list of connections is indicative of respective configurations of the plurality of networked resources, the respective configurations comprising communication permissions among the plurality of networked resources, and wherein the second list of connections indicates communication permissions at the first networked resource; and

update, by the one or more processors, the second list of connections based on the one or more differences to align the second list of connections with the first list of connections.

12. The system of claim 11 , wherein the first list of connections comprises a list of desired connections among the plurality of networked resources.

13. The system of claim 12 , wherein each desired connection in the list of desired connections defines two network resources between which the desired connection exists.

14. The system of claim 11 , wherein the second list of connections indicates existing connections between the first networked resource and the plurality of networked resources.

15. The system of claim 11 , wherein to update the second list of connections the one or more processors are to:

add or remove one or more connections to the first list of connections based on one or more differences between the second list of connections and the first list of connections.

16. The system of claim 11 , wherein the one or more processors are further to:

obtain, for each of one or more of the plurality of networked resources, a connection indication file indicating one or more actual connections maintained by the networked resource.

17. The system of claim 11 , wherein the one or more processors are further to: provide a notification of the one or more differences between the first list of connections and the second list of connections.

18. The system of claim 17 , wherein each of the one or more differences indicates an unauthorized connection or an inaccuracy of the second list of connections.

19. The system of claim 11 , wherein to detect the one or more differences between the first list of connections and the second list of connections of the first networked resource, the one or more processors are to:

determine whether a particular desired connection of the first list of connections has a matching actual connection among the second list of connections of the first networked resource.

20. The system of claim 11 , wherein each connection in the first list of connections among the plurality of networked resources comprises a protocol, a port number, a port number range, or a security group.

21. A non-transitory computer-readable medium having instructions stored thereon which, when executed by one or more processors, cause the one or more processors to:

store a master connection file comprising a first list of connections indicative of respective configurations of a plurality of networked resources, the respective configurations comprising communication permissions among the plurality of networked resources;

detect, by the one or more processors, one or more differences between the master connection file and a first connection indication file of a first networked resource and a second connection indication file of a second networked resource, wherein the first connection indication file comprises a second list of connections maintained between the first networked resource and the plurality of networked resources and the second connection indication file comprises a third list of connections maintained among the second networked resource and the plurality of networked resources, the second and third lists of connections comprising communication permissions; and

update, by the one or more processors, the first and second connection indication files based on the one or more differences between the master connection file and the first and second connection indication files to align the second list of connections and the third list of connections with the first list of connections.

22. The non-transitory computer-readable medium of claim 21 , wherein the first list of connections comprises a list of desired connections among the plurality of networked resources.

23. The non-transitory computer-readable medium of claim 22 , wherein each desired connection in the list of desired connections defines two network resources between which the desired connection exists.

24. The non-transitory computer-readable medium of claim 21 , wherein the second list of connections indicates existing connections between the first networked resource and the plurality of networked resources.

25. The non-transitory computer-readable medium of claim 21 , wherein to update the second list of connections comprises:

adding or removing one or more connections to the first list of connections based on one or more differences between the second list of connections and the first list of connections.

26. The non-transitory computer-readable medium of claim 21 , wherein the one or more processors are further to:

obtain, for each of one or more of the plurality of networked resources, a connection indication file indicating one or more actual connections maintained by the networked resource.

27. The non-transitory computer-readable medium of claim 21 , wherein the one or more processors are further to:

provide a notification of the one or more differences between the first list of connections and the second list of connections.

28. The non-transitory computer-readable medium of claim 27 , wherein each of the one or more differences indicates an unauthorized connection or an inaccuracy of the second list of connections.

29. The non-transitory computer-readable medium of claim 21 , wherein to detect the one or more differences between the first list of connections and the second list of connections of the first networked resource, the one or more processors are to:

determine whether a particular desired connection of the first list of connections has a matching actual connection among the second list of connections of the first networked resource.

30. The non-transitory computer-readable medium of claim 21 , wherein each connection in the first list of connections among the plurality of networked resources comprises a protocol, a port number, a port number range, or a security group.

Assignments (2)
CHANGE OF NAME Recorded May 13, 2022
From: SNOWFLAKE COMPUTING INC.
To: SNOWFLAKE INC.
Reel/Frame 060068/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2021
From: ARMSTRONG, JAMES CALVIN; CLAYBAUGH, JONATHAN
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 057904/0104 →
Continuity (4)
Continuation 16942231 · Jul 29, 2020
Continuation 16857174 · Apr 23, 2020
Continuation 15079849 · Mar 24, 2016
Related Publication 20220046062A1 · Feb 10, 2022