IP Library Granted Patent US 10,511,634
Granted Patent B2
US 10,511,634 · App. 15/883,077 · Granted Dec 17, 2019

Scalable cloud-based endpoint security system

Inventors: Marcio Castilho (Palm Harbor, FL); Kevin Breton (Palmetto, FL); Jonathan Chan (Brooklyn, NY); Anupam Bandyopadhyay (Tampa, FL); Plamen Stoyanov (St. Petersburg, FL)
Assignee: Malwarebytes Inc.
H04L63/20G06F21/57H04L41/082H04L63/10H04L63/0263
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,511,634
App. No.
15/883,077
Granted
Dec 17, 2019
Kind
B2
Abstract

A scalable cloud-based endpoint security system facilitates a security policy on a plurality of endpoints. Configuration data or commands for implementing a security policy are entered via a web browser of an administrative client device and received at a cloud server. An API server generates a message to a queue of a publication/subscription server that publishes the messages from the queue to one or more subscribing communication servers. A communication server sends the message to an endpoint targeted by the message via a persistent connection that the communication server maintains with the endpoint. In response to the message, the endpoint establishes a connection to the API server. The API server then distributes the configuration data or commands to the endpoint.

Claims (67)

1. A method for updating a security policy on a plurality of endpoints in a networked computer environment, the method comprising:

receiving, at an API server, a command including configuration data for configuring the plurality of endpoints within an enterprise network;

generating a connection request message identifying the plurality of endpoints targeted by the command;

identifying, by a communication server, a target endpoint identified by the connection request message;

sending, by the communication server, the connection request message to the identified endpoint via a persistent connection;

receiving by the API server, a connection request from the identified endpoint in response to the identified endpoint receiving the connection request message;

establishing a temporary connection between the API server and the identified endpoint in response to the request; and

communicating, by the API server, the command to the identified endpoint over the temporary connection.

2. The method of claim 1 , further comprising:

updating, by the API server, a database based on the command, the database storing configuration information relating to the plurality of endpoints.

3. The method of claim 1 , wherein the API server and communication server are implemented as virtual servers in a cloud computing environment coupled to the endpoints over a wide area network.

4. The method of claim 1 , further comprising:

detecting a set of new endpoints joining the enterprise network;

responsive to the detecting the set of new endpoint, generating a number of a new virtual server instances of the communication server, the number of new virtual server instances based on a number of the new endpoints; and

assigning each of the new virtual server instances to a subset of the new endpoints.

5. The method of claim 1 , wherein the persistent connection maintained between the communication server and the endpoints is a WebSocket connection.

6. The method of claim 1 , further comprising:

the API server receiving, from the identified endpoint, an identifier for the received message;

performing a comparison, by the API server, of the received identifier to message identifiers saved in a data store associated with the identified endpoint;

determining, at the API server, whether the identified endpoint missed one or more prior commands intended for the identified endpoint based on the comparison; and

providing, by the API server, the identified endpoint with the missed one or more prior commands.

7. The method of claim 1 , wherein the command comprises a command to perform at least one of: updating an endpoint agent executing on the identified endpoint, updating a configuration parameter associated with an endpoint agent executing on the identified endpoint, reconfiguring a firewall setting on the identified endpoint, changing a scheduled scanning frequency of the identified endpoint, disabling or enabling security features of the endpoint agent executing on the identified endpoint, and requesting status information from the identified endpoint.

8. A non-transitory computer-readable storage medium storing instructions for updating a security policy on a plurality of endpoints in a networked computer environment, the instructions when executed by one or more processors causing the one or more processors to perform steps comprising:

receiving, at an API server, a command including configuration data for configuring the plurality of endpoints within an enterprise network;

generating a connection request message identifying the plurality of endpoints targeted by the command;

identifying, by a communication server, a target endpoint identified by the connection request message;

sending, by the communication server, the connection request message to the identified endpoint via a persistent connection;

receiving by the API server, a connection request from the identified endpoint in response to the identified endpoint receiving the connection request message;

establishing a temporary connection between the API server and the identified endpoint in response to the request; and

communicating, by the API server, the command to the identified endpoint over the temporary connection.

9. The non-transitory computer-readable storage medium of claim 8 , the steps further comprising:

updating, by the API server, a database based on the security policy, the database storing configuration information relating to the plurality of endpoints.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the API server and communication server are implemented as virtual servers in a cloud computing environment coupled to the endpoints over a wide area network.

11. The non-transitory computer-readable storage medium of claim 8 , the steps further comprising:

detecting a set of new endpoints joining the enterprise network;

responsive to the detecting the set of new endpoint, generating a number of a new virtual server instances of the communication server, the number of new virtual server instances based on a number of the new endpoints; and

assigning each of the new virtual server instances to a subset of the new endpoints.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the persistent connection maintained between the communication server and the endpoint is a Web Socket connection.

13. The non-transitory computer-readable storage medium of claim 8 , the steps further comprising:

the API server receiving, from the identified endpoint, an identifier for the received message;

performing a comparison, by the API server, of the received identifier to message identifiers saved in a data store associated with the identified endpoint;

determining, at the API server, whether the identified endpoint missed one or more prior commands intended for the identified endpoint based on the comparison; and

providing, by the API server, the identified endpoint with the missed one or more prior commands.

14. The non-transitory computer-readable storage medium of claim 8 , wherein the command comprises a command to perform at least one of: updating an endpoint agent executing on the identified endpoint, updating a configuration parameter associated with an endpoint agent executing on the identified endpoint, reconfiguring a firewall setting on the identified endpoint, changing a scheduled scanning frequency of the identified endpoint, disabling or enabling security features of the endpoint agent executing on the identified endpoint, and requesting status information from the identified endpoint.

15. A security system for implementing a security policy on a plurality of endpoints in a networked computer environment, the security system comprising:

one or more computer processors; and

one or more non-transitory computer-readable storage media, the storage media storing computer program instructions executable by the one or more computer processors to perform steps comprising:

receiving, at an API server, a command including configuration data for configuring the plurality of endpoints within an enterprise network;

generating a connection request message identifying the plurality of endpoints targeted by the command;

identifying, by a communication server, a target endpoint identified by the connection request message;

sending, by the communication server, the connection request message to the identified endpoint via a persistent connection;

receiving by the API server, a connection request from the identified endpoint in response to the identified endpoint receiving the connection request message;

establishing a temporary connection between the API server and the identified endpoint in response to the request; and

communicating, by the API server, the command to the identified endpoint over the temporary connection.

16. The security system of claim 15 , the steps further comprising:

updating, by the API server, a database based on the command, the database storing configuration information relating to the plurality of endpoints.

17. The security system of claim 15 , wherein the API server and communication server are implemented as virtual servers in a cloud computing environment coupled to the endpoints over a wide area network.

18. The security system of claim 15 , the steps further comprising:

detecting a set of new endpoints joining the enterprise network;

responsive to the detecting the set of new endpoint, generating a number of a new virtual server instances of the communication server, the number of new virtual server instances based on a number of the new endpoints; and

assigning each of the new virtual server instances to a subset of the new endpoints.

19. The security system of claim 15 , wherein the persistent connection maintained between the communication server and the endpoints is a Web Socket connection.

20. The security system of claim 15 , the steps further comprising:

the API server receiving, from the identified endpoint, an identifier for the received message;

performing a comparison, by the API server, of the received identifier to message identifiers saved in a data store associated with the identified endpoint;

determining, at the API server, whether the identified endpoint missed one or more prior commands intended for the identified endpoint based on the comparison; and

providing, by the API server, the identified endpoint with the missed one or more prior commands.

Assignments (9)
CHANGE OF NAME Recorded May 18, 2026
From: MALWAREBYTES CORPORATE HOLDCO INC.
To: THREATDOWN INC.
Reel/Frame 075592/0851 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Oct 21, 2024
From: COMPUTERSHARE TRUST COMPANY, N.A.
To: MALWAREBYTES CORPORATE HOLDCO INC.
Reel/Frame 069193/0563 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Oct 21, 2024
From: COMPUTERSHARE TRUST COMPANY, N.A.
To: MALWAREBYTES INC.
Reel/Frame 069193/0505 →
SECURITY INTEREST Recorded Oct 18, 2024
From: MALWAREBYTES INC.; MALWAREBYTES CORPORATE HOLDCO INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 068943/0937 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2024
From: MALWAREBYTES INC.
To: MALWAREBYTES CORPORATE HOLDCO INC.
Reel/Frame 066900/0386 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 26, 2024
From: MALWAREBYTES CORPORATE HOLDCO INC.
To: COMPUTERSHARE TRUST COMPANY, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 066373/0912 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 1, 2023
From: MALWAREBYTES INC.
To: COMPUTERSHARE TRUST COMPANY, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 062599/0069 →
SECURITY INTEREST Recorded Oct 10, 2019
From: MALWAREBYTES INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 050681/0271 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2018
From: CASTILHO, MARCIO; BRETON, KEVIN; CHAN, JONATHAN; BANDYOPADHYAY, ANUPAM; STOYANOV, PLAMEN
To: MALWAREBYTES INC.
Reel/Frame 044782/0251 →
Continuity (2)
Continuation 15665368 · Jul 31, 2017
Related Publication 20190036967A1 · Jan 31, 2019