IP Library Granted Patent US 10,659,432
Granted Patent B2
US 10,659,432 · App. 15/643,291 · Granted May 19, 2020

Network containment of compromised machines

Inventors: Paul Meyer (Hudson, WI); Cameron Gutman (Redmond, WA); John R. Kooker (Poway, CA)
Assignee: CrowdStrike, Inc.
H04L63/0263G06F21/554G06F21/566H04L63/0227H04L63/0236G06F21/56G06F21/562G06F2221/2115H04L63/02H04L63/1441
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,659,432
App. No.
15/643,291
Granted
May 19, 2020
Kind
B2
Abstract

A computing device can install and execute a kernel-level security agent that interacts with a remote security system as part of a detection loop aimed at defeating malware attacks. The kernel-level security agent can be installed with a firewall policy that can be remotely enabled by the remote security system in order to “contain” the computing device. Accordingly, when the computing device is being used, and a malware attack is detected on the computing device, the remote security system can send an instruction to contain the computing device, which causes the implementation, by an operating system (e.g., a Mac™ operating system) of the computing device, of the firewall policy accessible to the kernel-level security agent. Upon implementation and enforcement of the firewall policy, outgoing data packets from, and incoming data packets to, the computing device that would have been allowed prior to the implementation of the firewall policy are denied.

Claims (66)

1. A method comprising:

installing a kernel-level security agent on a computing device with a firewall policy, but refraining from implementing the firewall policy until an instruction to contain the computing device is received;

observing events associated with activity on the computing device;

sending the events, over a computer network, to a remote security system;

receiving, over the computer network and from the remote security system, the instruction to contain the computing device;

executing instructions to load a user-mode component in user mode of the computing device;

providing the firewall policy to the user-mode component;

using the user-mode component to invoke an application programming interface (API) to implement the firewall policy; and

implementing the firewall policy in kernel mode of the computing device based at least in part on the API invoked using the user-mode component, wherein the firewall policy, upon enforcement, denies outgoing data packets from, and incoming data packets to, the computing device that would have been allowed prior to the implementing of the firewall policy.

2. The method of claim 1 , wherein the firewall policy specifies:

at least one remote network address associated with the remote security system; and

an action to allow outgoing data packets to, and incoming data packets from, the remote security system associated with the at least one remote network address.

3. The method of claim 2 , wherein denying the outgoing data packets and the incoming data packets comprises denying all outgoing data packets and all incoming data packets except the outgoing data packets to, and the incoming data packets from, the remote security system associated with the at least one remote network address.

4. The method of claim 2 , further comprising, after the implementing of the firewall policy:

receiving, over the computer network and from the remote security system, a new version of the kernel-level security agent; and

installing the kernel-level security agent on the computing device.

5. The method of claim 2 , further comprising, after the implementing of the firewall policy:

receiving, over the computer network and from the remote security system, an instruction to perform a remediation action to counter malicious code associated with the events; and performing the remediation action.

6. The method of claim 1 , further comprising:

receiving, over the computer network and from the remote security system, a whitelist including one or more remote network addresses;

dynamically updating the firewall policy to specify:

the one or more remote network addresses; and

an action to allow outgoing data packets to, and incoming data packets from, one or more computer systems associated with the one or more remote network addresses.

7. A computing device comprising:

one or more processors; and

memory storing computer-executable instructions configured to be executed by the one or more processors to install a kernel-level security agent on the computing device with a firewall policy, but refrain from implementing the firewall policy until an instruction to contain the computing device is received, the kernel-level security agent configured to be executed by the one or more processors to:

observe events associated with activity on the computing device;

send the events, over a computer network, to a remote security system;

receive, over the computer network and from the remote security system, the instruction to contain the computing device;

execute instructions to load a user-mode component in user mode of the computing device;

provide the firewall policy to the user-mode component;

use the user-mode component to invoke an application programming interface (API) to implement the firewall policy; and

implement the firewall policy in kernel mode of the computing device based at least in part on the API invoked using the user-mode component, wherein the firewall policy, upon enforcement, denies outgoing data packets from, and incoming data packets to, the computing device that would have been allowed prior to the implementing of the firewall policy.

8. The computing device of claim 7 , wherein the firewall policy specifies:

at least one remote network address associated with the remote security system; and

an action to allow outgoing data packets to, and incoming data packets from, the remote security system associated with the at least one remote network address.

9. The computing device of claim 8 , wherein denying the outgoing data packets and the incoming data packets comprises denying all outgoing data packets and all incoming data packets except the outgoing data packets to, and the incoming data packets from, the remote security system associated with the at least one remote network address.

10. The computing device of claim 8 , wherein the kernel-level security agent is further configured to be executed by the one or more processors to, after implementing the firewall policy:

receive, over the computer network and from the remote security system, an instruction to perform a remediation action to counter malicious code associated with the events; and perform the remediation action.

11. The computing device of claim 7 , wherein the kernel-level security agent is further configured to be executed by the one or more processors to:

receive, over the computer network and from the remote security system, a whitelist including one or more remote network addresses; and

dynamically update the firewall policy to specify:

the one or more remote network addresses; and

an action to allow outgoing data packets to, and incoming data packets from, one or more computer systems associated with the one or more remote network addresses.

12. The computing device of claim 7 , wherein the kernel-level security agent is further configured to be executed by the one or more processors to, after implementing the firewall policy:

send, over the computer network, a current containment status to the remote security system.

13. The computing device of claim 7 , further comprising a display, wherein the kernel-level security agent is further configured to be executed by the one or more processors to, after implementing the firewall policy:

receive, over the computer network and from the remote security system, a notification that the computing device has been contained; and

display the notification on the display of the computing device, the notification including contact information of support personnel.

14. The computing device of claim 7 , wherein the kernel-level security agent is further configured to be executed by the one or more processors to, after implementing the firewall policy:

receive, over the computer network and from the remote security system, an instruction to deactivate containment of the computing device; and

cease the enforcement of the firewall policy on the computing device to allow the outgoing data packets and the incoming data packets.

15. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by one or more processors of a computing device, cause the computing device to install a kernel-level security agent on the computing device with a firewall policy, but refrain from implementing the firewall policy until an instruction to contain the computing device is received, wherein the kernel-level security agent, when executed by the one or more processors, causes the computing device to perform operations comprising:

observing events associated with activity on the computing device;

sending the events, over a computer network, to a remote security system;

receiving, over the computer network and from the remote security system, the instruction to contain the computing device;

executing instructions to load a user-mode component in user mode of the computing device;

providing the firewall policy to the user-mode component;

using the user-mode component to call an application programming interface (API) to implement the firewall policy; and

implementing the firewall policy in kernel mode of the computing device based at least in part on the API called by the user-mode component, wherein the firewall policy, upon enforcement, denies outgoing data packets from, and incoming data packets to, the computing device that would have been allowed prior to the implementing of the firewall policy.

16. The one or more non-transitory computer-readable media of claim 15 , the operations further comprising, after the implementing of the firewall policy:

sending, over the computer network, a current containment status to the remote security system.

17. The one or more non-transitory computer-readable media of claim 15 , the operations further comprising, after the implementing of the firewall policy:

receiving, over the computer network and from the remote security system, an instruction to deactivate containment of the computing device; and

ceasing the enforcement of the firewall policy on the computing device to allow the outgoing data packets and the incoming data packets.

18. The one or more non-transitory computer-readable media of claim 15 , wherein a kernel-mode component of the kernel-level security agent maintains a configuration of the kernel-level security agent, the configuration specifying the user-mode component.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jan 6, 2026
From: FIRST-CITIZENS BANK & TRUST COMPANY
To: CROWDSTRIKE HOLDINGS, INC.; CROWDSTRIKE, INC.
Reel/Frame 074202/0710 →
PATENT SECURITY AGREEMENT Recorded Jan 5, 2021
From: CROWDSTRIKE HOLDINGS, INC.; CROWDSTRIKE, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 054899/0848 →
SECURITY INTEREST Recorded Apr 22, 2019
From: CROWDSTRIKE HOLDINGS, INC.; CROWDSTRIKE, INC.; CROWDSTRIKE SERVICES, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 048953/0205 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2017
From: MEYER, PAUL; GUTMAN, CAMERON; KOOKER, JOHN R.
To: CROWDSTRIKE, INC.
Reel/Frame 042926/0868 →
Continuity (1)
Related Publication 20190014086A1 · Jan 10, 2019
Cited By (4)
US 12,189,791 US 12,585,657 US 12,587,546 US 12,694,146