서지주요정보
Typed virtual table for mitigating virtual table hijacking = 가상 함수 하이재킹 공격 완화 기법에 대한 연구
서명 / 저자 Typed virtual table for mitigating virtual table hijacking = 가상 함수 하이재킹 공격 완화 기법에 대한 연구 / Jeongoh Kyea.
저자명 Kyea, Jeongoh ; 계정오
발행사항 [대전 : 한국과학기술원, 2018].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8032166

소장위치/청구기호

학술문화관(도서관)2층 패컬티라운지(학위논문)

MIS 18001

SMS전송 소장위치

도서상태

이용가능

대출가능

반납예정일

초록정보

Object-Oriented Programming is essential for the developing the large size program. Object-Oriented Programming has a characteristic, Polymorphism, which is that the called function depends on the type of object. In the C++, there is the reserved word virtual for supporting polymorphism. Because the called function at the virtual function callsite can differ dynamically, the callsite is compiled as an indirect call. Therefore, if attackers change the virtual table pointer in an object, they can hijack the control flow. It is called as virtual table hijacking attack. In this paper, we suggest the new mitigation technique, TVT. TVT saves the type of the object in the constructor and checks that the type is changed at the callsites. We apply TVT to the firefox browser and tiny vulnerable program, and TVT can prevent all known test exploits. It shows reasonable overhead that is up to 48% for the SPEC2017 benchmark and average 20% for the firefox browser. Because the web page loading overhead is about 10%, which is less than network latency, TVT can apply to browsers.

객체 지향 프로그래밍은 큰 규모의 개발을 위해서 사용되는 개발 방식이다. 객체 지향 프로그램에서는 다형성이라는 개념을 사용하는데, 이는 같은 함수가 불리더라도 각 객체의 타입에 따라서 적절한 함수가 호출될 수 있게 하는 방법이다. C++에서는 이를 위해서 virtual이라는 예약어를 사용하고 있다. 하지만 이러한 방식의 함수 호출은 프로그램의 흐름에 따라 동적으로 변하기 때문에 일반적으로 간접 호출방식을 통해서 이루어 진다. 간접 호출시에 가상함수테이블이라고 불리는 함수 테이블을 참조하게 되는데, 공격자는 이를 다른 테이블로 변조하는 방식으로 프로그램의 흐름을 바꿀 수 있다. 이러한 공격을 가상함수 하이재킹 공격이라고 한다. 본 논문에서는 이러한 가상함수 공격을 막기위한 새로운 방식인 TVT를 제시한다. TVT는 각 메모리에 대한 타입을 저장하고 이를 함수 호출시에 확인함으로써 객체의 가상함수 포인터가 변조되었는지를 체크한다. 우리는 TVT를 firefox 브라우저와 취약한 바이너리에 적용하였으며, 테스트한 모든 공격을 막을 수 있었다. 또한 SPEC2017 벤치마크에 대해서 최대 48%, firefox 브라우저에 대해서 평균 20% 정도로 적절한 오버헤드를 나타내었다. 브라우져의 페이지 로딩 속도의 경우는 평균 10% 정도의 오버헤드를 보였으며, 이는 네트워크에서 발생하는 오버헤드보다 작은 값이어서 충분히 브라우저에 적용 가능함을 확인 하였다.

서지기타정보

서지기타정보
청구기호 {MIS 18001
형태사항 v, 30 p. : 삽도 ; 30 cm
언어 영어
일반주기 저자명의 한글표기 : 계정오
지도교수의 영문표기 : Yongdae Kim
지도교수의 한글표기 : 김용대
학위논문 학위논문(석사) - 한국과학기술원 : 정보보호대학원,
서지주기 References : p. 27-28
주제 C++
가상함수
가상함수 하이재킹
시스템 보안
취약점
완화
C++
Virtual Function
Virtual Function Hijacking
System Security
Vulnerability
Mitigation
QR CODE qr code