Skip to main content
QUICK REVIEW

[논문 리뷰] Is Less Really More? Why Reducing Code Reuse Gadget Counts via Software Debloating Doesn't Necessarily Lead to Better Security.

Michael Brown, Santosh Pande|arXiv (Cornell University)|2019. 02. 28.
Security and Verification in Computing참고 문헌 24인용 수 1
한 줄 요약

이 논문은 소프트웨어 디블로딩을 통해 코드 재사용 게젯 수를 줄임으로써 보안이 향상된다는 가정을 도전하며, 높은 게젯 수 감소가 악용 생성을 막지 못하고 오히려 더 위험한 게젯을 도입할 수 있음을 입증한다. 이에 따라 실제 보안 향상도를 더 잘 평가하기 위해 정적 바이너리 분석 도구인 게젯 세트 분석기(Gadget Set Analyzer)를 통해 측정할 수 있는 네 가지 품질 중심 지표—악용 가능성(exploitability), 게젯 유틸리티(gadget utility), 게젯 다양성(gadget diversity), 악용 가능성 여부(exploit feasibility)—를 제안한다.

ABSTRACT

Nearly all modern software suffers from bloat that negatively impacts its performance and security. To combat this problem, several automated techniques have been proposed to debloat software. A key metric used in many of these works to demonstrate improved security is code reuse gadget count reduction. The use of this metric is based on the prevailing idea that reducing the number of gadgets available in a software package reduces its attack surface and makes mounting a gadget-based code reuse exploit such as return-oriented programming (ROP) more difficult for an attacker. In this paper, we challenge this idea and show through a variety of realistic debloating scenarios the flaws inherent to the gadget count reduction metric. Specifically, we demonstrate that software debloating can achieve high gadget count reduction rates, yet fail to limit an attacker's ability to construct an exploit. Worse yet, in some scenarios high gadget count reduction rates conceal instances in which software debloating makes security worse by introducing new, useful gadgets. To address these issues, we propose a set of four new metrics for measuring security improvements realized through software debloating that are quality-oriented rather than quantity-oriented. We show that these metrics can identify when debloating negatively impacts security and be efficiently calculated using our static binary analysis tool, the Gadget Set Analyzer. Finally, we demonstrate the utility of these metrics in two realistic case studies: iterative debloating and debloater evaluation.

연구 동기 및 목표

  • 소프트웨어 디블로딩에서 게젯 수 감소가 보안을 향상시킨다는 널리 퍼진 믿음을 도전하기 위해.
  • 게젯 수 감소를 악용 저항력 향상의 대체 지표로 사용할 경우의 결함을 밝혀내기 위해.
  • 디블로딩으로 인한 실제 보안 향상도를 더 잘 반영하는 품질 중심의 지표 세트를 제안하기 위해.
  • 이러한 신규 지표를 효율적으로 계산할 수 있도록 정적 바이너리 분석 도구인 게젯 세트 분석기(Gadget Set Analyzer)를 개발하고 평가하기 위해.
  • 실제 디블로딩 시나리오, 특히 반복적 디블로딩과 디블로터 평가에서 새로운 지표의 실용적 유용성을 입증하기 위해.

제안 방법

  • 게젯의 수보다는 질을 평가하는 네 가지 새로운 지표—악용 가능성(exploitability), 게젯 유틸리티(gadget utility), 게젯 다양성(gadget diversity), 악용 가능성 여부(exploit feasibility)—를 제안한다.
  • 제안된 지표를 효율적으로 계산할 수 있도록 정적 바이너리 분석 도구인 게젯 세트 분석기(Gadget Set Analyzer)를 설계하고 구현한다.
  • 실제 디블로딩 시나리오에 지표를 적용하여, 디블로딩이 보안을 악화시킬 때 이를 탐지할 수 있는 능력을 평가한다.
  • 지표를 활용해 반복적 디블로딩 과정을 이끄는 데 사용하여, 게젯 수 감소만으로는 드러나지 않는 보안 향상의 위험을 피한다.
  • 기존의 게젯 수 감소 지표와 비교하여, 디블로딩 도구 및 기법 평가에서 새로운 지표의 성능을 평가한다.

실험 결과

연구 질문

  • RQ1소프트웨어 디블로딩에서 게젯 수 감소가 실제로 악용 저항력을 얼마나 향상시키는가?
  • RQ2높은 게젯 수 감소율이 악용자가 효과적인 코드 재사용 악용을 구성하는 능력을 제한하지 못하는 경우는 어떤가?
  • RQ3디블로딩이 총 게젯 수 감소에도 불구하고 새로운, 더 유용한 게젯을 도입하여 보안을 악화시킬 수 있는 방식은 무엇인가?
  • RQ4품질 중심 지표는 게젯 수 감소가 이루어진 상태에서도 디블로딩이 보안에 악영향을 미칠 때 이를 탐지할 수 있는가?
  • RQ5제안된 지표는 안전하고 효과적인 반복적 디블로딩 및 디블로터 평가를 이끄는 데 얼마나 효과적인가?

주요 결과

  • 남아 있는 게젯을 사용해도 악용자가 효과적인 ROP 체인을 구성할 수 있기 때문에, 높은 게젯 수 감소가 반드시 악용 가능성을 줄이지는 않는다.
  • 디블로딩은 총 게젯 수 감소에도 불구하고 더 유용한 새로운 게젯을 도입하여 악용 가능성을 증가시킬 수 있다.
  • 제안된 지표—악용 가능성(exploitability), 게젯 유틸리티(gadget utility), 게젯 다양성(gadget diversity), 악용 가능성 여부(exploit feasibility)—는 게젯 수 감소만으로는 드러나지 않는 디블로딩으로 인한 보안 악화를 탐지할 수 있다.
  • 게젯 세트 분석기(Gadget Set Analyzer)는 새로운 지표를 효율적으로 계산할 수 있어 실질적인 디블로딩 평가에 실용적이다.
  • 사례 연구에서 새로운 지표는 기존의 게젯 수 지표가 가리키지 못한 디블로딩의 보안 후퇴를 드러냈다.
  • 지표들은 비보안적인 감소를 식별하고 더 안전한 최적화 경로로 이끌 수 있어 반복적 디블로딩에서 더 나은 의사결정을 가능하게 한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.