Patent ID: 8407800

Claim:
A method for detecting, analyzing, and mitigating vulnerabilities in software, the method comprising: providing at least one processor; and providing at least one memory device that stores program instructions executable by the processor to implement a method comprising: determining whether one or more vulnerabilities are present in one or more target software components based on output from a vulnerability flow graph generator, wherein the vulnerability flow graph generator automatically generates one or more vulnerability flow graphs for static and dynamic vulnerability analysis; determining whether any detected vulnerabilities are fixable; fixing the detected vulnerabilities that are fixable in code or in associated models used to generate code; generating a vulnerability-covering code when one or more of the detected vulnerabilities are not fixable, wherein the vulnerability-covering code is generated using the one or more vulnerability flow graphs; determining whether there are any remaining vulnerabilities in the vulnerability-covering code; and generating a vulnerability-aware diverse code when there are one or more remaining vulnerabilities to obfuscate the remaining vulnerabilities.