Kas yra krūvos purškimas?

Purškimas ant krūvos yra įsilaužimo metodas, naudojamas kompiuterių programinės įrangos pažeidžiamumui išnaudoti. Jis veikia tam, kad įgytų programos kontrolę, pasinaudodamas jos atminties dalimi. Kai dalį atminties valdo įsilaužimo kodas, įsilaužėlis gali kontroliuoti kodo vykdymą, įdiegdamas buferio perpildymą atminties krūvos srityje. Dažniausia purškimo į krūvą programa yra įsilaužimas į žiniatinklio naršykles, pvz., Internet Explorer®.

„Krūva“ yra dinaminis atminties blokas, kurį kompiuteris priskiria konkrečiai programai, taip pavadintas, nes kompiuteris programai skiria virtualią atminties krūvą. Tai gali būti laikoma sandėliavimo vieta spintoje ar rašomajame stale. Ši atminties krūva priklauso programai, kol jos neišleis programinė įranga arba operacinės sistemos rinkinio kodas. Surinkimo kodas yra tiesiog saugus įrenginys, atkuriantis atmintį, jei programa sugenda arba pati programinė įranga nesugeba atlaisvinti atminties pasibaigus naudojimui.

Purškiant krūvą, įsilaužėlis bando „išpurkšti“ atminties krūvą tam tikra kodo dalimi. Tikslas yra įdėti kodą į tam tikrą programos atminties krūvos vietą, pavyzdžiui, įkišti laužtuvą į durų staktos kraštą, kad būtų galima priversti duris atidaryti. Kai informacija įterpiama į atminties krūvą per karščio purškimą, įsilaužėlis gali perpildyti krūvą arba visą atminties buferį, sukeldamas klaidų sistemoje. Atsiradus klaidoms, įsilaužėlis gali jomis pasinaudoti, kad paleistų savo kodą sistemoje.

Purškimas ant krūvos veikia dėl dinamiško atminties paskirstymo sistemoje. Kompiuterio programai šiuo metu iš esmės „priklauso“ visa atminties dalis, todėl įsilaužėlis jau žino santykinę vietą atmintyje, kurią kompiuteris priskyrė programai. Todėl įsilaužėliui reikia mažai konkretumo, kad įspraustų savo kodą į plyšius; jis gali purkšti kodą aklai, žinodamas, kad atminties blokas visada bus tol, kol programa veiks. Tai galima palyginti su bandymu pasiimti spyną užrištomis akimis; užduotis tampa beveik neįmanoma, jei užraktas juda, bet tol, kol jis lieka vienoje fiksuotoje vietoje – kaip ir sistemos atminties krūva – darbas tampa įmanomas.