본문/내용
1. 정의
ROP(흔히 Return-Oriented Programming이라고 불리는 기술)는 보안 분야에서 중요한 역할을 하는 공격 기법으로, 주로 악성 코드가 시스템의 보호 메커니즘을 우회하기 위해 사용된다. 이 기법은 공격자가 일반적으로 예상되는 방어 논리를 피하면서도 악성 코드를 실행할 수 있도록 해준다. 기본적으로 ROP는 프로그램의 실행 흐름을 조작하는 방식으로 작동하며, 응용 프로그램 내에서 미리 정의된 리턴 지점들을 활용하여 원하는 행동을 수행한다. ROP는 기본적으로 스택의 구성을 이용하여, 특정한 명령어의 조합을 실행하는 방식이다. 공격자는 취약한 프로그램이 메모리에 올려진 코드와 데이터를 악용하여, 프로그램의 스택에 있는 리턴 주소를 수정한다. 이렇게 수정된 리턴 주소는 공격자가 원하는 특정한 위치로 점프하도록 만든다. 이 위치는 기존의 코드, 즉 프로그램이 정상적으로 수행하는 기능의 일부이며, 이러한 코드 조각들은 “가젯”이라 불린다. 각 가젯은 일반적으로 2~5개의 명령어로 구성되며, 자신이 실행되어야 하는 경우에 따라 순차적으로 호출된다. ROP는 여러 면에서 기존의 악성 코드 실행 방식과 다르다. 전통적으로는 악성 코드…