IP Library Granted Patent US 11,263,307
Granted Patent B2
US 11,263,307 · App. 16/242,292 · Granted Mar 1, 2022

Systems and methods for detecting and mitigating code injection attacks

Inventor: Henry R. Tumblin (Malden, MA)
Assignee: Digital Immunity LLC
G06F21/52G06F21/554G06F21/562G06F21/566G06K9/6297G06F2221/033
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,263,307
App. No.
16/242,292
Granted
Mar 1, 2022
Kind
B2
Abstract

The present disclosure generally relates to computer security and malware protection. In particular, the present disclosure is generally directed towards systems and methods for detecting and mitigating a code injection attack. In one embodiment the systems and methods may detect a code injection attack by scanning identified sections of memory for non-operational machine instructions (“no-ops”), detecting a code injection attack based on the scan(s) and mitigating the code injection attack by taking one or more defensive actions.

Claims (44)

1. An system for detecting a code injection attack comprising:

a processor; at least one non-transitory computer-readable memory communicatively coupled to the processor; and processing instructions for a computer program, the processing instructions encoded in the computer-readable memory, the processing instructions, when executed by the processor, operable to perform operations comprising:

learning patterns of non-operational machine instructions indicative of heap spray attacks using one or more machine learning techniques that analyze prior non-operational machine instruction patterns and behavior across multiple enterprises of computers;

scanning one or more sections of the computer-readable memory for computer instructions comprising non-operational machine instructions that satisfy at least one pattern of the learned patterns of non-operational machine instructions;

detecting a code injection attack based on the scanned one or more sections by identifying a pattern of non-operational machine instructions based on the learning;

determining a number of computer instructions that do not define an operation in the scanned one or more sections;

detecting a code injection attack based on the number of computer instructions that do not define an operation exceeding a no-ops threshold;

determining a total number of computer instructions in the scanned one or more sections;

detecting a code injection attack based on the determined number of computer instructions that do not define an operation in the scanned one or more sections exceeding a threshold percentage of the determined total number of computer instructions in the scanned one or more sections; and

mitigating the code injection attack by taking one or more defensive actions.

2. The system of claim 1 wherein detecting a code injection attack based on the scanned one or more sections comprises:

determining a spatial locality metric for the computer instructions that do not define an operation in the scanned one or more sections; and

determining whether the spatial locality metric exceeds a spatial locality threshold.

3. The system of claim 1 wherein mitigating the code injection attack comprises terminating execution of the computer program.

4. The system of claim 1 , wherein mitigating the code injection attack comprises isolating one or more portions of the scanned one or more sections.

5. The system of claim 1 , wherein detecting the code injection attack comprises applying a Hidden Markov Model (HMM).

6. A non-transitory computer-readable medium storing instructions for detecting a code injection attack, the instructions, when executed by a processor, configured to:

learn patterns of non-operational machine instructions indicative of heap spray attacks using one or more machine learning techniques that analyze prior no-ops patterns and behavior across multiple enterprises of computers;

scan one or more sections of one of the computer-readable memory or computer instructions comprising non-operational machine instructions that satisfy at least one pattern of the learned patterns of non-operational machine instructions;

detect a code injection attack based on the scanned one or more sections by identifying a pattern of non-operational machine instructions based on the learning;

determine a number of computer instructions that do not define an operation in the scanned one or more sections;

detect a code injection attack based on the number of computer instructions that do not define an operation exceeding a no-ops threshold;

determine a total number of computer instructions in the scanned one or more sections;

detect a code injection attack based on the determined number of computer instructions that do not define an operation in the scanned one or more sections exceeding a threshold percentage of the determined total number of computer instructions in the scanned one or more sections; and

mitigate the detected code injection attack by taking one or more defensive actions.

7. The non-transitory computer-readable medium of claim 6 , wherein the instructions to detect a code injection attack based on the scanned one or more sections comprises instructions to:

determine a spatial locality metric for the computer instructions that do not define an operation in the scanned one or more sections; and

determine whether the spatial locality metric exceeds a spatial locality threshold.

8. The non-transitory computer-readable medium of claim 6 , wherein the instructions to mitigate the code injection attack comprises terminating execution of a computer program affected by the code injection attack.

9. The non-transitory computer-readable medium of claim 6 , wherein the instructions to mitigate the code injection attack comprises isolating one or more portions of the scanned one or more sections.

10. The non-transitory computer-readable medium of claim 6 , wherein the instructions to detect the code injection attack comprises applying a Hidden Markov Model (HMM).

11. A method for detecting a code injection attack comprising:

learning patterns of non-operational machine instructions indicative of heap spray attacks using one or more machine learning techniques that analyze prior no-ops patterns and behavior across multiple enterprises of computers:

scanning one or more sections of one of at least one non-transitory computer-readable memory for computer instructions comprising non-operational machine instructions that satisfy at least one pattern of the learned patterns of non-operational machine instructions;

detecting a code injection attack based on the scanned one or more sections by identifying a pattern of non-operational machine instructions based on the learning; and mitigating the code injection attack by taking one or more defensive actions;

determining a number of computer instructions that do not define an operation in the scanned one or more sections;

detecting a code injection attack based on whether the number of computer instructions that do not define an operation exceeds a no-ops threshold;

determining a total number of computer instructions in the scanned one or more sections; and

detecting a code injection attack based on whether the determined number of computer instructions that do not define an operation in the scanned one or more sections exceeds a threshold percentage of the determined total number of computer instructions in the scanned one or more sections.

12. The method of claim 11 wherein detecting a code injection attack based on the scanned one or more sections comprises:

determining a spatial locality metric for the computer instructions that do not define an operation in the scanned one or more sections; and

determining whether the spatial locality metric exceeds a spatial locality threshold.

13. The method of claim 11 wherein mitigating the code injection attack comprises at least one of terminating execution of a computer program affected by the code injection attack, and isolating one or more portions of the scanned one or more sections.

14. The method of claim 11 , wherein detecting the code injection attack comprises applying a Hidden Markov Model (HMM).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2019
From: TUMBLIN, HENRY R.
To: DIGITAL IMMUNITY LLC
Reel/Frame 048084/0318 →
Continuity (2)
Provisional Application 62614616 · Jan 8, 2018
Related Publication 20190213323A1 · Jul 11, 2019