System and method for inserting security mechanisms into a software program
First Claim
Patent Images
1. A system for automating the installation of one or more self-protecting software security mechanisms into a previously developed software program, the system comprising:
- a computer having a memory;
a first software program resident in said memory, said first software program having a predetermined functionality;
a second software program resident in said memory, said second software program configured to automatically inject at least one guard into said first software program without disrupting said predetermined functionality, said at least one guard comprising guard instructions to cause said first software program to self-protect by executing improperly when said first software program detects tampering with said first software program; and
a third software program resident in said memory, said third software program comprising program instructions, wherein said second software program automatically injects said at least one guard into said first software program in response to said program instructions of said third software program.
6 Assignments
0 Petitions
Accused Products
Abstract
A system and method for protecting a software program from unauthorized modification or exploitation. A software security mechanism according to the present invention is difficult for a hacker or cracker to detect and/or defeat, but does not impose excessive runtime overhead on the host software program. The present invention further comprises a system and method for automating the injection of a software security mechanism according to the present invention into a host software program.
108 Citations
21 Claims
-
1. A system for automating the installation of one or more self-protecting software security mechanisms into a previously developed software program, the system comprising:
-
a computer having a memory; a first software program resident in said memory, said first software program having a predetermined functionality; a second software program resident in said memory, said second software program configured to automatically inject at least one guard into said first software program without disrupting said predetermined functionality, said at least one guard comprising guard instructions to cause said first software program to self-protect by executing improperly when said first software program detects tampering with said first software program; and a third software program resident in said memory, said third software program comprising program instructions, wherein said second software program automatically injects said at least one guard into said first software program in response to said program instructions of said third software program. - View Dependent Claims (2, 3, 4)
-
-
5. A method for increasing the tamper resistance of a host software program having a predetermined functionality through the use of at least one guard, wherein said at least one guard comprises guard instructions configured to deter tampering with said host software program, the method comprising the steps of:
-
defining a guard schema, said guard schema comprising a syntax for a guard script language, said guard script language comprising a plurality of guard script commands; defining a guard script, said guard script comprising a self-protection scheme desired for said host software program, said guard script comprising at least one guard script command of said guard script language; automatically building a document object model from said guard script using a guard script interpreter;
said guard script interpreter running on a computer having a processor; andautomatically traversing said document object model using a document object model parser to build a list of commands that when executed cause the injection of said guard instructions into said host software program without disrupting said predetermined functionality of said host software program, said guard instructions causing said host software program to execute improperly when said host software program detects tampering, said document object model parser running on said computer. - View Dependent Claims (6, 7, 8)
-
-
9. A method for increasing the tamper resistance of a host software program having a predetermined functionality through the use of at least one guard, wherein said at least one guard comprises guard instructions configured to deter tampering with said host software program, the method comprising the steps of:
-
inserting markers into said host software program, said markers being arranged within said host software program according to a protection scheme to make said host software program self-protecting; defining a threat model for said host software program, said threat model defining the relative importance of defending against various threats to said host software program; defining constraints on size and performance of said host software program; and injecting guard instructions into said host software program in accordance with said markers, said threat model, and said constraints using a guard injection program running on a computer without disrupting said predetermined functionality, said guard instructions causing said host software program to execute improperly when said host software program detects tampering. - View Dependent Claims (10)
-
-
11. A method for updating a guard injection computer program, said guard injection computer program configured to automatically inject one or more guards into a host software program having a predetermined functionality in response to one or more guarding commands received by said guard injection computer program, the method comprising the steps of:
-
reading a guard library, said guard library comprising computer files and computer instructions related to said one or more guards, said one or more guards being configured to deter tampering with said host software program without disrupting said predetermined functionality of said host software program by causing said host software program to execute improperly when said host software program detects tampering with said host software program; deriving a guard schema from said guard library, said guard schema comprising syntactical requirements for said guarding commands; and deriving documentation for said one or more guards from said guard library. - View Dependent Claims (12, 13, 14)
-
-
15. A method for adding a guard injection computer program to a tool for software program development, said guard injection computer program configured to automatically inject one or more guards into a host software program having a predetermined functionality in response to one or more guarding commands received by said guard injection computer program, said host software program being developed using said tool, the method comprising the steps of:
-
reading a guard library, said guard library comprising computer files and computer instructions related to said one or more guards, said one or more guards being configured to deter tampering with said host software program without disrupting said predetermined functionality of said host software program by causing said host software program to execute improperly when said host software program detects tampering with said host software program; deriving a guard schema from said guard library, said guard schema comprising syntactical requirements for said guarding commands; and deriving documentation for said one or more guards from said guard library, said documentation being accessible through said tool. - View Dependent Claims (16)
-
-
17. A computer system for increasing the tamper resistance of a host software program having a predetermined functionality, the computer system comprising:
-
computer circuitry configured to define a guard schema, said guard schema comprising a syntax for a guard script language, said guard script language comprising a plurality of guard script commands; computer circuitry configured to define a guard script, said guard script comprising a protection scheme desired for a host software program, said guard script comprising at least one guard script command of said guard script language; computer circuitry configured to automatically build a document object model using said guard script and said guard schema; and computer circuitry configured to automatically traverse said document object model to build a list of commands that when executed cause the injection of guard instructions into said host software program without disrupting said predetermined functionality of said host software program, wherein said injected guard instructions cause said host software program to execute improperly when said host software program detects tampering with said host software program.
-
-
18. A computer system for increasing the tamper resistance of a host software program having a predetermined functionality, the computer system comprising:
-
computer circuitry configured to insert markers into a host software program, said markers being arranged within said host software program according to a protection scheme desired for said host software program; computer circuitry configured to define a threat model that defines the relative importance of defending against various threats to said host software program; computer circuitry configured to define constraints on size and performance of said host software program; and computer circuitry configured to inject guard instructions into said host software program without disrupting said predetermined functionality in accordance with said markers, said threat model, and said constraints, wherein said injected guard instructions cause said host software program to execute improperly when said host software program detects tampering.
-
-
19. A computer system for updating a guard injection computer program, said guard injection computer program configured to automatically inject one or more guards into a host software program having a predetermined functionality in response to one or more guarding commands received by said guard injection computer program, said computer system comprising:
-
computer circuitry configured to read a guard library, said guard library comprising computer files and computer instructions related to said one or more guards, said one or more guards configured to deter tampering with said host software program into which said one or more guards is installed without disrupting said predetermined functionality of said host software program by causing said host software program to execute improperly when said host software program detects tampering with said host software program; computer circuitry configured to derive a guard schema from said guard library, said guard schema comprising syntactical requirements for said guarding commands; and computer circuitry configured to derive documentation for at least one of said one or more guards from said guard library. - View Dependent Claims (20)
-
-
21. A system for automating the installation of one or more software security mechanisms into a previously developed software program, the system comprising:
-
a computer having a memory; a first software program resident in said memory, said first software program having a predetermined functionality; a second software program resident in said memory, said second software program configured to automatically inject at least one guard into said first software program without disrupting said predetermined functionality to generate a protected version of said first software program, said at least one guard comprising guard instructions to cause said protected version of said first software program to execute improperly when said protected version of said first software program detects tampering; and a third software program resident in said memory, said third software program comprising program instructions, wherein said second software program automatically injects said at least one guard into said first software program in response to said program instructions of said third software program; wherein said protected version of said first software program is configured to execute improperly when tampering is detected regardless of whether said second software program or said third software program is operational.
-
Specification