본문 바로가기

보안/이론

버퍼 오버플로우 관련 용어 ASLR, NOP, NX, ROP,DEP

 

BOF 방지 기법


 

 

ASLR (Address Space Layout Randomization) : 프로세스의 가상 주소 공간에 어떤 obejct가 매핑 될 때 , 그 위치를 프로그램 실행 시 마다 랜덤하게 변경하는 보안기법

 

1) ASLR 은 User Application의 heap, stack, 공유 library를 Process 의 가상 주소 공간에 mapping 시키는 위치를 매 실행시마다 random 하게 배치하는 것 ( 매번 같은 가상 주소 공간에 위치하면 악성 코드가 이를 ROP 등에 악용할 여지가 커지므로)

이미 메모리 위치가 runtime 에 결정되는 dynamic object들은 ASLR 개념을 적용할 필요가 없다고 할 수 있음.

.

.

 

 

 

 

2) 공유 라이브러리는 여러 process들이 메모리상에서 공유하는 라이브러리 이기 때문에 ASLR 에 의해서 각 process들이 해당 라이브러리를 참조하기 위한 가상 주소의 위치는 달라도 physical memory 상에는 1개만 존재하므로 공유라이브러리의 physical address의 위치는 ASLR에 영향을 받지 않지 않음.

참고

 

ASLR 에 대해서

먼저 ASLR 이란 Address Space Layout Randomization 의 약어로서프로세스의 가상주소공간에 어떤 ...

blog.naver.com

 

 

 

 

 

 

.

.

NX Bit (Never eXecute bit, 실행 방지 비트)는 프로세서 명령어나 코드 또는 데이터 저장을 위한 메모리 영역을 따로 분리하는 CPU 기술. (리눅스)

쉽게 말하면 BOF 공격에서 ret에 삽입한 쉘 코드가 통하지 않게 하는 방법이다.

 

.

.

.

 

 

 

 

 

 

 

 

 

버퍼오버플로우 공격 종류


NOP sled (슬라이드)

NOP 명령어들을 나열시킨 바이너리 조각, 프로그램이 NOP 슬라이드 안의 어느 메모리 주소부터 실행을 시작하든 CPU 명령어 실행 흐름이 슬라이드 끝까지 미끄러져 내려오게 만드는것.

다르게 말하면 분기(혹은 호출) 명령어의 목적지가 되는 주소를 정확하게 알 수 없는 상황에서 특정 명령어들이 궁극적으로 실행 될 수 있도록 만드는데 사용 한다 이 방법은 ASLR를 우회 할 수 있는 방법이다.

.

.

 

 

NOP(0x90)은 어셈블리 언어로 아무것도 하지 않는 명령어이다.

NOP으로 쉘코드의 앞뒤를 작성하면 buf의 정확한 주소가 아닌 근사 값 주소여도 쉘 코드를 실행 시킬 수 있다.

nop를 많이 넣어서 ret가 nop 중 하나라도 만나게 된다면 nop를 쭉 따라서 shellcode까지 실행하게 한다.

 

 

이를 우회하기 위해 ROP 또는 RTL , Reverse shell가 존재한다.

.

.

 

 

 

ROP

DEP 우회기법 중 하나 Return Oriented Programming 의 약자

DEP를 통해 보호된 메모리 영역에서 공격자가 삽입한 코드의 실행이 불가능 하지만 이미 로드된 명령어 코드는 사용이 가능하다. 이러한 코드의 조각들을 끼워 맞춰 공격자가 원하는 행위를 실행 한다.

 

 


 

 

pwn tools 라이브러리

파이썬 모듈, gdb 를 쉽게 해주는 라이브러리

정리된 것은 https://security-nanglam.tistory.com/155

 

 

.

.

해킹 공부

BOF 전에 프로그램 Reversing 부터 하자

webhanking.kr

SQl Injection 기법: los.rubiya.kr

XSS : knock.xss.moe

웹해킹 이것저것(좀더심화): wargame.kr

http://suninatas.com/

'보안 > 이론' 카테고리의 다른 글

IDS, IPS 차이  (0) 2019.11.20
JAVA, PHP PreparedStatement 사용법  (0) 2019.11.20
보안스터디 4회차 SNI  (0) 2019.10.30
보안스터디 3회차 궁금점  (0) 2019.10.30
보안스터디 3회차 metasploit (vsftpd 2.3.4 공격)  (0) 2019.10.30