SOC Prime Bias: 중요

05 Aug 2026 07:20 UTC

NullReceiver가 빈 암호화 전송으로 EtherHiding을 발전시키다

Author Photo
SOC Prime Team linkedin icon 팔로우
NullReceiver가 빈 암호화 전송으로 EtherHiding을 발전시키다
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

북한과 연계된 위협 행위자들이 NullReceiver로 불리는 새로운 블록체인 기반 C2 해상도를 사용하고 있습니다. 이 기술은 제로-값 이더리움 전송의 수신자 주소 바이트 내에 C2 IP 주소를 내장하여 전통적인 EtherHiding보다 탐지가 어렵게 만듭니다. 관련 악성 코드는 트로이 목마화된 npm 패키지를 통해 배포됩니다.

조사

연구자들은 공개된 npm tarball의 정적 분석과 공개 블록체인에서 공격자가 제어하는 트랜잭션의 읽기 전용 검사를 통해 활동을 조사했습니다. 분석을 통해 다음의 두 가지 악성 npm 패키지가 식별되었습니다. bianira-ui and fluid-type-ui, 이는 NullReceiver를 사용하여 명령 및 제어 인프라스트럭처를 해결합니다.

완화

방어자들은 알려진 공격자 제어 이더리움 지갑과 관련된 블록체인 활동을 모니터링하고 제로-값 전송에 사용된 수신자 주소를 검사해야 합니다. 조직은 또한 트로이 목마화된 패키지 설치를 방지하기 위해 npm 종속성에 대한 소프트웨어 공급망 통제를 강화해야 합니다.

대응

NullReceiver 활동이 감지되면 영향을 받은 Node.js 환경을 즉시 격리해야 합니다. 조사관은 악성 npm 패키지의 출처를 식별하고 관련 C2 IP 주소 및 이더리움 지갑 주소를 네트워크 및 응용 프로그램 계층 모두에서 차단해야 합니다.

공격 흐름

시뮬레이션 실행

필수 조건: Telemetry & Baseline Pre-flight Check가 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 상대방 기술 (TTP)의 정확한 실행을 자세히 설명합니다. 명령과 설명은 반드시 식별된 TTP를 직접 반영하고 탐지 논리에 의해 예상되는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련 없는 예는 오진을 초래할 것입니다.

  • 공격 서사 및 명령: 상대방은 전통적인 IP 기반 블랙리스트를 우회하는 은밀한 C2 채널을 설정하려고 합니다. 이를 위해 그들은 ‘NullReceiver’ 기술을 사용하는 악성 npm 패키지를 배포합니다. 스크립트는 특정 난독화된 문법 (global.i = "A10-npm3!", global.r = require) 을 사용하여 전역 변수를 초기화하고 즉시 https://1rpc.io/eth 엔드포인트에 액세스합니다. 이를 통해 멀웨어는 특정 이더리움 트랜잭션의 ‘수신자’ 필드를 읽을 수 있으며, 여기에는 실제 C2 서버의 인코딩된 IP 주소가 포함되어 있습니다. 이 방법은 합법적인 블록체인 인프라를 사용하여 악의적인 의도를 숨깁니다.

  • 회귀 테스트 스크립트:

    #!/bin/bash
    # NullReceiver C2 기술 탐지를 위한 시뮬레이션 스크립트
    # 탐지 규칙에 정의된 특정 패턴을 모방하는 악성 노드 스크립트 생성
    cat << 'EOF' > malicious_npm_payload.js
    // Sigma 규칙에 정의된 정확한 패턴 모방
    global.i = "A10-npm3!"; 
    global.r = require;
    const https = require('https');
    // 멀웨어는 특정 RPC 엔드포인트에 접속하여 명령을 가져옵니다
    const url = 'https://1rpc.io/eth';
    console.log("[!] 블록체인 기반 C2 조회를 시작합니다...");
    https.get(url, (res) => {
      console.log("[!] 연결에 성공했습니다. 블록체인 상태를 분석하는 중...");
      res.on('data', (d) => {
        // 실제 공격에서는 C2 IP에 대한 '수신자' 필드를 구문 분석했을 것입니다
        console.log("[!] NullReceiver 기술을 통해 명령을 수신했습니다.");
      });
    }).on('error', (e) => {
      console.error(`[X] 연결 실패: ${e.message}`);
    });
    EOF
    # 노드를 사용하여 악성 스크립트를 실행
    echo "[*] 악성 시뮬레이션을 실행 중입니다..."
    node malicious_npm_payload.js
    # 스크립트 파일 정리
    rm malicious_npm_payload.js
  • 정리 명령:

    # 시뮬레이션 중에 생성된 모든 아티팩트 제거
    rm -f malicious_npm_payload.js