[논문 리뷰] Asteria-Pro: Enhancing Deep-Learning Based Binary Code Similarity Detection by Incorporating Domain Knowledge
Asteria-Pro는 사전 필터링 및 재순서 모듈을 통해 도메인 지식을 통합함으로써 딥러닝 기반 바이너리 코드 유사도 검출을 향상시켜 계산 시간을 96.9% 감소시키고 MRR와 Recall을 각각 23.71%와 36.4% 향상시켰으며, 실세계 펌웨어에서 1,482개의 취약 기능을 탐지하는 데 정밀도 91.65%를 달성하였다.
The widespread code reuse allows vulnerabilities to proliferate among a vast variety of firmware. There is an urgent need to detect these vulnerable code effectively and efficiently. By measuring code similarities, AI-based binary code similarity detection is applied to detecting vulnerable code at scale. Existing studies have proposed various function features to capture the commonality for similarity detection. Nevertheless, the significant code syntactic variability induced by the diversity of IoT hardware architectures diminishes the accuracy of binary code similarity detection. In our earlier study and the tool Asteria, we adopt a Tree-LSTM network to summarize function semantics as function commonality and the evaluation result indicates an advanced performance. However, it still has utility concerns due to excessive time costs and inadequate precision while searching for large-scale firmware bugs. To this end, we propose a novel deep learning enhancement architecture by incorporating domain knowledge-based pre-filtration and re-ranking modules, and we develop a prototype based on Asteria called Asteria-Pro. Pre-filtration module seeks to eliminates dissimilar functions to boost subsequent deep learning model calculations, while re-ranking module aims to raises the rankings of vulnerable functions among candidates generated by deep learning model. Our evaluation indicates that pre-filtration module cuts the calculation time by 96.9% and re-ranking improves MRR and Recall by 23.71% and 36.4%. By incorporating the pre-filtration and re-ranking modules, Asteria-Pro outperforms existing state-of-the-art approaches in bug search task, by a significant large margin. We conduct a large-scale real-world firmware bug search and Asteria-Pro manages to detect 1,482 vulnerable functions with a high precision 91.65%.
연구 동기 및 목표
- 아키텍처 다양성과 구문 변동성으로 인해 IoT 펌웨어의 딥러닝 기반 바이너리 코드 유사도 검출(BCSD)에서 정확도가 낮고 계산 비용이 높은 문제를 해결한다.
- 기존 BCSD 도구들이 에뮬레이션 또는 심볼릭 실행에 크게 의존하여 대규모 펌웨어 분석에 비현실적인 점을 극복한다.
- 딥러닝 파이프라인에 도메인 특화 지식을 통합함으로써 실세계 펌웨어에서의 취약성 탐지 확장성과 정밀도를 향상시킨다.
- 소스 코드나 함수 이름 없이도 다양한 IoT 하드웨어 아키텍처 간에 유사한 취약 기능을 효율적이고 정확하게 탐지할 수 있도록 한다.
제안 방법
- 딥러닝 인코딩 이전에 기능 이름 히ュ리스틱과 도메인 특화 규칙을 활용해 유사하지 않은 기능을 사전에 제거하는 사전 필터링 모듈을 도입하여 후보 수를 크게 줄인다.
- 기능 의미를 조밀한 임bedding으로 인코딩하기 위해 Tree-LSTM 기반의 딥러닝 모델을 적용하여 지시어 세트 아키텍처에 의존하지 않는 기능 공통성을 포착한다.
- 기능 호출 구조와 제어 흐름 패턴을 사용해 딥러닝 모델의 유사도 점수를 재보정하는 재순서 모듈을 설계하여 진짜 양성 사례를 높인다.
- 사전 필터링 및 재순서 모듈을 통합된 파이프라인으로 통합하여 BCSD 프로세스의 효율성과 정밀도를 모두 향상시킨다.
- 상향된 중간 표현에서 유도된 추상 구문 트리(AST)를 활용해 아키텍처에 의존하지 않는 의미 특징을 추출하여 모델 입력으로 사용한다.
- 그래프 신경망(GNNs)을 사용해 바이너리 기능 내 제어 및 데이터 의존성을 모델링하여 단순 시퀀스 기반 모델을 초월한 의미 표현을 향상시킨다.
실험 결과
연구 질문
- RQ1도메인 지식 기반 사전 필터링이 대규모 펌웨어 분석에서 딥러닝 기반 바이너리 코드 유사도 검출의 계산 비용을 크게 감소시킬 수 있는가?
- RQ2기능 호출 구조에 기반한 후처리 재순서 모듈이 유사도 점수 재평가를 통해 취약성 탐지 정밀도를 어느 정도 향상시킬 수 있는가?
- RQ3실세계 펌웨어에서 N-day 취약성을 탐지할 때 Asteria-Pro는 최신 기술 수준의 BCSD 도구들과 정확도, 속도, 확장성 측면에서 어떻게 비교되는가?
- RQ4사전 필터링 및 재순서 모듈의 통합은 Asteria-Pro를 초월해 다른 임bedding 기반 BCSD 방법에도 일반화되어 적용될 수 있는가?
주요 결과
- 사전 필터링 모듈은 딥러닝 추론 이전에 96.9%의 비유사 기능 쌍을 제거함으로써 전체 유사도 검출 계산 시간을 96.9% 감소시켰다.
- 재순서 모듈은 기준 딥러닝 모델에 비해 평균 역수 순위(MRR)를 23.71% 향상시키고 Recall을 36.4% 향상시켰다.
- 대규모 실세계 펌웨어 분석에서 Asteria-Pro는 정밀도 91.65%로 총 1,482개의 취약 기능을 성공적으로 탐지하였다.
- CVE-2017-13001에서 인lines된 취약 코드를 식별하여 다양한 펌웨어 바이너리 간에 복잡하고 가로막힌 취약성을 탐지할 수 있는 능력을 입증하였다.
- 기타 기준 임bedding 방법에 사전 필터링 및 재순서 모듈을 통합하면 정밀도가 크게 향상되어 광범위한 적용 가능성을 보였다.
- 특히 교차 아키텍처 취약성 탐지에서 기존 최신 기술 수준의 BCSD 접근 방식보다 속도와 정확도 모두에서 Asteria-Pro가 뛰어난 성능을 보였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.