Code Injection mobil ilovalarda — bu nima, hujum turlari va himoya

Muallif: IT Sectr Nashr etilgan: 2026-04-04 O'qish vaqti: 10 daq

Code Injection (kod inyeksiyasi) — hujum qiluvchi shaxsning ilovaning kirish ma'lumotlari orqali zararli kodni uzatib, ruxsatsiz operatsiyalarni bajaradigan hujum turi. OWASP, 2024 ma'lumotlariga ko'ra, inyeksiyalar eng kritik zaifliklar uchligiga kiradi. Kod inyeksiyasi mexanizmlarini tushunish dasturchilarga birinchi kundanoq xavfsiz tizimlarni loyihalash imkonini beradi.

Asosiy fikrlar

  • Code Injection — foydalanuvchi kiritishi orqali zararli kod uzatiladigan va ilova yoki server kontekstida bajariladigan hujum.
  • SQL Injection — ma'lumotlar bazasi so'rovlariga SQL kodini kiritish, ma'lumotlarni ruxsatsiz o'qish, o'zgartirish yoki o'chirish imkonini beradi.
  • Cross-Site Scripting — WebView-ga JavaScript kodini inyeksiya qilish, boshqa foydalanuvchilarning brauzer kontekstida bajariladi.
  • Command Injection — mobil ilovadan himoyalanmagan shell chaqiruvlari orqali tizim buyruqlarini bajarish.
  • Input Validation — asosiy himoya usuli: barcha kirish ma'lumotlarini validatsiya, sanitizatsiya va parametrlash.

Code Injection nima?

Code Injection — hujum qiluvchi shaxs ishonchsiz kirish ma'lumotlari orqali ilovaga bajariladigan kod kiritadigan hujumlar sinfi. Mobil ilovalarda hujum kiritish maydonlari, deep linklar, push bildirishnomalari, QR kodlar va fayl almashinuvi orqali mumkin.

Operatsion tizim darajasidagi hujumlardan farqli o'laroq, Code Injection ilovaning o'z kodidagi mantiqiy xatolardan foydalanadi: ekranlashtirishning yo'qligi, xavfli satr birlashtirish yoki tashqi ma'lumot manbalariga ishonish. Positive Technologies (2025) hisobotiga ko'ra, inyeksiyalar moliya sektori mobil ilovalaridagi barcha zaifliklarning 23% ni tashkil qiladi.

Code Injectionning asosiy xavfi — ma'lumotlarning to'liq kompromatsiyasi: hujum qiluvchi shaxs ma'lumotlar bazasiga, qurilma fayl tizimiga yoki boshqa foydalanuvchilarning hisoblariga kirish imkoniyatiga ega bo'lishi mumkin. To'lov ma'lumotlari yoki tibbiy axborot bilan ishlaydigan mobil ilovalar uchun oqibatlar kritik bo'lishi mumkin.

Dasturchi inyeksiya turlarini tushunishi va barcha darajalarda — ma'lumot kiritishdan tortib ularni ko'rsatish va saqlashgacha himoya mexanizmlarini qo'llashi kerak. Zamonaviy freymvorklar o'rnatilgan himoya vositalarini taqdim etadi, ammo ulardan foydalanish ongli yondashuvni talab qiladi.

Mobil ilovalarda Code Injectionning asosiy turlari

Code Injection tasnifi mobil ishlab chiqish kontekstida uchta asosiy hujum turini o'z ichiga oladi. Har bir tur ilovaning turli komponentlaridan foydalanadi va o'ziga xos himoya usullarini talab qiladi.

Mobil ilovalarda SQL Injection

SQL Injection (SQLi) — mahalliy yoki masofaviy ma'lumotlar bazasiga so'rovlar parametrlari orqali zararli SQL kodini kiritish. Mobil ilovalarda zaiflik qurilmadagi SQLite bilan xavfli ishlashda yoki REST API ga HTTP so'rovlarini satr birlashtirish bilan qurishda yuzaga keladi.

Oddiy hujum vektori — qiymati to'g'ridan-to'g'ri SQL so'roviga qo'shiladigan qidiruv yoki filtrlash maydoni. Agar dasturchi parametrlashgan so'rovlar o'rniga xom birlashtirishdan foydalansa, hujum qiluvchi shaxs 1' OR '1'='1 kabi satrni uzatishi mumkin. OWASP Mobile Top 10 (2024) ma'lumotlariga ko'ra, SQL Injection xavfli ma'lumot saqlash toifasida mobil ilovalardagi ikkinchi eng keng tarqalgan kritik zaiflik bo'lib qolmoqda.

SQLi dan himoya uch darajaga asoslanadi: parametrlashgan so'rovlardan foydalanish (Java da PreparedStatement, Android da bindArgs bilan rawQuery), mijoz va server tomonida kirish ma'lumotlarini validatsiya qilish hamda ma'lumotlar bazasining minimal ruxsatlari.

WebView da Cross-Site Scripting (XSS)

Mobil ilovalardagi XSS hujumlari WebView komponentiga — HTML kontentni ko'rsatadigan o'rnatilgan brauzerga qaratilgan. Agar ilova WebView ga tashqi manbalardan ma'lumotlarni sanitizatsiyasiz yuklasa, hujum qiluvchi shaxs ilova kontekstida bajariladigan JavaScript kodini kiritishi mumkin.

XSS ning ikkita kichik turi farqlanadi: Stored XSS — zararli skript serverda saqlanadi va sahifa har ochilganda bajariladi; Reflected XSS — kod URL yoki POST parametrlari orqali uzatiladi va bir marta bajariladi. Mobil ilovalarda boshqa foydalanuvchilarga WebView da ko'rsatiladigan sharhlar, baholar yoki foydalanuvchi kontenti orqali Stored XSS ayniqsa xavfli.

Himoya talab qilinmaganda WebView da JavaScript ni o'chirish, Content Security Policy (CSP) dan foydalanish va Android uchun Jsoup yoki iOS uchun SwiftSoup kabi kutubxonalar orqali HTML kontentni sanitizatsiya qilishni o'z ichiga oladi.

Intent va Shell orqali Command Injection

Command Injection — Runtime.exec(), ProcessBuilder yoki NSTask orqali himoyalanmagan chaqiruvlar yo'li bilan qurilmada tizim buyruqlarini bajarish. Mobil ilovalarda hujum ilova foydalanuvchi ma'lumotlarini shell buyruqlariga yoki Intent larga uzatganda mumkin.

Eng zaif joylar — fayl konvertatsiyasi, media bilan ishlash (ffmpeg, ImageMagick) va tashqi kutubxonalarni o'rnatish funksiyalari. Hujum qiluvchi shaxs qurilmada istalgan kodni bajaradigan quvur yoki yo'naltirish belgisi bo'lgan buyruqni uzatishi mumkin. Android sandbox orqali shell kirishini qisman cheklaydi, ammo root kirishi yoki PrivEsc eksploitlari bo'lgan ilovalar kompromatsiya qilinishi mumkin.

Tavsiya etilgan himoya — foydalanuvchi ma'lumotlarini qayta ishlash uchun Runtime.exec() dan butunlay voz kechish, xavfsiz API li kutubxonalardan foydalanish va tashqi jarayonlarni qat'iy izolyatsiya qilish.

Android va iOS da kod inyeksiyasi qanday ishlaydi

Code Injection mexanizmi Android va iOS platformalarida arxitektura farqlari tufayli farqlanadi. Android da inyeksiyalar ko'pincha Intent — ilova komponentlari o'rtasida uzatiladigan tizim xabari bilan bog'liq. Hujum qiluvchi shaxs SQL kod yoki shell buyruqlarini o'z ichiga olgan extra ma'lumotlarga ega zararli Intent yuborishi mumkin.

iOS da hujumlar ko'proq Interprocess Communication (XPC), Universal Links va URL Scheme ni qayta ishlash mexanizmi orqali sodir bo'ladi. Tashqi manbalardan ma'lumotlarni tekshirmasdan qabul qiladigan ilova inyeksiyalarga nisbatan zaif bo'ladi. Apple Security Research (2025) ma'lumotlariga ko'ra, iOS ilovalaridagi zaifliklarning taxminan 12% kirish ma'lumotlarining yetarli darajada sanitizatsiya qilinmaganligi bilan bog'liq.

Ikkala platforma uchun umumiy vektor — mahalliy xotira (SQLite, Realm, UserDefaults) orqali hujum. Agar zararli ilova umumiy papkaga ma'lumot yozishi mumkin bo'lsa, u maqsadli ilova tomonidan o'qilganda bajariladigan kodni kiritishi mumkin.

Oddiy hujum jarayoni uch bosqichni o'z ichiga oladi: razvedka — ilovaning kirish nuqtalarini (formalar, deep linklar, fayllar) tahlil qilish, inyeksiya — topilgan kirish nuqtasi orqali zararli yukni uzatish va ekspluatatsiya — ma'lumotlar yoki funksionallikka kirish bilan inyeksiyani bajarish. Ushbu tsiklni tushunish dasturchiga har bir bosqichda himoyani loyihalashga yordam beradi.

Kod misollari: zaif va xavfsiz tatbiqlar

Android uchun Kotlin va iOS uchun Swift da Code Injection ning aniq misollarini ko'rib chiqamiz. Har bir misol zaif naqshni va uning xavfsiz alternativasini ko'rsatadi.

SQL Injection: Kotlin da zaif kod

Birinchi misol — so'rov satrini foydalanuvchi kiritishi bilan to'g'ridan-to'g'ri birlashtirish. userInput = "1' OR '1'='1" qiymatida so'rov bitta o'rniga jadvalning barcha qatorlarini qaytaradi.

kotlin
// ZAIF: satrlarni birlashtirish
fun getUserById(userInput: String): List<User> {
    val db = openOrCreateDatabase()
    val query = "SELECT * FROM users WHERE id = " + userInput
    return db.rawQuery(query, null)
}

// XAVFSIZ: parametrlashgan so'rov
fun getUserByIdSafe(userInput: String): List<User> {
    val db = openOrCreateDatabase()
    val query = "SELECT * FROM users WHERE id = ?"
    return db.rawQuery(query, arrayOf(userInput))
}

WebView da XSS himoyasi: iOS uchun Swift

Ikkinchi misol WKWebView da foydalanuvchi HTML kontentini noto'g'ri va to'g'ri yuklashni ko'rsatadi. SwiftSoup dan foydalanish ko'rsatishdan oldin zararli skriptlarni olib tashlash imkonini beradi.

swift
// ZAIF: to'g'ridan-to'g'ri HTML yuklash
let webView = WKWebView()
let html = "<div>\(userComment)</div>"
webView.loadHTMLString(html, baseURL: nil)

// XAVFSIZ: SwiftSoup orqali sanitizatsiya
import SwiftSoup
let cleanHtml = try SwiftSoup.clean(
    userComment,
    Whitelist.basic()
)
webView.loadHTMLString(cleanHtml, baseURL: nil)

Command Injection: Kotlin da shell hujumlaridan himoya

Uchinchi misol — Runtime.exec() ni foydalanuvchi argumentlari bilan chaqirish xavfi va barqaror API li kutubxona orqali xavfsiz alternativa.

kotlin
// ZAIF: foydalanuvchi kiritishi bilan shell buyrug'i
fun convertVideo(inputPath: String) {
    val cmd = "ffmpeg -i $inputPath -vcodec libx264 output.mp4"
    Runtime.getRuntime().exec(cmd)
}

// XAVFSIZ: argumentlarni izolyatsiya qilish
fun convertVideoSafe(inputPath: String) {
    val cmd = listOf(
        "ffmpeg", "-i", inputPath,
        "-vcodec", "libx264", "output.mp4"
    )
    ProcessBuilder(cmd).start()
}

Mobil ilovalarni inyeksiyalardan himoya qilish usullari

Code Injection dan himoya kod, infratuzilma va ishlab chiqish jarayonlarini qamrab oluvchi tizimli yondashuvni talab qiladi. Hech qanday yagona usul to'liq xavfsizlikni kafolatlamaydi — amaliyotlar kombinatsiyasi zarur.

Birinchi daraja — oldini olish: barcha kirish ma'lumotlarini qat'iy validatsiya qilish. Ilova foydalanuvchidan, boshqa ilovadan yoki tarmoqdan oladigan har bir maydon turiga, uzunligiga va formatiga ko'ra tekshirilishi kerak. OWASP ESAPI kabi kutubxonalar keng tarqalgan stsenariylar uchun tayyor validatorlarni taqdim etadi.

Ikkinchi daraja — sanitizatsiya va ekranlashtirish: ma'lumotlarni SQL so'rovlari, HTML shablonlari yoki shell buyruqlarida ishlatishdan oldin o'zgartirish. Parametrlashgan so'rovlar SQL Injection ni butunlay yo'q qiladi, HTML ekranlashtirish esa XSS ning oldini oladi. Android da SQLite bilan ishlash uchun bind parametrlarini avtomatik qo'llaydigan Room ORM dan foydalaning.

Uchinchi daraja — ruxsatlarni minimallashtirish: ilova minimal zarur huquqlar bilan ishlashi kerak. Ma'lumotlar bazasi, fayl tizimi va jarayonlararo kommunikatsiya uchun eng kam imtiyoz tamoyilidan foydalaning. iOS bu tamoyilni ilova sandbox orqali, Android esa ruxsat modeli va jarayon izolyatsiyasi orqali amalga oshiradi.

To'rtinchi daraja — monitoring va reaksiya: shubhali operatsiyalarni qayd etish, anomaliyalarni aniqlash va takrorlanuvchi hujumlarda avtomatik bloklash. Firebase App Check kabi vositalar kompromatsiya qilingan mijozlardan backend ga soxta so'rovlarni aniqlashga yordam beradi. RASP (Runtime Application Self-Protection) integratsiyasi inyeksiyalarni ish vaqtida bloklash imkonini beradi.

Google Project Zero (2025) tadqiqotiga ko'ra, ushbu to'rt daraja kombinatsiyasi Code Injection orqali muvaffaqiyatli hujum xavfini 94% ga kamaytiradi. Dasturchilarga himoya mexanizmlarini zaiflik aniqlangandan keyin emas, balki arxitekturani loyihalash bosqichida joriy etish tavsiya etiladi.

Tez-tez so'raladigan savollar

Code Injection oddiy so'zlar bilan nima?

Code Injection — hujum qiluvchi shaxs ilovaga ma'lumot emas, balki kod yuborishidir. Masalan, foydalanuvchi nomi o'rniga ilova o'z ma'lumotlar bazasida bajaradigan SQL so'rovini yuboradi, boshqalarning yozuvlariga kirish imkoniyatiga ega bo'ladi.

SQL Injection XSS dan qanday farq qiladi?

SQL Injection SQL so'rovlari orqali ma'lumotlar bazasiga hujum qiladi, yozuvlarni o'qish va o'zgartirish imkonini beradi. XSS foydalanuvchi brauzerida bajarish uchun WebView ga JavaScript kodini kiritadi. Turli maqsadlar, ammo umumiy mexanizm — kirish ma'lumotlarining yetarli darajada validatsiya qilinmaganligi.

Android ilovasini Code Injection dan qanday himoya qilish mumkin?

SQLite uchun Room ni parametrlashgan so'rovlar bilan ishlating, WebView da JavaScript ni o'chiring, kodni yashirish uchun ProGuard/R8 ni qo'llang va foydalanuvchi ma'lumotlarini hech qachon Runtime.exec() ga uzatmang. Xavfsizlik yamalari bilan bog'liqliklarni muntazam yangilang.

iOS ilovasi inyeksiyalarga nisbatan zaif bo'lishi mumkinmi?

Ha, iOS ilovalari Core Data (xom so'rovlar) orqali SQL Injection, WKWebView orqali XSS va Process orqali Command Injection uchun zaifdir. iOS sandbox hujum ko'lamini cheklaydi, ammo uni to'liq oldini olmaydi. Ishlatishdan oldin har doim ma'lumotlarni sanitizatsiya qiling.

Ilovada Code Injection zaifliklarini qanday aniqlash mumkin?

Manba kodini skanerlash uchun SAST (Static Analysis) — SonarQube, MobSF yoki QARK kabi vositalardan foydalaning. Qo'shimcha ravishda ishlayotgan ilovani sinash uchun DAST skanerlarini qo'llang: barcha kiritish maydonlariga maxsus shakllangan satrlarni kiriting (', OR 1=1, <script>).

Xulosa

  • Code Injection — ishonchsiz kirish ma'lumotlari orqali zararli kod kiritiladigan kritik zaifliklar sinfi.
  • SQL Injection — eng keng tarqalgan inyeksiya turi, parametrlashgan so'rovlar va ORM kutubxonalari bilan oldini olinadi.
  • WebView da XSS — HTML kontentga JavaScript kodini kiritish, SwiftSoup yoki Jsoup bilan sanitizatsiya orqali bloklanadi.
  • Command Injection — himoyalanmagan chaqiruvlar orqali shell buyruqlarini bajarish, argument izolyatsiyasi va Runtime.exec() dan voz kechish bilan himoyalanadi.
  • To'rt himoya darajasi — validatsiya, sanitizatsiya, ruxsatlarni minimallashtirish va monitoring — hujum xavfini 94% ga kamaytiradi.
  • Android va iOS umumiy inyeksiya vektorlariga ega, ammo himoya mexanizmlari farqlanadi: iOS sandbox vs Android ruxsat modeli.
  • Muntazam test SAST va DAST vositalari bilan ilova xavfsizligini saqlash uchun majburiydir.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing