Skip to main content
QUICK REVIEW

[논문 리뷰] Event-Flow Graphs for Efficient Path-Sensitive Analyses

Ahmed Tamrawi, Suresh Kothari|arXiv (Cornell University)|2014. 04. 04.
Software Testing and Debugging Techniques참고 문헌 22인용 수 3
한 줄 요약

이 논문은 제어 흐름 그래프(CFG)의 압축된 선형 시간 유도체인 이벤트 플로우 그래프(EFG)를 소개한다. EFG는 공유되는 이벤트 트레이스—관련 이벤트와 분기 노드의 순서—기반으로 경로를 동치 클래스로 그룹화한다. 이벤트 트레이스와 관련 분기 노드에만 집중함으로써 EFG는 경로 폭발을 최대 99%까지 줄이고 타당성 검사를 단순화하여 인간이 이해할 수 있고 최소한의 그래프로 구성된 효율적이고 정확한 경로 민감 분석을 가능하게 한다.

ABSTRACT

Efficient and accurate path-sensitive analyses pose the challenges of: (a) analyzing an exponentially-increasing number of paths in a control-flow graph (CFG), and (b) checking feasibility of paths in a CFG. We address these challenges by introducing an equivalence relation on the CFG paths to partition them into equivalence classes. It is then sufficient to perform analysis on these equivalence classes rather than on the individual paths in a CFG. This technique has two major advantages: (a) although the number of paths in a CFG can be exponentially large, the essential information to be analyzed is captured by a small number of equivalence classes, and (b) checking path feasibility becomes simpler. The key challenge is how to efficiently compute equivalence classes of paths in a CFG without examining each path in the CFG? In this paper, we present a linear-time algorithm to form equivalence classes without the need for examination of each path in a CFG. The key to this algorithm is construction of an event-flow graph (EFG), a compact derivative of the CFG, in which each path represents an equivalence class of paths in the corresponding CFG. EFGs are defined with respect to the set of events that are in turn defined by the analyzed property. The equivalence classes are thus guaranteed to preserve all the event traces in the original CFG. We present an empirical evaluation of the Linux kernel (v3.12). The EFGs in our evaluation are defined with respect to events of the spin safe-synchronization property. Evaluation results show that there are many fewer EFG-based equivalence classes compared to the corresponding number of paths in a CFG. This reduction is close to 99% for CFGs with a large number of paths. Moreover, our controlled experiment results show that EFGs are human comprehensible and compact compared to their corresponding CFGs.

연구 동기 및 목표

  • 제어 흐름 그래프(CFG)의 경로 수가 기하급수적으로 증가하는 문제를 해결함으로써, 경로 민감 정적 분석의 주요 성능 저하 요인을 해결한다.
  • 기하급수적인 경로 폭발으로 인해 모든 CFG 경로의 타당성 검사를 수행하는 것이 계산적으로 불가능한 문제를 해결한다.
  • CFG 내 모든 개별 경로를 분석하는 대신 대표 경로(동치 클래스)만을 분석하는 방법을 개발한다.
  • 모든 관련 이벤트 트레이스와 타당성 조건을 유지함으로써 분석의 타당성과 완전성을 확보한다.
  • 확장 가능하고 인간이 이해할 수 있으며 효율적으로 계산 가능한 그래프 구조(EFG)를 만들어 스핀 락 안전성과 같은 소프트웨어 성질의 검증을 가능하게 한다.

제안 방법

  • CFG 경로 상의 이벤트와 관련 분기 노드의 순서로 구성된 이벤트 트레이스를 정의하고, 동일한 이벤트 트레이스를 가진 경로들을 동치 클래스로 묶는다.
  • 이벤트 플로우 그래프(EFG)를 정의하여, 각 동치 클래스에 하나의 경로를 포함하는 CFG의 파생 구조로 삼으며, EFG 경로와 동치 클래스 사이에 일대일 대응 관계를 설정한다.
  • 4단계 알고리즘을 사용해 선형 시간 내에 EFG를 구성한다: (1) 관련 및 비관련 분기 노드 식별, (2) 비관련 분기 제거, (3) 그래프 압축, (4) T-기저가 아니고, 순환하지 않으며 최소화된 EFG를 생성하기 위한 변환 적용.
  • 이벤트 트레이스나 타당성에 영향을 주지 않는 분기 노드—같은 이벤트 또는 종단 노드로 향하는 분기—를 비관련 분기 노드로 정의한다.
  • 비관련 분기 노드는 동치 클래스의 타당성에 영향을 주지 않기 때문에, 경로 타당성은 관련 분기 노드만으로도 검증 가능하다는 것을 증명한다.
  • 그래프 이론적 성질(예: 경계 노드, 후행자 집합)을 활용해 EFG가 이벤트 트레이스와 타당성을 유지함을 공식적으로 입증함으로써 분석의 타당성과 완전성을 보장한다.

실험 결과

연구 질문

  • RQ1기하급수적인 경로 수를 다루기 어려운 수준에서 동치 클래스의 수로 줄임으로써 경로 민감 분석의 확장 가능성을 높일 수 있는가?
  • RQ2선형 시간 내에 구성 가능한 압축된, 인간이 이해할 수 있는 그래프 구조를 만들 수 있는가? 이는 CFG에서 필요한 모든 이벤트 트레이스와 타당성 정보를 유지한다.
  • RQ3관련 분기 노드와 이벤트 트레이스에만 집중함으로써 스핀 락 안전성과 같은 성질 검증에 대해 타당성과 완전성이 유지되는가?
  • RQ4실제 시스템에서 EFG는 원본 CFG에 비해 경로 수와 분기 노드 수를 얼마나 줄일 수 있는가?
  • RQ5EFG는 수작업 검증 시간을 단축하고 실제 버그를 탐지할 수 있도록 정적 분석의 실용성을 향상시킬 수 있는가?

주요 결과

  • Linux 커널 v3.12 평가에서 EFG는 경로 수가 기하급수적으로 증가하는 CFG에서 최대 99%까지 경로 수를 줄였다.
  • EFG에서는 비관련 분기 노드가 제거되어 원본 CFG 대비 분기 노드 수가 극적으로 감소하였다.
  • EFG 구축 알고리즘이 선형 시간 내에 수행되어 경로 민감 분석을 위한 압축된 대표 그래프를 효율적으로 생성할 수 있다.
  • EFG는 인간이 이해할 수 있으며 원본 CFG보다 훨씬 더 압축되어 있어 수작업 검증 시간과 노력이 크게 감소하였다.
  • EFG를 사용한 통제 실험에서 리눅스 커널에서 이전에 발견되지 않은 버그를 탐지하였으며, 커뮤니티에서 이를 수용함으로써 이 방법의 실용적 효과를 검증하였다.
  • 비관련 분기 노드는 경로 타당성에 영향을 주지 않기 때문에, 타당성 검사는 관련 분기 노드만으로 제한할 수 있으며, 이는 분석 과정을 단순화시킨다.

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

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

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

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