Systemintegritetsskydd - System Integrity Protection
|
Säkerhetslager finns i macOS
| |
| Utvecklare | Apple Inc. |
|---|---|
| Första utgåvan | 16 september 2015 |
| Operativ system | Mac OS |
| Ingår i | OS X El Capitan (OS X 10.11) och senare |
| Typ | Programvara för datasäkerhet |
| Hemsida | utvecklare |
System Integrity Protection ( SIP , ibland kallad rotlösa ) är en säkerhetsfunktion av Apples s MacOS operativsystem introducerades i OS X El Capitan (2015) (OS X 10,11). Den innehåller ett antal mekanismer som verkställs av kärnan . En mittpunkt är skyddet av systemägda filer och kataloger mot modifieringar genom processer utan en specifik "rättighet", även när de körs av root-användaren eller en användare med root-privilegier ( sudo ).
Apple säger att rotanvändaren kan vara en betydande riskfaktor för systemets säkerhet, särskilt på system med ett enda användarkonto där användaren också är administratör. SIP är aktiverat som standard men kan inaktiveras.
Berättigande
Apple säger att systemintegritetsskydd är ett nödvändigt steg för att säkerställa en hög säkerhetsnivå. I en av WWDC- utvecklarsessionerna beskrev Apples ingenjör Pierre-Olivier Martel obegränsad root-åtkomst som en av de återstående svagheterna i systemet och sade att "[någon] bit av skadlig kod är ett lösenord eller sårbarhet från att ta full kontroll över enheten ". Han uppgav att de flesta installationer av macOS bara har ett användarkonto som nödvändigtvis har administrativa referenser med sig, vilket innebär att de flesta användare kan ge root-åtkomst till alla program som ber om det. När en användare i ett sådant system blir uppmanad och anger sitt kontolösenord - vilket Martel säger är ofta svagt eller obefintligt - kan säkerheten i hela systemet äventyras. Att begränsa rotens kraft är inte utan motstycke på macOS. Till exempel verkställer versioner av macOS före Mac OS X Leopard nivå 1 av säkerhetsnivå , en säkerhetsfunktion som har sitt ursprung i BSD och dess derivat som macOS delvis bygger på.
Funktioner
Systemintegritetsskydd består av följande mekanismer:
- Skydd av innehåll och filsystembehörigheter för systemfiler och kataloger;
- Skydd av processer mot kodinjektion , körtidsbilaga (som felsökning ) och DTrace ;
- Skydd mot osignerade kärntillägg ("kexts").
System Integrity Protection skyddar systemfiler och kataloger som är flaggade för skydd. Detta händer antingen genom att lägga till ett utökat filattribut till en fil eller katalog, genom att lägga till filen eller katalogen till /System/Library/Sandbox/rootless.confeller båda. Bland de skyddade kataloger är: /System, /bin, /sbin, /usr(men inte /usr/local). De symboliska länkar från /etc, /tmpoch /vartill /private/etc, /private/tmpoch /private/varär också skyddade, även om målet kataloger är inte själva skyddade. De flesta förinstallerade Apple-applikationerna /Applicationsär också skyddade. Den kärnan , XNU stannar alla processer utan särskilda rättigheter från att ändra behörigheterna och innehållet i flaggade filer och kataloger och förhindrar även kod injektion runtime fäste och DTrace med avseende på skyddade körbara .
Eftersom OS X Yosemite måste kärntillägg, som drivrutiner , kodsigneras med en viss Apple-rätt. Utvecklare måste begära ett utvecklar-ID med sådan rättighet från Apple. Kärnan vägrar att starta om osignerade tillägg finns och visar användaren ett förbudstecken istället. Denna mekanism, kallad "kext-signering", integrerades i System Integrity Protection.
Systemintegritetsskydd kommer också att desinficera vissa miljövariabler när man ringer till systemprogram när SIP är i kraft. Till exempel kommer SIP att desinficera LD_LIBRARY_PATH och DYLD_LIBRARY_PATH innan du ringer till ett systemprogram som / bin / bash för att undvika kodinjektioner i Bash-processen.
Konfiguration
Katalogerna som standard är skyddade av SIP inkluderar:
/System/sbin/bin/usr/Applications
/usrär skyddad med undantag för /usr/localunderkatalog. /Applicationsär skyddad för appar som är förinstallerade med Mac OS, såsom Kalender, Foton, Safari, Terminal, Console, App Store och Notes.
Systemintegritetsskydd kan bara inaktiveras (antingen helt eller delvis) utanför systempartitionen . För detta ändamål tillhandahåller Apple csrutil kommandoradsverktyget som kan köras från ett terminalfönster i återställningssystemet eller en startbar MacOS-installationsskiva, som lägger till ett startargument till enhetens NVRAM . Detta gäller inställningen för alla installationer av El Capitan eller macOS Sierra på enheten. Vid installation av macOS flyttar installationsprogrammet alla okända komponenter i flaggade systemkataloger till /Library/SystemMigration/History/Migration-[UUID]/QuarantineRoot/. Genom att förhindra skrivåtkomst till systemkataloger behålls systemfilen och katalogbehörigheterna automatiskt under Apples programuppdateringar. Som ett resultat är behörighetsreparation inte tillgänglig i Diskverktyg och motsvarande diskutilåtgärd.
Reception
Mottagandet av systemintegritetsskydd har varit blandat. Macworld uttryckte sin oro för att Apple kunde ta full kontroll från användare och utvecklare i framtida versioner och flytta macOS säkerhetspolicy långsamt mot Apples mobiloperativsystem iOS , varefter installation av många verktyg och modifieringar kräver jailbreaking . Vissa applikationer och drivrutiner fungerar inte till fullo eller kan inte användas alls om inte funktionen är inaktiverad, antingen tillfälligt eller permanent. Ars Technica föreslog att detta kan påverka mindre utvecklare oproportionerligt, eftersom större kanske kan arbeta med Apple direkt. Men de påpekade också att överlägset de flesta användare, inklusive kraftanvändare , inte kommer att ha en anledning att stänga av funktionen och säger att det nästan inte finns några nackdelar.