인프런 커뮤니티 질문&답변

dorani님의 프로필 이미지
dorani

작성한 질문수

리눅스 커널 해킹. A부터 Z까지

SSP 우회

why do we need heap alloc here?

작성

·

173

0

I think direct copy between user and kernel stack is enough.

Why do we alloc kernel heap?

I'm just curious.

답변 1

0

김현우님의 프로필 이미지
김현우
지식공유자

만약 BOF 상황을 연출하기 위해 

copy_from_user(arr, buf, count);

위와 같이 모듈을 작성한 뒤, BOF를 발생시키면 SSP의 유무와 상관 없이

[    3.402046] ------------[ cut here ]------------

[    3.402372] Buffer overflow detected (8 < 160)!

이 같은 커널 패닉이 발생하기 때문입니다.

그래서 BOF 상황을 연출하기 위해 유저로부터 전달받은 데이터를 커널 힙에 복사한 뒤, 다시 커널 스택에 복사하는 방식으로 위와 같은 BOF 방지 루틴을 우회시킨 것입니다.

dorani님의 프로필 이미지
dorani

작성한 질문수

질문하기