Abstract-Object gränser överflöd fel är en vanlig källa till säkerhetssårbarheter. I princip eliminerar begränsningskontrollinstrumentering problemet, men detta medför höga omkostnader och hämmas ytterligare av begränsad kompatibilitet mot icke-instrumenterad kod. På 64-bitars system, låg fetthalt pekare är ett nyligen genomfört system för att genomföra effektiva och kompatibla gränser kontroll genom transparent kodning meta information inom den inhemska pekaren representation själv. Dock används låg fetthalt pekare traditionellt endast för hög objekt, där allokatorn har tillräcklig kontroll över objektets plats som krävs för kodningen. Detta är ett problem för stack tilldelning, där det finns starka begränsningar när det gäller placeringen av stack objekt som är uppenbarligen inkompatibel med låg fetthalt pekaren strategi. För att ta itu med detta problem presenterar vi en utvidgning av låg fetthalt pekare att stapla objekt genom att använda en samling av tekniker, såsom pekare spegling och minne aliasing, vilket gör det möjligt stack objekt att njuta av gränser felskydd från instrumenterad kod. Vår förlängning är kompatibel med vanliga specialanvändningar av stacken, såsom alloca, setjmp och longjmp, undantag, och multi-threading, som förlitar sig på direkt manipulation av stack pekaren. Våra experiment visar att vi framgångsrikt utökar fördelarna med låg fetthalt pekare kodning för att stapla objekt. Slutresultatet är en konkurrenskraftig begränsning kontroll instrumentering för stacken och högen med lågt minne och körtid overheads, och hög kompatibilitet med o-instrumenterade äldre kod.
Detta kräver användning av anpassade stack allocators vid tillämpning av detta tillvägagångssätt för stack datastrukturer REF.
Stack Bounds Protection with Low Fat Pointers.
{'venue': 'NDSS', 'journal': None, 'mag_field_of_study': ['Computer Science']}