
एंड्रॉइड ऐप्स और जावा मिडलवेयर के लिए ओपन-सोर्स इंस्ट्रुमेंटेशन फ्रेमवर्क, जो ART कंपाइलर के माध्यम से डिवाइस पर संकलन के दौरान कोड को संशोधित करता है। ऐप सिग्नेचर संरक्षित रखता है और मॉड्यूल-आधारित सुरक्षा विश्लेषण को सक्षम करता है।
ARTist एंड्रॉइड ऐप्स और जावा मिडलवेयर के लिए एक लचीला ओपन सोर्स इंस्ट्रुमेंटेशन फ्रेमवर्क है। यह एंड्रॉइड रनटाइम (ART) कंपाइलर पर आधारित है और डिवाइस पर संकलन के दौरान कोड को संशोधित करता है। मौजूदा इंस्ट्रुमेंटेशन फ्रेमवर्क के विपरीत, यह एप्लिकेशन के मूल हस्ताक्षर को संरक्षित करता है और निर्देश स्तर पर काम करता है।
यह रिपॉजिटरी ARTist इकोसिस्टम का मूल है, इंस्ट्रुमेंटेशन फ्रेमवर्क का वास्तविक कार्यान्वयन। इसे AOSP के Android Runtime (ART) प्रोजेक्ट में एकीकृत किया गया है ताकि ऑन-डिवाइस dex2oat कंपाइलर का एक विशेष संस्करण बनाया जा सके और डेवलपर्स को एक मॉड्यूल API प्रदान करता है जो कंपाइलर के मध्यवर्ती प्रतिनिधित्व में प्रदान किए गए लक्ष्य के पूर्ण जावा स्रोत कोड पर पूर्ण नियंत्रण देता है। ARTist अंतिम उपयोगकर्ताओं को पहले से उपलब्ध मॉड्यूल का उपयोग करने, डेवलपर्स को ऐप्स और एंड्रॉइड सिस्टम के लिए अपने स्वयं के इंस्ट्रुमेंटेशन बनाने और शोधकर्ताओं को ऐप और सिस्टम व्यवहार का विश्लेषण और विस्तार करने की अनुमति देता है।
ARTist को दो अलग-अलग तरीकों से तैनात किया जा सकता है: पहला, हमारे ArtistGui प्रोजेक्ट का उपयोग करके एक नियमित एप्लिकेशन के रूप में जो रूटेड डिवाइसों पर गैर-आक्रामक ऐप इंस्ट्रुमेंटेशन की अनुमति देता है, या दूसरा, कस्टम ROM के लिए एक सिस्टम कंपाइलर के रूप में जहां यह अतिरिक्त रूप से सिस्टम सर्वर (पैकेज मैनेजर सर्विस, एक्टिविटी मैनेजर सर्विस, ...) और एंड्रॉइड फ्रेमवर्क क्लासेस (boot.oat) को इंस्ट्रूमेंट कर सकता है। यह मार्शमैलो 6.0 के बाद (और सहित) एंड्रॉइड संस्करणों का समर्थन करता है।
For detailed tutorials and more in-depth information on the ARTist ecosystem, have a look at our official documentation and join our Gitter chat.
आपको कोड में ऐसे गार्ड मिल सकते हैं जो विशेष एंड्रॉइड संस्करणों की जांच करते हैं क्योंकि हमारे द्वारा आंतरिक रूप से उपयोग किए जाने वाले कुछ API समय के साथ बदल सकते हैं। ART प्रोजेक्ट लगातार बदल रहा है, इसलिए हम सभी संस्करण-निर्भर कोड को या तो अपने ART fork में अलग करने का प्रयास करते हैं या इसे अधिक सुविधाजनक, संस्करण-स्वतंत्र API के पीछे छिपाते हैं। समग्र लक्ष्य मॉड्यूल डेवलपर्स से संस्करण-निर्भरता को छिपाना है ताकि परिणामी मॉड्यूल ARTist द्वारा समर्थित सभी एंड्रॉइड रिलीज़ के साथ संगत हों।
वर्तमान प्री-बीटा संस्करण में, मॉड्यूल modules फ़ोल्डर के अंतर्गत बनाए जाते हैं और ARTist के साथ संकलित किए जाते हैं। हालांकि, हमारा आगामी बीटा रिलीज़ (नीचे देखें) एक समर्पित SDK प्रदान करेगा जो ARTist स्रोत कोड से स्वतंत्र रूप से मॉड्यूल विकसित करने की अनुमति देता है, इसलिए अब AOSP की आवश्यकता नहीं है और आपको मॉड्यूल को हार्डकोड करने की आवश्यकता नहीं है बल्कि गतिशील रूप से चुन सकते हैं कि किसी विशेष लक्ष्य के लिए किसका उपयोग करना है।
यदि आप केवल अपने स्वयं के इंस्ट्रुमेंटेशन बनाना चाहते हैं, तो आपको ARTist बनाने की चिंता करने की आवश्यकता नहीं है। बस ऊपर दिए गए स्पष्टीकरण पर ध्यान दें। यदि, हालांकि, आप इंस्ट्रुमेंटेशन फ्रेमवर्क पर ही काम करना चाहते हैं, तो निम्नलिखित आपको शुरू करने में मदद करेगा:
ARTist ART कंपाइलर dex2oat का एक विस्तार है, इसलिए इसे हमारे अनुकूलित ART fork में एक उपमॉड्यूल के रूप में एम्बेड किया गया है। ARTist बनाने के लिए, आपको AOSP के भाग के रूप में ART fork बनाना होगा। हम जिसे dex2oat का ARTist संस्करण कहते हैं, वह वास्तव में dex2oat बाइनरी और कई लाइब्रेरी (जैसे, libart-compiler) है जो एक साथ हमारे इंस्ट्रूमेंटिंग कंपाइलर का निर्माण करते हैं। ArtistGui प्रोजेक्ट में ART और ARTist बनाने के लिए तैयार स्क्रिप्ट हैं, और परिणामी बाइनरी और लाइब्रेरी को ArtistGui के सही फ़ोल्डरों में कॉपी करके उन्हें परीक्षण के लिए एक डिवाइस पर भेजा जा सकता है।
हम जल्द ही बीटा चरण में प्रवेश करने वाले हैं, जो पूरे ARTist इकोसिस्टम में बहुत सारे बदलाव लाएगा, जिसमें सरलीकृत मॉड्यूल विकास के लिए एक समर्पित ARTist SDK, एक अर्थपूर्ण संस्करण-प्रेरित रिलीज़ और संस्करण योजना, हमारे ऑनलाइन दस्तावेज़ीकरण का एक उन्नत और अद्यतन संस्करण, शानदार नए मॉड्यूल और बहुत सारे और सुधार शामिल हैं। हालांकि, विशेष रूप से संक्रमण चरण के दौरान, रिपॉजिटरी की README.md फ़ाइलों और https://artist.cispa.saarland पर दस्तावेज़ीकरण में कुछ जानकारी थोड़ी असंगत हो सकती है। हम असुविधा के लिए क्षमा चाहते हैं और Gitter पर खुशी-खुशी प्रतिक्रिया लेते हैं। वर्तमान प्रगति से अपडेट रहने के लिए, Project: ARTist रिपॉजिटरी के बीटा माइलस्टोन पर नज़र रखें और https://artist.cispa.saarland पर नए ब्लॉग पोस्ट देखें।
हम Project ARTist के आसपास डेवलपर्स, शोधकर्ताओं और उपयोगकर्ताओं का एक सक्रिय समुदाय बनाने की आशा करते हैं और इसलिए किसी भी प्रकार के योगदान और प्रतिक्रिया का स्वागत करते हैं। परियोजना में शामिल होने और मदद करने के कई तरीके हैं, जैसे मॉड्यूल का परीक्षण और लेखन, यह प्रतिक्रिया देना कि कौन सी कार्यक्षमता महत्वपूर्ण है या गायब है, बग और अन्य मुद्दों की रिपोर्ट करना, या सामान्य रूप से अपने अनुभवों के बारे में बात करना। टीम Gitter और निश्चित रूप से रिपॉजिटरी की सक्रिय रूप से निगरानी कर रही है, और हमें संपर्क करने और चर्चा करने में खुशी होगी। हमारे पास अभी तक एक पूर्ण योगदान गाइड नहीं है, लेकिन यह जल्द ही आएगा (ऊपर बीटा घोषणा देखें)।
ARTist एक पेपर पर आधारित है जिसका शीर्षक है ARTist - The Android Runtime Instrumentation and Security Toolkit, जो द्वितीय IEEE यूरोपीय संगोष्ठी सुरक्षा और गोपनीयता (EuroS&P'17) में प्रकाशित हुआ था। पूरा पेपर यहाँ उपलब्ध है। यदि आप अपने शोध में ARTist का हवाला दे रहे हैं, तो कृपया निम्नलिखित ग्रंथ सूची प्रविष्टि का उपयोग करें:
@inproceedings{artist,
title={ARTist: The Android runtime instrumentation and security toolkit},
author={Backes, Michael and Bugiel, Sven and Schranz, Oliver and von Styp-Rekowsky, Philipp and Weisgerber, Sebastian},
booktitle={2017 IEEE European Symposium on Security and Privacy (EuroS\&P)},
pages={481--495},
year={2017},
organization={IEEE}
}
एक अनुवर्ती पेपर है जहां हमने तृतीय-पक्ष अनुप्रयोगों से विज्ञापन लाइब्रेरी को हटाने, लाइब्रेरी को एक समर्पित ऐप (अपना सुरक्षा प्रिंसिपल) में स्थानांतरित करने और दोनों को एक कस्टम बाइंडर IPC प्रोटोकॉल का उपयोग करके फिर से जोड़ने के लिए ARTist का उपयोग किया, जबकि विज्ञापन-मुक्त एप्लिकेशन के ऊपर फ्लोटिंग व्यू के रूप में रिमोट विज्ञापनों को प्रदर्शित करके दृश्य निष्ठा को संरक्षित किया गया। पूरा पेपर The ART of App Compartmentalization: Compiler-based Library Privilege Separation on Stock Android, जैसा कि 2017 ACM SIGSAC कॉन्फ्रेंस ऑन कंप्यूटर एंड कम्युनिकेशंस सिक्योरिटी (CCS'17) में प्रकाशित हुआ था, यहाँ उपलब्ध है।