VTPin: Protecting Legacy Software from VTable Hijacking

University essay from KTH/Skolan för informations- och kommunikationsteknik (ICT)

Abstract: VTable kapning har nyligen blivit befordrad till de facto-teknik för utnyttjar C ++ program, särskilt webbläsare. VTables kan vara manipuleras utan korrumperande minne, helt enkelt genom att utnyttja användning-after-free sårbarheter. Under de senaste Pwn2Own tävlingar alla större webbläsare brott med bedrifter baserade på användning-efter-free sårbarheter och VTable kapning. I detta dokument föreslår vi VTPin: ett system för att skydda mot VTable kapning, via användning-efter-fria sårbarheter, i stora C ++ binärer som kan inte kompileras eller omskrivet. Huvudtanken bakom VTPin är att stift alla frigjorda VTable pekare på en säker VTable under VTPin’s kontroll. Specifikt, för varje förekommande objekt avallokering, VTPin avallokerar allt utrymme tilldelas, men bevarar och uppdaterar VTable pekaren med adressen till den säkra VTable. Därför kan någon dereferenced dinglande pekaren bara anropa en metod som tillhandahålls av VTPin’s säker objekt. Därefter kallar alla virtuella metoden på grund av dinglande pekare är inte bara neutraliseras, men de kan vara inloggad spåras och lappat. Jämfört med andra lösningar som försvarar mot VTable kapning, VTPin uppvisar vissa egenskaper som gör den lämplig för praktisk och omedelbar användning i produktion programvara. Först, VTPin skyddar binärer, direkt och öppet, utan att det krävs källa sammanställning eller binär omskrivning. För det andra, VTPin inte är en allokerare ersättning, och därför är det inte stör den allokeringsstrategier och politik skyddade programmet; det ingriper i avallokeringen processen endast när ett virtuellt föremål som skall frigöras för bevara VTable pekaren. För det tredje, är VTPin snabbt; Mozilla Firefox, skyddas med VTPin, upplever en genomsnittlig overhead en 1% till 4,1 % när man kör populära riktmärken webbläsaren.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)