Kaj je prepolnitev medpomnilnika sklada?

Prelivanje medpomnilnika sklada se zgodi, ko program naredi vnos v pomnilnik računalnika, ki je daljši od dodeljenega prostora. V nekaterih okoliščinah lahko to poškoduje druge podatke v pomnilniku, kar povzroči težave pri delovanju računalnika. V drugih primerih lahko zlonamerna aplikacija izkoristi prepolnitev medpomnilnika sklada za prevzem nadzora nad drugimi deli računalnika.

Ime iz prepolnitve medpomnilnika sklada izvira najprej iz sklada, ki je dejansko aktiven seznam, v katerem so organizirani podatki: izraz izvira iz analogije kopičenja fizičnih elementov. Ena različica tega, sklad klicev, je seznam, ki ga računalniški program uporablja za spremljanje različnih delov programa, podprogramov, ki delujejo v določenem trenutku. Ker sklad klicev deluje začasno in je treba do njega hitro dostopati, se nahaja v pomnilniku računalnika in ne v trajnem pomnilniku, kot je trdi disk.

Ker sodobni operacijski sistemi omogočajo zagon več programov hkrati, je treba organizirati način dodeljevanja pomnilnika, vključno s klicnimi skladi. To se učinkovito izvaja z dodeljevanjem medpomnilnikov, prostora v pomnilniku, ki je zasnovan tako, da je dovolj velik, da se spopade z največjim prostorom, ki ga zahteva določen medpomnilnik. V večini primerov bo del prostora neizkoriščen, zato deluje kot medpomnilnik med podatki iz različnih aplikacij in pušča prostor za obvladovanje, če nenadoma potrebujete dodaten prostor. Eden od načinov za vizualizacijo bi bil razmišljanje o knjižnici, ki bi vsakemu predmetnemu področju dodelila določeno količino prostora, pri čemer bi poskrbeli, da boste pustili nekaj dodatnega prostora za obvladovanje, če bi bile na primer vse knjige o eni temi v knjižnici v ob istem času, namesto da bi se katera koli od njih odjavila.

Prelivanje medpomnilnika sklada se pojavi, ko program zapiše podatke sklada klicev v medpomnilnik na način, ki presega dodeljeni prostor. To se lahko zgodi pomotoma, običajno zaradi napake v programu. Na primer, če je aplikacija zasnovana tako, da uporabniku omogoča vnos telefonske številke, vendar nima omejitve števila znakov, ki jih je mogoče vnesti, lahko heker uporabi neomejeno polje, da namerno povzroči prelivanje medpomnilnika sklada. . Odvisno od načina delovanja operacijskega sistema lahko to hekerju omogoči posreden dostop do druge aplikacije ali do samega operacijskega sistema.

Obstaja več pristopov za ublažitev učinkov prepolnitve medpomnilnika sklada. Ena je znana kot randomizacija postavitve naslovnega prostora. To razporedi najpomembnejša področja podatkov v računalniku na naključni način. Ideja je, da tudi če heker povzroči ali izkoristi prepolnitev medpomnilnika sklada, ne bo mogel zanesljivo izkoristiti kršitve.