모두가 GlassWorm이 개발자 도구에 악성 코드를 직접 삽입하는 기존 방식에 충실할 것이라고 예상했습니다. 패턴은 명확했습니다. 감염된 확장 프로그램, 즉각적인 페이로드, 그리고 혼란스러운 복구 작업. 10월에 처음 발견되어 2026년 3월에 크게 확산된 이 끊임없는 개발자 공급망 공격은 그 노골적인 방식 때문에 거의 예측 가능해졌습니다. 개발자들은 의존성을 꼼꼼히 살피고, 게시자 이름을 확인하며, 즉각적인 공격의 미묘한 징후를 주시하라는 경고를 받아왔습니다.
하지만 여기에 반전이 있습니다. GlassWorm의 최신 공격은 즉각적인 만족을 노리지 않습니다. 인내심을 가지고 접근합니다. 이는 운영 전술의 근본적인 변화로, ‘일단 부수고 튀는’ 방식에서 ‘천천히 타들어가는’ 방식으로 전환했으며, OpenVSX 생태계에서 ‘잠복’ 확장 프로그램이라는 섬뜩할 정도로 교묘한 방식으로 이루어지고 있습니다.
잠복 요원 전략
지금 우리가 보고 있는 것은 73개의 확장 프로그램으로, 신중하게 선별되어 OpenVSX에 업로드되었습니다. 이들은 처음에는 완전히 무해한 것처럼 보입니다. 합법적인 도구의 복제본으로, 탐지를 피하도록 설계되었습니다. 악성 페이로드는 초기 코드 안에 숨어 있지 않습니다. 업데이트를 기다리고 있습니다. 이들은 단순히 취약한 확장 프로그램이 아니라, 의도적으로 비활성화되어 있다가 설치되고 신뢰받은 후에 활성화되도록 설계되었습니다.
게임의 판도가 바뀌는 지점입니다. 즉각적인 위험 신호를 감지하도록 훈련된 개발자들은 잘못된 안도감에 빠질 수 있습니다. 확장 프로그램을 설치하고, 광고한 대로 작동합니다. 그러다 며칠 또는 몇 주 후, 업데이트가 롤아웃됩니다. 이 업데이트는 새로운 기능이 아니라, 비활성화된 위협을 깨우는 것입니다. 그러면 확장 프로그램은 단순한 로더 역할을 하며, GitHub의 이차 VSIX 패키지 내에서 위장하거나 난독화된 JavaScript를 통해 원격 소스에서 실제 악성코드를 가져옵니다.
“새로운 업데이트가 계속 나타남에 따라 이 숫자는 변경될 수 있지만, 패턴은 이전 GlassWorm 파동과 일치합니다.”
이러한 조용한 침투는 방어를 훨씬 더 어렵게 만듭니다. 설치 시점에서의 경계뿐만 아니라, 설치된 확장 프로그램과 그 업데이트 주기를 지속적으로 모니터링해야 합니다. 위협은 정적이지 않습니다. 이동하는 표적이자, 각 업데이트마다 전달 메커니즘을 변경하고 변형할 수 있는 디지털 아메바입니다.
개발자에게 중요한 이유
오픈 소스 개발에서 신뢰의 아키텍처를 생각해 보십시오. 우리는 OpenVSX 및 Visual Studio Code Marketplace와 같은 마켓플레이스를 통해 생산성을 향상시키는 도구를 큐레이션하고 제공받습니다. 암묵적인 계약은 이러한 도구가 출시될 때 안전하며, 모든 업데이트는 개선을 위한 것이라는 것입니다. GlassWorm은 잠복하는 확장 프로그램 하나하나씩, 그 신뢰를 체계적으로 무너뜨리고 있습니다.
이들은 제로데이 취약점을 제작하는 정교한 국가 지원 해커(최근 연쇄 제로데이 보고가 시사하듯, 위협 환경이 분명 그 방향으로 나아가고 있지만)가 아닙니다. 이것은 오픈 소스 협업의 탈을 쓴, 더 교활한 형태의 사회 공학입니다. 문을 부수고 들어가는 것이 아니라, 열쇠를 우편으로 보내고 나중에 사용하는 방법에 대한 엽서를 보내는 것과 같습니다.
개발 파이프라인에 미치는 영향은 지대합니다. 종종 종속성을 자동으로 가져오고 업데이트하는 CI/CD(Continuous Integration/Continuous Deployment) 파이프라인은 극도로 취약해집니다. 겉보기에는 합법적인 확장 프로그램이 저장소에서 몇 달 동안 잠복해 있다가 업데이트가 활성화되어 빌드를 손상시키고 잠재적으로 프로덕션 환경으로 확산될 수 있습니다.
복제 예술
Socket의 연구원들은 이러한 확장 프로그램이 속이기 위해 어떻게 제작되는지 지적합니다. 단순히 이름이 약간 변경된 것이 아니라, 세심한 복제품입니다. 아이콘, 설명, 명명 규칙까지 모두 합법적인 제공물을 모방하도록 설계되었습니다. 게시자 이름이나 고유 식별자와 같은 미묘한 차이는 서두르는 개발자가 쉽게 놓칠 수 있습니다. 이러한 세부적인 수준은 개발자 행동과 그들이 처한 압박감에 대한 정교한 이해를 시사합니다.
코드 분석 중에 조기 탐지 위험을 높이는 악성 코드를 직접 내장하는 대신, 확장 프로그램은 이제 정교한 다운로더 역할을 합니다. 얇은 껍질에 불과하며, 주요 목적은 명령 및 제어 서버 또는 손상된 저장소에 연락하여 실제 페이로드를 가져오는 것입니다. 이러한 모듈식 접근 방식은 핵심 악성 코드 논리가 초기 감염 벡터와 분리되어 있어 악성 코드를 지문으로 인식하고 분석하기 어렵게 만듭니다.
직접 주입에서 다단계 다운로드 프로세스로의 이러한 전환은 상당한 아키텍처 변경입니다. 이를 통해 공격자는 더 민첩해져 전체적으로 새로운 악성 확장 프로그램을 마켓플레이스에 다시 제출할 필요 없이 페이로드를 업데이트할 수 있습니다. 배달 트럭을 바꾸지 않고 무기만 바꿀 수 있는 것입니다.
무엇을 할 수 있는가?
Socket의 즉각적인 조언은 명확합니다. 만약 이 73개의 확장 프로그램 중 하나라도 설치했다면, 비밀 정보를 순환하고, 액세스 토큰을 취소하며, 개발 환경을 정리해야 합니다. 하지만 장기적인 해결책은 더 적극적인 자세를 요구합니다. 이것은 단순히 취약점을 패치하는 문제가 아니라, 제3자 코드에 대한 신뢰 모델을 근본적으로 재고하는 문제입니다.
설치 후 확장 프로그램의 동작, 특히 네트워크 통신 및 파일 시스템 액세스와 관련된 동작을 분석하기 위한 더 나은 도구가 필요합니다. 개발자는 신뢰할 수 없는 소스의 업데이트를 자동으로 적용하는 것에 대한 더 엄격한 정책을 고려해야 하며, 조직 내에서 승인된 확장 프로그램 목록을 큐레이션하여 유지할 수도 있습니다. GlassWorm의 이러한 ‘잠복’ 전술은 개발자에 대한 공격일 뿐만 아니라, 협업적인 오픈 소스 개발의 근간에 대한 공격입니다.
GlassWorm 캠페인의 이러한 진화는 위협 환경이 끊임없이 적응하고 있다는 것을 냉혹하게 상기시켜 줍니다. 다운로드된 코드의 알려진 악성코드 서명만 확인하던 시대는, 만약 이미 그러지 않았다면, 이제 확실히 끝났습니다.
**
🧬 관련 인사이트
자주 묻는 질문**
GlassWorm 악성코드는 무엇을 하나요? GlassWorm 악성코드는 암호화폐 지갑 데이터, 자격 증명, 액세스 토큰, SSH 키 및 기타 개발자 환경 데이터를 포함한 민감한 개발자 정보를 훔치도록 설계되었습니다. 개발자 시스템을 손상시키고 귀중한 정보를 훔치려는 공급망 공격입니다.
‘잠복’ 확장 프로그램은 어떻게 작동하나요? ‘잠복’ 확장 프로그램은 처음에 마켓플레이스에 업로드된 무해한 코드입니다. 나중에 업데이트가 적용될 때까지 비활성화 상태로 유지됩니다. 이 업데이트는 실제 악성코드를 외부 소스에서 가져와 실행하는 악성 페이로드를 활성화합니다. 이러한 지연된 활성화로 인해 초기 탐지가 더 어렵습니다.
OpenVSX를 사용해도 걱정해야 하나요? 네, OpenVSX를 사용하는 개발자는 이 위협에 대해 인지해야 합니다. 보안 연구원들이 제공한 잠재적으로 영향을 받는 확장 프로그램 목록을 검토하고, 비밀 정보를 취소하며, 설치한 경우 환경을 정리하는 것이 중요합니다. 또한 향후 유사한 전술에 대한 경계를 권장합니다.