Systemintegritetsskydd
Utvecklare | Apple Inc. |
---|---|
Initial release | 16 september 2015 |
Operativ system | Mac OS |
Ingår med | OS X El Capitan (OS X 10.11) och senare |
Typ | Programvara för datorsäkerhet |
Hemsida |
System Integrity Protection ( SIP , ibland kallad rotlös ) är en säkerhetsfunktion i Apples macOS -operativsystem som introducerades i OS X El Capitan (2015) (OS X 10.11) . Den består av ett antal mekanismer som upprätthålls av kärnan . En mittpunkt är skyddet av systemägda filer och kataloger mot ändringar av processer utan en specifik "behörighet", även när de körs av root-användaren eller en användare med root-privilegier ( sudo ).
Apple säger att root-användaren kan vara en betydande riskfaktor för systemets säkerhet, särskilt på system med ett enda användarkonto där den användaren också är administratör. SIP är aktiverat som standard, men kan inaktiveras.
Berättigande
Apple säger att System Integrity Protection är ett nödvändigt steg för att säkerställa en hög säkerhetsnivå. I en av WWDC -utvecklarsessionerna beskrev Apple-ingenjören Pierre-Olivier Martel obegränsad root-åtkomst som en av de återstående svagheterna i systemet, och sa att "[vilken] del av skadlig programvara är ett lösenord eller sårbarhet borta 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 vilket program som helst som ber om det. Närhelst en användare på ett sådant system uppmanas och anger sitt kontolösenord – vilket Martel säger ofta är svagt eller obefintligt – äventyras säkerheten för hela systemet. Att begränsa kraften hos root är inte enastående på macOS. tillämpar versioner av macOS före Mac OS X Leopard nivå 1 av securelevel , en säkerhetsfunktion som har sitt ursprung i BSD och dess derivator som macOS delvis bygger på.
Funktioner
Systemintegritetsskydd omfattar följande mekanismer:
- Skydd av innehåll och filsystembehörigheter för systemfiler och kataloger;
- Skydd av processer mot kodinjektion , runtime-attachment (som felsökning ) och DTrace ;
- Skydd mot osignerade kärntillägg ("kexts").
Systemintegritetsskydd skyddar systemfiler och kataloger som är flaggade för skydd. Detta sker 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.conf
eller båda. Bland de skyddade katalogerna finns: /System
, /bin
, /sbin
, /usr
(men inte /usr/local
). De symboliska länkarna från /etc
, /tmp
och /var
till /private/etc
, /private/tmp
och /private/var
är också skyddade, även om målkatalogerna inte själva är skyddade. De flesta förinstallerade Apple-program i /Applications
är också skyddade. Kärnan , XNU , stoppar alla processer utan specifika rättigheter från att ändra behörigheterna och innehållet i flaggade filer och kataloger och förhindrar även kodinjektion, runtime-bifogning och DTrace med avseende på skyddade körbara filer .
Sedan OS X Yosemite måste kärntillägg, såsom drivrutiner , kodsigneras med en viss Apple-rättighet. Utvecklare måste begära ett utvecklar-ID med sådan rätt från Apple. Kärnan vägrar att starta om osignerade tillägg finns, visar användaren ett förbudstecken istället. Denna mekanism, kallad "kext-signering", integrerades i System Integrity Protection.
Systemintegritetsskyddet kommer också att rensa vissa miljövariabler när systemprogram anropas när SIP är i kraft. Till exempel kommer SIP att rensa LD_LIBRARY_PATH och DYLD_LIBRARY_PATH innan ett systemprogram som /bin/bash anropas för att undvika kodinjektioner i Bash-processen.
Konfiguration
Katalogerna som skyddas av SIP som standard inkluderar:
/Systemet
/sbin
/bin
/usr
/Ansökningar
/usr
är skyddat med undantag för /usr/local
underkatalog. /Applications
är skyddat för appar som är förinstallerade med Mac OS, som Kalender, Foton, Safari, Terminal, Console, App Store och Notes.
Systemintegritetsskydd kan endast inaktiveras (antingen helt eller delvis) från utsidan av systempartitionen . För detta ändamål tillhandahåller Apple kommandoradsverktyget csrutil
som kan köras från ett terminalfönster i återställningssystemet eller en startbar macOS-installationsdisk, 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 bibehålls systemfilen och katalogbehörigheterna automatiskt under Apples programuppdateringar. Till följd av detta behörighetsreparation inte tillgänglig i Diskverktyget och motsvarande diskutil-
operation.
Reception
Mottagningen av System Integrity Protection har varit blandad. Macworld uttryckte oro för att Apple skulle kunna ta full kontroll från användare och utvecklare i framtida utgåvor och långsamt flytta säkerhetspolicyn för macOS mot den för Apples mobila operativsystem iOS , varpå installationen av många verktyg och modifieringar kräver jailbreaking . Vissa applikationer och drivrutiner kommer inte att fungera till fullo eller kan inte användas alls om inte funktionen är inaktiverad, antingen tillfälligt eller permanent. Ars Technica föreslog att detta skulle kunna påverka mindre utvecklare oproportionerligt, eftersom större kan kunna arbeta med Apple direkt. Men de påpekade också att överlägset de flesta användare, inklusive avancerade användare , inte kommer att ha en anledning att stänga av funktionen, och sa att det "nästan inga nackdelar" med det finns.