Hva er Heap Spraying?
Heap spraying er en hacking-teknikk som brukes til å utnytte sårbarheter i dataprogramvare. Den fungerer for å få kontroll over et program ved å dra nytte av en del av minnet. Når en del av minnet er kontrollert av hackingkoden, kan hackeren ta kontroll over utførelsen av koden ved å implementere et bufferoverløp i haugområdet i minnet. Den vanligste bruken for sprøyting av dynger er hacking av nettlesere som Internet Explorer®.
En "heap" er en dynamisk blokkering av minne som datamaskinen tildeler et bestemt program, så kalt fordi datamaskinen dedikerer en virtuell haug med minne til programmet. Dette kan tenkes som lagringsplass i et skap eller skrivebord. Denne haugen med minne hører til programmet til enten programvaren eller innsamlingskoden til operativsystemet slipper den. Innsamlingskoden er ganske enkelt en feilslått enhet som gjenvinner minne hvis programmet krasjer eller programvaren i seg selv ikke klarer å frigjøre minnet etter at det er slutt på bruken.
Ved sprøyting av hauger prøver en hacker å "spraye" hukommelseshaugen med en spesifikk del av koden. Målet er å plassere koden på en spesifikk plassering i programmets minneheap, som å koble en kobbel inn i kanten av et dørkarme for å gi gearing for å tvinge døren åpen. Etter at informasjonen er koblet inn i minnebunken gjennom varmesprøyting, kan hackeren deretter overfylte enten haugen eller hele minnebufferen, og generere feil i systemet. Når det oppstår feil, kan hackeren dra nytte av dem for å utføre sin egen kode på systemet.
Sprøyting av heap fungerer på grunn av dynamisk allokering av minne i systemet. Dataprogrammet "eier" egentlig hele minnet for tiden, slik at hackeren allerede vet den relative plasseringen i minnet som datamaskinen har tildelt programmet. Derfor trenger hackeren liten spesifisitet for å kile koden sin inn i sprekkene; han kan spray koden blindt, vel vitende om at minneblokken alltid vil være der så lenge programmet fortsetter å kjøre. Dette kan sammenlignes med å prøve å plukke en lås mens du har bind for øynene; oppgaven blir nesten umulig hvis låsen beveger seg, men så lenge den blir liggende på et fast sted - og det samme med mengden minne i systemet - blir jobben mulig.