Giełda kryptowalut Poloniex okradziona z części BTC

dodał 4 marca 2014 o 20:50 w kategorii Drobiazgi  z tagami:

Jeszcze chyba nigdy w historii sieci niezamówione testy penetracyjne nie były tak opłacalne jak od momentu wzrostu wyceny kryptowalut. Do szybko rosnącej listy poważnych wpadek serwisów działających w tym sektorze dopisujemy giełdę handlująca dziesiątkami walut – Poloniex.com. Właśnie ogłosiła ona, że padła ofiarą niezbyt wyrafinowanego ataku, w którym straciła 12% wszystkich środków z gorącego portfela.

To tylko ok. połowa walut, którymi handluje Poloniex

To tylko ok. połowa walut, którymi handluje Poloniex

Tym razem właściciel giełdy sporządził porządną analizę przyczyn kradzieży, za co cześć mu i chwała. Niestety czci nie można mu oddać za zbudowanie mechanizmów giełdy, bo to właśnie podstawowe błędy w konstrukcji mechanizmów wypłaty doprowadziły do wyprowadzenia środków. Okazuje się, że udało mu się stworzyć giełdę, gdzie ujemny bilans rachunku nie jest sygnałem blokującym wypłaty.

Według opisu mechanizm działania wypłat był następujący:

  1. Weryfikacja danych wejściowych
  2. Weryfikacja salda – czy umożliwia wypłatę
  3. Redukcja salda
  4. Dodanie wypłaty do bazy danych
  5. Email z potwierdzeniem wypłaty
  6. Po potwierdzeniu przez użytkownika – proces wypłaty

Złodzieje odkryli podstawowy błąd w procesie – jeśli stworzy się w tym samym momencie kilka poleceń wypłaty, zanim nastąpi redukcja salda, wszystkie polecenia przejdą prawidłowo proces weryfikacji i dodania do bazy danych. Wynikiem procesu jest ujemne saldo, które co ciekawe nie blokuje wypłat z rachunku. Hurra! Tak kończy się równoległe przetwarzanie wypłat.

Najzabawniejszy jest fakt, że w system wbudowane były mechanizmy zapobiegające nadużyciom, które sprawdzały, czy przeprowadzone operacje zgadzają się z faktycznym saldem rachunku. Mechanizmy te zadziałały zgodnie z oczekiwaniami ich twórców – skoro ktoś miał 2 BTC, wypłacił 10, to saldo prawidłowo skazuje -8 BTC i wszystko jest OK! Nic tylko pogratulować. Jedynym plusem jest zadziałanie innego mechanizmu, który w sytuacji nagłego spadku salda portfela giełdy zablokował dalsze wypłaty, ograniczając straty do ok. 76 BTC.

Jak można się spodziewać, właściciel giełdy nie planuje pokryć strat z własnych środków (podobno ich nie posiada w wystarczającej ilości), obiecał za to, że odda stracone fundusze w bliżej nieokreślonej przyszłości – o ile jeszcze ktoś będzie z jego giełdy korzystał.