JavaRush /Blog Java /Random-PL /Nowa luka w Androidzie modyfikuje aplikację bez wpływu na...

Nowa luka w Androidzie modyfikuje aplikację bez wpływu na jej sygnaturę

Opublikowano w grupie Random-PL
Belgijska firma GuardSquare opublikowała raport na temat luki (CVE-2017-13156) wykrytej w systemie Android o pseudonimie Janus. Luka umożliwia atakującym modyfikowanie kodu aplikacji bez wpływu na podpis.
Nowa luka w Androidzie modyfikuje aplikację bez wpływu na jej sygnaturę - 1
Tworząc aplikację na Androida, wymaga się od specjalistów podpisania swojego produktu . Podczas aktualizacji system porównuje sygnaturę pliku APK z istniejącą wersją i w przypadku dopasowania aplikacja jest kompilowana do pliku DEX, który można uruchomić na urządzeniu. Źródłem problemu jest to, że luka jest związana z możliwością dodawania dodatkowych bajtów do plików APK i DEX. Plik APK to archiwum zip, które pozwala na umieszczenie dowolnych bajtów na początku przed wpisami zip. Podczas podpisywania plik JAR ignoruje wszelkie dodatkowe bajty inne niż wpisy zip potrzebne do sprawdzenia podpisu aplikacji. Z kolei plik DEX zawiera na końcu dowolne bajty. W ten sposób Janus łączy niezmodyfikowany plik APK ze zmodyfikowanym plikiem wykonywalnym DEX, który nie wpływa na sygnaturę aplikacji. W takim przypadku system Android umożliwi instalację, a następnie uruchomienie kodu z nagłówka DEX. Jednocześnie atakujący mają możliwość zarządzania uprawnieniami i wymiany aplikacji podczas kolejnej aktualizacji.
Nowa luka w Androidzie modyfikuje aplikację bez wpływu na jej sygnaturę - 2
Janus będzie mógł zaszkodzić tylko aplikacjom podpisanym przy użyciu metody opartej na JAR (Android 5.0 i nowsze). Począwszy od Androida 7.0 Nougat, metoda podpisu JAR została zastąpiona przez APK Signature Scheme v2, który zapewnia ochronę dla kolejnych wersji.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION