악성코드 탐지를 위한 제어 흐름 변화 기반 머신러닝 분석

악성코드 탐지를 위한 제어 흐름 변화 기반 머신러닝 분석
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 악성코드 식별에 있어 전통적인 서명 기반 방법의 한계를 극복하고자, 어셈블리 수준에서 상대적 제어 흐름 변화(CFC)를 추출하여 통계 및 나이브 베이즈 분류기로 악성 여부를 판단한다. 256바이트 이내의 상대 주소 변화를 원시 피처, 2·4·6‑그램 및 그 빈도수로 변환해 실험했으며, 실제 악성·정상 샘플 집합에서 유의미한 구분력을 보였다.

상세 분석

논문은 먼저 기존 안티바이러스가 서명 기반 탐지에 의존해 신종 변종 및 폴리모픽 악성코드에 취약함을 지적한다. 이를 보완하기 위해 어셈블리 코드의 제어 흐름 변화, 즉 분기 명령어가 목표 주소를 얼마나 이동시키는지를 상대값(0~255)으로 정규화해 피처로 활용한다는 점이 독창적이다. 상대 주소는 디스어셈블러가 제공하는 바로 가기(offset) 정보를 그대로 사용하므로, 복잡한 제어 흐름 그래프를 구축할 필요 없이 간단히 추출 가능하다.

피처 설계는 세 단계로 나뉜다. 첫째, 원시 CFC 값의 빈도 분포를 히스토그램 형태로 저장한다. 둘째, 연속된 CFC 값들을 2, 4, 6 길이의 n‑그램으로 묶어 순서 정보를 보존한다. 셋째, 이러한 n‑그램이 전체 코드에서 얼마나 자주 등장하는지를 카운트해 고차원 희소 벡터를 만든다. 이 과정은 악성코드가 흔히 사용하는 짧은 루프나 조건 분기 패턴을 포착할 수 있게 한다.

통계적 검증으로는 피처별 평균·분산 비교와 카이제곱 검정을 수행했으며, 분류기에는 베이즈 정리를 기반으로 한 나이브 베이즈 모델을 적용했다. 나이브 베이즈는 피처 간 독립성을 가정하지만, 실제 실험에서는 높은 차원의 희소 벡터에서도 과적합 없이 안정적인 정확도를 기록했다. 실험에 사용된 데이터셋은 공개된 악성코드 샘플과 정상 실행 파일을 각각 수천 개씩 수집했으며, 교차 검증을 통해 평균 정확도 87 % 이상, 위양성률 5 % 이하를 달성했다.

하지만 몇 가지 한계도 존재한다. 상대 주소 범위를 256바이트로 제한함으로써 장거리 점프나 간접 호출을 놓칠 위험이 있다. 또한, 코드 난독화 기법 중 주소를 동적으로 계산하거나 가상화된 환경에서 실행되는 경우 CFC 값이 무작위화될 수 있다. 디스어셈블러 선택에 따라 잘못된 오프셋이 추출될 가능성도 논의되었지만, 구체적인 오류율은 제시되지 않았다. 마지막으로 나이브 베이즈 외에 SVM, 랜덤 포레스트 등 다른 고성능 분류기와의 비교가 부족해, 제안 방법의 상대적 우수성을 판단하기 어렵다.

향후 연구 방향으로는 상대 주소 범위 확대, 간접 호출 추적, 그리고 다중 피처(옵코드 빈도, API 호출, 문자열)와의 융합을 제시한다. 또한, 딥러닝 기반 시퀀스 모델을 적용해 n‑그램의 순차적 의존성을 더 정교하게 학습하는 방안도 고려하고 있다. 전반적으로 제어 흐름 변화라는 새로운 관점을 제시함으로써 정적 분석에 새로운 차원을 추가했으며, 실용적인 악성코드 탐지 파이프라인에 적용 가능성을 보여준다.


댓글 및 학술 토론

Loading comments...

의견 남기기