Hvad er Heap Spraying?
Heap spraying er en hacking teknik, der bruges til at udnytte sårbarheder i computersoftware. Det fungerer for at få kontrol over et program ved at drage fordel af en del af dets hukommelse. Når en del af hukommelsen er kontrolleret af hackingkoden, kan hackeren tage kontrol over udførelsen af koden ved at implementere et bufferoverløb i hukommelsesområdet. Den mest almindelige anvendelse til sprøjtning med dynger er hacking af browsere som Internet Explorer®.
En "heap" er en dynamisk hukommelsesblok, som computeren tildeler et bestemt program, så navngivet, fordi computeren dedikerer en virtuel bunke hukommelse til programmet. Dette kan tænkes på som opbevaringsplads i et skab eller skrivebord. Denne bunke hukommelse hører til programmet, indtil enten softwaren eller opsamlingskoden for operativsystemet frigiver det. Samlingskoden er simpelthen en fejlsikker enhed, der genvinder hukommelse, hvis programmet går ned, eller selve softwaren ikke frigiver hukommelsen, når det er brugt.
Ved sprøjtning med heap forsøger en hacker at "sprøjte" hukommelseshaugen med en bestemt del af koden. Målet er at placere koden på en bestemt position inden for programmets hukommelseshaug, som at koble en krog i kanten af en dørkarme for at give gearing til at tvinge døren til at åbne. Når informationen er koblet ind i hukommelseshøjen gennem varmespray, kan hackeren derefter overløbe enten dyngen eller hele hukommelsesbufferen, hvilket genererer fejl i systemet. Når der opstår fejl, kan hackeren drage fordel af dem til at udføre sin egen kode på systemet.
Sprøjtning med heap fungerer på grund af den dynamiske allokering af hukommelse i systemet. Computerprogrammet "ejer" i øjeblikket hele hukommelsestykke for tiden, så hackeren kender allerede den relative placering i hukommelsen, som computeren har tildelt programmet. Derfor har hacker brug for lidt specificitet for at koble sin kode ind i revnerne; han kan sprøjte koden blindt ved at vide, at hukommelsesblokken altid vil være der, så længe programmet fortsætter med at køre. Dette kan sammenlignes med at forsøge at vælge en lås, mens det var bind for øjnene; Opgaven bliver næsten umulig, hvis låsen bevæger sig rundt, men så længe den forbliver på et fast sted - ligesom hukommelsen med hukommelse i systemet - bliver jobbet muligt.