Uploaded by Fayzullayev Muhammadali

OWASP Top 10 Dasturiy Ta'minot Zaifliklari: Turlari va Tasnifi

advertisement
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!!!
Download