Moderna tillämpningar omfattar ofta behandling av känslig information. Men bristen på privilegieseparation inom användarutrymmet lämnar känsliga program hemliga såsom kryptografiska tangenter precis lika oskyddade som en "hejvärld" sträng. Slipade hårdvarustödda säkerhetsfunktioner introduceras. Funktionerna är dock ofta leverantörsspecifika eller saknar kompatibilitet med äldre generationer av processorer. Situationen lämnar utvecklare utan bärbar lösning för att införliva skydd för den känsliga applikationskomponenten. Vi föreslår LOTRx86, ett grundläggande och portabelt tillvägagångssätt för åtskillnad mellan användar- och rymdprivilegier. Vårt tillvägagångssätt skapar ett mer privilegierat användarutförandelager kallat PrivUser genom att utnyttja de underutnyttjade mellanprivileginivåerna på x86-arkitekturen. PrivUsers minnesutrymme, en uppsättning sidor inom processadressutrymme som är otillgängliga för användarläge, är en säker plats för programhemligheter och rutiner som kommer åt dem. Vi implementerar LOTRx86 ABI som exporterar privcall-gränssnittet till användare för att åberopa hemliga hanteringsrutiner i PrivUser. På så sätt utförs känsliga applikationsoperationer som involverar hemligheterna på ett strikt kontrollerat sätt. Minnesåtkomstkontrollen i vår arkitektur är privilegiebaserad, att få tillgång till den skyddade applikationens hemlighet kräver bara en ändring av privilegieret, vilket eliminerar behovet av kostsamma fjärrprocedursamtal eller ändring av adressutrymme. Vi utvärderade vår plattform genom att utveckla en korrektur-of-concept LOTRx86-aktiverad webbserver som använder vår arkitektur för att säkert komma åt sin privata nyckel under en SSL-anslutning. Vi genomförde en uppsättning experiment inklusive en prestandamätning på PoC på både Intel och AMD PCs, och bekräftade att LOTRx86 har endast en begränsad prestanda overhead.
LOTRx86 REF utnyttjar ringarna 1 och 2 på x86-arkitekturen för att skapa ytterligare ett privilegierat utförandelager.
Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86
{'venue': "CCS '18", 'journal': None, 'mag_field_of_study': ['Computer Science']}