가짜 면접, 개발자 머신을 노리는 악성코드 공격

by DD
3개월 전
조회수 4

악성 레포지토리(Malicious Repositories)를 통해 개발자 머신에 백도어를 설치하는 공격이 발생

VS Code 자동화, 빌드 타임 실행, 서버 시작 시 실행 등 다양한 경로를 통해 백도어 실행

공격의 목표는 자격 증명 탈취(Credential Theft), 세션 탈취(Session Theft), 파일 업로드(File Upload)

Microsoft Defender는 공격 지표(IOC)를 공개하고, 개발자 및 보안팀에 대한 권고 사항 제시

공격 경로 분석: VS Code, 빌드, 서버 실행

공격은 VS Code 워크스페이스 자동화(Workspace Automation), 빌드 타임 실행(Build-time Execution), 서버 시작 실행(Server Startup Execution) 등 3가지 경로를 통해 이루어진다. 특히, `.vscode/tasks.json`을 악용하여 프로젝트를 열 때 악성 코드를 실행하거나, `npm run dev` 실행 시 트로이 목마화된 자바스크립트(Trojanized JavaScript)를 로드하는 방식은 개발 환경을 정교하게 파고든다. 이러한 공격은 개발자의 일상적인 작업 흐름에 자연스럽게 녹아들어 탐지를 어렵게 만든다.

C2 인프라 및 악성 행위

공격은 2단계 C2 시스템을 통해 이루어진다. Stage 1은 지속 가능한 instanceId를 폴링하는 경량 등록기 역할을 하며, Stage 2는 JavaScript 작업을 수신하여 실행하는 영구적인 컨트롤러로 업그레이드된다. 공격자는 이 시스템을 통해 자격 증명 탈취(Credential Theft), 세션 탈취(Session Theft), 디렉토리 탐색(Directory Browsing), 파일 업로드(File Upload) 등 다양한 악성 행위를 수행한다. 특히, 개발자의 `.env` 파일, GitHub 토큰, 데이터베이스 비밀번호 등 민감한 정보를 탈취하여 심각한 피해를 야기한다.

개발자 머신 보안 강화 방안

Microsoft는 개발자에게 VS Code 워크스페이스 신뢰(Workspace Trust)제한 모드(Restricted Mode) 활성화를 권고한다. 또한, 알려지지 않은 레포지토리를 신뢰하기 전에 `.vscode/tasks.json` 및 `next.config.js`를 검토하고, 공식 채널을 통해 채용 제안을 확인해야 한다고 강조한다. 데이터 미저장 정책(Zero-Retention Policy)을 통해 잠재적 피해를 최소화하고, 의심스러운 코드는 가상 머신(VM)에서 실행하는 것이 안전하다.

보안팀의 대응 전략

보안팀은 Node.js 프로세스가 `vercel.app` 도메인 및 C2 IP 주소로 반복적인 아웃바운드 연결을 시도하는지 감시해야 한다. 또한, 자식 Node 인터프리터(detached child Node interpreters)를 찾아내고, `.env`, 쿠키, 브라우저 기록에 대한 의심스러운 파일 접근을 모니터링해야 한다. Microsoft Defender 공격 표면 감소 규칙(Attack Surface Reduction Rules)을 활성화하여 난독화된 스크립트 실행을 차단하는 것도 중요하다.

공격의 심각성과 영향

이 공격은 공급망 공격이 아닌, 개발자의 작업 방식을 악용한 소셜 엔지니어링(Social Engineering)의 일종이다. 개발자는 소스 코드, 클라우드 자격 증명, 프로덕션 시스템에 대한 접근 권한을 가지고 있기 때문에, 한 대의 개발자 머신이 손상되면 모든 것에 대한 접근 권한이 노출될 수 있다. 특히, 데이터 격리 아키텍처(Data Isolation Architecture)가 미흡한 환경에서는 피해가 더욱 커질 수 있다. 따라서 개발 환경에 대한 보안 강화가 시급하다.

Fake Job Interviews Are Installing Backdoors on Developer Machines