macOS Gatekeeper / Quarantine / XProtect
Gatekeeper
Gatekeeper is 'n sekuriteitskenmerk wat ontwikkel is vir Mac-bedryfstelsels, ontwerp om te verseker dat gebruikers slegs vertroude sagteware op hul stelsels hardloop. Dit funksioneer deur die sagteware te valideer wat 'n gebruiker aflaai en probeer oopmaak van bronne buite die App Store, soos 'n program, 'n invoegtoepassing, of 'n installeerderpakket.
Die sleutelmeganisme van Gatekeeper lê in sy verifikasieproses. Dit kontroleer of die afgelaaide sagteware deur 'n erkenbare ontwikkelaar onderteken is, wat die egtheid van die sagteware verseker. Verder bepaal dit of die sagteware deur Apple genoteer is, wat bevestig dat dit vry is van bekende skadelike inhoud en nie ná notering getakel is nie.
Daarbenewens versterk Gatekeeper gebruikersbeheer en -sekuriteit deur gebruikers te vra om die oopmaak van afgelaaide sagteware goed te keur vir die eerste keer. Hierdie beskerming help voorkom dat gebruikers moontlik skadelike uitvoerbare kode per ongeluk hardloop wat hulle dalk vir 'n onskadelike databestand gehou het.
Aansoekhandtekeninge
Aansoekhandtekeninge, ook bekend as kodehandtekeninge, is 'n kritieke komponent van Apple se sekuriteitsinfrastruktuur. Dit word gebruik om die identiteit van die sagteware-skrywer (die ontwikkelaar) te verifieer en om te verseker dat die kode nie sedert die laaste ondertekening getakel is nie.
So werk dit:
Onderteken die Aansoek: Wanneer 'n ontwikkelaar gereed is om hul aansoek te versprei, onderteken hulle die aansoek met 'n privaatsleutel. Hierdie privaatsleutel is geassosieer met 'n sertifikaat wat Apple aan die ontwikkelaar uitreik wanneer hulle inskryf vir die Apple-ontwikkelaarsprogram. Die ondertekeningsproses behels die skep van 'n kriptografiese hasj van alle dele van die aansoek en die versleuteling van hierdie hasj met die ontwikkelaar se privaatsleutel.
Versprei die Aansoek: Die ondertekende aansoek word dan saam met die ontwikkelaar se sertifikaat, wat die ooreenstemmende openbare sleutel bevat, aan gebruikers versprei.
Verifieer die Aansoek: Wanneer 'n gebruiker die aansoek aflaai en probeer hardloop, gebruik hul Mac-bedryfstelsel die openbare sleutel van die ontwikkelaar se sertifikaat om die hasj te ontsluit. Dit bereken dan die hasj opnuut op grond van die huidige toestand van die aansoek en vergelyk dit met die ontslote hasj. As hulle ooreenstem, beteken dit dat die aansoek nie gewysig is sedert die ontwikkelaar dit onderteken het nie, en die stelsel laat die aansoek toe om te hardloop.
Aansoekhandtekeninge is 'n noodsaaklike deel van Apple se Gatekeeper-tegnologie. Wanneer 'n gebruiker probeer om 'n aansoek wat van die internet afgelaai is, oop te maak, verifieer Gatekeeper die aansoekhandtekening. As dit onderteken is met 'n sertifikaat wat deur Apple aan 'n bekende ontwikkelaar uitgereik is en die kode nie getakel is nie, laat Gatekeeper die aansoek toe om te hardloop. Andersins blokkeer dit die aansoek en waarsku die gebruiker.
Vanaf macOS Catalina kontroleer Gatekeeper ook of die aansoek deur Apple genoteer is, wat 'n ekstra laag van sekuriteit toevoeg. Die noteringsproses kontroleer die aansoek vir bekende sekuriteitsprobleme en skadelike kode, en as hierdie kontroles slaag, voeg Apple 'n kaartjie by die aansoek wat Gatekeeper kan verifieer.
Kontroleer Handtekeninge
Wanneer jy 'n malwaremonster ondersoek, moet jy altyd die handtekening van die binêre lêer kontroleer, aangesien die ontwikkelaar wat dit onderteken het, moontlik reeds met malware verband hou.
Notarisering
Apple se notariseringproses dien as 'n addisionele beskermingsmaatreël om gebruikers te beskerm teen potensieel skadelike sagteware. Dit behels die ontwikkelaar wat hul aansoek vir ondersoek indien deur Apple se Notary-diens, wat nie verwar moet word met App Review nie. Hierdie diens is 'n geoutomatiseerde stelsel wat die ingediende sagteware ondersoek vir die teenwoordigheid van skadelike inhoud en enige potensiële probleme met kode-ondertekening.
Indien die sagteware hierdie inspeksie slaag sonder om enige bekommernisse te veroorsaak, genereer die Notary-diens 'n notariseringstiket. Die ontwikkelaar moet hierdie tikkie dan aan hul sagteware heg, 'n proses wat bekend staan as 'stapling.' Verder word die notariseringstiket ook aanlyn gepubliseer waar Gatekeeper, Apple se sekuriteitstegnologie, dit kan bereik.
Met die gebruiker se eerste installasie of uitvoering van die sagteware, informeer die bestaan van die notariseringstiket - of dit nou aan die uitvoerbare lêer geheg is of aanlyn gevind word - Gatekeeper dat die sagteware deur Apple genotariseer is. Gevolglik vertoon Gatekeeper 'n beskrywende boodskap in die aanvanklike aanvangsdialog, wat aandui dat die sagteware deur Apple vir skadelike inhoud nagegaan is. Hierdie proses verhoog dus die gebruiker se vertroue in die veiligheid van die sagteware wat hulle op hul stelsels installeer of uitvoer.
Enumerating GateKeeper
GateKeeper is sowel veral sekuriteitskomponente wat voorkom dat onbetroubare programme uitgevoer word asook een van die komponente.
Dit is moontlik om die status van GateKeeper te sien met:
Let wel dat GateKeeper-handtekeningkontroles slegs op lêers met die Quarantine-eienskap uitgevoer word, nie op elke lêer nie.
GateKeeper sal nagaan of 'n binêre lêer uitgevoer kan word volgens die voorkeure & die handtekening:
Die databasis wat hierdie konfigurasie behou, is geleë in /var/db/SystemPolicy
. Jy kan hierdie databasis as 'n root gebruiker nagaan met:
Merk op hoe die eerste reël geëindig het in "App Store" en die tweede een in "Developer ID" en dat dit in die vorige afbeelding geaktiveer was om programme van die App Store en geïdentifiseerde ontwikkelaars uit te voer. As jy daardie instelling na App Store verander, sal die "Notarized Developer ID" reëls verdwyn.
Daar is ook duisende reëls van tipe GKE:
Dit is hashs wat afkomstig is van /var/db/SystemPolicyConfiguration/gke.bundle/Contents/Resources/gke.auth
, /var/db/gke.bundle/Contents/Resources/gk.db
en /var/db/gkopaque.bundle/Contents/Resources/gkopaque.db
Of jy kan die vorige inligting lys met:
Die opsies --master-disable
en --global-disable
van spctl
sal hierdie handtekeningkontroles heeltemal deaktiveer:
Wanneer heeltemal geaktiveer, sal 'n nuwe opsie verskyn:
Dit is moontlik om te kontroleer of 'n Toepassing deur GateKeeper toegelaat sal word met:
Dit is moontlik om nuwe reëls by GateKeeper te voeg om die uitvoering van sekere programme toe te staan met:
Karantynlêers
Met die aflaai van 'n aansoek of lêer, heg spesifieke macOS-aansoeke soos webblaaier of e-poskliënte 'n uitgebreide lêereienskap, algemeen bekend as die "karantynvlag," aan die afgelaaide lêer. Hierdie eienskap tree op as 'n sekuriteitsmaatreël om die lêer te merk as afkomstig van 'n onbetroubare bron (die internet) en moontlik risiko's te dra. Nie alle aansoeke heg egter hierdie eienskap nie, byvoorbeeld gewone BitTorrent-klient sagteware verbygaan gewoonlik hierdie proses.
Die teenwoordigheid van 'n karantynvlag dui macOS se Gatekeeper-sekuriteitsfunksie aan wanneer 'n gebruiker probeer om die lêer uit te voer.
In die geval waar die karantynvlag nie teenwoordig is (soos met lêers wat via sommige BitTorrent-kliënte afgelaai is), mag Gatekeeper se kontroles nie uitgevoer word nie. Gebruikers moet dus versigtig wees wanneer hulle lêers van minder veilige of onbekende bronne oopmaak.
Die geldigheid van kodesignatures nagaan is 'n hulpbron-intensiewe proses wat die genereer van kriptografiese hassies van die kode en al sy gebundelde bronne insluit. Verder behels die nagaan van sertifikaatgeldigheid 'n aanlynkontrole na Apple se bedieners om te sien of dit herroep is nadat dit uitgereik is. Om hierdie redes is 'n volledige kodesignatuur- en notariseringskontrole onprakties om elke keer uit te voer wanneer 'n aansoek geopen word.
Daarom word hierdie kontroles slegs uitgevoer wanneer aansoeke met die gekwarantynvlag uitgevoer word.
Hierdie eienskap moet deur die aansoek wat die lêer skep/aflaai ingestel word.
Nietemin sal lêers wat gesandbox is hierdie eienskap aan elke lêer wat hulle skep, instel. En nie-gesandboxte programme kan dit self instel, of die LSFileQuarantineEnabled sleutel in die Info.plist spesifiseer wat die stelsel die com.apple.quarantine
uitgebreide eienskap op die geskepte lêers sal instel,
Verder word alle lêers wat deur 'n proses geskep word wat qtn_proc_apply_to_self
aanroep, gekwarantyn. Of die API qtn_file_apply_to_path
voeg die karantyneienskap by 'n gespesifiseerde lêerpad.
Dit is moontlik om die status te kontroleer en in/uit te skakel (root benodig) met:
Jy kan ook vind of 'n lêer die karantyn uitgebreide attribuut het met:
Kontroleer die waarde van die uitgebreide kenmerke en vind uit watter app die karantynkenmerk geskryf het met:
Eintlik kan 'n proses "kwarentynvlaggies aan die lêers wat dit skep, stel" (ek het probeer om die USER_APPROVED-vlag in 'n geskepte lêer toe te pas, maar dit sal dit nie toepas nie):
Last updated