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