VS Code, 악성 코드의 새로운 표적이 되다: tasks.json 파일 취약점

by DD
4개월 전
조회수 16

Visual Studio Code의 tasks.json 파일을 악용하여 악성 코드를 실행하는 공격이 발생, 개발 환경의 보안 취약성을 드러냄

공격은 주로 채용 과정 또는 기술 과제를 위장한 악성 깃(Git) 저장소를 통해 이루어짐

자동 작업 실행 설정을 끄고, 출처를 알 수 없는 저장소는 신뢰하지 않는 것이 중요함

커뮤니티에서는 IDE의 자동 코드 실행 기능에 대한 근본적인 문제 제기 및 샌드박스(Sandbox) 강화 필요성을 강조함

tasks.json을 통한 악성 코드 실행 메커니즘

Jamf Threat Labs의 보고서에 따르면, 공격자는 Visual Studio Code의 tasks.json 설정 파일을 악용하여 악성 코드를 실행한다. 피해자가 악성 깃(Git) 저장소를 열고, 저장소 제작자를 신뢰하면 tasks.json 파일에 포함된 임의의 명령이 실행된다. 특히, macOS 시스템에서는 `nohup bash -c`와 `curl -s`를 사용하여 원격 JavaScript 페이로드를 다운로드하고 Node.js 런타임에서 실행한다. 이는 Visual Studio Code 프로세스가 종료되어도 실행이 지속되도록 설계되었다.

백도어(Backdoor) 페이로드 분석

악성 JavaScript 페이로드는 원격 코드 실행(Remote Code Execution), 시스템 정보 수집, C2 서버(Command and Control Server)와의 통신 기능을 수행한다. 페이로드는 시스템의 호스트 이름, MAC 주소, 운영체제 정보를 수집하여 감염된 시스템을 식별한다. 또한, `ipify.org`를 통해 피해자의 공인 IP 주소를 확인한다. AI 환각(Hallucination)을 방지하기 위해, 본문에서 제공된 정보만을 기반으로 분석했다.

개발 환경 보안의 중요성

커뮤니티에서는 IDE의 자동 코드 실행 기능에 대한 우려를 표명하며, 샌드박스(Sandbox) 강화의 필요성을 강조한다. 자동 작업 실행 설정을 끄고, 출처를 알 수 없는 저장소는 신뢰하지 않는 것이 중요하다는 의견이 지배적이다. 또한, 의존성 관리(Dependency Management)의 중요성을 강조하며, `npm install` 실행 시 `package.json` 파일, 설치 스크립트, tasks.json 파일 등을 주의 깊게 검토해야 한다고 조언한다.

VS Code의 보안 설정 권장 사항

사용자들은 VS Code 설정에서 'tasks'를 검색하여 'Task: Allow Automatic Tasks' 설정을 끄는 것을 권장한다. 또한, 멀티모달 분석(Multimodal Analysis)을 통해 악성 코드의 특징을 파악하고, 잠재적인 위협을 사전에 감지하는 것이 중요하다. 데이터 미저장 정책(Zero-Retention Policy)을 통해 민감한 정보를 보호하고, 데이터 격리 아키텍처(Data Isolation Architecture)를 구축하여 시스템의 보안을 강화해야 한다.

Threat actors expand abuse of Microsoft Visual Studio Code

댓글 0

첫 번째 댓글을 남겨보세요!