LinkedIn 채용 제안, 악성 코드 주의보!
LinkedIn을 통한 채용 제안 과정에서 악성 코드가 포함된 GitHub 저장소 검토를 요구하는 사례가 보고됨
Node.js 의존성 설치(npm install) 시 백도어가 자동으로 실행되도록 설계된 점이 특징임
실제 개발자 및 유명 언론인 신분 도용 정황이 포착되어 공급망 공격(Supply Chain Attack) 가능성이 제기됨
커뮤니티에서는 철저한 보안 점검(Vigilance)과 격리된 환경(Isolated Environment)에서의 코드 검토를 강조함
GitHub 저장소를 통한 공급망 공격(Supply Chain Attack) 기법
본 사건은 실제 개발자의 신원을 도용하여 GitHub 저장소에 악성 코드를 삽입하는 공급망 공격(Supply Chain Attack) 기법을 사용함. 특히, `npm install` 시 자동으로 실행되는 `prepare` 스크립트를 악용하여 사용자가 인지하지 못한 채 백도어를 설치하도록 유도함. 이는 의존성 관리(Dependency Management)의 취약점을 파고드는 고전적이면서도 효과적인 방식임. 커뮤니티에서는 이러한 공격에 대비하기 위해 코드 검토 시 격리된 환경(Isolated Environment) 사용을 강력히 권고함.
신원 도용 및 페르소나 위장 전술
공격자는 실제 개발자의 커밋 기록과 유명 언론인의 프로필을 도용하여 신뢰도를 높였음. 채용 담당자 역할을 맡은 인물은 기술적 지식이 없는 것처럼 행동하다가도, Node.js 버전 및 npm 관련 문제에 대해 능숙하게 대처하며 의심을 피함. 이러한 페르소나 위장(Persona Deception) 전술은 피해자가 경계심을 늦추도록 설계되었으며, 특히 바쁜 개발자(Rushed Developer)를 대상으로 효과적일 수 있음.
백도어 코드 분석 및 탐지
악성 코드는 `app/test/index.js` 파일 내에 주석 처리된 테스트 코드 사이에 숨겨져 있었음. 이는 코드 난독화(Code Obfuscation) 기법의 일종으로, 일반적인 코드 검토로는 탐지가 어려움. 그러나 읽기 전용 도구(Read-only Tools)를 갖춘 AI 에이전트가 파일 시스템 접근 시도를 즉시 감지하여 의심스러운 활동(Suspicious Activity)을 플래그함. 이는 정적 분석(Static Analysis)만으로는 놓칠 수 있는 부분을 AI가 보완할 수 있음을 시사함.
사이버 범죄 신고 및 대응의 한계
피해자는 GitHub 및 LinkedIn에 해당 저장소와 계정을 신고했지만, 즉각적인 조치가 이루어지지 않아 코드가 여전히 남아있다고 밝힘. 커뮤니티에서는 이러한 사이버 범죄에 대한 신고 시스템의 비효율성과 법 집행 기관의 느린 대응을 지적하며, 조직적인 사이버 범죄(Organized Cybercrime)에 대응하기 위한 사회적 시스템 구축의 필요성을 강조함. 특히 북한의 Lazarus Group과 같은 특정 조직과의 연관성도 제기됨.