Security
tradingmaster-ai-sentinel
작성자
TradingMaster AI Sentinel
3분 읽기

공급망 중독: 'npm install'이 당신을 배신할 때

공급망 중독: 'npm install'이 당신을 배신할 때

요약: 당신은 안전한 코드를 작성합니다. 스마트 컨트랙트를 감사합니다. 하지만 비밀 백도어가 있는 라이브러리를 설치합니다. 이 기사는 악명 높은 Ledger Connect Kit 해킹을 언급하며 "공급망 공격"을 다루고 의존성을 고정(Locking)하는 방법을 설명합니다.



1. 개념: 우물에 독 풀기

현대 개발은 "레고 블록"(라이브러리) 위에 구축됩니다. 일반적인 React dApp은 1,000개 이상의 의존성을 사용할 수 있습니다.

해커들은 당신을 해킹할 수 없다는 것을 압니다(당신은 편집증적이니까요). 그래서 그들은 당신이 사용하는 도구를 해킹합니다.

그들이 axiosweb3.js 같은 라이브러리를 손상시키면, 새 버전으로 업데이트하는 모든 앱이 자동으로 감염됩니다.

Infected Dependency Chain

2. 사례: Ledger Connect Kit (2023)

2023년 12월, 암호화폐 세계가 멈췄습니다.

전 Ledger 직원이 피싱에 당했습니다. 해커들은 그들의 NPM 게시 키에 접근했습니다.

공격:

  1. 그들은 악성 업데이트를 @ledgerhq/connect-kit에 푸시했습니다.
  2. 이 라이브러리는 Sushiswap, Revoke.cash 및 수백 개의 dApp이 지갑을 연결하는 데 사용합니다.
  3. 결과: 사용자가 합법적인 사이트(Sushiswap 같은)에 접속했을 때, 가짜 "지갑 연결" 팝업이 떴습니다. Sushiswap의 잘못이 아니었습니다 — 공급망에서 악성 코드를 로드한 라이브러리 때문이었습니다.
  4. 팝업에 서명한 사용자는 털렸습니다.

Code Injection Hack

3. 공격 벡터: 타이포스쿼팅 (Typosquatting)

해커들은 인기 있는 패키지와 거의 동일한 이름의 패키지를 게시합니다.

  • 진짜: react-dom
  • 가짜: react-dom-core (또는 rreact-dom)

실수로 npm install react-dom-core를 입력하면, React처럼 작동하지만... 당신의 .env 파일도 훔치는 패키지를 설치하게 됩니다.

4. dApp 보호 방법

버전 고정 (Lock Your Versions)

중요한 라이브러리의 경우 package.json에서 캐럿 ^ 또는 틸드 ~절대 사용하지 마세요.

  • 나쁨: "web3": "^1.9.0" (1.9.9, 잠재적으로 감염된 버전으로 자동 업데이트).
  • 좋음: "web3": "1.9.0" (당신이 확인한 버전에 정확히 머무름).

npm audit 및 Snyk 사용

배포 전마다 npm audit을 실행하세요. 알려진 취약점 데이터베이스와 대조하여 의존성을 확인합니다.

엔터프라이즈 수준 보안을 위해 Snyk 또는 Socket.dev 같은 도구는 패키지의 행동을 분석합니다 (예: "왜 이 CSS 라이브러리가 네트워크에 접속하려고 하지?").

경고: 악성 패키지는 종종 전염성 인터뷰 사기를 통해 구직자와 개발자를 노립니다. 나쁜 패키지를 설치했다고 의심되면 즉시 Revoke.cash를 통해 지갑 권한을 확인하세요.

"카나리아" 테스트

금요일 밤에 프로덕션 업데이트를 푸시하지 마세요. 커뮤니티가 며칠 동안 새 라이브러리 버전을 테스트하게 하세요. 공급망 공격은 보통 24-48시간 내에 발견됩니다.

Dependency Pinning Shield

결론

Web3에서 당신은 프로젝트의 모든 코드 한 줄 한 줄에 책임이 있습니다 — 당신이 작성하지 않은 코드까지도요. npm update를 금융 거래만큼 신중하게 다루세요.

지식을 활용할 준비가 되셨나요?

오늘 AI 기반 자신감으로 거래를 시작하세요

시작하기

접근성 및 리더 도구