ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ROP] Abstract (KOR)
    Paper/KOR 2018. 7. 1. 20:28

    Andreas Follner - Dissertation - Final

    ON GENERATING GADGET CHAINS FOR RETURN-ORIENTED PROGRAMMING

    Abstract(초록)

    임베디드 기기들의 증가와 함께, low-level 프로그래밍 언어인 C, C++은 현재 새롭게 주목받고 있습니다. 그러나 이러한 언어들은 안전하지 못하므로 프로그래밍 오류가 발생하여 시스템의 무결성을 손상시킬 수 있습니다. 이러한 언어들로 작성된 많은 프로그램에는 이러한 프로그래밍 오류를 갖고있으며, 이러한 오류들 가운데 가장 악명 높은것은 버퍼 오버플로우(buffer overflow)입니다. 이를 해결하기 위해 대부분의 주요 운영 시스템의 보안 개념을 통합하는 착취를 방해하도록 설계된 광범위한 완화 기술이 있습니다. 그러나 가장 정교한 완화 방법 조차도 코드 재사용의 원칙에 기반한 현대적인 악용에 의해 우회 될 수 있습니다. 악의적인 행동을 유도하는 방식으로 기존 코드 조각(가젯이라고 함)을 함께 결합하거나 연결합니다. 이 기술은 현재 현대적인 exploits의 초석입니다.

    이 논문에서는 코드 재사용 공격을 완화하기 위한 접근 방식인 ROPocop을 제시합니다. ROPocop은 프로그램 실행을 모니터링 하고 의심스러운 동작을 감지하면 경보를 발생시키는 heuristic(체험적인?) 기반 탐지기입니다. 코드 간 재사용 공격이 일반적인 프로그램 동작과 크게 다른 두 가지 특징인 간접 분기 빈도와 기본 블록 길이를 모니터링 합니다. 그러나 모든 완화 조치와 마찬가지로 ROPocop에는 약점이 있으며 알 수 없는 공격자가 이 공격 방식 및 다른 유사한 방식을 자동으로 우회할 수 있음을 보여줍니다. 이를 위해 우리는 코드 재사용 기법의 구축을 지원하는 비 실질적인 크로스 프랫폼 프레인 워크인 PSHAPE를 제시합니다. 이는 두 가지 특징을 제공합니다. 즉, 가젯에 대한 간결한 의미 요약을 작성합니다. 이를 통해 개발자는 개별 조립 지침을 통하는 것보다 훨씬 빠르게 가젯 유틸리티를 평가할 수 있습니다. (It offers two distinguishing features, namely it creates concise semantic summaries for gadgets, which allow exploit developers to assess the utility of a gadget much quicker than by going through the individual assembly instructions.) 둘째, PSHAPE는 자동으로 가젯을 구성하여 사용자가 제공한 매개 변수로 임의의 함수를 호출할 수 있는 일련의 가젯을 구성합니다. mprotext와 같은 함수를 호출하면 나중의 착취 단계가 간단해지므로 실제로 함수를 호출하는 것은 동시 공격의 가장 일반적인 목표입니다.

    완화가 실행 가능하려면 실제 공격을 안정적으로 탐지해야하며 오탐을 방지하고 보호 된 응용 프로그램을 계속 실행할 수 있도록 보장해야합니다. ROPocop은 응용 프로그램의 샘플들을 샘플링하여 오탐없이 12개의 실제 공격을 모두 탐지하고 중지합니다. ROPocop과 함께 실행될때 실제 프로그램을 시작시 약간의 입력 지연만 표사하지만 그렇지 않은 경우에는 응답을 유지합니다. 그러나 PSHAPE를 사용하여 ROPocop 그 자체와 같은 다양한 완화 조치를 우회하는 exploit을 완전히 자동으로 만드는 방법을 보여줍니다. 우리는 PSHAPE가 쉽게 발견 할 수 있는 가젯을 보여주고 실제 공격에 큰 관련성이 있으며 이전에는 심한 수동 검색을 필요로 했던 가젯을 보여줍니다. 가젯 체인을 크게 단순화 한 새롭고 유용한 가젯 유형을 발견했습니다.

    반응형
Designed by Tistory.