परिचय
हमने हाल ही में हाल ही में प्रकट किए गए iPhone भेद्यता के बारे में स्वतंत्र सुरक्षा मूल्यांकनकर्ताओं के सुरक्षा विशेषज्ञ चार्ली मिलर के साथ बातचीत की, जिसने एक दुर्भावनापूर्ण हैकर को सावधानीपूर्वक तैयार किए गए एसएमएस संदेशों की एक श्रृंखला के माध्यम से iPhone पर नियंत्रण रखने की अनुमति दी होगी।
एलन: चैट करने के लिए समय निकालने के लिए धन्यवाद, चार्ली। आप हमें SMS भेद्यता के बारे में थोड़ा बताकर शुरुआत क्यों नहीं करते?
चार्ली: आईफोन बग को फोन को यह बताने के साथ करना है कि एक निश्चित मात्रा में डेटा है, और फिर इसे उतना नहीं भेजना जितना आपने कहा था। डेटा को पढ़ने वाला फ़ंक्शन त्रुटि को इंगित करने के लिए -1 लौटाना शुरू कर देता है, लेकिन प्रोग्राम के अन्य भाग इस त्रुटि की जांच नहीं करते हैं और वास्तव में सोचते हैं कि -1 संदेश से डेटा है। इससे पता चलता है कि सुरक्षित कोड लिखना कितना जटिल हो सकता है, अलग से, प्रोग्राम का प्रत्येक भाग सही दिखता है, लेकिन जिस तरह से वे बातचीत करते हैं वह खतरनाक है!
वैसे भी, आप जो भेजते हैं उसके आधार पर विभिन्न बुरी चीजें हो सकती हैं। एक बिंदु पर, आप इसे बाहर निकलने के लिए प्राप्त कर सकते हैं क्योंकि यह -1 बाइट्स आवंटित करने वाला है (जिसे 0xffffffff – एक बहुत बड़ी संख्या के रूप में देखा जाता है)। यह सेवा से इनकार है जो अस्थायी रूप से नेटवर्क से फोन को बंद कर देगा।
मेरी ब्लैकहैट वार्ता के दौरान, हम हर 10 सेकंड में एक स्वयंसेवक को नेटवर्क से दूर रखने के लिए दर्शकों से सेवा से इनकार करने का यह संदेश भेजते रहे। एक दुर्भाग्यपूर्ण परिणाम के रूप में, संदेशों को नेटवर्क पर जोड़ा जा रहा था और बातचीत के घंटों बाद भी उसका फोन बंद हो रहा था। वह तब से वापस उठ गया है और चल रहा है।
एलन: हमारे पाठकों के लिए ध्यान दें: जब भी चार्ली कहता है कि उसे एक स्वयंसेवक की आवश्यकता है, तो आँख से संपर्क न करें। तो, आपने संदेश कैसे भेजा? क्या आप इसे किसी अन्य आईफोन के एसएमएस इंटरफेस के माध्यम से भेज रहे थे या “टेलीफोन नंबर @ attwireless ” दृष्टिकोण को ईमेल करने जैसा कुछ कर रहे थे?
चार्ली: वाहक नेटवर्क पर एसएमएस भेजने के लिए, हमारे पास हमारे हमले वाले आईफोन पर एक छोटा सा एप्लिकेशन था जो जीएसएम एटी कमांड का उपयोग करके मॉडेम से बात करेगा। बग का परीक्षण करने और खोजने के लिए, हमने मेरे सह-प्रस्तुतकर्ता कोलिन मुलिनर द्वारा लिखे गए इस वास्तव में शानदार इंजेक्शन ढांचे का उपयोग किया, जो आपको केवल टीसीपी पर डेटा भेजकर एसएमएस संदेश कार्यान्वयन का परीक्षण करने देता है। यह आपको कैरियर नेटवर्क पर डेटा भेजने से रोकता है और इसमें कुछ भी खर्च नहीं होता है, और आपको बहुत से संदेशों का बहुत जल्दी परीक्षण करने की सुविधा भी देता है।
एलन: तो आप सेवा से इनकार से पूर्ण शोषण तक कैसे जाते हैं?
चार्ली: सबसे खराब स्थिति यह है कि प्रोग्राम कैसे जुड़े संदेशों को संभालता है। यह एक बार में 140 से अधिक बाइट भेजने का एक तरीका है। आप संदेशों की एक श्रृंखला में एक लंबा संदेश भेज सकते हैं और फोन इसे एक लंबी स्ट्रिंग में फिर से संगठित कर देगा। यह डेटा से एक मान के आधार पर एक सरणी तक पहुँचता है। उस मामले में जहां यह सोचता है कि यह -1 पढ़ता है, यह वास्तव में सरणी से पहले स्मृति तक पहुंचता है, सरणी में नहीं। चीजों को ठीक से सेट करके और मुश्किल होने के कारण, आप वास्तव में डिवाइस पर पूर्ण नियंत्रण प्राप्त करने के लिए इसका लाभ उठा सकते हैं।
पूरे हमले में सिर्फ 500 से अधिक संदेश होते हैं, हालांकि पीड़ित को यह नहीं पता होता है कि उन्हें भेजा जा रहा है क्योंकि वे फोन पर दिखाई नहीं देते हैं। इन संदेशों में से अधिकांश का संबंध चीजों को “बिल्कुल सही” सेट करने से है। उनमें से सोलह वास्तव में सीमा से बाहर सरणी तक पहुँचते हैं।