IP Library Granted Patent US 11,012,337
Granted Patent B1
US 11,012,337 · App. 16/660,885 · Granted May 18, 2021

Using machine learning to determine whether network components are being used as intended

Inventors: Sathish Kumar Bikumala (Round Rock, TX); Gregory Michael Ramsey (Seattle, WA)
Assignee: Dell Products L.P.
H04L43/0876G06K9/6276H04L41/5003H04L43/062H04L45/42H04L63/102H04L67/22
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,012,337
App. No.
16/660,885
Granted
May 18, 2021
Kind
B1
Abstract

In some examples, a server may receive, from a software agent, data associated with a particular component of a plurality of components in a system (e.g., an information technology (IT) network). The data may include connection data, network location data, software data, user data, hardware data, and network routing data. The server may determine, using a k-nearest classification algorithm and based on the data, a current usage of the particular component. The server may determine an intended usage of the particular component and perform a comparison of the current usage with the intended usage. If the server determines that the current usage differs from the intended usage by at least a predetermined percentage, then the server may perform one or more remediation actions to modify the current usage to differ from the intended usage by less than the predetermined percentage.

Claims (111)

1. A method comprising:

receiving, by one or more processors and from a software agent, data associated with a particular component of a plurality of components in a system;

determining, by the one or more processors and based on the data, a current operational role of the particular component with respect to operational roles of other components of the plurality of components in the system;

determining, by the one or more processors, an intended operational role of the particular component;

performing, by the one or more processors, a comparison of the current operational role with the intended operational role;

determining, by the one or more processors and based on the comparison, that the current operational role differs from the intended operational role by at least a predetermined percentage; and

performing, by the one or more processors, one or more remediation actions to modify the current operational role to differ from the intended operational role by less than the predetermined percentage.

2. The method of claim 1 , wherein the particular component comprises at least one of:

computing hardware comprising one of a server or a client computing device;

networking hardware comprising one of a switch, a hub, a router, a firewall, a network security device, or a load balancer; or

a software application comprising one of a database software application, an Enterprise Resource Planning (ERP) software application, a customer relationship management (CRM) software application, or a productivity suite.

3. The method of claim 1 , wherein the data comprises at least one of:

connection data including a type of connections and a bandwidth of each connection associated with the particular component;

network location data identifying a network location of the particular component;

software data identifying an installed operating system, installed software applications, and processes that are executing

user data identifying a number of users accessing the particular component, types of the users, rights associated with the users, credentials associated with the users;

hardware data identifying a type and a speed of a central processing unit, an amount of processor usage, an amount of memory, an amount of memory usage, an amount of storage, and an amount of storage usage associated with the particular component; and

network routing data identifying an incoming type of traffic being routed to the particular component, an outgoing type of traffic being routed from the particular component to other components of the plurality of components.

4. The method of claim 1 , wherein determining the intended operational role of the particular component comprises:

accessing a plan or record, a provisioning database, or a configuration management database that indicates the intended operational role of the particular component.

5. The method of claim 1 , wherein determining, based on the data, the current operational role of the particular component comprises:

classifying, using a k-nearest classification algorithm, the current operational role of the particular component based on a nearness of a current usage of the particular component to a usage associated with one or more of a plurality of operational role classifications.

6. The method of claim 1 , wherein the one or more remediation actions comprise at least one of:

uninstalling one or more software components currently installed in the particular component;

installing one or more additional software components in the particular component;

reconfiguring one or more network connections of the particular component;

reconfiguring one or more security measure used by the particular component;

reconfiguring users allowed access to the particular component;

reconfiguring one or more access levels or credentials associated with the users;

reconfiguring one or more network components associated with the particular component; or

deprovisioning one or more additional components of the plurality of components that interact with the particular component.

7. The method of claim 1 , wherein the current operational role comprises at least one of:

a production usage in which end users are able to access the particular component;

a development usage in which software developers are able to use the particular component to develop software;

a test usage in which testers are able to test pre-production software using the particular component;

a sandbox usage in which the pre-production software is tested in a way that does not affect other components of the plurality of components; or

a performance usage in which a performance of the pre-production software is tested under stress conditions.

8. A server comprising:

one or more processors; and

one or more non-transitory computer-readable media storing instructions executable by the one or more processors to perform operations comprising:

receiving, from a software agent, data associated with a particular component of a plurality of components in a system;

determining, based on the data, a current operational role of the particular component with respect to operational roles of other components of the plurality of components in the system;

determining an intended operational role of the particular component with respect to other components of the plurality of components of the system;

performing a comparison of the current operational role with the intended operational role;

determining, based on the comparison, that the current operational role differs from the intended operational role by at least a predetermined percentage; and

performing one or more remediation actions to modify the current operational role to differ from the intended operational role by less than the predetermined percentage.

9. The server of claim 8 , wherein the particular component comprises at least one of:

computing hardware comprising one of a server or a client computing device;

networking hardware comprising one of a switch, a hub, a router, a firewall, a network security device, or a load balancer; or

a software application comprising one of a database software application, an Enterprise Resource Planning (ERP) software application, a customer relationship management (CRM) software application, or a productivity suite.

10. The server of claim 8 , wherein the data comprises at least one of:

connection data including a type of connections and a bandwidth of each connection associated with the particular component;

network location data identifying a network location of the particular component;

software data identifying an installed operating system, installed software applications, and processes that are executing

user data identifying a number of users accessing the particular component, types of the users, rights associated with the users, credentials associated with the users;

hardware data identifying a type and a speed of a central processing unit, an amount of processor usage, an amount of memory, an amount of memory usage, an amount of storage, and an amount of storage usage associated with the particular component; and

network routing data identifying an incoming type of traffic being routed to the particular component, an outgoing type of traffic being routed from the particular component to other components of the plurality of components.

11. The server of claim 8 , wherein determining, based on the data, the current operational role of the particular component comprises:

classifying, using a k-nearest classification algorithm, the current operational role of the particular component based on a nearness of a current usage of the particular component to a usage associated with one or more of a plurality of operational role classifications.

12. The server of claim 8 , wherein the one or more remediation actions comprise at least one of:

uninstalling one or more software components currently installed in the particular component;

installing one or more additional software components in the particular component;

reconfiguring one or more network connections of the particular component;

reconfiguring one or more security measure used by the particular component;

reconfiguring users allowed access to the particular component;

reconfiguring one or more access levels or credentials associated with the users;

reconfiguring one or more network components associated with the particular component; or

deprovisioning one or more additional components of the plurality of components that interact with the particular component.

13. The server of claim 8 , wherein the current operational role comprises at least one of:

production usage in which end users are able to access the particular component;

development usage in which software developers are able to use the particular component to develop software;

test usage in which testers are able to test pre-production software using the particular component;

sandbox usage in which the pre-production software is tested in a way that does not affect other components of the plurality of components; or

performance usage in which a performance of the pre-production software is tested under stress conditions.

14. One or more non-transitory computer readable media storing instructions executable by one or more processors to perform operations comprising:

receiving, from a software agent, data associated with a particular component of a plurality of components in a system;

determining, based on the data, a current operational role of the particular component with respect to operational roles of other components of the plurality of components in the system;

determining an intended operational role of the particular component with respect to other components of the plurality of components of the system;

performing a comparison of the current operational role with the intended operational role;

determining, based on the comparison, that the current operational role differs from the intended operational role by at least a predetermined percentage; and

performing one or more remediation actions to modify the current operational role to differ from the intended operational role by less than the predetermined percentage.

15. The one or more non-transitory computer readable media of claim 14 , wherein the particular component comprises at least one of:

computing hardware comprising one of a server or a client computing device;

networking hardware comprising one of a switch, a hub, a router, a firewall, a network security device, or a load balancer; or

a software application comprising one of a database software application, an Enterprise Resource Planning (ERP) software application, a customer relationship management (CRM) software application, or a productivity suite.

16. The one or more non-transitory computer readable media of claim 14 , wherein the data comprises at least one of:

connection data including a type of connections and a bandwidth of each connection associated with the particular component;

network location data identifying a network location of the particular component;

software data identifying an installed operating system, installed software applications, and processes that are executing

user data identifying a number of users accessing the particular component, types of the users, rights associated with the users, credentials associated with the users;

hardware data identifying a type and a speed of a central processing unit, an amount of processor usage, an amount of memory, an amount of memory usage, an amount of storage, and an amount of storage usage associated with the particular component; and

network routing data identifying an incoming type of traffic being routed to the particular component, an outgoing type of traffic being routed from the particular component to other components of the plurality of components.

17. The one or more non-transitory computer readable media of claim 14 , wherein determining the intended operational role of the particular component comprises:

accessing a plan or record, a provisioning database, or a configuration management database that indicates the intended operational role of the particular component or indicates how the particular component was originally provisioned.

18. The one or more non-transitory computer readable media of claim 14 , wherein determining, based on the data, the current operational role of the particular component comprises:

classifying, using a k-nearest classification algorithm, the current operational role of the particular component based on a nearness of a current usage of the particular component to a usage associated with one or more of a plurality of operational role classifications.

19. The one or more non-transitory computer readable media of claim 14 , wherein the one or more remediation actions comprise at least one of:

uninstalling one or more software components currently installed in the particular component;

installing one or more additional software components in the particular component;

reconfiguring one or more network connections of the particular component;

reconfiguring one or more security measure used by the particular component;

reconfiguring users allowed access to the particular component;

reconfiguring one or more access levels or credentials associated with the users;

reconfiguring one or more network components associated with the particular component; or

deprovisioning one or more additional components of the plurality of components that interact with the particular component.

20. The one or more non-transitory computer readable media of claim 14 , wherein the current operational role comprises at least one of:

a production usage in which end users are able to access the particular component;

a development usage in which software developers are able to use the particular component to develop software;

a test usage in which testers are able to test pre-production software using the particular component;

a sandbox usage in which the pre-production software is tested in a way that does not affect other components of the plurality of components; or

a performance usage in which a performance of the pre-production software is tested under stress conditions.

Assignments (12)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2019
From: BIKUMALA, SATHISH KUMAR; RAMSEY, GREGORY MICHAEL
To: DELL PRODUCTS L. P.
Reel/Frame 050799/0808 →