El Reg published an article that describes a clever technique Intel is considering implementing in future CPU designs to prevent certain types of malware infections called Control-flow Enforcement Technology (CET) [PDF], those that use return-orientated programming (ROP) and jump-orientated programming (JOP) to implement exploits:
CET works by introducing a shadow stack – which only contains return addresses, is held in system RAM, and is protected by the CPU's memory management unit. When a subroutine is called, the return address is stashed on the thread's stack, as per normal, and also in the shadow stack. When the processor reaches a return instruction, the processor ensures the return address on the thread stack matches the address on the shadow stack.
If they don't match, then an exception is raised, allowing the operating system to catch and stop execution. Therefore, if exploit code starts tampering with the stack to chain together malicious instructions to install malware or otherwise compromise a system, these alterations will be detected and the infiltration halted before any damage can be done.
Given that these are two of the major techniques used by exploit authors to perform arbitrary code execution, being able to block such attempts through hardware could make digital life a little bit safer.
(Score: 2) by RamiK on Sunday June 12 2016, @02:28AM
On the list of downsides, you can throw-in significant overhead for for lots of coroutines (CSP style or just Duff's device) and split-stacks. From there, you can execute one of two attacks: Either flood the shadow stacks space with endless coroutines, or attack the hardware scheduler garbage collecting all those endless stacks by creating recursing the return pointers back and forth to jump tables.
Extra credit for doing both at the same time.
The good thing about this is that it will like trip over exceptions making everything so damn fragile people will stop abusing exceptions and start writing good code.
compiling...
(Score: 0) by Anonymous Coward on Sunday June 12 2016, @03:46AM
The good thing about this is that it will like trip over exceptions making everything so damn fragile people will stop abusing exceptions and start writing good code.
I guess Intel's plot truly is cunning, then.