IP Library › Granted Patent US 12,393,687
Granted Patent B2
US 12,393,687 · App. 18/049,167 · Granted Aug 19, 2025

Techniques for detecting command injection attacks

Inventors: Béatrice Ségolène Marie Moissinac (White Plains, NY); Kimberly Jane Nowell-Berry (Palm City, FL)
G06F21/563G06F2221/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 12,393,687
App. No.
18/049,167
Filed
Oct 24, 2022
Granted
Aug 19, 2025
Kind
B2
Art Unit
2449
USPC
726/22
Abstract

Methods, systems, and devices for managing requests are described. A software platform may receive a request associated with a first programming language. The software platform may determine a first mixture associated with the request. The first mixture may be based on a first language model corresponding to the first programming language. The software platform may determine a second mixture associated with the request. The second mixture may be based on a second language model corresponding to a second programming language. The second programming language may be different from the first programming language. The software platform may execute or refrain from executing the request based on the first mixture and the second mixture.

Claims (62)

1. A method for managing requests at a device, comprising:

performing, at a software platform of the device, a training operation using a machine learning model;

receiving, at the software platform of the device, a request associated with a first programming language;

determining a first threshold for a first mixture and a second threshold for a second mixture based at least in part on a non-linear association between the first mixture and the second mixture;

determining the first mixture associated with the request and whether the first mixture satisfies the first threshold, wherein the first mixture is based at least in part on a first language model corresponding to the first programming language and the first language model is based at least in part on the training operation;

determining the second mixture associated with the request and whether the second mixture satisfies the second threshold, wherein the second mixture is based at least in part on a second language model corresponding to a second programming language different from the first programming language and the second language model is based at least in part on the training operation; and

executing or refraining from executing the request based at least in part on the first mixture satisfying the first threshold, the second mixture satisfying the second threshold, or both.

2. The method of claim 1 , further comprising:

determining, based at least in part on the first language model and the second language model, whether the request includes a respective one or more programming tokens corresponding to the first programming language or the second programming language, or both, wherein determining the first mixture and the second mixture is based at least in part on whether the request includes the respective one or more programming tokens.

3. The method of claim 2 , wherein determining whether the request includes the respective one or more programming tokens comprises:

determining, based at least in part on the first language model, that the request includes a first programming token corresponding to the first programming language, wherein the first mixture is based at least in part on a first weight associated with the first programming token; and

determining, based at least in part on the second language model, that the request includes a second programming token corresponding to the second programming language, wherein the second mixture is based at least in part on a second weight associated with the second programming token.

4. The method of claim 1 , further comprising:

obtaining a first set of data associated with the first programming language and a second set of data associated with the second programming language; and

identifying a first set of programming tokens based at least in part on the first set of data and a second set of programming tokens based at least in part on the second set of data, wherein the first language model comprises the first set of programming tokens and the second language model comprises the second set of programming tokens.

5. The method of claim 4 , further comprising:

assigning a respective weight to each token of the first set of programming tokens based at least in part on a respective frequency at which each token of the first set of programming tokens occurs within the first set of data; and

assigning a respective weight to each programming token of the second set of programming tokens based at least in part on a respective frequency at which each programming token of the second set of programming tokens occurs within the second set of data.

6. The method of claim 4 , wherein each programming token of the first set of programming tokens and the second set of programming tokens comprises a keyword, an operator, or a delimiter.

7. The method of claim 1 , wherein the machine learning model comprises a topic model.

8. An apparatus for managing requests at a device, comprising:

a processor;

memory coupled with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

perform, at a software platform of the device, a training operation using a machine learning model;

receive, at the software platform of the device, a request associated with a first programming language;

determine a first threshold for a first mixture and a second threshold for a second mixture based at least in part on a non-linear association between the first mixture and the second mixture;

determine the first mixture associated with the request and whether the first mixture satisfies the first threshold, wherein the first mixture is based at least in part on a first language model corresponding to the first programming language and the first language model is based at least in part on the training operation;

determine the second mixture associated with the request and whether the second mixture satisfies the second threshold, wherein the second mixture is based at least in part on a second language model corresponding to a second programming language different from the first programming language and the second language model is based at least in part on the training operation; and

execute or refrain from executing the request based at least in part on the first mixture satisfying the first threshold, the second mixture satisfying the second threshold, or both.

9. The apparatus of claim 8 , wherein the instructions are further executable by the processor to cause the apparatus to:

determine, based at least in part on the first language model and the second language model, whether the request includes a respective one or more programming tokens corresponding to the first programming language or the second programming language, or both, wherein determining the first mixture and the second mixture is based at least in part on whether the request includes the respective one or more programming tokens.

10. The apparatus of claim 9 , wherein, to determine whether the request includes the respective one or more programming tokens, the instructions are executable by the processor to cause the apparatus to:

determine, based at least in part on the first language model, that the request includes a first programming token corresponding to the first programming language, wherein the first mixture is based at least in part on a first weight associated with the first programming token; and

determine, based at least in part on the second language model, that the request includes a second programming token corresponding to the second programming language, wherein the second mixture is based at least in part on a second weight associated with the second programming token.

11. The apparatus of claim 8 , wherein the instructions are further executable by the processor to cause the apparatus to:

obtain a first set of data associated with the first programming language and a second set of data associated with the second programming language; and

identify a first set of programming tokens based at least in part on the first set of data and a second set of programming tokens based at least in part on the second set of data, wherein the first language model comprises the first set of programming tokens and the second language model comprises the second set of programming tokens.

12. The apparatus of claim 11 , wherein the instructions are further executable by the processor to cause the apparatus to:

assign a respective weight to each token of the first set of programming tokens based at least in part on a respective frequency at which each token of the first set of programming tokens occurs within the first set of data; and

assign a respective weight to each programming token of the second set of programming tokens based at least in part on a respective frequency at which each programming token of the second set of programming tokens occurs within the second set of data.

13. The apparatus of claim 11 , wherein each programming token of the first set of programming tokens and the second set of programming tokens comprises a keyword, an operator, or a delimiter.

14. The apparatus of claim 8 , wherein the machine learning model comprises a topic model.

15. A non-transitory computer-readable medium storing code for managing requests at a device, the code comprising instructions executable by a processor to:

perform, at a software platform of the device, a training operation using a machine learning model;

receive, at the software platform of the device, a request associated with a first programming language;

determine a first threshold for a first mixture and a second threshold for a second mixture based at least in part on a non-linear association between the first mixture and the second mixture;

determine the first mixture associated with the request and whether the first mixture satisfies the first threshold, wherein the first mixture is based at least in part on a first language model corresponding to the first programming language and the first language model is based at least in part on the training operation;

determine the second mixture associated with the request and whether the second mixture satisfies the second threshold, wherein the second mixture is based at least in part on a second language model corresponding to a second programming language different from the first programming language and the second language model is based at least in part on the training operation; and

execute or refrain from executing the request based at least in part on the first mixture satisfying the first threshold, the second mixture satisfying the second threshold, or both.

16. The non-transitory computer-readable medium of claim 15 , wherein the instructions are further executable by the processor to:

determine, based at least in part on the first language model and the second language model, whether the request includes a respective one or more programming tokens corresponding to the first programming language or the second programming language, or both, wherein determining the first mixture and the second mixture is based at least in part on whether the request includes the respective one or more programming tokens.

17. The non-transitory computer-readable medium of claim 16 , wherein, to determine whether the request includes the respective one or more programming tokens the instructions are executable by the processor to:

determine, based at least in part on the first language model, that the request includes a first programming token corresponding to the first programming language, wherein the first mixture is based at least in part on a first weight associated with the first programming token; and

determine, based at least in part on the second language model, that the request includes a second programming token corresponding to the second programming language, wherein the second mixture is based at least in part on a second weight associated with the second programming token.

18. The non-transitory computer-readable medium of claim 15 , wherein the instructions are further executable by the processor to:

obtain a first set of data associated with the first programming language and a second set of data associated with the second programming language; and

identify a first set of programming tokens based at least in part on the first set of data and a second set of programming tokens based at least in part on the second set of data, wherein the first language model comprises the first set of programming tokens and the second language model comprises the second set of programming tokens.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions are further executable by the processor to:

assign a respective weight to each token of the first set of programming tokens based at least in part on a respective frequency at which each token of the first set of programming tokens occurs within the first set of data; and

assign a respective weight to each programming token of the second set of programming tokens based at least in part on a respective frequency at which each programming token of the second set of programming tokens occurs within the second set of data.

20. The non-transitory computer-readable medium of claim 15 , wherein the machine learning model comprises a topic model.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2022
From: MOISSINAC, BÉATRICE SÉGOLÈNE MARIE; NOWELL-BERRY, KIMBERLY JANE
To: OKTA, INC.
Reel/Frame 061518/0721 →
Continuity (2)
Related Publication 20240134974A1 · Apr 25, 2024
Related Publication 20240232345A9 · Jul 11, 2024
References Cited (15)
US 8726254B2 · Rohde · 2014 [cited by examiner]
US 10382448B2 · Nguyen-Tuong · 2019 [cited by examiner]
US 20050273854A1 · Chess · 2005 [cited by examiner]
US 20090150374A1 · Dewey · 2009 [cited by examiner]
US 20110252475A1 · Mui · 2011 [cited by examiner]
US 20140096227A1 · Barbara · 2014 [cited by examiner]
US 20170139393A1 · Boss · 2017 [cited by examiner]
US 20190081980A1 · Luo · 2019 [cited by examiner]
US 20200097587A1 · Klein · 2020 [cited by examiner]
US 20210211459A1 · Kanemoto · 2021 [cited by examiner]
US 20210367873A1 · Aurelio · 2021 [cited by examiner]
US 20230251834A1 · Tao · 2023 [cited by examiner]
US 20240022600A1 · Zhang · 2024 [cited by examiner]
US 20240028740A1 · Chan · 2024 [cited by examiner]
US 20240214417A1 · Kuroki · 2024 [cited by examiner]