바이낸스 해킹은 코딩 과제에서 시작되었습니다. 올해 내내 똑같은 유형의 레포를 받았는데, 전부 악성 코드였습니다.
The Binance theft started as a coding assignment. I’ve been sent the same kind of repo all year. All were exploits.
핵심 요약
채용 과제를 위장한 악성 레포지토리 공격이 빈번하며, 개발 환경 보안을 위해 VM 사용과 철저한 검증이 필수적입니다.
- 채용 위장 공격 — 가짜 채용 공고와 코딩 과제를 통해 개발자 기기에 악성 코드를 심는 수법이 성행함
- VS Code 취약점 — 폴더를 열기만 해도 .vscode/tasks.json을 통해 악성 스크립트가 실행될 수 있음
- 보안 기본 수칙 — 코드 실행 전 브라우저로 먼저 확인하고, 반드시 격리된 가상 머신(VM) 환경에서 작업해야 함
- StrangerDanger 플러그인 — Claude Code 사용 시 에이전트의 권한을 제한하고 외부 명령 실행을 차단하는 보안 도구 개발
바이낸스는 이번 주, 10월 29일에 발생한 약 63억 달러 규모의 도난 사건이 사실 몇 달 전부터 시작된 가짜 채용 사기였다고 밝혔다. 6월에 한 지갑 엔지니어가 변조된 코딩 툴을 설치했는데, 바이낸스가 이걸 잡아내서 기기를 교체하고 자격 증명을 싹 다 갈아치웠다. 근데 공격자는 이미 지갑 팀의 다른 사람들도 다 알고 있었던 거임.
9월에는 두 번째 엔지니어가 실제 채용 사이트에서 낚였다. 인사 담당자 연기하는 사람이랑 영상 통화도 하고, 존재하지도 않는 회사의 CEO라는 사람과도 영상 통화를 했다. 그러고는 업무용 컴퓨터에 코딩 과제를 다운로드하라는 지시를 받았다. 설치 과정에서 코드가 실행되면서 오염된 개발자 툴로 교체됐는데, 엔드포인트 보안 솔루션은 이걸 놓쳤다. 10월 20일, 그 기기랑 내부 AI 툴이 다른 지갑 엔지니어 두 명한테까지 접근했다. 결국 10월 29일, 탈취된 자격 증명으로 컨테이너랑 스크립트가 배포되면서 지갑이 털렸다. FBI는 북한 소행이라고 지목했는데, 평양은 당연히 부인 중. 바이낸스는 고객 자산은 보상해 준다고 함.
그 과정의 핵심이 바로 '면접용 리포지토리' 미끼다. 나는 1월부터 내가 받은 것들 중 실행하기 전에 잡아낸 것들을 여기 올려두고 있음: github.com/Ubuntu-Buddha/security-advisories
내가 지금까지 받은 면접용 리포지토리 중에 익스플로잇 안 들어있던 건 단 하나도 없었다. 내가 검사한 건 전부 다 해킹용이거나 사기였음.
2026-01-27, W3GLFun. Web3 테스트였는데, 앱 시작할 때 에러 핸들러가 코드를 가져와서 실행하게 돼 있더라. 클론해서 확인해 봤음. npm run dev를 엉뚱한 폴더에서 치는 바람에 걔네 코드는 실행 안 됐다. 깃허브는 당일에 계정 날려버림. 채용 플랫폼은 처음엔 위반 사항 없다고 하더니 나중엔 사용자가 악성코드를 공유했을 수도 있다고 하더라. 나중에 보니까 그 페이스트 호스트가 악성 npm 패키지에도 똑같이 쓰였음.
2026-01-29, Optu. 환경 변수에 페이로드 URL 박아놓고 서버 시작할 때 실행되게 해놨더라. 실행 전에 찾아냄. 계정 삭제됨.
2026-01-30, 리포지토리 두 개. .vscode/tasks.json은 VS Code나 Cursor에서 폴더 열기만 해도 실행됨. 실행 전에 찾았고, 둘 다 계정 삭제됨.
가짜 채용 페이지에서 GAPI Update 실행 파일을 뿌리기도 했음. 실행되기 전에 다 찾았다.
2026-10-15, GitLab 과제물인데 가짜 폰트 파일에 헥스 페이로드를 숨겨놨더라. 설치 중에 로드되는 방식임. 원격으로 검토만 하고 실행은 안 함. 당일에 GitLab이랑 Upwork에 신고했는데 결과는 아직도 대기 중.
이건 바이낸스 사례뿐만 아니라 여러 놈들이 하는 짓이다. 수법은 다 똑같음. 회사, CEO나 채용 담당자, 그리고 리포지토리. 그리고 그걸 네가 일하는 컴퓨터에서 실행하라고 시키는 거.
딱 두 가지만 기억해라. 일단 브라우저에서 먼저 읽어봐. .vscode/tasks.json, package.json 스크립트, 그리고 텍스트 가져와서 실행하는 거 있으면 클론하거나, 설치하거나, 'Open in Desktop' 누르기 전에 무조건 확인해. VS Code는 폴더 열기만 해도 실행되니까 조심하고. 한 번 안전하다고 해서 실행해도 된다는 뜻은 아니다.
정 실행해야겠다면 일회용 VM 써라. 지갑, 키, 클라우드 토큰 다 빼고 네트워크도 끊어. 네 메인 컴퓨터나 배포 권한 있는 노트북에서 절대 하지 마.
나머지 반쪽은 AI 툴이다. 명령어 실행하고 리포지토리나 이메일 읽을 수 있는 에이전트는, 그걸 보낸 놈이 써놓은 지시사항을 그대로 따르게 돼 있음.
그래서 내가 StrangerDanger를 만들었다. Anthropic의 샌드박스랑 서버 측 분류기를 보완하려고 Claude랑 같이 만든 Claude Code 플러그인임. 요점이 뭐냐고? 읽는 놈은 행동 안 하고, 행동하는 놈은 안 읽게 만드는 거다. 신뢰할 수 없는 텍스트는 셸을 실행하거나 파일을 쓸 수 없는 서브 에이전트만 읽게 함. 행동 가능한 에이전트는 웹 접속이나 네가 '신뢰할 수 없음'으로 표시한 폴더에는 아예 접근 못 하게 막아버림. 걔네는 보고서만 데이터로 받을 뿐, 명령으로 받아들이지 못하게 하는 거지. 또 다른 기능은 '다운로드해서 셸로 파이프 연결'하는 걸 막아줌. MIT 라이선스, v0.2.0, 실험 버전이다.

