[모각코] 2025 동계 5회차

안우진·2025년 2월 6일
0

모각코

목록 보기
11/19

1) NX

  • No-eXecute, stack과 heap 영역의 실행 권한을 제거한다
  • 적용 전 : rwx
  • 적용 후 : rw-

2) ASLR

  • Address Space Layout Randomization, 실행 중인 프로세스의 메모리 배치를 무작위로 변경한다.
  • 프로그램이 실행될 때마다 코드, 힙, 스택, 라이브러리 등의 메모리 주소가 랜덤하게 변경된다.

3) PIC

  • Position-Independent Code, 실행될 메모리 주소가 결정되지 않은 상태에서도 정상적으로 동작할 수 있도록 작성된 코드이다.
  • rip와 같은 레지스터를 사용하여 상대 주소 또는 간접 참조를 이용한다.
  • 다양한 환경에서 동일한 바이너리를 실행할 때 유용하다. (공유 라이브러리)
  • ASLR을 사용할 때는 PIC가 필수적이다.

4) PIE

  • Position-Independent Executable, 실행 파일을 PIC처럼 동작하도록 만드는 기술이다.

  • ASLR이 적용되지 않으면 PIE가 적용되었더라도 메모리에 랜덤으로 올라가지 않는다.

  • Return Address 직전까지 덮어서 %s로 Return Address를 읽어서 offset을 계산할 수 있음.

5) RELRO

  • RELocation Read-Only, GOT와 같은 메모리 영역을 보호하여 쓰기 권한을 막는 보안 기법이다.
  • Partial RELRO
    • .got 영역 일부만 read-only
    • .got.plt 테이블은 보호되지 않음 -> GOT Overwrite 취약점
    • Lazy Binding
  • Full RELRO
    • .got.got.plt 모두 read-only
    • 컴파일 시 -z relro -z now 옵션 필요
    • Eager Binding

0개의 댓글