E9patch를 활용한 동적 패치 도구 Dyne9patch의 설계 및 구현

The Design and Implementation of Dyne9patch: A Dynamic Patching Tool Utilizing E9patch

  • 백지훈 (울산과학기술원 컴퓨터공학과) ;
  • 문현곤 (울산과학기술원 컴퓨터공학과)
  • Jihun Baek (Dept. of Computer Science Engineering, UNIST) ;
  • Hyungon Moon (Dept. of Computer Science Engineering, UNIST)
  • 발행 : 2024.10.31

초록

동적 패치는 은행 시스템, 산업 제어 시스템 등 24시간 가동되는 프로그램에서 중요하며, 제어 흐름 정보를 최소화해 동적 패치의 효율성을 높일 수 있다. 논문에서는 제어 흐름 정보 없이 x86_64 바이너리를 재작성할 수 있는 도구인 E9patch를 기반으로, Dyne9patch라는 동적 패치 도구를 구현했다. 피보나치 수열을 출력하는 프로그램을 통해 Dyne9patch의 동적 패치 적용 가능성을 확인했으며, 후속 연구로는 자동화된 패치 적용 도구 개발을 제안하고 있다.

키워드

과제정보

본 연구는 과학기술정보통신부 및 정보통신기획평가원의 대학ICT연구센터사업의 연구결과로 수행되었음(IITP-2024-2021-0-01817)

참고문헌

  1. Duck, Gregory J., Xiang Gao, and Abhik Roychoudhury. "Binary rewriting without control flow recovery." Proceedings of the 41st ACMSIGPLAN conference on programming language design and implementation. 2020.
  2. Zhang, Yuntong, et al. "Program vulnerability repair via inductive inference." Proceedings of the31st ACM SIGSOFT International Symposium on Software Testing and Analysis. 2022.
  3. Wolff, Dylan, et al. "Greybox Fuzzing for Concurrency Testing." Proceedings of the 29thACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2. 2024.
  4. Di Bartolomeo, Luca, Hossein Moghaddas, and Mathias Payer. "{ARMore}: Pushing Love Back Into Binaries." 32nd USENIX Security Symposium(USENIX Security 23). 2023.
  5. Chamith, Buddhika, et al. "Instruction punning: Lightweight instrumentation for x86-64."Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation. 2017.