다형성 악성코드 (Polymorphic Malware)
한 줄 정의: 실행될 때마다 자신을 암호화하거나 겉모습(바이너리 표현)을 바꾸면서도 실제 악성 동작은 그대로 유지하는 악성코드입니다.
쉽게 풀면
매번 다른 옷을 입고 나타나지만 하는 행동은 똑같은 사람을 떠올려 보세요. 다형성 악성코드는 감염될 때마다 자신의 코드를 암호화하거나 겉모습을 바꾸는 엔진을 이용해, 백신 프로그램이 파일의 겉모양(서명)만으로는 같은 악성코드임을 알아채기 어렵게 만듭니다. 하지만 암호가 풀린 뒤 실제로 수행하는 악성 행위 자체는 변하지 않고 동일하게 유지됩니다.
왜 중요한가
전통적인 시그니처 기반 백신 탐지는 알려진 악성코드의 고유한 바이트 패턴을 찾아내는 방식인데, 다형성 악성코드는 이 패턴을 매번 바꿔 탐지를 회피하기 때문에 탐지 기술의 한계를 보여주는 대표 사례로 다루어집니다. 이 때문에 행위 기반 탐지나 휴리스틱 분석 같은 대응 기법 연구가 이어져 왔습니다.
논문에서는 이렇게 쓰입니다
"본 연구에서 수집한 샘플 중 상당수는 다형성 악성코드로, 동일한 페이로드임에도 서명 기반 탐지 엔진에서 서로 다른 시그니처로 인식되었다."
다형성 악성코드가 서명 기반 탐지를 우회하는 특성을 설명하는 문장입니다.
"제안하는 탐지 모델은 복호화 루틴의 구조적 특징을 분석하여 다형성 악성코드의 변종을 효과적으로 식별하였다."
다형성 악성코드 탐지를 위한 연구 방향을 보여주는 문장입니다.
조금 더 깊게 보면
다형성 악성코드는 일반적으로 암호화된 페이로드와, 실행 시점마다 다른 형태로 생성되는 복호화 루틴(decryptor)으로 구성됩니다. 실행되면 복호화 루틴이 먼저 페이로드를 원래 형태로 복원한 뒤 실제 악성 행위를 수행하며, 이 복호화 루틴 자체의 코드 형태를 매번 바꾸는 데 다형성 엔진(polymorphic engine)이 사용됩니다.
주의할 점
다형성 악성코드는 겉모습만 바뀔 뿐 실행 후 동작(행위)은 동일하기 때문에, 행위 기반 탐지나 실행 후 동적 분석에는 상대적으로 잘 걸리는 경향이 있다는 점을 함께 이해해야 합니다.