본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 28. 06:43

Copilot 에이전트 세션 중 내 3개의 git 저장소에 퍼진 악성코드 — Void Dokkaebi 캠페인, TronGrid C2, 그리고

요약

VS Code Copilot 에이전트 세션 중 사용자의 git 저장소에 악성코드가 주입되는 보안 사고 사례를 보고합니다. Void Dokkaebi 캠페인과 관련된 이 공격은 프롬프트 인젝션이나 확장 프로그램 오염 등을 통해 에이전트가 악성 코드를 직접 커밋하도록 유도했을 가능성을 제기합니다.

핵심 포인트

  • Copilot 에이전트 세션 중 악성 코드 커밋 발생
  • Void Dokkaebi 캠페인(북한 관련 위협)과 일치하는 패턴
  • 프롬프트 인젝션 및 확장 프로그램 오염 가능성 제기
  • 설정 파일(tailwind.config.js 등) 내 난독화된 코드 확인 필요

요약(TL;DR): macOS의 내 저장소 3개에 악성 코드(Void Dokkaebi 캠페인, TRON 블록체인 C2)가 퍼져 있는 것을 발견했습니다. 모든 감염된 커밋은 VS Code Copilot 에이전트 세션 중에 발생했습니다. 이것이 우연인지 아니면 전달 메커니즘인지 아직 파악 중입니다. 여기 여러분의 프로젝트를 확인하는 방법이 있습니다.

내가 발견한 것

하나의 VS Code 워크스페이스 내 3개의 저장소에서 3개의 파일이 감염되었습니다:

  • Backendroutes/user.js
  • Frontend Atailwind.config.js
  • Frontend Btailwind.config.js

모든 커밋은 내 신원으로 이루어졌습니다. 모든 커밋은 의미 있는 멀티 파일 커밋(multi-file commits) 내에 포함되어 있었습니다. 모든 커밋은 C2(Command and Control)로 api.trongrid.io (TRON 블록체인)를 가리키고 있었으며, 디코딩된 페이로드(payloads)를 eval()로 실행했습니다.

이는 Trend Micro가 기록한 Void Dokkaebi 캠페인과 일치합니다. 이는 JS 개발자를 구체적으로 겨냥하여 설정 파일에 코드를 주입하고 피해자의 신원으로 커밋을 위조하는 DPRK(북한) 관련 위협 행위자입니다.

보고서에 없는 부분

감염된 모든 커밋은 활성화된 VS Code Copilot 에이전트 세션 중에 이루어졌습니다.

Trend Micro 보고서에 기록된 메커니즘은 원격 액세스 권한을 가진 공격자가 커밋 변조 스크립트(temp_auto_push.bat)를 실행하는 것을 포함합니다. macOS에서도 이와 유사한 무언가를 사용하여 이 방식이 가능할 수 있지만, 에이전트 세션은 다른 가능성을 제기합니다:

  • 프롬프트 인젝션 (Prompt injection): 워크스페이스 파일에 포함된 악성 지침이 에이전트를 조작하여, 정당한 작업 중에 공격자가 제어하는 코드를 다른 파일에 작성하게 했을 수 있습니다.
  • 확장 프로그램 컨텍스트 오염 (Extension context poisoning): 침해된 VS Code 확장 프로그램이 Copilot의 컨텍스트 윈도우(context window)에 악성 콘텐츠를 보이지 않게 기여했을 수 있습니다.
  • 유기적 전파 (Organic propagation): 워크스페이스 전체를 광범위하게 읽는 에이전트가 이미 주입된 코드를 다른 파일로 부수적으로 퍼뜨렸을 수 있습니다.

현재로서는 이 중 그 어떤 가능성도 배제할 수 없습니다. 에이전트 세션의 타이밍 또한 순전히 우연일 수 있습니다. 여러 파일에 걸친 의미 있는 커밋(commit)은 에이전트 세션의 전형적인 특징이며, 바로 이 점이 메커니즘과 상관없이 에이전트 세션을 훌륭한 위장 수단으로 만듭니다.

알 수 없는 실행 중인 node 프로세스 확인

 ps aux | grep node

알려진 파일 위치에서 직접 시작한 것으로 확인되는 프로세스만 목록에 있어야 합니다.

프로젝트 스캔

있어서는 안 될 위치에 길고 난독화된(obfuscated) 코드가 있는지 확인하십시오.

  1. routes/*.js
  2. *.config.js/ts/mjs..etc (예: tailwind.config.js, vite.config.mjs)

탐지 스크립트는 아래에 첨부되어 있습니다.

특히 다음의 경우를 확인하십시오:

  • 멀티 리포지토리(multi-repo) 워크스페이스에서 Copilot 에이전트 또는 다른 에이전트 기반 코딩 도구(agentic coding tool)를 사용하는 경우
  • 채용 담당자나 기술 평가를 위해 리포지토리(repo)를 클론(clone)한 적이 있는 경우
  • VS Code에서 여러 개의 JS 프로젝트를 동시에 열어두고 작업하는 경우

만약 발견했다면

해당 기기에서의 커밋(commit)을 중단하고, 모든 것이 침해되었다고 가정하십시오.

  • 모든 토큰(GitHub, npm, SSH 키, 클라우드 제공업체)을 취소(Revoke)하십시오.
  • 해당 프로젝트의 모든 비밀 정보(secrets)를 재설정하십시오.
  • 리포지토리 협업자들에게 알리십시오.
    • 감염된 코드를 클론(clone)하거나 포크(fork)한 모든 사람에게 알리십시오.

여전히 데이터를 수집 중입니다. 만약 이런 사례를 보셨다면 — 특히 발생 당시 에이전트 기반 코딩 도구를 사용 중이었다면 — 댓글을 남겨주세요. 그것이 제가 수집하고자 하는 구체적인 데이터 포인트입니다.
탐지 스크립트와 전체 보고서는 GitHubMedium에서 확인하실 수 있습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0