← man/security_and_auth
bputil — man bputil — 80×24
ugur@toprak:~/man/security_and_auth$man bputil
Bölüm 1 Güvenlik & Kimlik

bputil

Apple Silicon Mac'lerde güvenlik ayarlarını hassas bir şekilde değiştirmek için kullanılan araç.

Özet

     bputil [-ldejfgnmkcasz] [-u username] [-p password] [-v APFS Volume Group UUID]
	    [-r APFS Volume Group UUID]

Açıklama

Bu araç normal kullanıcılar, hatta sistem yöneticileri (sysadmin) için tasarlanmamıştır. macOS Kurtarma modundaki (“recoveryOS”) Başlangıç Güvenliği Aracı (Startup Security Utility) gibi grafiksel arayüzler (GUI) aracılığıyla normalde kullanıcı için otomatik olarak halledilen yeteneklere doğrudan, soyutlanmamış bir erişim sağlar. Bu aracı kullanarak sisteminizin güvenliğini çok daha zayıf hale getirmeniz ve dolayısıyla sistemin ele geçirilmesini kolaylaştırmanız mümkündür. Bu araç üretim (production) ortamlarında kullanılmamalıdır. Bu araçla sisteminizi başlatılamaz (unbootable) hale getirmeniz mümkündür. Yalnızca Apple Silicon Mac'lerin güvenliğinin nasıl çalıştığını anlamak için kullanılmalıdır. Kullanım sorumluluğu tamamen size aittir!

bputil, BootPolicy kitaplığını çağırarak eylemler gerçekleştirir. Bu, sistemin LocalPolicy adı verilen bir dosyada saklanan güvenlik yapılandırmasını değiştirir. Bu dosya, Güvenli Enklav İşlemcisi (Secure Enclave Processor - SEP) tarafından dijital olarak imzalanır. LocalPolicy dosyasını imzalamak için kullanılan özel anahtar (private key), yalnızca bir kullanıcı başarılı bir kimlik doğrulamanın parçası olarak parolasını girdiğinde erişilebilen ayrı bir anahtarla korunur. Bu nedenle bu araca ya komut satırında bir kullanıcı adı ve parola belirtilmeli ya da etkileşimli istem (prompt) aracılığıyla bu bilgiler sağlanmalıdır.

macOS 12 Monterey, “eşleştirilmiş recoveryOS” (paired recoveryOS) adında yeni bir kavramı ve buna bağlı yeni bir dizi kısıtlamayı tanıtmıştır. Her macOS 12 yüklemesinin, aynı APFS birim grubunda saklanan ve sürümüyle eşleşen kendi eşleştirilmiş recoveryOS sürümü vardır. macOS 11 Big Sur yüklemeleri ise “sistem recoveryOS” (system recoveryOS) adı verilen ayrı bir APFS birim grubunda saklanan tek bir recoveryOS ile eşleştirilmiştir.

Tasarım gereği, LocalPolicy üzerinde değişiklik yapmaktan sorumlu olan SEP uygulaması, ana Uygulama İşlemcisinin (Application Processor - AP) başlatma (boot) durumunu ve başlatılan işletim sistemi ile hedef LocalPolicy arasındaki eşleşme durumunu inceleyecektir. Aşağıdaki güvenlik düşürme (downgrade) işlemlerine yalnızca AP'nin hedeflenen başlatma durumunda olduğunu ve işletim sistemi eşleşme durumunun geçerli olduğunu tespit ettiğinde izin verecektir. Sistem Bütünlüğü Koruması (System Integrity Protection - SIP) Mac'lere ilk kez tanıtıldığında, recoveryOS moduna yeniden başlatma gereksiniminin, kötü amaçlı yazılımların sistem güvenliğini düşürmesini zorlaştıracak bilinçli bir engel (friction) sağlayacağına karar verilmişti. Bu teamül, burada da başlatma sırasında güç tuşuna basılı tutarak recoveryOS'a yapılan özel başlatmayı tespit edecek şekilde genişletilmiştir. Buna Tek Gerçek Kurtarma (One True Recovery - 1TR) diyoruz ve aşağıdaki güvenlik düşürme seçeneklerinin çoğu normal macOS veya başka bir işletim sistemi ortamından çağrıldığında değil, yalnızca 1TR modunda başlatıldığında çalışacaktır. Bu durum, macOS'ta çalışan kötü amaçlı yazılımların değil, yalnızca fiziksel olarak mevcut bir kullanıcının güvenlik ayarlarını kalıcı olarak düşürebilmesini sağlamaya yardımcı olur. Aşağıdaki CLI seçenekleri, bir güvenlik düşürme işleminin hangi başlatma ortamlarından gerçekleştirilebileceğini belirtir.

Eşleştirme kısıtlamaları şu şekilde uygulanır:

  • Tüm macOS 11 yüklemeleri sistem recoveryOS ile eşleştirilmiştir. Varsayılan olarak başlatılmak üzere bir macOS 11 yüklemesi seçilirse, başlatma sırasında güç tuşuna basılı tutularak sistem recoveryOS başlatılacaktır. Sistem recoveryOS, herhangi bir macOS 11 yüklemesinin güvenlik ayarlarını düşürebilir, ancak hiçbir macOS 12 yüklemesinin ayarlarını düşüremez.

  • Her macOS 12 yüklemesi, ilgili APFS birim grubunda saklanan bir recoveryOS com eşleştirilmiştir. Varsayılan olarak başlatılmak üzere bir macOS 12 yüklemesi seçilirse, başlatma sırasında güç tuşuna basılı tutularak onunla eşleştirilmiş recoveryOS başlatılacaktır. Eşleştirilmiş recoveryOS, eşleştirildiği macOS yüklemesinin güvenlik ayarlarını düşürebilir, ancak başka hiçbir macOS yüklemesinin ayarlarını düşüremez.

SEP imzalı LocalPolicy, başlatma sırasında iBoot tarafından değerlendirilir. LocalPolicy içindeki yapılandırmalar iBoot'un davranışını değiştirir; örneğin, tüm başlatma nesnelerinin o makineye özgü meta verilerle imzalanmış olmasını (varsayılan olan ve iOS'te her zaman zorunlu olan "kişiselleştirilmiş" (personalized) imza) gerektirip gerektirmeyeceğini veya belirli bir donanım donanım modelinin tüm birimleri için geçerli olan "küresel" (global) imzaları kabul edip etmeyeceğini belirler. LocalPolicy, aşağıdaki seçeneklerde açıklandığı gibi diğer başlatma veya işletim sistemi güvenliği davranışlarını da etkileyebilir.

-u, --username username

Değişikliği doğrulamak amacıyla imzalama anahtarına erişimi olan bir kullanıcının kullanıcı adını belirtmek için kullanılır.

Bu belirtilirse aşağıdaki parola seçeneği de zorunludur.

Bu belirtilmezse, etkileşimli bir istem kullanıcı adını talep edecektir.

-p, --password password

Değişikliği doğrulamak amacıyla imzalama anahtarına erişimi olan bir kullanıcının parolasını belirtmek için kullanılır.

Bu belirtilirse yukarıdaki kullanıcı adı seçeneği de zorunludur.

Bu belirtilmezse, etkileşimli bir istem parolayı talep edecektir.

-v, --vuid AABBCCDD-EEFF-0011-2233-4455667788990

Politikasının değiştirilmesi hedeflenen işletim sisteminin APFS Birim Grubu UUID'sini belirtir. Hiçbir seçenek belirtilmezse ve birden fazla işletim sistemi yüklemesi tespit edilirse, etkileşimli bir istem UUID'yi talep edecektir. Belirli bir işletim sistemi için Birim Grubu UUID'si 'diskutil apfs listVolumeGroups' komutuyla bulunabilir.

-l, --debug-logging

Politika değişikliğiyle ilişkili olası sorunların giderilmesine yardımcı olmak için ayrıntılı günlük kaydını (verbose logging) etkinleştirir.

-d, --display-policy

LocalPolicy dosyasının ayrıntılı içeriğini görüntüler. Bu, müşterinin belirttiği güvenlik politikasını kaydetmek için kullanılan Apple Image4 veri yapısındaki belirli 4 karakterli “etiketleri” (tags) gösterecektir. Görüntülenen girdiler hakkında daha fazla ayrıntı “Apple Platform Security” web sitesi belgelerinde mevcuttur. Sistemde birden fazla başlatılabilir işletim sistemi varsa, etkileşimli bir istem, politikasını görüntülemek istediğiniz işletim sistemi birimini seçmenizi isteyecektir.

-e, --display-all-policies

Başlatılabilir her işletim sistemi yüklemesi için LocalPolicy dosyasının ayrıntılı içeriğini görüntüler.

-j, --json

Görüntüleme modunu JSON olarak değiştirir. Yalnızca --display-policy ve --display-all-policies seçenekleriyle birleştirilebilir.

-r, --remove AABBCCDD-EEFF-0011-2233-445566778899

Belirli bir Birim Grubu UUID'si için macOS ve eşleştirilmiş recoveryOS yerel politikalarını kaldırır.

Başlatma ortamı gereksinimleri: yazılımla başlatılan recoveryOS veya 1TR. Eşleştirme gereksinimleri: Yok.

-z, --cleanup

Şu anda sistemde bulunmayan birimlerin tüm Birim Grubu UUID'leri için macOS ve eşleştirilmiş recoveryOS yerel politikalarını kaldırır. Uyarı: Bu işlem, sistemde şu anda bağlı olmayan harici sürücülerdeki başlatılabilir birimlerin yerel politikalarını da kaldıracaktır.

Başlatma ortamı gereksinimleri: yazılımla başlatılan recoveryOS veya 1TR. Eşleştirme gereksinimleri: Yok.

-f, --full-security

Güvenlik modunu Tam Güvenlik (Full Security) olarak değiştirir. Bu seçenek, güvenlik düşürmelerine neden olan aşağıdaki tüm seçeneklerle karşılıklı olarak dışlayıcıdır (mutually exclusive). Tam Güvenlik, etkin bir şekilde tüm mevcut güvenlik düşürmelerinden yoksun, varsayılan durumundaki bir LocalPolicy'dir. Tam Güvenlik ayrıca, yazılım yükleme ve yükseltme sırasında yalnızca yazılımın en son sürümünün yüklenebilmesini sağlamak için çevrimiçi bir kontrol gerçekleştirir. Bu durum, bilinen güvenlik açıkları barındıran eski yazılımların yanlışlıkla yüklenmesini önler. Güvenlik düzeyi Tam Güvenlik'ten daha aşağıya düşürülür ve ardından tekrar Tam Güvenlik'e yükseltilirse, çevrimiçi kontrol gerçekleştirilir ve yazılım artık mevcut en son sürüm değilse, sistemin tekrar Tam Güvenlik'e ayarlanması mümkün olmayacaktır. Çevrimiçi kontroller yalnızca yazılım yükleme, yükseltme ve Tam Güvenlik politikası ayarlama sırasında gerçekleştirildiğinden, bir işletim sisteminin en son yazılım sürümü olmamasına rağmen Tam Güvenlik durumunda olduğunu bildirmesi mümkündür. Tam Güvenlik yalnızca en son yükleme veya yükseltme anındaki durumu gösterir.

Başlatma ortamı gereksinimleri: Yok. Eşleştirme gereksinimleri: Yok.

-g, --reduced-security

Bu seçeneğin seçilmesi sisteminizin ele geçirilmesini kolaylaştıracaktır!

Bu, güvenlik modunu Düşürülmüş Güvenlik (Reduced Security) olarak değiştirir. Düşürülmüş Güvenlik, en son sürüm olmayan yazılımların çalıştırılmasına izin vermek amacıyla macOS için “küresel” (global) dijital imzayı kullanacaktır. Dolayısıyla en son sürüm dışındaki her yazılımın güvenlik açıkları olabilir. Genel düzeyde, Düşürülmüş Güvenlik mutlaka en son yazılımı gerektirmez, ancak yine de tüm yazılımların Apple veya üçüncü taraf yazılım geliştiricileri tarafından dijital olarak imzalanmış olmasını gerektirir. Bu seçeneğin iletilmesi, LocalPolicy dosyasını sıfırdan açıkça yeniden oluşturacaktır (yani mevcut güvenlik politikası seçeneklerini korumaz) ve çıktı yerel politikasında yalnızca bu araç aracılığıyla belirtilen seçenekler yer alacaktır.

Başlatma ortamı gereksinimleri: yazılımla başlatılan recoveryOS veya 1TR. Eşleştirme gereksinimleri: Yok.

-n, --permissive-security

Bu seçeneğin seçilmesi sisteminizin ele geçirilmesini kolaylaştıracaktır!

Bu, güvenlik modunu Serbest Güvenlik (Permissive Security) olarak değiştirir. Serbest Güvenlik, en son sürüm olmayan yazılımların çalıştırılmasına izin vermek amacıyla yukarıdaki Düşürülmüş Güvenlik seçeneğiyle aynı macOS "küresel" dijital imzasını kullanır. Dolayısıyla en son sürüm dışındaki her yazılımın güvenlik açıkları olabilir. Genel düzeyde, Serbest Güvenlik yapılandırma seçeneklerinin tüm yazılımların dijital olarak imzalanmasını gerektirmeyecek şekilde ayarlanmasına izin verir. Bu, Apple Geliştirici programının bir parçası olmayan kullanıcıların da kendi yazılımlarını sistemlerine dahil edebilmelerini sağlayabilir. Ek olarak, özellikle tehlikeli güvenlik düşürmeleri Serbest Güvenlik ile sınırlandırılabilir ve grafik arayüzler yerine yalnızca güç kullanıcıları için CLI araçları aracılığıyla sunulabilir. Bu seçeneğin iletilmesi, LocalPolicy dosyasını sıfırdan açıkça yeniden oluşturacaktır (yani mevcut güvenlik politikası seçeneklerini korumaz) ve çıktı yerel politikasında yalnızca bu araç aracılığıyla belirtilen seçenekler yer alacaktır.

Başlatma ortamı gereksinimleri: 1TR. Eşleştirme gereksinimleri: Yalnızca Eşleştirilmiş.

-k, --enable-kexts

Zaten etkin değilse bu seçenek otomatik olarak Düşürülmüş Güvenlik moduna geçiş yapacağından, bu seçeneğin seçilmesi sisteminizin ele geçirilmesini kolaylaştıracaktır!

AuxiliaryKernelCache, bu bellek bir “Yapılandırılabilir Salt Okunur Metin Bölgesi” (Configurable Text Read-only Region - CTRR) donanım yazmacı tarafından yazılması engellenecek şekilde kısıtlanmadan önce doğrulanabilen ve çekirdek (kernel) belleğine yüklenebilen SEP imzalı bir başlatma nesnesidir. Üçüncü taraf çekirdek uzantılarının (kext) sisteme dahil edilmesi, çekirdeğe mimari veya uygulama kusurları getirebilir ve bu da sistemin ele geçirilmesine yol açabilir. iOS benzeri güvenlik özelliklerine ulaşmak için, üçüncü taraf kext'ler varsayılan olarak reddedilmeli ve yalnızca müşterinin bilerek ve isteyerek 1TR modundan güvenliğini düşürmeyi seçmesi durumunda yüklenebilmelidir.

Başlatma ortamı gereksinimleri: 1TR. Eşleştirme gereksinimleri: Yalnızca Eşleştirilmiş.

-c, --disable-kernel-ctrr

Zaten etkin değilse bu seçenek otomatik olarak Serbest Güvenlik moduna geçiş yapacağından, bu seçeneğin seçilmesi sisteminizin ele geçirilmesini kolaylaştıracaktır!

Çekirdek belleğini yazılamaz olarak işaretleyen “Yapılandırılabilir Salt Okunur Metin Bölgesi” (CTRR) donanım yazmacının uygulanmasını devre dışı bırakır. Bu durum bazen çekirdek davranışını profillemek için dinamik DTrace kod kancaları (hooks) kullanmak veya üçüncü taraf çekirdek uzantısı hata ayıklaması yapmak gibi eylemleri gerçekleştirmek için gereklidir. Ancak, CTRR uygulamasının olmaması, bir saldırganın istismarlarla çekirdeği değiştirmesini çok daha kolay hale getirir.

Başlatma ortamı gereksinimleri: 1TR. Eşleştirme gereksinimleri: Yalnızca Eşleştirilmiş.

-a, --disable-boot-args-restriction

Zaten etkin değilse bu seçenek otomatik olarak Serbest Güvenlik moduna geçiş yapacağından, bu seçeneğin seçilmesi sisteminizin ele geçirilmesini kolaylaştıracaktır!

macOS çekirdeği, “boot-args” adı verilen bir nvram değişkeni aracılığıyla çeşitli yapılandırma seçeneklerini kabul eder. Ancak bu seçeneklerden bazıları çekirdeğe bazı güvenlik uygulamalarını azaltmasını söyler. iOS benzeri güvenlik özelliklerine ulaşmak için, bu güvenlik düşürücü davranışın varsayılan olarak reddedilmesi ve yalnızca müşterinin bilerek ve isteyerek 1TR modundan güvenliğini düşürmeyi seçmesi durumunda sunulması gerekir.

Başlatma ortamı gereksinimleri: 1TR. Eşleştirme gereksinimleri: Yalnızca Eşleştirilmiş.

-s, --disable-ssv

Zaten etkin değilse bu seçenek otomatik olarak Serbest Güvenlik moduna geçiş yapacağından, bu seçeneğin seçilmesi sisteminizin ele geçirilmesini kolaylaştıracaktır!

İmzalı Sistem Birimi (Signed System Volume - SSV), Sistem birimindeki (temel macOS yazılımının saklandığı yer) tüm verileri dijital olarak imzalamak ve doğrulamak için kullanılan bir mekanizmadır. Sonuç olarak, kötü amaçlı yazılımlar kalıcı yürütme sağlamak için buradaki yürütülebilir dosyaları doğrudan değiştiremez veya programları istismar etmeye çalışmak için burada saklanan verileri kurcalayamaz. Bu seçenek, müşterilerin Sistem birimini değiştirmelerine izin vermek için İmzalı Sistem Birimi bütünlük uygulamasını devre dışı bırakır. FileVault etkinken SSV devre dışı bırakılamaz. Müşterinin Sistem birimi üzerinde yaptığı değişikliklerin yazılım güncellemeleri boyunca kalıcı olması beklenmez.

Başlatma ortamı gereksinimleri: 1TR. Eşleştirme gereksinimleri: Yalnızca Eşleştirilmiş.

-m, --enable-mdm

Zaten etkin değilse bu seçenek otomatik olarak Düşürülmüş Güvenlik moduna geçiş yapacağından, bu seçeneğin seçilmesi sisteminizin ele geçirilmesini kolaylaştıracaktır!

Yazılım güncellemelerinin ve çekirdek uzantılarının uzaktan MDM yönetimini etkinleştirir. Bu seçenek ayarlandıktan sonra, MDM bilinen güvenlik açıkları barındıran eski yazılımları veya çekirdeğin ele geçirilmesine yol açabilecek mimari ya da uygulama kusurları içeren üçüncü taraf çekirdek uzantılarını yükleyebilir. Bu nedenle, bu durum bir kişinin bu yeteneği MDM için açıkça onaylamasını gerektirir.

Başlatma ortamı gereksinimleri: 1TR. Eşleştirme gereksinimleri: Yalnızca Eşleştirilmiş.

Tarihçe

bputil ilk olarak Apple Silicon Mac'ler için macOS 11 sürümünde yer almıştır.

Darwin 1 Eylül 2020 Darwin