Skip to main content
QUICK REVIEW

[논문 리뷰] DeepCheck: A Non-intrusive Control-flow Integrity Checking based on Deep Learning

Jiliang Zhang, Wuqiao Chen|arXiv (Cornell University)|2019. 05. 06.
Security and Verification in Computing참고 문헌 39인용 수 12
한 줄 요약

DeepCheck는 빌드 또는 인스트럭션 세트 아키텍처(ISA) 수정 없이, 딥 뉴럴 네트워크(DNN)를 훈련시키기 위해 프로그램의 제어 흐름 그래프(CFG)를 체인으로 분할하는 비침습적인 딥러닝 기반 제어 흐름 정합성(CFI) 메커니즘을 제안한다. 이는 코드 재사용 공격(CRAs)을 실시간으로 감지할 수 있으며 런타임 오버헤드가 없도록 한다. 98.9% 평균 감지 정확도와 64개의 ROP 악성코드에 대해 100% 성공률을 기록하며, 기존의 전통적 CFI 방법보다 호환성과 효율성 면에서 뛰어나다.

ABSTRACT

Code reuse attack (CRA) is a powerful attack that reuses existing codes to hijack the program control flow. Control flow integrity (CFI) is one of the most popular mechanisms to prevent against CRAs. However, current CFI techniques are difficult to be deployed in real applications due to suffering several issues such as modifying binaries or compiler, extending instruction set architectures (ISA) and incurring unacceptable runtime overhead. To address these issues, we propose the first deep learning-based CFI technique, named DeepCheck, where the control flow graph (CFG) is split into chains for deep neural network (DNN) training. Then the integrity features of CFG can be learned by DNN to detect abnormal control flows. DeepCheck does not interrupt the application and hence incurs zero runtime overhead. Experimental results on Adobe Flash Player, Nginx, Proftpd and Firefox show that the average detection accuracy of DeepCheck is as high as 98.9%. In addition, 64 ROP exploits created by ROPGadget and Ropper are used to further test the effectiveness, which shows that the detection success rate reaches 100%.

연구 동기 및 목표

  • 기존 CFI 기법의 한계, 즉 컴파일러나 ISA 수정이 필요하고 높은 런타임 오버헤드를 유발하는 문제를 해결하기 위해.
  • 기존 바이너리 및 시스템과 호환되는 실용적이고 비침습적인 CFI 솔루션을 개발하기 위해.
  • 딥러닝을 활용해 높은 정확도와 낮은 거짓 경고/거짓 부정 비율로 비정상적인 제어 흐름을 탐지하기 위해.
  • 코드 재사용 공격(CRAs), 특히 ROP 및 JOP를 실시간으로 오버헤드 없이 감지할 수 있도록 하기 위해.
  • 바이너리나 컴파일러 수정 없이도 상용 소프트웨어에 확장 가능하고 구현 가능한 방어 메커니즘을 제공하기 위해.

제안 방법

  • 제어 흐름 그래프(CFG)가 DNN 훈련을 위해 순차적인 제어 흐름 간선 체인으로 분해된다.
  • 딥 뉴럴 네트워크(DNN)가 이러한 CFG 체인에서 정상 제어 흐름의 정합성 특징을 학습한다.
  • 런타임 동안 브랜치 정보를 실시간으로 수집하여 사전에 훈련된 DNN에 입력해 이상 탐지한다.
  • 지문 포인터 추적(IPT)을 사용해 바이너리나 ISA를 수정하지 않고도 세밀한 CFG를 추출한다.
  • 정상 대비 악성 제어 흐름 전이를 구분하기 위해 정상 CFG 패턴에서 DNN 모델을 훈련시킨다.
  • 런타임 인스트루멘테이션이나 바이너리 재작성 없이 구현되어 성능 오버헤드가 없도록 한다.

실험 결과

연구 질문

  • RQ1바이너리, 컴파일러, ISA 수정 없이 딥러닝 모델이 코드 재사용 공격을 탐지할 수 있는가?
  • RQ2비침습적이고 런타임 오버헤드가 없는 CFI 메커니즘이 다양한 CRAs에 대해 높은 감지 정확도를 달성할 수 있는가?
  • RQ3실시간으로 비정상적인 제어 흐름 전이를 식별하는 데 DNN 기반 접근법이 얼마나 효과적인가?
  • RQ4실제 ROP 악성코드에 대해 모델의 감지 성능은 어떠한가?
  • RQ5다양한 응용 프로그램 간에 일반화 성능을 유지하면서 낮은 거짓 경고 및 거짓 부정 비율을 유도할 수 있는가?

주요 결과

  • DeepCheck는 Adobe Flash Player, Nginx, Proftpd, Firefox 등 네 종류의 상용 응용 프로그램에서 평균 감지 정확도 98.9%를 달성했다.
  • 거짓 경고 비율은 0.15%, 거짓 부정 비율은 0.60%로 높은 정밀도와 재현율을 보였다.
  • ROPGadget와 Ropper로 생성된 64개의 ROP 악성코드가 모두 성공적으로 탐지되어 100% 감지 성공률를 기록했다.
  • 바이너리, 컴파일러, 하드웨어 확장 기능 수정 없이 런타임 오버헤드가 전혀 없었다.
  • 기존 소프트웨어 스택과 호환되며 응용 프로그램 수준의 변경 없이 배포가 가능했다.
  • 세밀한 CFG 추출을 위한 IPT의 사용은 정상 제어 흐름 경로의 정확한 모델링을 가능하게 했다.

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

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

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

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