안드로이드 악성코드 탐지를 위한 딥러닝 기반 타인트 분석과 베이지안 네트워크
초록
본 논문은 안드로이드 애플리케이션을 역공학하여 생명주기와 콜백을 모델링하고, 타인트 분석으로 데이터 흐름의 소스·싱크를 추출한다. 추출된 특징을 베이지안 네트워크에 학습시켜 악성·정상 앱을 분류하는 DroidMark 시스템을 제안하며, 실험 결과 96.87%의 정확도와 3.13%의 오류율을 달성하였다.
상세 분석
DroidMark은 안드로이드 악성코드 탐지를 위해 정적·동적 분석을 결합한 하이브리드 프레임워크이다. 먼저 APK 파일을 역공학하여 Dalvik 바이트코드와 매니페스트 정보를 추출하고, Android 애플리케이션의 생명주기와 콜백 메커니즘을 그래프 형태로 모델링한다. 이 과정에서 Activity, Service, BroadcastReceiver 등 다양한 컴포넌트 간의 호출 관계를 정밀하게 파악함으로써 타인트 분석의 적용 범위를 확대한다. 타인트 분석 단계에서는 FlowDroid와 같은 기존 도구를 기반으로 데이터 흐름을 추적한다. 특히, 사용자 민감 정보(예: IMEI, 위치, 연락처)와 네트워크 전송, 파일 쓰기 등 잠재적 ‘소스(source)’와 ‘싱크(sink)’를 정의하고, 이들 사이에 존재하는 경로를 모두 탐색한다. 탐색된 경로는 길이, 순환 여부, API 호출 빈도 등 정량적 특성으로 변환되어 특징 벡터를 구성한다.
특징 추출 후, 베이지안 네트워크(Bayesian Network)를 이용해 확률적 분류 모델을 학습한다. 베이지안 네트워크는 변수 간의 조건부 독립성을 그래프 형태로 표현할 수 있어, 타인트 경로 간의 상호작용을 자연스럽게 모델링한다. 학습 데이터셋은 공개된 악성코드 샘플과 정상 앱을 균형 있게 구성했으며, 교차 검증을 통해 과적합을 방지하였다. 분류 단계에서는 새로운 앱에 대해 추출된 특징을 입력으로 넣어 사후 확률을 계산하고, 사후 확률이 사전 정의된 임계값을 초과하면 악성으로 판단한다.
실험 결과는 정확도 96.87%, 오류율 3.13%를 기록했으며, 특히 False Positive율이 낮아 실무 적용 가능성을 높였다. 또한, 기존 정적 분석 기반 도구와 비교했을 때 높은 탐지율을 보였으며, 동적 분석 없이도 충분히 효과적인 결과를 얻었다는 점이 주목할 만하다. 그러나 타인트 분석 자체가 복잡한 코드 난독화나 동적 로딩에 취약할 수 있으며, 베이지안 네트워크의 구조 설계가 데이터에 과도하게 의존한다는 한계도 존재한다. 향후 연구에서는 다중 모델 앙상블과 강화 학습을 도입해 탐지 성능을 더욱 향상시키고, 실시간 모니터링 환경에 적용할 방안을 모색할 필요가 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기