macOS XPC Connecting Process Check
XPC Verbindende Prosessie Kontroleer
Wanneer 'n verbinding met 'n XPC-diens tot stand gebring word, sal die bediener nagaan of die verbinding toegelaat word. Dit is die kontroles wat gewoonlik uitgevoer word:
Kyk of die verbindende proses onderteken is met 'n Apple-ondertekende sertifikaat (slegs deur Apple uitgereik).
As dit nie geverifieer word nie, kan 'n aanvaller 'n vals sertifikaat skep om enige ander kontrole te pas.
Kyk of die verbindende proses onderteken is met die organisasie se sertifikaat, (span-ID-verifikasie).
As dit nie geverifieer word nie, kan enige ontwikkelaarssertifikaat van Apple gebruik word vir ondertekening en om met die diens te verbind.
Kyk of die verbindende proses 'n korrekte bundel-ID bevat.
As dit nie geverifieer word nie, kan enige instrument onderteken deur dieselfde organisasie gebruik word om met die XPC-diens te kommunikeer.
(4 of 5) Kyk of die verbindende proses 'n korrekte sagteware-weergawe-nommer het.
As dit nie geverifieer word nie, kan 'n ou, onveilige kliënte wat vatbaar is vir prosesinjeksie, gebruik word om selfs met die ander kontroles in plek met die XPC-diens te verbind.
(4 of 5) Kyk of die verbindende proses 'n geharde uitvoertyd het sonder gevaarlike toekennings (soos diegene wat die laai van willekeurige biblioteke of die gebruik van DYLD-omgewingsveranderlikes toelaat).
As dit nie geverifieer word nie, kan die kliënt vatbaar wees vir koderingsinjeksie
Kyk of die verbindende proses 'n toekennings het wat dit in staat stel om met die diens te verbind. Dit is van toepassing op Apple-binêres.
Die verifikasie moet gebaseer wees op die verbindende kliënt se oudit-token in plaas van sy proses-ID (PID) aangesien die eerste PID-hergebruikaanvalle voorkom.
Ontwikkelaars gebruik skaars die oudit-token API-oproep aangesien dit privaat is, sodat Apple dit enige tyd kan verander. Daarbenewens is die gebruik van private API's nie toegelaat in Mac App Store-toepassings nie.
As die metode
processIdentifier
gebruik word, kan dit vatbaar weesxpc_dictionary_get_audit_token
moet eerder gebruik word asxpc_connection_get_audit_token
, aangesien die laaste ook vatbaar kan wees in sekere situasies.
Kommunikasie-aanvalle
Vir meer inligting oor die PID-hergebruikaanval, kyk na:
pagemacOS PID ReuseVir meer inligting oor die xpc_connection_get_audit_token
-aanval, kyk na:
Trustcache - Voorkoming van Afwaartse Aanvalle
Trustcache is 'n verdedigingsmetode wat in Apple Silicon-masjiene ingevoer is en 'n databasis van CDHSAH van Apple-binêres stoor, sodat slegs toegelate, onveranderde binêres uitgevoer kan word. Dit voorkom die uitvoering van afwaartse weergawes.
Kodevoorbeelde
Die bediener sal hierdie verifikasie implementeer in 'n funksie genaamd shouldAcceptNewConnection
.
Die objek NSXPCConnection het 'n privaat eienskap auditToken
(die een wat gebruik moet word maar kan verander) en 'n publieke eienskap processIdentifier
(die een wat nie gebruik moet word nie).
Die verbindende proses kan geverifieer word met iets soos:
As 'n ontwikkelaar nie die weergawe van die kliënt wil nagaan nie, kan hy ten minste nagaan of die kliënt vatbaar is vir prosesinjeksie:
Last updated