2008년 2월 25일 월요일

strace를 통한 bufferoverflow 방지

strace를 통한 bufferoverflow 방지

제 20회 한국정보처리학회 추계학술발표대회 논문집 참고


(2003. 11)


논문 요약


기존의 bufferoverflow 방지 기법


1. canary 방식


오버플로 가능한 변수 앞에 특정값의 i 라는 canary 변수를 선언하고 overflow 가 되었을 경우 i 영역을 침범하게 된다.


한계 : 해커들이 i값 조차 조작하여 다시 기존의 값으로 바꿀수 이있다.


2. 포인터 무결성 방식


return 값을 다른 곳에 저장시켜 stack의 RET값이 바뀌더라도 상관 없다.


한계 : 성능에 영향을 미치고, 커널 수정 필요



- 대안이 간편한 strace 툴을 이용


일반적인 instruction은 텍스트 영역에 있고, 버퍼오버플로가 일어날 경우 STACK영역을 참조하게 된다.


strace -i 옵션 사용


-i (Print the instruction pointer at the time of the system call. )


stack영역을 침범할 때 사용되는 demon을 만들어줌


댓글 없음: