macOS Security Protections

AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Red Team Expert) ile!

HackTricks'ı desteklemenin diğer yolları:

Gatekeeper

Gatekeeper genellikle Karantina + Gatekeeper + XProtect kombinasyonuna atıfta bulunmak için kullanılır, bu 3 macOS güvenlik modülü, kullanıcıların potansiyel olarak zararlı yazılımları çalıştırmasını engellemeye çalışacaktır.

Daha fazla bilgi için:

pagemacOS Gatekeeper / Quarantine / XProtect

İşlem Sınırlayıcılar

SIP - Sistem Bütünlüğü Koruması

pagemacOS SIP

Kum Havuzu

MacOS Kum Havuzu, kum havuzu profili ile çalışan uygulamaların yalnızca beklenen kaynaklara erişeceğinden emin olur, bu da uygulamanın yalnızca izin verilen eylemleri gerçekleştireceğini sağlar.

pagemacOS Sandbox

TCC - Şeffaflık, Onay ve Kontrol

TCC (Şeffaflık, Onay ve Kontrol) bir güvenlik çerçevesidir. Uygulamaların izinlerini yönetmek için tasarlanmıştır, özellikle hassas özelliklere erişimlerini düzenleyerek. Bu, konum hizmetleri, kişiler, fotoğraflar, mikrofon, kamera, erişilebilirlik ve tam disk erişimi gibi unsurları içerir. TCC, uygulamaların bu özelliklere yalnızca açık kullanıcı onayı aldıktan sonra erişebilmelerini sağlar, böylece gizliliği ve kişisel veriler üzerinde kontrolü güçlendirir.

pagemacOS TCC

Başlatma/Çevre Kısıtlamaları ve Güven Önbelleği

MacOS'taki Başlatma kısıtlamaları, bir işlemi başlatmayı düzenleyen bir güvenlik özelliğidir, bir işlemi kimin, nasıl ve nereden başlatabileceğini tanımlayarak. macOS Ventura'da tanıtılan bir güven önbelleği içinde sistem ikili dosyalarını kısıtlama kategorilerine ayırır. Her yürütülebilir ikili dosya için başlatma kuralları belirlenir, kendisi, ebeveyni ve sorumlu kısıtlamaları dahil. macOS Sonoma'da üçüncü taraf uygulamalar için Çevre Kısıtlamaları olarak genişletilen bu özellikler, işlem başlatma koşullarını yöneterek potansiyel sistem açıklarını azaltmaya yardımcı olur.

pagemacOS Launch/Environment Constraints & Trust Cache

MRT - Zararlı Yazılım Kaldırma Aracı

Zararlı Yazılım Kaldırma Aracı (MRT), macOS'ın güvenlik altyapısının bir parçasıdır. Adından da anlaşılacağı gibi, MRT'nin temel işlevi, enfekte sistemlerden bilinen zararlı yazılımları kaldırmaktır.

Bir Mac'te zararlı yazılım tespit edildiğinde (XProtect tarafından veya başka bir şekilde), MRT otomatik olarak zararlı yazılımı kaldırmak için kullanılabilir. MRT genellikle arka planda sessizce çalışır ve genellikle sistem güncellendiğinde veya yeni bir zararlı yazılım tanımı indirildiğinde çalışır (zararlı yazılımı tespit etmek için MRT'nin kurallarının uygulandığı gibi görünüyor).

XProtect ve MRT, macOS'ın güvenlik önlemlerinin bir parçası olsalar da, farklı işlevleri yerine getirirler:

  • XProtect, bir önleyici araçtır. Dosyaları indirildikçe (belirli uygulamalar aracılığıyla) kontrol eder ve bilinen herhangi bir tür zararlı yazılım tespit ederse, dosyanın açılmasını engeller, böylece zararlı yazılımın sisteminize bulaşmasını engeller.

  • MRT ise reaktif bir araçtır. Sistemde zararlı yazılım tespit edildikten sonra çalışır ve sistemi temizlemek için suçlu yazılımı kaldırmayı hedefler.

MRT uygulaması /Library/Apple/System/Library/CoreServices/MRT.app konumundadır.

Arka Plan Görevleri Yönetimi

macOS, artık bir aracın kod yürütmesini sürdürmek için bilinen bir teknik kullandığında her zaman uyarır (örneğin, Giriş Öğeleri, Daemonlar...), böylece kullanıcı daha iyi hangi yazılımın sürekli olduğunu bilir.

Bu, /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementd konumunda bulunan bir daemon ile çalışır ve /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Support/BackgroundTaskManagementAgent.app konumunda bir ajan içerir.

backgroundtaskmanagementd'nin bir şeyin sürekli bir klasöre yüklendiğini bilmesinin yolu, FSEvents'leri alması ve bunlar için bazı işleyiciler oluşturmasıdır.

Ayrıca, Apple tarafından sık ​​sık sürekli olan tanınmış uygulamaları içeren bir plist dosyası bulunur: /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/attributions.plist

[...]
"us.zoom.ZoomDaemon" => {
"AssociatedBundleIdentifiers" => [
0 => "us.zoom.xos"
]
"Attribution" => "Zoom"
"Program" => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
"ProgramArguments" => [
0 => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
]
"TeamIdentifier" => "BJ4HAAB9B3"
}
[...]

Sıralama

Apple cli aracını çalıştırarak yapılandırılmış tüm arka plan öğelerini sıralamak mümkündür:

# The tool will always ask for the users password
sfltool dumpbtm

Ayrıca, bu bilgileri DumpBTM ile de listeleyebilirsiniz.

# You need to grant the Terminal Full Disk Access for this to work
chmod +x dumpBTM
xattr -rc dumpBTM # Remove quarantine attr
./dumpBTM

Bu bilgi /private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm içinde depolanmaktadır ve Terminal'in FDA'ya ihtiyacı vardır.

BTM ile Oynama

Yeni bir kalıcılık bulunduğunda ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD türünde bir olay meydana gelir. Dolayısıyla, bu olayın gönderilmesini veya ajanın kullanıcıyı uyarısını engellemenin bir yolu bir saldırganın BTM'yi atlamasına yardımcı olacaktır.

  • Veritabanını sıfırlama: Aşağıdaki komutu çalıştırmak veritabanını sıfırlayacaktır (temelden yeniden oluşturmalıdır), ancak bu komutu çalıştırdıktan sonra sistem yeniden başlatılana kadar yeni kalıcılıklar uyarılmayacaktır.

  • root yetkisi gereklidir.

# Reset the database
sfltool resettbtm
  • Ajanı Durdurun: Ajan'a durdurma sinyali göndermek mümkündür, böylece yeni tespitler bulunduğunda kullanıcıya uyarı vermez.

# Get PID
pgrep BackgroundTaskManagementAgent
1011

# Stop it
kill -SIGSTOP 1011

# Check it's stopped (a T means it's stopped)
ps -o state 1011
T
  • Hata: Eğer kalıcılığı oluşturan işlem hemen ardından hızlı bir şekilde sona ererse, daemon onun hakkında bilgi almaya çalışacak, başarısız olacak ve yeni bir şeyin kalıcı olduğunu gösteren olayı gönderemeyecek.

Referanslar ve BTM hakkında daha fazla bilgi:

AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Last updated