![](https://help.apple.com/assets/6537FB06A074DBB5E802EA07/6537FB31280588A5490B6E1D/fi_FI/52d714626638d3391623c853be0c593b.png)
Ajonaikaisen prosessin suojaus iOS:ssä ja iPadOS:ssä
iOS ja iPadOS auttavat varmistamaan ajonaikaisen suojauksen käyttämällä eristystä, oikeuksia ja ASLR-tekniikkaa (Address Space Layout Randomization).
Eristys
Kaikki muiden valmistajien apit eristetään (sandbox), jotta ne eivät pääse käsiksi muiden appien tallentamiin tiedostoihin tai tekemään muutoksia laitteeseen. Eristys on suunniteltu estämään appeja keräämästä tai muokkaamasta muiden appien tallentamia tietoja. Jokaisella apilla on tiedostoillensa oma kotihakemisto, joka määritetään sattumanvaraisesti, kun appi asennetaan. Jos muun valmistajan apin täytyy käyttää muiden tietoja, se tekee sen vain palveluilla, jotka iOS ja iPadOS varta vasten tarjoavat.
Järjestelmätiedostot ja resurssit on myös erotettu käyttäjän apeista. Suurin osa iOS:n ja iPadOS:n järjestelmätiedostoista ja resursseista suoritetaan oikeudettomana käyttäjänä ”mobile”, kuten myös kaikki muiden valmistajien apit. Koko käyttöjärjestelmäosio tuodaan näkyviin kirjoitussuojattuna. Tarpeettomia työkaluja, kuten etäkirjautumispalveluja, ei ole sisällytetty järjestelmäohjelmistoon, ja rajapinnat eivät salli appien laajentaa niiden omia oikeuksia, jotta ne voisivat muokata muita appeja tai iOS:ää ja iPadOS:ää.
Oikeuksien käyttö
Muiden valmistajien appien pääsyä käyttäjän tietoihin ja ominaisuuksiin (kuten iCloud ja laajennettavuus) hallitaan oikeuksilla. Oikeudet ovat appiin allekirjoitettuja avain-arvo-pareja, jotka mahdollistavat ajonaikaisia tekijöitä, kuten UNIXin käyttäjätunnusta, pidemmälle menevän todentamisen. Koska oikeudet on digitaalisesti allekirjoitettu, niitä ei voida muuttaa. Järjestelmäapit ja prosessit suorittavat oikeuksilla toimintoja, jotka muuten vaatisivat prosessin suorittamisen pääkäyttäjänä (root). Tämä vähentää järjestelmäappien tai prosessien vaarantumisesta aiheutuvaa oikeuksien eskalaatiota.
Lisäksi apit voivat suorittaa taustaprosessointia vain järjestelmän tarjoamien API:en kautta. Tämän ansiosta apit voivat jatkaa toimintaa heikentämättä suorituskykyä tai vaikuttamatta merkittävästi akunkestoon.
ASLR (Address Space Layout Randomization)
ASLR (Address Space Layout Randomization) auttaa suojaamaan muistin korruptoitumisvirheiden hyödyntämiseltä. Vakioapit käyttävät ASLR:ää apuna satunnaistamaan kaikki muistialueet käynnistyksessä. Sen lisäksi, että ASLR toimii käynnistyksen yhteydessä, se myös satunnaistaa suoritettavan koodin, järjestelmäkirjastojen ja muiden ohjelmointielementtien muistiosoitteet, mikä pienentää edelleen monien hyökkäysten todennäköisyyttä. Esimerkiksi "return-to-libc"-hyökkäys yrittää huijata laitteen suorittamaan haittakoodia manipuloimalla pinon ja järjestelmäkirjastojen muistiosoitteita. Näiden sijoittelun satunnaistaminen tekee hyökkäyksen toteuttamisesta vaikeampaa erityisesti useissa laitteissa. Xcode ja iOS:n ja iPadOS:n kehitysympäristöt kääntävät muiden valmistajien apit automaattisesti ASLR-tuki päällä.
Execute Never ‑ominaisuus
iOS ja iPadOS tarjoavat lisäsuojaa ARMin Execute Never (XN) -ominaisuudella, joka merkitsee muistisivuja ei-suoritettaviksi. Apit voivat käyttää sekä kirjoitettavia että suoritettavia muistisivuja vain tiukasti kontrolloiduissa tilanteissa: Kernel tarkistaa dynaamisen koodinallekirjoitusoikeuden, joka on vain Applella. Silloinkin vain yksi mmap
-kutsu voi pyytää suoritettavaa ja kirjoitettavaa sivua, jolle annetaan satunnaistettu osoite. Safari käyttää tätä ominaisuutta JavaScript-JIT-kääntäjässään.