IP Library Granted Patent US 10,073,970
Granted Patent B2
US 10,073,970 · App. 15/457,719 · Granted Sep 11, 2018

System and method for reverse command shell detection

Inventor: Jeffrey Albin Kraemer (Wellesley, MA)
Assignee: Carbon Black, Inc.
G06F21/554G06F9/451G06F21/52G06F21/566H04L63/105H04L63/1425
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,073,970
App. No.
15/457,719
Granted
Sep 11, 2018
Kind
B2
Abstract

A system and method for detecting reverse command shell intrusions at a process-level on a user device is disclosed. In one embodiment, the system detects each process starting on an operating system of the user device, such as a mobile phone or laptop computer, and monitors Application Programming Interface (API) calls between each process and the operating system. The system then determines whether each process is associated with a reverse command shell intrusion based on information associated with each process and/or the API calls, and executes security policies against the processes associated with the reverse command shell intrusion to remediate the processes. In another embodiment, the system determines whether processes starting on a user device are associated with a reverse command shell intrusion by monitoring and analyzing information associated with the parent process of each process and/or API calls between each parent process and the operating system.

Claims (24)

1. A method for tracking a reverse command shell intrusion on a user device, the method comprising:

detecting a process starting on the user device;

preparing the process to monitor Application Programming Interface (API) calls between the process and an operating system of the user device;

determining whether the process is associated with a reverse command shell intrusion based on information associated with the process and/or the API calls; and

executing security policies against the process associated with the reverse command shell intrusion;

wherein determining whether the process is associated with a reverse command shell intrusion based upon the information associated with the process and/or the API calls comprises:

determining whether the process is a command shell process and analyzing a parent process of the command shell process and determining a possible existence of a reverse shell intrusion in response to determining that the process is a command shell process and that the parent process of the command shell process is a command shell process, a user login process, or a desktop process; or

determining whether the process is a command shell process and analyzing a parent process of the command shell process, analyzing a connection of the parent process, and determining a possible existence of reverse shell intrusion in response to determining that the connection of the parent process has a connection to a network application located in a network that is remote; or

determining that the process is a command shell process and analyzing a parent process of the command shell process, detecting a readFile( ) API call, determining that a file descriptor of the readFile( ) API call matches a handle to a stdin stream of the command shell process, identifying commands passed by the parent process to the command shell process in the stdin stream of the command shell process, and concluding whether the process is a reverse command shell intrusion based on the commands; or

determining that the process is a command shell process and analyzing a parent process of the command shell process, detecting a readConsole( ) API call, determining based on the readConsole( ) API call that the parent process is reading from a stdin stream of the command shell process, identifying commands passed by the parent process to the command shell process in the stdin stream of the command shell process, and concluding whether the process is a reverse command shell intrusion based on the commands.

2. A user device including system memory and hardware components, the user device executing a system for tracking a reverse command shell intrusion on the user device, the system comprising:

an endpoint telemetry aggregation system that stores security policies for remediating processes executing on the user device that are associated with a reverse command shell intrusion; and

a security agent executing on the user device that:

prepares a process to monitor Application Programming Interface (API) calls between the process and an operating system of the user device;

receives information associated with the process and/or the API calls, sent from the process;

determines whether the process is associated with a reverse command shell intrusion based on the information associated with the process and/or the API calls;

requests the security policies from the endpoint telemetry aggregation system; and

executes the security policies against the process associated with the reverse command shell intrusion;

wherein the security agent determines whether the process is associated with a reverse command shell intrusion by:

determining whether the process is a command shell process and analyzing a parent process of the command shell process and determining a possible existence of a reverse shell intrusion in response to determining that the process is a command shell process and that the parent process of the command shell process is a command shell process, a user login process, or a desktop process; or

determining whether the process is a command shell process and analyzing a parent process of the command shell process, analyzing a connection of the parent process, and determining a possible existence of reverse shell intrusion in response to determining that the connection of the parent process has a connection to a network application located in a network that is remote; or

determining that the process is a command shell process and analyzing a parent process of the command shell process, detecting a readFile( ) API call, determining that a file descriptor of the readFile( ) API call matches a handle to a stdin stream of the command shell process, identifying commands passed by the parent process to the command shell process in the stdin stream of the command shell process, and concluding whether the process is a reverse command shell intrusion based on the commands; or

determining that the process is a command shell process and analyzing a parent process of the command shell process, detecting a readConsole( ) API call, determining based on the readConsole( ) API call that the parent process is reading from a stdin stream of the command shell process, identifying commands passed by the parent process to the command shell process in the stdin stream of the command shell process, and concluding whether the process is a reverse command shell intrusion based on the commands.

3. The user device of claim 2 , wherein the process associated with the reverse command shell intrusion is a command-line interpreter program that is native to the operating system of the user device, a script interpreter program, and/or a database application that takes Software Query Language (SQL) commands as input for accessing a database.

Assignments (4)
MERGER Recorded Jan 27, 2025
From: CARBON BLACK, LLC
To: VMWARE LLC
Reel/Frame 070019/0171 →
CHANGE OF NAME Recorded Jan 27, 2025
From: CARBON BLACK, INC.
To: CARBON BLACK, LLC
Reel/Frame 070023/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2018
From: CONFER TECHNOLOGIES, INC.
To: CARBON BLACK, INC.
Reel/Frame 044728/0970 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2017
From: KRAEMER, JEFFREY ALBIN
To: CARBON BLACK, INC.
Reel/Frame 041681/0080 →
Continuity (2)
Provisional Application 62308292 · Mar 15, 2016
Related Publication 20170270296A1 · Sep 21, 2017