다중 API 시퀀스와 제어 흐름 그래프를 활용한 악성코드 탐지
초록
본 논문은 악성코드 가족 간의 공통 기능을 API 호출 시퀀스의 n‑gram 형태로 정형화하고, 제어 흐름 그래프(CFG)에서 추출한 다중 API 경로를 활용해 유사도 기반 분류 모델을 구축한다. 다양한 유사도 측정 기법을 적용해 데이터베이스와의 매칭 정확도를 높이며, 실험을 통해 기존 단일 API 기반 방법보다 높은 탐지율과 낮은 오탐률을 달성함을 보인다.
상세 분석
이 연구는 악성코드 분석에 있어 정적 분석과 동적 분석의 장점을 융합한 하이브리드 접근법을 제시한다. 먼저, 대상 바이너리를 역어셈블리한 뒤 제어 흐름 그래프(CFG)를 구축한다. CFG의 각 노드는 기본 블록을 나타내며, 엣지는 흐름 전이를 의미한다. 저자들은 각 경로에서 호출되는 Windows API를 순차적으로 나열하고, 이를 고정 길이 n‑gram(주로 3‑gram, 4‑gram)으로 변환한다. n‑gram은 연속된 API 호출 패턴을 포착함으로써 악성코드 가족 내에서 반복되는 행동 양식을 효과적으로 요약한다.
데이터베이스 구축 단계에서는 알려진 악성코드 샘플들을 동일한 절차로 처리해 각 가족별 n‑gram 집합을 저장한다. 이때, 단일 API 시퀀스만을 이용하는 기존 연구와 달리, 저자들은 “다중 API 시퀀스”라는 개념을 도입한다. 이는 CFG 내에서 서로 다른 경로가 동시에 존재할 경우, 각 경로에서 추출된 n‑gram을 모두 포함시켜 복합적인 행동 모델을 형성한다. 이렇게 하면 조건부 분기, 루프, 예외 처리 등 복잡한 제어 구조를 놓치지 않는다.
유사도 측정에는 코사인 유사도, 자카드 계수, 편집 거리(Levenshtein distance) 등을 조합한 혼합 스코어를 사용한다. 각 샘플의 n‑gram 벡터와 데이터베이스 내 가족 벡터 간의 거리를 계산해 가장 높은 점수를 받은 가족을 후보로 제시한다. 또한, 임계값 기반 필터링을 통해 유사도가 낮은 경우는 ‘알 수 없음’ 혹은 ‘정상 프로그램’으로 분류한다.
실험에서는 5개의 주요 악성코드 가족(예: Zeus, Conficker, Stuxnet 등)과 2000여 개의 샘플을 이용해 교차 검증을 수행하였다. 결과는 평균 정확도 94.3%, 재현율 92.7%, 오탐률 3.1%로, 기존 단일 API 기반 방법(정확도 약 85%)에 비해 현저히 향상된 성능을 보였다. 특히, 변종 샘플이 기존 서명 기반 탐지기에 회피했음에도 불구하고, 공통된 API 패턴을 통해 높은 탐지율을 유지한 점이 주목할 만하다.
한계점으로는 정적 CFG 추출 과정에서 난독화와 패킹이 심한 경우 그래프가 불완전하게 생성될 수 있다는 점을 들었다. 또한, n‑gram 길이 선택이 탐지 성능에 민감하게 작용하며, 너무 짧으면 특징이 희석되고 너무 길면 희소성이 증가한다는 트레이드오프가 존재한다. 향후 연구에서는 동적 실행 추적과 결합해 런타임에 생성되는 API 시퀀스를 보강하고, 딥러닝 기반 시퀀스 모델을 도입해 자동으로 최적의 n‑gram 길이를 학습하는 방안을 제시한다.
댓글 및 학술 토론
Loading comments...
의견 남기기