일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스 커널
- 프로그래밍
- kernel
- 시스템프로그래밍
- 워게임
- wargame
- 어셈블리어
- radare2
- css
- C++
- px4
- 리눅스커널
- C언어
- 알고리즘
- 시스템
- 리눅스
- 커널
- 시스템 프로그래밍
- 시스템해킹
- Leviathan
- Bandit
- pwn.college
- write up
- 컴퓨터구조
- Pwnable.kr
- 리버싱
- 드론
- pwncollege
- 취약점
- 시그널
- Today
- Total
목록정보보안 (179)
Computer Security
SMAP(Supervisor Mode Access Prevention) 커널 공간에서 유저 공간에 대한 읽기/쓰기 권한도 제한하는 보호기법이다. 실행 권한만 제한하는 SMEP에서 더 강화된 보호 기법이며, 유저 공간으로의 엑세스 자체를 제한한다. SMEP와 마찬가지로 cr4레지스터에 SMAP를 on/off 하는 제어 비트가 있다. kernel ROP만으로 우회할 수 있는 SMEP와 달리 우회 방법이 다양하며, 다소 복잡한 편이다. 우리는 아래의 파일들로 실습 할 것이다. nosmap.sh : SMAP를 적용하지 않은 qemu script smap.sh : SMAP을 적용한 qemu script test.c : 간단한 취약점이 터지는 디바이스 드라이버 예제 exp.c : 취약점을 이용해 권한 상승을 일으키..
SMEP(Supervisor Mode Execution Prevention) 커널 공간에서 유저 공간에 대한 실행 권한을 제한하는 보호 기법. 즉, ring 0 권한 일 때, ring3와 관련된 코드를 실행할 수 없다는 것이다. 유저 공간의 NX bit(1) 보호 기법과 유사하다. cr4 레지스터에 SMEP를 on/off 하는 제어 비트가 있다. 우회하기 위해 kernel ROP(2) 작성이 필요하다. (1) NX bit : 특정한 지역의 메모리에 실행되는곳, 실행 안되는곳, 편집 불가능한곳을 만드는 exploit 보안 기법이다. ex) 데이터, 스택 및 힙 세그먼트는 실행 불가능한 반면 텍스트 세그먼트는 쓰기 불가능으로 만들어 지는것 (2) ROP : 반환 지향형 프로그래밍(ROP: Return-ori..
KASLR(Kernel Address Space Layout Randomization) 커널이 무작위 주소에 매핑되도록 만들어, 커널 익스플로잇을 어렵게 하는 보호기법이다. 유저 공간의 ASLR(1) 과 비슷한 개념이다. 주로 커널이 실행되기 전 단계인 부트로더에서 셋팅된다. 우회하기 위해 kernel memory address leak 과정이 필요하다. (1) ASLR(address Space Layout Randomization) 스택, 힙, 라이브러리 등의 주소를 랜덤한 영역에 배치하여, 공격에 필요한 target address를 예측하기 어렵게 만든다. 프로그램이 실행될 때마다 각 주소들이 변경된다. (2) kernel memory address leak 커널의 취약점을 이용해서, 커널의 메모리 ..
리눅스 커널 보호 기법 리눅스 커널에는 공격자로부터 커널을 보호하기 위한 다양한 메모리 보호 기법들이 있다. 특정 보호 기법들은 아키텍쳐 별로 구현 및 명칭이 조금씩 다르다. 수 많은 보호 기법들이 있지만, x86_64 아키텍쳐의 KASLR,SMEP,SMAP,KADR,SSP,KPTI 보호기법을 다룰 것 이다. KASLR : 커널의 메모리 주소를 랜덤화. similar to ASLR SMEP : 커널 공간에서 유저 공간의 실행 권한을 제한 SMAP : 커널 공간에서 유저 공간의 읽기/쓰기 권한도 제한 KADR : 로컬 유저가 커널의 심볼을 볼 수 없도록 제한 SSP : 유저 공간의 canary와 동일. Makefile에서 사용되는 gcc의 옵션(스택 오버플로우 방지 보호기법) KPTI : 커널 공간과 유저..