Skip to main content
QUICK REVIEW

[논문 리뷰] IvySyn: Automated Vulnerability Discovery in Deep Learning Frameworks

Neophytos Christou, Di Jin|arXiv (Cornell University)|2022. 09. 29.
Security and Verification in Computing인용 수 4
한 줄 요약

IvySyn은 고수준 API에서 저수준 메모리 위험한 커널 코드로 이르는 메모리 안전성 취약점을 탐지하기 위해 저수준 C/C++ 커널에서 유형 인식형 변형 기반 퍼징을 수행하고, 자동으로 고수준의 취약성 증명(PoV) 코드 스니펫을 파이썬으로 생성하는 완전 자동화된 프레임워크이다. 이 프레임워크는 텐서플로우와 파이토치에서 이전에 알려지지 않은 61개의 취약점을 발견하여 총 39개의 고유한 CVE를 이끌어냈다.

ABSTRACT

We present IvySyn, the first fully-automated framework for discovering memory error vulnerabilities in Deep Learning (DL) frameworks. IvySyn leverages the statically-typed nature of native APIs in order to automatically perform type-aware mutation-based fuzzing on low-level kernel code. Given a set of offending inputs that trigger memory safety (and runtime) errors in low-level, native DL (C/C++) code, IvySyn automatically synthesizes code snippets in high-level languages (e.g., in Python), which propagate error-triggering input via high(er)-level APIs. Such code snippets essentially act as "Proof of Vulnerability", as they demonstrate the existence of bugs in native code that an attacker can target through various high-level APIs. Our evaluation shows that IvySyn significantly outperforms past approaches, both in terms of efficiency and effectiveness, in finding vulnerabilities in popular DL frameworks. Specifically, we used IvySyn to test TensorFlow and PyTorch. Although still an early prototype, IvySyn has already helped the TensorFlow and PyTorch framework developers to identify and fix 61 previously-unknown security vulnerabilities, and assign 39 unique CVEs.

연구 동기 및 목표

  • 고수준 API에서 저수준 메모리 위험한 커널 코드로 이르는 메모리 안전성 취약점을 탐지하는 데 도전하는 데 초점한다.
  • 전문가의 주석 또는 맞춤형 드라이버 코드가 필요한 이전의 반자동화되거나 수동적인 접근 방식의 한계를 극복하는 데 목적이 있다.
  • 기본적으로 커널 코드에서 발생하는 충돌을 재현할 수 있는 고수준 코드 스니펫을 생성함으로써 완전 자동화된, 실행 가능한 취약점 공개를 가능하게 하는 데 목적이 있다.
  • 텐서플로우와 파이토치와 같은 널리 사용되는 딥러닝 프레임워크의 보안 수준을 향상시키기 위해, 악용 가능한 메모리 오류를 조기에 탐지할 수 있도록 하는 데 목적이 있다.

제안 방법

  • IvySyn은 정적 유형을 가진 네이티브 API에서 유도된 유형 인식 변형을 사용하여 저수준 C/C++ 커널 구현에서 변형 기반 퍼징을 수행한다.
  • 퍼징 중 런타임 및 메모리 안전성 오류를 분석함으로써 네이티브 커널에서 충돌 유발 입력을 식별한다.
  • 충돌을 유도하는 입력과 프레임워크별 API 매핑 정보를 활용하여, 이러한 입력을 고수준 API를 통해 전파하는 고수준 파이썬 코드 스니펫을 자동으로 합성한다.
  • 합성된 코드 스니펫은 취약성 증명(PoV)으로 기능하며, 공격자가 표준 사용자 인터페이스 API를 통해 네이티브 커널 버그를 유도할 수 있음을 보여준다.
  • 프레임워크의 API 스택과 직접 통합되어 기존의 유형 정보와 바인딩 구조를 활용함으로써 생성된 PoV의 의미론적 정확성을 보장한다.
  • 수동 주석, 드라이버 코드, 도메인 전문가의 입력 없이도 작동하여 취약점 탐지 파이프라인의 완전 자동화를 가능하게 한다.

실험 결과

연구 질문

  • RQ1수동 주석이나 개발자가 제공한 드라이버 코드 없이도 딥러닝 프레임워크에서 메모리 안전성 취약점을 자동으로 탐지할 수 있는가?
  • RQ2저수준 커널 코드에서 발생하는 충돌 유도 입력을 고수준 API로 효과적으로 매핑하여 실행 가능한 취약성 증명(PoV) 코드를 생성할 수 있는가?
  • RQ3기존의 고수준 API 퍼징 기법에 비해, 네이티브 커널에서 유형 인식 변형 기반 퍼징이 취약점 탐지에서 얼마나 뛰어난 성능을 보일 수 있는가?
  • RQ4완전 자동화된, 하부에서부터 시작하는 접근 방식이 텐서플로우와 파이토치와 같은 프로덕션 수준의 딥러닝 프레임워크에서 이전에 알려지지 않은 악용 가능한 메모리 오류를 탐지할 수 있는가?

주요 결과

  • IvySyn은 텐서플로우와 파이토치에서 이전에 알려지지 않은 61개의 보안 취약점을 발견하였으며, 모두 프레임워크 개발자들에 의해 확인되고 수정되었다.
  • 이 프레임워크는 39개의 고유한 CVE 할당을 이끌어내어, 악용 가능한 메모리 안전성 문제를 효과적으로 탐지할 수 있음을 입증하였다.
  • IvySyn은 효율성과 효과성 면에서 이전의 접근 방식을 뛰어넘었으며, 저수준 퍼저보다 더 많은 충돌 유도 입력을 발견했고, 고수준 API 퍼징보다 더 실행 가능한 PoV를 더 많이 생성하였다.
  • 프레임워크는 의미론적으로 정확하고 실행 가능한 파이썬 코드 스니펫을 성공적으로 생성하여 네이티브 커널 코드에서의 충돌을 재현하였으며, 유효한 취약성 증명으로 기능하였다.
  • 이 접근 방식은 수동 주석이나 맞춤형 드라이버 코드가 전혀 필요로 하지 않아, 복잡한 다층 딥러닝 프레임워크에 대해 완전 자동화되고 확장 가능한 방식이었다.
  • IvySyn의 프로토타입 구현체는 기존에 GitLab에 공개되어 있으며, 이미 수백만 명의 사용자가 전 세계적으로 사용하는 딥러닝 프레임워크의 보안을 향상시켰다.

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

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

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

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