IP Library Granted Patent US 9,378,360
Granted Patent B2
US 9,378,360 · App. 14/313,902 · Granted Jun 28, 2016

Secure if antecedent

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 9,378,360
App. No.
14/313,902
Granted
Jun 28, 2016
Kind
B2
Abstract

Hostile attacks against a computer program are prevented when the program is executed in a computing environment that is controlled by the attacker. A preposition is run in a secure computing environment instead of the original call site, i.e. the IF antecedent, which has a TRUE consequence and a FALSE consequence are run in a secure computing environment. Embodiments of the invention also allow an insecure call site to detect modifications by a hostile attacker surreptitiously. In embodiments of the invention, a script is generated by a script generator from the IF antecedent and TRUE and FALSE consequence source code, for example relative to a call site. The original source code is modified to call the script engine, rather than the preposition. At run-time a script engine executes this script.

Claims (65)

1. A computer implemented method for preventing hostile attacks against a computer program, comprising:

providing a processor executing instructions for running a preposition in a secure computing environment separate from an original call site within native program code of the computer program, said preposition comprising an IF antecedent having a TRUE consequence and a FALSE consequence;

said processor providing a different response for each consequence; and

said computer program executing the native program code in a computing environment that is controlled by an attacker;

said native program code providing a check value to a script in said secure computing environment and waiting for said script to return a value that is expected upon proper completion of the script; and

repeatedly providing a check value to said script in said secure computing environment during execution of the native program code with a series of calls to the script in said secure computing environment, where the check value is repeatedly changed by the native program code and where a different expected value is returned after each call; and

wherein a hostile attack is detected when the check value returned by the call is not the expected value.

2. The method of claim 1 , further comprising:

generating a script with a script engine from the IF antecedent and TRUE and FALSE consequence original source code relative to said original call site;

modifying said original source code to call the script engine, rather than the preposition; and

executing said script with said script engine at run time.

3. The method of claim 2 , further comprising:

said script defining actions to be executed after processing said IF antecedent.

4. The method of claim 2 , further comprising:

said script instructing said script engine to validate any of its own address space or another module for modification.

5. The method of claim 2 , further comprising:

encrypting said script using standard symmetric encryption algorithms with a key defined by an author.

6. The method of claim 2 , further comprising:

declaring said script as a data field in the native program code of the computer program.

7. The method of claim 2 , further comprising:

adding a series of keys to said script that serve as aliases for.

8. The method of claim 2 , further comprising:

providing a check value, where the check value exists inside said secure computing environment; and

modifying said check value depending on proper execution of the native program code.

9. The method of claim 2 , further comprising:

using an obfuscated script engine with changeable operation codes.

10. The method of claim 2 , further comprising:

said script engine evaluating results of said antecedent and calling the TRUE or FALSE consequence.

11. The method of claim 2 , further comprising:

said TRUE or FALSE consequence calling said script engine.

12. The method of claim 2 , further comprising:

said script engine verifying that the native program code has not been modified since being launched.

13. The method of claim 2 , further comprising:

said script engine checking that the native program code has been modified to a new expected known value.

14. The method of claim 2 , further comprising:

retaining state in the script engine to inter-lock the IF antecedent and the TRUE or FALSE consequence.

15. The method of claim 14 , further comprising:

incrementally modifying the state by each stage of the IF antecedent and calling back; and

using said state in the TRUE or FALSE consequence to perform a critical task.

16. The method of claim 2 , further comprising:

either or both of said I F antecedent and said TRUE or FALSE consequence making further calls to test another IF antecedent; and

altering behavior based on the success or otherwise of said calls.

17. The method of claim 2 , further comprising:

said script following a different execution path on each execution of said script.

18. The method of claim 2 , further comprising:

said script engine containing a state item that is addressable by multiple externally unrelated aliases.

19. The method of claim 1 , further comprising:

checking sections of the native program code during runtime for unauthorized modifications made by the attacker.

20. The method of claim 1 , further comprising:

said native program code calling into a script within said secure computing environment; and

said script returning a value indicating proper execution of said native program code.

21. The method of claim 1 , further comprising:

generating a script from source code of said preposition to call back to said source code for parts of the code that are not converted to a script when run in a script engine.

22. The method of claim 21 , further comprising:

generating additional call backs where a negative or different result is expected.

23. A computer implemented method for preventing hostile attacks against a computer program, the method comprising:

providing specific instructions to a processor for running a preposition in a secure computing environment separate from an original call site within native program code of the computer program;

wherein the preposition is a segment of the native program code;

wherein the preposition comprises an IF antecedent having a TRUE consequence and a FALSE consequence; and

wherein all references to the preposition are stripped from the native program code;

said processor providing distinct responses for the TRUE consequence and the FALSE consequence;

said computer program executing the native program code in a computing environment that is controlled by an attacker;

said native program code providing a check value to a script in said secure computing environment and waiting for said script to return a value that is expected upon proper completion of the script; and

repeatedly providing a check value to said script in said secure computing environment during execution of the native program code with a series of calls to the script in the secure environment, where the check value is repeatedly changed by the native program code and where a different expected value is returned after each call; and

wherein a hostile attack is detected when the check value returned by the call is not the expected value.

Assignments (12)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS - REEL/FRAME 045441/ 0499 Recorded Aug 25, 2025
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
Reel/Frame 072552/0558 →
SECURITY INTEREST Recorded Aug 15, 2025
From: FLEXERA SOFTWARE LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL GENT
Reel/Frame 072460/0828 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Apr 18, 2024
From: JEFFERIES FINANCE LLC
To: BDNA CORPORATION; FLEXERA SOFTWARE LLC; PALAMIDA, INC.; RIGHTSCALE, INC.; RISC NETWORKS, LLC; REVULYTICS, INC.
Reel/Frame 067636/0534 →
SECOND LIEN SECURITY AGREEMENT Recorded Mar 3, 2021
From: BDNA CORPORATION; FLEXERA SOFTWARE LLC; PALAMIDA, INC.; RIGHTSCALE, INC.; RISC NETWORKS, LLC; REVULYTICS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 055487/0354 →
RELEASE OF SECOND LIEN SECURITY INTEREST Recorded Feb 28, 2020
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION; RIGHTSCALE, INC.; RISC NETWORKS, LLC
Reel/Frame 052049/0560 →
SECOND LIEN SECURITY AGREEMENT Recorded Feb 27, 2018
From: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 045451/0499 →
TERMINATION OF 1ST LIEN SECURITY INTEREST RECORDED AT REEL/FRAME 039920/0280 Recorded Feb 26, 2018
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC
Reel/Frame 045447/0117 →
TERMINATION OF 2ND LIEN SECURITY INTEREST RECORDED AT REEL/FRAME 039920/0574 Recorded Feb 26, 2018
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC
Reel/Frame 045447/0908 →
FIRST LIEN SECURITY AGREEMENT Recorded Feb 26, 2018
From: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 045441/0499 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 6, 2016
From: FLEXERA SOFTWARE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 039920/0574 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 6, 2016
From: FLEXERA SOFTWARE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 039920/0280 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2014
From: STIEMENS, ALAN WALTER
To: FLEXERA SOFTWARE LLC
Reel/Frame 033177/0301 →