核心概念
바이너리 코드 분석을 위해 저자는 감독되지 않은 방식으로 바이너리 코드를 다른 ISA로 번역하는 모델 UNSUPERBINTRANS를 제안한다. 이를 통해 저자는 저자원 ISA에서 데이터 부족 문제를 해결하고 다양한 바이너리 분석 작업을 수행할 수 있다.
摘要
이 논문은 바이너리 코드 분석의 중요성과 데이터 부족 문제에 대해 설명한다. 저자는 이를 해결하기 위해 감독되지 않은 방식으로 바이너리 코드를 다른 ISA로 번역하는 모델 UNSUPERBINTRANS를 제안한다.
UNSUPERBINTRANS는 다음과 같은 과정을 거친다:
- 각 ISA에 대한 단일 아키텍처 명령어 임베딩(MAIE)을 생성한다.
- MAIE를 공통 벡터 공간으로 매핑하여 교차 아키텍처 명령어 임베딩(CAIE)을 생성한다.
- CAIE와 단일 아키텍처 데이터셋을 사용하여 UNSUPERBINTRANS 모델을 훈련한다.
이렇게 훈련된 UNSUPERBINTRANS 모델은 저자원 ISA의 바이너리를 고자원 ISA(예: x86)로 번역할 수 있다. 이를 통해 고자원 ISA에 대해 훈련된 모델을 저자원 ISA의 바이너리 분석에 활용할 수 있다.
저자는 UNSUPERBINTRANS를 이용하여 코드 유사성 탐지와 취약점 발견 작업을 수행하였다. 실험 결과, UNSUPERBINTRANS는 높은 정확도를 달성하였다. 특히 취약점 발견 작업에서 UNSUPERBINTRANS는 모든 취약 함수를 정확하게 탐지할 수 있었다.
이 연구는 저자원 ISA의 데이터 부족 문제를 해결하고 다양한 바이너리 분석 작업에 활용할 수 있는 새로운 방향을 제시한다.
統計資料
취약점 CVE-2014-0160(Heartbleed)의 취약 함수에 대해 UNSUPERBINTRANS는 100% 정확도로 탐지하였다.
취약점 CVE-2014-3508의 취약 함수에 대해 UNSUPERBINTRANS는 95% 정확도로 탐지하였다.
취약점 CVE-2015-1791의 취약 함수에 대해 UNSUPERBINTRANS는 95% 정확도로 탐지하였다.
引述
"바이너리 코드 분석은 소프트웨어 보안 연구 분야에서 매우 중요한 역할을 한다."
"최근 딥러닝 기반 바이너리 분석이 우수한 성과를 보이고 있지만, 대량의 데이터가 필요하다는 한계가 있다."
"저자원 ISA에 대한 충분한 데이터를 찾기 어려워 딥러닝이 널리 채택되지 못하고 있다."