본문 바로가기

Bit와 Byte

이중 지출을 위해 악용될 수 있는 비트코인 지갑의 결함 발견

728x90

 

 

 

비트코인을 거래하는 표준 방법은 일종의 이중 지출을 가능하게 하기 위해 잘못 사용될 수 있다고 새로운 연구가 발견했습니다.

 

월렛 스타트업인 ZenGo의 블록체인 슬류스는 적어도 3개의 주요 경쟁 암호화 월렛인 Ledger Live, Edge and Breadwallet (BRD)에 영향을 미치는 취약점을 발견했습니다.

 

텔아비브에 기반을 둔 회사가 BigSpender라고 부르는 버그는 해커가 사용자의 자금을 두배로 지출하여 지갑을 다시 사용하지 못하게 할 수 있습니다. 

 

특정 지갑이 Bitcoin의 RBF (Replace-by-fee-Rfee) 기능을 처리하는 방식을 활용하여 작동합니다.

 

이 기능은 사용자가 확인되지 않은 거래를 더 높은 수수료가 있는 거래와 교환 할 수 있도록하는 안전장치입니다.

 

 

 

ZenGo의 CEO 인 Ouriel Ohayon은 “[BigSpender]는 상당한 재정적 손실로 이어질 수 있으며 어떤 경우에는 피해자가 자신을 보호 할 수 있는 방법없이 피해자의 지갑을 완전히 사용할 수 없게 만들 수 있습니다. 이것은 심각도가 높은 공격으로 볼 수 있습니다." 라고 말합니다.

 

RBF 기능은 시간잠금 트랜잭션과 같은 관련 취약점이 있는 다른 선택적 Bitcoin 기능과 마찬가지로 사용자가 가치를 주고받는 표준방법이되었습니다. 

Bitcoiners 가 더 많은 비용을 지불함으로써 확인시간이 느려지는 방법으로 개발자 커뮤니티에 의해 채택되었습니다.

 

처음부터 비트코인 시스템의 프로토콜 레이어에 통합되어 있음에도 불구하고 RBF 기능이 비트코인 지갑에 의해 잘 지원되지 않을까 우려되는 비트코인 연구원 0xB10C는 말했습니다. 

 

“ZenGo는 사용자가 비트코인을 받고 있지 않다고 생각하면 속일 수 있음을 보여줍니다.  나는 이것이 소설이라고 생각합니다. 최소한 전에는 들어 본 적이 없습니다.” 

 

이 회사는 Ledger Live, Trust wallet, Exodus, Edge, Bread, Coinbase, Blockstream Green, Blockchain 및 Atomic Wallet을 포함한 9개의 서로 다른 지갑을 테스트했습니다. 

 

테스트 된 것 중 3개는 이론적 착취에 취약한 것으로 밝혀졌습니다.

 

Ohayon은  모든 지갑을 테스트하지는 않았지만 가장 큰 지갑 중 3개가 연루되면 더 많은 지갑이 있을 수 있습니다. 

ZenGo는 회사에 조사 결과를 알리고 90일 동안 취약점을 복구했습니다.

 

원장과 BRD는 공격이 발생하지 않도록 코드 변경 사항을 발표했으며 공개되지 않은 버그 바운티를 ZenGo에 지불했으며 Edge는이 문제를 해결할 수있는“중요한 리 팩터”를 겪고 있다고 Edge Puer는 이메일로 밝혔습니다.

 

전 비트 코인 개발자이자 RBF의 설계자 인 피터 토드 (Peter Todd)는 해킹은 RBF를 포함하되 이에 국한되지 않는 특정 지갑이 미확인 거래를 처리하는 방식에서 알려진 취약점을 이용한다고 말했습니다.

 

작동 방식 : 공격자는 의도한 피해자에게 자금을 송금하고 거래가 확인을 받지 못하도록 거의 수수료를 낮춥니다. 취약한 지갑의 경우 이 보류중인 거래는 수령인의 계좌 잔고 증가로 반영되어 일부 피해자는 보류중인 거래가 이미 확인되었다고 잘못 판단 할 수 있습니다. 그런 다음 공격자는 RBF를 사용하여 수신자를 자신이 제어하는 ​​주소로 변경하여 ZenGo 용어에서 보류중인 트랜잭션을 "취소" 합니다. 피해자는 거래가 실제로 취소되었다는 사실을 알았을 때 상품을 배달할 것입니다.

 

명확하게하기 위해 : RBF 이전에 유사한 공격이 있었지만 지갑제공 업체의 적절한 예방 조치가 없다면 지불 옵션이 위험을 강조했습니다.

 

피해자의 진술과 실제 균형 간의 불일치는 악의적인 행위자가 비용이나 비용을 지불하지 않고 상품이나 서비스를 제공하도록 속이는 악의적 인 행위자에 의해 악용될 수 있습니다. 이런 의미에서 결함은 지갑의 UX 및 UI 디자인에 있습니다.

 

이중 문제

 

ZenGo의 연구원에 따르면 해커가 비트 코인을 제어하면서 동시에 지불을 받았다고 믿는 사람을 속일 수 있다면 이는 이중 지출입니다. 다른 사람들은이 용어의 사용에 이의를 제기합니다.

 

“이중 지출의 정의를 결정해야합니다. 트롤이 아닌 대부분의 사람들은 당신이 어떻게 든 무효화되고 다른 확인 된 거래와 함께 사용 된 확인 된 거래가있을 때 이중 지출이 있다고 말합니다.”라고 스타트 업 카사의 CTO 인 Jameson Lopp

 

이 공격은 특성상 지갑이 확인되지 않은 거래를 표시하는 방식을 이용합니다. 이런 의미에서,이 공격은 사기 적이지만 비트 코인 코드의 기능을 방해하지 않습니다.

 

Lopp은“블록 체인의 요점은 이중 지출 문제를 방지하는 것입니다. "이것은 원래의 Satoshi 백서로 되돌아갑니다. 이중 지출에 대한 해결책은 많은 사람들이 확인하고있는 분산 원장을 갖는 것입니다."

 

신뢰할 수있는 유일한 것은 채굴 된 거래입니다.

 

비트 코인으로 거래 할 때 일반적으로 발생하는 규칙은 확인이 6 개 미만인 트랜잭션을 절대 신뢰하지 않는 것이라고 0xB10C는 말했다. 이것은 Todd, Lopp 및 BRD CTO Samuel Sutch를 포함한 많은 개발자들에 의해 반복 된 요점입니다. 이 악용이 계속되면 최소한 책임 중 일부가 피해자에게 있습니다.

 

Todd는 신뢰할 수 있는 유일한 것은 채굴된 거래뿐이라고 말합니다.

 

이런 의미에서 Sutch는 BigSpender를 "사소한 버그" 및 "유사한 종류" 라고 말했지만 버그 현상금을 수정하고 지불할 가치가 있는것으로 생각했습니다. 

BRD는 최근 5백만 명의 사용자를 통과했다고 Sutch는 말했다.

 

Lopp은 “월렛 개발자는 더 많은 사용자가 자신의 차이점을 알지 못한다는 것을 알아야 합니다. 많은 사람들은 보안 관점에서 확인된 것과 확인되지 않은 것의 차이점을 알지 못합니다. 따라서 개발자들은 더 나은 사용자 경험을 구축하여 이와 같은 것들로 인해 혼동되거나 사기를 당할 수 없습니다.”

 

이를 위해 Ledger는 지갑에 보류중인 거래가 표시되는 방식을 업데이트했습니다. 

 

사용자가 블록 탐색기를 사용하여 "트랜잭션 상태를 확인해야" 할지 확실하지 않은 경우 Ledger의 CTO 인 Charles Guillemet은 “이제 은행에서 확인할 수 없습니다.” 라고 이메일을 통해 말했습니다.

 

이중 비전

 

RBF 거래 중 발생하는 상황을 명확하게 표시하기 위해 지갑을 업데이트하는 것은 관련된 모든 사람에게 적합합니다. 그러나 ZenGo 연구원은 위에서 설명한 것과 동일한 체계를 따르는 2 차 공격이 있으며, 피해자가 거래에 대한 지식이 있거나없는 지갑을 영구적으로 비활성화 할 수 있음을 발견했습니다.

 

이 경우 공격자는 지갑으로 반복된 거래를 보내 피해자의 잔액을 다시 인위적으로 부풀립니다. 

 

이것은 피해자의 동의없이 수행될 수 있습니다. 

거래가 확인되기 전에 거래를 다시 라우팅함으로써, 피해자의 명시된 지갑 잔액과 실제 자금이 다시 분리되어 지갑을 사용할 수 없게됩니다. 

게다가 공격은 동시에 여러 지갑에 영향을 줄 수 있습니다.

 

기본적으로 서비스 거부 (DoS) 공격으로 사람들이 지갑을 사용하지 못하게 합니다.

 

Ohayon은 “지갑의 코인 선택 알고리즘이 존재하지 않는 이 거래에서 자금을 선택하면 다른 종류의 전송 시도도 비활성화됩니다. 

이 지갑은 Sutch의 말투를 사용하기 위해 "깨끗한" 상태입니다. "큰 불편입니다."

 

Sutch는 BRD가 경고를받은 후이 취약점을 회사의 최우선 과제로 삼았습니다. 이상하게도 관련없는 문제를 해결하면서 버그를 수정했다고 그는 말했다.

 

ZenGo가 보안연구를 통해 제기한 문제는 팀이 테스트한 지갑에 격리되지 않았습니다. 

 

비트코인 지갑의 대다수는 RBF 거래를 받을 수 있으며, 그 뒤에 있는 많은 회사들은 “자원이 제한되어있다” 고 Sutch는 말했습니다.

 

Casa에서 RBF 기능을 활성화할 때 Lopp은 업계에서 비표준인 확인될 때까지 이러한 유형의 트랜잭션을 표시하지 않도록 시스템을 구성했다고 말했습니다. 

기본 매개 변수는 이러한 트랜잭션을 표시합니다.

 

 

 

 

 

비트코인,지갑앱,이중지출,

 

728x90