Ledger 이더리움 앱 서명 취약점 패치

Ledger 이더리움 앱 서명 취약점 수정
하드웨어 지갑 제조사 Ledger가 이더리움 앱의 일부 Clear Signing 과정에 영향을 미치던 보안 취약점을 수정했다. 해당 문제는 사용자가 Ledger 기기 화면에서 확인하고 있는 거래 정보와 실제 기기가 서명 대상으로 처리하는 데이터가 달라질 수 있는 상황과 관련돼 있다.
Ledger 최고기술책임자 찰스 기예메는 8월 23일 해당 버그가 존재했다는 사실을 인정하면서도 외부 보안업체가 문제를 공개하기 약 2주 전에 이미 수정본을 배포했다고 밝혔다. Ledger에 따르면 최신 펌웨어와 애플리케이션을 사용하는 기기는 수정된 상태다.
8월 24일까지 공개된 자료에서는 이번 이더리움 앱 취약점을 이용한 자금 탈취 사례가 확인되지 않았다. Ledger는 별도의 자산 이전이나 긴급 거래 중단, 피해 보상 절차도 발표하지 않았다.
Clear Signing 과정에서 거래 정보 불일치 가능
이번 문제는 Ledger가 지원하는 Clear Signing 기능과 관련돼 있다. Clear Signing은 사용자가 스마트계약이나 토큰 거래에 서명하기 전에 거래 대상과 금액, 실행하려는 작업을 하드웨어 지갑 화면에서 사람이 읽을 수 있는 형태로 확인하도록 하는 기능이다.
하드웨어 지갑은 컴퓨터나 스마트폰에서 전달된 거래 데이터를 기기 내부에서 서명한다. 사용자는 Ledger 화면에 표시된 내용을 직접 확인한 뒤 버튼이나 터치 조작을 통해 승인한다.
보안업체 TestMachine은 이 과정에서 악성 애플리케이션이 사용자가 최초 거래를 검토하고 있는 동안 별도의 명령을 전달할 수 있는 문제를 발견했다고 밝혔다. 해당 주장은 Ledger 기기와 연결된 애플리케이션이 데이터를 주고받는 APDU 통신 흐름과 관련돼 있다.
연구진 설명에 따르면 특정 조건에서 사용자가 화면에서 확인한 거래와 기기 내부에서 최종 서명을 준비하는 거래가 서로 달라질 수 있었다. 예를 들어 제한된 범위의 거래를 승인하고 있다고 표시된 상태에서 다른 토큰 승인 작업이 서명 대상으로 변경되는 시나리오가 제시됐다.
APDU 통신 과정이 취약점의 핵심
APDU는 컴퓨터나 스마트폰 애플리케이션이 Ledger 기기 내부의 암호화폐 앱과 명령 및 데이터를 주고받는 데 사용하는 통신 단위다.
이더리움 거래를 처리할 때 외부 애플리케이션은 거래 데이터를 여러 APDU 명령으로 전달할 수 있고 Ledger의 Ethereum 앱은 이를 해석해 사용자에게 필요한 정보를 화면에 표시한 뒤 최종 서명을 생성한다.
TestMachine이 공개한 설명에서는 사용자가 기존 거래의 승인 화면을 보고 있는 동안 경쟁하는 명령이 전달될 수 있는 상태가 문제로 지목됐다. 이 과정에서 애플리케이션의 내부 상태와 화면에 표시되는 데이터가 일치하지 않을 수 있다는 것이다.
Ledger는 구체적인 공격 코드나 전체 공격 조건을 공개하지 않았지만 일부 Clear Signing 흐름에 버그가 있었다는 사실은 확인했다.
Ledger 내부 보안팀이 먼저 문제 발견
Ledger 측 설명에 따르면 이번 문제는 회사 내부 보안 연구조직인 Ledger Donjon이 먼저 발견했다. Ledger는 인공지능 기반 취약점 연구 시스템을 이용한 검사 과정에서 해당 버그를 확인했다고 밝혔다.
기예메는 외부 업체가 문제를 공개하기 이전에 내부적으로 수정 작업을 완료했고 약 2주 전에 수정본을 실제 배포했다고 설명했다.
Ledger의 공개 Ethereum 앱 저장소에서도 8월 중순 여러 보안 관련 수정 내역이 확인된다. 8월 12일 공개된 Ethereum 앱 버전 1.22.2의 변경 기록에는 보안 문제 수정이 포함돼 있으며 이후에도 EIP 712 서명 상태와 애플리케이션 컨텍스트, 메시지 처리와 관련된 여러 변경이 추가됐다.
다만 Ledger는 공개된 개별 코드 변경 가운데 어느 항목이 이번 Clear Signing 취약점을 직접 수정한 것인지 별도의 보안 권고문을 통해 특정하지 않았다.
TestMachine과 Ledger 공개 시점을 두고 입장 차이
취약점 자체의 존재와 별도로 문제 발견과 공개 과정에 대해서는 Ledger와 TestMachine의 설명에 차이가 있다.
TestMachine은 자사의 인공지능 보안 시스템 Azimuth가 Ledger Ethereum 앱을 자동 분석하는 과정에서 취약점을 발견했다고 밝혔다. 이후 Ledger Flex 기기에서 문제를 검증하고 Ledger 측과 내용을 공유했다고 설명했다.
반면 기예메는 Ledger 내부 조직이 이미 같은 문제를 찾아 수정한 이후 TestMachine이 버그바운티 프로그램에 연락했다고 밝혔다. 외부 공개 시점에는 문제가 이미 해결된 상태였다는 것이 Ledger의 설명이다.
TestMachine은 자신들이 취약점을 Ledger와 공유하고 검증했으며 버그바운티 보상은 받지 않기로 했다고 밝혔다.
현재 공개된 자료만으로 두 조직이 각각 언제 동일한 문제를 처음 발견했는지에 대한 전체 내부 기록은 확인되지 않았다.
Flex에서 검증됐으며 다른 기기도 언급
TestMachine은 실제 취약점 검증에 Ledger Flex를 사용했다고 밝혔다. 또한 Ethereum 앱에서 사용되는 APDU와 사용자 인터페이스 관련 코드 일부가 여러 Ledger 제품에서 공유된다는 이유로 Nano X와 Nano S Plus, Stax, Apex 등도 관련 가능성이 있는 기기로 언급했다.
다만 모든 기종에서 동일한 조건으로 취약점이 재현됐다는 전체 기술 검증 자료는 공개되지 않았다. 공개된 자료에서 직접적인 검증 대상으로 명시된 제품은 Ledger Flex다.
Ledger 역시 영향을 받은 정확한 앱 버전 목록이나 기기별 공격 조건을 포함한 별도의 상세 보안 권고문을 공개하지 않았다.
화면 확인과 실제 서명이 다른 문제가 중요한 이유
하드웨어 지갑의 주요 보안 구조 가운데 하나는 거래 내용을 인터넷에 연결된 컴퓨터가 아니라 별도의 보안 기기 화면에서 직접 확인하는 것이다.
컴퓨터가 악성코드에 감염돼 있더라도 Ledger 화면에 표시되는 주소와 금액을 확인하면 외부 애플리케이션이 거래 내용을 임의로 바꾸는 공격을 발견할 수 있다.
이번에 공개된 문제는 이 과정에서 화면에 표시된 데이터와 실제 서명 데이터가 달라질 수 있다는 내용이다. 사용자가 Ledger 화면에서 정상 거래를 확인했더라도 최종 서명 대상이 다른 데이터로 변경될 수 있다면 기기 화면 검증 기능이 정상적으로 작동하지 않게 된다.
특히 이더리움에서는 단순한 ETH 전송 외에도 ERC 20 토큰 승인과 NFT 거래, DeFi 스마트계약 호출, EIP 712 메시지 서명 등 다양한 형태의 요청이 존재한다. 토큰 승인 거래에서는 특정 스마트계약이 사용자의 자산을 어느 범위까지 이동할 수 있는지를 서명을 통해 허가하는 경우도 있다.
Blind Signing 문제와는 구분
이번 취약점은 일반적인 Blind Signing 문제와도 구분된다. Blind Signing에서는 기기가 스마트계약의 상세 내용을 사람이 읽을 수 있는 형태로 표시하지 못하기 때문에 사용자가 정확한 실행 내용을 확인하지 못한 채 서명한다.
반면 이번 사례는 Clear Signing 과정 자체에서 발생할 수 있는 문제로 보고됐다. 사용자가 사람이 읽을 수 있는 거래 정보를 화면에서 확인하고 있는 상황에서도 다른 서명 데이터가 처리될 가능성이 제기됐다.
| 구분 | 내용 |
|---|---|
| Clear Signing | 기기 화면에서 거래 내용을 읽을 수 있는 형태로 표시 |
| Blind Signing | 전체 스마트계약 내용을 사람이 읽을 수 있는 형태로 확인하지 못한 상태에서 서명 |
| 이번 취약점 | 일부 Clear Signing 흐름에서 표시 정보와 서명 데이터가 달라질 가능성 |
현재 확인된 피해 사례는 없어
8월 24일까지 이번 Ledger Ethereum 앱 취약점을 이용해 실제 암호화폐가 탈취됐다는 확인된 사례는 공개되지 않았다.
연구진은 기술적으로 악성 애플리케이션이 거래 데이터를 변경할 수 있는 시나리오를 제시했지만 모든 기종에서 실제 자금 탈취까지 이어지는 공개된 전체 공격 시연은 확인되지 않았다.
Ledger도 이번 문제와 관련해 피해자나 손실 금액을 발표하지 않았다. 회사는 수정이 이미 배포됐으며 최신 펌웨어와 애플리케이션을 사용하는 이용자는 해당 문제에서 보호된다고 밝혔다.
Ethereum 앱과 기기 소프트웨어 업데이트 요구
Ledger는 현재 버전의 기기 펌웨어와 Ethereum 앱을 사용해야 한다고 안내하고 있다. Ethereum 앱은 Ledger Wallet을 통해 기기에 설치되는 별도의 애플리케이션이기 때문에 컴퓨터나 스마트폰의 프로그램만 최신 버전으로 변경하는 것과 기기 내부 앱을 갱신하는 것은 서로 다른 과정이다.
Ledger의 공개 Ethereum 앱 변경 기록에서는 8월 12일 버전 1.22.2에 보안 문제 수정이 포함된 것으로 표시돼 있다. 이후 개발 저장소에서도 서명 상태와 EIP 712 데이터 처리, 애플리케이션 컨텍스트 초기화 등에 대한 추가 보안 관련 수정이 이어졌다.
이번 취약점과 직접 연결되는 정확한 패치 커밋과 영향을 받은 최초 버전, 공격에 필요한 전체 조건은 별도의 기술 보고서로 공개되지 않았다.
Ledger의 상세 기술 공개는 아직 제한적
현재까지 확인된 내용은 일부 Clear Signing 흐름에서 버그가 존재했고 Ledger가 이를 수정했다는 사실이다.
외부 연구진은 사용자가 화면에서 검토 중인 거래와 실제 서명되는 데이터를 다르게 만들 수 있는 공격 시나리오를 공개했으며 Ledger는 해당 버그가 외부 공개 전에 이미 수정됐다고 밝혔다.
공개 GitHub 기록에는 8월 중순 여러 보안 관련 수정이 존재하지만 Ledger는 이번 취약점의 CVE 번호나 전체 영향 버전, 기기별 공격 조건, 정확한 수정 코드에 대응하는 별도의 상세 보안 권고문을 아직 공개하지 않았다.
또한 이번 취약점을 이용한 확인된 자금 탈취 사례는 현재까지 보고되지 않았다. Ledger가 공개한 상태는 수정 완료이며 별도의 자산 이전이나 긴급 서비스 중단 조치는 발표되지 않았다.
댓글 0
첫 댓글을 남겨보세요.