SOC Prime Bias: 높음

30 Jul 2026 15:43 UTC

BlueShell 악성코드 변종, APT 캠페인과 연계 확인

Author Photo
SOC Prime Team linkedin icon 팔로우
BlueShell 악성코드 변종, APT 캠페인과 연계 확인
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이 보고서는 Go로 작성된 새로운 리눅스 기반 BlueShell RAT 변종을 조사합니다. 이 버전은 커널 작업자처럼 프로세스를 가장하고 C2 통신을 위한 프록시 서버 사용을 포함하는 향상된 회피 기능을 도입합니다. 이 악성코드는 BlackTech을 포함한 중국 기반 위협 행위자와 연결되어 있습니다.

조사

분석가들은 BlueShell 페이로드를 XOR 디코드하고 압축 해제하여 /tmp/kthread에 로드하는 드로퍼를 식별했습니다. 이 악성코드는 wtim이라는 환경 변수에 인코딩된 구성 데이터를 저장합니다. 조사에서는 호스트 이름 검증 및 내부 프록시를 경유하여 직접적인 C2 연결을 피할 수 있는 새로운 기능도 발견되었습니다.

완화

조직은 /tmp 내에서 의심스러운 파일 생성과 비정상적인 프로세스 이름을 근접 감시해야 합니다. 보안 팀은 또한 내부 프록시 서버를 통해 전송되는 예기치 않은 아웃바운드 트래픽을 감지해야 합니다. 드로퍼가 삭제되었을 때 메모리 포렌식과 파일 시스템 카빙 작업을 수행하여 페이로드와 구성 데이터를 복구해야 합니다. [kworker/12:12]. Security teams should also detect unexpected outbound traffic passing through internal proxy servers. Memory forensics and file system carving should be performed when droppers are deleted to recover payloads and configuration data.

대응

BlueShell 활동이 감지되면, 영향을 받은 호스트는 즉시 격리되고 메모리 포렌식을 통해 악성 프로세스와 그 구성을 식별해야 합니다. 프록시 로그는 C2 IP 주소 48.216.210.91와의 연결을 검토해야 합니다. 또한 조사자들은 초기에 드로퍼가 배포된 방식, 특히 손상된 SSH 자격 증명의 악용 가능성을 확인해야 합니다.

공격 흐름

시뮬레이션 실행

사전 준비: Telemetry & Baseline Pre-flight Check가 통과해야 합니다.

근거: 이 섹션은 탐지 규칙을 작동시키기 위해 설계된 적 공격 기법 (TTP)의 정확한 실행을 상세히 설명합니다. 명령어와 서사는 식별된 TTP와 직접 연관되어야 하며 탐지 로직에 의해 예상되는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련 없는 예시는 오진으로 이어질 수 있습니다.

  • 공격 서사 및 명령어: 적이 리눅스 서버에 초기 접근권을 얻어 BlueShell 변종을 배포하여 지속성을 설정합니다. 탐지를 피하기 위해 악성 프로세스를 /kworker/12:12라는 커널 작업자 스레드로 가장하려고 시도합니다. 동시에 드로퍼는 메인 페이로드를 /tmp/kthread에 압축 해제하려고 합니다. Sigma 규칙에서 정의된 특정 문자열이 알림을 작동하는지 확인하기 위해 프로세스 마스커레이딩과 드로퍼 작업 모두를 시뮬레이션할 것입니다.

  • 회귀 테스트 스크립트:

    #!/bin/bash
    # BlueShell 악성코드 변종 실행 시뮬레이션
    
    echo "[+] BlueShell 시뮬레이션 시작..."
    
    # 1. 드로퍼 동작 시뮬레이션 (/tmp/kthread에 작성)
    echo "드로퍼가 /tmp/kthread에 작성하는 거 시뮬레이션 중"
    echo "#!/bin/bash" > /tmp/kthread
    chmod +x /tmp/kthread
    /tmp/kthread &
    SLEEP_PID=$!
    
    # 2. 가장된 프로세스 실행 시뮬레이션
    # 'Image contains'를 작동시키기 위해 더미 파일을 만들고 대상 프로세스 이름으로 이름 변경
    echo "[+] 가장된 프로세스 /kworker/12:12 시뮬레이션 중"
    echo "echo '나는 가짜 커널 스레드입니다'" > /tmp/fake_worker
    chmod +x /tmp/fake_worker
    # 'contains' 논리를 작동시키기 위해 이름 포함된 경로를 통해 실행
    /tmp/fake_worker --name="/kworker/12:12" &
    WORKER_PID=$!
    
    echo "[+] 시뮬레이션 명령어 실행 완료."
    echo "[+] 텔레메트리 수집 대기 중..."
    sleep 10
    
    # 별도의 명령으로 청소 처리
    echo "[+] 시뮬레이션 완료. 아티팩트를 제거하는 클린업 스크립트를 사용하십시오."
  • 청소 명령어:

    #!/bin/bash
    # 시뮬레이션 아티팩트 청소
    echo "[+] 시뮬레이션 아티팩트 청소 중..."
    rm -f /tmp/kthread
    rm -f /tmp/fake_worker
    pkill -f "/kworker/12:12"
    pkill -f "/tmp/kthread"
    echo "[+] 청소 완료."