Minnesdisclosure sårbarheter gör det möjligt för en motståndare att framgångsrikt montera godtyckliga kod exekvering attacker mot program via så kallade just-in-time-kod återanvändning attacker, även när dessa program befästs med finkornig adress utrymmeslayout randomisering. Detta attackparadigm kräver motståndaren att först läsa innehållet i randomiserade programkod, sedan konstruera en kod återanvända nyttolast med hjälp av den kunskapen. I detta dokument visar vi att den nyligen föreslagna Execute-no-Read (XnR) tekniken misslyckas med att förhindra just-in-time kod återanvändning attacker. Därefter introducerar vi designen och genomförandet av ett nytt minne tillstånd primitiva, dubbade No-Execute-After-Read (NEAR), som förbigå problemen med XnR och ger starka säkerhetsgarantier mot just-intime attacker i råvaror binärer. Specifikt, NEAR tillåter all kod att avslöjas, men förhindrar varje avslöjad kod från att senare köras, vilket förhindrar just-in-time kod återanvändning. Samtidigt fungerar varubinärer med blandad kod och dataregioner fortfarande korrekt, eftersom legitima uppgifter fortfarande är läsbara. För att demonstrera praktiskheten och portabiliteten av vårt tillvägagångssätt implementerade vi prototyper för både Linux och Android på ARMv8 arkitekturen, samt en prototyp som skyddar omodifierade Microsoft Windows körbara och dynamiskt länkade bibliotek. Dessutom visar vår utvärdering av SPEC2006-riktmärket att vår prototyp har försumbara omkostnader, vilket gör den lämplig för praktisk användning.
Werner och Al. REF design No-Execute-After-Read (NÄR) teknik för att bekämpa just-in tid kod-återanvänd attacker.
No-Execute-After-Read: Preventing Code Disclosure in Commodity Software
{'venue': "ASIA CCS '16", 'journal': None, 'mag_field_of_study': ['Computer Science']}