Skip to main content
QUICK REVIEW

[논문 리뷰] SkipFuzz: Active Learning-based Input Selection for Fuzzing Deep Learning Libraries

Hong Jin Kang, Pattarakrit Rattanukul|arXiv (Cornell University)|2022. 12. 08.
Adversarial Robustness in Machine Learning인용 수 4
한 줄 요약

SkipFuzz는 문서나 시드 입력에 의존하지 않고 활성 학습을 사용하여 딥러닝 라이브러리의 입력 제약 조건을 추론하는 새로운 패러다임의 패치 퍼징 기법이다. 테스트 실행자와의 상호작용을 통해 입력을 쿼리함으로써 의미적으로 유효하고 중복되지 않는 입력을 생성하며, 이는 버그 발견 능력을 크게 향상시킨다—총 43건의 버그를 보고했고, 그 중 28건이 확인되었으며, 13건의 고유한 CVE가 할당되었다.

ABSTRACT

Many modern software systems are enabled by deep learning libraries such as TensorFlow and PyTorch. As deep learning is now prevalent, the security of deep learning libraries is a key concern. Fuzzing deep learning libraries presents two challenges. Firstly, to reach the functionality of the libraries, fuzzers have to use inputs from the valid input domain of each API function, which may be unknown. Secondly, many inputs are redundant. Randomly sampled invalid inputs are likely not to trigger new behaviors. While existing approaches partially address the first challenge, they overlook the second challenge. We propose SkipFuzz, an approach for fuzzing deep learning libraries. To generate valid inputs, SkipFuzz learns the input constraints of each API function using active learning. By using information gained during fuzzing, SkipFuzz infers a model of the input constraints, and, thus, generate valid inputs. SkipFuzz comprises an active learner which queries a test executor to obtain feedback for inference. After constructing hypotheses, the active learner poses queries and refines the hypotheses using the feedback from the test executor, which indicates if the library accepts or rejects an input, i.e., if it satisfies the input constraints or not. Inputs from different categories are used to invoke the library to check if a set of inputs satisfies a function's input constraints. Inputs in one category are distinguished from other categories by possible input constraints they would satisfy, e.g. they are tensors of a certain shape. As such, SkipFuzz is able to refine its hypothesis by eliminating possible candidates of the input constraints. This active learning-based approach addresses the challenge of redundant inputs. Using SkipFuzz, we have found and reported 43 crashes. 28 of them have been confirmed, with 13 unique CVEs assigned.

연구 동기 및 목표

  • 입력 제약 조건이 알려져 있지 않은 상황에서 딥러닝 라이브러리의 의미적으로 유효한 입력을 생성하는 데 도전하는 것.
  • 기존 결과를 반복하는 대신 새로운 행동을 유도하는 입력을 선택하여 패치 퍼징 중 중복을 줄이는 것.
  • API 문서나 수동으로 수집된 시드 입력에 의존하지 않고 입력 제약 조건을 추론하는 것.
  • TensorFlow 및 PyTorch와 같은 딥러닝 라이브러리에서 제약 조건 인식 기반의 표적 퍼징을 통해 버그 발견 능력을 향상시키는 것.
  • 퍼징 도중 실시간으로 입력 제약 조건을 학습할 수 있는 확장 가능하고 동적인 접근법을 개발하는 것.

제안 방법

  • SkipFuzz는 활성 학습을 활용하여 테스트 실행자(즉, 오라클 기능을 수행하는)를 통해 API 함수의 입력 제약 조건을 반복적으로 추론한다.
  • 활성 학습자는 입력 제약 조건(예: 텐서의 형태 또는 유형 등)에 따라 분류된 입력 쿼리를 구성하여 유효성을 테스트한다.
  • 테스트 실행자로부터의 피드백—입력이 수락되었는지 또는 거부되었는지—는 진짜 입력 제약 조건에 대한 가설을 정교화하는 데 사용된다.
  • 입력은 새로운 정보를 제공할 잠재력이 높은 것을 기반으로 선택되어 중복을 최소화하고 행동의 다양성을 극대화한다.
  • 시스템은 가설을 검증하고 입력 제약 조건 모델을 퍼징 도중에 정교화하기 위해 동적으로 테스트 케이스를 구성하고 실행한다.
  • 랜덤 변형이나 시드 기반 생성을 피하고, 대신 제약 조건 기반, 정보 최대화를 목표로 하는 입력에 집중한다.

실험 결과

연구 질문

  • RQ1문서에 의존하지 않고 딥러닝 라이브러리 API의 입력 제약 조건을 효과적으로 추론하는 데 활성 학습이 활용될 수 있는가?
  • RQ2제약 조건 추론이 패치 퍼징 중 입력의 중복을 줄이고 새로운 행동을 발견하는 데 기여할 수 있는가?
  • RQ3제약 조건 인식 기반의 입력 선택이 랜덤 또는 변형 기반 패치 퍼징보다 더 높은 버그 재현률을 보일 수 있는가?
  • RQ4SkipFuzz는 널리 사용되는 딥러닝 라이브러리에서 이전에 알려지지 않은 취약점을 발견할 수 있는가?
  • RQ5SkipFuzz는 DocTer 및 FreeFuzz와 같은 기존 방법과 비교해 버그 발견 능력과 CVE 보고 측면에서 어떤 성능을 보이는가?

주요 결과

  • SkipFuzz는 딥러닝 라이브러리에서 총 43건의 버그를 발견하고 보고했으며, 그 중 28건이 유지보수자에 의해 확인되었다.
  • 확인된 취약성 중 13건의 고유한 CVE가 할당되어, 이전에 알려지지 않은 심각한 보안 결함을 발견했다는 것을 입증한다.
  • 이전의 방법보다 더 나은 성능을 보였으며, 제약 조건 인식 기반의 입력 선택을 통해 중복을 줄임으로써 충돌 유발 입력 생성 능력에서 뛰어난 성과를 거두었다.
  • SkipFuzz는 API 문서나 사전에 준비된 시드 입력이 없이도 입력 제약 조건을 성공적으로 추론했으며, 실제 라이브러리 패치 퍼징에 효과적임을 입증했다.
  • 활성 학습 메커니즘이 효율적인 가설 정교화를 가능하게 했으며, 입력 제약 조건에 대한 정보 수득을 극대화하도록 설계된 쿼리가 사용되었다.
  • 이 도구는 확장성과 실용성을 입증했으며, 재현 및 확장이 가능한 소스 코드를 공개하고 있다.

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

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

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

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