최근 링크드인(LinkedIn)을 통해 소프트웨어 엔지니어 채용을 제안한 뒤, 정상적인 리액트(React)/웹3(Web3) 프로젝트로 위장한 깃허브(GitHub) 저장소를 과제로 전달하는 신종 사이버 사기가 발생했습니다. 이 과제 코드를 실행하면 'tailwind.config.js' 파일에 숨겨진 자바스크립트(JavaScript) 악성코드가 개발자 컴퓨터에서 작동하며, 이는 원격 제어 백도어, 브라우저 및 암호화폐 지갑 탈취기 등으로 구성되어 민감 정보를 유출하는 것으로 드러났습니다.
이 악성코드는 30,987바이트 크기의 설정 파일 내 수천 개의 공백 뒤에 27KB의 난독화된 코드를 숨겨두었습니다. 실행 시 원격 서버에서 암호화된 2단계 페이로드를 받아 'pack'이라는 파일로 저장한 뒤 노드(Node) 명령어로 실행하는 방식입니다. 격리된 가상 머신(VM) 환경에서 약 10분간 관찰한 결과, 이 페이로드는 소켓아이오(Socket.IO)를 통해 터미널, SSH, 화면, 키보드, 마우스를 원격 제어하고, 크로미움(Chromium) 데이터베이스, 지갑 확장 저장소, SSH 키, 소스 코드, 설정 파일 등 광범위한 정보를 수집하는 것으로 확인되었습니다. 실제로 2,588건의 파일 업로드 요청이 관찰될 정도로 활발한 데이터 유출이 이루어졌습니다.
이번 사례는 개발자들이 채용 과정에서 흔히 접하는 코딩 과제를 악용했다는 점에서 심각성을 더합니다. 개발자들은 업무 특성상 다양한 외부 소스 코드를 다루는 경우가 많아 이러한 공격에 취약할 수 있습니다. 따라서 낯선 사람이 보낸 과제 저장소는 반드시 신뢰할 수 없는 코드로 취급하여 실제 브라우저 프로필, SSH 키, 클라우드 자격 증명, 지갑 등이 없는 일회용 가상 머신이나 컨테이너에서 검사해야 합니다. 만약 감염이 의심된다면 즉시 네트워크를 차단하고 증거를 보존한 뒤 모든 비밀 정보를 교체하는 등 신속한 대응이 필요합니다. 이는 개인의 보안을 넘어 기업의 중요 자산 보호와도 직결될 수 있는 문제입니다.