가짜 링크드인 면접 과제가 jsonbin 로더로 RAT와 브라우저 지갑 탈취 코드를 내려받음
- 가짜 채용 담당자가 보낸 TypeScript 면접 과제는
npm run dev나npm start실행 시 jsonbin.io에서 받은record.model을Function.constructor로 실행하고,require를 넘겨 원격 코드가 Node.js 권한을 쓰게 함 - 2단계 로더는 C2 서버 147.189.174.138에서 인증 헤더
Authentication: jwt를 요구하는 난독화 JavaScript를 받아오며, 작성자는 이를 약 24,686자 obfuscator.io 코드와 webpack 번들로 분석함 - 받아온 scdata RAT는
node-pty셸,ssh2기반 피벗과 PEM 키 탈취, 화면 캡처, 클립보드 읽기, 키보드와 마우스 입력을 포함하고 VM과 물리 시스템도 구분함 - ldata는 Windows, macOS, Linux의 Chrome·Edge·Brave 등 브라우저 프로필에서 로그인 데이터와 확장 프로그램 LevelDB를 가져가며, MetaMask·Phantom·Coinbase 등 28개 지갑 확장 프로그램을 노리고 약 1분마다 재전송함
- 파일 탈취 코드는 홈 디렉터리에서
.env,.pem,.p12,.pfx, 시드 문구와 개인 키를 찾고.ssh,.aws,.gnupg,.docker디렉터리를 수집하며 Windows 드라이브 문자도 열거함
Hacker News opinions
비슷한 공격을 최근에도 봤는데, 그때는 VSCode 자동 로딩을 노렸음. 면접 과제를 가장한 악성코드 유포가 반복되는 패턴 같음
링크드인 연락은 프로필 게시물 이력부터 봄. 회사 사이트와 재직 여부를 확인하고, SimpleLogin 같은 별칭 메일로 상세 내용을 공식 발신 주소에서 보내 달라고 하거나 공개 채용 공고 링크를 요구함
공식 회사 메일만 쓰라는 기준 하나가 대부분 사기를 막아줌. 다만 피싱 이력이 있는 유사 도메인도 있으니 도메인을 검색해 봐야 함
공식 채용 담당자가 Gmail만 쓰는 경우도 봤고, 외부 헤드헌터는 의뢰 회사 도메인이 아닐 수도 있음. 회사들이 스스로도 수상하게 행동해서 단일 기준으로 거르긴 어려움
Claude Code에게 코드베이스의 이상한 패턴을 찾으라고만 시켰는데 이 악성 행위를 못 잡았다고 함. AI 코드 검토를 보안 검사로 믿기 어렵다는 사례임
면접 과제라며 내 컴퓨터에서 코드를 실행하라는 요구 자체를 거절해야 한다고 봄. 브라우저 기반 코딩 인터뷰가 있는데 굳이 ZIP 파일을 받아 돌릴 이유가 없음
과제 자체가 문제라기보다 ZIP 파일을 보내는 방식이 문제라고 봄. 제대로 된 회사라면 과제 수행 시간을 보상하기도 하고, 실무 역량을 거르는 데 과제가 효과적일 수 있음
YC 회사 중에도 후보자 컴퓨터에서 CLI를 실행하게 하고, 동의 없이 여러 항목을 설치하며 프로세스를 훑고 AI 도구 요청을 가로채는 곳이 있음. 이런 요구가 받아들여지는 게 이상함
이런 샘플을 받으면 증거를 보관하고 jsonbin.io와 IP를 제공한 ZapHosting 같은 호스팅 사업자에게 신고해야 함. 다만 호스팅 사업자가 적극적으로 대응하지 않는 경우도 많음
악성 RAT가 설치된 뒤 OS를 재설치하라는 식의 글 설명은 우습다고 봄. VM을 쓰는 이유를 GUI가 없어서 스크린샷이 안 된다는 식으로 설명한 부분도 부정확함
면접용 과제를 실행해야 한다면 QEMU 같은 VM을 매번 새 이미지로 다시 만들어 쓰는 방법을 알아둘 만함. 그래도 대개는 거절하겠지만 예외적으로 신뢰할 만한 초대가 오면 대비는 하고 싶음
구직 중이라 공개 저장소와 작업물을 준비하지만 이런 요청이 계속 오면 불안함. 링크드인은 악성코드 설치 요구와 스팸이 너무 많아서 아예 끊었다는 사람도 있음
Bitbucket을 쓴다는 점을 수상 신호로 든 것은 동의 못 함. GitHub 밖에도 서비스는 있고, 그 부분만 빼면 분석 내용은 타당함