6 - Ma’ruza: Dasturiy vositalarda zaifliklar turlari va tasnifi Reja: ❑OWASP tashkiloti e’lon qilgan zaifliklar tasnifi. ❑Ularga qarshi himoya choralari. Dasturiy vositalar xavfsizligi OWASP OWASP OWASP loyihalari Dasturiy vositalar xavfsizligi • Open Web Application Security Project • Ochiq veb ilovalar xavfsizligi loyihasi • Ilovalar xavfsizligi darajasini tekshirishni o‘tkazish standarti; • Dasturiy vositalarni yaratish bo‘yicha qo‘llanma; • Dasturiy vositani testlash bo‘yicha qo‘llanma; • OWASP ZAP loyihasi; • OWASP TOP 10 zaifliklar ro‘yxati; • Va boshqalar. OWASP TOP 10 zaifliklar ro‘yxati • OWASP TOP 10 – dasturiy vosita yaratuvchilar va veb ilova xavfsizligi uchun standart xabardorlik hujjati. • Bu veb ilovalar uchun eng muhim xavfsizlik tahdidlari haqida batafsil ma’lumotni ifodalaydi. • Ushbu hujjat asosida tashkilotlar veb ilovalarini xavfsizlikka tekshirishda ma’lumot sifatida ishlatishlari mumkin bo‘ladi. • Veb ilovalarni yaratish bo‘yicha faoliyat yuritadigan mutaxassislar ham ushbu ro‘yxatdagi tahdidlarga nisbatan tekshirishlarni olib borishlari shart hisoblanadi. Dasturiy vositalar xavfsizligi OWASP TOP 10 zaifliklar ro‘yxati A01:2021-Broken Access Control A02:2021-Cryptographic Failures A03:2021-Injection A04:2021-Insecure Design A05:2021-Security Misconfiguration Dasturiy vositalar xavfsizligi OWASP TOP 10 zaifliklar ro‘yxati A06:2021-Vulnerable and Outdated Components A07:2021-Identification and Authentication Failures A08:2021-Software and Data Integrity Failures A09:2021-Security Logging and Monitoring Failures A10:2021-Server-Side Request Forgery Dasturiy vositalar xavfsizligi A01:2021-Broken Access Control – Buzilgan foydalanishni boshqarish Foydalanishni nazoratlash – foydalanuvchilar o‘zlariga mo‘ljallangan ruxsatlardan tashqari harakat qila olmaydigan siyosatni amalga oshiradi. Uning buzilishi odatda ma’lumotlarni ruxsatsiz oshkor etilishiga, barcha ma’lumotlarni o‘zgartirishga, yo‘q qilishga yoki foydalanuvchiga tegishli bo‘lmagan funksiyalarni bajarishga olib keladi. Keng tarqalgan foydalanishni zaifliklariga quyidagilar kiradi: boshqarish • Eng kam imtiyoz yoki joriy holatda rad etish tamoyilining buzilishi; • URL manzilini, ichki ilova holatini yoki HTML sahifasini o‘zgartirish yoki API so‘rovlarini o‘zgartiruvchi hujum vositasi orqali foydalanishni boshqarishni aylanib o‘tish; • Imtiyozni ortishi. Tizimga kirmasdan foydalanuvchi sifatida harakat qilish yoki foydalanuvchi sifatida kirib, administrator sifatida harakat qilish va hak. Dasturiy vositalar xavfsizligi A01:2021-Broken Access Control Himoya: Ochiq resurslardan tashqari, joriy holda rad etish. Foydalanishni boshqarish mexanizmlaridan foydalanish va ilova bo‘ylab qayta foydalanish; bir marta Foydalanishni boshqarish modeli qayd yozuvi uchun egalikni ta’minlashi shart (foydalanuvchi biror qayd yozuvini yaratishi, o‘qishi, yangilashi yoki o‘chirishining o‘rniga); Foydalanishni boshqarishdagi buzilishlarni loglash va bo‘lganida administratorga xabar berish; Veb server kataloglar metama’lumotlari va saqlamaslik. Dasturiy vositalar xavfsizligi ro‘yxatini o‘chirib zaxira fayllarni zarur qo‘yish, fayl veb rutda A01:2021-Broken Access Control – Hujum senariysi №1. Ilova SQL chaqiruvida tekshirilmagan ma’lumotdan qayd yozuvi ma’lumotini olish uchun foydalanishi mumkin: • pstmt.setString(1, request.getParameter("acct")); ResultSet results = pstmt.executeQuery( ); • Agar mos tekshiruv amalga oshirilmasa: • https://example.com/app/accountInfo?acct=notmyacct №2. Buzg‘unchi oddiy URL manziliga kirishni maqsad qilishi mumkin. Admin sahifasini kirish uchun admin huquqi talab etiladi: • https://example.com/app/getappInfo https://example.com/app/admin_getappInfo Dasturiy vositalar xavfsizligi A02:2021 – Cryptographic kriptografik himoyani buzilishi • Dastlab ma’lumotni uzatish himoyani aniqlash shart. Failures – va saqlashda – Masalan, parollar, kredit karta raqamlari, tibbiy ma’lumotlar, shaxsiy va biznesga oid ma’lumotlar qo‘shimcha himoyani talab qiladi. • Ushbu turdagi barcha ma’lumotlar uchun: – Ularni ochiq ko‘rinishda uzatilmaganligi? HTTP, SMTP, FTP kabi protokollar yordamida uzatilmaganligiga? – Shifrlar eski yoki zaifmi yoki protokol joriyligicha qolganmi? – Joriy kriptografik kalit ishlatilyaptimi? Foydalanilgan kalit generatori zaifmi? – Shifrlash foydalanilmaganmi, HTTP protokoli ishlatilganmi? – Server sertifikat to‘g‘ri tekshirilganmi? – kabi savollarga javob berish kerak. Dasturiy vositalar xavfsizligi A02:2021 – Cryptographic kriptografik himoyani buzilishi Failures – tomonidan ishlangan, saqlangan va uzatilgan ma’lumotni Himoya: Ilova klassifikatsiyalash; Keraksiz maxfiy ma’lumotni saqlamaslik; Saqlashda barcha ma’lumotlar shifrlanganini kafolatlash; Barcha ma’lumotlarni himoyalangan kanalda uzatish, masalan, SSL, TLS protokollarida; Foydalanilgan algoritmlarni ekanligiga ishonch hosil qilish; yangilanganligiga Parollarni bardoshli xesh algoritmlari xeshlangan ko‘rinishda saqlash; va bardoshli yordamida “tuz” bilan Har doim shunchaki shifrlashning o‘rniga autentifikatsiyalash va shifrlash sxemasidan foydalaning; Kriptografik kalitlar tasodifiy hosil qilinayotganiga ishonch hosil qiling. Dasturiy vositalar xavfsizligi A02:2021 – Cryptographic Failures – Hujum senariysi №1. Ilova ma’lumotlar bazasini avtomatik shifrlashdan foydalangan holda kredit karta raqamlarini shifrlab saqlaydi. Biroq, bu ma’lumotlar olinayotgan vaqtda avtomatik ravishda deshifrlanadi. • Bu esa, SQL ineksiya asosida kredit olish imkonini beradi. karta raqamini ochiq holda №2. Veb saytda barcha sahifalar uchun TLS ni qo‘llamasligi, yoki zaif algoritmlardan foydalanishi mumkin. Bundan hollarda: • Buzg‘unchi himoyalanmagan kanal orqali sessiya ma’lumotlarini olishi va uning yordamida foydalanuvchi sessiyasini o‘g‘rilashi mumkin. Dasturiy vositalar xavfsizligi A03:2021 – Injection – Ineksiya Ilova quyidagi holatlarda zaif hisoblanadi: hujumlarga • Foydalanuvchi tomonidan taqdim etilgan ma’lumotlar ilova tomonidan tekshirilmagan, filtirlanmagan va tozalanmaganda; • Interpritatorda dinamik so‘rovlar yoki konteksdan xabardor bo‘lmagan parametrsiz chaqiruvlar bevosita qo‘llanilganida; • Buzg‘unchi ma’lumotlar bevosita ishlatiladi yoki foydalanuvchi ma’lumotiga birlashtirilganida. Dasturiy vositalar xavfsizligi A03:2021 – Injection – Ineksiya Himoya: Interpritatordan foydalanish; foydalanish o‘rniga xafsiz API-dan Server tomonida mos kirishni tekshirishni amalga oshirish; Ixtiyoriy dinamik oldini oling; so‘rovlarda maxsus belgilarni bo‘lishini SQL ineksiya holatida ma’lumotlarni ommaviy oshkor etilishini oldini olish uchun LIMIT yoki boshqa SQL boshqaruvlaridan foydalanish. Dasturiy vositalar xavfsizligi A03:2021 – Injection – Hujum ineksiyalari №1. Quyidagi SQL chaqiruvchi orqali ineksiyani amalga oshirish mumkin: • String query = "SELECT \* FROM accounts WHERE custID='" + request.getParameter("id") + "'"; №2. Yuqoridagi kabi, fremworklarda ham bu kuzatiladi: • Query HQLQuery = session.createQuery("FROM accounts WHERE custID='" + request.getParameter("id") + "'"); Har ikkala holda ham hujumchi id parametr qiymatiga ineksiyani, masalan, ‘ or ‘1’=’1, yuborishi mumkin. • http://example.com/app/accountView?id=' or '1'='1 Dasturiy vositalar xavfsizligi A04:2021 – Insecure Design – xavfsiz bo‘lmagan loyihalash • Xavfsiz bo‘lmagan loyihalash – bu turli xil zaif tomonlarni ifodalovchi keng kategoriya bo‘lib, “yo‘qolgan yoki samarasiz boshqaruv loyihasi” sifatida ifodalanadi. • Xavfsiz bo‘lmagan loyihalash va xavfsiz bo‘lmagan amalga oshirish o‘rtasida farq mavjud. • Xavfsiz bo‘lmagan loyihalashda hanuzgacha foydalanish mumkin bo‘lgan zaifliklarga olib keladigan kamchiliklar bo‘lishi mumkin. • Xavfsiz bo‘lmagan loyihalashga sabablardan biri bu – ishlab chiqilayotgan dasturiy ta’minot yoki tizimga xos bo‘lgan risklar profilining mavjud emasligi va shuning uchun xavfsizlik loyihasining qaysi darajasi talab qilinishini aniqlay olmaslikdir. Dasturiy vositalar xavfsizligi A04:2021 – Insecure Design – xavfsiz bo‘lmagan loyihalash va maxfiylik bilan bog‘liq boshqaruv elementlarini Himoya: Xavfsizlik baholash va loyihalashda ilova xavfsizligi mutaxassislari bilan maslahatlashish; Xavfsiz loyihalash shablonlari va foydalanishga kutubxonalarni yaratish va foydalanish; tayyor Kritik autentifikatsiya, foydalanishni boshqarish, biznes logika uchun tahdid modelidan foydalanish; Ilovani har bir integratsiyalash; darajasida Dasturiy ta’minot talablariga foydalanishni integratsiyalash. Dasturiy vositalar xavfsizligi ishonchlik tekshiruvlarni xavfsizlik tili va A05:2021 – Security Misconfiguration xavfsizlikni noto‘g‘ri sozlanishi Agar ilovalarda quyidagilar deb atalishi mumkin: – mavjud bo‘lsa, u zaif • Zarur bo‘lmagan imkoniyatlar yoki xususiyatlar yoqib qo‘yilgan yoki o‘rnatilgan; • Standart qayd yozuvlari va ularning parollari o‘zgartirilmagan; • Xatolarni tutib olish (Error handling) foydalanuvchilarga ortiqcha ma’lumotlarni oshkor qilganda; • Yangilangan tizimlar uchun so‘ngi xavfsizlik funksiyalari o‘chirib qo‘yilgan yoki xavfsiz tarzda sozlanmagan; • Ilova serverlari, ilova freymvorklari, kutubxonalar, ma’lumotlar bazasidagi xavfsizlik sozlanmalari xavfsiz qiymatlarga o‘rnatilmagan; • Dasturiy vosita eskirgan yoki zaif. Dasturiy vositalar xavfsizligi A05:2021 – Security Misconfiguration – xavfsizlikni noto‘g‘ri sozlanishi Himoya: Keraksiz xususiyatlar, tashkil etuvchilar, hujjatlar va na’munalarga ega bo‘lgan platformalarni kamaytirish; Barcha muhitlarda va sozlanmalarning samaradorligini tekshirish uchun avtomatlashtirilgan jarayondan foydalanish; Zaifliklarni bartaraf etishni (patch) tizimlarining asosiy boshqarish yangilanishi sifatida sozlanishlarni yangilashni qabul qilish. Dasturiy vositalar xavfsizligi A06:2021 – Vulnerable and Outdated Components – zaif va muddati o‘tgan komponentlar Agar ilovalarda quyidagilar zaif deb atalishi mumkin: mavjud bo‘lsa, u • Agar siz foydalanayotgan barcha komponentlarning versiyalarini bilmasangiz (mijoz va server tomonida); • Agar dasturiy ta’minot eski, xizmat ko‘rsatilmagan bo‘lsa; • Agar siz zaifliklarni doimiy teshirmasangiz; • Agar siz foydalanayotgan platforma, freymvorklarni yangilamasangiz; • Dasturiy vosita yaratuvchilar eng so‘ngi, yangilangan vositalardan foydalanmasa; • Agar siz tashkil etuvchilar konfigurasiyasini himoyalay olmasangiz. Dasturiy vositalar xavfsizligi A06:2021 – Vulnerable and Outdated Components – zaif va muddati o‘tgan komponentlar bog‘liqliklar, keraksiz xususiyatlar, Himoya: Foydalanilmayotgan komponentlar, fayllar va hujjatlarni olib tashlash; Server va mijoz tomonda mavjud tashkil etuvchilarning versiyalarini va ularning bog‘liqliklarini doimiy ravishda invertarizatsiya qilish; Komponentlarni faqat xavfsiz havolalar orqali rasmiy manbalardan ko‘chirib olish; Xizmat ko‘rsatilmagan yoki versiyalar uchun xavfsizlik yangilanishlarini yaratmaydigan kutubxonalar va komponentlarni kuzatib boring. Dasturiy vositalar xavfsizligi A07:2021 – Identification and Authentication Failures – Identifikatsiya va autentifikasiya jarayonining buzilishi Agar ilovalarda quyidagilar mavjud autentifikatsiyalashda zaiflik mavjud deb ataladi: bo‘lsa, • Foydalanuvchi qayd yozuvi ma’lumotlarini avtomatik ravishda to‘ldirish imkoniyatini beruvchi vositalardan foydalanish imkoniyati mavjud bo‘lganida; • Qo‘pol kuch yoki boshqa avtomatlashtirilgan hujumlarda; • Zaif va standart parollardan foydalanilgan taqdirda; • Foydalanuvchi qayd yozuvlarini saqlashda zaif kriptografik algoritmlardan foydalanish; • Ko‘p faktorli autentifikatsiya ishlatilmaganda; • Muvaffaqqiyatli autentifikasiyadan so‘ng seans identifikatoridan qayta foydalanganda; • URL-da sessiya identifikatori ko‘rsatilganida. Dasturiy vositalar xavfsizligi A07:2021 – Identification and Authentication Failures – Identifikatsiya va autentifikasiya jarayonining buzilishi Himoya: Qayd yozuvlarini avtomatik to‘ldiradigan autentifikatsiyadan foydalanish; Hech bir foydalanuvchi foydalanmang; uchun joriy joylarda ko‘p faktorli qayd yozuvi ma’lumotlaridan Yangi yoki o‘zgartirilgan parollarni eng yomon parollar ro‘yxati bilan solishtiring va unda mavjud emasligiga ishonch hosil qiling; Parollarni maxsus talablar asosida shakllantiring; Muvaffaqqiyatsiz kirish urinishlarini cheklashni amalga oshirish; Seanslarni xavfsiz menedjerlarini tanlang. Dasturiy vositalar xavfsizligi shakllantiradigan va boshqaradigan seans A08:2021 – Software and Data Integrity Failures – Dasturiy ta’minot va ma’lumot yaxlitligini buzilishi Agar ilovalarda quyidagilar mavjud bo‘lsa, ular zaif deb ataladi: • Kod va infratuzilma yaxlitligi taqdirda; • Aksariyat dasturiy yangilanishlarni avtomatik amalga oshirganida tekshirmasligi sababli. Dasturiy vositalar xavfsizligi buzilgan vositalar ravishda yaxlitlikni A08:2021 – Software and Data Integrity Failures – Dasturiy ta’minot va ma’lumot yaxlitligini buzilishi vosita va ma’lumotlar ishonchli manbadan Himoya: Dasturiy ekanligini isbotlashda elektron raqamli imzo va shunga o‘xshash mexanizmlarni qo‘llash; Kutubxonalarni ishonchli manbalardan olish; Dasturiy vositalar komponentlarida zaifliklar mavjud emasligini tekshirish (OWASP Dependency Check yoki OWASP CycloneDX yordamida); Zararli kod yoki konfiguratsiyani dasturiy vositaga kiritilish ehtimolini kamaytirish. Dasturiy vositalar xavfsizligi A09:2021 – Security Logging and Monitoring Failures – xavfsizlik holatlarini qaydlash va monitoringlashni buzulishi • Holatlarni qayd etmasdan va monitoringlashni amalga oshirmasdan, xavfsizlik buzilishlarini aniqlab bo‘lmaydi. Ushbu holatlar quyidagilar kuzatilganida to‘liq o‘z vazifasini bajarmaydi: – Tizimga kirish, muvaffaqqiyatsiz kirish va muhim amaliyotlar qayd etilmaganda; – Ogohlantirish yoki xatoliklar generatsiya qilinmasligi, qaydlashni noto‘g‘ri tashkil etilishi; – Ilovalar va API jurnallar shubhali faoliyat bo‘lganida kuzatilmasligi; – Jurnallar faqat lokal saqlanganda; – Ogohlantirishning mos chegarasi mavjud emasligi yoki unga javob berish tizimining mavjud emasligi, samarali emasligi; – Ilovalarni dinamik testlash jurnallarda qayd etilmasligi; – Ilovalar real vaqt rejimida hujumlarni aniqlay olmaganda yoki ogohlantira olmaganida. Dasturiy vositalar xavfsizligi A09:2021 – Security Logging and Monitoring Failures – xavfsizlik holatlarini qaydlash va monitoringlashni buzulishi kirishlar, foydalanishni boshqarish va server Himoya: Barcha tomonida kirishlarga oid buzilishlar qayd etilishi shart; Barcha log jurnallari standart shaklda generatsiya qilinishi shart; Qayd yozuvi jurnali turli uchun to‘g‘ri kodlanganligi; ineksiyalarga qarshi turishi Qayd jurnallarini o‘zgartirish yoki o‘chirishga qarshi yaxlitlikni ta’minlash mexanizmlarini qo‘llash; Shubhali harakatlarni o‘z vaqtida aniqlash va unga reaksiya ko‘rsatish; Qayd jurnallarini standartlarga asoslanish. Dasturiy vositalar xavfsizligi generatsiya qilganda xalqaro A10:2021 – Server-Side Request Forgery (SSRF) – server tomon so‘rovini soxtalashtirish • • • • • • SSRF – buzg‘unchiga server tomonidagi ilovani u tanlagan ixtiyoriy domenga HTTP so‘rovlarini yuborishga majburlash imkonini beruvchi veb xavfsizlik zaifligi. Odatiy SSFR zaifligida buzg‘unchi serverni tashkilot infratuzilmasi ichidagi faqat ichki xizmatlarga ulanishiga olib kelishi mumkin. Boshqa hollarda, ular serverni o‘zboshimchalik bilan tashqi tizimlarga ulanishga majburlashi mumkin. Bu esa avtorizatsiya ma’lumotlarini chiqib ketishiga sabab bo‘ladi. SSRF kamchiliklari har safar veb ilova foydalanuvchi tomonidan taqdim etilgan URL manzilni tasdiqlamasdan masofadagi resursni olganida yuzaga keladi. Bu hattoki, tarmoqlararo ekran, VPN yoki ACL mavjud bo‘lsa ham amalga oshiriladi. Dasturiy vositalar xavfsizligi A10:2021 – Server-Side Request Forgery (SSRF) – server tomon so‘rovini soxtalashtirish Himoya: Tarmoq sathida: Ilova sathida: Dasturiy vositalar xavfsizligi Resurslarga masofadan kirish funksiyasini alohida ajratish; Muhim Internet tarmog‘ini blokirovka qilishda “joriy holda rad etish” foydalanish; yondashuvida n Mijoz tomonidan kiritilgan barcha kirish ma’lumotlarini tekshirish va tasdiqlash; URL sxemasi, port va ruxsatni maxsus ro‘yxat asosida tashkil qilish; HTTP qayta yo‘naltirilishini o‘chirib qo‘yish. A10:2021 – Server-Side Request Forgery (SSRF) – server tomon so‘rovini soxtalashtirish Misol: file:///etc/passwd</span> http://localhost:28017/ larga mumkin. va kirishlari Bulutli xizmatlarning metama’lumotlarini saqlagichlariga kirish. Masalan, bulut provayderi http://169.254.169.254/ manzilda metama’lumotlarni saqlaydi. Buni o‘qish orqali buzg‘unchi maxfiy ma’lumotlarni qo‘lga kiritishi mumkin. Dasturiy vositalar xavfsizligi OWASP TOP 10 zaifliklar ro‘yxatining o‘zgarib borishi Dasturiy vositalar xavfsizligi Nazorat savollari 1. OWASP tashkiloti va uning vazifasi nimadan iborat? 2. OWASP tashkiloti tomonidan qanday loyihalar amalga oshirilmoqda? 3. OWASP TOP10 nima va bu nima uchun kerak? 4. OWASP TOP10 da qanday zaifliklar o‘rin olgan? Dasturiy vositalar xavfsizligi E’TIBORINGIZ UCHUN RAXMAT!!!