Czego możemy się nauczyć, studiując hacki? Ujawnianie spostrzeżeń na temat ruchów prywatności i kryptowalut po hackowaniu DAO 2016

Symbioza

Termin kryptowaluta stał się niemal synonimem hakowania. Wygląda na to, że co tydzień dochodzi do zadziwiająco dużych włamań na giełdy, portfele indywidualnych użytkowników, inteligentne kontrakty i publiczne łańcuchy bloków, na których się znajdują. W wielu przypadkach wektory ataku są oczywiste z perspektywy czasu: kod nie został przetestowany, nie istniały wewnętrzne procesy zapobiegające phishingowi, nieprzestrzegano podstawowych standardów kodu itp. Badanie samych hacków często nie przyniesie zbyt wielu interesujących informacji dla osób już zaznajomionych z podstawowe praktyki bezpieczeństwa. 

Jednak każde włamanie do kryptowalut składa się z dwóch głównych elementów – jest samo włamanie, a następnie metodologie, za pomocą których haker i jego kohorty próbują wypłacić skradziony łup. Dla zwolenników prywatności próby anonimizacji tych funduszy są interesującymi studiami przypadków dotyczącymi poziomów anonimowości osiągalnych w publicznych sieciach blockchain.

Ponieważ fundusze są ściśle monitorowane przez dobrze zorganizowane i dobrze finansowane agencje rządowe i podmioty korporacyjne, dają one społeczności możliwość zaobserwowania skuteczności różnych zaangażowanych portfeli prywatności. Jeśli hakerzy nie mogą zachować prywatności, jakie są szanse, że przeciętni użytkownicy szukający prywatności w sieciach publicznych będą w stanie ją osiągnąć? 

Hack DAO 2016, przykładowy przypadek

Analizując te włamania i późniejsze aresztowania, staje się jasne, że w większości przypadków hakerzy popełniają kluczowe błędy, próbując anonimizować swoją kryptowalutę. W niektórych przypadkach awarie wynikają z prostych błędów użytkownika. W innych przypadkach są one spowodowane błędami w używanym oprogramowaniu portfela lub innymi mniej niż oczywistymi błędami na drodze do konwersji kryptowaluty na rzeczywiste aktywa. 

Ostatnio szczególnie interesująca sprawa, włamanie do DAO w 2016 r., zyskała znaczący rozwój – miała charakter dochodzeniowy Artykuł w Forbes opublikowano dane identyfikujące domniemanego hakera. Proces identyfikacji tej osoby pozwala uzyskać wgląd w powszechnie używany portfel zapewniający prywatność, Wasabi Wallet, oraz w jaki sposób niewłaściwe użycie oprogramowania może prowadzić do „demiksowania” środków rzekomego hakera. 

Popełniono krytyczne błędy

Jeśli chodzi o kolejność operacji, pierwszym posunięciem hakera była konwersja części skradzionych środków z Ethereum Classic na Bitcoin. Haker użył narzędzia Shapeshift do wykonania zamiany, co w tamtym czasie zapewniało pełny publiczny rejestr wszystkich transakcji na platformie. Z Shapeshift część środków przeniosła się do Wasabi Wallet. Odtąd wszystko idzie w dół.  

Dla niewtajemniczonych: CoinJoin to skrót od specjalnego protokołu konstrukcji transakcji, który umożliwia wielu stronom agregację środków w dużą transakcję w celu przerwania połączenia pomiędzy środkami wpływającymi do CoinJoin i środkami wypływającymi z CoinJoin.

Zamiast transakcji mającej jednego płatnika i odbiorcę, transakcja CoinJoin ma wielu płatników i odbiorców. Załóżmy na przykład, że masz CoinJoin z 10 uczestnikami — jeśli CoinJoin jest prawidłowo skonstruowany i wszystkie zasady interakcji są prawidłowo przestrzegane, środki wypływające z CoinJoin będą miały zestaw anonimowości wynoszący 10, tj. dowolny z 10 „mieszanych wyników” ” z transakcji może należeć do dowolnego z 10 (lub więcej) „niezmieszanych danych wejściowych” transakcji. 

Chociaż CoinJoins może być bardzo potężnym narzędziem, uczestnicy mają wiele okazji do popełnienia krytycznych błędów, które znacząco pogarszają lub całkowicie podważają prywatność, jaką mogliby zyskać dzięki CoinJoin. W przypadku rzekomego hakera DAO taki błąd miał miejsce. Jak przeczytasz dalej, istnieje możliwość, że ten błąd był błędem użytkownika, jednak możliwe jest również, że w portfelu Wasabi wystąpił (już naprawiony) błąd, który doprowadził do tego błędu prywatności. 

Portfel Wasabi korzysta z Protokół ZeroLink, który konstruuje CoinJoins z mieszanymi wynikami o równej wartości. Oznacza to, że wszyscy użytkownicy muszą wymieszać tylko określoną, z góry ustaloną ilość Bitcoinów. Jakakolwiek wartość powyżej tej kwoty, która trafia do CoinJoin, musi zostać zwrócona odpowiednim użytkownikom jako niezmieszany Bitcoin.

Jeśli na przykład Alicja ma pojedyncze wyjście Bitcoina o wartości 15 Bitcoina, a CoinJoin akceptuje tylko wyjścia o wartości 1 Bitcoina, po zakończeniu CoinJoin Alicja będzie miała wynik Bitcoina o wartości 1 mieszanego Bitcoina i wynik wyjściowy Bitcoina o wartości 05 niezmieszanego. Bitcoin .05 jest uważany za „niezmieszany”, ponieważ można go powiązać z oryginalnym wyjściem Alicji w formacie .15. Zmieszanego wyniku nie można już bezpośrednio powiązać z wejściem i będzie on miał zestaw anonimowości składający się z wszystkich pozostałych uczestników CoinJoin. 

Aby zachować prywatność CoinJoin, konieczne jest, aby zmieszane i niezmieszane wyniki nigdy nie były ze sobą powiązane. W przypadku przypadkowego zagregowania ich w łańcuchu bloków bitcoin w ramach pojedynczej transakcji lub zestawu transakcji, obserwator może wykorzystać te informacje do prześledzenia zmieszanych wyników z powrotem do ich źródła. 

W przypadku hakera DAO wygląda na to, że podczas korzystania z Wasabi Wallet korzystał z jednego adresu w wielu CoinJoinach; W jednym przypadku adres był używany jako niezmieszane wyjście zmiany, w drugim przypadku był używany jako wyjście mieszane.

Jest to stosunkowo nietypowy błąd w kontekście CoinJoin, ponieważ ta technika poczucia winy przez skojarzenie wymaga transakcji poniżej CoinJoins w celu „scalenia” niezmieszanych i zmieszanych wyników, łącząc je ze sobą. Jednak w tym przypadku nie było potrzeby analizowania żadnych transakcji poza dwoma CoinJoinami, ponieważ ten sam adres był używany w sprzeczny sposób w dwóch oddzielnych CoinJoins. 

Zasadniczo taka możliwość istnieje ze względu na decyzję projektową podjętą w oprogramowaniu Wasabi Wallet: Wasabi Wallet wykorzystuje pojedynczą ścieżkę wyprowadzania zarówno dla wyników mieszanych, jak i niezmieszanych. Jest to brane pod uwagę zła praktyka. Pracownik Wasabi stwierdził, że miało to na celu zapewnienie zgodności przywracania portfela z innymi portfelami, jednak BIP84 (który jest schemat wyprowadzenia Wasabi Wallet) ma standardowy sposób rozpoznawania ścieżki wyprowadzenia przypisanej do zmiany wyników.

Awarie wynikające z takiego wyboru projektu są najbardziej widoczne, gdy użytkownik ma dwie instancje portfela Wasabi uruchomione w tym samym czasie i korzysta z tego samego materiału początkowego. W tym scenariuszu byłoby możliwe, aby dwie instancje wybrały ten sam adres w sprzeczny sposób, próbując jednocześnie uruchomić miks z każdej instancji. Przed tym ostrzega się w oficjalna dokumentacja. Możliwe jest również, że przyczyną były znane błędy w portfelu Wasabi.

Wnioski i wnioski

Czego więc się z tego uczymy? Chociaż ten błąd z Wasabi nie jest końcem historii, odegrał kluczową rolę w wyśledzeniu rzekomego hakera. Po raz kolejny potwierdza się nasze przekonanie, że prywatność jest trudna. Jednak w praktyce mamy kolejny przykład na to, jak ważne jest zapobieganie zanieczyszczeniu wyników podczas korzystania z narzędzi zapewniających prywatność oraz jak staranna „kontrola monet” jest wymagana zarówno od użytkowników, jak i oprogramowania. Powstaje pytanie, jakiego rodzaju protokoły prywatności zaprojektowano tak, aby minimalizować ataki tej klasy? 

Ciekawym rozwiązaniem jest CoinSwap, w którym zamiast łączyć wyniki w dużą transakcję, zamieniasz wyniki z innym użytkownikiem. W ten sposób zamieniasz historie monet, a nie łączysz się z historiami monet. Co więcej, jeśli CoinSwap jest wykonywany poza łańcuchem (jak jest to realizowane przez Mercury Wallet), nie ma w ogóle żadnych niezmieszanych wyników zmian, którymi można by się zająć. 

Chociaż istnieją możliwe błędy użytkownika, które mogą spowodować „wycofanie wymiany CoinSwap”, błędy te są prawdopodobnie znacznie bardziej oczywiste dla użytkownika końcowego, ponieważ jakiekolwiek połączenie wyników w sposób naruszający prywatność można wykonać jedynie poprzez wyraźne zmieszanie zamieniono dane wyjściowe na takie, które nie zostały jeszcze zamienione, w przeciwieństwie do łączenia dwóch wyników, które już przeszły przez CoinJoin, z których tylko jedno jest faktycznie zmiksowane.

Portfel Merkury jest obecnie jedyną funkcją CoinSwap poza łańcuchem dostępną dla użytkowników końcowych. Pozwala użytkownikom zablokować swoje monety w protokole warstwy drugiej (znanym jako łańcuch stanu), a następnie na ślepo wymieniać swoje dane wyjściowe z innymi użytkownikami łańcucha stanu. To bardzo interesująca technika, z którą warto eksperymentować dla osób zainteresowanych odkrywaniem nowatorskich narzędzi do ochrony prywatności oferujących ekscytującą funkcjonalność i akceptowalne kompromisy.

Uzyskaj codzienne podsumowanie Bitcoin, DeFi, NFT i Web3 wiadomości z CryptoSlate

To nic nie kosztuje i w każdej chwili możesz zrezygnować z subskrypcji.

Otrzymaj krawędź na rynku kryptowalut ?

Zostań członkiem CryptoSlate Edge i uzyskaj dostęp do naszej ekskluzywnej społeczności Discord, bardziej ekskluzywnych treści i analiz.

Analiza łańcuchowa

Migawki cenowe

Więcej kontekstu

Dołącz teraz za 19 USD / miesiąc Poznaj wszystkie korzyści

Źródło: https://cryptoslate.com/what-can-we-learn-from-studying-hacks-revealing-insights-on-privacy-and-cryptocurrency-movements-after-the-dao-2016-hack/