BMP 스테가노그래피 악성코드, 평범한 사진 속에 숨겨진 끔찍한 진실 3가지

BMP 스테가노그래피를 이용한 악성코드 은닉은 이미지 파일의 픽셀 데이터나 구조 내 빈 공간에 악성 페이로드를 삽입해 보안 솔루션의 탐지를 피하는 기법이다. 공격자는 이미지의 시각적 변화를 최소화하며 데이터를 숨긴 뒤, 전용 로더로 해당 데이터를 추출해 메모리 상에서 실행한다.

스테가노그래피 은닉 원리: 왜 공격자들은 이미지 파일에 악성코드를 숨길까?

스테가노그래피는 단순히 데이터를 암호화하는 수준을 넘어 데이터의 존재 자체를 숨기는 기술이다. 현대의 보안 관제 시스템과 엔드포인트 탐지 및 대응(EDR) 솔루션은 실행 파일(.exe, .dll)의 시그니처를 분석하거나 정적 분석으로 악성 여부를 판단한다. 반면 BMP, JPG, PNG 같은 이미지 파일은 일반 데이터 파일로 인식되어 정밀 검사 대상에서 제외되는 경우가 많다. 공격자는 이 점을 이용해 방화벽과 백신 프로그램의 감시망을 무력화한다.

특히 BMP(Bitmap) 형식은 압축되지 않은 래스터 그래픽 데이터 구조라 데이터 삽입이 매우 쉽다. 공격자는 이미지의 최소 단위인 픽셀의 하위 비트(Least Significant Bit, LSB)를 수정해 텍스트나 바이너리 코드를 숨긴다. LSB 기법을 쓰면 색상 값이 아주 미세하게 변할 뿐이라, 인간의 눈으로는 원본과 은닉 후의 이미지 차이를 전혀 구분할 수 없다. 사회 공학적 기법과 결합해 무해한 사진 파일로 위장해 유포할 때 그 효과는 극대화된다.

탐지 회피율을 높이는 것 외에 C2(Command and Control) 서버와 통신할 때 트래픽 분석을 피하려는 목적도 있다. 일반적인 HTTP 통신으로 악성 스크립트를 전송하면 네트워크 침입 탐지 시스템(IDS)에 차단될 가능성이 크지만, 이미지 파일을 다운로드하는 통신은 정상적인 웹 서핑 활동으로 간주되기 때문이다. 스테가노그래피는 초기 침투와 추가 페이로드 다운로드 단계 모두에서 강력한 은닉 수단이 된다.

BMP 스테가노그래피 악성코드 은닉 원리와 기술적 메커니즘

핵심은 파일 포맷의 구조적 허점을 이용하는 데 있다. BMP 파일은 파일 헤더, 정보 헤더, 색상 테이블, 그리고 실제 픽셀 데이터로 구성된다. 공격자는 주로 픽셀 데이터 영역에 악성 코드를 삽입하거나, 파일 끝을 알리는 EOF(End of File) 마커 이후 영역에 데이터를 덧붙인다. 후자의 경우 이미지 뷰어에서는 사진이 정상적으로 출력되지만, 분석 도구로 파일을 열면 하단에 숨겨진 바이너리 데이터가 그대로 드러난다.

더 정교한 LSB(Least Significant Bit) 삽입 방식의 작동 단계는 다음과 같다.

  1. 은닉 대상이 되는 원본 BMP 이미지 파일과 삽입할 악성 페이로드를 준비한다.
  2. 악성 페이로드를 2진수 비트 열로 변환한다.
  3. BMP 이미지의 각 픽셀을 구성하는 RGB 값의 최하위 비트를 악성 코드의 비트로 하나씩 교체한다.
  4. 모든 페이로드 비트가 삽입될 때까지 픽셀을 순회하며 수정을 반복한다.
  5. 수정이 완료된 이미지를 저장하여 외관상 변화가 없는 위장 파일을 완성한다.

LSB 기법은 데이터 용량이 클수록 더 많은 픽셀을 수정해야 하므로 이미지 품질이 떨어질 수 있다. 하지만 최신 악성코드는 고해상도 이미지를 사용해 삽입 공간을 확보함으로써 시각적 왜곡을 완전히 없앴다. 보안 분석가는 단순한 파일 해시 값 비교만으로는 이를 찾아낼 수 없으며, 픽셀 값의 통계적 분포 분석(Steganalysis)을 통해 은닉 여부를 추정해야 한다.

구분 일반적인 파일 은닉 (Append) LSB 스테가노그래피 (LSB Substitution)
삽입 위치 파일 끝(EOF) 이후 영역 픽셀 데이터의 최하위 비트(LSB)
시각적 변화 전혀 없음 이론적으로 존재하나 육안 구분 불가
탐지 난이도 낮음 (파일 크기 증가 및 바이너리 분석으로 확인 가능) 높음 (통계적 분석 및 전용 도구 필요)
구현 복잡도 매우 낮음 중간 (비트 단위 연산 로직 필요)

AgentTesla가 사용하는 BMP 이미지 은닉 기법과 위협 분석

AgentTesla 같은 정보 탈취형 악성코드는 스테가노그래피로 구성 설정 파일이나 추가 모듈을 숨긴다. 전형적인 감염 경로를 보면, 먼저 소형 드롭퍼(Dropper)가 시스템에 침투한 뒤 외부 서버에서 BMP 이미지 파일로 위장한 데이터를 다운로드한다. 이 이미지 내부에는 암호화된 C2 서버 주소나 공격자가 실행하려는 셸코드(Shellcode)가 숨어 있다.

시스템에 상주한 드롭퍼는 BMP 파일의 특정 오프셋(Offset)부터 데이터를 읽어 들이는 복호화 루틴을 실행한다. 단순한 파일 읽기가 아니라 특정 키 값으로 XOR 연산을 수행하거나 AES 복호화를 거쳐 실행 가능한 바이너리로 변환한다. 이렇게 복원된 악성 코드는 디스크에 저장되지 않고 메모리 영역에 직접 할당되어 실행되는 파일리스(Fileless) 방식으로 동작한다. 파일 기반 스캔을 수행하는 전통적인 안티바이러스 솔루션을 완전히 우회하는 치명적인 방식이다.

이 모든 과정이 백그라운드에서 조용히 이뤄지며, 사용자가 웹 페이지에서 이미지를 보는 것만으로도 공격의 단초가 될 수 있어 위험하다. AgentTesla는 탈취한 이메일 계정 정보, 브라우저 저장 비밀번호, 키로깅 데이터 등을 다시 이미지 파일 속에 숨겨 외부로 유출하며 네트워크 보안 장비의 데이터 유출 방지(DLP) 솔루션을 무력화한다. 스테가노그래피는 침투뿐 아니라 데이터 유출 단계에서도 활용되는 전천후 기법인 셈이다.

스테가노그래피 기반 악성코드 탐지 및 대응 전략

BMP 스테가노그래피 공격을 방어하려면 파일 외형이 아닌 내부 구조와 행동 패턴에 집중해야 한다. 정적 분석 단계에서는 파일의 실제 크기와 헤더에 명시된 이미지 크기를 비교해 불일치 여부를 확인하는 것이 기본이다. 이미지 데이터 영역 이후에 비정상적인 데이터 덩어리가 발견된다면 페이로드가 삽입된 상태일 확률이 높다.

실무적인 분석 단계는 다음과 같이 정의할 수 있다.

  1. 파일 구조 분석: Hex Editor를 사용해 BMP 파일 끝부분에 비정상적인 문자열이나 실행 가능한 바이트 코드가 있는지 전수 조사한다.
  2. 통계적 분석: 이미지 픽셀 값 분포를 분석해 LSB 영역의 엔트로피가 비정상적으로 높은지 확인하는 스테그분석(Steganalysis) 도구를 활용한다.
  3. 메모리 포렌식: 이미지 파일이 실행되는 시점에 메모리상에서 복호화되는 페이로드를 덤프해 분석하고, API 호출 패턴(예: VirtualAlloc, CreateRemoteThread)을 모니터링한다.
  4. 네트워크 트래픽 분석: 이미지 파일 다운로드 요청이 빈번하거나, 파일 크기가 일반적인 웹 리소스에 비해 지나치게 큰 경우를 탐지 규칙에 반영한다.

스테가노그래피는 기술적 완벽함보다 보안 솔루션의 맹점을 파고드는 전략적 기법이다. 보안 관제 요원은 이미지 파일 역시 잠재적인 공격 벡터임을 인지하고, 화이트리스트 기반의 파일 실행 제어와 정밀한 메모리 모니터링 체계를 구축해야 한다.

지금까지 BMP 스테가노그래피를 이용한 악성코드의 은닉 원리와 AgentTesla의 실제 활용 사례, 기술적 분석 방안을 살펴보았다. 보이지 않는 위협을 찾아내려면 정교한 분석 도구와 파일 구조에 대한 깊은 이해가 필수적이다. 엔드포인트의 파일리스 공격 탐지 역량을 점검하고 대응 프로세스를 강화해 조직의 보안 수준을 높여야 한다.

댓글 남기기