1. Birlesken hújimlerdiń


Download 480.31 Kb.
bet2/7
Sana09.04.2023
Hajmi480.31 Kb.
#1346083
1   2   3   4   5   6   7
Bog'liq
Ziyanli programmalar Leksiya 3

2. Bufer tolıp tasıw hújimi (Buffer overflows)
Buferler ádetde sheklengen maǵlıwmatlardı aldınnan belgilengen muǵdarda ustap turıwshı maǵlıwmat saqlaw ornı esaplanadı. Bufer tolıp tasıwı (Buffer overflows) maǵlıwmatlar bufer kóleminden úlken bolǵan waqıtta maǵlıwmatlar bazasına qosılıp aladı. Mısal ushın, bos 33 CL shıyshe ıdıs oyımızda sawlelendireyik.. Bul bufer soǵan uqsas boladı. Bul bufer (bos shıyshe) 33 CL saqlawı múmkin. Suyıqlıq biziń maǵlıwmat bolsın. Endi, men shama menen 47 CL bolǵan bir stakan suw, ótkeriw qáleymen dep oyda sáwlelendireyik. Meniń ıdısim 33 Cl bos. Men suw (maǵlıwmatlar) menen stakan (bufer) toltırıwdı baslayman, suw shıyshe ústinde hám stol ústine tógiliwdi baslaydı. Bul tasıw úlgisi bolıp tabıladı. Gúmansız, bunday hálsiz kompyuter programmaları bar.
Maǵlıwmatlar bufer kólemin asıp ketkende, qosımsha maǵlıwmatlar bar maǵlıwmatlardı buzıwǵa qaratılǵanlıq hám itimaldan atqarıw jolin hám kórsetpelerge ózgeriwshen qıladı, qońsılas yad orınlar ishine tasıwı múmkin. Bufer tasıp paydalanıw qábileti, bir itimal atqarıw jolǵa óz basımshalıq kodı AOK nı beredi. Bul tosınarlı kod tek ǵana zıyanlı hackerler ruxsatısız kiriwge múmkinshilik beredi, aralıqtan sistema-dárejelige kiriw imkaniyatın da beredi.
Bufer tasıw pylap tabılıwı ádetde eki ekspluataciya hám texnikanıń tariyxıy qolaylıqlarǵa tiykarlanǵan hám bir neshe kategoriyaǵa bólinedi. Rásmiy tariypi bar bolsa-da, bufer tasıw úsh áwladqa bólinedi. Birinshi áwlad bufer tasıw ústine top yadın shaqırıwı; Ekinshi áwlad fontanǵa funkciya mayaqların tartıw; hám aqır-aqıbetinde, úshinshi áwlad fontan top dúzilisi basqarıwda format stringiniń hújimler hám hálsizliklerdi óz ishine aladı. Ápiwayılıǵı ushın, tómendegi túsindiriwler Intel CPU arxitekturasında boladı, biraq bul túsinikler basqa processor proektlar ushın qollanılıwı múmkin.
Toplam (Stack) ǵa tiykarlanǵan bufer tasıwda maǵlıwmatlar uzınlıǵında bir buffer nusqa asırılıwı tekseriw tárepinen emes programmaları tárepinen shaqırıladı. Bul tez-tez bir orınnan ekinshi orınǵa kóshiriledi, óytkeni maǵlıwmatlar muǵdarın sheklew emes, ulıwma wazıypalar tárepinen ámelge asırılıw bolıp tabıladı. Mısal ushın, StrCpy C programmalastırıw tilinde bir buffer string qatarın basqa birine kóshiredi. Biraq, bul wazıypa qabıl bufer jeterlishe úlken ekenligin anıqlay almaydı hám sol sebeptenda buffer tasıwı ámelge asıwı múmkin. Strncpy funkciyasın isletiwshi programmistler ózprogrammaların tolıp ketiwden qorǵalǵan etip jaratpaydı. Bufferdiń kólemi esap-kitabındaǵı Qátelikler sebepli birden-bir bayttı off-by-one usılında toltırıp jiberiwi múmkin. Keliń programmist tárepinen isleniwi múmkin bolǵan bir qátelikti kórip shıǵamız, mısalı " kishi" belgisi ornına " kishi yamasa teń" belgisin qoyǵan bolsın.
#include
int i;
void vuln(char *foobar)
{
char buffer [512];
for (i=0;i<=512;i++)
buffer[i]=foobar[i];
}
void main(int argc, char *argv[])
{
if (argc==2)
vuln(argv[1]); }
Kodqa qarap jasalma (nadurıs) EBP hár qıylı jollarda isletiliwi múmkin. tez-tez mov esp, ebp buferdegi mánzilde bolıw ushın stekti shaqıradı. Buffer lokal ózgeriwshilerdi saqlaw ushın qurılıwı múmkin, EBP hám kóplegen kerekli EIP lar da buferde saqlanıwı múmkin. Jasalma stekdaǵı lokal ózgeriwshiler qayta islenedi hám programma óz jumısın jasalma EIP penen dawam ettiredi. Ol stekda jaylasqan kodqa kiritilgen boladı, nátiyjede bir toltırılǵan bayt kodtı erkin atqarılıwına sharayatjaratıp bere aladı. Nátiyjede bir toltırılǵan bayt kodtı erkin atqarılıwına shárayat jaratıp bere aladı.
Programmistler arasında keń tarqalǵan áwladlardann biri, bul yadtıń dinamikalıq islewi járdeminde olar stektan payadalanıwǵa mútájlik qalmaydı, hám nátiyjede, ekspluataciya itimalın azaytadı.
Heap - bul dinamikalıq túrde orın alǵan yad. Bul yad stek hám kod ushın ajıratılǵan orınnan bólek etip qoyılǵan. Heaplar dinamikalıq jaratıladı hám tap sonday óshiriledi. Heaplearning qollanıwına tiykarǵı sebep, programmistler yaddan qansha orın kerek ekenligin aldınan bilmeydi.
Heaplar jaylasqan yad, steklar sıyaqlı qaytarıw addresslerine iye bolmaydı. Nátiyjede, qaytarıw addressleri bar bolmaǵanda qandayda maǵlıwmattı qayta tiklew qıyın bolıp tabıladı. Biraq , heaplar isletilingeni menen toldırılıwdan qorǵalǵan degeni emes.
Tómende heap penen toltırılǵan ápiwayı bir programma. Programma eki buferge óz yadın jaylastıradı. Bir buffer “A” lar menen toldırıladı. Basqası command line nan alınadı. Eger kimdir command line da júdá kóp tekst terse, If one types too many characters az waqıt the command line, toldırılıw júzege keledi.

Download 480.31 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling