Zabezpieczenia aplikacji na Androida złamane... w banalny sposób
Nie dalej jak miesiąc temu informowaliśmy o nowych, restrykcyjnych zabezpieczeniach antypirackich dla płatnych aplikacji w Android Market. Jak widać ich złamanie nie zajęło wiele czasu, a co więcej okazuje się, że nie należą one do szczególnie wyrafinowanych...
Licensing Service for Android, bo tak nazywa się trzon nowych zabezpieczeń, to usługa mająca zachęcić deweloperów do tworzenia płatnych aplikacji i sprzedawania ich za pośrednictwem Android Market użytkownikom smartfonów z systemem Google. Zabezpieczenia polegają na okresowym łączeniu się aplikacji z serwerami Google i potwierdzaniu swojej oryginalności - bez takiej autoryzacji piracka aplikacja po prostu nie uruchomi się. Okazało się jednak, że takie zabezpieczenie w bieżącym kształcie nie jest wiele warte. Dlaczego?
Tak łatwe złamanie zabezpieczenia było możliwe, bo zdecydowana większość aplikacji na Androida tworzona jest w Javie. Java z kolei - jak tłumaczy haker, sprawca całego zamieszania - aby umożliwić kompatybilność z wieloma platformami kompilowana jest w taki sposób, że dekompilacja napisanej w niej aplikacji nie przysparza najmniejszych problemów. Gołym, choć sprawnym okiem można przeanalizować kod, który musi zostać zmodyfikowany w celu złamania zabezpieczenia zaprojektowanego przez Google. Nie będziemy zamieszczać linków do gotowych instrukcji, ale by zobrazować istotę problemu można powiedzieć w skrócie: proces ogranicza się do zamiany miejscami statusów aplikacji: "licencjonowana" i "nielicencjonowana".
Google jeszcze nie wydał oficjalnego komentarza do tej sprawy. Trudno nie oprzeć się wrażeniu, że firma trochę ośmieszyła się proponując zabezpieczenie, które okazało się tak proste do złamania... Autor opisywanej metody zwraca uwagę, że usługa sprawdzająca licencję jest zewnętrznym komponentem, a nie częścią systemu i dlatego trzeba ją dołączać do aplikacji czyniąc w ten sposób zabezpieczenie łatwym celem hakerów. Gdyby Android posiadał wbudowane mechanizmy licencyjne, ich złamanie byłoby zapewne znacznie bardziej skomplikowane.