Hijacking of an application is prevented by monitoring control flow
transfers during program execution in order to enforce a security policy.
At least three basic techniques are used. The first technique, Restricted
Code Origins (RCO), can restrict execution privileges on the basis of the
origins of instruction executed. This distinction can ensure that
malicious code masquerading as data is never executed, thwarting a large
class of security attacks. The second technique, Restricted Control
Transfers (RCT), can restrict control transfers based on instruction
type, source, and target. The third technique, Un-Circumventable
Sandboxing (UCS), guarantees that sandboxing checks around any program
operation will never be bypassed.