Implementations of automated Masking
Andrew Moss, Elisabeth Oswald, Dan Page, and Michael Tunstall. Compiler Assisted Masking. In Emmanuel Prouff and Patrick Schaumont, editors, CHES, volume 7428 of LNCS, pages 58–75. Springer, 2012
G. Agosta, A. Barenghi, M. Maggi and G. Pelosi, "Compiler-based side channel vulnerability analysis and optimized countermeasures application" Design Automation Conference (DAC), 2013 50th ACM/EDAC/IEEE, Austin, TX, 2013, p. 1-6.
Obfuscation
PhD thesis of Stéphanie Riaud (in French): http://dumas.ccsd.cnrs.fr/dumas-00636793/document
- Obfuscator-LLVM:
Bogus Control Flow (https://github.com/obfuscator-llvm/obfuscator/wiki/Bogus-Control-Flow) Average overhead performance ➡ 28 %
Control Flow Flattening (https://github.com/obfuscator-llvm/obfuscator/wiki/Control-Flow-Flattening) Average overhead performance ➡ 860 %
Instruction Substitution (https://github.com/obfuscator-llvm/obfuscator/wiki/Instructions-Substitution) Average overhead performance ➡ 13.5 %
A commercial version of this project with more features is available at https://strong.codes/
Model of attacker
In the case of cyber attacks
- Attacker can run programs on the same machine
attack on the branch predictor.
(in French, has links) https://interstices.info/jcms/c_25753/une-faille-de-securite-dans-les-processeurs- attack on the Dcache (need ref)
- Attacker interacts with remote machine
- buffer overflow, canari, ASLR, CFI
- Canaries with Clang: -fstack-protector, -fstack-protector-strong, -fstack-protector-all
- ASLR with Clang: -fpie -pie
Safe stack with Clang: -fsanitize=safe-stack. More information : http://dslab.epfl.ch/proj/cpi/ (research prototype)
CFI with Clang: -fsanitize=cfi. More information : http://clang.llvm.org/docs/ControlFlowIntegrity.html
- Global Offset Table (GOT) Protection with Clang: -Wl,-z,now -Wl,-z,relro