Skip to content

NPM 공급망 공격은 암호화폐 사용자에게 경고였습니다

2025년 가을, 주요 NPM 공급망 공격은 현대 소프트웨어 의존성이 얼마나 취약해질 수 있는지를 보여주었습니다 – 특히 암호화폐 사용자와 개발자에게 더욱 그렇습니다.

이 공격은 자바스크립트 생태계를 목표로 했으며, 수백만 개의 웹 및 소프트웨어 프로젝트가 서드파티 패키지에 의존하고 있습니다. 일부 악성 패키지는 암호화폐 거래에 방해가 되도록 설계되었으며, 브라우저 기반 흐름에서 지갑 주소를 모니터링하거나 교체하는 것도 포함됩니다. 이후 벌레처럼 퍼지는 캠페인인 Shai-Hulud는 개발자와 CI/CD 자격 증명을 훔치고, 손상된 패키지 유지관리자 계정을 통해 확산되었습니다.

즉각적인 사건은 지나갔지만, 위험은 여전합니다. AI 지원 코딩과 자동화된 취약점 발견이 가속화됨에 따라, 공격자들은 이전보다 더 빠르게 소프트웨어 공급망의 약점을 스캔하고, 무기화하며, 남용할 수 있습니다.

모든 암호화폐 지갑이 영향을 받은 것은 아닙니다. 특히 Nunchuk과 Blockstream (Jade 하드웨어 지갑) 등 여러 비트코인 중심 지갑은 이 특정 NPM 공격에 노출되지 않았다고 공개적으로 밝혔습니다.

한 가지 교훈은, 보안과 기능 폭 사이의 오랜 산업적 절충이 점점 더 중요해질 수 있다는 점입니다. 보안을 우선시하는 지갑은 일반적으로 복잡성이 낮고 공격 표면이 작아집니다.

AI가 양측 모두에서 소프트웨어 개발과 취약점 발견을 가속화함에 따라, 복잡성을 최소화하는 것이 사용자, 개발자, 서비스 제공자 모두에게 가장 효과적인 보안 전략 중 하나가 될 수 있습니다.

무슨 일이 있었나요?

2025년 가을, 일련의 공급망 침해가 자바스크립트 생태계와 그 패키지 등록소인 NPM에 영향을 미쳤습니다. 공격자들은 신뢰받는 패키지 유지관리자 계정에 접근하여 수천 개의 애플리케이션에서 사용하는 소프트웨어 라이브러리에 악성 업데이트를 게시했습니다.

이 패키지들이 설치되면, 자격 증명 탈취, 개발자 환경 손상, 또는 암호화폐 거래 조작 등 다양한 악의적 행위를 수행할 수 있었습니다.

이 사건들을 특히 우려스럽게 만든 몇 가지 특징이 있습니다:

  • 인기 있는 NPM 패키지는 주당 수백만 번 다운로드됩니다.
  • 현대 애플리케이션은 수백 또는 수천 개의 서드파티 라이브러리에 의존하는 경우가 많습니다.
  • 신뢰받는 단일 의존성의 손상은 빠르게 큰 소프트웨어 생태계에 확산될 수 있습니다.
  • 일부 악성 패키지는 지갑 주소 또는 거래 데이터를 수정하려는 목적으로 암호화폐 사용자들을 겨냥했습니다.

교훈은 간단합니다: 복잡성은 보안 비용이 듭니다. 추가 의존성, 통합, 기능 하나하나가 신뢰, 유지관리, 방어가 필요한 또 다른 코드 조각을 더합니다.

공격자들이 자동화와 AI 지원 도구를 점점 더 많이 활용함에 따라, 시스템을 단순하게 유지하는 것이 사용자, 개발자, 서비스 제공자 모두에게 가장 강력한 보안 전략 중 하나가 될 수 있습니다.

왜 자바스크립트 생태계가 이렇게 매력적인 목표인가?

현대 자바스크립트 개발은 많은 웹 애플리케이션, 개발자 도구, 소프트웨어 프로젝트에서 사용하는 NPM, 패키지 등록소에 크게 의존합니다.

단일 애플리케이션은 다음에 의존할 수 있습니다:

  • 수백 개의 직접 패키지
  • 수천 개의 간접 의존성

많은 개발자들은 자신들의 애플리케이션이 최종적으로 어떤 라이브러리를 로드하는지 모두 알지 못합니다. 약한 엔지니어링 환경에서는, 문제가 발생할 때까지 신경 쓰지 않는 경우도 많습니다.

이로 인해 세 가지 주요 위험이 생깁니다:

  • 수작업 검토가 불가능한 너무 많은 의존성: 의존성 트리가 현실적인 일일이 검토하기에는 너무 클 수 있습니다.
  • 평판에 의한 신뢰: 인기 있는 패키지는 “모두가 사용하니 안전하다”는 가정 하에 종종 안전하다고 여겨집니다.
  • 자동화된 빌드 파이프라인: 의존성 업데이트가 고정되지 않거나 검토 또는 모니터링되지 않으면, CI/CD 시스템이 손상된 패키지를 빠르게 애플리케이션에 끌어올 수 있습니다.

이것이 NPM 공급망 공격이 매우 위험한 이유입니다. 공격자는 모든 대상에 직접 침투할 필요가 없습니다.

신뢰받는 단일 패키지의 손상만으로도 많은 프로젝트에 영향을 미칠 수 있습니다.

손상된 하나의 패키지. 수천 개의 하류 애플리케이션에 영향
손상된 하나의 패키지. 수천 개의 하류 애플리케이션에 영향

이것이 왜 이렇게 위험한 위협인가?

사용자는 모든 것을 올바르게 수행할 수 있지만 여전히 노출될 수 있다

대부분의 사이버 공격은 피해자가 실수하도록 유도합니다. 악성 링크 클릭, 감염된 소프트웨어 설치, 가짜 웹사이트 방문 등.

공급망 공격은 다릅니다.

사용자는 모든 권장 보안 관행을 따르더라도, 애플리케이션이 신뢰하는 출처에서 손상된 코드를 무심코 로드하는 경우 노출될 수 있습니다.

신뢰가 공격 벡터가 된다

전통적 보안 모델은 공식 출처에서 다운로드한 소프트웨어가 다른 곳에서 얻은 소프트웨어보다 더 신뢰할 만하다고 가정합니다.

공급망 공격은 바로 그 가정을 악용합니다.

악성 코드는 정당한 업데이트 메커니즘, 신뢰받는 패키지 저장소, 그리고 개발자가 매일 사용하는 소프트웨어 구성요소를 통해 전달됩니다.

탐지 어려움

손상된 패키지는 종종 정당한 것처럼 보입니다:

  • 공식 저장소에서 다운로드됩니다.
  • 신뢰받는 유지관리자가 서명하거나 게시했을 수 있습니다.
  • 악성 코드는 종종 숨기거나 암호화하거나 난독화되어 있습니다.
  • 영향받은 소프트웨어는 정상적으로 작동할 수도 있습니다.

이로 인해, 손상은 감지되지 않고 오랜 시간 동안 많은 사용자와 시스템에 영향을 미칠 수 있습니다.

영향은 단일 애플리케이션을 넘어 확산된다

광범위하게 사용되는 의존성이 손상되면, 그 영향은 원래 목표를 훨씬 넘어 확산될 수 있습니다.

단일 악성 패키지는 궁극적으로 다음에 도달할 수 있습니다:

  • 웹사이트
  • 브라우저 확장 프로그램
  • 지갑 애플리케이션
  • 개발자 도구
  • 내부 비즈니스 시스템
  • 백엔드 서비스 및 API

이것이 공급망 공격이 단일 보안 사고가 아닌 체계적 위험인 이유입니다.

손상된 패키지가 암호화폐 사용자에게 어떤 영향을 미칠 수 있나요?

  1. 애플리케이션이 손상된 의존성을 로드한다

신뢰받는 NPM 패키지가 악성 업데이트를 받고, 애플리케이션의 소프트웨어 스택에 포함됩니다.

  1. 악성 코드가 신뢰받는 애플리케이션 내에서 실행된다

코드가 애플리케이션 자체에 의해 로드되기 때문에, 나머지 소프트웨어와 동일한 권한과 신뢰를 상속받습니다.

  1. 거래 데이터가 모니터링 또는 수정될 수 있다

일부 악성 패키지는 암호화폐 거래를 모니터링하도록 설계되었으며, 특정 상황에서는 지갑 주소를 공격자가 제어하는 주소로 교체하려고 시도하기도 합니다.

  1. 사용자가 거래를 승인한다

조작이 눈치채지 못하고 거래가 승인되면, 자금이 의도한 수신자가 아닌 공격자가 제어하는 주소로 보내질 수 있습니다.

  1. 신뢰할 수 있는 화면에서 검증하면 공격이 차단된다

하드웨어 지갑 화면에서 목적지 주소를 검증하는 사용자는, 거래 승인 전에 조작을 감지할 기회를 갖게 됩니다.

왜 하드웨어 지갑 검증이 여전히 중요한가

이번 사건이 암호화폐 커뮤니티의 관심을 끈 이유 중 하나는, 일부 악성 패키지가 컴퓨터 화면에 표시되는 거래 데이터를 수정하려고 시도했기 때문입니다.

이것은 하드웨어 지갑이 설계된 방어 대상과 정확히 일치하는 위협입니다.

하드웨어 지갑은 독립적인 검증 화면을 제공한다

  • 개인 키는 디바이스 내부에 남아 있습니다.
  • 거래는 하드웨어 지갑 자체에서 확인이 필요합니다.
  • 목적지 주소는 별도의 신뢰할 수 있는 화면에서 검증할 수 있습니다.

컴퓨터, 브라우저 또는 지갑 애플리케이션이 손상되더라도, 하드웨어 지갑은 서명 직전의 실제 거래 세부 정보를 보여줄 수 있습니다.

남은 위험은 인간 행동이다

하드웨어 지갑은 사용자가 검증하는 것에 한해서만 보호할 수 있습니다. 만약 디바이스가 공격자가 제어하는 주소를 표시하고, 사용자가 확인 없이 승인한다면, 보호 메커니즘은 사실상 우회된 셈입니다.

왜 소프트웨어 지갑은 더 큰 노출에 직면하는가

소프트웨어 지갑은 보통 브라우저, 운영체제, 애플리케이션 코드와 같은 인터넷 연결 디바이스에서 실행되며, 이들이 손상된 의존성의 영향을 받을 수 있습니다.

많은 경우, 지갑 인터페이스와 거래 세부 정보를 구성하거나 표시하는 코드는 동일한 신뢰 경계 내에 있습니다.

이것이 모든 소프트웨어 지갑이 자동으로 안전하지 않다는 의미는 아니지만, 독립 검증 화면이 없으면 거래 조작을 사용자가 감지하기 어려울 수 있습니다.

특히 브라우저 기반 지갑, Web3 앱, 복잡한 스마트 계약 상호작용에서는, 사용자가 종종 애플리케이션 인터페이스가 보여주는 내용을 신뢰해야 하기 때문에 더욱 그렇습니다.

공급망 공격 위험을 줄이는 방법

공급망 공격은 최종 사용자에게 항상 피할 수 있는 것은 아니지만, 사용자는 여전히 피해를 제한할 수 있습니다. 특히 AI 지원 위협 행위자가 취약점을 빠르게 발견, 무기화, 악용할 수 있는 시대에는 더욱 그렇습니다.

잘 갖춰진 방어를 구축하여 강력한 공격자를 막아내세요 - Blockstream Jade는 많은 고통을 덜어줄 초급 장치입니다
잘 갖춰진 방어를 구축하여 강력한 공격자를 막아내세요 – Blockstream Jade는 많은 고통을 덜어줄 초급 장치입니다

핫 월렛은 소모품으로 간주하세요

인터넷에 연결된 모든 디바이스는 잠재적으로 손상된 것으로 간주해야 합니다.

이것이 모바일 지갑, 브라우저 확장, 데스크탑 애플리케이션을 사용하지 말라는 의미는 아니지만, 편의와 일상 거래를 위해 사용해야 하며, 장기적으로 중요한 금액을 보관하는 금고로 사용해서는 안 됩니다.

편리함과 보안을 분리하세요

가장 효과적인 방어는 거래 승인과 인터넷 연결 디바이스를 분리하는 것입니다.

Blockstream Jade와 Coldcard 같은 하드웨어 지갑은 바로 이 원칙을 기반으로 설계되었습니다. 컴퓨터, 브라우저 또는 지갑 애플리케이션이 손상되더라도, 사용자는 여전히 독립된 디바이스에서 거래 세부 정보를 검증할 수 있습니다.

서명하는 내용을 확인하세요

궁극적으로, 보안 디바이스는 사용자의 주의를 대체할 수 없습니다.

하드웨어 지갑은 사용자가 실제로 검증하는 것에 한해서만 보호할 수 있습니다. 공격자가 제어하는 주소가 디바이스 화면에 표시되고, 확인 없이 승인되면, 보호 메커니즘은 사실상 우회된 셈입니다.

거래를 꼼꼼히 확인하세요

거래 조작 악성코드의 가장 위험한 측면 중 하나는, 실제 일어나는 일에는 변함이 없으면서도 컴퓨터 화면에 보여지는 내용을 변경할 수 있다는 점입니다.

거래 승인 전에:

  • 지갑 화면의 주소를 검증하세요: 하드웨어 지갑을 사용하는 경우, 항상 디바이스 자체에 표시된 목적지 주소와 보내려는 주소를 비교하세요.
  • 처음과 마지막 문자 이상 여부를 확인하세요: 정교한 공격자는 의도한 목적지와 유사하게 보이도록 주소를 생성할 수 있으며, 처음과 마지막 몇 글자를 일치시키기도 합니다. 빠른 시각적 검토만으로는 충분하지 않을 수 있습니다. 주소의 시작, 중간, 끝을 모두 확인하세요.
  • 큰 금액 전송 시 별도 검증 채널을 이용하세요: 중요한 금액의 경우, 수신자와 별도의 통신 채널을 통해 목적지 주소를 독립적으로 확인한 후 송금하세요.

약간의 시간 투자로 거래 세부 정보를 꼼꼼히 검증하면, 돌이킬 수 없는 큰 실수를 방지할 수 있습니다.

자체 보관과 다중 서명 보관의 차이

자체 보관은 위험을 이해하고, 시간과 노력을 투자하며 (“작업 증명”) 규율 있는 설정을 구축할 의지가 있는 개인에게 매우 적합합니다. 이는 최고 수준의 자율성을 제공하는 솔루션이며, 적절히 관리할 수 있는 사용자에게 우리의 추천 우선순위입니다.

하지만, 모든 사람이 그러한 설정을 스스로 처리할 시간, 자신감, 사이버보안 기술을 갖추고 있지 않다는 것도 알고 있습니다 – 특히 자산이 인생 저축의 상당 부분을 차지하는 경우에는 더욱 그렇습니다.

피할 수 있는 실수는 반드시 피해야 하며, 피해야만 합니다.

더 큰 개인 자산, 가족 기금 또는 사업 금고의 경우, 다중 서명 설정은 승인 권한을 여러 디바이스, 위치 또는 개인에게 분산시켜 단일 실패 지점을 제거하는 데 도움이 될 수 있습니다. 많은 경험 많은 사용자는 이러한 시스템을 직접 구축하고 관리하지만, 일부는 설정 또는 운영 지원을 위해 가이드가 필요할 수 있습니다.

더 큰 개인 자산을 보유하고 있으며, 경험 많은 안내 도움을 원하는 경우, 저희 내부 컨설팅 팀이 탄탄한 설정 구축과 일반적인 함정을 피하는 데 도움을 드릴 준비가 되어 있습니다.

저희 회사는 이 업계에서 10년 넘게 활동해 왔으며, 그동안 모든 것을 목격하고 견뎌냈습니다: “돼지 도살” 투자 사기, 국가 지원 위협 행위자, 잘못된 백업, 피싱 공격, 키 분실, 손상된 디바이스, 점점 정교해지는 사이버 범죄. 이러한 생존 기록은 그 자체로 하나의 성명서라고 믿습니다.

오늘날, 저희는 도난 또는 위험에 처한 디지털 자산 관련 사례에서 전문 사이버 위협 및 개입 파트너와 긴밀히 협력하며, 업계의 새로운 공격 패턴도 계속 모니터링하고 있습니다.

비트코인의 무허가 특성 덕분에 독립적으로 이러한 설정을 구축하는 것도 가능하지만, 자산이 인생 저축의 상당 부분을 차지하는 개인 자산, 가족 기금, 사업 금고에 적합한 도움이 되는 다중 서명 설정도 있습니다.

목표는 피할 수 있는 위험을 줄이고, 실질적으로 실패 가능성을 제거하는 것입니다.

한 번의 부주의한 실수, 손상된 디바이스 또는 손상된 컴퓨터로 인해 세대 간 부를 잃는 일이 있어서는 안 됩니다.

결론

NPM 사건은 결국 기억 속에서 사라질 것입니다. 그러나 교훈은 그렇지 않아야 합니다.

수십 년 동안, 사용자들은 의심스러운 다운로드, 가짜 웹사이트, 명백한 사기를 피하도록 교육받아 왔습니다. 공급망 공격이 매우 위험한 이유는, 명백한 적신호를 우회하기 때문입니다. 소프트웨어는 정당할 수 있습니다. 출처는 공식적일 수 있습니다. 개발자들조차 피해자가 될 수 있습니다.

점점 더 복잡해지는 소프트웨어 세계에서, 보안은 더 이상 나쁜 행위자를 피하는 것만이 아닙니다. 불필요한 신뢰를 줄이고, 복잡성을 최소화하며, 중요한 행동을 독립적으로 검증하는 것이 핵심입니다.

비트코인에서는, “믿지 말고 검증하라”는 원칙이 소프트웨어에도 적용됩니다.