Skip to main content
QUICK REVIEW

[논문 리뷰] Android-COCO: Android Malware Detection with Graph Neural Network for Byte- and Native-Code

Peng Xu|arXiv (Cornell University)|2021. 12. 19.
Advanced Malware Detection Techniques인용 수 7
한 줄 요약

이 논문은 프로그램 의존도 그래프(PDG) 임베딩을 통해 DEX 바이트코드와 네이티브 코드(.so 파일)를 모두 분석함으로써 악성 소프트웨어를 탐지하는 그래프 신경망 기반 접근법인 Android-COCO를 제안한다. 100,113개 앱으로 구성된 대규모 데이터셋에서 99.86%의 정확도를 기록하며, 기존 최고 수준의 방법들보다 F-측정치에서 5% 이상 뛰어나며, 바이트코드와 네이티브 코드를 동시에 그래프 임베딩을 활용해 분석한 최초의 작업으로서의 의의를 지닌다.

ABSTRACT

With the popularity of Android growing exponentially, the amount of malware has significantly exploded. It is arguably one of the most viral problems on mobile platforms. Recently, various approaches have been introduced to detect Android malware, the majority of these are either based on the Manifest File features or the structural information, such as control flow graph and API calls. Among those methods, nearly all of them only consider the Java byte-code as the target to detect malicious behaviors. However, Recent research and our own statistics show that native payloads are commonly used in both benign and malicious apps. Current state-of-the-art Android static analysis tools avoid handling native method invocation. None of those tools have the capability to capture the inter-language behaviors. In this work, we explore an ensemble mechanism, which presents how the combination of byte-code and native-code analysis of Android applications can be efficiently used to cope with the advanced sophistication of Android malware. We, therefore, present a multi-layer approach that utilizes deep learning, natural language processing (NLP), as well as graph embedding techniques to handle the threats of Android malware, both from the Java byte-code and native code. After that, we design an ensemble algorithm to get the final result of malware detection system. To be specific, the first layer of our detection approach operates on the byte-code of application and the native code level, whereas the second layer focuses on the ensemble algorithm. Large-scale experiments on 100,113 samples (35,113 malware and 65,000 benign) show that only byte-code sub-system yields 99.8% accuracy and native-code sub-system yields an accuracy of 96.6%, whereas the Android-COCO method attains an accuracy of 99.86% which outperforms various related works.

연구 동기 및 목표

  • 코드 오버플루션에 의해 악성 행동이 숨겨지는 악성 앱에 대해 실패하는 매니페스트 기반 악성 소프트웨어 탐지의 한계를 해결한다.
  • DEX 바이트코드에만 집중하고 악성 네이티브 코드를 忽시하는 기존 탐지 시스템의 격차를 해소한다. 네이티브 코드는 86%의 안드로이드 앱에 존재한다.
  • 일반적인 오버플루션 기법(예: 명령어 교체, 코드 숨기기)에 강건한, 구조 인식 기반의 악성 소프트웨어 탐지 시스템을 개발한다.
  • 바이트코드 및 네이티브 코드 분석을 통합한 앙상블 기반 프레임워크로 탐지 정확도와 일반화 능력을 향상시킨다.
  • 특히 PDG 및 FCG에 대한 그래프 임베딩 기법이 악성 소프트웨어를 나타내는 깊은 구조적 패턴을 효과적으로 포착할 수 있음을 입증한다.

제안 방법

  • 함수 간 데이터 및 제어 의존성 구조를 모델링하기 위해 DEX 바이트코드를 프로그램 의존도 그래프(PDG)로 변환한다.
  • 그래프 임베딩 기법을 적용하여 PDG를 고정 크기의 벡터 표현으로 변환함으로써 코드 구조의 위상적 및 의미적 특성을 유지한다.
  • 동일한 그래프 임베딩 접근법을 사용하여 네이티브 코드(.so 파일)를 처리하고, 다중 언어 간 분석을 위한 구조적 임베딩을 생성한다.
  • 바이트코드 및 네이티브 코드 서브시스템에서 생성된 임베딩 표현에 대해 별도의 다층 퍼셉트론(MLP) 분류기 학습을 수행한다.
  • 두 분류기의 출력을 앙상블 학습 알고리즘을 통해 융합하여 전체 탐지 성능을 향상시킨다.
  • 이중 레이어 아키텍처를 사용한다: 첫 번째 레이어는 DEX 및 네이티브 코드에 대한 그래프 임베딩을 통한 구조적 탐지 수행하고, 두 번째 레이어는 앙상블 학습을 통해 결과를 융합한다.

실험 결과

연구 질문

  • RQ1DEX 바이트코드 및 네이티브 코드에서 유도된 프로그램 의존도 그래프(PDG)가 안드로이드 악성 소프트웨어를 나타내는 구조적 패턴을 효과적으로 포착할 수 있는가?
  • RQ2전통적인 특징 기반 또는 시그니처 기반 방법에 비해 그래프 임베딩 기법은 악성 소프트웨어 탐지 정확도를 얼마나 향상시키는가?
  • RQ3바이트코드 및 네이티브 코드 분석을 융합함으로써, 특히 오버플루션된 악성 소프트웨어에 대해 탐지 성능이 어떻게 향상되는가?
  • RQ4별도의 바이트코드 및 네이티브 코드 탐지기의 결과를 융합하는 앙상블 모델이 개별 서브시스템보다 더 높은 정확도를 달성할 수 있는가?
  • RQ5이러한 방법이 코드의 외관을 변경하지만 동작은 그대로 유지하는 고도의 오버플루션 기법에 대해 얼마나 강건한가?

주요 결과

  • PDG 임베딩을 사용한 바이트코드 서브시스템은 100,113개 안드로이드 앱(악성 소프트웨어 35,113개, 양성 65,000개)으로 구성된 데이터셋에서 99.8%의 탐지 정확도를 달성했다.
  • 네이티브 코드 서브시스템은 .so 파일에 대한 그래프 임베딩을 사용하여 96.66%의 탐지 정확도를 기록했으며, 네이티브 코드 분석이 악성 소프트웨어 탐지에 실현 가능함을 입증했다.
  • 두 서브시스템의 결과를 융합한 앙상블 모델은 전체 정확도를 99.86%로 향상시켰으며, 기존 최고 수준의 방법들보다 F-측정치에서 5.27% 이상 뛰어나 성능을 뛰어넘었다.
  • 이러한 방법은 그래프 임베딩을 활용해 DEX 바이트코드와 네이티브 코드를 동시에 분석한 최초의 접근법으로, 기존 시그니처 기반 및 매니페스트 기반 시스템을 피할 수 있는 악성 소프트웨어 탐지가 가능하다.
  • 아이디언터 이름 변경, 코드 숨기기, 명령어 교체와 같은 일반적인 오버플루션 기법에 대해 구조적 프로그램 속성에 중점을 두기 때문에 여전히 효과적이다.
  • 높은 성능에도 불구하고 확장성 문제에 직면해 있다: 메모리 소비가 높아 90,000개 이상의 노드를 가진 그래프를 처리할 수 없어 데이터셋 크기가 제한된다.

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

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

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

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