macOS Security Protections
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Gatekeeper se obično koristi da se odnosi na kombinaciju Quarantine + Gatekeeper + XProtect, 3 macOS sigurnosna modula koja će pokušati da spreče korisnike da izvršavaju potencijalno zloćudni softver preuzet.
Više informacija u:
macOS Gatekeeper / Quarantine / XProtectMacOS Sandbox ograničava aplikacije koje se izvršavaju unutar sandboks-a na dozvoljene radnje specificirane u Sandbox profilu sa kojim aplikacija radi. Ovo pomaže da se osigura da aplikacija pristupa samo očekivanim resursima.
macOS SandboxTCC (Transparency, Consent, and Control) je sigurnosni okvir. Dizajniran je da upravlja dozvolama aplikacija, posebno regulisanjem njihovog pristupa osetljivim funkcijama. Ovo uključuje elemente kao što su usluge lokacije, kontakti, fotografije, mikrofon, kamera, pristupačnost i pristup celom disku. TCC osigurava da aplikacije mogu pristupiti ovim funkcijama samo nakon dobijanja eksplicitne saglasnosti korisnika, čime se jača privatnost i kontrola nad ličnim podacima.
macOS TCCOgraničenja pokretanja u macOS-u su sigurnosna funkcija koja reguliše inicijaciju procesa definišući ko može pokrenuti proces, kako i odakle. Uvedena u macOS Ventura, kategorizuju sistemske binarne datoteke u kategorije ograničenja unutar trust cache. Svaka izvršna binarna datoteka ima postavljena pravila za svoje pokretanje, uključujući self, parent i responsible ograničenja. Proširena na aplikacije trećih strana kao Environment Constraints u macOS Sonoma, ove funkcije pomažu u ublažavanju potencijalnih sistemskih eksploatacija regulisanjem uslova pokretanja procesa.
macOS Launch/Environment Constraints & Trust CacheAlat za uklanjanje zloćudnog softvera (MRT) je još jedan deo sigurnosne infrastrukture macOS-a. Kao što ime sugeriše, glavna funkcija MRT-a je da ukloni poznati zloćudni softver sa zaraženih sistema.
Kada se zloćudni softver otkrije na Mac-u (bilo putem XProtect-a ili nekim drugim sredstvima), MRT se može koristiti za automatsko uklanjanje zloćudnog softvera. MRT radi tiho u pozadini i obično se pokreće svaki put kada se sistem ažurira ili kada se preuzima nova definicija zloćudnog softvera (izgleda da su pravila koja MRT ima za otkrivanje zloćudnog softvera unutar binarne datoteke).
Dok su i XProtect i MRT deo sigurnosnih mera macOS-a, oni obavljaju različite funkcije:
XProtect je preventivni alat. Proverava datoteke dok se preuzimaju (putem određenih aplikacija), i ako otkrije bilo koje poznate tipove zloćudnog softvera, sprečava otvaranje datoteke, čime sprečava zloćudni softver da inficira vaš sistem u prvom redu.
MRT, s druge strane, je reaktivni alat. Deluje nakon što je zloćudni softver otkriven na sistemu, sa ciljem da ukloni problematični softver kako bi očistio sistem.
Aplikacija MRT se nalazi u /Library/Apple/System/Library/CoreServices/MRT.app
macOS sada obaveštava svaki put kada alat koristi dobro poznatu tehniku za persistenciju izvršavanja koda (kao što su Login Items, Daemons...), tako da korisnik bolje zna koji softver persistira.
Ovo se pokreće sa daemon-om lociranim u /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementd
i agentom u /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Support/BackgroundTaskManagementAgent.app
Način na koji backgroundtaskmanagementd
zna da je nešto instalirano u persistentnom folderu je dobijanje FSEvents i kreiranje nekih handler-a za njih.
Štaviše, postoji plist datoteka koja sadrži dobro poznate aplikacije koje često persistiraju, a koju održava Apple, locirana u: /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/attributions.plist
Moguće je enumerisati sve konfigurirane pozadinske stavke koristeći Apple cli alat:
Pored toga, takođe je moguće prikazati ove informacije pomoću DumpBTM.
Ove informacije se čuvaju u /private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm
i Terminalu je potrebna FDA.
Kada se pronađe nova perzistencija, događa se događaj tipa ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD
. Dakle, bilo koji način da se spreči slanje ovog događaja ili da agent ne obavesti korisnika pomoći će napadaču da zaobiđe BTM.
Resetovanje baze podataka: Pokretanje sledeće komande resetovaće bazu podataka (trebalo bi da je ponovo izgradi od nule), međutim, iz nekog razloga, nakon pokretanja ovoga, nema novih perzistencija koje će biti obaveštene dok se sistem ne restartuje.
root je potreban.
Zaustavite agenta: Moguće je poslati signal za zaustavljanje agentu tako da neće obaveštavati korisnika kada se pronađu nova otkrića.
Greška: Ako proces koji je stvorio postojanost postoji brzo nakon njega, demon će pokušati da dobije informacije o njemu, neće uspeti i neće moći da pošalje događaj koji ukazuje na to da nova stvar postojano postoji.
Reference i više informacija o BTM:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)