Eternalblue — DoublePulsar

쑤욱가앗·2025년 9월 29일

Vulnerability

목록 보기
2/6

이터널블루는 마이크로소프트의 서버 메시지 블록(SMB) 프로토콜에 존재하는 특정 취약점(CVE-2017–0144)을 악용하여 원격 코드 실행(RCE)을 가능하게 하는 익스플로잇 도구이다. 반면, 더블펄서는 이터널블루를 통해 감염된 시스템에 설치되는 커널 모드 백도어 임플란트이다. 이 두 도구는 각각의 위협도 크지만, 결합되었을 때 강력한 공격 체인을 형성하여 워너크라이와 같은 악성코드가 사용자 개입 없이도 자체적으로 확산하는 웜(Worm)의 기반을 마련한다.

SMB 취약점 원인

SMB (Server Message Block) 프로토콜의 이해

SMB네트워크 환경에서 파일, 프린터, 기타 자원을 공유하는 데 사용되는 클라이언트-서버 통신 프로토콜이다. 이터널블루 공격의 핵심 표적이 되었던 SMBv1은 1980년대에 개발된 레거시 프로토콜로, 현대적인 암호화 및 인증 방식을 지원하지 않아 다양한 보안 취약점에 노출되어 있다. 이터널블루를 사용한 워너크라이와 낫페티야(NotPetya) 랜섬웨어의 확산은 바로 이 SMBv1의 구조적 한계와 취약성에서 비롯되었다.

이에 비해 2006년 윈도우 비스타와 함께 도입된 SMBv2는 SMBv1과 호환성이 전혀 없는 새로운 프로토콜이다. 이 버전은 HMAC SHA-256 기반의 강력한 메시지 서명으로 보안을 강화한다. SMBv3는 SMBv2를 기반으로 데이터센터 환경에 최적화된 기능을 추가하며, 종단 간(end-to-end) 암호화를 제공하여 신뢰할 수 없는 네트워크에서도 데이터를 보호한다. SMBv1은 “암호화 및 인증 방식의 부재”라는 근본적인 문제점을 지니고 있었으며, 이터널블루 취약점(CVE-2017–0144)은 바로 이러한 구조적 한계와 관련된 불안정한 입력 처리(Improper Input Validation)에서 비롯된다.

이터널블루 (Eternalblue) 기술적 분석

이터널블루는 마이크로소프트 윈도우의 SMBv1 서버에서 발생하는 원격 코드 실행(RCE) 취약점인 CVE-2017–0144를 공격하는 익스플로잇이다. 이 취약점은 패치가 적용되지 않은 시스템에서 원격 공격자가 특수하게 조작된 패킷을 전송하여 임의의 코드를 실행할 수 있도록 허용한다.

이터널블루는 버퍼 오버플로우(buffer overflow)힙 스프레이(heap spraying)라는 두 가지 핵심 기술을 통해 운영체제 커널 레벨에서 코드를 실행시킨다. 버퍼 오버플로우는 SMBv1이 NTFeaList의 크기를 계산하는 과정에서 발생하는 버그를 악용하여, 할당된 버퍼보다 더 많은 데이터를 의도적으로 넘치게 만들어 프로그램의 제어 흐름(control flow)을 조작한다. 이어서 힙 스프레이 기술이 사용되는데, 공격자는 힙 메모리 영역을 미리 예측 가능한 위치의 특정 데이터(주로 셸코드)로 채워 넣어 버퍼 오버플로우 공격 시 제어 흐름을 원하는 위치(셸코드의 시작 주소)로 정확하게 옮길 확률을 극적으로 높인다. 최종적으로 버퍼 오버플로우를 통해 반환 주소를 셸코드가 위치한 주소로 덮어쓰게 되고, 이 조작된 함수가 실행되면서 셸코드가 작동하게 된다.

더블펄서 (DoublePulsar) 기술적 분석

더블펄서는 이터널블루 익스플로잇 성공 후 피해 시스템에 설치되는 백도어 임플란트이다. 이 백도어는 사용자 모드가 아닌 운영체제 커널 모드에서 실행되며, 이를 통해 시스템에 대한 매우 높은 수준의 제어 권한을 얻는다. 시스템 운영자가 침입을 거의 알아차릴 수 없을 정도로 은밀하게 작동한다.

더블펄서의 핵심 기능은 세 가지 명령어를 통해 구현된다. ping, kill, 그리고 공격자가 가장 중요하게 활용하는 exec 명령어이다. exec는 원하는 악성코드를 원격 시스템의 메모리에 주입(inject)하고 실행한다. 더블펄서는 이터널블루 공격 체인의 핵심적인 "중간 다리" 역할을 수행한다. 이터널블루는 초기 침투를 담당하고, 더블펄서는 exec 명령을 통해 어떤 페이로드든 실행할 수 있는 지속성 높은 백도어를 확보하게 한다.

이터널블루와 더블펄서를 활용한 공격 시나리오 및 사례 분석

공격 체인(Attack Chain)의 단계별 상세 분석

이터널블루와 더블펄서를 활용한 공격은 여러 단계에 걸쳐 유기적으로 진행된다. 이 공격 체인은 워너크라이와 같은 웜(Worm) 형태의 악성코드가 사용자 개입 없이 네트워크 전체로 빠르게 확산되는 기반이 된다.

  1. 취약 시스템 탐색 (Reconnaissance): 공격자는 인터넷 스캐닝을 통해 SMBv1 프로토콜을 사용하며 445번 포트가 열려 있는, 패치가 적용되지 않은 시스템을 식별한다.
  2. 이터널블루 익스플로잇 실행: 식별된 타겟 시스템의 445번 포트로 특수하게 조작된 SMB 패킷을 전송하여 버퍼 오버플로우를 일으키고, 셸코드를 실행한다.
  3. 더블펄서 백도어 설치: 이터널블루를 통해 실행된 셸코드는 커널 모드에 더블펄서 백도어를 주입하고 설치한다.
  4. 페이로드(Payload) 실행 및 확산: 백도어 설치가 완료되면, 더블펄서의 exec 명령을 통해 최종 페이로드를 감염된 시스템에 주입하고 실행한다.

주요 악성코드 확산 사례 분석

  • 워너크라이(WannaCry) 랜섬웨어: 2017년 5월 12일에 발생한 워너크라이 공격은 이터널블루와 더블펄서 공격 체인을 가장 극적으로 활용한 사례이다. 마이크로소프트는 이미 보안 패치(MS17–010)를 배포했음에도 불구하고, 많은 컴퓨터가 패치를 적용하지 않아 대규모 피해가 발생했다. 이 공격은 랜섬웨어와 웜 기능을 결합하여, 네트워크 내부로 빠르게 퍼져나가며 20만 대 이상의 컴퓨터를 감염시켰다.
  • 암호화폐 채굴 악성코드 (LemonDuck, Adylkuzz): 레몬덕(LemonDuck)이나 어딜커즈(Adylkuzz)와 같은 악성코드들은 워너크라이와 동일한 이터널블루-더블펄서 공격 체인을 이용해 은밀하게 확산되었다. 이들은 시스템 자원을 몰래 이용해 암호화폐를 채굴하며, 사용자에게 가시적인 피해를 주지 않아 탐지하기 어렵다.
profile
Incident Response

0개의 댓글