Kontrollflödesintegritet (CFI) har föreslagits som ett tillvägagångssätt för att försvara mot angrepp av minneskorruption genom att kapa minnet. CFI fungerar genom att tilldela taggar till indirekta grenmål statiskt och kontrollera dem vid körning. Det har visat sig vara ineffektivt att använda ett litet antal taggar för att förbättra prestandan. Som ett resultat av detta har ett antal av de senaste ansträngningarna inriktats på finslipad verkställighet av förstainstansrätten, såsom den ursprungligen föreslogs. I detta arbete visar vi att även en finkornig form av CFI med obegränsat antal taggar och en skugg stack (för att kontrollera samtal och returer) är ineffektivt i att skydda mot skadliga attacker. Vi visar att många populära kodbaser som Apache och Nginx använder kodningsmetoder som skapar flexibilitet i deras avsedda kontrollflödesgraf (CFG) även när en stark statisk analysator används för att konstruera CFG. Dessa flexibiliteter tillåter en angripare att få kontroll över avrättningen samtidigt strikt hålla fast vid en finkornig CFI. Vi bygger sedan två proof-of-concept utnyttjar som attackerar en obegränsad tagg CFI-system med en skugga stack. Vi utvärderar också svårigheterna med att generera en exakt CFG med skalbar statisk analys för verkliga applikationer. Slutligen gör vi en analys av ett antal populära tillämpningar som belyser tillgängligheten av sådana attacker.
Trots sådana framsteg, i REF författare visar en attack som kallas Control Jujutsu som utnyttjar imprecision av skalbar pekaranalys för att kringgå finkornig verkställighet av CFI.
Control Jujutsu: On the Weaknesses of Fine-Grained Control Flow Integrity
{'venue': "CCS '15", 'journal': None, 'mag_field_of_study': ['Computer Science']}