SOC Prime Bias: Critical

29 Jun 2026 06:14 UTC

또 하나의 STOCKSTAY: Turla의 지능정보 수집 기구에 대한 최신 추가 사항

Author Photo
SOC Prime Team linkedin icon 팔로우
또 하나의 STOCKSTAY: Turla의 지능정보 수집 기구에 대한 최신 추가 사항
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

구글 위협 인텔리전스 그룹은 러시아와 연계된 위협 행위자인 Turla가 사용하는 다중 구성 요소 .NET 백도어 STOCKSTAY를 식별했습니다. 해당 악성코드는 터널러, 오케스트레이터, 백도어 구성 요소를 포함한 모듈형 설계로 안전한 WebSocket을 통해 통신합니다. 이는 정부 및 군사 목표를 대상으로 한 장기적인 사이버 첩보 작전을 지원하기 위해 설계되었습니다.

조사

GTIG는 STOCKSTAY 생태계를 심층 분석하여 2022년 12월로 그 개발을 추적했습니다. 연구원들은 모듈형 구성 요소를 매핑하고, 환경 키를 사용하여 구성 데이터를 해독하는 방법을 조사하며, 주식 시장 유틸리티로 자신을 위장하는 데서 다른 무해한 애플리케이션으로 위장하는 것으로의 전환을 문서화했습니다. 조사에서는 또한 문자열 난독화를 위한 K1MORPHER 사용 및 Turla의 알려진 KAZUAR 툴킷과의 연결도 드러났습니다.

완화

조직은 수상한 .NET 애플리케이션 동작 및 낯선 도메인으로의 이상한 WebSocket 트래픽에 대한 강력한 모니터링을 배포해야 합니다. 악성 RDP 파일을 통한 초기 접근 방어와 피싱에 대한 이메일 보호 강화도 중요합니다. 또한, WinRAR의 CVE-2025-8088과 같은 취약점을 패치하여 악용 기반 배포 차단에 도움을 줄 수 있습니다.

대응

STOCKSTAY 활동이 감지되면 즉시 영향을 받은 호스트를 격리하여 추가적인 명령 및 제어 통신과 수평 이동을 차단해야 합니다. 무단 레지스트리 변경 및 새로 생성된 예약 작업에 특히 집중하여 전체 손상 범위를 파악하기 위한 상세한 포렌식 조사를 수행하십시오. 네트워크 로그도 장기 WebSocket 세션에 대해 검토해야 하며, 시스템에서 STOCKSTAY 구성 요소 파일의 존재 여부를 확인해야 합니다.

"flowchart TD step_initial_access["초기 접근: T1566 – 피싱 (RDP 파일, MSI, 또는 RAR과 같은 스피어피싱 첨부파일; 손상된 사이트로의 스피어피싱 링크)"] step_execution["실행: T1204.002 – 사용자 실행: 악성 파일 (HTA 파일, RDP 설정); T1574.014 – 실행 흐름 하이재킹: AppDomainManager (.NET 페이로드); T1543 – 시스템 프로세스 생성 또는 수정"] rules_for_execution("<b>규칙 이름</b>: 프로세스 생성에 의해 관련 명령어 감지를 통한 수상한 LOLBAS MSHTA 방어 회피 행동<br/><b>규칙 ID</b>: feb459cf-289a-41ab-9241-d8edc232c487") step_persistence["지속성: T1543 – 시스템 프로세스 생성 또는 수정 (자동 실행 항목); T1133 – 외부 원격 서비스 (장기 연결성)"] step_defense_evasion["방어 회피: T1036 – 위장 (무해한 유틸리티로 이름 변경); T1027.015 – 난독화된 파일 또는 정보: 압축; T1497.001/002 – 가상/샌드박스 회피 (WMI를 통한 시스템/하드웨어 정보 수집)"] step_discovery["발견: T1012 – 레지스트리 쿼리; T1497.001 – 가상화/샌드박스 회피 (WMI를 통한 시스템/하드웨어 정보 수집)"] step_command_and_control["명령 및 제어: T1102.002/003 – 웹 서비스: 양방향/단방향 통신 (렌더를 통한 WebSocket); T1568 – 동적 해상도"] rules_for_c2("<b>규칙 이름</b>: C2 채널로의 가능 공공노드 이더리움 악용 시도 (dns_query를 통해)<br/><b>규칙 ID</b>: 280e86bf-fad9-4b9c-8867-e2355e3f50ba") step_collection_exfiltration["수집 및 유출: T1560.002/003 – 라이브러리 또는 사용자 정의 방법을 통한 수집 데이터 압축 (메모리 내의 ZIP 아카이브)"] step_initial_access –>|leads_to| step_execution step_execution –>|enables| step_persistence step_execution -.->|detected_by| rules_for_execution step_persistence –>|leads_to| step_defense_evasion step_defense_evasion –>|enables| step_discovery step_discovery –>|leads_to| step_command_and_control step_command_and_control –>|enables| step_collection_exfiltration step_command_and_control -.->|detected_by| rules_for_c2 "

공격 흐름

시뮬레이션 실행

전제조건: 원격 측정 및 기본선 출발 전 점검이 통과해야 합니다.

이유: 이 섹션은 감지 규칙을 일으키기 위해 설계된 적 임무 기술 실행의 정확한 내용을 설명합니다. 명령어와 내러티브는 확인된 TTP를 직접 반영해야 하며, 감지 로직에 예상하는 정확한 원격 측정 생성을 목표로 해야 합니다. 추상적인 내용이나 관련이 없는 예시는 오진으로 이어질 수 있습니다.

  • 공격 서사 및 명령: 공격자는 합법적인 마이크로소프트 업데이트 컴포넌트로 가장한 도구를 사용하여 지속성을 확립하려고 합니다. 탐지를 피하기 위해, 공격자는 그들의 STOCKSTAY 백도어 이름을 MicrosoftUpdateOneDrive.exe 로 바꾸어 임시 디렉토리에 배치하였습니다. 목표는 이 프로세스를 실행하여 역셸 혹은 명령 및 제어(C2) 통신을 시작하는 것으로, ‘합법적’인 이름을 사용하여 기본 프로세스 모니터링을 피하려는 것입니다.

  • 회귀 테스트 스크립트:

    # 시뮬레이션 스크립트: STOCKSTAY 위장 실행
    $MaliciousName = "MicrosoftUpdateOneDrive.exe"
    $TargetDir = "$env:TEMPStockstaySim"
    
    # 1. 시뮬레이션 "악성" 디렉토리와 파일 생성
    if (!(Test-Path $TargetDir)) { New-Item -Path $TargetDir -ItemType Directory -Force }
    $FakeBinary = Join-Path $TargetDir $MaliciousName
    
    # 2. 테스트 목적으로 명령 프롬프트(cmd.exe)를 복사하여 더미 실행 파일 만들기
    Copy-Item "C:WindowsSystem32cmd.exe" -Destination $FakeBinary -Force
    
    Write-Host "[+] 시뮬레이션: $FakeBinary 생성됨" -ForegroundColor Cyan
    
    # 3. "악성" 프로세스 실행
    Write-Host "[+] 시뮬레이션: $MaliciousName 실행 중..." -ForegroundColor Yellow
    Start-Process -FilePath $FakeBinary -ArgumentList "/c echo STOCKSTAY_SIMULATION_ACTIVE" -WindowStyle Hidden
    
    Write-Host "[+] 시뮬레이션: 프로세스 실행 트리거됨." -ForegroundColor Green
  • 정리 명령:

    # 정리 스크립트
    $TargetDir = "$env:TEMPStockstaySim"
    if (Test-Path $TargetDir) {
        Remove-Item -Path $TargetDir -Recurse -Force
        Write-Host "[+] 정리: 시뮬레이션 디렉토리 $TargetDir 삭제됨" -ForegroundColor Green
    } else {
        Write-Host "[-] 정리: 시뮬레이션 디렉토리가 발견되지 않음." -ForegroundColor Red
    }