일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- root-me
- SQL Injection
- metasploit
- GHDB
- msfconsole
- JSP 우회
- exploit-db
- code injection
- assert()
- MySQL 원격 로그인.
- WHISTL
- shellshock
- 메모리 보호
- MBSA
- SecureCheq
- Canary
- aslr
- bash shell bug
- 필터링 우회
- DNS 정보수집
- ctf
- openvas
- Lampiao
- ASCII-Aromor
- 취약점
- 배시쉘 버그
- Nexpose
- 파일 업로드
- file upload
- File Upload-ZIP
- Today
- Total
나만의 연습장
메모리 보호 기법 본문
먼저 메모리 보호란?
메모리 보호는 컴퓨터 메모리의 사용을 제어하는 방법이며 모든 운영체제에서 중요한 쟁점사항 중 하나이다.
운영체제에서 실행하고 있는 프로세스가 자신에게 할당되지 않은 영역의 메모리에 접근하는 것을 막는 것이 메모리 보호의 주된 목적이다. 이를 통해 프로세스 내의 버그가 다른 프로세스의 동작에 영향을 미치는 것을 예방하며 악성 소프트웨어가 시스템에서 허가되지 않은 접근권한을 갖고 시스템에 영향을 끼치는 것을 막아준다.
- 컴퓨터 메모리의 사용을 제어하는 방법
- OS에서 실행하고 있는 프로세스가 자신에게 할당되지 않은 영역의 메모리에 접근하는 것을 막는 것
(허가되지 않은 접근권한을 갖고 시스템에 영향을 끼치는 것을 막는다.)
- ASLR
- DEP/NX
- ASCII-Armor
- Stack Canary
Heap, Stack, libc등의 주소공간을 호출 할 때마다 무작위호 배정하는 기법이다.
이러한 ASLR 기법의 효과는 buffer overflow 공격을 힘들게 하는 점이지만, 이 또한 NOPsled, RTL, ROP등으로 우회 할 수 있습니다.
다음은 DEP/NX를 알아 보겠습니다.
DEP(Data Execution Prevention) /
NX(Non Executable)은
데이터 영역에서 코드가 실행되는 것을 막는 기법이다.
예를들어 BOF 취약점이 있는 프로그램을 exploit 하기위해 return address를 쉘코드의 주소로 변조를 하면 DEP를 설정해 두지 않은 경우라면 쉘코드가 실행이 되지만 DEP가 설정되어 있는 경우라면 실행권한이 없기 때문에 쉘코드를 실행하지 않고 프로그램에 대한 예외처리 후 종료 됩니다. 하지만 RTL 기법으로 우회가 가능하다.
세 번째로 ASCII-Armor를 알아 보겠습니다.
ASCII-Armor는 공유라이브러리 영역의 상위 주소에 0x00(Null Byte)을 포함시키는 방법입니다.
이 기법은 RTL(Return To Library)의 공격에 대응하기 위해 사용된다.
RTL은 Return address에 libc내의 함수를 덮어씌워 쉘코드 없이 exploit하는 것이다.
libc라는 공유라이브러리 내 함수로 리턴을 하여 프로그램의 실행 흐름을 조작하는 공격이기 때문에
ASCII-Armor 기법이 적용되어 있으면 공격자가 라이브러리를 호출하는 공격을 한다고 해도 Null Byte가 삽입되어있으므로 exploit을 허용하지 않는다.
마지막으로 Stack Canary에 대해 알아 보겠습니다.
Stack Canary은 함수 진입 시 스택에 SFP와 Return address 정보를 저장할 때, 이 정보들이 공격자에 의해 덮어씌워지는 것으로부터 보호하기 위해 스택상의 변수들의 공간과 SFP 사이에 특정한 값을 추가하는데 이 값을 Canary라고 한다
공격자가 Return address를 조작하기 위해 BOF 공격을 시도할 때, Return address를 덮기 이전에 Canary 값이 먼저 값이 덮어지기 때문에 이 Canary 값의 변조 유무로 BOF를 탐지 할 수 있습니다.