Coinbase에서 최우선 순위는 고객에 대한 보안 약속을 지키는 것입니다. 11년 2022월 XNUMX일, 우리는 타사 연구원으로부터 Coinbase의 거래 인터페이스에서 결함을 발견했다는 보고서를 받았습니다. 우리는 즉시 보안 사고 대응 팀을 동원하여 버그를 식별하고 패치했으며 고객 자금에 영향을 미치지 않으면서 근본적인 시스템 문제를 해결했습니다.
이 블로그 게시물은 버그 보고서와 관련된 이벤트의 타임라인과 버그 자체에 대한 설명과 이를 해결하고 다시는 발생하지 않도록 하기 위해 취한 단계를 제공합니다.
연혁
(참고, 모든 이벤트는 11년 2022월 XNUMX일에 발생했으며 모든 시간은 PST 기준)
- 오전 10시 16 분 : 암호화 커뮤니티의 한 회원은 코인베이스 거래 인터페이스에서 심각한 결함을 발견했다고 트윗하고 코인베이스 보안 팀에 연락을 요청했습니다.
- 오전 11시 00 분 : 중개자가 제공한 제한된 초기 정보를 기반으로 Coinbase Security는 사건을 선언하고 엔지니어링 리소스를 동원하여 의심되는 버그의 유효성을 확인하기 위해 모든 거래 인터페이스를 테스트하기 시작합니다.
- 오전 11시 21 분 : 크립토 연구원은 코인베이스의 버그 바운티 플랫폼인 HackerOne을 통해 취약점 보고서를 제출했으며, 이는 소매 고급 거래를 위한 특정 API에 결함이 있음을 나타냅니다. 또한 Coinbase 엔지니어는 다른 모든 사용자 인터페이스 및 Coinbase Exchange API에 대한 검토를 완료하고 영향을 받지 않는지 확인합니다.
- 오전 11시 42 분 : Coinbase 엔지니어는 버그를 재현할 수 있으며 Retail Advanced Trading 플랫폼은 취소 전용 모드로 전환되어 새로운 거래를 비활성화합니다.
- 오후 4:01 : 패치가 검증되고 릴리스되어 사건이 해결됩니다.
근본 원인
버그의 근본적인 원인은 Retail Brokerage API 끝점에서 누락된 논리 유효성 검사로 인해 사용자가 일치하지 않는 소스 계정을 사용하여 특정 주문서에 거래를 제출할 수 있었습니다. 이 API는 현재 제한된 베타 릴리스로 제공되는 Retail Advanced Trading 플랫폼에서만 사용됩니다.
예를 들자면:
- 사용자는 100 SHIB가 있는 계정과 0 BTC가 있는 두 번째 계정이 있습니다.
- 사용자는 100 BTC를 판매하기 위해 BTC-USD 주문서에 시장 주문을 제출하지만 SHIB 계정을 자금 출처로 지정하기 위해 API 요청을 수동으로 편집합니다.
- 여기에서 유효성 검사 서비스는 원본 계정에 거래를 완료하기에 충분한 잔액이 있는지 여부를 확인하지만 원본 계정이 거래 제출을 위해 제안된 자산과 일치하는지 여부는 확인하지 않습니다.
- 그 결과 BTC-USD 오더북에 100 BTC를 판매하는 시장가 주문이 Coinbase Exchange에 입력됩니다.
이 결함이 대규모로 악용되었다면 이 결함의 영향을 제한했을 완화 요소가 있었습니다. 예를 들어, Coinbase Exchange에는 자동 가격 보호 회로 차단기가 있으며 당사 무역 감시 팀은 건강 및 비정상적인 거래 활동에 대해 시장을 지속적으로 모니터링합니다.
결론
책임감 있게 이 문제를 공개한 연구원 덕분에 Coinbase는 몇 시간 만에 이 버그를 수정할 수 있었고 악의적으로 악용된 적이 없다는 결론을 내릴 수 있었습니다. 또한 이러한 일이 다시 발생하지 않도록 추가 점검을 실시했습니다.
Coinbase는 독립적인 보안 연구를 강력하게 지원하며, 해당 연구원이 심각한 문제를 발견할 때 그에 따라 보상을 받을 수 있도록 합니다. 결과적으로 우리는 이 발견에 대해 사상 최대 규모의 버그 현상금인 $250,000를 지불하고 있습니다.
우리는 HackerOne 프로그램을 통해 이 연구원과 다른 사람들의 향후 제출을 환영합니다. https://hackerone.com/coinbase.
회고: 최근 Coinbase 버그 바운티 상 에서 원래 출판 된 Coinbase 블로그 이 이야기를 강조 표시하고 응답함으로써 사람들이 대화를 계속하고있는 매체에.