macOS Authorizations DB & Authd
Yetkilendirme DB'si
/var/db/auth.db
konumunda bulunan veritabanı, hassas işlemleri gerçekleştirmek için izinleri saklamak için kullanılan bir veritabanıdır. Bu işlemler tamamen kullanıcı alanında gerçekleştirilir ve genellikle belirli bir eylemi gerçekleştirmek için çağıran istemcinin yetkilendirilip yetkilendirilmediğini kontrol etmesi gereken XPC hizmetleri tarafından kullanılır.
Başlangıçta bu veritabanı, /System/Library/Security/authorization.plist
içeriğinden oluşturulur. Daha sonra bazı hizmetler bu veritabanına diğer izinleri eklemek veya verileri değiştirmek için ekleme yapabilir.
Kurallar, veritabanının içindeki rules
tablosunda saklanır ve aşağıdaki sütunları içerir:
id: Her kural için benzersiz bir tanımlayıcı, otomatik olarak artan ve birincil anahtar olarak hizmet eder.
name: Yetkilendirme sisteminde tanımlamak ve referans vermek için kullanılan kuralın benzersiz adı.
type: Kuralın türünü belirtir, yetkilendirme mantığını tanımlamak için 1 veya 2 değerleriyle sınırlıdır.
class: Kuralı belirli bir sınıfa kategorize eder, pozitif bir tam sayı olmasını sağlar.
"allow" izin vermek için, "deny" reddetmek için, "user" eğer grup özelliği erişime izin veren bir grup gösteriyorsa, "rule" bir dizide yerine getirilmesi gereken bir kuralı belirtir, "evaluate-mechanisms" ardından
/System/Library/CoreServices/SecurityAgentPlugins/
veya /Library/Security//SecurityAgentPlugins içindeki bir paket adını içerenmechanisms
dizisi gelir.group: Grup tabanlı yetkilendirme için kural ile ilişkili kullanıcı grubunu belirtir.
kofn: Toplam sayıdan kaç alt kuralın karşılanması gerektiğini belirten "k-of-n" parametresini temsil eder.
timeout: Kural tarafından verilen yetkilendirmenin süresinin dolmadan önceki süreyi tanımlar.
flags: Kuralın davranışını ve özelliklerini değiştiren çeşitli bayrakları içerir.
tries: Güvenliği artırmak için izin verilen yetkilendirme denemelerinin sayısını sınırlar.
version: Kuralın sürümünü sürüm kontrolü ve güncellemeler için takip eder.
created: Kuralın oluşturulduğu zaman damgasını kaydeder, denetim amaçları için.
modified: Kurala yapılan son değişikliğin zaman damgasını saklar.
hash: Kuralın bütünlüğünü sağlamak ve müdahaleyi tespit etmek için kuralın bir hash değerini tutar.
identifier: Kuralın dış referansları için benzersiz bir dize tanımlayıcı, örneğin bir UUID sağlar.
requirement: Kuralın belirli yetkilendirme gereksinimlerini ve mekanizmalarını tanımlayan serileştirilmiş verileri içerir.
comment: Belgelendirme ve açıklık için kural hakkında insan tarafından okunabilir bir açıklama veya yorum sunar.
Örnek
Ayrıca https://www.dssw.co.uk/reference/authorization-rights/authenticate-admin-nonshared/ adresinde authenticate-admin-nonshared
ifadesinin anlamını görmek mümkündür:
Authd
Bu, istemcilerin hassas eylemleri gerçekleştirmesi için yetkilendirme taleplerini alacak bir daemon'dur. XPCServices/
klasörü içinde tanımlanan bir XPC servisi olarak çalışır ve günlüklerini /var/log/authd.log
dosyasına yazar.
Ayrıca, güvenlik aracını kullanarak birçok Security.framework
API'sini test etmek mümkündür. Örneğin, AuthorizationExecuteWithPrivileges
çalıştırarak: security execute-with-privileges /bin/ls
Bu, /usr/libexec/security_authtrampoline /bin/ls
'yi root olarak fork ve exec edecektir; bu da ls'yi root olarak çalıştırmak için bir izin istemi gösterecektir:
Last updated