Zephyrnet-logo

Terugblik: Recente Coinbase Bug Bounty Award

Datum:

Bij Coinbase is onze eerste prioriteit ervoor te zorgen dat we onze beveiligingsverplichtingen aan onze klanten nakomen. Op 11 februari 2022 ontvingen we een rapport van een externe onderzoeker die aangeeft dat ze een fout in de handelsinterface van Coinbase hadden ontdekt. We mobiliseerden onmiddellijk ons ​​responsteam voor beveiligingsincidenten om de bug te identificeren en te patchen, en losten het onderliggende systeemprobleem op zonder enige impact op het geld van de klant.

Deze blogpost biedt een diepere kijk op de tijdlijn van gebeurtenissen rond het bugrapport, evenals een uitleg van de bug zelf en de stappen die we hebben genomen om deze op te lossen en ervoor te zorgen dat het niet opnieuw kan gebeuren.

(let op, alle gebeurtenissen vonden plaats op 11 februari 2022 en alle tijden zijn in PST)

  • 10:16 uur: Een lid van de cryptogemeenschap tweet dat ze een ernstige fout in de Coinbase-handelsinterface hebben ontdekt en vraagt ​​om contact met het Coinbase Security-team.
  • 11:00 uur: Op basis van beperkte initiële informatie verstrekt door tussenpersonen, meldt Coinbase Security een incident en mobiliseert technische middelen om te beginnen met het testen van alle handelsinterfaces om de geldigheid van de vermeende bug te bepalen.
  • 11:21 uur: De crypto-onderzoeker dient een kwetsbaarheidsrapport in via HackerOne, het bug bounty-platform van Coinbase, wat aangeeft dat de fout in een specifieke API voor Retail Advanced Trading zit. Coinbase-ingenieurs voltooien ook een beoordeling van alle andere gebruikersinterfaces en Coinbase Exchange-API's en bepalen dat deze niet worden beïnvloed.
  • 11:42 uur: De technici van Coinbase kunnen de bug reproduceren en het Retail Advanced Trading-platform wordt in de modus voor alleen annuleren geplaatst, waardoor nieuwe transacties worden uitgeschakeld.
  • 4 uur: Een patch wordt gevalideerd en vrijgegeven, waarmee het incident wordt opgelost.

De onderliggende oorzaak van de bug was een ontbrekende logische validatiecontrole in een Retail Brokerage API-eindpunt, waardoor een gebruiker transacties kon indienen bij een specifiek orderboek met behulp van een niet-overeenkomend bronaccount. Deze API wordt alleen gebruikt door ons Retail Advanced Trading-platform, dat momenteel in beperkte bètaversie is.

Om een ​​voorbeeld te geven:

  • Een gebruiker heeft een account met 100 SHIB en een tweede account met 0 BTC.
  • De gebruiker dient een marktorder in bij het BTC-USD-orderboek om 100 BTC te verkopen, maar bewerkt handmatig zijn API-verzoek om zijn SHIB-account op te geven als de bron van fondsen.
  • Hier zou de validatieservice controleren of het bronaccount voldoende saldo had om de transactie te voltooien, maar niet of het bronaccount overeenkwam met het voorgestelde activum voor het indienen van de transactie.
  • Als gevolg hiervan zou een marktorder om 100 BTC te verkopen in het BTC-USD-orderboek worden ingevoerd op de Coinbase Exchange.

Er waren verzachtende factoren die de impact van deze fout zouden hebben beperkt als deze op grote schaal was uitgebuit. Coinbase Exchange heeft bijvoorbeeld automatische stroomonderbrekers voor prijsbescherming en ons handelsbewakingsteam controleert onze markten voortdurend op gezondheid en afwijkende handelsactiviteiten.

Dankzij de onderzoeker die dit probleem op verantwoorde wijze heeft onthuld, kon Coinbase deze bug binnen enkele uren oplossen en definitief vaststellen dat er nooit kwaadwillig misbruik van is gemaakt. We hebben ook extra controles uitgevoerd om ervoor te zorgen dat dit niet meer kan gebeuren.

Coinbase ondersteunt onafhankelijk beveiligingsonderzoek ten zeerste en wanneer die onderzoekers serieuze problemen ontdekken, willen we ervoor zorgen dat ze dienovereenkomstig worden beloond. Als gevolg hiervan betalen we onze grootste bugbounty ooit voor deze bevinding: $ 250,000.

We verwelkomen toekomstige inzendingen van deze onderzoeker en anderen via ons HackerOne-programma: https://hackerone.com/coinbase.

spot_img

Laatste intelligentie

spot_img