Vsak dan hekerji po vsem svetu odkrivajo in izkoriščajo nove ranljivosti na spletnih mestih, aplikacijah in celo sistemski arhitekturi. Ena skupna stvar vseh elektronskih naprav, starih ali novih, je, da jih izvajajo programi, ki so shranjeni v pomnilniku. Hekerji so to izkoristili in odkrili ranljivosti, znane kot prelivi medpomnilnika.

Čeprav niso novi, napadi in ranljivosti zaradi prekoračitve medpomnilnika povzročajo opustošenje v kibernetskem prostoru. Tukaj vam bomo razložili, kaj so napadi prekoračitve medpomnilnika in kako jih lahko preprečite.

Razumevanje medpomnilnikov in sistemskega pomnilnika

Če želite razumeti, kaj je napad prekoračitve medpomnilnika in kako deluje, morate vedeti, kaj je medpomnilnik in kako deluje pomnilnik računalnika.

Pomnilnik sklada in kopice sta dve glavni značilnosti računalniškega pomnilnika. So podatkovne strukture, ki se uporabljajo za dodeljevanje pomnilnika. Čeprav sta si podobna, pomnilnik sklada in kopice se razlikujeta na več načinov.

Sklad, ki uporablja koncept Last-in, First-out (LIFO), se uporablja v RAM-u (pomnilnik z naključnim dostopom) za začasno shrani izvajanje programov, medtem ko kopica dodeli pomnilnik z dinamično dodelitvijo globalnemu spremenljivke. Toda ena stvar, ki jima je skupna, je pufer.

instagram viewer

Kaj je medpomnilnik?

Medpomnilnik je območje pomnilnika, ki se uporablja za shranjevanje podatkov, najverjetneje v RAM-u računalnika, medtem ko se premikajo z ene lokacije na drugo. Ti podatki so običajno programi, ki jih je treba izvesti. Medpomnilniki so shranjeni v skladu ali kupu. Optimizirajo izvajanje podatkov.

Kaj je prepolnitev medpomnilnika?

Prelivanje medpomnilnika se pojavi, ko medpomnilnik prejme več podatkov, kot je njegova zmogljivost pomnilnika. Ker ne more obdelati te količine podatkov, se preliva.

Zdaj je v pomnilniku računalnika, takoj za medpomnilnikom ali medpomnilniškim prostorom, povratni naslov. Ta povratni naslov se dejansko imenuje razširjeni kazalec navodil (EIP). Njegova funkcija je, da usmerja računalnik na določen program, ko je napolnjen. Ko ima medpomnilnik več podatkov, kot jih lahko zadrži, in se prepolni, se prelije v povratni naslov.

Da bi to razumeli, predpostavimo, da imate vmesni prostor, ki lahko vsebuje samo pet črk. Če torej vnesete besede, kot sta "sladkor" ali "mir", ga lahko tok medpomnilnika vsebuje. Toda ko imate besedo, kot je "avtentikacija", se bo neizogibno prelila. To vodi do napake ali zrušitve sistema. Toda hekerji lahko izkoristijo to ranljivost za začetek napada prekoračitve medpomnilnika.

Kaj je napad prekoračitve medpomnilnika in kako deluje?

Napadi prekoračitve medpomnilnika se zgodijo, ko heker prevzame nadzor nad povratnim naslovom ali EIP. Ko napadalec pozna velikost sistemskega pomnilnika, lahko namerno zapiše podatke v ta sistem samo zato, da jih prepolni. Nato poskrbijo, da je EIP ali povratni naslov zapisan tako, da kaže na program, ki jim lahko omogoči dostop do sistema ali razkrije občutljive informacije, shranjene v sistemu.

Napadalec lahko celo napiše nekaj podatkov, ki vsebujejo zlonamerno kodo in povzročijo prepolnitev medpomnilnika. EIP se nato napiše, da sistem preusmeri nazaj na zlonamerno kodo, in se začne zagnati. Nato heker prevzame nadzor nad sistemom.

Pri napadih prekoračitve medpomnilnika je pet glavnih korakov:

  1. Spiking
  2. Neprijeten
  3. Iskanje odbitka
  4. Prepisovanje EIP ali povratnega naslova
  5. Izkoriščanje ranljivosti

Spiking je prvi korak. Tukaj hekerji najdejo del programskega pomnilnika, ki je ranljiv za prelivanje medpomnilnika. Nato sledi fuzzing, ki je podoben spikingu, vendar tukaj heker pošlje znake v program, da preveri, ali ga je mogoče zlomiti. Ko je uspešen, napadalec nadaljuje z iskanjem odmika, kjer se je medpomnilnik prepolnil. To naredimo, da poznamo velikost medpomnilnika in povratni naslov. Nato heker vstavi zlonamerno lupino in nadzoruje sistem.

Kakšne so vrste napadov prekoračitve medpomnilnika?

Obstajata dve glavni vrsti napadov prekoračitve medpomnilnika: napadi na podlagi sklada in kopice.

1. Napadi prekoračitve medpomnilnika na podlagi sklada

Napadi prekoračitve medpomnilnika, ki temeljijo na skladu, so najbolj priljubljena vrsta napadov prekoračitve medpomnilnika. Pojavijo se, ko je sistemski skladovni pomnilnik prekoračen in izkoriščen. Znano je tudi kot razbijanje kupov.

2. Napadi prekoračitve medpomnilnika na podlagi kopice

Ta vrsta prelivanja sklada ni zelo pogosta, saj jo je težko implementirati in izkoriščati. Pojavi se, ko se pomnilnik, dodeljen programu, prepolni. Januarja 2021 je Google odkril prelivanje medpomnilnika, ki temelji na kopici ranljivost v komponenti V8 Chroma.

Kako lahko preprečite napade prekoračitve medpomnilnika?

Napade prekoračitve medpomnilnika je mogoče ublažiti z zaščito med izvajanjem operacijskega sistema, varnimi programskimi jeziki, naključno postavitvijo naslovnega prostora in zagotavljanjem splošnih ustreznih varnostnih ukrepov.

1. Uporaba zaščite pred izvajanjem OS

Zaščita med izvajanjem je znana tudi kot preverjanje meja nizov med izvajanjem. To zagotavlja, da je vsak zagon programa znotraj razpoložljivega medpomnilnika ali pomnilnika. In preveri vse podatke, zapisane v pomnilnik sistema. To hekerjem otežuje prepisovanje podatkov v sistem in izkoriščanje ranljivosti.

2. Uporaba varnih programskih jezikov

Programski jeziki, kot sta C in C++, ne izvajajo preverjanja meja nizov med izvajanjem, ker potrebuje dodatno kodo za preverjanje vsakega programa, ki je vpisan v sistem, in ga upočasni. Zato so bolj dovzetni za napade prelivanja puferja. Uporaba varnejših jezikov, kot so C#, Java in Python, je boljša, ker imajo manjše tveganje za napade prekoračitve medpomnilnika.

3. Uporabi naključno razporeditev naslovnega prostora (ASLR)

Ta varnostni ukrep naključno dodeli naslove programov in funkcij v sistemskem pomnilniku različnim podatkovnim regijam. Napadalcu oteži krmarjenje po občutljivih funkcijah v pomnilniku.

4. Zagotovite stroge varnostne politike

To vključuje redno posodabljanje sistema, preverjanje vseh podatkov, ki so vpisani v sistem, in dodeljevanje najmanjših privilegijev uporabnikom. Z vzpostavljenimi ustreznimi varnostnimi politikami vam ni treba skrbeti za napad prekoračitve medpomnilnika.

Zaščita vaše varnosti je ključnega pomena za boj proti napadom prekoračitve medpomnilnika

Po priljubljenem pregovoru na področju varnosti "dokler sistem uporabljajo ljudje, obstaja ranljivost", kar je resnično in neizogibno. Vendar pa je vedno mogoče zmanjšati možnosti napada, tako da zagotovimo ustrezne varnostne ukrepe in jih dosledno upoštevamo.

Ne pozabite, da hekerji nenehno iščejo nove načine za izkoriščanje ranljivosti, kot je ta. Zato je na vas, da ostanete pred njimi in spremljate najnovejše napredke na področju kibernetske varnosti.