• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

why do we need heap alloc here?

21.03.30 13:05 작성 조회수 135

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 방지 루틴을 우회시킨 것입니다.