MalFlows: 다양한 프로그램 흐름의 의미를 문맥에 맞게 통합한 안드로이드 악성코드 탐지 기술
초록
본 연구는 안드로이드 악성코드 탐지를 위해 제어 흐름, 데이터 흐름, 컴포넌트 간 통신(ICC)이라는 세 가지 이질적인 프로그램 흐름의 의미를 문맥을 인지하여 통합하는 새로운 기법인 MalFlows를 제안합니다. 이질적 정보 네트워크(HIN)로 흐름 간 관계를 모델링하고, 새롭게 제안된 flow2vec 임베딩 기법으로 앱의 정확한 표현을 학습한 후, 채널 어텐션 기반 딥뉴럴 네트워크를 통해 분류합니다. 31,000개 이상의 실제 앱에서 추출한 2천만 개 이상의 흐름 인스턴스로 평가한 결과, MalFlows가 기존 방법들을 능가하는 성능을 보였습니다.
상세 분석
MalFlows의 기술적 핵심은 세 가지 이질적인 프로그램 흐름(제어 흐름, 데이터 흐름, ICC)의 ‘문맥을 인지한 의미론적 통합’에 있습니다. 기존 방법들은 각 흐름을 독립적으로 분석하거나, 통합하더라도 흐름 구성 요소들(예: API, 조건, 컴포넌트) 사이의 복잡한 관계와 문맥적 의존성을 충분히 반영하지 못했습니다.
MalFlows는 이 문제를 해결하기 위해 두 가지 주요 혁신을 도입합니다. 첫째, 이질적 정보 네트워크(Heterogeneous Information Network, HIN) 를 구축합니다. 노드로는 앱, 메소드, API, 조건, 컴포넌트, 인텐트 액션 등 다양한 유형의 엔티티를, 에지로는 “호출한다”, “보호한다”, “전송한다”, “포함한다” 등 다양한 의미의 관계를 정의합니다. 이를 통해 단순한 특징 벡터가 아닌, 풍부한 관계적 구조 속에서 흐름 의미를 표현할 수 있습니다.
둘째, 문맥 인지형 HIN 임베딩 기법인 flow2vec을 제안합니다. 이는 기존의 메타-패스 기반 랜덤 워크 접근법을 발전시킨 것입니다. flow2vec은 여러 개의 사전 설계된 메타-패스(예: ‘앱 -> 조건 -> API’, ‘앱 -> 소스API -> 싱크API’)를 ‘함께’ 사용하여 워크를 생성합니다. 핵심은, 하나의 노드(예: 특정 API)가 서로 다른 메타-패스 상에서 다른 문맥(예: 제어 흐름 내 보호된 API vs. 데이터 흐름 내 소스 API)으로 나타날 때, 이를 구분하여 임베딩하도록 설계되었다는 점입니다. 이 ‘문맥 인지’ 능력 덕분에, 서로 다른 앱에서 유사한 API가 사용되더라도 그 주변 흐름 구조가 다르면 다른 의미로 해석될 수 있어, 보다 정확한 앱 표현 학습이 가능해집니다.
학습된 앱 임베딩은 채널 어텐션 메커니즘을 갖춘 딥뉴럴 네트워크에 입력됩니다. 여기서 ‘채널’은 각 흐름 유형(제어/데이터/ICC)에서 학습된 표현에 해당합니다. 어텐션 메커니즘은 현재 분석 중인 앱의 악성코드 여부를 판단하는 데 각 흐름 유형의 표현이 기여하는 중요도를 동적으로 계산합니다. 이는 모든 흐름을 균등하게 취급하는 것이 아니라, 앱별로 가장 판별력 있는 흐름 의미에 더 높은 가중치를 부여함으로써 최종 분류 정확도를 높입니다.
이러한 접근법은 통계적 분석(동기 부여 섹션)에서 확인된 바와 같이, 악성코드와 정상 앱이 세 가지 흐름 각각에서 뚜렷한 차별적 패턴을 보이며, 이러한 패턴들이 서로 연관되고 보완적이라는 통찰을 체계적인 계산 모델로 구현한 것입니다.
댓글 및 학술 토론
Loading comments...
의견 남기기