$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

[국내논문] CFI(Control Flow Integrity) 적용을 통한 GOT(Global Offset Table) 변조 공격 방지 방안 연구
CFI Approach to Defend against GOT Overwrite Attacks 원문보기

Journal of Internet Computing and Services = 인터넷정보학회논문지, v.21 no.1, 2020년, pp.179 - 190  

정승훈 (Department of Computer Engineering, Sejong University) ,  황재준 (Hanhwa Systems) ,  권혁진 (Ministry of National Defense) ,  신동규 (Department of Computer Engineering, Sejong University)

초록
AI-Helper 아이콘AI-Helper

유닉스 계열 시스템 환경에서 GOT 변조(GOT overwrite) 공격은 소프트웨어 권한 탈취를 위한 전통적인 제어흐름 탈취 기법 중 하나이다. 그 동안 GOT 변조를 방어하기 위한 몇 가지 기법들이 제안되었는데, 그 중 프로그램 로딩 단계에서 GOT 영역을 읽기전용 속성으로 메모리 배치하여 실행 시간에 GOT 변조를 원천적으로 차단하는 Full Relro(Relocation Read only) 기법이 가장 효과적인 방어기법으로 알려져 왔다. 하지만, Full Relro 기법은 로딩 시간의 지연을 가져와 시작 성능에 민감한 프로그램의 적용에는 제약이 있고, 라이브러리에 적용시 의존 라이브러리에 의한 연쇄적인 로딩 지연 문제 등으로 라이브러리에는 현재 적용되지 않고 있다. 또한, LLVM을 포함한 다수의 컴파일러들은 Full Relro 기법을 기본 적용하지 않아 실행환경의 프로그램은 GOT 공격에 여전히 취약하다. 이 논문에서는 현재 코드 재사용 공격 방어를 위해 가장 적합한 기법으로 인식되고 있는 CFI(Control Flow Integrity) 기법을 사용한 GOT 보호 장치를 제안한다. LLVM을 기반으로 본 기법을 구현하고 binutils-gdb 프로그램 그룹에 적용해 보안성, 성능, 호환성 등을 평가하였다. 본 CFI 기반 GOT 보호 장치는 우회하기 어렵고, 빠르며 기존 라이브러리 프로그램과도 호환되어 적용가능성이 높다.

Abstract AI-Helper 아이콘AI-Helper

In the Unix-like system environment, the GOT overwrite attack is one of the traditional control flow hijacking techniques for exploiting software privileges. Several techniques have been proposed to defend against the GOT overwrite attack, and among them, the Full Relro(Relocation Read only) techniq...

Keyword

표/그림 (10)

질의응답

핵심어 질문 논문에서 추출한 답변
GOT 변조 공격이란? 유닉스 계열 시스템 환경에서 GOT 변조(GOT overwrite) 공격은 소프트웨어 권한 탈취를 위한 전통적인 제어흐름 탈취 기법 중 하나이다. 그 동안 GOT 변조를 방어하기 위한 몇 가지 기법들이 제안되었는데, 그 중 프로그램 로딩 단계에서 GOT 영역을 읽기전용 속성으로 메모리 배치하여 실행 시간에 GOT 변조를 원천적으로 차단하는 Full Relro(Relocation Read only) 기법이 가장 효과적인 방어기법으로 알려져 왔다.
가장 효과적인 GOT 변조를 방어하는 기법은? 유닉스 계열 시스템 환경에서 GOT 변조(GOT overwrite) 공격은 소프트웨어 권한 탈취를 위한 전통적인 제어흐름 탈취 기법 중 하나이다. 그 동안 GOT 변조를 방어하기 위한 몇 가지 기법들이 제안되었는데, 그 중 프로그램 로딩 단계에서 GOT 영역을 읽기전용 속성으로 메모리 배치하여 실행 시간에 GOT 변조를 원천적으로 차단하는 Full Relro(Relocation Read only) 기법이 가장 효과적인 방어기법으로 알려져 왔다. 하지만, Full Relro 기법은 로딩 시간의 지연을 가져와 시작 성능에 민감한 프로그램의 적용에는 제약이 있고, 라이브러리에 적용시 의존 라이브러리에 의한 연쇄적인 로딩 지연 문제 등으로 라이브러리에는 현재 적용되지 않고 있다.
Full Relro 기법이 갖는 시작 시간 지연이라는 성능 문제의 원인은? 하지만, Full Relro 기법은 시작 시간 지연이라는 성능 문제를 포함한다. 동적 바인딩은 의존 라이브러리 목록 검색, 라이브러리 함수명의 문자열 비교 등 시간 소요 작업을 필요로 한다 [3]. 다수의 라이브러리가 포함된 프로그램에서, 라이브러리 목록의 뒤에 배치된 라이브러리 함수에 대한 다량의 호출이 발생할 때 심볼 바인딩에 의한 로딩시간은 라이브러리 개수의 제곱에 비례해 느려질 수 있다 [4]. 라이브러리의 경우 일반적인 실행흐름에서 호출되지 않는 다량의 함수를 포함할 수 있고, 지연된 바인딩 없이는 의존 라이브러리에 의한 연쇄적인 로딩 지연 등의 문제가 발생할 수 있어 Full Relro 기법은 적용되지 않는다.
질의응답 정보가 도움이 되었나요?

참고문헌 (21)

  1. MITRE. CWE/SANS Top 25 Most Dangerous Software Errors. [Online]. http://cwe.mitre.org/top25/archive/2019/2019_cwe_top25.html 

  2. c0ntex. How to hijack the global offset table with pointers for root shells. [Online]. http://www.infosecwriters.com/text_resources/pdf/GOT_Hijack.pdf 

  3. M. Zhang and R. Sekar, "Squeezing the dynamic loader for fun and profit," 2015. [Online]. http://www.seclab.cs.stonybrook.edu/seclab/pubs/seclab15-12.pdf 

  4. P. Pluzhnikov. Dynamic linking with large number of dsos degrades into linear lookup. [Online]. https://sourceware.org/bugzilla/show_bug.cgi?id16709 

  5. C. Lattner and V. Adve, "LLVM: A compilation framework for lifelong program analysis & transformation," in Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization, IEEE Computer Society, p. 75, 2004. https://doi.org/10.1109/cgo.2004.1281665 

  6. H. Shacham et al., "The geometry of innocent flesh on the bone: returninto-libc without function calls (on the x86)," in ACM conference on Computer and communications security, New York? pp. 552-561, 2007. https://doi.org/10.1145/1315245.1315313 

  7. Microsoft. Control flow guard. [Online]. https://docs.microsoft.com/en-us/windows/win32/secbp/control-flow-guard 

  8. The Clang Team. Control flow integrity. [Online]. https://clang.llvm.org/docs/ControlFlowIntegrity.html 

  9. M. Zhang and R. Sekar, "Control Flow Integrity for COTS Binaries," in USENIX Security Symposium, 2013, pp. 337-352. Available: https://doi.org/10.1145/2818000.2818016 

  10. B. Niu and G. Tan, "Modular control-flow integrity," ACM SIGPLAN Notices, vol. 49, no. 6, pp. 577-587, 2014. Available: https://doi.org/10.1145/2666356.2594295 

  11. M. Abadi, M. Budiu, U. Erlingsson, and J. Ligatti, "Control-flow integrity," in Proceedings of the 12th ACM conference on Computer and communications security, ACM, pp. 340-353, 2005. https://doi.org/10.1145/1102120.1102165 

  12. N. Burow, S. A. Carr, J. Nash, P. Larsen, M. Franz, S. Brunthaler, and M. Payer, "Control-flow integrity: Precision, security, and performance," ACM Computing Surveys (CSUR), vol. 50, no. 1, p. 16, 2017. https://doi.org/10.1145/3054924 

  13. Microsoft Support. Data execution prevention (dep). [Online]. http://support.microsoft.com/kb/875352/EN-US/ 

  14. F. Kefallonitis, "Name mangling demystified," 2007. [Online]. http://www.int0x80.gr/papers/name_mangling.pdf 

  15. LLVM Project. Writing an LLVM Pass. [Online]. http://llvm.org/docs/WritingAnLLVMPass.html 

  16. LLVM Project. LLD - The LLVM Linker. [Online]. https://lld.llvm.org/ 

  17. LLVM Project. LLVM Link Time Optimization: Design and Implementation. [Online]. https://llvm.org/docs/LinkTimeOptimization.html 

  18. C. Rohlf. Cross dso cfi - llvm and android. [Online]. https://struct.github.io/cross_dso_cfi.html 

  19. LLVM Project. LLVM Language Reference Manual. [Online]. https://llvm.org/docs/LangRef.html 

  20. L. Presser and J. R. White, "Linkers and loaders," ACM Computing Surveys (CSUR), vol. 4, no. 3, pp. 149-167, 1972. https://doi.org/10.1145/356603.356605 

  21. Wikipedia, Address Space Layout Randomization. [Online]. https://en.wikipedia.org/wiki/Address_space_layout_randomization 

저자의 다른 논문 :

활용도 분석정보

상세보기
다운로드
내보내기

활용도 Top5 논문

해당 논문의 주제분야에서 활용도가 높은 상위 5개 콘텐츠를 보여줍니다.
더보기 버튼을 클릭하시면 더 많은 관련자료를 살펴볼 수 있습니다.

관련 콘텐츠

오픈액세스(OA) 유형

BRONZE

출판사/학술단체 등이 한시적으로 특별한 프로모션 또는 일정기간 경과 후 접근을 허용하여, 출판사/학술단체 등의 사이트에서 이용 가능한 논문

저작권 관리 안내
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로