사이버보안 연구원들은 Microsoft의 Visual Studio Code(VS Code) 마켓플레이스에서 공격자가 삭제된 확장자 이름을 재사용할 수 있는 허점을 발견했습니다. 이를 통해 맬웨어가 신뢰할 수 있는 도구라는 명목으로 개발자 워크플로에 침투할 수 있는 가능성이 있습니다.
공급망 보안 회사 ReversingLabs(RL)의 연구원들은 지난 6월 ahbanC.shiba라는 악성 확장 프로그램을 추적한 후 이 문제를 발견했습니다. 이 확장 프로그램은 올해 초 발견되어 마켓플레이스에서 이미 삭제된 두 개의 확장 프로그램인 ahban.shiba와 ahban.cychelloworld와 동일한 기능을 가진 것으로 밝혀졌습니다.
이는 중요한 질문을 제기했습니다. Marketplace 규칙에 따라 VS Code에서 모든 확장자 이름이 고유해야 하는 경우 다른 게시자 아래에서 "shiba"가 어떻게 다시 나타날 수 있습니까?
공격 작동 방식
이전 버전과 마찬가지로 ahbanC.shiba 확장 프로그램은 간단한 다운로더 역할을 했습니다. 이 확장 프로그램은 원격 서버(54.85.145.93)에서 PowerShell 스크립트를 가져오는 shiba.aowoo라는 명령 하나만 등록했습니다.
운영 체제에 따라, 해당 스크립트는 testShiba 폴더의 파일을 암호화하고 시바 이누 토큰(이더리움 기반 암호화폐) 하나를 몸값으로 요구했습니다. 그러나 이전 버전과 마찬가지로 지갑 주소가 제공되지 않아 랜섬웨어 공격이 아직 진행 중임을 시사했습니다.
ahban.shiba와 ahban.cychelloworld 확장 프로그램이 제거되었을 때, 연구원들은 이 확장 프로그램들이 영구적으로 삭제될 것이라고 예상했습니다. 그러나 불과 몇 주 후인 3월 말, 새로운 확장 프로그램인 ahbanC.shiba가 마켓플레이스에 등장했는데, 이 확장 프로그램에는 이전 확장 프로그램과 동일한 악성 코드가 포함되어 있었습니다.
이는 VS Code 마켓플레이스에서 삭제된 확장 프로그램 이름이 전혀 잠겨 있지 않고 자유롭게 재사용될 수 있다는 놀라운 사실을 증명했습니다.
숨겨진 시장 허점
이런 현상이 발생하는 이유를 파악하기 위해 RL은 마켓플레이스의 확장 프로그램 관리 시스템을 조사했습니다. 조사 결과, 문제는 VS Code가 확장 프로그램 게시 중단을 처리하는 방식에 있다는 것이 밝혀졌습니다. 마켓플레이스 게시자는 게시 취소 또는 삭제, 두 가지 옵션을 선택할 수 있습니다.
- 게시되지 않은 확장 프로그램은 마켓플레이스에서 사라지지만 원래 이름과 통계에는 그대로 유지됩니다. 다른 사람이 다시 게시할 수 없습니다. 즉, 다른 누구도 해당 이름을 사용할 수 없습니다.
- 하지만 삭제된 확장 프로그램은 마켓플레이스에서 완전히 삭제됩니다. 즉, 해당 이름이 다시 사용 가능해져서 악의적인 행위자를 포함한 누구든 해당 이름을 등록하고 동일한 이름으로 악성 코드를 게시할 수 있게 됩니다.
즉, 합법적인 확장 프로그램이 삭제되면 신뢰할 수 있는 이름이 사실상 남용될 수 있습니다. RL은 이전에 삭제된 패키지와 연결된 이름을 사용하여 테스트 확장 프로그램을 성공적으로 배포함으로써 이를 확인했습니다. 여기에는 Solidity-Ethereum과 같이 악성 코드 이력이 있는 패키지도 포함됩니다.
오픈 소스 생태계의 더 광범위한 문제
이름 재사용이 악용된 것은 이번이 처음이 아닙니다. 2023년 초, RL은 Python 패키지 색인(PyPI)에서도 삭제된 패키지의 이름을 재사용할 수 있다는 사실을 발견했습니다. termcolour라는 악성 패키지는 원래 정상 패키지가 삭제된 지 몇 년 후에 다시 나타났습니다.
PyPI는 악성 패키지와 관련된 이름의 재사용을 방지하기 위한 제한 조치를 시행한 반면, VS Code Marketplace에는 그러한 보호 조치가 없습니다.
"이 허점의 발견은 새로운 위협을 드러냅니다. 제거된 확장 프로그램의 이름을 누구든 재사용할 수 있다는 것입니다. 즉, 합법적이고 매우 인기 있는 확장 프로그램이 제거되면 그 이름이 누군가에 의해 탈취될 수 있다는 뜻입니다." ReversingLabs의 소프트웨어 위협 연구원인 루치아 발렌티는 블로그 게시물을 통해 이렇게 썼습니다.
개발자가 할 수 있는 일
마이크로소프트가 아직 마켓플레이스 허점에 대한 해결책을 발표하지 않았지만, 보안 전문가들은 개발자들이 경계를 늦추지 말아야 한다고 강조합니다. 이름이 비슷해 보이더라도 설치 전에 확장 프로그램을 신중하게 검토하고, 확장 프로그램 이름에만 의존하기보다는 게시자 계정을 확인하는 것이 좋습니다.
또한, 악성 패키지를 탐지할 수 있는 보안 도구를 사용하여 종속성을 지속적으로 모니터링하는 것이 좋습니다. 개발자는 VS Code Marketplace를 포함하여 여러 저장소에 대한 무료 위험 평가를 제공하는 플랫폼을 활용할 수 있습니다.
"이 캠페인에서 얻을 수 있는 교훈은 VS Code Marketplace와 다른 오픈소스 저장소에는 많은 위험이 도사리고 있다는 것을 기억하는 것이 중요하다는 것입니다. 이러한 플랫폼의 개발자와 사용자는 개발 주기에 무엇이 포함되는지 주의 깊게 파악하고 인지하는 것이 중요합니다."라고 Valenti는 결론지었습니다.
*참고한 원본 글: https://www.techworm.net/2025/08/malicious-vs-code-extensions-exploit-marketplace-loophole.html
댓글