IT 그리고 정보보안/Knowledge base

SSP (Stack Smashing Protection)

plummmm 2021. 4. 15. 21:38
반응형

SSP란 gcc 4.1버전 이후에 지원하는 BOF 방어 기법이다. 흔히 Propolice 라고 하는데,

일단 이녀석은 스택가드 다음에 나오는 방어 기법이다. 

일단 아래 캡쳐화면을 보고 설명하게씀.

 

 

저번에 설명한 것과 같다. canary가 변조 되면 RET가 변조 되었다고 가정하는 것이다.

 

그림에서      

mov eax, gs:0x14

mov DWORD PTR [ebp-0xc], eax

 

이 부분이 카나리아 값을 스택에 저장하는 부분이다.

그리고 __stack_chk_fail@plt 이부분이 카나리아 변조 여부를 체크하는 루틴이다.

 

스택가드의 정확한 동작을 자세히는 모르지만 일단 SSP는 카나리아를 넣어두고

변조 여부를 체크하는 루틴을 호출하여 확인하는 거다. 이 부분에서 차이나는듯.

 

SSP는 GCC에서 옵션으로 설정할 수 있다.

-fstack-protector 플래그를 주어 설정한다. 

해제 할때는 -fno-stack-protector 를 설정해주면된다.

 

참고 문서 : Smashing the stack - NewHeart

반응형