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.
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.
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.
Эллеонора Керри
Poziom 41
GO TO FULL VERSION