smash the stack
숙어C2프로그램의 호출 스택을 덮어써서 손상시키거나 공격하는 것
phrase
- 1
프로그램의 호출 스택에 있는 데이터를 의도치 않게 또는 악의적으로 덮어써서 프로그램 실행 흐름을 손상시키거나 조작하다.C2
to overwrite or corrupt data on a program’s call stack, especially in order to disrupt or take control of execution.
The exploit smashes the stack and overwrites the saved return address.
그 익스플로잇은 스택을 손상시키고 저장된 반환 주소를 덮어쓴다.
Modern compilers include protections that make it harder to smash the stack.
현대 컴파일러에는 스택을 공격하기 어렵게 만드는 보호 기능이 포함되어 있다.
뉘앙스 · 쓰임
“overflow a buffer”는 버퍼의 크기를 넘겨 데이터를 쓰는 원인을 가리키는 말이고, “smash the stack”은 그 결과로 스택 영역이 손상되거나 공격에 이용되는 상황을 더 강조합니다. “stack smashing”은 명사형으로, 공격 기법이나 취약점 유형을 가리킬 때 자주 쓰입니다.
기술 문맥에서 쓰는 표현입니다. 일반 대화에서 “무언가를 완전히 망치다”라는 비유로 쓰면 의미가 잘 전달되지 않을 수 있습니다. 보안 보고서에서는 더 정확하게 “stack buffer overflow”, “overwrite the return address”, “stack corruption” 같은 표현을 함께 쓰는 것이 좋습니다.
유의어 뉘앙스 비교
- corrupt the stack
- 더 중립적이고 기술적인 표현으로, 공격 의도 없이 스택이 손상되는 경우에도 쓸 수 있습니다.
- overflow a stack buffer
- 스택에 있는 버퍼의 범위를 넘겨 쓰는 구체적인 원인이나 취약점을 강조합니다.
- perform a stack-smashing attack
- 공격 행위를 명시적으로 말하는 더 공식적이고 설명적인 표현입니다.
반의어
- protect the stack
- 스택 손상이나 공격을 방지한다는 반대 의미입니다.
- preserve stack integrity
- 스택의 무결성을 유지한다는 더 공식적이고 보안 중심적인 표현입니다.
어원 · 암기 팁
[English]컴퓨터 과학의 “stack”은 함수 호출 정보와 지역 변수를 저장하는 메모리 구조를 가리킵니다. “smash”는 ‘박살 내다, 세게 망가뜨리다’라는 뜻으로, 스택 메모리가 버퍼 오버플로 등으로 심하게 덮어써지는 모습을 비유적으로 표현합니다. 이 표현은 1996년 Aleph One의 유명한 보안 글 “Smashing The Stack For Fun And Profit”을 통해 널리 알려졌습니다.
💡 스택을 접시 더미처럼 생각해 보세요. 버퍼 오버플로가 그 더미를 세게 밀어 무너뜨리면 ‘smash the stack’입니다.