쉽게 이해하는 RELRO(RELocation Read-Only)


쉽게 이해하는 RELRO(RELocation Read-Only)

먼저 알아둘 것 PLT와 GOT ROP (워게임, ROP Chaining and GOT overwrite) RELRO(RELocation Read-Only)란 바이너리(실행 파일)에 대한 보호 기법 중 하나로, 불필요하게 쓰기 권한이 부여되어 있는 프로세스의 data segment 부분에서 읽기 권한(read-only)만을 부여하는 방법입니다. PLT와 GOT의 특징을 이해하고 GOT overwrite를 할 때는, GOT(Global Offset Table)에 쓰기가 가능했습니다. Lazy Binding이라고도 하는 함수의 호출 방식 때문인데, 처음 실행하고자 하는 함수가 호출되어 함수의 실제 주소를 알지 못할때 이를 GOT에 적어서 테이블을 갱신시키는 과정이 필요한데 이때 쓰기 권한이 부여되어야 이런 절차가 진행될 수 있기 때문입니다. 그리고 GOT overwrite는 이런 "쓰기(write)"가 허용된다는 점을 악용하여 대상 함수의 절대 주소가 담긴 GOT를 임의로 다른 함수(이...


#bof #overwrite #permission #plt #RELRO #rwx #vmmap #리눅스 #보호기법 #malloc #libc #buffer_overflow #C #Clang #C언어 #gcc #GDB #got #GOT_overwrite #취약점

원문링크 : 쉽게 이해하는 RELRO(RELocation Read-Only)