쉽게 이해하는 스택 카나리(Stack Canary)


쉽게 이해하는 스택 카나리(Stack Canary)

먼저 알아둘 것 스택 버퍼 오버플로우(Stack Buffer Overflow) 공격 이번 글에서는 스택 카나리(Stack Canary)에 대해 알아보겠습니다. 이전에 스택 오버플로우 공격을 진행할 때, 보통 공격자들은 입력을 받는 취약한 함수 scanf(), gets() 등을 타겟으로 삼아 버퍼에 과도한 양의 데이터를 집어넣어 메모리 구조로 볼 때 그 뒤로 이어진 SFP(Stack Frame Pointer/BP)와 그 뒤에 이어지는 RET(Return address), 즉 복귀 주소까지 덮어버렸습니다. 이때 거리를 계산하여 RET 위치에 정확하게 해커가 원하는 프로그램이나 함수의 위치를 넣어주면, 프로그램은 함수 실행 후 너무나도 당연한 것처럼 그렇게 변조된 주소로 실행을 이어가게 되었습니다. 그래서 나온 것이 아래 스택 카나리(Stack Canary)입니다. 이것은 아래와 같이 버퍼와 SFP(Stack Frame Pointer), 그리고 공격자들이 늘 탐내하는 함수가 끝내고 복귀할...


#Canary #원리분석 #어셈블리 #시스템보안 #스택카나리 #스택스매싱 #스택버퍼오버플로우 #스택 #쉬운설명 #보안 #리버싱 #디버거 #x64 #x32 #SSP #mitigation #GDB #exploitation #카나리아

원문링크 : 쉽게 이해하는 스택 카나리(Stack Canary)