1. A method for secure execution of a computer program on a computing system, the method comprising: prior to execution of the computer program, analyzing the computer program to identify permitted targets of indirect transfers, each of the indirect transfer being a control flow transfer that has a destination address that is derived or read from data in memory or registers; creating an application-specific policy based on the permitted targets; executing the program on the computing system; and enforcing the application-specific policy during the execution of the computer program, the enforcing comprising ensuring that each indirect transfer targets one of the permitted targets, the enforcing prohibiting the program from executing indirect transfer instructions that do not target one of the permitted targets.