iOS App Extensions

Support HackTricks

App extensions huongeza kazi za programu kwa kuruhusu kuingiliana na programu nyingine au mfumo, kutoa vipengele au maudhui maalum. Extensions hizi zinajumuisha:

  • Custom Keyboard: Inatoa kibodi ya kipekee katika programu zote, ikibadilisha kibodi ya kawaida ya iOS.

  • Share: Inaruhusu kushiriki kwenye mitandao ya kijamii au na wengine moja kwa moja.

  • Today (Widgets): Inatoa maudhui au inatekeleza kazi haraka kutoka kwa mtazamo wa Leo wa Kituo cha Arifa.

Wakati mtumiaji anaposhiriki na extensions hizi, kama vile kushiriki maandiko kutoka kwa programu mwenyeji, extension inashughulikia ingizo hili ndani ya muktadha wake, ikitumia taarifa zilizoshirikiwa ili kutekeleza kazi yake, kama ilivyoelezwa katika nyaraka za Apple.

Security Considerations

Mambo muhimu ya usalama ni pamoja na:

  • Extensions na programu zinazozishikilia zinawasiliana kupitia mawasiliano ya kati ya mchakato, si moja kwa moja.

  • Today widget ni ya kipekee kwa kuwa inaweza kuomba programu yake kufunguliwa kupitia njia maalum.

  • Upatikanaji wa data iliyoshirikiwa unaruhusiwa ndani ya kontena binafsi, lakini upatikanaji wa moja kwa moja umepigwa marufuku.

  • API fulani, ikiwa ni pamoja na HealthKit, haziruhusiwi kwa extensions za programu, ambazo pia cannot kuanzisha kazi zinazodumu kwa muda mrefu, kufikia kamera, au kipaza sauti, isipokuwa kwa extensions za iMessage.

Static Analysis

Identifying App Extensions

Ili kupata extensions za programu katika msimbo wa chanzo, tafuta NSExtensionPointIdentifier katika Xcode au angalia kifurushi cha programu kwa faili za .appex zinazoashiria extensions. Bila msimbo wa chanzo, tumia grep au SSH kutafuta vitambulisho hivi ndani ya kifurushi cha programu.

Supported Data Types

Angalia faili ya Info.plist ya extension kwa NSExtensionActivationRule ili kubaini aina za data zinazoungwa mkono. Mpangilio huu unahakikisha kuwa aina za data zinazofaa pekee ndizo zinazochochea extension katika programu mwenyeji.

Data Sharing

Kushiriki data kati ya programu na extension yake kunahitaji kontena lililoshirikiwa, lililowekwa kupitia "App Groups" na kufikiwa kupitia NSUserDefaults. Nafasi hii iliyoshirikiwa ni muhimu kwa uhamishaji wa nyuma unaoanzishwa na extensions.

Restricting Extensions

Programu zinaweza kupunguza aina fulani za extensions, hasa kibodi maalum, kuhakikisha usimamizi wa data nyeti unakidhi itifaki za usalama.

Dynamic Analysis

Uchambuzi wa dynamic unahusisha:

  • Inspecting Shared Items: Hook katika NSExtensionContext - inputItems ili kuona aina za data zilizoshirikiwa na asili.

  • Identifying Extensions: Gundua ni extensions zipi zinazosindika data yako kwa kuangalia mifumo ya ndani, kama vile NSXPCConnection.

Zana kama frida-trace zinaweza kusaidia katika kuelewa michakato ya msingi, hasa kwa wale wanaovutiwa na maelezo ya kiufundi ya mawasiliano ya kati ya mchakato.

References

Support HackTricks

Last updated