암호화폐 공급망 공격, 이제 AI 코더를 통해 유입

북한의 PromptMink 및 Mastra 캠페인은 AI 코딩 에이전트가 오염된 npm 의존성을 통해 지갑을 탈취함으로써 암호화폐 공급망 공격의 새로운 전선이 되었음을 보여줍니다.

암호화폐 공급망 공격, 이제 AI 코더를 통해 유입

2026년 2월 28일, 오픈소스 솔라나 트레이딩 봇인 openpaw-graveyard에 일상적인 코드 커밋이 반영되었습니다. 이 커밋은 단일 의존성인 @solana-launchpad/sdk를 추가했습니다. 해당 커밋은 Anthropic의 Claude Opus가 공동 저자로 참여했습니다. 이 의존성은 깔끔해 보였습니다 — 정제된 README, 정확한 TypeScript 타입, 실제 솔라나 기능. 그러나 동시에 @validate-sdk/v2라는 북한발 자격 증명 탈취 도구를 은밀하게 가져와, 운영자에게 프로젝트의 지갑과 자금에 대한 접근 경로를 제공했습니다. 암호화폐 공급망 공격은 AI 시대에 접어들었고, 거의 아무도 올바른 계층을 방어하지 못하고 있습니다.

이 캠페인을 발견하고 PromptMink라고 명명한 위협 인텔리전스 기업 ReversingLabs는 이 반전을 한 줄로 요약했다: "악성 패키지는 LLM 코딩 에이전트보다 인간을 더 잘 속여 사용하게 만들었다." 이 문장은 현재 크립토에서 개발을 진행하는 모든 사람을 경계하게 해야 한다.

제가 주장하려는 논리는 의도적으로 불편한 것입니다. 암호화폐는 지난 10년과 수억 달러를 블록체인 — 스마트 계약, 합의 로직, 다중 서명 — 의 감사에 쏟아부었습니다. 하지만 실제 자금은 이제 한 단계 위, 즉 개발자의 키보드에서, 개발자 자신의 AI 어시스턴트가 직접 전달한 멀웨어에 의해 훔쳐지고 있습니다. 우리는 금고는 방어하고 있었지만, 강도들은 금고가 놓인 방의 자물쇠를 여는 법을 배웠습니다.

핵심 요약

- ReversingLabs는 2026년 4월 29일에 PromptMink를 공개했습니다: 북한 해킹 그룹 Famous Chollima가 AI 코딩 어시스턴트를 사용하여 실행 중인 자율 트레이딩 에이전트에 지갑 탈취용 npm 의존성을 심었습니다.

- 이는 고립된 문제가 아닙니다. 2026년 6월의 Mastra 공격(Sapphire Sleet)은 88분 만에 140개 이상의 AI 프레임워크 패키지를 오염시켰으며, 2026년 상반기에는 497개의 악성 패키지가 생성되어 2025년 전체의 패키지 볼륨의 약 4.5배에 달합니다.

- 자금은 더 이상 스마트 컨트랙트 악용을 통해 이동하지 않습니다. 개발자의 워크스테이션을 통해 소프트웨어 공급망에서 도난당합니다.

- 사설 키를 보유하는 자율형 AI 에이전트로의 업계 경쟁은 북한이 이미 어떻게 탈취할지 알고 있는 정확한 표적을 구축하고 있다.

왜 공격이 오프체인으로 이동했는가?

PromptMink은 인간과 기계 간의 간극을 노리는 정점에 도달한 사례입니다. 유명한 Chollima(Shifty Corsair로도 추적되며, BlueNoroff 및 Sapphire Sleet 클러스터와 겹침)는 2계층 패키지 아키텍처를 구축했습니다. 첫 번째 계층은 미끼입니다. @solana-launchpad/sdk, @meme-sdk/trade, @validate-ethereum-address/core와 같은 패키지는 진정하고 유용한 Web3 기능을 제공하며 악성 코드는 전혀 포함하지 않습니다. 두 번째 계층은 일회용 페이로드입니다. @validate-sdk/v2와 그 형제 패키지들은 실제 탈취 작업을 수행하며, 레지스트리가 하나를 차단하면 몇 시간 내에 교체될 수 있습니다.

업계에게 오한을 불러일으켜야 할 부분은 미끼가 어떻게 정교하게 조정되었는지에 있습니다. ReversingLabs는 이 기술을 "LLM 최적화(LLMO) 남용"이라고 부릅니다. 이 패키지들은 긴 형식의 잘 정리된 README와 다듬어진 문서로 설계되어, AI 코딩 에이전트가 맡은 작업에 대한 이상적인 답변처럼 읽히도록 만들어졌습니다. 코드 자체는 "바이브 코딩"(LLM으로 생성)되었으며, 프로덕션 파일에 "README를 난독화해야 하나요?"라는 주석이 남아 있는 등 잔여 흔적이 발견되었습니다. 인간 개발자는 지난 주에 다운로드가 12회밖에 없었던 패키지를 눈치챘을 것입니다. 하지만 에이전트는 의미적 적합성과 문서 품질만 보았습니다.

그런 다음 페이로드가 심화되었습니다. 초기 버전은 .env 및 .json 파일을 스캔하는 단순한 JavaScript 정보 탈취 프로그램이었으며, 이후 변종들은 80메가바이트 크기의 Node.js 단일 실행 파일로 발전했고, 컴파일된 Rust 애드온들은 공격자의 SSH 키를 심어 지속성을 확보하고 전체 소스 트리를 탈취했습니다. 약 7개월 동안 이 캠페인은 300개 이상의 버전을 아우르는 60개 이상의 고유 패키지를 게시했습니다. Expel의 독립적인 연구에 따르면, 2026년 1분기 동안 이 운영과 관련된 확인된 암호화폐 절도 금액은 약 1,200만 달러에 달했습니다.

AI가 의존성을 선택할 때 누가 이기는가?

이것은 단일 사건이 아닙니다. 이는 문서화된 캠페인입니다. 2026년 4월, 같은 궤도에 있는 공격자가 Axios HTTP 클라이언트를 침해했습니다. Axios는 지구상에서 가장 많이 다운로드된 JavaScript 라이브러리 중 하나이며, 이를 통해 OpenAI의 macOS 앱 서명 워크플로우를 침해하여 ChatGPT Desktop, Codex, Atlas의 코드 서명 인증서 회수를 강요했습니다. 2026년 6월, Sapphire Sleet는 이전에 Mastra 기여자였으며 게시 권한이 취소되지 않은 dormant npm 계정 'ehindero'를 하이재킹하여 88분 동안 @mastra AI 에이전트 프레임워크의 140개 이상의 패키지를 다시 게시했습니다. 독이 든 페이로드는 ubiquitous dayjs 라이브러리의 타이포스쿼팅인 easy-day-js였으며, postinstall 드롭퍼를 실행하여 Windows, macOS, Linux 전역의 166개 암호화폐 지갑 브라우저 확장 프로그램을 표적으로 삼았습니다.

Palo Alto의 Unit 42는 이 추세를 수치화했습니다: 2026년 상반기에는 AI 에이전트 도구 표적 37개 캠페인과 497개의 악성 패키지가 확인되었으며, 이는 2025년 전체의 캠페인 수의 약 2.6배, 패키지 수량의 4.5배에 해당합니다. Socket은 2025년 1월 이후 npm, PyPI, Go, Rust, Packagist 전반에 걸쳐 이 활동과 연결된 1,700개 이상의 악성 패키지를 식별했습니다.

누가 손해를 보는지는 명확하다: 검증되지 않은 의존성들을 상대로 프로덕션 에이전트를 '바이브 코딩'하는 모든 팀, 노트북에서 npm install을 자동 실행하는 모든 솔로 개발자, 그리고 핫키 접근 기능을 갖춘 '자율 에이전트' 기능을 출시하는 모든 프로토콜이다. 누가 이기는지도 마찬가지로 명확하다: AI 코딩 에이전트를 검증 레이어가 아닌 공격 표면으로 간주하는 보안 벤더들 — ReversingLabs, Socket, Snyk, Sonatype — 그리고 마침내 출처 증명, 범위 지정된 게시 만료, 필수 2단계 인증으로 강제되는 레지스트리들이다.

이런 일이 이전에 발생했는가?

예 — 하지만 이 속도로, 이 비대칭성으로 진행된 적은 결코 없습니다. 2018년의 event-stream 백도어 사건과 2021년의 coa/rc 및 ua-parser-js 침해 사례는 npm 공급망이 취약했음을 입증했습니다. 북한의 Contagious Interview 캠페인은 수년간 가짜 채용 인터뷰와 트로이목코딩 평가를 통해 암호화폐 개발자들을 유인했습니다. 2026년에 바뀐 것은 인간의 병목 현상 제거입니다. 공격자는 이제 개발자를 속여 잘못된 패키지를 설치하게 할 필요가 없습니다. 대신 모델의 패키지 선택 휴리스틱을 속이고, 개발자는 AI 산출물 스탬프를 달고 있는 '공동 작성' 커밋을 병합합니다. 이제 많은 검토자들이 이를 반사적으로 신뢰합니다.

이는 코드에 대한 SEO 포이즈닝입니다. 사람들이 구글 검색 결과를 조작하는 데 사용하는 동일한 전술을 의존성 해결에 적용한 것입니다. 그리고 업계가 거의 언급하지 않는 형제 개념도 있습니다. 바로 '슬롭스쿼팅'으로, AI 에이전트가 생성 과정에서 그럴듯한 패키지 이름을 환각할 때, 공격자가 나중에 그 정확한 이름을 등록하여 다음 에이전트가 동일한 작업을 '완료'할 때 함정에 빠뜨리는 것입니다. 취약점은 모델에 있는 것이 아닙니다. 에이전트가 의존성을 추가하고 설치 스크립트를 실행할 수 있는 권한을 부여하며, 병합 전 평판이나 악성코드 게이트가 없는 파이프라인에 있습니다.

1~3년 후 이 흐름은 어떻게 될까?

첫 번째 방어 파장은 지루하지만 대부분 효과적일 것이다: 패키지별 인증, lockfile 및 원산지 검증, 샌드박스 설치, postinstall 훅을 기본적으로 신뢰하지 않는 처리, 그리고 위협 인텔리전스 피드를 코딩 에이전트의 컨텍스트에 연결하는 것. 두 번째 파장에서 상황이 악화된다. 공격자들은 신뢰를 상류로 따라가 모델 가중치, 파인튜닝 데이터, 그리고 에이전트 경제의 연결 고리인 MCP 서버로 침투할 것이다. Google의 Threat Intelligence Group은 이미 2026년 실제 환경에서 사용된 첫 AI 생성 제로데이 익스플로잇을 문서화했다. 북한은 멈추지 않을 것이다. 암호화폐 절도는 국가의 수익 항목이기 때문이다.

내 예측: 3년 이내에 '누가 코드를 작성했는지, 그리고 어떤 의존성을 가져오는지'가 실제 보안 질문이 되며, '코드는 법이다'라는 태도는 사라질 것이다. 자금을 다루는 자율 에이전트는 최소 권한 원칙 검토의 대상인 특권 사용자처럼 취급될 것이며, 키를 보유하는 모든 프로젝트는 공급망 증명 표준(즉, 암호화폐 분야의 SOC 2에 해당하는 것)을 기본 요건으로 받아들여야 한다. 살아남는 프로젝트는 스마트 계약에 대해 가졌던 그와 같은 경계심을 의존성 그래프에도 동일하게 적용하는 곳이다.

이것이 트레이더에게 의미하는 바는?

가격이 아닌 — 리스크. 전략적 교훈은 자본이 실제로 노출되는 곳에 대한 우선순위 재설정이다. 키에 접근하는 봇이나 에이전트를 운영하거나 의존한다면, 불편한 질문을 던져야 한다: 누구 또는 무엇이 그들의 의존성을 추가했으며, 해당 에이전트는 인간의 승인 없이 새 패키지를 도입할 수 있는가? 핫키 custodia를 갖춘 자율 에이전트 기능을 제공하는 프로토콜을 면밀히 검토하라 — 폭발 반경은 새로운 것이며, 크고, 거의 확실히 과소평가되어 있다.

구체적인 조치는 비용이 들지 않으며 복리 효과를 낸다: 의존성을 고정하고, lockfile을 커밋하며, 패키지 출처를 활성화하고, postinstall 훅을 신뢰할 수 없는 것으로 취급하고, package.json에 접근하는 모든 AI 작성 커밋을 검토하며, 알려진 침해 기간 동안 npm install을 실행한 모든 머신에서 .env 파일, SSH 키, API 토큰을 회전하라. 향후 18개월 동안 이 시장의 알파는 토큰이 아니다. 여전히 토큰의 끝에 당신의 키가 있는 것이다.

2026년 암호화폐에서 가장 위험한 것은 스마트 계약 버그가 아닙니다. 개발자가 AI에게 '검증 라이브러리'를 선택하도록 맡기는 것입니다. 북한은 블록체인을 이긴 것이 아니라, 그 앞에서 작업하는 사람을 이겼습니다. 북한은 자신의 생산성 도구를 빌려 더러운 일을 수행하게 했습니다. 그래서 떨쳐버릴 수 없는 질문이 있습니다. 우리는 코드가 감사받았는지 여부에 집착하지만, 감사자의 의존성은 누가 감사합니까? 자율 거래 에이전트가 서명 권한을 가지고 Claude가 공동 작성한 커밋 이력을 가질 때, 공격은 체인에 전혀 접근할 필요가 없습니다. 단지 npm install만 필요로 합니다.

FAQ

PromptMink란 무엇입니까? PromptMink는 2026년 4월 ReversingLabs가 명명한 북한의 공급망 캠페인입니다. 이는 @solana-launchpad/sdk와 같은 깨끗한 '미끼' 패키지를 사용하여 악의적인 2차 계층 페이로드인 @validate-sdk/v2를 조용히 불러오는 두 계층 npm 패키지를 사용했으며, 이는 지갑 자격 증명, SSH 키 및 소스 코드를 유출했습니다.

Anthropic나 Claude가 실제로 악성 코드를 작성했나요? 아닙니다. 모델은 악성 코드를 작성하지 않았으며, 코딩 작업에 대해 그럴듯해 보이는 의존성을 수락했습니다. 실패 원인은 파이프라인 구성에 있었습니다. 의존성을 추가하고 설치 스크립트를 실행할 권한을 가진 에이전트가 존재했지만, 병합 전 악성 코드 검사나 평판 검증 장치는 없었습니다.

Mastra 공격이란 무엇이었나요? 2026년 6월 17일, 북한의 Sapphire Sleet는 휴면 상태였던 npm 계정 "ehindero"를 하이재킹하고 88분 만에 @mastra AI 에이전트 프레임워크의 140개 이상의 패키지를 다시 게시했습니다. 각 패키지는 typosquat 의존성인 easy-day-js를 포함하고 있었으며, 이는 166개의 암호화폐 지갑 확장 프로그램을 표적으로 삼는 postinstall 드롭퍼를 실행했습니다.

어떻게 영향을 받았는지 알 수 있나요? 플래그가 지정된 패키지 이름(@validate-sdk/v2, @solana-launchpad/sdk, easy-day-js)에 대해 잠금 파일을 감사하고, 말웨어 중심의 의존성 스캐너를 실행한 후, 침해 기간 중 npm install을 실행한 모든 기계에서 .env 값, SSH 키, API 토큰을 회전하세요.

왜 자율형 암호화폐 에이전트가 주요 표적이 되는가요? 이들은 개인 키, API 토큰, 클라우드 자격 증명과 직접적으로 인접해 있습니다. 유닛 42는 2026년 상반기 동안 AI 에이전트 도구 표적을 향한 37개 캠페인과 497개의 말웨어 패키지를 추적했으며, 이는 현재 생태계에서 가장 가치 높고 노력이 가장 적은 공격 표면입니다.

더 많은 자료를 위한 출처: ReversingLabs — Claude가 크립토 에이전트에 악성코드 추가 (https://www.reversinglabs.com/blog/claude-promptmink-malware-crypto), Microsoft Security Blog — Mastra npm 공급망 침해 (https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/), 그리고 Cloud Security Alliance — PromptMink 연구 노트 (https://labs.cloudsecurityalliance.org/research/csa-research-note-promptmink-dprk-ai-generated-supply-chain).

All RealCryptoCap analysis