본문 바로가기

Computer Security/System

Hindering ROP Using In-Place Code Randomization

요즘 보안쪽 논문을 보면, 생각했던것과 많이 달라 이쪽 대학원을 가야하나 말아야하나 망설여지지만, 그중 이 논문은 가장 괜찮았다.


Smashing the Gadgets: Hindering Return-Oriented Programming Using In-Place Code Randomization


ROP gadget을 없애는 방법을 제시하고있는데, 그중 가장 기억에 남는건 첫번째 방법인 Atomic Instruction Substitution이다.


linux계열을 ROP로 공격할땐, 별로 소용이 없을것 같긴 하지만,

windows계열에서는 꽤나 도움이 될듯하다.


이 논문에서 예를 든건


cmp al,bl 과 같은것들을 cmp bl,al로 바꿈으로써, ret(C3)를 없앤다는 내용이다.

의미상으로는 전혀 다른게 없지만, ret이 없어짐으로써 가젯으로는 소용이 없어졌다.

속도상의 손해도 거의 없을것 같다.


사실 이방법만으로는 가젯파괴가 많이 힘들지도 모르지만, 

단순한 아이디어치고는 상당히 괜찮은것 같다.