macOS XPC Connecting Process Check
XPC Connecting Process Check
Wakati muunganisho unapoanzishwa na huduma ya XPC, seva itakagua ikiwa muunganisho unaruhusiwa. Hizi ndizo ukaguzi ambao kawaida hufanywa:
Angalia ikiwa mchakato unaounganisha umeandikwa na cheti kilichosainiwa na Apple (ambacho kinatolewa tu na Apple).
Ikiwa hii haijathibitishwa, mshambuliaji anaweza kuunda cheti bandia ili kufanana na ukaguzi mwingine wowote.
Angalia ikiwa mchakato unaounganisha umeandikwa na cheti cha shirika, (uthibitisho wa kitambulisho cha timu).
Ikiwa hii haijathibitishwa, cheti chochote cha mende kutoka Apple kinaweza kutumika kwa kusaini, na kuungana na huduma.
Angalia ikiwa mchakato unaounganisha una kitambulisho sahihi cha kifurushi.
Ikiwa hii haijathibitishwa, chombo chochote kilichosainiwa na shirika hilo hilo kinaweza kutumika kuingiliana na huduma ya XPC.
(4 au 5) Angalia ikiwa mchakato unaounganisha una nambari sahihi ya toleo la programu.
Ikiwa hii haijathibitishwa, wateja wa zamani, wasio salama, walio hatarini kwa sindano ya mchakato wanaweza kutumika kuungana na huduma ya XPC hata na ukaguzi mwingine ukiwa mahali.
(4 au 5) Angalia ikiwa mchakato unaounganisha una mazingira ya runtime yaliyohakikishwa bila ruhusa hatari (kama zile zinazoruhusu kupakia maktaba za kawaida au kutumia DYLD env vars)
Ikiwa hii haijathibitishwa, mteja anaweza kuwa hatari kwa sindano ya msimbo
Angalia ikiwa mchakato unaounganisha una ruhusa inayoruhusu kuungana na huduma. Hii inatumika kwa binaries za Apple.
Uthibitisho lazima uwe kulingana na tokeni ya ukaguzi ya mteja badala ya kitambulisho chake cha mchakato (PID) kwani ya kwanza inazuia shambulio la upya la PID.
Wandevu hawatumii mara kwa mara tokeni ya ukaguzi API wito kwani ni binafsi, hivyo Apple inaweza kubadilisha wakati wowote. Zaidi ya hayo, matumizi ya API binafsi hayaruhusiwi katika programu za Duka la Mac.
Ikiwa njia
processIdentifier
inatumika, inaweza kuwa hatarixpc_dictionary_get_audit_token
inapaswa kutumika badala yaxpc_connection_get_audit_token
, kwani ya mwisho inaweza pia kuwa hatari katika hali fulani.
Communication Attacks
Kwa maelezo zaidi kuhusu shambulio la upya la PID angalia:
macOS PID ReuseKwa maelezo zaidi xpc_connection_get_audit_token
shambulio angalia:
Trustcache - Downgrade Attacks Prevention
Trustcache ni njia ya kujihami iliyowekwa katika mashine za Apple Silicon ambayo inahifadhi hifadhidata ya CDHSAH ya binaries za Apple ili tu binaries zisizobadilishwa zinazoruhusiwa ziweze kutekelezwa. Hii inazuia utekelezaji wa toleo la kudharau.
Code Examples
Seva itatekeleza uthibitisho huu katika kazi inayoitwa shouldAcceptNewConnection
.
Kitu NSXPCConnection kina mali ya faragha auditToken
(ile ambayo inapaswa kutumika lakini inaweza kubadilika) na mali ya umma processIdentifier
(ile ambayo haipaswi kutumika).
Mchakato unaounganisha unaweza kuthibitishwa kwa kitu kama:
Ikiwa mendelevu hataki kuangalia toleo la mteja, anaweza kuangalia kwamba mteja si hatarini kwa sindano ya mchakato angalau:
Last updated