![](https://help.apple.com/assets/6537FB06A074DBB5E802EA07/6537FB31280588A5490B6E1D/sv_SE/52d714626638d3391623c853be0c593b.png)
Säkerhet vid körning i iOS och iPadOS
iOS och iPadOS säkerställer säkerhet under körning med hjälp av en ”sandlåda”, fastställda behörigheter och ASLR (Address Space Layout Randomization).
Körning i sandlåda
Alla tredjepartsappar körs i en ”sandlåda”, vilket innebär att de inte har tillgång till filer som har sparats av andra appar och inte kan göra några ändringar på enheten. Sandlådor är utformade för att förhindra att appar samlar in eller ändrar information som har sparats av andra appar. Varje apps filer sparas i en unik hemkatalog som tilldelas slumpmässigt när appen installeras. Om en tredjepartsapp behöver tillgång till information utifrån kan den endast få det via tjänster som uttryckligen tillhandahålls av iOS och iPadOS.
Systemfiler och systemresurser är också skyddade från användarnas appar. De flesta iOS- och iPadOS-systemfiler och resurser körs, liksom alla tredjepartsappar, som användaren ”mobile” som saknar behörigheter. Hela operativsystemets partition är inlänkad som skrivskyddad. Verktyg som inte behövs, till exempel tjänster för fjärrinloggning, inkluderas inte i systemprogramvaran och API:er tillåter inte att appar utökar sina egna behörigheter så att de kan modifiera andra appar eller själva iOS och iPadOS.
Användning av behörigheter
Tredjepartsappars tillgång till användarinformation och till funktioner som iCloud och utökning genom tillägg styrs genom fastställda behörigheter. Behörigheterna är par av nyckelvärden som skrivs in i en app och tillåter autentisering utöver faktorer vid körning, som UNIX-användar-ID. Eftersom behörigheter signeras digitalt kan de inte ändras. Behörigheter används ofta av systemappar och bakgrundsprocesser till att utföra specifika uppgifter som kräver behörighet och som annars skulle kräva att processen kördes som rotanvändare. Detta minskar risken för att eventuella systemappar eller bakgrundsprocesser som har manipulerats ska utöka sina behörigheter.
Dessutom kan appar bara utföra bakgrundsbearbetningar genom system-API:er. Det gör att appar kan fortsätta köras utan att prestanda eller batteritid påverkas nämnvärt.
ASLR (Address Space Layout Randomization)
ASLR (Address Space Layout Randomization) skyddar mot att minnesfelsbuggar utnyttjas. Inbyggda appar använder ASLR till att tilldela alla minnesregioner en slumpmässig plats vid start. Utöver att ASLR används vid start ordnas minnesadresserna för körbar kod, systembibliotek och sammanhörande programmeringsstrukturer slumpmässigt, vilket minskar sannolikheten för många angrepp. En return-to-libc-attack försöker till exempel lura enheter att köra skadlig kod genom att manipulera stackens och systembibliotekens minnesadresser. Om placeringen av minnesadresserna är slumpmässig är den här typen av angrepp svårare att genomföra, särskilt mot flera enheter samtidigt. Xcode, och utvecklingsmiljöerna för iOS eller iPadOS, aktiverar ASLR automatiskt vid kompilering av tredjepartsprogram.
Execute Never-funktion
Ytterligare skydd tillhandahålls av iOS och iPadOS genom ARM:s Execute Never-funktion (XN) som markerar minnessidor som icke-körbara. Minnessidor som både har markerats som skrivbara och körbara kan endast användas av appar under strängt kontrollerade former: Kärnan söker efter Apples särskilda behörighet till dynamisk kodsignering. Även om den hittas kan endast ett mmap
-anrop göras för att begära en körbar och skrivbar sida, vilken tilldelas en slumpgenererad adress. Safari använder den här funktionen i sin JIT (just-in-time)-kompilator för JavaScript.