Włamał się do aplikacji obsługującej znane na całym świecie polskie urządzenie. Dla... piwa

Robert Kędzierski
Polska firma stworzyła jedno z najbardziej przełomowych urządzeń służących do bezprzewodowej interakcji z konsumentem. Polski programista znalazł sposób, by je przechytrzyć. Mógłby "w nagrodę" wypić morze darmowego piwa. Postanowił jednak podzielić się wiedzą z innymi. Tak robią hakerzy z prawdziwego zdarzenia.

Polski programista ogłosił na swoim blogu, że znalazł sposób na przełamanie zabezpieczeń aplikacji obsługującej polski beacon Estimote. Dzięki stworzonej przez siebie procedurze mógłby już nigdy nie płacić za piwo. Zacznijmy jednak od początku.

Beacony Estimote

Za tą dość tajemniczą nazwą kryje się jedna z największych polskich innowacji ostatnich lat. Beacony to niewielkie urządzenia nadawczo-odbiorcze działające podobnie jak router WiFi. Są jednak mniejsze i nie wymagają dużo energii - wystarczy im bateria. Można je zamontować w dowolnym miejscu sklepu, restauracji czy centrum handlowego. Stworzyła je firma Estimote - założona przez Polaków (tu więcej o jej sukcesie komercyjnym)

Jak działają Beacony? Kliknij, aby powiększyć (grafika Paweł Płaza)Jak działają Beacony? Kliknij, aby powiększyć (grafika Paweł Płaza) Jak działają Beacony? Kliknij, aby powiększyć (grafika Paweł Płaza)

Beacony wykorzystywane są na wiele sposobów, bo są bardzo otwarte i elastyczne. Mogą służyć do zliczania osób wchodzących do sklepu, "rozsyłać" ofertę reklamową. Służą też do "meldowania się" w określonych miejscach.

I właśnie tę ostatnią z funkcji beacona postanowił złamać Kuba Gretzky - programista z Polski. Wziął na warsztat beacon znajdujący się w jednej z restauracji.

Służył w niej do obsługi programu lojalnościowego. Klient zamiast nosić ze sobą wizytówkę, na której kelner po zakupie każdego piwa przybija pieczątkę, korzystał z beacona. Aplikacja obsługująca program dopuszczała dwie możliwe formy potwierdzenia zakupu: zbliżenie do beacona, albo wpisanie kodu. 

Otwarte standardy czyli darmowe piwo

Gretzky postanowił stworzyć system, który pozwoli na nieautoryzowane naliczanie darmowych punktów. Szybko odkrył, że urządzenie, które działa w restauracji wykorzystuje publiczny numer UUID. To rodzaj identyfikatora przypisanego do wielu tego tupu urządzeń. 

Programista odniósł sukces. Wystarczyło, by wszedł do restauracji i przechwycił identyfikator UUID rozsyłany przez beacon. Po jego zapisaniu, już w domu, musiał uruchomić aplikację obsługującą program lojalnościowy i napisany przez siebie kod. Zamiast potwierdzenia zakupu piwa przez zbliżenie musiał wskazać metodę PINu. Stworzony przez niego system sprawił, że mógł wpisać dowolny kod, a aplikacja uznała go za prawidłowy i naliczyła sprzedaż. W ten sposób Gretzky, mógłby pić darmowe piwo tak długo, aż obsługa nie zorientowałaby się, że coś jest nie tak. Oczywiste jest jednak, że intencją polskiego programisty było znalezienie luki w oprogramowaniu, a nie schłodzony napój.

Estimote: ta dziura jest już załatana

Jakub Krzych, Steve Cheney, Łukasz Kostka - założyciele EstimoteJakub Krzych, Steve Cheney, Łukasz Kostka - założyciele Estimote Fot. Estimote

Jakub Krzych, prezes i współzałożyciel Estimote, wyjaśnił nam, że problem jest znany.  Firma opublikowała odpowiednie aktualizacje dla oprogramowania beaconów w zeszłym roku. 

Trochę niefortunne w przypadku tego klienta i tej aplikacji była sama implementacja, która wykorzystywała publiczny numer beacona zgodny z protokołem Apple iBeacon (tzw. numery UUID, Major i Minor). Ponieważ są to publiczne informacje dostępne dla każdego z natury rzeczy nie powinny być wykorzystywane do autentykacji transakcji. Rozwiązaniem, które my rekomendujemy wszystkim klientom jest pionierska i opatentowana przez Estimote technologia tzw. Secure UUID dla urządzeń Apple. Dzięki tej technologii numery beacona dynamicznie się zmieniają i nie są łatwe do podrobienia. Dostępna jest też wydana kilka miesięcy temu technologia Eddystone-EID opracowana wspólnie z Google, która również zabezpiecza aplikacja na Androida w jeszcze bardziej wyrafinowany sposób i można jej używać zarówno na obu platformach.
embed

Jednocześnie podziękował, za naszym pośrednictwem, za zwrócenie uwagi, iż w tej konkretnej restauracji zabezpieczenia udało się złamać.

Opisana przez sprytnego inżyniera w artykule metoda jest dość złożona i żmudna, stąd trudno sobie wyobrazić, aby stwarzała duże ryzyko dla klienta lub jego partnerów. Nie mniej jednak jesteśmy wdzięczni wszystkim, którzy przyczyniają się do bezpieczeństwa naszych technologii oraz wdrożeń naszych klientów.

- napisał pan Krzych w przesłanym nam oświadczeniu.

Sytuacja jest dowodem na to, że każdy system wymaga zabezpieczeń i testów "terenowych", bo programiści nie są w stanie przewidzieć wszystkich zagrożeń i wad produktu. Dobrze, że polski programista wykazał się zapałem. Dowiódł tego, że stosowanie przestarzałego oprogramowania nie jest bezpieczne. 

Więcej o: