Patent ID: 8656497

Claim:
A non-transitory machine readable storage medium non-transiently storing computer instructions for immunizing a computer program against vulnerabilities and attacks at runtime, the computer instructions comprising: a node manager in communication with a central management console and configured to dynamically load a constraint library into a computer program while the computer program is running, the constraint library containing a constraint; a managed program execution engine configured to: determine insertion point information for the computer program that is associated with the constraint, wherein different constraints in the constraint library are associated with different insertion point information; analyze the computer program to determine an insertion point to insert constraint code associated with the constraint based on the insertion point information; and insert the constraint code associated with the constraint into the computer program while the computer program is running, the constraint code associated with machine instructions that correct a flaw of the computer program, the flaw being a security vulnerability or a bug; a constraint management engine in communication with the node manager and the managed program execution engine, the constraint management engine being configured to dynamically turn the constraint of the loaded constraint library on or off as the computer program is running, in response to user input; and a gateway in communication with the constraint management engine configured to receive a communication from the constraint management engine indicating whether the constraint is turned on or off, wherein the gateway receives a call from the constraint code and determines whether the machine instructions that correct the flaw of the computer program should be called based on whether the constraint is turned on or off.