
एंड्रॉइड स्मार्टफोन पर ब्लूटूथ और USB के माध्यम से AT कमांड इंटरफेस के गतिशील विश्लेषण के लिए व्याकरण-निर्देशित विकासवादी फ़ज़र, DoS, गोपनीयता लीक और प्रोटोकॉल डाउनग्रेड कमजोरियों का पता लगाता है।
"एटीफजर के माध्यम से पेंडोरा का बॉक्स खोलना: एंड्रॉइड स्मार्टफोन के लिए एटी इंटरफ़ेस का गतिशील विश्लेषण" को 35वीं वार्षिक कंप्यूटर सुरक्षा अनुप्रयोग सम्मेलन (ACSAC) 2019 में स्वीकार किया गया है। https://syed-rafiul-hussain.github.io/wp-content/uploads/2019/11/atfuzz.pdf
यह पेपर सेल्यूलर बेसबैंड प्रोसेसर द्वारा ब्लूटूथ और USB के माध्यम से उजागर किए गए AT कमांड इंटरफ़ेस की शुद्धता और मजबूती की जांच करने पर केंद्रित है। एक उपकरण का अनुप्रयोग प्रोसेसर इस इंटरफ़ेस का उपयोग सेल्यूलर नेटवर्क संचालन (जैसे, फोन कॉल करना) करने के लिए बेसबैंड प्रोसेसर को उच्च-स्तरीय कमांड (या, AT कमांड) जारी करने के लिए करता है। इस इंटरफ़ेस में कमजोरियों का उपयोग दुर्भावनापूर्ण ब्लूटूथ परिधीयों द्वारा DoS और गोपनीयता हमलों सहित विभिन्न हमले शुरू करने के लिए किया जा सकता है। ऐसी कमजोरियों की पहचान करने के लिए, हम ATFuzzer प्रस्तावित करते हैं जो एक व्याकरण-निर्देशित विकासवादी फ़ज़िंग दृष्टिकोण का उपयोग करता है जो ठोस AT कमांड के बजाय AT कमांड व्याकरण के उत्पादन नियमों को उत्परिवर्तित करता है। 5 विक्रेताओं के 8 एंड्रॉइड स्मार्टफोन पर ATFuzzer के साथ अनुभवजन्य मूल्यांकन से ब्लूटूथ पर 4 अमान्य AT कमांड व्याकरण और USB पर 13 अमान्य AT कमांड व्याकरण का पता चला, जिसके प्रभाव DoS, सेल्यूलर प्रोटोकॉल संस्करण के डाउनग्रेड से लेकर गंभीर गोपनीयता लीक तक हैं।
पायथन 2.7.15। कृपया पायथन 3 का उपयोग न करें क्योंकि लाइब्रेरी असंगतताएँ हैं। आवश्यक लाइब्रेरी requirements.txt फ़ाइल में निर्दिष्ट हैं और उन्हें निम्न आदेश निष्पादित करके स्थापित किया जा सकता है:
pip install -r requirements.txt
नोट: पायथन 2.7 के लिए मॉड्यूल pybluez विंडोज के साथ संगत नहीं है। विंडोज पर pybluez स्थापित करने के लिए पिछले संस्करण को डाउनलोड करना आवश्यक है। pybluez पर PyBluez‑0.22‑cp27 डाउनलोड करें और इसे निम्न आदेश के साथ स्थापित करें:
pip install <pybluez file.whl>
ATFuzzer चलाने के लिए निम्न आदेश निष्पादित करें:
sudo python executeFuzzer.py <list_of_grammars> <device_name> <port (optional)>
वैकल्पिक रूप से, निम्न आदेश के साथ ATFuzzer को बहु-यादृच्छिक रूप से चुने गए व्याकरणों के साथ निष्पादित करना संभव है:
sudo python executeFuzzer.py multi <device_name> <port (optional)>
प्रोग्राम तब 4 विकल्पों में से चुनने के लिए कहता है:
ये विकल्प उपयोगकर्ता को यह चुनने की अनुमति देते हैं कि किस प्रकार का ATFuzzer चलाना है। यह हमारे फ़ज़र की प्रभावशीलता का परीक्षण और मूल्यांकन करने के लिए मौलिक है।
अंत में, ATFuzzer को यह निर्दिष्ट करने की आवश्यकता है कि AT कमांड ट्रांसमिशन के लिए किस चैनल का उपयोग किया जाएगा। तीन विकल्पों में से एक का चयन करना संभव है:
यदि ब्लूटूथ विकल्प चुना जाता है, तो प्रोग्राम लक्ष्य डिवाइस का ब्लूटूथ पता मांगता है। उपयोगकर्ता डिवाइस का ब्लूटूथ मैक पता विशिष्ट प्रारूप में दर्ज कर सकता है: XX:XX:XX:XX:XX:XX (उदा., 1A:2B:3C:4D:5E:6F)।
परीक्षण निष्पादन ATFuzzer को नकली मूल्यांकन मापदंडों के साथ और किसी डिवाइस को कोई कमांड सबमिट किए बिना निष्पादित करता है। यह विकल्प केवल परीक्षण उद्देश्य के लिए है, इसलिए इसका उपयोग किसी वास्तविक स्मार्टफोन को फ़ज़ करने के लिए न करें।
नोट: यदि आप Linux पर Bluetooth ATFuzzer चलाते हैं, तो सिस्टम कॉन्फ़िगरेशन के आधार पर प्रोग्राम को sudo के साथ निष्पादित करना आवश्यक हो सकता है।
निम्नलिखित में हम ATFuzzer के कार्यान्वयन की संरचना का विवरण प्रदान करते हैं।
commandGrammar.json: json फ़ाइल जिसमें 80 से अधिक AT कमांड के लिए व्याकरणों का एक सेट है। व्याकरण एक विशिष्ट संरचना का पालन करते हुए परिभाषित किए गए हैं जो प्रोग्राम को उन्हें कुशलतापूर्वक पढ़ने की अनुमति देता है।
executeFuzzer.py: मुख्य प्रोग्राम जो उपयोगकर्ता को ATFuzzer चलाने की अनुमति देता है। यह निष्पादन के विभिन्न विकल्प प्रदान करता है (देखें कैसे चलाएँ)।
grammarFuzzer.py: वास्तविक फ़ज़िंग को लागू करता है। यह उपयोगकर्ता द्वारा सबमिट किए गए AT कमांड के लिए व्याकरण पढ़ता है और फ़ज़िंग लूप करता है: इनपुट जनरेशन - इनपुट सबमिशन - व्याकरण मूल्यांकन - व्याकरण विकास।
multiGrammarFuzzer.py: वास्तविक फ़ज़िंग को लागू करता है। यह यादृच्छिक रूप से चुने गए AT कमांड के लिए व्याकरण पढ़ता है और फ़ज़िंग लूप करता है: इनपुट जनरेशन - इनपुट सबमिशन - व्याकरण मूल्यांकन - व्याकरण विकास।
grammarModifier.py: विकास चरण के लिए कार्यों को लागू करता है। ऐसे कार्यों में व्याकरण क्रॉसओवर और व्याकरण म्यूटेशन शामिल हैं।
inputGen.py: दिए गए इनपुट व्याकरण से एक यादृच्छिक AT कमांड इंस्टेंस उत्पन्न करता है।
atCmdInterface.py: लक्ष्य डिवाइस के AT इंटरफ़ेस के साथ इंटरैक्ट करने के लिए आवश्यक कार्यों को लागू करता है। यह डिवाइस के साथ संचार स्थापित करने, AT कमांड इंस्टेंस सबमिट करने और अंत में प्रतिक्रियाओं को एकत्र करने और मूल्यांकन करने के लिए जिम्मेदार है।
afl_fuzzer.py: AT कमांड के संदर्भ में AFL फ़ज़र को निष्पादित करने के लिए उपयोग किए जाने वाले कार्यों को लागू करता है।
utilityFunctions.py: मुख्य प्रोग्राम के निष्पादन के लिए समर्थन कार्यों को लागू करता है।
results: प्रत्येक ATFuzzer निष्पादन के परिणामों वाली निर्देशिका।
https://www.youtube.com/watch?v=qR4Pq5i0IRE
यदि आपका शोध savior के एक या अनेक घटकों को उपयोगी पाता है, तो कृपया निम्नलिखित पेपर को उद्धृत करें:
@inproceedings{karim2019opening,
title={Opening Pandora's box through ATFuzzer: dynamic analysis of AT interface for Android smartphones},
author={Karim, Imtiaz and Cicala, Fabrizio and Hussain, Syed Rafiul and Chowdhury, Omar and Bertino, Elisa},
booktitle={Proceedings of the 35th Annual Computer Security Applications Conference},
pages={529--543},
year={2019}
}