일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- DP
- Unreal Engine
- MLFQ
- MAC
- 유니티
- dtft
- ability task
- gas
- DSP
- CTF
- Security
- 운영체제
- 언리얼엔진
- Double free
- 유스케이스
- AINCAA
- 메카님
- 게임 개발
- Race condition
- 게임개발
- pdlc
- ret2libc
- frequency-domain spectrum analysis
- dirty cow
- 언리얼 엔진
- sampling theory
- stride
- linear difference equation
- TSet
- Rr
Archives
- Today
- Total
다양한 기록
Dirty COW #1 Copy-on-Write 본문
Copy-on-Write
부모와 자식 프로세스가 초기엔 메모리의 같은 페이지 프레임을 공유할 수 있게 함 (* 페이지 테이블 관련 내용은 운영체제 카테고리 참조)
이유:
보통 프로세스들은 fork 이후 exec해서 다른 프로그램이 됨
=> 굳이 쓰지도 않을 메모리를 복제하면 낭비니까 일단 부모 자식 간 프레임 공유를 시킴
처음엔 공유 시키고, Write 시 복제를 함 (copy on write)
물론 각각 PCB 따로 가지니까 페이지 테이블은 각각 가지지만,
페이지 테이블 엔트리가 가리키는 페이지 프레임이 공유됨
1. 부모 프로세스와 자식 프로세스는 둘 다 일단 read-only로 마크됨
- read시에는 아무 상관 없음
2. 자식 프로세스가 write 요청
- Protection fault 발생 -> 커널이 페이지 프레임을 카피하고, 페이지 테이블에 매핑 시킴
이전 게시글까지는 주로 공격 대상이 루트 소유 setuid 프로그램이었음
더티 카우는 COW와 관련된 커널의 취약점을 이용해서 권한을 상승
'운영체제보안' 카테고리의 다른 글
Dirty COW #3 Exploit (0) | 2024.12.06 |
---|---|
Dirty COW #2 mmap(), madvise() (0) | 2024.12.06 |
ToCTToU (Time of Check-to-Time of Use) Vulnerability (0) | 2024.12.06 |
Race Condition Problem (0) | 2024.12.06 |
Return-Oriented Programming (ROP) (0) | 2024.12.06 |