다양한 기록

Dirty COW #1 Copy-on-Write 본문

운영체제보안

Dirty COW #1 Copy-on-Write

라구넹 2024. 12. 6. 19:20

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