Android tətbiqlərinin dinamik analizi — Bölmə 1

Ravan Poladli
4 min readOct 2, 2024

--

Photo by Antoine Barrès on Unsplash

Giriş

Android tətbiqlərinin dinamik analizi, tətbiqlərin necə işlədiyini daha dərindən anlamaq, potensial təhlükəsizlik zəifliklərini aşkar etmək və performans problemlərini müəyyənləşdirmək üçün əvəzsiz bir yanaşmadır. Bu proses, tətbiqin real vaxtda fəaliyyətini izləməyə və onun davranışını təhlil etməyə imkan tanıyır, beləliklə istifadəçilərin qarşılaşa biləcəyi riskləri minimuma endirir və tətbiqin ümumi effektivliyini artırır. Bu başlıqda Windows 10 əməliyyat sistemində Android tətbiqlərinin analizi üçün laboratoriya şəraiti qurmağa, Burp Suite Community Edition-dan istifadə edərək HTTP/HTTPS sorğularını izləməyə çalışacağıq.

Android emulyatorunun quraşdırılması

Bu hissədə Mən MEmu emulyatorundan istifadə edərək davam edəcəm. Alternativ kimi Genymotion, Bluestacks və ya NoxPlayer istifadə etmək də mümkündür.

MEmu yükləmə səhifəsi, Şəkil 1

MEmu emulyatorunu endirdikdən sonra vacib olan əməliyyatlardan biri Android ə.s. root rejimində açmaqdır. MEmuda tənzimlənmələr hissəsinə keçdikdən sonra “Root Mode” düyməsini açıq rejimdə saxlayın və emulyatoru yenidən başladın.

MEmu tənzimləmələri, Root modun yerləşdiyi yer, Şəkil 2

Android Debug Bridge (adb)

Bu hissədə android tətbiqlərinin analizində çoxluqla istifadə edilən adb alətini quraşdıraraq emulyator üzərində bəzi əməliyyatlar edəcəyik. adb alətini yükləmək üçün Android SDK Platform Tools paketini endirin.

Android SDK Platform Tools paketinin tərkibi, Şəkil 3

Paketin içərisindəkiləri kompüterinizdə müvafiq bir yerə atın. Faylların olduğu qovluqda boş hissəyə sağ düymə ilə basın və əmr sətrini açın. (Windows Terminal proqramı yüklü olmayanlar PowerShell açaraq içərisində cmd.exe qaldıra bilər).

Terminalın və PowerShell-in yerləşdiyi yer, Şəkil 4

Açılan pəncərəyə adb devices yazaraq MEmu emulyatoruna aid körpünün olub-olmadığını müəyyən edirik. MEmu üçün çıxış aşağıdakı formada olmalıdır:

List of devices attached
127.0.0.1:21503 device

Susmaya görə MEmu üçün port 21503, Bluestacks üçün 5555 və NoxPlayer üçün 62001 olaraq təyin edilmişdir.

Bəzi adb əmrləri:
adb devices — Cihaza bağlı olan sazlama körpülərini çapa verir.
adb connect <IP> — IP adresində olan sazlama körpüsünə qoşulur.
adb install <fayl.apk> — Verilən apk faylını hədəf cihaza quraşdırır.
adb shell — Hədəf cihazda terminal açır.
adb root — sazlama körpüsünü root rejimində açır.

Burp Suite proxy ilə Android cihazın əlaqələndirilməsi

Burp Suite ilə HTTP/HTTPS trafiklərini izləmək, onlara müdaxilə etmək üçün Proxy funksiyasını istifadə etmək olar. İctimaiyyətə açıq və pulsuz olan Burp Suite Community Edition quraşdıraraq aşağıdakı addımları təkrarlayın;

  1. Proxy menyusuna daxil olun.
  2. Proxy Settings adlı tənzimlənməni açın.
  3. Yeni proksi interfeysi əlavə edin. (Proxy > Add)
  4. Proksinin dinləmə portunu təyin edin. (Bind to port)
  5. Bütün interfeyslər üçün dinləmə rejiminə alın. (All interfaces)
  6. Yaddaşa verin. (OK)
Burp Suite Community Edition, Proksi serverinin quraşdırılması, Şəkil 5

Yuxarıdakı əməliyyatın nəticəsində kompüterə bağlı olan bütün şəbəkə interfeyslərində 8000 portu Burp Suite-nin proksi funksiyası üçün təyin olunacaq. Bununla da Android cihazda proksi serveri kompüterin ip adresi və 8000 portuna əsasən təyin etsək, cihazın şəbəkə trafikini Burp Suite üzərindən keçirmiş oluruq.

Kompüterin ip adresini öyrənmək üçün əmr sətrini açaraq ipconfig yazın. Çıxan şəbəkə interfeysləri içərisində IPv4 Address hissəsində kompüterinizə bağlı olan şəbəkə interfeyslərinin IPv4 adreslərini görəcəksiniz.

ipconfig əmrinin nəticəsi, IPv4 adresi, Şəkil 6

Android cihazda Network & internet > Wi-Fi tənzimləməsinə daxil olun və WiFi şəbəkəsinin sağında yerləşən tənzimləmə düyməsinə basın. Açılan hissədə yuxarı-sağda yerləşən Modify düyməsinə keçid edərək susmaya görə Noneolan Proxytənzimləməsini Manualedin. Bundan sonra IP adresi yerinə öz kompüterinizin ip adresini, port hissəsinə isə az əvvəl `Burp Suite`-də təyin etdiyiniz portu (8000) daxil edərək yaddaşa verin.

Android, Proksi serverinin təyini, Şəkil 7

Bu əməliyyatdan sonra Burp Suite proxy ilə Android cihazınız əlaqələnmiş olacaq.

Burp Suite CA (Certification Authority), Cihaza sertifikat əlavə etmə.

Burp Suite proksi ilə Android cihazını əlaqələndirdikdən sonra SSL ilə yaradılan HTTP əlaqələrini izləmək uğursuz ola bilər. Bunun əsas səbəblərindən biri də, Android cihazlarının təhlükəsizliyi təmin etmək üçün SSL sertifikatlarını yoxlamasıdır. Burp Suite, proxy olaraq fəaliyyət göstərdiyində, HTTPS trafikini deşifrə etmək üçün öz sertifikatını istifadə edir. Lakin cihazınızda Burp Suite-in CA sertifikatı quraşdırılmayıbsa, cihaz TLS bağlantılarını etibarsız sayır və buna görə də bu əlaqələri izləmək mümkün olmur. Bu problemi həll etmək üçün Android cihazda Burp Suite CA sertifikatını quraşdırmaq olar.

Android cihazda veb brauzeri açın və http://burp adresinə daxil olun. Açılan səhifədə yuxarı sağ hissədə yerləşən CA Certificate düyməsinə basaraq sertifikatı endirin.

Android, CA Sertifikatının endirilməsi, Şəkil 8

Daha sonra fayl meneceri vasitəsi ilə yükləmələr qovluğuna keçid edin və cacert.der faylının adını cacert.crt ilə dəyişin. Cihazda Network & internet > Wi-Fi tənzimləməsinə daxil olun və Wi-Fi preferences menyusuna daxil olun. Açılan ekranda Advanced düyməsinə basaraq Install Certificates ilə davam edin. Açılan fayl seçmə menyusundan cacert.crt faylını seçin və sertifikata ad verin (məs.: burp) . Ən sonda OK düyməsinə basın.

Android, CA Sertifikatının əlavə edilməsi, Şəkil 9

Bu əməliyyatdan sonra Burp Suite üzərindən həm HTTP, həm də HTTPS sorğularını izləyə, dəyişdirə və digər əməliyyatları icra edə bilərsiniz.

Nəticə, Şəkil 10

Artıq Burp Suite Community Edition ilə bir çox applikasiyanın HTTP/HTTPS sorğularını analiz etməyə hazırsınız. Sonrakı bölmələrdə isə əlavə sertifikat yoxlaması olan proqramların HTTP/HTTPS sorğularını izləmə və bəzi əlavə mövzulara toxunacağıq.

--

--

Ravan Poladli

Competitive programmer | Reverse engineer | Malware analyst | Full-Stack developer | Embedded system developer