Background: PIE # 들어가며 ASLR이 적용되면 바이너리가 실행될 때마다 스택, 힙, 공유 라이브러리 등이 무작위 주소에 매핑되므로, 공격자가 이 영역들을 공격에 활용하기 어려워짐 PIE: ASLR이 코드 영역에도 적용되게 해주는 기술 해당 기술은 보안성 향상을 위해 도입된 것이 아니기 때문에 엄밀하게 보호 기법은 아니나 이를 보호 기법이라고 소개하는 글이나 발표도 있음 Figure 1. PIE가 적용되지 않은 addr의 실행 결과 # PIC와 PIE - PIC 리눅스에서 ELF는 실행 파일(Executable)과 공유 오브젝트(Shared Object, SO)로 두 가지가 존재 실행 파일은 addr 바이너리처럼 일반적인 실행 파일이 해당하고, 공유 오브젝트는 libc.so와 같은 라이브러리..
Mitigation: NX & ASLR # 들어가며 r2s를 통한 공격자의 침입을 더 어렵게 하려면 공격자가 메모리에서 임의 버퍼의 주소를 알기 어렵게 하고 메모리 영역에서 불필요한 실행 권한을 제거하는 보호 기법을 추가로 도입해야 함 # ASLR Address Space Layout Randomization(ASLR): 바이너리가 실행될 마다 스택, 힙, 공유 라이브러리 등을 임의의 주소에 할당하는 보호 기법 ASLR은 커널에서 지원하는 보호 기법이며, 다음의 명령어로 확인 가능 리눅스에서 이 값은 0, 1, 또는 2의 값을 가질 수 있음 각 ASLR이 적용되는 메모리 영역은 다음과 같음 No ASLR(0): ASLR을 적용하지 않음 Conservative Randomization(1): 스택, 힙, ..