GlassWorm 캠페인, VS Code 확장을 통해 숨겨진 로더 확산
Detection stack
- AIDR
- Alert
- ETL
- Query
개요
GlassWorm 위협 행위자와 연결된 악성 Visual Studio 코드 확장 프로그램 클러스터가 VS 코드 마켓플레이스 및 Open VSX에서 발견되었습니다. 세련된 컬러 테마로 위장한 이 확장 프로그램들은 보조 페이로드를 검색하도록 설계된 난독화된 JavaScript 로더를 포함하고 있습니다. 이 캠페인은 소프트웨어 공급망을 악용하여 개발자를 겨냥하고 손상된 환경에서 민감한 데이터를 도용합니다.
조사
Socket 연구원은 Git 히스토리 분석 및 소스 코드 지문 인식을 통해 두 개의 확인된 악성 확장 프로그램과 다수의 고위험 클러스터와 연결된 ID를 식별했습니다. Aurora Nocturne Night Theme과 Cosmic Nebula Themes를 포함한 확장 프로그램들은 단계적 로더, AES-256-CBC 복호화, Solana 블록체인 거래 메모를 C2 인프라의 데드 드롭 해결책으로 사용했습니다. 연구원들은 또한 브랜드 자킹과 러시아어 주석을 포함한 공유 개발 아티팩트를 관찰했습니다.
완화
조직은 VS 코드 및 유사한 편집기에 설치된 개발자 확장 프로그램의 목록을 작성하며, 특히 Visual Studio 마켓플레이스와 Open VSX 레지스트리에서 가져온 패키지에 주의를 기울여야 합니다. 보안 검토는 package.json 파일, 실행 가능한 기준점, 테마 확장의 경우 예상치 못한 네트워크 또는 프로세스 실행 기능을 조사해야 합니다. 엄격한 확장 권한을 시행하고 무단 스크립트 실행을 모니터링하면 공급망 위험을 더욱 줄일 수 있습니다.
대응
VS 코드에서 예상치 못한 cmd.exe 프로세스가 실행되거나 temp_batch.cmd가 존재하는 등 지표가 발견되면 즉시 해당 호스트를 격리해야 합니다. 잠재적으로 손상된 자격 증명, 세션 토큰, 암호화폐 지갑을 조사하세요. 식별된 악성 확장 프로그램을 제거하고 개발 환경을 포괄적으로 포렌식 리뷰하여 지속적 백도어 또는 추가 페이로드가 남아 있는지 확인하십시오.
공격 흐름
우리는 이 부분을 아직 업데이트 중입니다.
탐지
[cmd.exe /C]를 통한 (cmdline을 통한) 의심스러운 실행 가능/스크립트 실행 위치
비정상적인 최상위 도메인(TLD) DNS 요청에 의한 의심스러운 명령 및 제어 (dns를 통한)
검출을 위한 IOC (HashSha256): Pretty Themes, Hidden Loaders: GlassWorm과 연결된 확장 프로그램이 VS 코드 마켓플레이스와 Open VSX 소켓에 걸쳐 발견됨
검출을 위한 IOC (HashMd5): Pretty Themes, Hidden Loaders: GlassWorm과 연결된 확장 프로그램이 VS 코드 마켓플레이스와 Open VSX 소켓에 걸쳐 발견됨
잠재적 손상을 나타내는 악성 VS 코드 스크립트 실행 [Windows 파일 이벤트]
VS 코드 확장 프로그램으로부터의 악성 스크립트 실행 [Windows 프로세스 생성]
시뮬레이션 실행
-
공격 내러티브 및 명령: 공격자가 개발자의 워크스테이션에 악성 VS 코드 테마 확장 프로그램을 설치하도록 속여 결국 성공적으로 손상시켰습니다. 활성화되면 확장 프로그램은 리모트 서버(입력 도구 전송)에서 악성 페이로드를 가져오는 백그라운드 프로세스를 실행합니다. 지속성을 확립하고 추가 도구를 다운로드하는 공격의 다음 단계를 시작하기 위해 확장 프로그램은 다음과 같이 명명된 작은 배치 스크립트를 작성합니다
temp_batch.cmd사용자의%TEMP%디렉토리에 저장됩니다. 이 스크립트는 전통적인 서명 기반 안티바이러스를 회피하기 위해 난독화된 명령을 실행하도록 설계되었습니다. -
회귀 테스트 스크립트:
# 시뮬레이션 스크립트: 악성 VS 코드 확장 페이로드 드롭 # 목표: 'temp_batch.cmd'라는 특정 파일을 %TEMP%에 생성하여 탐지 규칙을 트리거합니다. $tempPath = $env:TEMP $fileName = "temp_batch.cmd" $fullPath = Join-Path $tempPath $fileName Write-Host "[*] 악성 VS 코드 확장 활동을 시뮬레이션합니다..." -ForegroundColor Cyan # 악성 배치 파일 생성 $scriptContent = @" @echo off echo 악성 페이로드 실행 시뮬레이션... powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -Command "Write-Host '악성 명령 실행됨'" "@ try { Set-Content -Path $fullPath -Value $scriptContent -ErrorAction Stop Write-Host "[+] 성공: $fullPath 생성됨" -ForegroundColor Green Write-Host "[!] SIEM/EDR에서 탐지 경고를 모니터하세요." -ForegroundColor Yellow } catch { Write-Host "[-] 실패: 파일을 생성할 수 없습니다. 오류: $($_.Exception.Message)" -ForegroundColor Red } -
정리 명령:
# 정리 스크립트: 시뮬레이션 중에 생성된 아티팩트를 제거합니다 $tempPath = $env:TEMP $fileName = "temp_batch.cmd" $fullPath = Join-Path $tempPath $fileName if (Test-Path $fullPath) { Remove-Item -Path $fullPath -Force Write-Host "[+] 정리 완료: $fullPath 제거됨." -ForegroundColor Green } else { Write-Host "[-] 정리 실패: 파일을 찾을 수 없습니다." -ForegroundColor Red }