Asosiy kontentga o‘tish
Innovialabs

OWASP MASVS asosida mobil ilova xavfsizligi chek-listi

Amaliyot3 daq

Qisqacha

MASVS dan chek-list sifatida foydalaning: sirlarni Keychain yoki Keystore’da saqlang, sertifikatlarni pinning qiling, root’ni aniqlang, relizlarni obfuskatsiya qiling, har bir deep link’ni tekshiring, biznes-mantiq, narxlar va kalitlarni serverda saqlang.

MASVS nima va undan qanday foydalanish kerak

OWASP MASVS (Mobile Application Security Verification Standard) — xavfsiz mobil ilova nimalarni qila olishi kerakligini tavsiflovchi ochiq standart. Talablar sohalar bo‘yicha guruhlangan: STORAGE, CRYPTO, AUTH, NETWORK, PLATFORM, CODE, RESILIENCE va PRIVACY. Unga hamroh MASTG qo‘llanmasi har bir bandni qanday tekshirishni tushuntiradi.

Asosiy tamoyil: ilova siz nazorat qilmaydigan qurilmada ishlaydi. Binar faylda bor hamma narsani o‘qish, o‘zgartirish va qayta ishlatish mumkin. Quyidagi chek-list standartni aniq vazifalarga aylantiradi.

STORAGE: ma’lumotlar qayerda saqlanadi

  • Tokenlar, kalitlar va parollarni faqat iOS Keychain yoki Android Keystore asosidagi xotirada saqlang. Flutter’da ikkala mexanizmni o‘rab oluvchi flutter_secure_storage kabi plagindan foydalaning.
  • Tokenlarni hech qachon UserDefaults, SharedPreferences, oddiy fayllar yoki shifrlanmagan SQLite’ga qo‘ymang.
  • Shaxsiy ma’lumotlar va tokenlarni loglamang, hatto testerlarga yetib borishi mumkin bo‘lgan debug yig‘malarda ham.
  • Maxfiy fayllarni bulutli zaxira nusxalardan chiqarib tashlang va muhim ekranlarni ilovalar almashtirgichi oldindan ko‘rinishida yashiring.
  • Bir martalik kodlardan keyin buferni tozalang va maxfiy maydonlar uchun avtotuzatishni o‘chiring.

NETWORK: trafikni himoyalash

  • Faqat HTTPS. iOS’da App Transport Security’ni o‘chirmang, Android’da cleartextTrafficPermitted="false" ni belgilang.
  • Qurilmaga o‘rnatilgan soxta sertifikat trafikni ushlab qolishga imkon bermasligi uchun o‘z API’ngizda certificate yoki public key pinning dan foydalaning.
    • Android: <pin-set> bilan Network Security Config.
    • iOS: Info.plist’dagi NSPinnedDomains yoki pinning’ni qo‘llab-quvvatlovchi tarmoq kutubxonasi.
    • Flutter: o‘z SecurityContext ingiz yoki pinning’ni qo‘llab-quvvatlovchi HTTP-mijoz.
  • Kamida ikkita kalitni (joriy va zaxira) pinning qiling va rotatsiyani rejalashtiring, aks holda muddati o‘tgan sertifikat foydalanuvchilarni yangilanishgacha bloklab qo‘yadi.
<domain-config>
  <domain includeSubdomains="true">api.example.com</domain>
  <pin-set expiration="2027-01-01">
    <pin digest="SHA-256">base64-primary-key-hash=</pin>
    <pin digest="SHA-256">base64-backup-key-hash=</pin>
  </pin-set>
</domain-config>

AUTH: sessiyalar va kirish

  • Qisqa muddatli access-tokenlar va server bekor qila oladigan refresh-tokenlardan foydalaning.
  • Biometriya ilovaga shunchaki «true» qaytarmasdan, himoyalangan apparatdagi kalitni ochishi kerak.
  • Chiqish va tokenlarni bekor qilishni server tomonida amalga oshiring.

RESILIENCE: root, jailbreak va o‘zgartirishlar

  • Root va jailbreak, hook freymvorklari va debaggerlarni aniqlang. Reaksiyani xavfga qarab tanlang: kontent ilovasida ogohlantirish, fintech’da to‘lovlarni bloklash.
  • Platforma attestatsiyasini afzal ko‘ring: Android’da Play Integrity API, iOS’da App Attest. Natijani ilova emas, server tekshiradi.
  • Mahalliy tekshiruvlarni chetlab o‘tish mumkinligini yodda tuting; ular hujum narxini oshiradi, lekin uni imkonsiz qilmaydi.

CODE: yig‘ish gigiyenasi

  • Obfuskatsiya va kichraytirishni yoqing: Android’da R8/ProGuard, Flutter’da flutter build --obfuscate --split-debug-info. Mapping fayllarini yopiq saqlang — ular crash’larni ochish uchun kerak.
  • Relizdan debug-menyular, test endpoint’lari va batafsil loglarni olib tashlang.
  • Bog‘liqliklarni yangilab turing va ularni ma’lum zaifliklarga tekshiring.

PLATFORM: deep link’lar va tizim bilan o‘zaro ishlash

  • Tasdiqlangan havolalardan foydalaning: assetlinks.json bilan Android App Links va apple-app-site-association bilan iOS Universal Links. myapp:// kabi maxsus sxemani boshqa ilova egallab olishi mumkin.
  • Deep link’ning har bir parametrini ishonchsiz kiritma sifatida tekshiring. Havola tasdiqlashsiz to‘lovni boshlamasligi, sozlamalarni o‘zgartirmasligi yoki WebView’da ixtiyoriy URL ni ochmasligi kerak.
  • Ommaviy bo‘lishi shart bo‘lmagan Android komponentlarini (activities, receivers, providers) eksport qilmang.
  • WebView’da keraksiz JavaScript ko‘priklarini o‘chiring va faqat o‘z domenlaringizni yuklang.

Nima albatta serverda qolishi kerak

Hech qachon ilovada emasNega
To‘lov, SMS, AI servislarining maxfiy API kalitlariUlar binar fayldan ajratib olinadi
Narx, chegirma va bonuslarni hisoblashMijoz so‘rovni almashtirishi mumkin
Kirish tekshiruvlari va limitlarMahalliy tekshiruvlarni patch bilan olib tashlash mumkin
Xaridlar va obunalarni tekshirishCheklar do‘kon orqali serverdan tasdiqlanishi kerak

Ilova — qulay interfeys, haqiqat manbai — server.

Ko‘p beriladigan savollar

Yo‘q. Asosiy talablar har qanday ilovaga mos keladi. O‘zgartirishlardan himoya va qat’iy root aniqlash kabi barqarorlik choralari moliya, tibbiyot va qimmatli akkauntlarga ega ilovalar uchun o‘zini oqlaydi.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.