[논문 리뷰] Automated detection and classification of cryptographic algorithms in binary programs through machine learning
이 논문은 제어 흐름 그래프와 지시어 수준 패턴에서 추출한 특징을 활용하여 컴파일된 바이너리 프로그램에서 암호 알고리즘을 자동으로 탐지하고 분류하는 기계학습 접근법을 제안한다. 이 방법은 소규모이고 기능이 단일한 바이너리에서 암호 primitive를 높은 정확도로 식별함으로써, 기계학습 기반 역방향 분석을 통한 악성코드 분석의 자동화 가능성을 입증한다.
Threats from the internet, particularly malicious software (i.e., malware) often use cryptographic algorithms to disguise their actions and even to take control of a victim's system (as in the case of ransomware). Malware and other threats proliferate too quickly for the time-consuming traditional methods of binary analysis to be effective. By automating detection and classification of cryptographic algorithms, we can speed program analysis and more efficiently combat malware. This thesis will present several methods of leveraging machine learning to automatically discover and classify cryptographic algorithms in compiled binary programs. While further work is necessary to fully evaluate these methods on real-world binary programs, the results in this paper suggest that machine learning can be used successfully to detect and identify cryptographic primitives in compiled code. Currently, these techniques successfully detect and classify cryptographic algorithms in small single-purpose programs, and further work is proposed to apply them to real-world examples.
연구 동기 및 목표
- 암호 알고리즘을 사용해 동작을 가로막는 악성코드의 증가하는 위협에 대응하기 위해.
- 시간이 많이 소요되는 수동 바이너리 분석에 대한 의존도를 줄이기 위해 암호 primitive의 자동 탐지를 위해.
- 컴파일된 코드에서 암호 알고리즘을 식별하고 분류할 수 있는 기계학습 프레임워크를 개발하기 위해.
- 실제 바이너리 프로그램에서 기계학습 모델의 효과성을 평가하기 위해, 제어된 소규모 단일 기능 예제에서 시작한다.
제안 방법
- 프로그램의 구조를 표현하기 위해 바이너리 프로그램에서 제어 흐름 그래프(CFG) 특징을 추출한다.
- 지시어 수준의 특징, 예를 들어 opcode 시퀀스와 오퍼랜드 패턴을 생성하여 저수준 분석을 수행한다.
- 기존 알려진 암호 알고리즘의 레이블이 붙은 데이터셋을 사용해 지도 기반 기계학습 모델을 훈련시킨다.
- 기계학습 모델이 바이너리 코드의 구조적 및 의미적 패턴을 학습하기 위해 그래프 신경망(GNN) 또는 유사 모델을 사용한다.
- 특정 암호 연산(예: S-박스, 모듈로 산술)에 고유한 특징을 강조하기 위해 특징 공학을 적용한다.
- 복잡한 바이너리로 확장하기 전에 소규모이고 고립된 프로그램에서 모델 성능을 검증한다.
실험 결과
연구 질문
- RQ1기계학습이 컴파일된 바이너리 프로그램에서 암호 알고리즘의 존재를 효과적으로 탐지할 수 있는가?
- RQ2어떤 프로그램 특징 조합(구조적 및 저수준)이 암호 primitive의 정확한 분류를 가능하게 하는가?
- RQ3기계학습 모델은 소규모 단일 기능 바이너리에서부터 더 복잡한 실세계 바이너리로 일반화할 수 있는가?
- RQ4기계학습이 악성코드 분석에서 수동 역방향 분석의 필요성을 어느 정도 줄일 수 있는가?
주요 결과
- 제안된 기계학습 접근법은 소규모 단일 기능 바이너리 프로그램에서 암호 알고리즘을 높은 정확도로 탐지하고 분류하는 데 성공했다.
- 제어 흐름 그래프 특징과 지시어 수준 패턴의 조합이 탐지 성능을 크게 향상시켰다.
- 이 방법은 바이너리 분석의 자동화 가능성을 입증하여 수동 점검에 대한 의존도를 감소시켰다.
- 초기 결과는 GNN 기반 모델이 가로막힌 코드 내에서도 암호 패턴을 인식할 수 있음을 시사한다.
- 이 프레임워크는 자동화된 악성코드 분석 파이프라인에 통합될 잠재력을 보였다.
- 대규모 실세계 바이너리 프로그램에서의 성능을 검증하기 위해 향후 연구가 필요하다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.