W narzędziach programistycznych, w tym Android Studio, IntelliJ IDEA, Eclipse, APKTool i innych, wykryto nowy typ luki w zabezpieczeniach Androida o nazwie ParseDroid.
Kiedy myślimy o lukach w zabezpieczeniach Androida, zazwyczaj wyobrażamy sobie lukę dnia zerowego, która wykorzystuje jakiś proces w celu eskalacji uprawnień. Może to oznaczać wszystko – od oszukania smartfona lub tabletu w celu połączenia się ze złośliwą siecią Wi-Fi lub umożliwienia wykonania kodu na urządzeniu ze zdalnej lokalizacji. Niedawno odkryto jednak nowy typ luki w zabezpieczeniach Androida. Nazywa się ParseDroid i wykorzystuje narzędzia programistyczne, w tym Android Studio, IntelliJ IDEA, Eclipse, APKTool, usługę Cuckoo-Droid i wiele innych.
Jednak ParseDroid nie jest odizolowany tylko od narzędzi programistycznych dla Androida, a te luki wykryto w wielu narzędziach Java/Android, których obecnie używają programiści. Nie ma znaczenia, czy korzystasz z narzędzia programistycznego do pobrania, czy działającego w chmurze,
Badania punktów kontrolnych odkrył te luki w najpopularniejszych narzędziach programistycznych dla Androida i Java. Po wykorzystaniu osoba atakująca może uzyskać dostęp do wewnętrznych plików komputera roboczego programisty.Firma Check Point Research najpierw zapoznała się z najpopularniejszym narzędziem innej firmy do inżynierii wstecznej aplikacji na Androida (APKTool) i odkrył, że zarówno funkcje dekompilacji, jak i tworzenia plików APK są podatne na ataki atak. Po zapoznaniu się z kodem źródłowym badaczom udało się zidentyfikować lukę w zabezpieczeniach XML external Entity (XXE). jest to możliwe, ponieważ skonfigurowany parser XML programu APKTool nie wyłącza odniesień do jednostek zewnętrznych podczas analizowania pliku XML plik.
Po wykorzystaniu luka ujawnia cały system plików systemu operacyjnego użytkowników APKTool. To z kolei potencjalnie umożliwia atakującemu odzyskanie dowolnego pliku na komputerze ofiary przy użyciu złośliwego pliku „AndroidManifest.xml”, który wykorzystuje lukę XXE. Po odkryciu tej luki badacze przyjrzeli się popularnym IDE dla Androida i odkryli, że po prostu ładując plik złośliwego pliku „AndroidManifest.xml” jako części dowolnego projektu Androida, IDE zaczynają wypluwać dowolny plik skonfigurowany przez napastnik.
Firma Check Point Research wykazała również scenariusz ataku, który może mieć wpływ na dużą liczbę programistów Androida. Działa poprzez wstrzyknięcie złośliwego pliku AAR (biblioteki archiwum Androida) zawierającego ładunek XXE do repozytoriów internetowych. Jeśli ofiara sklonuje repozytorium, osoba atakująca będzie miała dostęp do potencjalnie wrażliwej własności firmy z systemu plików systemu operacyjnego ofiary.
Na koniec autorzy opisali metodę, dzięki której mogą zdalnie wykonać kod na komputerze ofiary. Odbywa się to poprzez wykorzystanie pliku konfiguracyjnego w APKTool o nazwie „APKTOOL.YAML”. Ten plik ma sekcję o nazwie „unknownFiles”, w której użytkownicy mogą określić lokalizacje plików, które zostaną umieszczone podczas odbudowy pliku APK. Pliki te są przechowywane na komputerze ofiary w folderze „Nieznany”. Edytując ścieżkę, w której zapisywane są te pliki, osoba atakująca może wstrzyknąć dowolny plik system plików ofiary, ponieważ APKTool nie zweryfikował ścieżki, z której wyodrębniane są nieznane pliki APK.
Pliki wstrzykiwane przez osobę atakującą prowadzą do pełnego zdalnego wykonania kodu na komputerze ofiary, co oznacza, że osoba atakująca może wykorzystać dowolną ofiarę z zainstalowanym APKTool, tworząc złośliwie utworzony plik APK i prosząc ofiarę o próbę odszyfrowania, a następnie odbudować go.
Ponieważ wszystkie wymienione powyżej IDE i narzędzia są wieloplatformowe i ogólne, potencjał wykorzystania tych luk jest wysoki. Na szczęście po skontaktowaniu się z twórcami każdego z tych IDE i narzędzi firma Check Point Research potwierdziła, że narzędzia te nie są już podatne na tego rodzaju ataki. Jeśli używasz starszej wersji jednego z tych narzędzi, zalecamy natychmiastową aktualizację, aby zabezpieczyć się przed atakiem w stylu ParseDroid.
Źródło: Badania Check Point