Microsoft has announced the three finalists of its BlueHat defensive security competition, each handpicked for their techniques to mitigate Return Oriented-Programming (ROP) exploits.
In a nutshell, ROP allows attackers to execute code in the presence of non executable memory segments and code signing. ROP attackers have control of the call stack to execute instructions ahead of the return instruction in subroutines of code. The execution of instructions from inside a program avoids defensive measures designed to stop execution from user-controlled memory.
One of the defensive measures will see a researcher win the top prize of US$250,000, with second prize US$50,000 and third place scores a subscription to Microsoft’s developer network (MSDN) services valued at about US$10,000.
Competitors were allowed to keep their intellectual property and Microsoft would receive free licence to use it.
Respected security researcher Jared DeMott told SC he was glad to have reached the finals.
His submission, called /ROP, uses a whitelist to check the integrity of return addresses.
“I targeted ROP because it is currently the most used technique to exploit fully compiled software,” DeMott said.
“/ROP was designed with the Windows platform in mind, so I’m hoping they will implement it. Other operating systems could implement similar strategies if they desire.”
He didn’t keep tabs on how long it took to build the system, saying only that “it took a while”.
Columbia University PhD graduate and security researcher Vasillis Pappas submitted kBouncer, which would use common hardware features to detect and mitigate abnormal control transfers.
A third researcher, Ivan Fratric from Croatia developed ROPGuard that defines a set of checks used to detect functions used in ROP.
Microsoft received 20 entries for the competition between 3 August last year and 1 April. Each submission was weighted first on impact, then robustness and practicality and functionality.