Sistem Bütünlüğü Koruması (SIP), sistem dosyalarının ve işlemlerin üçüncü taraflarca değiştirilmesini önlemek amacıyla genel bir güvenlik politikasıdır. Bunu başarmak için aşağıdaki kavramlara sahiptir:
- Dosya sistemi koruması
- Çekirdek uzatma koruması
- Çalışma zamanı koruması
Dosya sistemi koruması
SIP, Apple dışındaki tarafların belirli dizinlerde depolanan dizinleri ve dosyaları eklemelerini, silmelerini veya değiştirmelerini önler:
/bin
/sbin
/usr
/System
Apple, aşağıdaki dizinlerin geliştiricilerin erişebilmesi için uygun olduğunu belirtti:
/usr/local
/Applications
/Library
~/Library
Tüm dizinleri /usr
hariç /usr/local
SIP tarafından korunmaktadır.
SIP korumalı dosyaları ve dizinleri, Apple'ın kendi sertifika yetkilisi tarafından imzalanan bir yükleyici paket aracılığıyla eklemek, kaldırmak veya değiştirmek mümkündür. Bu, Apple'ın mevcut SIP korumalarını değiştirmeye gerek kalmadan OS'nin SIP korumalı kısımlarında değişiklik yapmasını sağlar.
Söz konusu sertifika yetkilisi, Apple tarafından kendi kullanımları için ayrılmıştır; Geliştirici Kimliği imzalı yükleyici paketleri, SIP korumalı dosyaları veya dizinleri değiştiremez.
Hangi dizinlerin korunduğunu tanımlamak için, Apple şu anda dosya sisteminde iki yapılandırma dosyası tanımlamıştır. Birincisi aşağıdaki yerde bulunur:
/System/Library/Sandbox/rootless.conf
burada rootless.conf
tüm uygulamaları ve SIP koruyucu dizinlerin üst düzey listeler.
Uygulamalar
SIP, OS X'in Uygulamalar ve Uygulamalar Yardımcı Programları'na yüklediği temel uygulamaları koruyor. Bu, kök ayrıcalıkları kullanırken bile komut satırından bile OS X'in yüklediği uygulamaları silmek mümkün olmayacağı anlamına gelir.
Dizinler
SIP ayrıca, dışında bir takım dizinleri ve sembolik bağları koruyor /Applications
ve bu dizinlerin üst seviyesi de listeleniyor rootless.conf
.
Korumalara ek olarak, Apple ayrıca rootless.conf dosyasında SIP'in korunmasına ilişkin bazı istisnalar da tanımlamıştır ve bu istisnalar yıldız işaretleriyle işaretlenmiştir. SIP'in korumasından muaf olan bu istisnalar, bu konumlara dosya ve dizin eklemenin, kaldırmanın veya değiştirmenin mümkün olduğu anlamına gelir.
Bu istisnalar arasında aşağıdakiler yer almaktadır:
/System/Library/User Template
- burada OS X, yeni hesaplar için giriş klasörleri oluştururken kullandığı şablon dizinlerini saklar.
/usr/libexec/cups
- OS X'in yazıcı yapılandırma bilgilerini sakladığı yer
Apple, bu dosyanın kendisine ait olduğunu ve üçüncü tarafların üzerinde yapılan değişikliklerin Apple tarafından değiştirileceğini düşünmektedir.
Hangi dosyaların SIP tarafından korunduğunu görmek için Terminal'de "tire" harfiyle O ls
komutunu kullanın :
ls -O
SIP korumalı dosyalar sınırlı olarak etiketlenir .
Bilmenin önemli bir düşüncesi, bir bağlantı linki SIP tarafından korunsa bile, bunun mutlaka bağlandıkları dizinin SIP tarafından korunmakta olduğu anlamına gelmez. Bir OS X El Capitan önyükleme sürücüsünün kök düzeyinde, adlandırılmış kök düzeyi dizininde depolanan dizinleri gösteren birkaç SIP korumalı sembolik bağlantı vardır private
.
Ancak, private
dizinin içeriği incelendiğinde, bu sembolik bağların gösterdiği dizinler SIP tarafından korunmaz ve her ikisi ve içerikleri, kök ayrıcalıkları kullanılarak işlemler tarafından taşınabilir, düzenlenebilir veya değiştirilebilir.
Apple'ın belirlediği SIP istisnaları listesine ek olarak, rootless.conf
ikinci bir SIP istisnaları listesi vardır. Bu liste, üçüncü taraf ürünleri için bir dizi dizin ve uygulama adı içerir. Benzer şekilde rootless.conf
, bu dışlama listesi Apple'ındır ve herhangi bir üçüncü tarafın bu değişikliklerinde Apple tarafından yazılacaktır.
/System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
Çalışma zamanı koruması
SIP korumaları, sistemi dosya sistemi değişikliklerinden korumakla sınırlı değildir. Ayrıca artık işlevlerinde kısıtlı olan sistem çağrıları da var.
- task_for_pid () / processor_set_tasks () EPERM ile başarısız
- Mach özel portları çalıştırmada sıfırlandı (2)
- dyld ortam değişkenleri göz ardı edilir
- DTrace probları kullanılamıyor
Bununla birlikte, SIP geliştirici tarafından geliştirilirken kendi uygulamalarının denetimini engellemez. Xcode'ın araçları, geliştirme sürecinde uygulamaların denetlenmesine ve hata ayıklanmasına izin vermeye devam edecek.
Bununla ilgili daha fazla ayrıntı için, Apple'ın SIP geliştiricisinin belgelerine bir göz atmanızı tavsiye ederim .
Çekirdek uzatma koruması
SIP, imzalanmamış çekirdek uzantılarının yüklenmesini engeller. SIP etkinleştirilmiş OS X El Capitan'a bir çekirdek uzantısı yüklemek için, bir çekirdek uzantısı şunları yapmalıdır:
- Kexts sertifikasını imzalamak için bir Geliştirici Kimliği ile imzalanma
- / Library / Extensions içine yükleyin
İmzasız bir çekirdek uzantısı yüklüyse, önce SIP'nin devre dışı bırakılması gerekir.
SIP yönetimi hakkında daha fazla bilgi için, lütfen aşağıdaki bağlantıya göz atın:
Sistem Bütünlüğü Koruması - Apple'ın güvenlik modeline başka bir katman ekleme
sudo
ve şifre sorma normal / önceden / beklendiği gibi çalıştı. Yani, muhtemelen cevap "farketmeyeceğin çoğu zaman; bunu yaptığında, çok zor anlarsın".