악성코드 압축과 암호화가 탐지를 피하는 방식

악성코드 압축·암호화·다형성·변형 기법의 탐지 회피 구조와 엔트로피 분석, 기업 보안 대응 방안을 정리한다.

2026-08-14 · 최초 발행 2025-06-15

압축된 악성코드는 실행 순간에 본체를 드러낸다

악성코드 제작자는 분석 시간을 늘리고 탐지 규칙을 피하기 위해 코드 압축과 암호화를 사용한다. 두 기법은 특징적인 바이트 패턴을 숨기는 데 쓰이며, 파일 크기와 메모리 사용을 줄여 은밀한 배포에도 활용될 수 있다.

압축된 파일은 실행 시 메모리에서 본체를 풀어낸 뒤 악성 행위를 이어 간다. 외부에 노출되는 부분은 압축 해제에 필요한 작은 루틴뿐이므로, 정적 시그니처만으로 판단하기 어려워진다.

압축된 악성코드복호화 루틴 실행메모리에서 압축 해제실제 악성 코드 실행감염 활동 수행

암호화는 분석 대상 코드를 실행 전까지 감춘다

암호화 바이러스는 실제 악성 기능이 담긴 본체 대부분을 암호화한다. 실행을 시작하는 복호화 루틴은 암호화되지 않은 상태로 남아 본체를 메모리에 복원하는 역할을 맡는다.

복호화된 바이러스(런타임)암호화된 바이러스 본체복호화 루틴호스트 시스템복호화된 바이러스(런타임)암호화된 바이러스 본체복호화 루틴호스트 시스템바이러스 실행복호화 작업 수행메모리에 복호화된 상태로 로드악성 활동 수행

이 구조에서는 파일에 저장된 암호화된 본체보다, 복호화 루틴의 형태와 실행 이후 메모리에 나타나는 코드를 함께 살펴야 한다.

감염 때마다 달라지는 다형성과 변형 코드

다형성 바이러스는 암호화에 더해 감염할 때마다 복호화 루틴도 변형한다. 서로 다른 암호화 키를 쓰고, 가비지 코드를 삽입하거나 명령어 순서를 바꾸는 방식으로 루틴의 모양을 달리한다. 같은 악성 기능을 수행하더라도 파일마다 시그니처가 달라질 수 있다.

원본 바이러스감염 대상 1감염 대상 2감염 대상 3변형된 복호화 루틴 1다른 키로 암호화된 본체변형된 복호화 루틴 2다른 키로 암호화된 본체변형된 복호화 루틴 3다른 키로 암호화된 본체

변형 바이러스는 암호화된 본체에만 의존하지 않고 코드 자체를 계속 바꾼다. 동일한 기능을 다른 명령어로 치환하거나, 실행 논리를 유지한 채 코드 순서를 변경할 수 있다. 기능과 무관한 코드를 삽입하고, 사용하는 레지스터를 바꾸거나, 코드 조각을 분할한 뒤 재배치하는 방식도 여기에 포함된다.

패커와 프로텍터가 분석을 지연시키는 방식

패커와 프로텍터는 실행 파일을 압축하거나 보호하는 도구이며 악성코드 제작자도 이를 활용한다. 파일 크기를 줄이는 것 외에도 시그니처 탐지를 피하고 리버스 엔지니어링을 방해하며 분석 시간을 늘려 대응을 늦추는 효과를 노린다.

  • UPX(Ultimate Packer for eXecutables): 오픈소스 실행 파일 압축기
  • ASPack: 윈도우 실행 파일 압축기
  • MPRESS: 높은 압축률의 PE 압축기
  • Themida: 강력한 코드 보호 및 가상화 기능 제공
  • VMProtect: 가상화 기반 코드 보호 솔루션

암호화·압축된 파일을 식별하는 분석 신호

탐지 체계는 파일의 정적 특성만 보지 않고 복호화 과정과 실행 이후의 행위를 함께 분석한다. 휴리스틱 분석은 의심스러운 코드 패턴, 복호화 루틴 구조, 비정상적인 엔트로피 값을 찾는다.

에뮬레이션은 안전한 가상환경에서 코드를 실행해 메모리에 복호화된 악성코드가 나타나는지를 확인하고 행위 기반 분석을 수행한다. 샌드박스 분석에서는 격리된 환경에서 네트워크 활동, 파일 조작, 실행 흐름, API 호출 패턴을 관찰한다. 기계학습 기반 탐지는 파일 구조와 특성을 학습해 비정상 패턴을 인식하고 제로데이 공격 탐지를 향상하는 데 사용된다.

엔트로피로 압축·암호화 흔적 읽기

Shannon 엔트로피는 정보의 무질서도를 측정하는 방법이다. 암호화되거나 압축된 데이터는 높은 엔트로피 값을 보일 수 있으므로, 파일 안에서 비정상적으로 높은 엔트로피를 보이는 섹션은 분석 우선순위를 정하는 단서가 된다.

일반 실행 파일은 섹션마다 다양한 엔트로피 값을 보인다. 암호화된 코드는 7.0 이상의 높은 엔트로피를 보일 수 있고, 압축된 코드는 6.5~7.0 범위의 엔트로피를 보일 수 있다.

Emotet에서 나타난 압축과 암호화 회피

Emotet은 뱅킹 트로이목마로 시작해 다양한 악성코드 배포 플랫폼으로 발전한 악성코드다. 이 사례에서는 여러 레이어의 압축으로 분석을 지연시키고, 표준 알고리즘 대신 독자적 암호화 루틴을 사용한다. 문자열 암호화와 함수 포인터 남용을 통한 코드 난독화, 가상환경을 탐지하면 실행을 중지하는 안티 VM 기법도 사용된다.

피싱 이메일악성 매크로 포함 문서1차 다운로더암호화된 페이로드 다운로드페이로드 복호화Emotet 메인 모듈 설치추가 모듈 다운로드정보 탈취 추가 악성코드배포

기업 환경에서는 탐지 계층을 분리해 운영한다

압축·암호화된 악성코드에는 네트워크, 엔드포인트, 이메일 보안 솔루션을 통합하는 다계층 방어가 필요하다. 여러 벤더의 엔진을 활용한 멀티스캐닝도 탐지 관점을 넓히는 방법이다.

의심 파일은 네트워크 격리 환경에서 샌드박스로 동적 분석할 수 있다. 엔드포인트에서는 프로세스 인젝션과 레지스트리 변경 같은 비정상 활동을 추적하고, EDR로 지속적인 모니터링과 의심 활동의 실시간 대응을 구성한다. 네트워크 측에서는 DPI(Deep Packet Inspection)와 C&C 통신 패턴 분석을 함께 적용한다.

압축과 암호화는 정상 소프트웨어 보호에도 사용될 수 있다. 따라서 파일이 포장되어 있다는 사실만으로 악성 여부를 단정하기보다, 복호화 이후의 코드와 행위, 네트워크 활동을 함께 분석해야 한다. 시그니처 기반 탐지에만 의존하지 않고 휴리스틱, 행위 기반 분석, 기계학습, 실시간 모니터링을 결합하는 대응 체계가 필요하다.

악성코드바이러스 암호화다형성 바이러스엔트로피 분석EDR