Skip to main content
QUICK REVIEW

[논문 리뷰] jTrans: Jump-Aware Transformer for Binary Code Similarity

Hao Wang, Wenjie Qu|arXiv (Cornell University)|2022. 05. 25.
Software Engineering Research인용 수 7
한 줄 요약

jTrans는 제어 흐름 정보를 바이너리 코드 표현에 통합하기 위해 점프 인식 아키텍처를 도입한 새로운 Transformer 기반 모델로, 더 정확한 바이너리 코드 유사도 검출을 가능하게 한다. 새로 공개된 BinaryCorp 데이터셋에서 62.5%의 F1 스코어를 기록하며 이전 최고 성능(SOTA) 방법 대비 30.5% 높고, 실제 워런티지 검출에서 2배 높은 리콜을 보였다.

ABSTRACT

Binary code similarity detection (BCSD) has important applications in various fields such as vulnerability detection, software component analysis, and reverse engineering. Recent studies have shown that deep neural networks (DNNs) can comprehend instructions or control-flow graphs (CFG) of binary code and support BCSD. In this study, we propose a novel Transformer-based approach, namely jTrans, to learn representations of binary code. It is the first solution that embeds control flow information of binary code into Transformer-based language models, by using a novel jump-aware representation of the analyzed binaries and a newly-designed pre-training task. Additionally, we release to the community a newly-created large dataset of binaries, BinaryCorp, which is the most diverse to date. Evaluation results show that jTrans outperforms state-of-the-art (SOTA) approaches on this more challenging dataset by 30.5% (i.e., from 32.0% to 62.5%). In a real-world task of known vulnerability searching, jTrans achieves a recall that is 2X higher than existing SOTA baselines.

연구 동기 및 목표

  • 기존의 NLP 기반 모델이 바이너리 코드 내 제어 흐름 의미를 포착하는 데 한계가 있음을 해결한다.
  • 현재 바이너리 코드 유사도 솔루션에서 널리 사용되는 그래프 신경망(GNNs)과 수작업으로 만든 특징에 의존하는 문제를 해결한다.
  • 컴파일러 최적화 및 코드 변환에 대비해 바이너리 코드 유사도 검출의 강건성과 정확도를 향상시킨다.
  • BinaryCorp를 공개함으로써 향후 연구를 위한 확장 가능하고 고품질의 벤치마크를 제공한다. 이는 지금까지 가장 크고 다양한 바이너리 데이터셋이다.
  • 대규모 풀 내에서 기능 간 상호관계를 포괄하는 통합 모델 아키텍처를 통해 두 바이너리 함수를 직접 비교할 수 있도록 한다.

제안 방법

  • 바이너리 함수 내 제어 흐름 점프(예: 조건부/비조건부 브랜치)를 명시적으로 모델링하는 점프 인식 표현을 도입한다.
  • 점프 인식 위치 인코딩을 활용해 어텐션 계산을 수정함으로써 제어 흐름 점프의 의미적 영향을 유지하는 새로운 자기주의 메커니즘을 설계한다.
  • 제어 흐름 구조에 중점을 둔 사전학습 태스크를 사용하여 바이너리 코드의 의미 있는 표현을 학습할 수 있는 능력을 향상시킨다.
  • GNN 기반 CFG 처리를 순수한 Transformer 기반 아키텍처로 대체함으로써 학습 효율성과 확장성을 향상시킨다.
  • 학습된 표현을 활용해 벡터 공간 내 코사인 유사도를 통해 바이너리 함수 간의 유사도를 계산한다.
  • SVD 분해와 이론적 분석을 적용하여 어텐션 가중치가 점프 연결 토큰 쪽으로 긍정적으로 편향됨을 증명함으로써 설계의 타당성을 입증한다.

실험 결과

연구 질문

  • RQ1GNN에 의존하지 않고도 Transformer 기반 모델이 바이너리 코드 내 제어 흐름 의미를 효과적으로 학습할 수 있는가?
  • RQ2점프 인식 표현을 통합함으로써 표준 NLP 모델 대비 바이너리 코드 유사도 검출 정확도가 얼마나 향상되는가?
  • RQ3제안된 사전학습 태스크가 다양한 바이너리 코드에 대한 모델 일반화 능력을 얼마나 향상시키는가?
  • RQ4수천 개의 후보 바이너리가 포함된 대규모 유사도 검색 시나리오에서 jTrans의 성능은 어떠한가?
  • RQ5실제 워런티지 검출 작업에서 jTrans는 기존 SOTA 방법을 초월할 수 있는가?

주요 결과

  • jTrans는 BinaryCorp 데이터셋에서 62.5%의 F1 스코어를 기록하며 이전 SOTA(32.0%) 대비 30.5% 향상되었다.
  • 실제 워런티지 검색 작업에서 jTrans는 기존 SOTA 기반 모델 대비 2배 높은 리콜을 기록했다.
  • 후보 풀 크기가 10,000개로 증가할 때조차도 높은 성능를 유지했으며, 이는 이전 방법이 20% 이하 정확도로 급격히 떨어지는 것과 대비된다.
  • 이론적 분석을 통해 어텐션 가중치가 점프 연결 토큰 쪽으로 긍정적으로 편향됨을 확인하여 설계의 타당성을 입증했다.
  • 최근 공개된 BinaryCorp는 지금까지 가장 크고 다양한 바이너리 컬렉션을 포함하고 있어 강력한 벤치마킹을 가능하게 한다.
  • 순차적 지시어 모델링에만 의존하거나 CFG 기반 GNN에 의존하는 모델들보다 jTrans가 뛰어난 성능를 보이며, 통합된 제어 흐름 의미의 중요성을 입증했다.

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

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

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

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