|
Dasturiy ta’minot xavfsizligini ta’minlashda zaifliklar turlari tasniflab berish
|
bet | 3/4 | Sana | 05.06.2024 | Hajmi | 3,07 Mb. | | #260450 |
Bog'liq 3-topshiriq KH 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 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.
|
| |