Zamonaviy ta'limda matematika, fizika va raqamli texnologiyalarning dolzarb muammolari va yutuqlari
Toshkent viloyati Chirchiq davlat pedagogika instituti
DASTURIY ZAIFLIKLARNI KELTIRIB CHIQARADIGAN DASTURLASHDA YOT XATOLAR
Yunus Qutlimuratovich Utepbergenov
Magistrant, Muhammad al-Xorazmiy nomidagi Toshkent axborot texnoloogiyalari
universiteti
ANNOTATSIYA
Ushbu maqolada dasturlarda dasturiy zaiflikarni keltirib chiqaradigan dasturlashda ko'p hollarda yo'l qo'yiladigan xatolar va ularning turlari ko'rib chiqiladi.
Kalit so'zlar. Bufer to'lishi, XSS, SQL in'ektsiya, Stringni formatlashdagi xatolar, butun son qiymatining oshib ketishi
Dasturiy zaiflik - bu dastur xavfsizligini buzish uchun ishlatilishi mumkin bo'lgan tizimdagi kamchilik yoki zaiflik hisoblanadi. Dasturiy ta'minot tizimlari soni kundan-kunga oshib borishi bilan birgalikda, dasturiy zaifliklar soni ham oshib bormoqda. Agar tajovuzkor dasturdan kamchilik yoki dasturiy zaiflikni topsa yoki unga qanday kirishni aniqlasa, tajovuzkor kiber jinoyatni amalga oshirish uchun ushbu dastur zaifliklaridan foydalanishi mumkin. Bu kiber jinoyatlar, dastur, uni yaratuvchilari va foydalanuvchilariga tegishli bo'lgan resurslarning maxfiyligi, yaxlitligi va mavjudligiga qarshi amalga oshiriladi.
Ma'lum bo'lgan zaifliklarning aksariyati tizim foydalanuvchilari tomonidan kiritiladigan ma'lumotlar bilan noto'g'ri ishlash oqibatida kelib chiqadi. Agar bu ma'lumotlar dastur ichida ishlatilishidan oldin tekshirilmagan yoki to'g'ri ishlov berilmagan bo'lsa, ular tizimda kutilmagan xavf-xatarlarni keltirib chiqarishi mumkin. Bunday xavf-xatarlarga bufer to'lishi, XSS, SQL in'ektsiyasi, Stringni formatlashdagi xatolar va butun sonlarning chegaradan oshib ketishi va shunga o'xshagan boshqa zaifliklar sabab bo'ladi.
Bufer to'lishi. Dasturlashdagi xatolarning katta qismini ma'lumotlarni qayta ishlashdagi qilinadigan xatolar tashkil etadi. Bu xatolik xotira buferi imkoniyatlari ruxsat etilganidan ko'proq ma'lumot kiritishga harakat qilinganida sodir bo'ladi. Bu dasturni ishlash jarayonida ma'lumotlar xotira blokidan tashqarida yozilishiga sabab bo'ladi. Natijada o'qish va yozish operatsiyalari bufer chegaralaridan tashqarida o'tkazilishi mumkin. Bufer to'lishi tufayli, ruxsat etilmagan foydalanuvchi bu zaiflikdan juda oson foydalanishi mumkin. Ular buning oqibatida zararli kodlarni dasturga kiritishi, maxfiy ma'lumotlarni o'qishi yoki dasturning boshqaruvini
Scientific Library of Uzbekistan www.ares.uz
Zamonaviy ta'limda matematika, fizika va raqamli texnologiyalarning dolzarb muammolari va yutuqlari
Toshkent viloyati Chirchiq davlat pedagogika instituti
o'zgartirishlari mumkin bo'ladi. Bu xatolik turi C va C++ dasturlash tillarida eng ko'p tarqalgan.
XSS (Cross Site Scripting). Odatda bu termin veb ilovalar bilan bog'liq bo'lib, bunda zararli skriptlar xavfsizligi yaxshi ta'minlanmagan web saytlarga kiritiladi. XSS hujumlari tajovuzkor veb sahifaga zararli kodlarni oddiy foydalanuchi sifatida o'zining brauzeri orqali jo'natadi. Bunda tajavuzkor zararli kodlarni veb saytning foydalanuvchi ma'lumot kirita oladigan joylari orqali jo'natadi. Foydalanuchi kiritgan ma'lumotlarni tekshirmasdan yoki kodlamasdan foydalanadigan har qanday web sayt ushbu hujum qurboniga aylanishi mumkin. Agarda hujum muvoffaqiyatli amalga oshiriladigan bo'lsa, zararli skript boshqa foydalanuvchilar ushbu hujumga uchragan saytdan foydalangan vaqtida brauzerida saqlanadigan va ushbu sayt bilan ishlatiladigan har qanday cookie fayllariga, sessiya tokenlariga yoki boshqa maxfiy ma'lumotlarga kira oladi. Bu skriptlar hatto HTML sahifaning mazmunini butunlay o'zgartirishi yoki qayta yozishi mumkin.
SQL in'ektsiya. SQL in'ektsiya hujumlari veb saytlarning eng qadimgi, eng keng tarqalgan va eng xavfli zaifliklaridan biri hisoblanadi. SQL in'ektsiya - bu zararli SQL so'rovlarini bajarishga imkon beradigan in'ektsiya hujumining bir turi hisoblanadi. Bu so'rovlar veb ilovalar ma'lumotlar bazasini boshqaradi. Tajavuzkorlar dasturning xavfsizlik choralarini chetlab o'tish uchun SQL in'ektsiyasi zaifliklaridan foydalanishi mumkin. Ular veb saytdan autentifikatsiya va avtorizatsiya qilish orqali SQL ma'lumotlar bazasining tarkibini aniqlashi mumkin. Ular, shuningdek ma'lumotlar bazasidagi ma'lumotlarni qo'shishi, o'zgartirishi va o'chirishi uchun SQL in'ektsiya hujumidan foydalanishi mumkin. SQL in'ektsiyasi zaifligi MySQL, Oracle, SQL Server yoki boshqa kabi SQL ma'lumotlar bazasidan foydalanadigan har qanday veb saytga ta'sir ko'rsatishi mumkin. Jinoyatchilar undan tizimdagi maxfiy ma'lumotlar hisoblangan foydalanuvchilar haqida ma'lumotlar, shaxsiy ma'lumotlar, intellektual mulk va boshqa ma'lumotlarga ruxsatsiz kirish maqsadida foydalanishi mumkin.
Butun son qiymatining oshib ketishi (Integer overflow). Asosan bu zaiflik butun sonli operatsiyaning natijasi ajratilgan xotira maydoniga to'g'ri kelmasligi natijasida sodir bo'ladi. Bu zaiflik dasturda xato o'rniga, odatda kutilmagan natijalarni keltirib chiqaradi. Ko'pgina dasturlash tillarida butun sonlar odatda ma'lum miqdordagi bitlarga ajratiladi. Masalan, 32-bitli butun sonli ma'lumotlar turi uchun ajratilgan bo'sh joy faqat musbat butun sonlar uchun 0 dan 4 294 967 295 gacha yoki -2 147 483 648 dan 2 147 483 647 gacha belgili (musbat yoki manfiy) butun sonlarni saqlashi mumkin. Belgiga ega butun sonlar holatida, eng birinchi bit odatda butun son
Scientific Library of Uzbekistan www.ares.uz
Zamonaviv ta'limda matematika, fizika va raqamli texnologivalarning dolzarb muammolari va vutuqlari
Toshkent viloyati Chirchiq davlat pedagogika instituti
musbat yoki manfiy qiymatga ega ekanligini ifodalaydi. Biroq, siz 4 294 967 295 + 1 hisoblashni amalga oshirganingizda va butun son uchun maksimal qiymatdan kattaroq natijani saqlashga harakat qilganingizda nima bo'ladi? Bu butunlash dasturlash tili va kompilyatorga bog'liq. Afsuski, aksariyat dasturlash tillari va kompilyatorlar hech qanday xatolik sodir etilmagandek yakuniy natijani 0 qiymatiga teng qilib hisoblashadi. Natijalar belgili butun sonlar uchun yanada kutilmagan bo'lishi mumkin. Belgiga ega butun sonning maksimal qiymatidan oshib ketilganida, natija odatda teskari belgili songa (masalan musbat bo'lsa manfiyga) aylanadi. Masalan, 2 147 483 647 + 1 odatda -2 147 483 647 ga teng yoki -2 147 483 647 - 1 bo'lsa 2 147 483 647 ga teng bo'ladi. Bu esa dastur ishlashida juda katta noaniqliklarga olib keladi.
Satrni noto'gri formatlash zaifligi. Satrni noto'g'ri formatlash zaifligi xatoligi C dasturlash tilida uchraydigan eng ko'p zaifliklardan biri hisoblanadi. Bu zaiflik printf(%d, %s) funktsiyasida satr formatini noto'g'ri foydalanganimizda yuzaga keladi. Bu turdagi zaiflikning ikkita turi mavjud:
• Agar oxirgi kiritilgan satr formatidan keyin satr formati faktori bo'lmasa, stack nuqtai nazaridan printf() funktsiyasi chaqirilgan paytdan boshlab, printf() fuktsiyasi omili tufayli stackning eng yuqorisida joylashadi.
• Ushbu satr formatlarida printf() funksiyasi tomonidan chop etilgan baytlar soni int tipidagi ko'rsatgichga saqlanadi. Masalan, %n 4 bayt va %hn 2 bayt sifatida saqlanadi. Shunday qilib, agar biz %n yoki %hn oldida to'g'ri qiymatlarni beradigan bo'lsak, %n va %hn bu qiymatni manzil deb hisoblaydi va tegishli manzilda chop etilgan baytlar sonini xotirada saqlaydi.
Agar dasturiy ta'minot ehtiyotkorlik bilan ishlab chiqilsa, tajavuzkorlar foydalanishi mumkin bo'lgan zaifliklarning kiritilishiga yo'l qo'yilmasa, yuqoridagi keltirilib o'tilgan ko'pgina zaifliklarni oldini olish mumkin bo'ladi. Buning uchun dasturiy ta'minot ishlab chiqaruvchilar ma'lum zaifliklar, sabablar, tahdidlar, hujumlar va qarshi choralar haqidagi bilim va tushinchalarini yaxshilashi kerak.
REFERENCES
1. W. Jimenez, A. Mammar, R. Cavalli. Software vulnerabilities, prevention and detection methods, Evry, Fransiya, 2010.
2. Vulnerabilities Definition: Top 10 Software Vulnerabilities [Elektron resurs]. -Kirish tartibi: https://www.perforce.com/blog/kw/common-software-vulnerabilities
Google Scholar Scientific Library of Uzbekistan
Academic Research, Uzbekistan 819 www.ares.uz
Zamonaviv ta'limda matematika, fizika va raqamli texnologiyalarning dolzarb muammolari va vutuqlari
Toshkent viloyati Chirchiq davlat pedagogika instituti
3. SQL Injection [Elektron resurs]. -Kirish tartibi:
https://www.imperva.com/learn/application-security/sql-injection-sqli
4. What is Integer Overflow [Elektron resurs]. -Kirish tartibi: https://www.acunetix.com/blog/web-security-zone/what-is-integer-overflow
820
Scientific Library of Uzbekistan
www.ares.uz