Fascination
article thumbnail
[Dreamhack] Background: RELRO
Hacking Tech/System Hacking 2022. 9. 14. 23:50

Background: RELRO # 서론 Lazy Binding: 함수가 처음 호출 될 때 함수의 주소를 구하고, 이를 GOT에 적는 것 Lazy Binding을 하는 바이너리는 실행 중에 GOT 테이블을 업데이트할 수 있어먀 하므로 GOT에 쓰기 권한이 부여됨 → 바이너리를 취약하게 만드는 원인 ELF의 데이터 세그먼트에는 프로세스의 초기화 및 종료와 관련된 .init_arrary, .fini_array가 있음 해당 영역들은 프로세스의 시작과 종료에 실행할 함수들의 주소를 저장하고 있음 여기에 공격자가 임의로 값을 쓸 수 있다면, 프로세스의 실행 흐름이 조작될 수 있음 이러한 문제를 해결하고자 프로세스의 데이터 세그먼트를 보호하는 RELocation Read-Only(RELRO)가 개발됨 RELRO는 ..