IP Library › Granted Patent US 12,430,434
Granted Patent B2
US 12,430,434 · App. 18/150,849 · Granted Sep 30, 2025

Systems and methods for blocking malicious script execution based on generalized rules

Inventors: Igor Seletskiy (Palo Alto, CA); Aleksei Berezhok (Moscow, RU); Evgenii Vodilov (Moscow, RU); Grigorii Zemskov (Moscow, RU)
Assignee: Cloud Linux Software Inc.
G06F21/566G06F2221/034
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,430,434
App. No.
18/150,849
Granted
Sep 30, 2025
Kind
B2
Abstract

Disclosed herein are systems and method for blocking malicious script execution. In one exemplary aspect, the method includes determining, on a first computing device of a plurality of computing devices, that a first script on the first computing device is malicious. The method includes identifying a plurality of operations in an execution flow of the first script and generating a first hash value of attributes associated with the plurality of operations in the execution flow, wherein the attributes omit a name of the first script and a location of the first script on the first computing device. The method includes generating a first rule that prevents execution of any script whose generated hash value would match the first hash value of the first script and transmitting the first rule to a second computing device that subsequently blocks scripts based on the first rule.

Claims (74)

1. A method for blocking malicious script execution, the method comprising:

determining, on a first computing device, that a first script that creates or modifies a file on the first computing device is malicious;

identifying a plurality of operations in an execution flow of the first script;

generating a first hash value of attributes associated with the plurality of operations in the execution flow, wherein the attributes omit a name of the first script and a location of the first script on the first computing device and comprise an operation name, a number of arguments of an operation, and a line where the operation was invoked;

generating a first rule that prevents execution of any script whose generated hash value would match the first hash value of the first script; and

transmitting the first rule to at least a second computing device of a plurality of computing devices to block therein an execution of scripts whose generated hash values match the first hash value based on the first rule.

2. The method of claim 1 , further comprising:

converting the first rule from a text format to a binary format; and

storing the converted first rule in a rules database that is periodically synchronized with local rules databases on the plurality of computing devices.

3. The method of claim 1 , wherein blocking the execution of scripts comprises:

detecting an execution of a second script on the second computing device;

determining another plurality of operations involved in the execution of the second script;

applying the first rule by:

generating a second hash value of attributes associated with the another plurality of operations;

comparing the first hash value and the second hash value; and

determining, based on the comparing, that the first hash value matches the second hash value; and

blocking the execution of the second script from completion.

4. The method of claim 1 , further comprising:

determining a modified version of a list of the plurality of operations in the execution flow to block; and

generating the first hash value based on the modified version.

5. The method of claim 4 , further comprising:

determining the modified version of the list of operations by converting each operation identifier in the list of the plurality of operations to a regular expression.

6. The method of claim 1 , wherein determining, on the first computing device, that the first script is malicious comprises:

detecting an execution of the first script;

recording, in a database, a first report comprising a first list of the plurality of operations involved in the execution of the first script, an identifier of the first script, and an identifier of the file;

determining that the file includes malicious code using a malware scanner configured to scan for malware signatures on the first computing device;

recording, in the database, a second report comprising an indication that the file includes malicious code and an identifier of the file;

in response to determining that identifier of the file is present in both the first report and the second report, determining that the first script is malicious.

7. The method of claim 6 , wherein the first report includes timestamps of operations and the second report includes a timestamp of when the file was created or modified, further comprising:

determining a time period associated with the timestamps of the plurality of operations; and

determining that the first report should be compared to the second report in response to determining that the timestamp of when the file was created or modified occurs within the time period.

8. The method of claim 6 , wherein the execution of the first script creates or modifies a plurality of files including the file and another file, wherein the another file is identified as including malicious code by the malware scanner, and wherein generating the first rule is further in response to detecting either an identifier of the another file or the identifier of the file in both the first report and the second report.

9. The method of claim 1 , further comprising:

prior to the execution of the first script, determining whether a rule exists in a rules database indicating that the first script should be blocked; and

enabling, on the first computing device, execution of the first script in response to determining that the rule does not exist in the rules database.

10. The method of claim 1 , wherein the first script is a PHP script.

11. A system for blocking malicious script execution, the system comprising:

at least one hardware processor configured to:

determine, on a first computing device, that a first script that creates or modifies a file on the first computing device is malicious;

identify a plurality of operations in an execution flow of the first script;

generate a first hash value of attributes associated with the plurality of operations in the execution flow, wherein the attributes omit a name of the first script and a location of the first script on the first computing device and comprise an operation name, a number of arguments of an operation, and a line where the operation was invoked;

generate a first rule that prevents execution of any script whose generated hash value would match the first hash value of the first script; and

transmit the first rule to at least a second computing device of a plurality of computing devices to block therein an execution of scripts whose generated hash values match the first hash value based on the first rule.

12. The system of claim 11 , wherein the at least one hardware processor is further configured to:

convert the first rule from a text format to a binary format; and

store the converted first rule in a rules database that is periodically synchronized with local rules databases on the plurality of computing devices.

13. The system of claim 11 , wherein the at least one hardware processor is further configured to block the execution of scripts by:

detecting an execution of a second script on the second computing device;

determining another plurality of operations involved in the execution of the second script;

applying the first rule by:

generating a second hash value of attributes associated with the another plurality of operations;

comparing the first hash value and the second hash value; and

determining, based on the comparing, that the first hash value matches the second hash value; and

blocking the execution of the second script from completion.

14. The system of claim 11 , wherein the at least one hardware processor is further configured to:

determine a modified version of a list of the plurality of operations in the execution flow to block; and

generate the first hash value based on the modified version.

15. The system of claim 14 , wherein the at least one hardware processor is further configured to:

determine the modified version of the list of operations by converting each operation identifier in the list of the plurality of operations to a regular expression.

16. The system of claim 11 , wherein the at least one hardware processor is further configured to determine, on the first computing device, that the first script is malicious by:

detecting an execution of the first script;

recording, in a database, a first report comprising a first list of the plurality of operations involved in the execution of the first script, an identifier of the first script, and an identifier of the file;

determining that the file includes malicious code using a malware scanner configured to scan for malware signatures on the first computing device;

recording, in the database, a second report comprising an indication that the file includes malicious code and an identifier of the file;

in response to determining that identifier of the file is present in both the first report and the second report, determining that the first script is malicious.

17. The system of claim 16 , wherein the first report includes timestamps of operations and the second report includes a timestamp of when the file was created or modified, wherein the at least one hardware processor is further configured to:

determine a time period associated with the timestamps of the plurality of operations; and

determine that the first report should be compared to the second report in response to determining that the timestamp of when the file was created or modified occurs within the time period.

18. A non-transitory computer readable medium storing thereon computer executable instructions for blocking malicious script execution, including instructions for:

determining, on a first computing device, that a first script that creates or modifies a file on the first computing device is malicious;

identifying a plurality of operations in an execution flow of the first script;

generating a first hash value of attributes associated with the plurality of operations in the execution flow, wherein the attributes omit a name of the first script and a location of the first script on the first computing device and comprise an operation name, a number of arguments of an operation, and a line where the operation was invoked;

generating a first rule that prevents execution of any script whose generated hash value would match the first hash value of the first script; and

transmitting the first rule to at least a second computing device of a plurality of computing devices to block therein an execution of scripts whose generated hash values match the first hash value based on the first rule.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE THIRD ASSIGNOR'S NAME AND THE NAME OF THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 062291 FRAME 0419. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTEREST. Recorded Jan 11, 2023
From: SELETSKIY, IGOR; BEREZHOK, ALEKSEI; VODILOV, EUGENE; ZEMSKOV, GRIGORII
To: CLOUD LINUX SOFTWARE, INC.
Reel/Frame 062352/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2023
From: SELETSKIY, IGOR; BEREZHOK, ALEKSEI; VODILOV, EVGENII; ZEMSKOV, GRIGORII
To: INC., CLOUD LINUX S
Reel/Frame 062291/0419 →
Continuity (2)
Continuation In Part 17389523 · Jul 30, 2021
Related Publication 20230153436A1 · May 18, 2023
References Cited (35)
US 7624443B2 · Kramer · 2009 [cited by examiner]
US 8201244B2 · Sun · 2012 [cited by examiner]
US 9178904B1 · Gangadharan · 2015 [cited by examiner]
US 9813443B1 · Subramanian · 2017 [cited by examiner]
US 10044750B2 · Livshits · 2018 [cited by examiner]
US 11574053B1 · Chen · 2023 [cited by examiner]
US 20070271301A1 · Klive · 2007 [cited by examiner]
US 20080127336A1 · Sun · 2008 [cited by examiner]
US 20090044024A1 · Oberheide · 2009 [cited by examiner]
US 20090089879A1 · Wang · 2009 [cited by examiner]
US 20110083176A1 · Martynenko · 2011 [cited by examiner]
US 20110154495A1 · Stranne · 2011 [cited by examiner]
US 20110197177A1 · Mony · 2011 [cited by examiner]
US 20110307955A1 · Kaplan · 2011 [cited by examiner]
US 20120159564A1 · Spektor · 2012 [cited by examiner]
US 20120266244A1 · Green · 2012 [cited by examiner]
US 20120304244A1 · Xie · 2012 [cited by examiner]
US 20150067839A1 · Wardman · 2015 [cited by examiner]
US 20150363598A1 · Xu · 2015 [cited by examiner]
US 20160094572A1 · Tyagi · 2016 [cited by examiner]
US 20160359875A1 · Kim · 2016 [cited by examiner]
US 20170041338A1 · Martini · 2017 [cited by examiner]
US 20170329968A1 · Wachdorf · 2017 [cited by examiner]
US 20180205554A1 · Blinn · 2018 [cited by examiner]
US 20180211041A1 · Davis · 2018 [cited by examiner]
US 20180255081A1 · Xiao · 2018 [cited by examiner]
US 20180300480A1 · Sawhney · 2018 [cited by examiner]
US 20190065744A1 · Gaustad · 2019 [cited by examiner]
US 20190377877A1 · Johns · 2019 [cited by examiner]
US 20200137126A1 · Yawalkar · 2020 [cited by examiner]
US 20210157915A1 · Pizano · 2021 [cited by examiner]
US 20210173926A1 · Slipenchuk · 2021 [cited by examiner]
US 20210232680A1 · Hecht · 2021 [cited by examiner]
US 20230022279A1 · Vasilenko · 2023 [cited by examiner]
Mitropoulos, Dimitris, et al. “How to train your browser: Preventing XSS attacks using contextual script fingerprints.” ACM Transactions on Privacy and Security (TOPS) 19.1 (2016): 1-31. (Year: 2016). [cited by examiner]