RootRoot — гэта набор інструментаў з адкрытым зыходным кодам для выяўлення бяспекі Android, распрацаваны для даследчыкаў бяспекі, тэсціроўшчыкаў на пранікненне і аматараў Android. Ён дэманструе, як мабільныя праграмы выяўляюць прылады з root-доступам, устаноўкі Magisk і фрэймворкі інструментацыі Frida ў рэжыме рэальнага часу.
Праграма выконвае 13 праверак бяспекі па 4 розных стратэгіях выяўлення, даючы вам поўнае ўяўленне аб стане бяспекі вашай прылады.
▌ МЕТАДЫ ВЫЯЎЛЕННЯ
◆ Выяўленне ўзроўню Java
• Сканаванне каранёвага пакета — правярае PackageManager на наяўнасць 48 вядомых сігнатур каранёвых праграм, у тым ліку Magisk, SuperSU, KingRoot і Xposed
• Пошук бінарных файлаў SU — скануе 14 каталогаў на наяўнасць бінарных файлаў su, busybox і magisk
◆ Уласная статычная рэгістрацыя
Выкарыстоўвае экспартаваныя сімвалы JNI, бачныя ў табліцы сімвалаў .so:
• Праверка бінарных файлаў Su праз уласны доступ да файлаў
• Выяўленне мантавання Magisk праз /proc/mounts
• Сканаванне працэсу Frida праз /proc/cmdline
• Выяўленне бібліятэкі Frida праз /proc/self/maps
◆ Уласная дынамічная рэгістрацыя
Функцыі, зарэгістраваныя падчас выканання праз RegisterNatives() у JNI_OnLoad — экспартаваныя сімвалы не бачныя ў табліцы сімвалаў. Тыя ж праверкі, але цяжэй рэканструяваць.
◆ Уласны Dlsym (схаваная рэгістрацыя)
Функцыі, загружаныя праз dlsym() з асобнай агульнай бібліятэкі — найбольш заблытаная стратэгія выяўлення, якая імітуе паводзіны SDK бяспекі ў рэальным свеце.
▌ АСНОЎНЫЯ АСАБЛІВАСЦІ
✦ 13 праверак выяўлення па 4 стратэгіях рэгістрацыі JNI
✦ Цёмны інтэрфейс у стылі тэрмінала з пашыральнымі карткамі вынікаў
✦ Вынікі сканавання ў рэжыме рэальнага часу з указаннем часу выканання
✦ Падрабязныя апісанні кожнага метаду выяўлення
✦ Чысты натыўны код C — нулявая залежнасць ад C++ STL
✦ Адукацыйны інструмент для разумення мабільнай бяспекі
✦ Падтрымлівае armeabi-v7a, arm64-v8a, x86 і x86_64
▌ ДЛЯ КАГО ГЭТА?
• Даследчыкі ў галіне бяспекі, якія вывучаюць метады выяўлення root-доступу Android
• Тэстэры на пранікненне, якія ацэньваюць стан бяспекі прылад
• Распрацоўшчыкі Android, якія ўкараняюць або аўдытуюць меры супраць узлому
• Студэнты, якія вывучаюць JNI, натыўны код і мабільную бяспеку
• Энтузіясты ROM/Magisk, якія тэстуюць метады абыходу выяўлення
▌ АДУКАЦЫЙНАЯ МЭТА
RootRoot распрацаваны як інструмент для даследаванняў і адукацыі ў галіне бяспекі. Ён дэманструе як наступальныя, так і абарончыя метады мабільнай бяспекі. Усе метады выяўлення цалкам дакументаваны і маюць адкрыты зыходны код на GitHub.
Разуменне таго, як працуе выяўленне root-доступу, дапамагае як абаронцам ствараць больш моцную абарону, так і даследчыкам выяўляць слабыя месцы ў існуючых рэалізацыях.
Зыходны код: https://github.com/John-Jung/RootRoot