VSCode를 노린 새로운 피싱 공격: 당신의 IDE가 위험하다!
Upwork를 통해 프리랜서를 노리는 새로운 유형의 VSCode 피싱 공격 등장
공격자는 `.vscode/tasks.json` 파일의 `folderOpen` 설정을 악용하여 악성 코드 자동 실행 시도
암호화폐/DeFi 분야의 프리랜서를 타겟팅하여 API 키 및 지갑 정보 탈취 시도
격리된 환경에서 프로젝트를 열고, `--disable-extensions` 플래그를 사용하여 안전하게 작업 권장
VSCode Task를 이용한 공격 메커니즘
본문에 따르면 공격은 VSCode의 Task 기능(Task Feature)을 악용하여 이루어진다. 특히, `.vscode/tasks.json` 파일 내 `runsOn: folderOpen` 설정을 통해 프로젝트 폴더를 열 때 임의의 코드 실행(Arbitrary Code Execution)을 시도한다.
`folderOpen` 옵션: 폴더를 열 때 자동으로 실행되므로, 사용자가 인지하지 못하는 사이에 악성 코드 실행 가능
`task.allowAutomaticTasks` 설정: 사용자의 설정을 무시하고, '저자를 신뢰할 것인가?'에 대한 VSCode의 질문에 '예'를 선택하면 공격에 취약해짐
wget 명령어: Vercel 엔드포인트에서 악성 스크립트를 다운로드하여 실행하는 방식으로, 암호화폐 지갑 정보 탈취(Crypto Wallet Exfiltration) 시도
Upwork 플랫폼을 활용한 사회 공학적 공격
글에 따르면 공격자는 Upwork 플랫폼을 활용하여 타겟(Target)을 특정하고, 사회 공학적 기법을 통해 공격 성공률을 높인다.
무료 채용 공고: Upwork에 무료로 채용 공고를 게시하여 잠재적 피해자(Potential Victims)를 유인
암호화폐/DeFi 분야 프리랜서 타겟: API 키 및 지갑 정보를 보유할 가능성이 높은 특정 분야의 개발자(Specific Field Developers)를 노림
경쟁적인 환경: 여러 지원자(Applicants)와의 경쟁을 통해 압박감(Pressure)을 조성하고, 방어적인 태세를 약화시킴
결과적으로 Upwork의 플랫폼 구조(Platform Structure)와 사회적 역학(Social Dynamics)을 교묘하게 활용하여 공격의 성공률을 높인다.
VSCode 보안 설정을 우회하는 방법
본문은 VSCode의 보안 설정을 우회하는 공격 방식과 함께, 안전한 개발 환경 구축(Secure Development Environment)을 위한 구체적인 방어 전략을 제시한다.
격리된 환경: 컨테이너(Container) 또는 VM(Virtual Machine)과 같은 격리된 환경(Isolated Environment)에서 프로젝트를 열어 잠재적 위험을 최소화
코드 검토: 프로젝트를 열기 전에 `.vscode` 폴더 및 설치 스크립트(Installation Scripts)를 면밀히 검토하여 악성 코드 유무 확인
`--disable-extensions` 플래그: VSCode 실행 시 `--disable-extensions` 플래그를 사용하여 확장 기능(Extensions)의 자동 실행을 방지
결론적으로, 신뢰할 수 없는 코드(Untrusted Code)에 대한 경계심을 늦추지 않고, 적극적인 보안 조치를 취하는 것이 중요하다.
VSCode 보안 취약점: 기존 공격과의 차이점
글에서는 기존의 피싱 공격과 달리, VSCode의 특정 기능을 악용하여 타겟(Target)의 개발 환경(Development Environment) 자체를 공격하는 방식을 강조한다.
전통적인 피싱: 이메일, 가짜 웹사이트 등을 통해 개인 정보를 탈취하는 방식
스피어 피싱: 특정 개인 또는 조직을 대상으로, 맞춤형 공격을 수행
VSCode 공격: 개발 도구의 취약점을 이용하여 자동 코드 실행(Automatic Code Execution)을 유도하고, 시스템에 침투
결과적으로, 개발 환경에 대한 이해와 보안 의식을 높여야 하며, IDE(Integrated Development Environment) 보안의 중요성을 인식해야 한다.