Skip to main content
QUICK REVIEW

[논문 리뷰] Neutaint: Efficient Dynamic Taint Analysis with Neural Networks

Dongdong She, Yizheng Chen|arXiv (Cornell University)|2019. 07. 08.
Advanced Malware Detection Techniques참고 문헌 50인용 수 8
한 줄 요약

Neutaint는 프로그램 트레이스에서 정보 흐름을 학습하는 엔드 투 엔드 신경망 기반 접근법을 제안한다. 신경 프로그램 임베딩과 샐런시 맵을 사용하여 높은 정확도와 낮은 런타임 오버헤드를 달성한다. 규칙 기반 전파를 미분 가능하고 기울기에 기반한 영향 분석으로 대체함으로써 가짜 양성(false positives)과 오버헤드를 감소시켜, 평균 68%의 정확도와 최상위 도구 대비 40배 낮은 런타임 오버헤드로 최신 기술을 능가한다.

ABSTRACT

Dynamic taint analysis (DTA) is widely used by various applications to track information flow during runtime execution. Existing DTA techniques use rule-based taint-propagation, which is neither accurate (i.e., high false positive) nor efficient (i.e., large runtime overhead). It is hard to specify taint rules for each operation while covering all corner cases correctly. Moreover, the overtaint and undertaint errors can accumulate during the propagation of taint information across multiple operations. Finally, rule-based propagation requires each operation to be inspected before applying the appropriate rules resulting in prohibitive performance overhead on large real-world applications. In this work, we propose NEUTAINT, a novel end-to-end approach to track information flow using neural program embeddings. The neural program embeddings model the target's programs computations taking place between taint sources and sinks, which automatically learns the information flow by observing a diverse set of execution traces. To perform lightweight and precise information flow analysis, we utilize saliency maps to reason about most influential sources for different sinks. NEUTAINT constructs two saliency maps, a popular machine learning approach to influence analysis, to summarize both coarse-grained and fine-grained information flow in the neural program embeddings. We compare NEUTAINT with 3 state-of-the-art dynamic taint analysis tools. The evaluation results show that NEUTAINT can achieve 68% accuracy, on average, which is 10% improvement while reducing 40 times runtime overhead over the second-best taint tool Libdft on 6 real world programs. NEUTAINT also achieves 61% more edge coverage when used for taint-guided fuzzing indicating the effectiveness of the identified influential bytes.

연구 동기 및 목표

  • 실세계 응용 프로그램에서 규칙 기반 동적 타인트 분석(DTA)의 높은 가짜 양성/음성 비율과 금기할 수 없는 런타임 오버헤드 문제를 해결하기 위해.
  • 복잡한 연산과 특수 케이스에 대해 수작업으로 타인트 규칙를 정의하는 데 어려움이 있으며, 실수를 유발할 수 있는 한계를 극복하기 위해.
  • 다양한 연산 간 개별 타인트 규칙를 조합함으로써 누적되는 오류를 제거하기 위해.
  • 기존 DTA 도구가 놓치는 암묵적 제어 의존성과 데이터 의존성이 없는 싱크(예: 외부 함수의 반환 값)를 탐지하기 위해.
  • 기계 학습을 활용해 효율적이고 확장 가능하며 정확한 엔드 투 엔드 정보 흐름 추적을 가능하게 하기 위해.

제안 방법

  • Neutaint는 경량 인스트루멘테이션을 통해 수집한 프로그램 트레이스를 기반으로 신경 프로그램 임베딩 모델을 훈련하여 타인트 소스에서 싱크로의 매핑을 학습한다.
  • 역전파와 기울기 분석을 사용하여 각 소스가 각 싱크에 미치는 영향을 정량화하는 샐런시 맵을 계산한다.
  • 거시적이고 미세한 영향 분석을 위한 두 종류의 샐런시 맵을 구성하여 소스-싱크 관계를 요약한다.
  • 모델은 실행 트레이스 간에 일반화되어 있어 런타임에 각 연산을 다시 분석하지 않고도 정확한 추론이 가능하다.
  • 샐런시 맵은 타인트 기반 퍼지잉 및 취약점 탐지에 가장 영향을 미치는 입력 바이트를 식별하는 데 사용된다.
  • 데이터에서 직접 엔드 투 엔드 정보 흐름을 학습함으로써 규칙 기반 전파를 피함으로써 조합 오류를 최소화한다.

실험 결과

연구 질문

  • RQ1신경망 기반 접근법이 프로그램 실행 트레이스에서 정확하고 일반화 가능한 정보 흐름 패턴을 학습할 수 있는가?
  • RQ2기울기에 기반한 샐런시 맵이 데이터 및 제어 의존성에 모두 영향을 미치는 타인트 소스를 효과적으로 식별할 수 있는가?
  • RQ3Neutaint는 정확도를 유지하거나 향상시키면서도 규칙 기반 DTA 도구에 비해 런타임 오버헤드를 줄일 수 있는가?
  • RQ4Neutaint는 기존 도구가 놓치는 암묵적 제어 의존성을 포함한 취약점을 탐지할 수 있는가?
  • RQ5Neutaint는 최신 기술의 DTA 도구에 비해 타인트 기반 퍼지잉에서 얼마나 효과적인가?

주요 결과

  • Neutaint는 평균 정확도 68%를 달성하여 두 번째로 우수한 도구인 Libdft보다 10% 향상되었다.
  • Libdft(다음으로 우수한 도구)에 비해 런타임 오버헤드를 40배 감소시켰으며, 높은 정확도를 유지했다.
  • Neutaint는 모든 정보 흐름의 98.7%를 탐지하여 평가된 타인트 분석 도구 중에서 가장 높은 비율을 기록했다.
  • 타인트 기반 퍼지잉에서 Neutaint는 최신 기술 도구보다 61% 더 높은 엣지 커버리지를 달성하여 영향을 미치는 입력을 우수하게 식별함을 시사한다.
  • Neutaint는 버퍼 오버플로우, 힙 오버플로우, 정수 오버플로우, 0으로 나누기 오류 등 다양한 취약점을 성공적으로 탐지했다.
  • 기존 DTA 도구가 데이터 의존성이 없어 실패하는 바이러스 분석 로직 등에서 암묵적 제어 의존성을 효과적으로 포착했다.

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

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

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

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