🔧 [클래식] The Geometry of Innocent Flesh on the Bone — W⊕X를 무너뜨린 return-oriented programming의 탄생 (2007)

2026-09-09 · 카테고리: Research (전통 보안 고전 논문)

논문 정보

제목: The Geometry of Innocent Flesh on the Bone: Return-into-libc without Function Calls (on the x86)
저자: Hovav Shacham (UC San Diego)
발표: ACM CCS 2007 (Proceedings of the 14th ACM Conference on Computer and Communications Security, 2007-10-28)
분야: 익스플로잇 기법 · 시스템 보안 — 코드 인젝션 방어(W⊕X/NX) 우회, return-oriented programming (ROP)
Semantic Scholar 인용: 1,601회

연구 배경 — '주입은 막았지만 돌아오는 길은 남았다'

1996년 Aleph One의 "Smashing the Stack for Fun and Profit"(2026-08-30 게시)이 스택 버퍼 오버플로우로 셸코드(코드 인젝션)를 실행하는 법을 대중화하자, 방어자들은 실행 권한이 없는 메모리(NX)와 W⊕X(쓰기 XOR 실행) 정책을 내놓았다. 코드를 주입해도 CPU가 그 페이지에서 실행을 거부하도록 만든 것이다. 그러자 공격자들은 이미 실행 가능한 libc 코드로 '돌아가는' return-into-libc 공격(Solar Designer 1997, Nergal의 Phrack 2001)을 사용했고, 방어자들은 '함수 몇 개를 막거나 제거하면 된다'고 생각했다. Shacham의 이 논문은 그런 협소한 방어 논쟁 자체를 끝내버린다: 함수를 하나도 호출하지 않고, libc 바이트열 속에 우연히 존재하는 'ret로 끝나는 짧은 명령 조각'만 이어 붙여서 임의 계산(arbitrary computation)을 완성하는 체계를 제시했다. 이것이 오늘날 모든 익스플로잇의 표준 어휘가 된 return-oriented programming (ROP)의 출발점이다.

핵심 내용 — '무고한 살점' 속에서 가젯을 찾다

"We present new techniques that allow a return-into-libc attack to be mounted on x86 executables that calls no functions at all. Our attack combines a large number of short instruction sequences to build gadgets that allow arbitrary computation." — Shacham, CCS 2007

영향과 의의 — '방어의 종말'에서 '새 방어의 시작'으로

출처

목록으로 돌아가기