OWASP MASVS bo‘yicha mobil ilova xavfsizligi chek-listi
Chuqur3 daqInnovialabs tahririyati
Qisqacha
OWASP MASVS mobil xavfsizlikni saqlash, kriptografiya, avtorizatsiya, tarmoq, platforma, kod, barqarorlik va maxfiylik guruhlariga bo‘ladi; relizdan oldin har bir guruh bo‘yicha qisqa aniq tekshiruvlardan o‘tib, topilganlarni yopish kifoya.
MASVS nima va undan qanday foydalaniladi
OWASP MASVS (Mobile Application Security Verification Standard) — mobil ilovalar xavfsizligiga qo‘yiladigan talablarning ochiq standarti. Unga test metodikalari jamlangan MASTG qo‘llanmasi ilova qilingan. Standart kodni qanday yozishni aytmaydi, balki nima tekshirilishi kerakligini belgilaydi.
MASVS toifalari:
| Toifa | Nima haqida |
|---|---|
| STORAGE | Maxfiy ma’lumotlar qayerda va qanday saqlanadi |
| CRYPTO | Kriptografiyadan to‘g‘ri foydalanish |
| AUTH | Autentifikatsiya va avtorizatsiya |
| NETWORK | Tarmoq almashinuvini himoyalash |
| PLATFORM | OT va boshqa ilovalar bilan o‘zaro ishlash |
| CODE | Kod sifati, bog‘liqliklar, yangilanishlar |
| RESILIENCE | Revers va o‘zgartirishdan himoya |
| PRIVACY | Shaxsiy ma’lumotlarni yig‘ish va qayta ishlash |
Har bir ilovaga barcha talablar kerak emas. Bank yoki tibbiy servisga reversga chidamlilik kerak, mahsulotlar katalogiga odatda yo‘q. Avval tahdidlar modelini aniqlang, keyin tekshiruvlar chuqurligini tanlang.
Ma’lumotlarni saqlash (STORAGE, CRYPTO)
- Tokenlar va kalitlar faqat Keychain (iOS) va Android Keystore / EncryptedSharedPreferences’da saqlanadi, UserDefaults, SharedPreferences yoki oddiy fayllarda emas.
- Loglarda tokenlar, parollar, karta raqamlari va shaxsiy ma’lumotlar yo‘q — reliz build’da ham.
- Kesh, ilovalar almashtirgichidagi skrinshotlar va bufer maxfiy ekranlarni oshkor qilmaydi.
- Zaxira nusxalar sirlarni olib ketmaydi: Android’dagi backup sozlamalarini va iOS’dagi fayl himoyasi atributlarini tekshiring.
- O‘zingiz yozgan kriptografiya va kodga yozib qo‘yilgan kalitlar yo‘q; faqat platformaning standart API lari.
Tarmoq va certificate pinning (NETWORK)
- Barcha trafik TLS orqali o‘tadi; iOS’dagi ATS va Android’dagi Network Security Config’da «hammasiga ruxsat» istisnolari yo‘q.
- Ilova o‘zi imzolagan yoki yaroqsiz sertifikatlarni qabul qilmaydi — debug kod relizga tushmaganini tekshiring.
- Certificate pinning — yuqori xavfli ilovalar uchun. Ochiq kalitni pin qiling, zaxira pin saqlang va rotatsiyani o‘ylab qo‘ying: pinning’dagi xato yangilanish chiqquncha barcha foydalanuvchilarni serverdan uzib qo‘yishi mumkin.
<network-security-config>
<base-config cleartextTrafficPermitted="false" />
</network-security-config>
Avtorizatsiya (AUTH)
- Kirish huquqi haqidagi qarorni ilova emas, server qabul qiladi. Yashirilgan tugma — himoya emas.
- Access-tokenlar qisqa muddatli, refresh-tokenlarni bekor qilish mumkin, akkauntdan chiqish serverdagi sessiyani yopadi.
- Biometriya «foydalanuvchi Face ID’dan o‘tdi» degan mantiqiy bayroqqa emas, xavfsiz xotiradagi kalitga bog‘langan.
- Maxfiy amallar (telefon raqamini o‘zgartirish, mablag‘ yechish) qayta tasdiqlashni talab qiladi.
Platforma va kod (PLATFORM, CODE)
- Deep link va intent’lar kiruvchi ma’lumotlarni tekshiradi va avtorizatsiyasiz ichki ekranlarni ochmaydi.
- Android’ning eksport qilinadigan komponentlari minimal; WebView ixtiyoriy URL larni ochmaydi va ortiqcha JS ko‘priklarini bermaydi.
- Faqat kerakli ruxsatlar so‘raladi.
- Bog‘liqliklar yangilanadi, ma’lum zaifliklar kuzatiladi; majburiy yangilash mexanizmi mavjud.
Revers va o‘zgartirish (RESILIENCE)
Har qanday klient ilovani qismlarga ajratish mumkin. Maqsad buni imkonsiz qilish emas, balki haqiqatan qimmatli ma’lumotlar uchun hujum narxini oshirish:
- obfuskatsiya (R8, Dart obfuskatsiyasi, native vositalar);
- root/jailbreak, debugger va hook’larni aniqlash — yagona himoya sifatida emas, signal sifatida;
- yaxlitlikni server tomonida Play Integrity API va App Attest orqali tekshirish;
- oshkor bo‘lmasligi kerak bo‘lgan sirlar ilovada umuman saqlanmaydi.
Relizdan oldingi bazaviy ko‘rik
- Tahdidlar modeli va talablar darajasini aniqlang.
- Yuqoridagi chek-list bo‘yicha dasturchilar bilan birga o‘ting.
- Reliz build’ga statik tahlil (masalan, MobSF) ishga tushiring.
- Test qurilmasida trafikni proksi orqali tekshiring.
- Odatiy ssenariydan keyin ilova sandbox’i tarkibini ko‘rib chiqing.
- Topilganlarni qayd eting, ustuvorlikni belgilang va kritiklarini relizgacha yoping.