canary1 [포너블/Mitigation] Stack Canary 1. 개념스택 카나리란 버퍼오버플로우를 막기 위한 보호기법 중 하나로 반환 주소를 보호하는 기법입니다.이전 글에서 BOF에 대해서 다루었는데 전과 같이 Return주소를 내가 원하는 값으로 변조하면 실행 흐름을 조작할 수 있는 취약점이 발생하게 됩니다. 그리하여 이를 막기 위하여 버퍼와 RET사이에 임의의 값을 삽입하고 함수의 에필로그 부분에서 카나리의 변조 여부를 확인하여 변조되었다면 프로그램을 강제 종료시키게 됩니다. 2. 카나리카나리는 기본적으로 컴파일할 때 해제하지 않으면 기본으로 포함되게 됩니다. (이전 BOF에서는 이해를 돕기위해 컴파일을 할 때 -fno-stack-protector라는 옵션을 포함하여 카나리를 제외하고 컴파일 하였습니다.) 카나리는 먼저 TLS(Thread Local Stor.. 2024. 7. 22. 이전 1 다음