Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
W Androidzie nie działa poprawnie weryfikacja podpisu cyfrowego aplikacji…
To w skrócie nowa podatność Janus. Skąd ta dziwna nazwa? Otóż Janus to grecki bóg m.in. dualności – a cały problem polega na tym, że można stworzyć plik będący jednocześnie poprawnym APK jak i poprawnym DEX.
Android przy sprawdzeniu podpisu cyfrowego uruchamianej aplikacji weryfikował go tylko dla fragmentu związanego z APK. Jeszcze inaczej – mogę wziąć dowolny plik APK i na jego początku dodać dowolną liczbę bajtów, bez naruszania poprawności podpisu…:
He can prepend a malicious DEX file to an APK file, without affecting its signature.
Jak wygląda scenariusz ataku? Badacze którzy zlokalizowali lukę, wskazują przede wszystkim na aktualizacje aplikacji. Podstawiona aktualizacja zawiera wstrzyknięty przeze mnie kod (DEX z obrazka powyżej), ale podpis się zgadza a uprawnienia mam jak w oryginalnej aplikacji.
Podatność została załatana przez Google w grudniu – Android 5/6/7/8 – choć od wersji 7 jest nieco lepiej:
Applications that have been signed with APK signature scheme v2 and that are running on devices supporting the latest signature scheme (Android 7.0 and newer) are protected against the vulnerability.
–ms
Czyli ~30% urządzeń działających pod kontrolą Androida nadal podatnych. Może inaczej. Na zawsze podatnych :D
Niepoprawny optymista, to że google wypuścił aktualizację nie znaczy że producenci ją wrzucą ;/