변형성 악성코드 (Metamorphic Malware)

정보보안학
한 줄 정의: 복제될 때마다 자신의 코드 자체를 재작성하여 기능은 동일하지만 명령어 구조가 매번 달라지는, 다형성 악성코드보다 더 정교한 변신 방식을 쓰는 악성코드입니다.

쉽게 풀면

같은 이야기를 매번 완전히 다른 문장과 어휘로 다시 써서 전달하는 작가를 상상해 보세요. 다형성 악성코드가 겉포장(암호화)만 바꾼다면, 변형성 악성코드는 알맹이인 코드 자체를 매번 다시 작성합니다. 명령어의 순서를 바꾸거나 동일한 기능을 다른 명령어 조합으로 대체하는 식으로 코드를 재생성하기 때문에, 실행 파일의 내부 구조 자체가 감염될 때마다 달라집니다.

왜 중요한가

변형성 악성코드는 다형성 악성코드보다 탐지가 더 어려운 것으로 여겨지는데, 암호를 풀고 나면 항상 동일한 코드가 드러나는 다형성 악성코드와 달리 코드 자체가 계속 바뀌기 때문입니다. 이 때문에 악성코드 탐지 및 분류 연구에서 변형성 악성코드는 시그니처 기반 탐지의 한계를 극단적으로 보여주는 사례로 다루어지며, 코드 의미(semantic) 분석 기반 탐지 연구의 동기가 됩니다.

논문에서는 이렇게 쓰입니다

"변형성 악성코드는 명령어 치환과 코드 순서 재배열을 통해 서로 다른 이진 표현을 갖지만, 제어 흐름 그래프 수준에서는 유사한 패턴을 공유하는 것으로 나타났다."

변형성 악성코드 탐지를 위해 제어 흐름 그래프 비교가 활용됨을 보여주는 문장입니다.

"본 논문은 변형 엔진(metamorphic engine)이 사용하는 코드 변환 기법을 분석하고, 이를 역으로 이용한 탐지 시그니처 생성 방법을 제안한다."

변형 엔진 자체의 동작 원리를 분석해 대응책을 마련하는 연구를 소개하는 문장입니다.

조금 더 깊게 보면

변형성 악성코드는 자체 내장된 변형 엔진을 통해 명령어 치환, 코드 재배열, 불필요한 명령어(정크 코드) 삽입 등의 기법으로 복제본을 생성합니다. 겉으로 드러나는 바이너리는 매번 다르지만, 기능적 의미나 상위 수준의 제어 흐름은 유지되는 경우가 많아 이를 근거로 한 탐지 연구가 이루어지고 있습니다.

주의할 점

변형성 악성코드를 만드는 것은 다형성 악성코드보다 기술적으로 더 복잡하기 때문에, 실제 유통되는 악성코드 중 완전한 변형성 특성을 갖춘 사례는 상대적으로 제한적인 것으로 알려져 있습니다.

관련 용어