이 뉴스레터의 보안 관련 이야기 대부분은 피싱 문자, 유출된 비밀번호, 가짜 쇼핑몰처럼 여러분에게 직접 일어나는 일을 다룹니다. 하지만 이번 이야기는 다릅니다. 아래의 사건들은 개발자들, 즉 여러분이 매일 사용하는 앱과 서비스를 만드는 사람들에게 일어났습니다. 그럼에도 이 이야기가 여기 포함된 이유는 간단합니다. 소프트웨어를 만드는 데 쓰이는 도구에 누군가 독을 타면, 그 독은 만든 사람에게만 머물지 않습니다. 제품과 함께 배포됩니다.

최근 이를 잘 보여 주는 일이 두 가지 있었습니다. 둘 다 대형 침해 사고처럼 헤드라인을 장식하지는 못했습니다. 어느 쪽도 여러분 개인을 직접 침해한 사건은 아니기 때문입니다. 두 사건 모두 여러분이 결국 설치하고, 열고, 로그인하게 될 소프트웨어를 만들어 내는 파이프라인을 공격한 사례입니다.

신뢰받는 브랜드로 위장한 가짜 확장 프로그램

Open VSX는 코드 편집기 확장 프로그램을 위한 공개 마켓플레이스입니다. 확장 프로그램은 개발자들이 매일 사용하는 도구에서 자동 완성, 린팅, 연동 기능을 이용하기 위해 설치하는 작은 추가 기능입니다(Visual Studio Code와 그 여러 오픈 소스 파생 버전이 이곳에서 확장 프로그램을 가져옵니다). 2026년 7월 26일부터 8월 1일 사이, Manifold Security의 보안 연구원들은 이 레지스트리에서 가짜 확장 프로그램 77개를 발견했습니다. 각각 실제로 신뢰받는 확장 프로그램의 이름과 네임스페이스를 그대로 따라 했지만, 원본 소유자가 아닌 계정에서 게시되었습니다. 흔히 네임스페이스 스쿼팅이라고 부르는 전형적인 사칭 수법입니다.

스쿼팅된 이름들은 무작위가 아니었습니다. AMD, LEGO Education, Hyperledger, Azure, Artsy, Salesforce의 오픈 소스 프로젝트들, 미국 연방 기관, 그리고 일종의 씁쓸한 아이러니를 담아 확장 프로그램 마켓플레이스 자체의 정체성을 빌렸습니다. 77개 패키지 모두 하나의 도메인으로 접속했는데, 이 도메인은 첫 번째 가짜 패키지가 등장하기 불과 11일 전에 등록된 것이었습니다. 이는 기회주의적인 모방이라기보다 치밀하게 조직되고 목적에 맞게 설계된 캠페인임을 시사합니다.

가짜 확장 프로그램 대부분이 한 일은 대단하지 않았습니다. 공격자의 서버로 호스트 이름을 조용히 전송했는데, 이것만으로는 미끼를 누가 설치했는지 확인하려는 검사일 수도 있습니다. 하지만 연구원들은 77개 중 대략 4분의 1에 해당하는 19개 패키지가 더 나아갔다는 사실을 발견했습니다. 활성화된 지 몇 초 만에 호스트 이름, 운영 체제 사용자 이름, 편집기 정보, 머신 ID를 수집했습니다. 그런 다음 개발자가 열어 둔 프로젝트에서 git 원격 저장소(조직과 저장소 호스트를 드러냄), 커밋 이메일 도메인, 현재 브랜치, 최신 커밋을 읽었습니다. 또한 지속적 통합 값도 가져갔습니다. 이는 사람이 매번 비밀번호를 입력하지 않아도 자동화된 시스템이 코드를 빌드하고 배포할 수 있게 해 주는 자격 증명과 구성 정보입니다.

이 데이터로 누군가의 은행 계좌에서 돈을 빼낼 수는 없습니다. 하지만 다른 용도로는 유용합니다. 개발자가 어느 회사에서 일하는지, 회사의 내부 인프라가 어떻게 생겼는지, 그 안에 발판을 마련하려면 어떻게 해야 하는지를 알아내는 데 쓰입니다.

소프트웨어를 빌드하는 시스템에서 발견된 10점 만점에 9.8점짜리 버그

두 번째 사건은 JetBrains가 만든 지속적 통합 및 지속적 배포(CI/CD) 플랫폼인 TeamCity와 관련이 있습니다. 코드 편집기가 개발자가 소프트웨어를 작성하는 곳이라면, CI/CD 플랫폼은 그 코드가 컴파일되고 테스트된 뒤 프로덕션으로 배포되는 자동화된 공장 현장입니다. 사람이 직접 “배포”를 클릭하지 않아도 되는 경우가 많습니다. TeamCity는 많은 기업에서 그 장비의 핵심 요소입니다.

CVE-2026-63077로 추적되는 취약점이 TeamCity 온프레미스 버전에서 공개되었습니다. 가능한 10점 만점에 심각도 9.8점을 받은 취약점입니다. 이는 역직렬화 결함입니다. 프로그램이 입력 데이터를 실제로 무엇인지 확인하지 않고, 그대로 실행 코드로 바꿀 정도로 신뢰하는 유형의 버그입니다. 실제로는 로그인하지 않아도 공격자가 취약한 TeamCity 서버에 요청을 보내 TeamCity 서비스 자체와 동일한 권한으로 임의의 명령을 실행할 수 있었습니다. JetBrains는 패치를 배포했습니다(버전 2025.11.7 및 2026.1.3, 그리고 2017.1+ 구버전 설치를 위한 패치 플러그인). 하지만 이후 미국 사이버보안·인프라 보안국(CISA)은 공격자들이 패치되지 않은 시스템을 적극적으로 악용하고 있다고 경고했습니다.

회사의 빌드 서버를 통제하는 사람은 그 회사가 무엇을 배포할지도 통제합니다. 이는 가설이 아니라 도구의 문자 그대로의 기능입니다.

같은 수법, 서로 다른 두 개의 문

서로 다른 연구자들이 발견한 관련 없는 사건들이지만, 공통된 형태를 보입니다. 어느 쪽도 완성된 제품을 공격하지 않았습니다. 둘 다 한 단계 앞선 곳, 즉 개발자가 코드를 작성하는 편집기나 그 코드를 배포 가능한 릴리스로 바꾸는 서버를 공격했습니다. 이것이 소프트웨어 공급망 공격의 본질적인 특징입니다. 하나의 표적에 침입하는 대신 여러 표적이 의존하는 상류의 무언가를 침해하고, 그들의 신뢰받는 프로세스가 여러분을 대신해 접근 권한을 앞으로 운반하게 만드는 것입니다.

아직 우리가 모르는 점에 대해서는 솔직할 필요가 있습니다. 이번 주에 드러난 두 보고서 모두 하위 단계의 앱이나 사용자가 그 결과로 직접 침해된 확정 사례를 공개하지는 않았습니다. 확장 프로그램 캠페인은 정찰과 접근 권한 수집으로 보이며, TeamCity 악용은 활발히 진행 중이라고 설명되었지만 피해자 이름은 제시되지 않았습니다. 이는 정상적인 일입니다. 공급망 침해는 최종적인 결과가 추적되기 훨씬 전에(또는 결과가 추적되지 않은 채) 진입 지점에서 발견되는 경우가 많기 때문입니다.

이것이 그들만의 문제가 아니라 여러분의 문제인 이유

여러분이 코딩 확장 프로그램을 설치하거나 CI/CD 서버를 운영할 일은 아마 없을 것입니다. 하지만 여러분은 수백 개의 그런 도구가 만들어 낸 결과물을 사용합니다. 은행 앱, 비밀번호 관리자, 자녀의 학교 포털, 지금 이 글을 읽고 있는 브라우저가 그렇습니다. 이 모든 것은 여러분의 휴대폰에 도달하기 전에 누군가의 개발자 편집기와 어느 회사의 빌드 파이프라인을 거쳤습니다. 그 연결고리 중 하나라도 조용히 침해되면, 악의적인 변경 사항이 평범하고 일상적인 소프트웨어 업데이트에 편승할 수 있습니다. 업데이트가 안전한 일이라고 들었기 때문에 설치하는 바로 그런 업데이트에 말입니다.

이 때문에 침해 사고 사후 분석의 조언이 비기술적 독자에게 때로 이상하게 들리기도 합니다. 어떤 회사가 빌드 서버, 도난당한 개발자 자격 증명, 악성 종속성을 통해 시스템이 침해되었다고 말하면, “누군가 내 비밀번호를 추측했다”는 말에 비해 추상적으로 느껴질 수 있습니다. 하지만 추상적인 일이 아닙니다. 여러분의 데이터나 앱의 무결성이 침해된다는 동일한 결과에, 여러분은 존재하는지도 몰랐던 문을 통해 도달한 것뿐입니다.

실제로 도움이 되는 것

여러분이 은행의 CI/CD 파이프라인을 감사할 수는 없고, 그럴 필요도 없어야 합니다. 하지만 몇 가지 습관만으로도 이러한 위험에 대한 노출을 실제로 줄일 수 있습니다.

자동 업데이트는 켜 두되, 업데이트를 자동으로 신뢰할 수 있는 것으로 여기지는 마세요. 패치는 위에서 언급한 TeamCity 수정 사항 같은 해결책이 여러분이 실행하는 소프트웨어에 도달하는 방법입니다. 최신 상태를 유지하면 공격자들이 적극적으로 탐색 중인 창구를 닫을 수 있습니다. 동시에 업데이트의 품질은 그것을 만들어 낸 파이프라인의 품질만큼만 좋습니다. 바로 그 파이프라인이 지금 공격 대상이 되고 있습니다. 상류에서 완전히 오염된 릴리스에 대해 개인이 취할 수 있는 완벽한 방어책은 없습니다. 그렇기 때문에 이는 근본적으로 여러분의 문제가 아니라 공급업체의 책임 문제입니다.

개발자와 함께 일하거나 개발자를 관리한다면, 구체적이고 확인 가능한 사항 두 가지가 있습니다. 코드 편집기 확장 프로그램이 이름이 일치한다는 이유만으로 설치된 것이 아니라 실제로 인증된 게시자 계정에서 설치되었는지 확인하세요(Open VSX와 유사한 마켓플레이스에는 게시자 정보가 표시됩니다. 아이콘과 제목만 믿지 말고 이를 확인하세요). 또한 조직에서 TeamCity 온프레미스를 운영한다면 다음 유지 관리 일정까지 기다리지 말고 오늘 2025.11.7, 2026.1.3 버전이 설치되어 있거나 패치 플러그인이 적용되어 있는지 확인하세요. CISA의 경고는 이것이 이론적인 문제가 아니라 실제로 적극적으로 악용되고 있다는 뜻입니다.

그 외 모든 사람에게 유용한 변화는 그저 인식을 갖는 것입니다. 회사 침해 사고가 “침해된 개발자 도구”나 “빌드 시스템”으로 거슬러 올라간다는 이야기를 읽을 때, 그것은 틈새 기술 분야의 각주가 아닙니다. 이 뉴스레터에서 더 자주 다루는 비밀번호 침해나 피싱 사기와 같은 범주의 사건입니다. 다만 제품이 여러분에게 도달하기 전에 한 단계 더 상류에서 시작되었을 뿐입니다.