티스토리 뷰

힙 오버플로우는 메모리 할당 해제 루틴에서 발생한다. 그리고 리스트 연산자는 메모리의 장소에 쓰는 것을 통해서 APP의 제어권을 가진다. 이 것을 방지하기 위해서 힙 구현을 강화한다. 


각 힙 헤더 구조체에 8비트 쿠키를 저장한다. 이 쿠키와 전역 힙 쿠키를 XOR 연산 한 후 힙 청크 어드레스를 8롤 나눈다. 결과가 0이 아니면 힙 오염이 발생한 것이다. 이 연산에서 힙 청크의 주소가 사용되므로 브루트포스를 방지할 수 있다. 


그리고 언링크 연산이 일어날 때마다 유효한 값이 검사하는 방법도 있다. 언링크하기 전에 현재 엘리먼트를 가리키고 있는 올바른 포인터를 가지고 있는지 검사하는 것이다. 


우회


여전히 공격자는 힙 데이터 구조체를 이용해서 공격이 가능하다. 힙 보호 매커니즘의 가장 중요한 한계점은 내부 힙 관리 구조체만 보호한다는 점이다. 다른 유용한 값을 변경할 수 있다면 불가능하지 않다. 


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함