malloc 알고리즘마다 다르지만 리눅스의 ptmalloc의 경우, double free로 동일한 chunk를 같은 크기의 bin에 넣은 후 malloc을 하면 사용자가 bin에 있는 청크의 metadata를 조작하여 그 다음의 malloc시 임의의 포인터 변수가 포인팅하는 메모리를 malloc return 값에 저장할 수 있음. 이를 가지고 GOT ovewrite HOOK overwrite 가능
프갤러 2(211.251)2024-12-30 15:24
답글
그런 기능이 왜 필요한거임?
익명(121.172)2024-12-30 15:26
답글
임의의 변수를 포인팅하는 변수의 주소를 malloc return
프갤러 2(211.251)2024-12-30 15:44
문제를 야기하는 기능을 말하는건가요?
프갤러 3(118.235)2024-12-30 15:38
최신 패치들은 double free 탐지해서 예외처리(사실상 halt)를 발생시키지만, 우회방법이 있긴해서 문제가 되는것
문제를 야기하는 기능이 존재하는 이유는, 메모리 관리 효율성을 위해서(단편화 문제,지역성고려)
프갤러 2(211.251)2024-12-30 15:42
GOT ovewrite는 해킹 기술이며 실행흐름 변경가능. 근데 double free가 발생하는 CVE는 비율이 매우적음
프갤러 2(211.251)2024-12-30 15:43
glibc 가 매번 탐지기술을 도입해도 우회기법은 꾸준히 나오고 DFB 그냥 냅두면 해커들이 어떻게 해서든 해킹 해버림
비용이 비싸잖아 그렇게 하고 싶으면 딴언어써
malloc 알고리즘마다 다르지만 리눅스의 ptmalloc의 경우, double free로 동일한 chunk를 같은 크기의 bin에 넣은 후 malloc을 하면 사용자가 bin에 있는 청크의 metadata를 조작하여 그 다음의 malloc시 임의의 포인터 변수가 포인팅하는 메모리를 malloc return 값에 저장할 수 있음. 이를 가지고 GOT ovewrite HOOK overwrite 가능
그런 기능이 왜 필요한거임?
임의의 변수를 포인팅하는 변수의 주소를 malloc return
문제를 야기하는 기능을 말하는건가요?
최신 패치들은 double free 탐지해서 예외처리(사실상 halt)를 발생시키지만, 우회방법이 있긴해서 문제가 되는것 문제를 야기하는 기능이 존재하는 이유는, 메모리 관리 효율성을 위해서(단편화 문제,지역성고려)
GOT ovewrite는 해킹 기술이며 실행흐름 변경가능. 근데 double free가 발생하는 CVE는 비율이 매우적음
glibc 가 매번 탐지기술을 도입해도 우회기법은 꾸준히 나오고 DFB 그냥 냅두면 해커들이 어떻게 해서든 해킹 해버림