हर कुछ महीनों में सुरक्षा ख़बरों में एक वाक्य दिख जाता है: “हमलावर PDF फ़ाइलों की एक ख़ामी का फ़ायदा उठा रहे हैं।” कहने का यह तरीक़ा थोड़ा भ्रामक है, और इसे सुधार लेना सचमुच काम आता है।
ख़ामी लगभग कभी फ़ाइल में नहीं होती। वह उस प्रोग्राम में होती है जो फ़ाइल को खोलता है।
यह फ़र्क़ बदल देता है कि आपको इसके बारे में करना क्या चाहिए। अगर ख़तरा दस्तावेज़ में बसा होता, तो आपको दस्तावेज़ों को साफ़ करने का कोई तरीक़ा चाहिए होता। चूँकि वह रीडर में बसा है, इसलिए काम वही चीज़ें आती हैं जो आपके रीडर को कठिन निशाना बना दें — और ऐसी चीज़ें बस चार ही हैं जिन पर मेहनत करना बनता है।
अगर आपने अभी तक नहीं पढ़ा है, तो क्या PDF में वायरस हो सकता है इस कहानी का आसान आधा हिस्सा बताता है: वे नुक़सानदेह काम जो एक PDF पूरी तरह सामान्य सुविधाओं के सहारे कर सकती है। यह लेख कठिन आधे हिस्से के बारे में है।
PDF रीडर इतना लुभावना निशाना क्यों हैं
PDF का एक पन्ना आपको दिखाना सुनने में एक ही काम लगता है। असल में यह दर्जनों काम हैं।
उस पन्ने को आपकी स्क्रीन पर लाने के लिए रीडर को दबाया हुआ डेटा खोलना पड़ता है, तस्वीरों को डिकोड करना पड़ता है (जो आधा दर्जन अलग-अलग फ़ॉर्मैट में हो सकती हैं), भीतर रखे फ़ॉन्ट इंस्टॉल करके उन्हें पढ़ना पड़ता है, पन्ने की सजावट तय करनी पड़ती है, पारदर्शिता और रंग सँभालने पड़ते हैं, और फ़ॉर्म के ख़ाने बनाने पड़ते हैं। इनमें से हर क़दम कोड के एक अलग टुकड़े के ज़िम्मे है। और हर टुकड़ा वही स्वीकार कर लेता है जो फ़ाइल उसे थमा देती है।
फ़ॉन्ट पर एक पल रुकना बनता है, क्योंकि वे लोगों को चौंका देते हैं। भीतर रखा फ़ॉन्ट कुछ अक्षरों की तस्वीर नहीं होता — वह एक छोटे प्रोग्राम के ज़्यादा क़रीब है, जो बताता है कि हर अक्षर बनाना कैसे है। आपका रीडर उस बयान को चलाता है। तस्वीरों के डिकोडर भी ऐसे ही हैं: जटिल, रफ़्तार के लिए बने हुए, और उनसे उम्मीद की जाती है कि बिगड़ी हुई फ़ाइलें भी बिना क्रैश हुए सँभाल लें।
यानी किसी अनजान की भेजी PDF आती है और सीधे एक दर्जन जटिल सॉफ़्टवेयर टुकड़ों के मुँह में चली जाती है। यही हमले की सतह है, और यही वजह है कि बीस साल से यह हमलावरों के लिए इतना उपजाऊ निशाना बना हुआ है।
इससे यह भी समझ आता है कि एक सलाह समझदारी भरी क्यों लगती है, पर काम की ज़्यादा नहीं: “बस दस्तावेज़ में किसी लिंक पर क्लिक मत करो।” ख़तरे वाला हिस्सा आम तौर पर तभी हो जाता है जब पन्ना बन रहा होता है — इससे पहले कि क्लिक करने को कुछ हो।
एक एक्सप्लॉइट असल में काम कैसे करता है
अच्छे फ़ैसले लेने के लिए आपको तकनीकी ब्योरे की ज़रूरत नहीं, लेकिन मोटा ख़ाका काम आता है, क्योंकि उससे पता चलता है कि कुछ एहतियात असर क्यों करते हैं और कुछ सिर्फ़ असर करते हुए क्यों लगते हैं।
हमले के तीन हिस्से होते हैं।
कुछ बिगड़ा हुआ — ऐसा फ़ॉन्ट जिसमें कोई असंभव आकार लिखा हुआ है, ऐसी तस्वीर जिसकी नाप-जोख मेल नहीं खाती, ऐसी बनावट जो किसी की उम्मीद से कहीं ज़्यादा गहराई तक एक-दूसरे के भीतर धँसी हुई है। उसका इकलौता काम है रीडर के कोड को उलझा देना।
ख़ुद वह उलझन — कोड आख़िरकार स्मृति के ऐसे हिस्से में लिख बैठता है जिसे उसे छूना ही नहीं चाहिए था। अकेले में इससे आम तौर पर बस प्रोग्राम क्रैश हो जाता है।
क्रैश को क़ब्ज़े में बदलना — यही कठिन हिस्सा है, और यहीं दस्तावेज़ के भीतर की स्क्रिप्टिंग अपनी जगह बनाती है। स्क्रिप्ट ख़ुद हमला नहीं है। वह वह औज़ार है जो पहले स्मृति को एक अनुमान लगाने लायक़ हालत में सजा देता है, ताकि क्रैश प्रोग्राम को बस मार देने के बजाय किसी काम की जगह पर जा गिरे।
यही तीसरा क़दम काम की सीख है। अपने रीडर में स्क्रिप्टिंग बंद कर देने से भीतर की एक भी ख़ामी दूर नहीं होती — और फिर भी इससे हमले काफ़ी मुश्किल हो जाते हैं, क्योंकि इससे वह सबसे सुविधाजनक औज़ार छिन जाता है जिसकी मदद से एक भरोसे के लायक़ न रहने वाली चाल भरोसे के साथ काम करने लगती है।
“बस स्कैन कर लो” क्यों काफ़ी नहीं है
इस मोड़ पर एक वाजिब सवाल: क्या सुरक्षा सॉफ़्टवेयर फ़ाइल के भीतर झाँककर ख़राब हिस्से को पहचान नहीं सकता?
कभी-कभी सकता है। लेकिन PDF फ़ॉर्मैट कई ऐसे पूरी तरह वैध तरीक़े देता है जिनसे किसी दस्तावेज़ की जाँच मुश्किल हो जाती है। सामग्री को कई बार दबाया जा सकता है, ताकि कोई शब्द बार-बार खोलने के बाद ही सामने आए। नामों को एक वैकल्पिक लिखावट में लिखा जा सकता है, ताकि एक वर्तनी ढूँढ़ता स्कैनर दूसरी वर्तनी से चूक जाए, जिसका मतलब वही है। फ़ाइल के हिस्सों को ऐसी दबी हुई गठरियों के भीतर रखा जा सकता है जिन्हें सीधी-सादी खोज कभी खोलती ही नहीं।
इसमें से कुछ भी ख़ामी नहीं है। यह सब विनिर्देश में है, और इनमें से हर सुविधा के पीछे साधारण वजहें हैं। इसका बस इतना मतलब है कि PDF की ठीक से जाँच करने के लिए ऐसा सॉफ़्टवेयर चाहिए जो फ़ाइल को सचमुच खोलकर टुकड़ों में बाँटे, न कि उसमें ढूँढ़ता फिरे — यह सीधी-सादी स्कैनिंग की एक असली सीमा है, न कि अपने एंटीवायरस पर शक करने की वजह।

क्या करें, इस क्रम में कि कौन-सी बात कितनी काम आती है
1. रीडर के अपडेट तुरंत लगाएँ। यही इकलौती चीज़ है जो ख़ामियों को सचमुच हटाती है, न कि बस उन तक पहुँचना मुश्किल करती है। अगर आप इस सूची में से और कुछ न करें, तो इतना ज़रूर करें। Adobe, Foxit और ब्राउज़र बनाने वाली कंपनियाँ — सभी नियमित रूप से सुरक्षा सुधार भेजते हैं, और हमले भारी बहुमत से उन्हीं ख़ामियों को निशाना बनाते हैं जिन्हें महीनों पहले ठीक किया जा चुका था।
2. स्क्रिप्टिंग बंद कर दें। Adobe Acrobat Reader में Preferences → JavaScript। इससे छेद बंद नहीं होता; इससे सीढ़ी हट जाती है।
3. सैंडबॉक्स चालू रहने दें। आजकल के Acrobat Reader, Chrome और Firefox — सभी PDF को एक घिरे हुए हिस्से के भीतर खोलते हैं, जो आपके बाक़ी कंप्यूटर से दीवार खींचकर अलग किया हुआ है। अगर उसे “Protected Mode”, “Protected View” या ऐसा ही कुछ कहा जाता है, तो उसे छेड़िए मत। तब किसी कामयाब हमले को कुछ भी मायने रखने से पहले उस डिब्बे से बाहर निकलना पड़ता है — यह एक दूसरी समस्या है, और कहीं ज़्यादा कठिन।
4. जो अतिरिक्त सुविधाएँ आप कभी इस्तेमाल नहीं करते, उन्हें बंद कर दें। 3D सामग्री, भीतर रखा वीडियो, फ़ॉर्म का अपने आप भेजा जाना। हर वैकल्पिक सुविधा कोड का एक और टुकड़ा है जो अनजान लोगों से आया इनपुट सँभालता है। अगर आपने कभी जान-बूझकर उनमें से किसी का इस्तेमाल नहीं किया, तो उसे बंद करने में आपका कुछ नहीं जाता।
और एक चीज़ जो करना बंद कर देना चाहिए: कन्वर्ज़न को सफ़ाई समझना। किसी संदिग्ध PDF को कन्वर्टर से गुज़ारने का मतलब फिर भी उसे ऐसे सॉफ़्टवेयर के मुँह में डालना है जिसे उसे पहले पढ़ना ही पड़ता है। आपने बस यह बदला है कि जोखिम कौन-सा प्रोग्राम उठा रहा है, यह नहीं कि जोखिम है भी या नहीं।
जब बात बिगड़ती है, तो वह दिखती कैसी है
यह साफ़ कर लेना ठीक रहेगा कि एक कामयाब हमला असल में हासिल क्या करता है, क्योंकि मन में बनी तस्वीर अक्सर या तो ज़रूरत से ज़्यादा नाटकीय होती है या ज़रूरत से ज़्यादा धुँधली।
आप एक दस्तावेज़ खोलते हैं। वह सामान्य रूप से दिखता है — और यही तो मक़सद है, क्योंकि जो फ़ाइल आपका रीडर क्रैश कर देती, वह सवाल खड़े कर देती। पीछे कहीं, हमलावर का दिया कोड अब आपकी अनुमतियों के साथ चल रहा है। ज़रूरी नहीं कि व्यवस्थापक के अधिकार हों, पर आपके अपने अधिकार तो हैं ही: आपके दस्तावेज़, आपके सहेजे हुए पासवर्ड, आपके नेटवर्क कनेक्शन।
वहाँ से यह अंत नहीं, बल्कि पैर जमाने की जगह है। अगला क़दम आम तौर पर यह होता है कि इंटरनेट से कुछ बड़ा मँगाया जाए, वापस भीतर आने का ऐसा रास्ता बनाया जाए जो कंप्यूटर दोबारा चालू होने पर भी बचा रहे, और फिर चुप्पी साध ली जाए। जो नुक़सान महीनों बाद ख़बर बनता है — रैंसमवेयर, ख़ाली कर दिया गया खाता, लीक हो गया संग्रह — उसका सिरा अक्सर उसी दस्तावेज़ तक जाता है जिसे किसी ने खोला और कुछ भी महसूस नहीं किया।
यही वजह है कि “मैंने खोला तो कुछ हुआ ही नहीं” किसी ख़ास बात का सबूत नहीं है। कुछ न होना ही वह अनुभव है जो चाहा गया था।
ऑफ़लाइन काम करना कहाँ मदद करता है — और कहाँ नहीं
मैंने PDF Manipulator इसलिए बनाया क्योंकि मैं चाहता था कि मेरे अपने दस्तावेज़ ऐसे सर्वरों तक जाना बंद करें जिन पर मेरा कोई नियंत्रण नहीं। स्थानीय प्रोसेसिंग आपको जो देती है, ईमानदारी से उसका दायरा इतना ही है: किसी कन्वर्टर की हार्ड डिस्क पर कोई नक़ल नहीं, पढ़ने के लिए कोई गोपनीयता नीति नहीं, 2023 में एक बार इस्तेमाल की गई कंपनी में हुई कोई सेंधमारी नहीं।
जो यह आपको नहीं देती, वह है किसी नुक़सानदेह दस्तावेज़ से बचाव। PDF को प्रोसेस करने वाले हर प्रोग्राम को उसे पहले पढ़ना ही पड़ता है — मेरे प्रोग्राम को भी, बाक़ी सबकी तरह। स्थानीय प्रोसेसिंग निजता की गारंटी है, सुरक्षा स्कैनर नहीं, और जो कोई आपसे इसका उलट कहे, वह कुछ बेच रहा है।
दो सवाल, दो जवाब। इस फ़ाइल की नक़ल और किस-किस के पास जाकर रुकती है? — स्थानीय रूप से काम करना इसे सँभाल लेता है। क्या यह फ़ाइल मेरे कंप्यूटर पर हमला करने की कोशिश कर रही है? — इसे सँभालते हैं अपडेट, एक सैंडबॉक्स, और थोड़ा-सा शक।
संक्षेप में
PDF एक्सप्लॉइट आपके रीडर को निशाना बनाते हैं, आपके दस्तावेज़ को नहीं। यह अच्छी ख़बर है, क्योंकि इसका मतलब है कि इलाज स्क्रीन की आपकी तरफ़ है: रीडर को अपडेट रखिए, स्क्रिप्टिंग बंद कीजिए, सैंडबॉक्स चालू रहने दीजिए। तीन सेटिंग, दस मिनट, और इस समस्या का भारी बहुमत आपकी समस्या नहीं रह जाता।
अपनी PDF पर काम कीजिए, उन्हें कहीं अपलोड किए बिना — PDF Manipulator मुफ़्त है →
स्रोत
- Didier Stevens, PDF Tools
- Didier Stevens, Malicious PDF Documents Explained, Black Hat EU 2012




