본문 바로가기
Quality control (Univ. Study)/Information Security

Buffer-overflow attack lab (5)

by 생각하는 이상훈 2024. 12. 8.
728x90

Task 4: Address Randomization

우리는 버퍼오버플로우 대응책들을 비활성화 한 채로 시작했다. 이번에는 해당 대응책을 다시 활성화 한 후에 실험을 진행한다. 아래의 명령어를 가상머신에서 수행하여 Address SpaceLayout Randomization (ASLR)을 활성화 한다. 아래의 명령어는 global 하게 적용되기 때문에 컨테이너에도 적용되는 것을 알 수 있다.

Server-1 에 hello 신호를 보내 보고, 서버의 아웃풋을 관측해라. 해당 신호를 여러 번 반복해서 보내 보아라. 어떠한 특징이 있는가. 이것이 우리의 공격을 어렵게 만드는 이유에 대해서 설명하라.

 

항상 하기전에 도커 서버를 켜야한다. 깜빡하고 있으면 나처럼 서버를 키지도 않고 30분동안 왜 안되는지 고민하는 불상사가 발생한다.

ASLR 기능을 키자. 제대로 켜지면 아래 그림과 같이 2로 떠야한다. 0,1로 뜨면 제대로 안된거라고 한다.

hello를 보내고 로그를 확인해보자.

Input size 517짜리는 이전에 공격을 했던 흔적이고 그뒤에 있는 Input size 6짜리들이 전부 hello의 log이다. 보이듯이 hello를 보낼 때 마다 메모리 레이아웃이 무작위화하고 있다.

 

ASLR이 공격을 어렵게 만드는 이유를 다시 정리해보자면 다음과 같다.

  1. 메모리 주소가 실행마다 바뀌므로, Return Address를 정확히 덮어쓰는 것이 매우 어렵다.
  2. 실패한 페이로드를 다시 시도해도 성공 가능성이 낮다.
  3. 반복적인 공격 시도는 탐지 가능성을 높이고, 방어자가 대응할 시간을 제공한다.

728x90

'Quality control (Univ. Study) > Information Security' 카테고리의 다른 글

Emerging Topics in Information Security  (0) 2024.12.08
Legal Issues and Ethics  (2) 2024.12.08
Buffer-overflow attack lab (4)  (0) 2024.12.08
Cloud Computing  (0) 2024.12.08
Cryptography  (1) 2024.12.07