I have read that 'Normal' ARM instructions are fixed length - 32 bits. And that no ARM instruction can jump into the middle of another instruction - something that is easy to do with x86 instructions.
(For x86, Google's NaCl tries to 'fix' this by aligning instructions on 32 byte boundaries.)
Does this make ARM programs more secure or more resistant to certain attacks?
If so, does this extend to Thumb and Java instructions?
Researcher: ARM a safer bet than x86 chips | Ars Technica.
The ARM instruction sets. The ARMv7 architecture is a 32-bit processor architecture. It is also a load/store architecture, meaning that data-processing instructions operate only on values in general purpose registers.
Both ISAs are reduced instruction set computer (or RISC) designs, meaning the base instructions the CPU has access to are inherently simple but ideally fast to calculate. The 'R' in ARM actually stands for RISC (though ARM is no longer treated as an acronym), so in this sense the two ISAs are similar.
Arm provides excellent performance per watt when compared with other microprocessor architectures. Its advanced version of the RISC design offers outstanding performance while maintaining superior energy efficiency.
The place where it can be safer is when scanning opcode to sandbox process. If you want to prohibit or intercept some instruction, doing so is easier on a fixed length instruction set. On x86 architecture, the instruction set depends of the context, and instruction have variable length, so an instruction that seems harmless can in fact embed another instruction, if you parse it from the correct offset. You can effectively "jump in the middle of an instruction" and still have a valid instruction.
ARM is easier to parse, and thumb mode does not change this. So ARM instruction set is not particularly safer per se, but is far easier to parse, and correct parsing is necessary for the NaCl like sandboxing
This is the short and probably inexact answer. For a more definitive answer, look at this blog post on the excellent matasano blog
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With