OpenBSD 개발자, ROP 공격 완화 기술의 허점을 파헤치다.
OpenBSD 개발자가 ROP(Return-Oriented Programming) 공격 완화 기술의 실제 효과를 검증한 연구 결과를 발표함
FreeBSD에서 테스트한 결과, 초기 연구와 달리 성능 저하 및 바이너리 크기 증가가 발생함
연구 결과의 불확실성으로 인해 OpenBSD 개발자로서의 역할 변화를 고민하고, BSD 생태계 연구 필요성을 제기함
ROP 공격 완화 기술의 실효성에 대한 의문 제기와 함께, BSD 보안 기술에 대한 체계적인 검토의 필요성을 강조함
ROP 공격 완화 기술의 재평가
연구에서는 ROP 공격을 방어하기 위한 두 가지 기술, 대체 레지스터 선택(Alternative Register Selection)과 컴파일 타임 명령어 재작성(Compile-time Instruction Rewriting)의 효과를 분석했다. 초기 연구와 달리, FreeBSD에서 테스트한 결과, 바이너리 크기 증가(Binary Size Increase)와 성능 저하(Performance Degradation)가 발생했다. 특히, 대체 레지스터 선택은 바이너리 크기를 유의미하게 증가시키는 것으로 나타났다.
기술적 한계와 상호 작용
두 가지 기술을 함께 사용했을 때, 개별 기술의 효과를 단순히 합산하는 것이 아니라 상호 작용(Interplay)으로 인해 오히려 성능이 저하되는 현상이 발견되었다. 예를 들어, 컴파일 타임 명령어 재작성만 사용했을 때보다 두 기술을 모두 사용했을 때 유니크 갯딧(Unique Gadget) 감소 효과가 줄어들고 바이너리 크기는 더 크게 증가했다. 이는 기술 간의 복잡한 상호 작용과 최적화(Optimization)의 어려움을 시사한다.
ROP 공격 완화 기술의 실효성 논쟁
연구 결과는 ROP 공격 완화 기술의 실효성에 대한 의문을 제기하며, 유니크 갯딧 감소(Unique Gadget Reduction)가 반드시 보안 강화로 이어지지 않을 수 있음을 시사한다. 제거된 갯딧이 실제 공격에 사용될 수 없는 경우, 기술 적용은 오히려 바이너리 크기만 증가시키는 결과를 초래할 수 있다. 따라서, ROPgadget과 같은 도구로 갯딧 수를 줄이는 것보다, 실제 공격에 사용될 수 있는 갯딧을 제거하는 것이 중요하다는 점을 강조한다.
BSD 생태계 보안 연구의 필요성
연구자는 OpenBSD 개발자로서의 역할 변화를 고민하며, BSD 생태계 전반의 보안 기술에 대한 체계적인 검토(Systematic Review)의 필요성을 강조한다. 특히, OpenBSD의 보안 기술에 대한 독립적인 검증(Independent Verification) 부재를 지적하며, 다른 BSD 프로젝트의 보안 혁신에 대한 연구 필요성을 제기한다. 이는 BSD 생태계의 지속적인 발전을 위한 중요한 과제로 제시된다.