Svaki dan hakeri diljem svijeta otkrivaju i iskorištavaju nove ranjivosti na web stranicama, aplikacijama, pa čak i arhitekturi sustava. Jedna uobičajena stvar u svim elektroničkim uređajima, starim ili novim, je da ih pokreću programi koji su pohranjeni u memoriji. Hakeri su to iskoristili i pronašli ranjivosti poznate kao preljevi međuspremnika.

Iako nisu novi, napadi i ranjivosti prekoračenja međuspremnika izazivaju pustoš u kibernetičkom prostoru. Ovdje ćemo vam objasniti što su napadi prekoračenja međuspremnika i kako ih možete spriječiti.

Razumijevanje međuspremnika i memorije sustava

Da biste razumjeli što je napad prekoračenja međuspremnika i kako funkcionira, morate znati što je međuspremnik i kako radi memorija računala.

Stog i hrpa memorija dvije su glavne značajke memorije računala. To su strukture podataka koje se koriste za dodjelu memorije. Iako su slični, Memorija steka i hrpe se razlikuju na više načina.

Stog, koji koristi koncept Last-in, First-out (LIFO), koristi se u RAM-u (memoriji slučajnog pristupa) za privremeno pohranjuje izvršavanja programa, dok hrpa dodjeljuje memoriju koristeći dinamičku dodjelu globalnoj varijable. Ali jedina stvar koja im je zajednička je tampon.

instagram viewer

Što je međuspremnik?

Međuspremnik je područje memorije koje se koristi za pohranjivanje podataka, najvjerojatnije u RAM-u računala, dok se premješta s jednog mjesta na drugo. Ti su podaci obično programi koje je potrebno izvršiti. Međuspremnici se pohranjuju u stog ili hrpu. Optimiziraju izvođenje podataka.

Što je prelijevanje međuspremnika?

Prelijevanje međuspremnika događa se kada međuspremnik primi više podataka od njegovog kapaciteta za pohranu. Budući da nije u mogućnosti obraditi tu količinu podataka, ona se prelijeva.

Sada, u memoriji računala, odmah iza međuspremnika ili međuspremnika je povratna adresa. Ova povratna adresa zapravo se naziva prošireni pokazivač instrukcija (EIP). Njegova je funkcija usmjeriti računalo na određeni program kada se popuni. Kada međuspremnik ima više podataka nego što može zadržati i prelije, on se prelijeva u povratnu adresu.

Da bismo to razumjeli, pretpostavimo da imate međuspremnik koji može sadržavati samo pet slova. Dakle, ako unesete riječi poput "šećer" ili "mir", tok međuspremnika to može sadržavati. Ali kada imate riječ kao što je "autentifikacija", ona će se neizbježno preliti. To dovodi do greške ili pada sustava. Ali hakeri mogu iskoristiti ovu ranjivost kako bi započeli napad prekoračenja međuspremnika.

Što je napad prekoračenja međuspremnika i kako funkcionira?

Napadi preljeva međuspremnika događaju se kada haker preuzme kontrolu nad povratnom adresom ili EIP-om. Kada napadač zna veličinu memorije sustava, može namjerno upisati podatke u taj sustav samo da bi ih prepunio. Zatim se uvjeravaju da je EIP ili povratna adresa napisana tako da ukazuje na program koji im može dati pristup sustavu ili otkriti osjetljive informacije pohranjene u sustavu.

Napadač čak može napisati neke podatke koji sadrže zlonamjerni kod i uzrokovati prelijevanje međuspremnika. EIP se zatim zapisuje kako bi preusmjerio sustav natrag na zlonamjerni kod, te se pokreće. Tada haker preuzima kontrolu nad sustavom.

Postoji pet glavnih koraka u napadima prekoračenja međuspremnika:

  1. Šiljanje
  2. Fuzziran
  3. Pronalaženje pomaka
  4. Prepisivanje EIP ili povratne adrese
  5. Iskorištavanje ranjivosti

Spiking je prvi korak. Ovdje hakeri pronalaze dio programske memorije koji je osjetljiv na prekoračenje međuspremnika. Zatim dolazi fuzzing, što je slično spikingu, ali ovdje haker šalje znakove programu da vidi može li se pokvariti. Nakon što je uspješan, napadač nastavlja pronaći pomak, gdje se međuspremnik prepunio. To se radi kako bi se znala veličina međuspremnika i povratna adresa. Zatim haker ubacuje zlonamjerni shell kod i kontrolira sustav.

Koje su vrste napada prekoračenja međuspremnika?

Postoje dvije glavne vrste napada preljeva međuspremnika: napadi temeljeni na stogu i hrpi.

1. Napadi prekoračenja međuspremnika temeljeni na stogu

Napadi prelijevanja međuspremnika temeljeni na stogu najpopularnija su vrsta napada prekomjernog međuspremnika. Pojavljuju se kada se memorija stoga sustava pregazi i iskorištava. Također je poznato kao razbijanje hrpe.

2. Napadi prekoračenja međuspremnika temeljeni na hrpi

Ova vrsta prekoračenja steka nije baš česta, jer ju je teško implementirati i iskoristiti. To se događa kada se memorija dodijeljena programu prepuni. U siječnju 2021. Google je otkrio preljev međuspremnika koji se temelji na hrpi ranjivost u V8 komponenti Chromea.

Kako možete spriječiti napade prekoračenja međuspremnika?

Napadi prekoračenja međuspremnika mogu se ublažiti korištenjem zaštite vremena izvođenja OS-a, sigurnih programskih jezika, randomizacije rasporeda adresnog prostora i osiguravanja sveukupnih ispravnih sigurnosnih mjera.

1. Korištenje OS Runtime Protection

Zaštita tijekom izvođenja također je poznata kao provjera granica niza vremena izvođenja. To osigurava da je svaki program koji se izvodi unutar dostupnog prostora međuspremnika ili memorije. I provjerava sve podatke upisane u memoriju sustava. To hakerima otežava prepisivanje podataka u sustav i iskorištavanje ranjivosti.

2. Korištenje sigurnih programskih jezika

Programski jezici poput C i C++ ne implementiraju provjeru granica niza vremena izvođenja jer je potreban dodatni kod za provjeru svakog programa upisanog u sustav i usporava ga. Stoga su osjetljiviji na napade prekoračenja međuspremnika. Korištenje sigurnijih jezika kao što su C#, Java i Python je bolje jer imaju manji rizik od napada prekoračenja međuspremnika.

3. Upotrijebi nasumično raspored rasporeda adresnog prostora (ASLR)

Ova sigurnosna mjera nasumično dodjeljuje adrese programa i funkcija u memoriji sustava različitim podatkovnim regijama. Napadaču otežava navigaciju kroz osjetljive funkcije u memoriji.

4. Osigurajte stroge sigurnosne politike

To uključuje redovito ažuriranje sustava, provjeru valjanosti svih podataka upisanih u sustav i dodjeljivanje najmanje privilegija korisnicima. Uz postavljene odgovarajuće sigurnosne politike, ne biste se trebali brinuti o napadu prekoračenja međuspremnika.

Održavanje sigurnosti ključno je za borbu protiv napada prekoračenja međuspremnika

Prema popularnoj izreci o sigurnosti, "dok god sustav koriste ljudi, postoji ranjivost", što je istinito i neizbježno. Međutim, uvijek se mogu smanjiti šanse za napad osiguravanjem da su odgovarajuće sigurnosne mjere na mjestu i da se striktno pridržavaju.

Zapamtite da hakeri neprestano pronalaze nove načine za iskorištavanje ranjivosti poput ove. Stoga je na vama da ostanete ispred njih tako što ćete pratiti najnovija dostignuća u području kibernetičke sigurnosti.