IT Professional Engineering/SEC

바이러스 압축과 암호화: 악성코드의 은폐 및 탐지 회피 기법

GilliLab IT 2025. 6. 15. 13:39
728x90
반응형

바이러스 압축과 암호화: 악성코드의 은폐 및 탐지 회피 기법

악성코드 제작자들은 바이러스 탐지를 회피하고 분석을 어렵게 만들기 위해 다양한 기법을 활용한다. 이 중 압축과 암호화는 가장 일반적이고 효과적인 방법으로, 악성코드의 특징적 패턴을 숨기고 시그니처 기반 탐지를 무력화하는 역할을 한다. 본 글에서는 바이러스가 어떻게 압축과 암호화 기법을 활용하는지, 그리고 이에 대한 대응 방안을 살펴본다.

바이러스 압축(Virus Compression)의 개념과 목적

바이러스 압축은 악성코드의 크기를 줄이고 특징적 패턴을 감추기 위한 기법이다. 압축의 주요 목적은 다음과 같다:

  1. 탐지 회피: 시그니처 기반 안티바이러스가 인식할 수 있는 특징적 바이트 패턴을 변형
  2. 크기 감소: 전송 효율성 증가 및 은밀한 배포 가능
  3. 메모리 점유 최소화: 시스템 리소스 사용을 최소화하여 의심 회피
  4. 복호화 루틴: 실행 시점에 압축 해제를 위한 작은 루틴만 노출

압축된 바이러스는 실행 시 메모리에서 압축을 해제한 후 실제 악성 코드를 실행하는 과정을 거친다. 이 과정은 일반적으로 다음과 같은 순서로 진행된다:

flowchart LR
    A[압축된 악성코드] --> B[복호화 루틴 실행]
    B --> C[메모리에서 압축 해제]
    C --> D[실제 악성 코드 실행]
    D --> E[감염 활동 수행]

바이러스 암호화(Virus Encryption)의 작동 원리

암호화 바이러스는 본체 대부분을 암호화하여 정적 분석을 어렵게 만든다. 기본 구조는 다음과 같다:

  1. 복호화 루틴(Decryptor): 암호화되지 않은 상태로 존재, 바이러스 본체 복호화 담당
  2. 암호화된 바이러스 본체: 실제 악성 기능을 포함한 코드

암호화 바이러스의 작동 과정:

sequenceDiagram
    participant Host as 호스트 시스템
    participant D as 복호화 루틴
    participant E as 암호화된 바이러스 본체
    participant R as 복호화된 바이러스(런타임)

    Host->>D: 바이러스 실행
    D->>E: 복호화 작업 수행
    E->>R: 메모리에 복호화된 상태로 로드
    R->>Host: 악성 활동 수행

다형성 바이러스(Polymorphic Virus)

다형성 바이러스는 암호화 기법을 확장하여 매 감염 시마다 복호화 루틴까지 변형시키는 고급 기법이다.

주요 특징:

  • 매 감염 시 다른 암호화 키 사용
  • 복호화 루틴 자체도 변형 (가비지 코드 삽입, 명령어 순서 변경 등)
  • 시그니처 기반 탐지 무력화

다형성 바이러스의 변형 과정:

flowchart TD
    A[원본 바이러스] --> B[감염 대상 1]
    A --> C[감염 대상 2]
    A --> D[감염 대상 3]

    B --> B1[변형된 복호화 루틴 1]
    B --> B2[다른 키로 암호화된 본체]

    C --> C1[변형된 복호화 루틴 2]
    C --> C2[다른 키로 암호화된 본체]

    D --> D1[변형된 복호화 루틴 3]
    D --> D2[다른 키로 암호화된 본체]

변형 기법(Metamorphic Techniques)

변형 바이러스는 암호화에 의존하지 않고 코드 자체를 변형시키는 고급 기법이다.

주요 변형 기술:

  1. 코드 치환(Code Substitution): 동일 기능의 다른 명령어로 대체
  2. 코드 순서 변경(Code Reordering): 실행 순서 변경하되 논리는 유지
  3. 쓰레기 코드 삽입(Garbage Code Insertion): 실제 기능 없는 코드 삽입
  4. 레지스터 변경(Register Swapping): 다른 레지스터 사용하도록 변경
  5. 코드 분할 및 재조합(Code Fragmentation): 코드 블록 분할 후 재배치

패커(Packer)와 프로텍터(Protector)

패커와 프로텍터는 악성코드 제작자들이 자주 사용하는 도구이다.

주요 패커 종류:

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

패커 사용 이점:

  1. 파일 크기 감소
  2. 시그니처 탐지 회피
  3. 리버스 엔지니어링 방해
  4. 분석 시간 증가로 대응 지연

암호화된 바이러스 탐지 기법

안티바이러스 솔루션은 다양한 방법으로 암호화/압축된 악성코드를 탐지한다:

  1. 휴리스틱 분석(Heuristic Analysis):

    • 의심스러운 코드 패턴 탐지
    • 복호화 루틴 구조 분석
    • 비정상적인 엔트로피 값 감지
  2. 에뮬레이션(Emulation):

    • 안전한 가상환경에서 코드 실행
    • 메모리에 복호화된 악성코드 탐지
    • 행위 기반 분석 수행
  3. 샌드박스 분석(Sandbox Analysis):

    • 격리된 환경에서 실행 관찰
    • 네트워크 활동, 파일 조작 등 모니터링
    • 실행 흐름 및 API 호출 패턴 분석
  4. 기계학습 기반 탐지(Machine Learning-based Detection):

    • 파일 구조 및 특성 학습
    • 비정상적 패턴 인식
    • 제로데이 공격 탐지 향상

엔트로피 분석(Entropy Analysis)

엔트로피 분석은 압축/암호화된 바이러스 탐지에 효과적인 방법이다.

  • 개념: 정보의 무질서도 측정 (Shannon 엔트로피)
  • 특징: 암호화/압축된 데이터는 높은 엔트로피 값 보임
  • 활용: 비정상적으로 높은 엔트로피 섹션 식별

엔트로피 값 해석:

  • 일반 실행 파일: 섹션별 다양한 엔트로피 값
  • 암호화된 코드: 7.0 이상의 높은 엔트로피
  • 압축된 코드: 6.5~7.0 범위의 엔트로피

실제 사례 분석: Emotet의 압축 및 암호화 기법

Emotet은 뱅킹 트로이목마로 시작하여 다양한 악성코드 배포 플랫폼으로 발전한 대표적인 악성코드이다.

Emotet의 회피 기법:

  1. 다단계 압축: 여러 레이어의 압축으로 분석 지연
  2. 커스텀 암호화: 표준 알고리즘 대신 독자적 암호화 루틴 사용
  3. 코드 난독화: 문자열 암호화 및 함수 포인터 남용
  4. 안티 VM: 가상환경 탐지 시 실행 중지

Emotet 감염 흐름:

graph TD
    A[피싱 이메일] --> B[악성 매크로 포함 문서]
    B --> C[1차 다운로더]
    C --> D[암호화된 페이로드 다운로드]
    D --> E[페이로드 복호화]
    E --> F[Emotet 메인 모듈 설치]
    F --> G[추가 모듈 다운로드]
    G --> H[정보 탈취 및 추가 악성코드 배포]

기업 보안 대응 전략

압축/암호화된 바이러스에 대한 효과적인 대응 전략:

  1. 다계층 방어(Defense in Depth):

    • 네트워크, 엔드포인트, 이메일 보안 솔루션 통합 운영
    • 여러 벤더의 엔진 활용한 멀티스캐닝
  2. 샌드박스 기술 활용:

    • 의심 파일 동적 분석
    • 네트워크 격리 환경에서 안전한 테스트
  3. 행위 기반 탐지:

    • 비정상적 시스템 활동 모니터링
    • 프로세스 인젝션, 레지스트리 변경 등 탐지
  4. 네트워크 트래픽 분석:

    • DPI(Deep Packet Inspection) 활용
    • C&C 통신 패턴 탐지
  5. EDR(Endpoint Detection and Response) 도입:

    • 엔드포인트 지속적 모니터링
    • 의심 활동 실시간 대응

결론: 진화하는 위협에 대한 대응

바이러스 압축 및 암호화 기술은 지속적으로 발전하고 있다. 단순한 암호화에서 시작해 다형성, 변형, 가상화 보호 등으로 진화하며 탐지를 어렵게 만들고 있다. 이에 대응하기 위해서는:

  1. 시그니처 기반 탐지에만 의존하지 않는 다층적 보안 접근법 필요
  2. 행위 기반, 휴리스틱, 기계학습 등 다양한 탐지 기법 결합
  3. 보안 팀의 지속적인 교육과 최신 위협 정보 공유
  4. 실시간 모니터링 및 대응 체계 구축

암호화와 압축은 정상적인 소프트웨어 보호에도 사용되는 기술이기에, 악성 여부를 판단하는 정교한 분석 기법이 중요하다. 앞으로도 악성코드 제작자와 보안 전문가 간의 기술적 경쟁은 계속될 것이며, 이에 대한 이해와 적절한 대응 전략 수립이 필수적이다.

Keywords

Virus Encryption, 바이러스 암호화, Polymorphic Virus, 다형성 바이러스, Packers, 패커, Entropy Analysis, 엔트로피 분석, Code Obfuscation, 코드 난독화, Anti-Analysis Techniques, 분석 방지 기법

728x90
반응형