Asosiy matnga o'tish
Blog

Mobil

Dinamik tahlil (Frida) va emulyatordan himoya: RASP nima

Frida bilan ilova funksiyalarini ish vaqtida o'zgartirish mumkin. Ekspertiza buni Android va iOS'da yuqori xavf deb belgilaydi. RASP nima va uni qanday joriy qilish kerak.

· 7 daq. o'qish

Foto: James Bastow, CC BY-SA 2.0 · Wikimedia Commons

O'z ilovamiz ekspertizasida bitta topilma ikki marta takrorlandi: Android'da ham, iOS'da ham "dinamik tahlil vositalaridan himoya yo'q" — ikkalasi ham yuqori xavf. Unga qo'shimcha ravishda Android'da "emulyatorni aniqlash joriy qilinmagan" (o'rta xavf) topilmasi bor edi. Bu topilmalar bir-biriga bog'liq va bitta yondashuv — RASP bilan yopiladi. Bu maqolada Frida nima ekanini, ekspert u bilan nima qilishini va ilova qanday qilib o'zini himoya qilishi mumkinligini ko'rib chiqamiz.

Statik va dinamik tahlil

Ekspert ilovani ikki usulda o'rganadi:

  • Statik tahlil — APK yoki IPA ochiladi, kod, resurslar va konfiguratsiya ishga tushirilmasdan o'qiladi. Bunga obfuskatsiya qarshi turadi.
  • Dinamik tahlil — ilova ishga tushiriladi va ish vaqtida kuzatiladi: qaysi funksiya chaqirilmoqda, qanday qiymatlar qaytmoqda, xotirada nima bor.

Dinamik tahlilning asosiy vositasi — Frida. U ilova jarayoniga o'z kodini kiritadi va istalgan funksiyani "ushlab" (hook), uning kirish va chiqish qiymatlarini o'qishi yoki o'zgartirishi mumkin.

Frida bilan nima qilish mumkin

Amaliy misollar, ekspert aynan shularni sinaydi:

  • Root aniqlashni o'chirish — isRooted() funksiyasi doim false qaytaradigan qilib qo'yiladi.
  • SSL pinning'ni aylanib o'tish — sertifikat tekshiruvi funksiyasi har doim "muvaffaqiyatli" deb javob beradi va trafik ochiladi.
  • Biznes mantiqni o'zgartirish — masalan, ilova ichidagi tekshiruvni o'tkazib yuborish.
  • Xotiradan ma'lumot o'qish — shifrlashdan oldingi yoki deshifrlangandan keyingi ochiq ma'lumotlarni ko'rish.

Shuning uchun dinamik tahlildan himoya qolgan barcha himoyalarni himoya qiladi. Hook orqali o'chirib bo'ladigan root aniqlash yoki pinning ekspertiza uchun yetarli emas.

Bu MASVS'ning RESILIENCE guruhiga va OWASP Mobile Top 10 2024'dagi M7 (Insufficient Binary Protections) toifasiga tegishli.

Emulyator nega alohida masala

Emulyatorda ilovani tahlil qilish ancha qulay: snapshot olish, tarmoqni boshqarish, root huquqi va Frida'ni o'rnatish oson. Bundan tashqari, emulyatorlarda ilovani avtomatlashtirilgan tarzda ko'p marta ishga tushirish mumkin, bu esa soxta akkauntlar yoki avtomatik hujumlar uchun qulay. Shuning uchun ekspertiza release ilovadan emulyatorni aniqlashni kutadi.

RASP nima

RASP (Runtime Application Self-Protection) — ilova ichiga o'rnatiladigan va ish vaqtida atrof-muhitni kuzatadigan himoya qatlami. U odatda quyidagilarni aniqlaydi:

  • root va jailbreak;
  • emulyator va simulyator;
  • hook vositalari (Frida, Xposed, Substrate kabilar);
  • ulangan debugger;
  • ilova yaxlitligi buzilgani (qayta yig'ilgan, boshqa imzo bilan imzolangan APK yoki IPA);
  • ilova rasmiy do'kondan emas, boshqa manbadan o'rnatilgani.

Xavf aniqlanganda RASP ilovaga signal beradi, ilova esa o'z siyosatiga ko'ra javob qaytaradi: bloklaydi, muhim funksiyalarni o'chiradi yoki serverga xabar beradi.

Amalda qanday joriy qildik

Flutter ilovamizda freeRASP kutubxonasi ishlatildi. Sxematik ko'rinishi (aniq API kutubxona versiyasiga qarab farq qilishi mumkin, rasmiy hujjatga qarang):

final config = TalsecConfig(
  androidConfig: AndroidConfig(
    packageName: 'uz.example.app',
    signingCertHashes: ['<release imzo sertifikati xeshi>'],
  ),
  iosConfig: IOSConfig(
    bundleIds: ['uz.example.app'],
    teamId: '<TEAM_ID>',
  ),
  watcherMail: 'security@example.uz',
  isProd: true,
);

final callback = ThreatCallback(
  onHooks: () => showThreatScreen(),
  onPrivilegedAccess: () => showThreatScreen(),
  onSimulator: () => showThreatScreen(),
  onDebug: () => showThreatScreen(),
  onAppIntegrity: () => showThreatScreen(),
);

Talsec.instance.attachListener(callback);
await Talsec.instance.start(config);

E'tibor bergan jihatlarimiz:

  1. Imzo xeshi release sertifikatidan olinadi. Yaxlitlik tekshiruvi shunga tayanadi: APK boshqa kalit bilan imzolansa, onAppIntegrity ishga tushadi. Google Play App Signing ishlatilsa, Play Console'dagi ilova imzo kalitining xeshini qo'ying, yuklash kalitiniki emas.
  2. Bloklovchi ekran tinch va tushunarli. Foydalanuvchiga ilova xavfsiz bo'lmagan muhitda ishlay olmasligi va nima qilish mumkinligi aytiladi.
  3. isProd faqat release build'da yoqiladi. Ishlab chiqish paytida emulyator va debugger kerak.
  4. Tekshiruv login'dan oldin boshlanadi va ish vaqtida davom etadi.

RASP yolg'iz ishlamaydi

RASP kuchli, lekin uni ham yetarli vaqt va bilimga ega mutaxassis aylanib o'tishi mumkin. Maqsad — hujum narxini oshirish va ekspertiza talablariga javob berish. Shuning uchun u boshqa qatlamlar bilan birga ishlatiladi:

  • Obfuskatsiya. Android uchun R8 minify, Dart kodi uchun:
flutter build apk --release --obfuscate --split-debug-info=build/symbols

split-debug-info papkasini saqlab qo'ying — busiz crash hisobotlarini o'qib bo'lmaydi.

  • Kodda ochiq satrlar kamroq. API manzillari va boshqa muhim qiymatlar kod ichida oddiy satr sifatida turmasligi kerak, aks holda ularni strings buyrug'i bilan topish oson.
  • Server tomondagi tekshiruv. Muhim qarorlar (to'lov, huquqlar) faqat serverda qabul qilinsin. Ilovadagi har qanday tekshiruv yordamchi qatlam, oxirgi himoya emas.

Tekshirib ko'ring

  1. Root qilingan qurilmada frida-server'ni ishga tushiring va ilovaga ulanib ko'ring — ilova buni aniqlashi kerak.
  2. Release build'ni Android emulyatorida va iOS simulyatorida ishga tushiring.
  3. APK'ni apktool bilan ochib, qayta yig'ing va boshqa kalit bilan imzolang — ilova yaxlitlik buzilganini sezishi kerak.
  4. Debugger ulab ko'ring.
  5. Oddiy qurilmada noto'g'ri bloklash yo'qligini tekshiring.

Xulosa

Dinamik tahlildan himoya — mobil ekspertizaning eng ko'p uchraydigan yuqori darajali topilmalaridan biri, chunki u odatiy ishlab chiqish jarayonida rejalashtirilmaydi. RASP, obfuskatsiya va server tomondagi tekshiruvlar birgalikda bu topilmani yopadi va ilovaning boshqa himoyalarini ishonchli qiladi.

Ilovangiz Frida va emulyatorga qanday javob berishini bilmoqchi bo'lsangiz, skanerlash uchun ariza qoldiring. Claude AI agenti va mutaxassisimiz ilovani tekshiradi va ekspertizaga tayyorlashda yordam beradi.