[PATCH] Insert random noops to increase security against ROP attacks (llvm)

Mehdi Amini mehdi.amini at apple.com
Mon Jan 5 17:37:23 PST 2015


Hi,

Thanks, this is a very good reference.

I wonder if it is not worth mentioning in it in a comment for the pass, or at least in the commit message.

— 
Mehdi

 
> On Jan 5, 2015, at 4:32 PM, Stephen Crane <sjcrane at uci.edu> wrote:
> 
> Hi Mehdi,
> 
> I looked around for a good (not-paywalled) intro, and I think
> "Profile-guided Automated Software Diversity" from CGO'13 has a good
> background on inserting noops to randomize the code layout:
> https://www.ics.uci.edu/~ahomescu/multicompiler_cgo13.pdf
> 
> A better reference is
> http://link.springer.com/chapter/10.1007%2F978-1-4614-5416-8_8 if you
> have access to the Springer library.
> 
> In a nutshell, the idea is to create functionally equivalent copies of
> the software with different code layouts to prevent attackers from
> knowing where the code they want to reuse is located.
> 
> - stephen
> 
> 
> On Mon, Jan 5, 2015 at 3:57 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>> Hi,
>> 
>> I don’t have much background on this topic, but I’m interested to understand how inserting a random number of noops help addressing ROP attacks. Do you have a link that explains this “counter-measure”?
>> 
>> Thanks,
>> 
>> Mehdi
>> 
>>> On Jan 5, 2015, at 2:59 PM, Stephen Crane <sjcrane at uci.edu> wrote:
>>> 
>>> - Revert loop termination back to include insertion slot before terminators.
>>> - Fix spelling
>>> - Update tests to reflect new default insertion percentage.
>>> - Formatting fixes
>>> 
>>> 
>>> http://reviews.llvm.org/D3392
>>> 
>>> Files:
>>> include/llvm/CodeGen/CommandFlags.h
>>> include/llvm/CodeGen/NoopInsertion.h
>>> include/llvm/CodeGen/Passes.h
>>> include/llvm/InitializePasses.h
>>> include/llvm/Support/RandomNumberGenerator.h
>>> include/llvm/Target/TargetInstrInfo.h
>>> include/llvm/Target/TargetOptions.h
>>> lib/CodeGen/CMakeLists.txt
>>> lib/CodeGen/CodeGen.cpp
>>> lib/CodeGen/NoopInsertion.cpp
>>> lib/CodeGen/Passes.cpp
>>> lib/Target/X86/X86InstrInfo.cpp
>>> lib/Target/X86/X86InstrInfo.h
>>> test/CodeGen/Mips/noop-insert.ll
>>> test/CodeGen/PowerPC/noop-insert.ll
>>> test/CodeGen/X86/noop-insert-percentage.ll
>>> test/CodeGen/X86/noop-insert.ll
>>> 
>>> EMAIL PREFERENCES
>>> http://reviews.llvm.org/settings/panel/emailpreferences/
>>> <D3392.17815.patch>_______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> 





More information about the llvm-commits mailing list