Moduł Node.js – strumień zdarzeń (eng. event stream) wykorzystywany jest przez miliony aplikacji internetowych, w tym przez portfele krypto walutowe do przesyłania wrażliwych danych (kopie bibliotek). W zeszłym tygodniu odkryto w nim poważną lukę, a sprawa nabrała rozgłosu w związku z faktem, że popularny portfel o otwartym kodzie źródłowym Copay korzystał z wadliwej wersji modułu.
Problem z portfelami został zauważony przez mało aktywnego użytkownika deanveloper na GitHub, który poinformował o swoim odkryciu w poniedziałek (26.11.2018). Sam problem ze strumieniem został odkryty i był omawiany w poprzednim tygodniu. Jednak nie zauważono od razu w związku z branżą kryptowalut.
Jak doszło do ataku?
Inżynieria społeczna, niekompetencja i lenistwo te stwierdzenia najczęściej pojawiają się w analizach całego problemu. Sam hack został zauważony, gdy jeden z użytkowników GitHuba poprosił poprzedniego opiekuna Dominika Tarra o prawa do publikacji w bibliotece strumienia zdarzeń. Okazało się wtedy, że Tarr (w niewytłumaczalnych okolicznościach) przekazał prawa do zarządzania modułem innemu użytkownikowi o nazwie right9ctrl i nie monitorował ich od lat.
Na tą chwilę nie jest jasne czy right9ctrl popełnił błąd (który zlikwidował po 3 dniach) czy umyślnie dodał linijki do kodu, które umożliwiały przechwytywanie prywatnych kluczy z aplikacji korzystających z modułów strumienia danych i “copay-dash”. Kod traktowany jest jako złośliwy, ponieważ ukierunkowany był na zbieranie danych z portfeli Bitcoin.
Programista, Ayrton Sparling, następująco wyjaśnia problem:
“Right9ctrl dodał „flatmap-stream”, który w całości atakuje drzewo-ps (1 zmiana w repetytorium posiada 3 wersje, z czego najnowsza usunęła iniekcję stworzoną 3 miesiące temu). Po tym, jak dodał złośliwe linijki kodu, zaakceptował samodzielnie nową wersję i opublikował ją. Dosłownie 3 dni później right9ctrl aktualizuje moduł i przywraca repetytorium do poprzedniej wersji. Nie zmienia to jednak faktu, iż wszyscy programiści, którzy w ciągu tych kilku dni ściągnęli moduł (wersja 3.x), są narażeni na atak hakerski (kilka milionów pobrań tygodniowo).”
Mówiąc w prostszy sposób: nowy opiekun strumienia zdarzeń (right9ctrl), zaktualizował moduł, złośliwym kodem, a następnie załatał problem – aby uniknąć wykrycia. Niestety oznacza to, że wiele osób, które już zainstalowały pobrany pakiet, pozostają zagrożone.
Atak na BitPay, Copay i wiele innych portfeli Bitcoin.
Najpopularniejszym portfelem zainfekowanym złośliwym kodem jest Copay. Otwarty kod Copay jest również wykorzystywany przez wiele aplikacji kryptograficznych, dlatego istnieje ryzyko, że w najbliższym czasie usłyszymy więcej o tym problemie.
Istnieje również zagrożenie, że ofiarą ataku lub błędu jest jedna z największych firm przetwarzających płatności crypto – BitPay. To właśnie ich zespół stał za zbudowaniem i obsługą Copay.
Zespół BitPay natychmiast wydał oświadczenie na swojej stronie, w którym zalecają zainstalowanie/uaktualnienie aktualnej wersji Copay v5.2.0 (zainfekowane zostały wersje v5.0.2-5.1.0).
„[…] Użytkownicy powinni zakładać, że klucze prywatne zainfekowanych portfeli mogły zostać skradzione, więc powinny natychmiast przenieść fundusze do nowych portfeli (v5.2.0). Użytkownicy nie powinni próbować przenosić środków do nowych portfeli, importując zainfekowaną frazę z kluczem prywatnym (12 słów). Użytkownicy powinni najpierw zaktualizować portfele, których dotyczy problem (5.0.2-5.1.0), a następnie przesłać wszystkie środki z zaatakowanych portfeli do zupełnie nowego portfela w wersji 5.2.0, używając funkcji Wyślij Maxfeature.”
Sytuację odpowiednio podsumowano w dyskusji na GitHub:
„Jeśli używasz oprogramowania związanego z kryptowalutami, to prawdopodobnie jesteś dotknięty tym atakiem”
Nasuwa się pytanie, czy firmy operujące milionami dolarów powinny korzystać z oprogramowania Open Source?
CCN słusznie zauważa, że programiści rozwijający projekty Open Source zazwyczaj są zatrudniani przez duże firmy, którym zależy na rozwoju danego oprogramowania. Innymi słowy, są osobami wiarygodnymi i zaufanymi. Niestety nie dotyczy to wszystkich, dlatego takie sytuacje jak powyższa zawsze będą miały miejsce. Najprostszym rozwiązaniem problemu byłoby korzystanie forku wersji systemu i sprawdzenie wiarygodności wszystkich aktualizacji/poprawek przez pracowników danej firmy.
Na tę chwilę nie jest jasne ile portfeli i aplikacji kryptowalutowych zostało zainfekowanych. BitPay który ostatnio wprowadził płatność Bitcoin Cash aktualnie bada sprawę celem weryfikacji, czy luka została wykorzystana. Zalecamy ostrożność i aktualizowanie oprogramowania do najnowszych wersji.
Grafika: https://pixabay.com/pl/ha%C5%84ba-upokorzenie-wuj-sam-skandal-230907/