IP Library › Granted Patent US 12,032,687
Granted Patent B2
US 12,032,687 · App. 17/491,438 · Granted Jul 9, 2024

Command classification using active learning

Inventors: Jack Wilson Stokes, III (North Bend, WA); Jonathan Bar Or (Redmond, WA); Christian Seifert (Seattle, WA); Talha Ongun (Boston, MA); Farid Tajaddodianfar (Seattle, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F21/554G06F18/214G06F21/54G06F21/566G06N20/00
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 12,032,687
App. No.
17/491,438
Granted
Jul 9, 2024
Kind
B2
Abstract

The techniques disclosed herein enable systems to train a machine learning model to classify malicious command line strings and select anomalous and uncertain samples for analysis. To train the machine learning model, a system receives a labeled data set containing command line inputs that are known to be malicious or benign. Utilizing a term embedding model, the system can generate aggregated numerical representations of the command line inputs for analysis by the machine learning model. The aggregated numerical representations can include various information such as term scores that represent a probability that an individual term of the command line string is malicious as well as numerical representations of the individual terms. The system can subsequently provide the aggregated numerical representations to the machine learning model for analysis. Based on the aggregated numerical representations, the machine learning model can learn to distinguish malicious command line inputs from benign inputs.

Claims (64)

1. A method comprising:

receiving a data set comprising a plurality of labeled command line inputs;

transforming each of the labeled command line inputs to generate a sequence of individual terms;

translating each of the sequences of individual terms into a sequence of numerical representations comprising an activity class and a term representation, where individual terms correspond to individual numerical representations, wherein the activity class indicates that a program that is attempting to execute with respect to a term associated with the term representation;

using the activity class to calculate a term score for each of the individual numerical representations based on the individual numerical representations that represents a probability of malicious intent for the corresponding individual term;

generating an aggregated numerical representation comprising at least one of a select number of term scores, a number of terms, a number of rare terms, and the activity class; and

identifying a malicious command line input based on the aggregated numerical representation.

2. The method of claim 1 wherein the select number of term scores are selected based on a threshold term score.

3. The method of claim 1 , wherein the malicious command line input is identified when the number of terms exceeds a threshold number of terms.

4. The method of claim 1 , wherein the malicious command line input is identified when the number of rare terms exceeds a threshold number of rare terms.

5. The method of claim 1 , wherein the malicious command line input is identified when the activity class matches a predetermined activity class.

6. The method of claim 1 further comprising:

providing the aggregated numerical representation to a machine learning model; and

training the machine learning model using the aggregated numerical representation to identify an activity class for a plurality of unlabeled command line inputs.

7. The method of claim 6 , wherein training the machine learning model comprises:

selecting a set of command line inputs from the plurality of unlabeled command line inputs;

labeling each command line input of the set of command line inputs by a user input to generate additional labeled command line inputs; and

adjusting at least one of a term score, a threshold number of term scores, a threshold number of terms, or a threshold number or rare terms based on the labeled command line inputs.

8. The method of claim 1 further comprising:

determining a subclass that is associated with the activity class, comprising at least one of a malicious entity, an attack type, or a usage type.

9. The method of claim 1 further comprising:

determining a plurality of anomaly scores for a plurality of command line inputs to represent a distance from a mean sample cluster within a decision boundary;

ranking the plurality of command line inputs based on the plurality of anomaly scores; and

selecting a command line input having a greatest anomaly score to determine an activity subclass that is different from the activity class.

10. A system comprising:

one or more processing units; and

a computer-readable device having encoded thereon computer-readable instructions, that when executed by the one or more processing units cause the system to:

receive a data set comprising a plurality of labeled command line inputs;

transform each of the labeled command line inputs to generate a sequence of individual terms;

translate each of the sequences of individual terms into a sequence of numerical representations comprising an activity class and a term representation, where individual terms correspond to individual numerical representations, wherein the activity class indicates that a program that is attempting to execute with respect to a term associated with the term representation;

use the activity class to calculate a term score for each of the individual numerical representations based on the individual numerical representation that represents a probability of malicious intent for the corresponding individual term;

generate an aggregated numerical representation comprising at least one of a select number of term scores, a number of terms, a number of rare terms, and the activity class; and

identify a malicious command line input based on the aggregated numerical representation.

11. The system of claim 10 wherein the select number of term scores are selected based on a threshold term score.

12. The system of claim 10 , wherein the malicious command line input is identified when the number of terms exceeds a threshold number of terms.

13. The system of claim 10 , wherein the computer-readable instructions further cause the one or more processing units to:

provide the aggregated numerical representation to a machine learning model; and

train the machine learning model using the aggregated numerical representation to identify an activity class for a plurality of unlabeled command line inputs.

14. The system of claim 13 , wherein the computer-readable instructions further cause the one or more processing units to:

select a set of command line inputs from the plurality of unlabeled command line inputs;

label each command line input of the set of command line inputs by a user input to generate additional labeled command line inputs; and

adjust at least one of a term score, a threshold number of term scores, a threshold number of terms, or a threshold number or rare terms based on the labeled command line inputs.

15. The system of claim 10 , wherein the computer-readable instructions further cause the one or more processing units to:

determine a plurality of anomaly scores for a plurality of command line inputs to represent a distance from a mean sample cluster within a decision boundary;

rank the plurality of command line inputs based on the plurality of anomaly scores; and

select a command line input having a greatest anomaly score to determine an activity subclass that is different from the activity class.

16. A computer-readable storage device having encoded thereon computer-readable instructions to cause one or more processing units to:

receive a data set comprising a plurality of labeled command line inputs;

transform each of the labeled command line inputs to generate a sequence of individual terms;

translate each of the sequences of individual terms into a sequence of numerical representations comprising an activity class and a term representation, where individual terms correspond to individual numerical representations, wherein the activity class indicates that a program that is attempting to execute with respect to a term associated with the term representation;

use the activity class to calculate a term score for each of the individual numerical representations based on the individual numerical representation that represents a probability of malicious intent for the corresponding individual term;

generate an aggregated numerical representation comprising at least one of a select number of term scores, a number of terms, a number of rare terms, and the activity class; and

identify a malicious command line input based on the aggregated numerical representation.

17. The computer-readable storage medium of claim 16 , wherein the malicious command line input is identified when the number of terms exceeds a threshold number of terms.

18. The computer-readable storage medium of claim 16 , wherein the computer-readable instructions further cause the one or more processing units to:

provide the aggregated numerical representation to a machine learning model; and

train the machine learning model using the aggregated numerical representation to identify an activity class for a plurality of unlabeled command line inputs.

19. The computer-readable storage medium of claim 16 , wherein the computer-readable instructions further cause the one or more processing units to:

provide the aggregated numerical representation to a machine learning model; and

train the machine learning model using the aggregated numerical representation to identify an activity class for a plurality of unlabeled command line inputs.

20. The computer-readable storage medium of claim 19 , wherein the computer-readable instructions further cause the one or more processing units to:

select a set of command line inputs from the plurality of unlabeled command line inputs;

label each command line input of the set of command line inputs by a user input to generate additional labeled command line inputs; and

adjust at least one of a term score, a threshold number of term scores, a threshold number of terms, or a threshold number or rare terms based on the labeled command line inputs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2022
From: STOKES, JACK WILSON, III; BAR OR, JONATHAN; SEIFERT, CHRISTIAN; ONGUN, TALHA; TAJADDODIANFAR, FARID
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 060648/0525 →
Continuity (1)
Related Publication 20230096895A1 · Mar 30, 2023
Cited By (3)
US 12,292,910 US 12,375,520 US 12,748,856