I detta dokument presenteras en kontrollflödestillämpningsteknik baserad på en instruktionsbaserad Memory Access Control (IB-MAC) implementerad i hårdvara. Den är särskilt utformad för att skydda billiga inbyggda system mot skadlig manipulation av deras kontrollflöde samt förhindra oavsiktliga stackspill. Detta uppnås genom att använda en enkel hårdvara modifiering för att dela stacken i en data och en kontrollflöde stack (eller retur stack). Dessutom är åtkomsten till styrflödesstacken begränsad endast för retur- och anropsinstruktioner, vilket förhindrar kontrollflödesmanipulation. Tidigare lösningar tog itu med problemet med kontrollflödesinsprutning på allmänna datorenheter och är sällan tillämpliga på enklare lågkostnads inbyggda enheter, som saknar till exempel en Memory Management Unit (MMU) eller utförande ringar. Vårt tillvägagångssätt är binärt kompatibelt med äldre program och kräver bara minimala förändringar i verktygskedjan. Dessutom ökar det inte minnesanvändning, möjliggör en optimal användning av stackminne och förhindrar oavsiktlig stack korruption vid körtid. Vi har implementerat och testat IBMAC på AVR micro-controller med hjälp av både en simulator och en implementering av den modifierade kärnan på en FPGA. Genomförandet av omkonfigurerbar hårdvara visade en liten resulterande overhead i form av antal grindar, och därmed en låg overhead av förväntade produktionskostnader.
Francillon m.fl. REF föreslår en liknande maskinvaruarkitektur där safe-stacken endast är tillgänglig för retur- och samtalsinstruktioner.
Defending embedded systems against control flow attacks
{'venue': "SecuCode '09", 'journal': None, 'mag_field_of_study': ['Computer Science']}