iOS App Extensions

Support HackTricks

ऐप एक्सटेंशन ऐप्स की कार्यक्षमता को बढ़ाते हैं, जिससे उन्हें अन्य ऐप्स या सिस्टम के साथ इंटरैक्ट करने की अनुमति मिलती है, कस्टम सुविधाएँ या सामग्री प्रदान करते हैं। इन एक्सटेंशनों में शामिल हैं:

  • कस्टम कीबोर्ड: सभी ऐप्स में एक अद्वितीय कीबोर्ड प्रदान करता है, जो डिफ़ॉल्ट iOS कीबोर्ड को बदलता है।

  • शेयर: सामाजिक नेटवर्क या दूसरों के साथ सीधे साझा करने की अनुमति देता है।

  • आज (विजेट): नोटिफिकेशन सेंटर के आज दृश्य से जल्दी से सामग्री प्रदान करता है या कार्य करता है।

जब एक उपयोगकर्ता इन एक्सटेंशनों के साथ संलग्न होता है, जैसे कि एक होस्ट ऐप से पाठ साझा करना, तो एक्सटेंशन इस इनपुट को अपने संदर्भ में संसाधित करता है, साझा की गई जानकारी का उपयोग करके अपना कार्य करता है, जैसा कि एप्पल के दस्तावेज़ में विस्तृत किया गया है।

सुरक्षा विचार

मुख्य सुरक्षा पहलुओं में शामिल हैं:

  • एक्सटेंशन और उनके समाहित ऐप्स इंटर-प्रोसेस संचार के माध्यम से संवाद करते हैं, सीधे नहीं।

  • आज विजेट अद्वितीय है क्योंकि यह एक विशिष्ट विधि के माध्यम से अपने ऐप को खोलने का अनुरोध कर सकता है।

  • साझा डेटा तक पहुँच एक निजी कंटेनर के भीतर अनुमति है, लेकिन सीधी पहुँच प्रतिबंधित है।

  • कुछ APIs, जैसे कि HealthKit, ऐप एक्सटेंशनों के लिए बंद हैं, जो लंबे समय तक चलने वाले कार्यों को शुरू नहीं कर सकते, कैमरा या माइक्रोफोन तक पहुँच नहीं कर सकते, सिवाय iMessage एक्सटेंशनों के।

स्थैतिक विश्लेषण

ऐप एक्सटेंशनों की पहचान करना

स्रोत कोड में ऐप एक्सटेंशनों को खोजने के लिए, Xcode में NSExtensionPointIdentifier के लिए खोजें या एक्सटेंशन को इंगित करने वाले .appex फ़ाइलों के लिए ऐप बंडल का निरीक्षण करें। बिना स्रोत कोड के, grep या SSH का उपयोग करके ऐप बंडल के भीतर इन पहचानकर्ताओं को खोजें।

समर्थित डेटा प्रकार

समर्थित डेटा प्रकारों की पहचान के लिए एक्सटेंशन के Info.plist फ़ाइल में NSExtensionActivationRule की जाँच करें। यह सेटअप सुनिश्चित करता है कि केवल संगत डेटा प्रकार होस्ट ऐप्स में एक्सटेंशन को सक्रिय करते हैं।

डेटा साझा करना

एक ऐप और उसके एक्सटेंशन के बीच डेटा साझा करने के लिए एक साझा कंटेनर की आवश्यकता होती है, जिसे "ऐप समूहों" के माध्यम से सेट किया जाता है और NSUserDefaults के माध्यम से पहुँचा जाता है। यह साझा स्थान एक्सटेंशनों द्वारा शुरू किए गए बैकग्राउंड ट्रांसफर के लिए आवश्यक है।

एक्सटेंशनों को प्रतिबंधित करना

ऐप्स कुछ एक्सटेंशन प्रकारों, विशेष रूप से कस्टम कीबोर्ड, को प्रतिबंधित कर सकते हैं, यह सुनिश्चित करते हुए कि संवेदनशील डेटा हैंडलिंग सुरक्षा प्रोटोकॉल के साथ मेल खाती है।

गतिशील विश्लेषण

गतिशील विश्लेषण में शामिल हैं:

  • साझा आइटमों का निरीक्षण करना: साझा डेटा प्रकारों और मूलों को देखने के लिए NSExtensionContext - inputItems में हुक करें।

  • एक्सटेंशनों की पहचान करना: आंतरिक तंत्र, जैसे NSXPCConnection को देख कर यह पता करें कि कौन से एक्सटेंशन आपके डेटा को संसाधित करते हैं।

frida-trace जैसे उपकरण अंतर्निहित प्रक्रियाओं को समझने में मदद कर सकते हैं, विशेष रूप से उन लोगों के लिए जो इंटर-प्रोसेस संचार के तकनीकी विवरण में रुचि रखते हैं।

संदर्भ

Support HackTricks

Last updated