제퍼넷 로고

보안 사고 보고서 | 원장

시간

보고서 날짜: 2023-12-20

사건 날짜: 2023-12-14

감지된 사건 유형: 무단접속 및 악성코드

개요

Ledger는 14년 2023월 XNUMX일 목요일에 Ledger Connect Kit를 사용하여 익스플로잇을 탐지했습니다. 이 익스플로잇은 Ledger Connect Kit를 사용하는 DApp 내부에 악성 코드를 주입하여 EVM DApp 사용자를 속여 지갑을 소모하는 트랜잭션에 서명하도록 했습니다. 익스플로잇은 빠르게 발견되었으며 잠시 후 해결 방법이 구현되었습니다. 그 사이 소수의 사용자가 공격을 받고 거래에 서명하여 지갑이 소진되었습니다.

연혁 

타임라인 시간은 중앙 유럽 표준시(CET) 시간대를 사용하여 자세히 설명됩니다.

2023-12-14: 아침: 전 Ledger 직원이 개인의 세션 토큰을 사용하여 2FA를 우회하여 NPMJS 계정에 액세스하는 정교한 피싱 공격의 희생양이 되었습니다.

2023년 12월 14일 – 오전 09:49 / 오전 10:44 / 오전 11:37: 공격자는 Ledger Connect Kit(버전 1.1.5, 1.1.6 및 1.1.7에 영향을 줌)의 악성 버전인 NPMJS(앱 간에 공유되는 Javascript 코드용 패키지 관리자)에 게시했습니다. 악성 코드는 악성 WalletConnect 프로젝트를 사용하여 자산을 해커의 지갑으로 다시 라우팅했습니다.

2023년 12월 14일: 오후 1.45시 XNUMX분: Ledger 팀에 연락하고 X에 대한 업데이트를 공유한 Blockaid를 포함하여 생태계의 다양한 행위자들의 신속한 반응 덕분에 Ledger는 진행 중인 공격을 인지하게 되었습니다.

2023년 12월 14일: 오후 2.18시 XNUMX분: Ledger의 기술 및 보안 팀은 공격에 대한 경고를 받았으며 Ledger 팀은 Ledger가 인지한 후 40분 이내에 Ledger Connect Kit 수정 버전을 배포했습니다. CDN(Content Delivery Network)의 특성과 인터넷의 캐싱 메커니즘으로 인해 악성 파일에 좀 더 오랫동안 액세스할 수 있었습니다. NPMJS 침해부터 완전한 해결까지 약 5시간이 지났습니다. 악성 코드의 이러한 확장된 가용성은 CDN이 파일의 최신 정품 버전으로 캐시를 전역적으로 전파하고 업데이트하는 데 걸린 시간의 결과입니다. 파일이 XNUMX시간 동안 존재했음에도 불구하고 조사 결과 사용자 자산이 적극적으로 유출된 기간은 총 XNUMX시간 미만인 것으로 추정됩니다.

Ledger는 사용자로부터 자산을 빼내는 데 사용되는 악성 WalletConnect 인스턴스를 비활성화한 파트너 WalletConnect와 신속하게 협력했습니다.

2023-12-14: 오후 2.55시 XNUMX분 우리의 조정에 따라 Tether는 공격자의 USDT를 동결했습니다(참조: TX).

근본 원인 분석, 조사 결과 및 예방 조치
문맥

원장 연결 키트 개발자가 DApp을 Ledger 하드웨어에 연결할 수 있는 Java Script 오픈 소스 라이브러리입니다. 다음을 사용하여 통합할 수 있습니다. 연결 키트 로더 DApp이 런타임에 CDN에서 Connect-Kit을 로드할 수 있도록 하는 구성 요소입니다. 이를 통해 DApp 개발자는 항상 최신 버전의 연결 키트 패키지 버전을 수동으로 업데이트하고 새 빌드를 릴리스할 필요가 없습니다. Ledger가 배포에 사용하는 CDN은 NPMJS입니다. 대부분의 DApp은 연결 키트 언급된 Connect-Kit-loader를 사용합니다. 

Ledger Connect Kit 익스플로잇에서 공격자는 Ledger 인프라, Ledger 코드 저장소 또는 DApp 자체에 언제든지 액세스할 수 없었습니다. 공격자는 Connect-Kit 자체 대신 CDN 내에 악성 코드 패키지를 푸시할 수 있었습니다. 이 악성 Connect-Kit 코드는 이미 Connect-Kit-loader를 통합한 DApp에 의해 동적으로 로드되었습니다. 

Ledger Connect Kit 익스플로잇은 Ledger와 업계가 사용자를 보호하기 위해 공동으로 직면하는 위험을 강조하며, 사용자가 브라우저 기반 서명에 참여할 DApp에 대한 보안 기준을 지속적으로 높여야 함을 상기시켜줍니다. 이번에 악용된 것은 Ledger의 서비스였지만, 앞으로는 다른 서비스나 라이브러리에서도 이런 일이 일어날 수 있습니다.

근본 원인

공격자는 NPMJS에 악성 코드 패키지를 푸시하기 위해 전직 직원을 피싱하여 NPMJS에 대한 개인의 액세스 권한을 활용했습니다. 전 직원의 Ledger 시스템(Github, SSO 기반 서비스, 모든 내부 Ledger 도구 및 외부 도구 포함)에 대한 액세스 권한은 적절하게 취소되었지만 안타깝게도 전 직원의 NPMJS에 대한 액세스 권한은 제대로 취소되지 않았습니다. 

우리는 이것이 불행한 단독 사건임을 확인할 수 있습니다. Ledger 직원의 Ledger 인프라에 대한 액세스는 직원 오프보딩 중에 자동으로 취소됩니다. 그러나 현재 기술 서비스 및 도구가 현재 전 세계적으로 작동하는 방식으로 인해 특정 외부 도구(NPMJS 포함)에 대한 액세스를 자동으로 취소할 수 없으며 이러한 액세스는 다음을 사용하여 수동으로 처리해야 합니다. 각 개인에 대한 직원 오프보딩 체크리스트. Ledger에는 모든 외부 도구에서 퇴사하는 직원을 제거하는 기존 및 정기적으로 업데이트되는 오프보딩 절차가 있습니다. 이 개별 사례의 경우 NPMJS에서 액세스 권한이 수동으로 취소되지 않았으므로 유감스럽게도 외부 제XNUMX자 파트너와 함께 감사하고 있습니다. 

이는 공격자가 수행한 정교한 공격이었습니다. 일반적으로 많은 시도를 저지하는 NPMJS 대상 계정에 2단계 인증(XNUMXFA)을 시행했음에도 불구하고 공격자는 이전 직원의 계정과 연결된 API 키를 악용하여 이 보안 조치를 우회했습니다. 

이 특정 공격을 통해 공격자는 Angel Drainer 악성 코드라고 하는 내용이 포함된 Ledger Connect Kit의 새로운 악성 버전을 업로드할 수 있었습니다. Angel Drainer는 서명 시 지갑을 소모하는 악성 거래를 생성하도록 특별히 설계된 서비스형 악성 코드입니다. 이는 피해를 극대화하기 위해 주문형 스마트 계약을 배포하고 맞춤형 거래를 생성하는 EVM 체인에 특화된 완전한 인프라입니다.

운수 나쁘게, NPMJS.com 자동인증은 다중인증이나 서명확인을 허용하지 않습니다. 출판. 우리는 배포 단계에서 추가 제어를 시행하는 임시 메커니즘을 추가하기 위해 노력하고 있습니다.

조사 결과

이는 숙련된 공격자가 수행한 잘 준비된 공격이었습니다. 구현된 피싱 기술은 생태계에 영향을 미치는 대부분의 프런트엔드 공격에서 볼 수 있는 자격 증명에 초점을 맞추지 않고 대신 공격자가 세션 토큰에 직접 작업했습니다. 

사용된 악성 코드는 Angel Drainer였으며 Ledger 보안 팀은 지난 XNUMX개월 동안 이 악성 코드를 사용한 범죄 활동이 증가한 것을 확인했습니다. 봉쇄 보고서). 또한 도난당한 자금이 악용자에게 85%, 서비스형 악성코드로 볼 수 있는 Angel Drainer에게 15%로 분할되는 것을 온체인에서 볼 수 있습니다.

이 Angel Drainer는 현재 대상으로 삼고 있는 자산 유형에 따라 사용자를 속여 다양한 유형의 거래에 서명하도록 합니다. ERC20 및 NFT 토큰의 경우 사용자에게 서명을 요청합니다. 승인허가 메시지. 기본 토큰의 경우 드레이너는 사용자에게 가짜 "청구" 거래에 서명하도록 요청합니다. 청구 방법은 단순히 자금을 스윕하거나 나중에 해당 주소에 스마트 계약을 배포하여 스윕할 수 있는 간단한 토큰 전송입니다.

이것이 바로 우리가 업계 전체에서 Clear Signing을 계속 장려하는 이유입니다. 이를 통해 사용자는 Ledger 하드웨어 장치의 신뢰할 수 있는 디스플레이에서 보는 내용을 확인할 수 있습니다. 

시정 조치

Ledger 경영진을 포함한 Ledger 보안 및 기술 팀은 현재 우리가 사용하는 Ledger 내부 및 외부 도구와 시스템에 대한 모든 액세스 제어를 검토하고 감사하고 있습니다. 

Ledger는 유지 관리 및 오프보딩 점검에 모든 외부 도구를 추가하는 것을 포함하여 코드 검토, 배포, 배포 및 액세스 제어에 관한 정책을 강화할 것입니다. 관련이 있는 경우 코드 서명을 계속해서 일반화할 예정입니다. 또한 우리는 이것이 제대로 구현되었는지 확인하기 위해 반복적인 내부 감사를 실시하고 있습니다. 

Ledger는 이미 피싱 교육을 포함한 보안 교육 세션을 조직하고 있습니다. 2024년 초에는 소속 부서 전 직원을 대상으로 내부 보안 교육 프로그램도 강화된다. Ledger는 이미 정기적인 제XNUMX자 보안 평가를 조직하고 있으며 계속해서 이러한 평가의 우선순위를 정할 것입니다.  

2024년 초에는 액세스 제어, 코드 승격 및 배포에 초점을 맞춘 특정 제XNUMX자 감사가 실시될 예정입니다. 

또한 향후 발생할 수 있는 사고를 더욱 빠르게 감지하고 대응할 수 있도록 인프라 모니터링 및 경고 시스템을 강화하겠습니다.

마지막으로, 우리는 블라인드 서명 방지를 두 배로 강화하여 최고의 보안 관행을 보장하기 위해 Ledger 사용자의 옵션에서 이를 제거하고 보안 표시나 사용하지 않음으로써 서명하는 내용을 이해하지 못한 채 거래에 서명할 때 발생할 수 있는 잠재적 영향에 대해 사용자에게 교육할 것입니다. 명확한 서명.

익스플로잇을 식별하고 해결하기 위해 Ledger 팀과 신속하게 협력한 생태계 파트너에게 다시 한번 감사드립니다.

spot_img

최신 인텔리전스

spot_img