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

खोलने से पहले फ़ाइल कैसे जाँचें
इसके लिए आपको सुरक्षा विशेषज्ञ होने की ज़रूरत नहीं, और फ़ाइल को कहीं भेजने की भी ज़रूरत नहीं। डिडिए स्टीवंस pdfid नाम का एक मुफ़्त औज़ार देते हैं, जो आपके अपने कंप्यूटर पर चलता है और लगभग एक सेकंड लेता है:
python pdfid.py invoice.pdfयह उन चीज़ों की छोटी सूची छापता है जो एक PDF में हो सकती हैं, हर एक के आगे गिनती के साथ। किसी आम दस्तावेज़ के लिए — बिल, रिपोर्ट, अनुबंध — आप /JavaScript, /OpenAction, /Launch और /EmbeddedFile के आगे शून्य देखना चाहेंगे।
शून्य से बड़ी संख्या अपने आप में किसी गड़बड़ी का सबूत नहीं है। बहुत सारे वैध फ़ॉर्म स्क्रिप्ट इस्तेमाल करते हैं। लेकिन इतना ज़रूर पता चल जाता है कि दस्तावेज़ लिखाई दिखाने से ज़्यादा कुछ कर रहा है — और यह जानना खोलने के बाद से बेहतर है कि खोलने से पहले पता हो।
अगर आप कुछ भी इंस्टॉल नहीं करना चाहते, तो वही समझ यहाँ भी काम आती है: जिस कंपनी से आपने कभी कुछ ख़रीदा ही नहीं, उसका अनपेक्षित बिल डबल-क्लिक नहीं, एक फ़ोन कॉल माँगता है।
चार आदतें जो सचमुच काम आती हैं
अपने PDF रीडर में स्क्रिप्टिंग बंद कर दें। Adobe Acrobat Reader में यह Preferences → JavaScript के नीचे है। रोज़मर्रा के काम में शायद ही कोई जान-बूझकर स्क्रिप्ट वाली PDF इस्तेमाल करता हो, और इसे बंद कर देने से ख़तरे की एक पूरी श्रेणी बिना किसी असली नुक़सान के हट जाती है।
अपडेट तुरंत लगाएँ। सुविधाओं के दुरुपयोग पर इसका कोई असर नहीं, लेकिन दूसरे समूह के ख़िलाफ़ — यानी उन हमलों के ख़िलाफ़ जो ख़ुद रीडर को निशाना बनाते हैं — यही आपका पूरा बचाव है।
जल्दबाज़ी में आने वाले दस्तावेज़ों से सावधान रहें। ऐसा बिल जिसकी आपको उम्मीद नहीं थी। ऐसे पार्सल की डिलीवरी सूचना जो आपने मँगाया ही नहीं। ऐसा अनुबंध जिस पर आज ही दस्तख़त होने हैं। यह जल्दबाज़ी संयोग नहीं है; वह इसीलिए है ताकि आप फ़ाइल खोलने से पहले उसके बारे में सोच न सकें।
ध्यान दें कि फ़ाइल खुल कहाँ रही है। ब्राउज़र के भीतर PDF खोलना सुविधाजनक है, लेकिन इसका मतलब है कि दस्तावेज़ को वह सॉफ़्टवेयर सँभाल रहा है जो पहले से पूरे इंटरनेट से जुड़ा हुआ है। दोनों में से कोई विकल्प अपने आप सही नहीं है — बस इतना है कि यह चुनाव संयोग से नहीं, सोच-समझकर होना चाहिए।
ऑनलाइन कन्वर्टर के बारे में एक आम ग़लतफ़हमी
एक आम धारणा है जिसे पहले ही साफ़ कर देना बेहतर है: अगर PDF संदिग्ध लगे, तो पहले उसे किसी ऑनलाइन कन्वर्टर से गुज़ार दो, और भीतर जो कुछ है वह छँट जाएगा।
ऐसा नहीं होता। आपने एक संभवतः शत्रुतापूर्ण फ़ाइल किसी और के सर्वर को सौंप दी, बदले में आपको एक फ़ाइल मिली जिसे आपको फिर भी खोलना ही है, और अब आपके दस्तावेज़ की एक नक़ल ऐसे ढाँचे पर पड़ी है जिस पर आपका कोई नियंत्रण नहीं। अगर दस्तावेज़ संदिग्ध होने के साथ-साथ गोपनीय भी था, तो आपने एक समस्या को दो में बदल दिया।
यही वजह है कि PDF Manipulator पूरी तरह आपके अपने कंप्यूटर पर चलता है — उसमें आप जो कुछ खोलते हैं, वह कहीं अपलोड नहीं होता। लेकिन मैं ठीक-ठीक स्पष्ट रहना चाहता हूँ कि इसका मतलब क्या है और क्या नहीं, क्योंकि इसे बढ़ा-चढ़ाकर कहना ठीक वैसा ही दावा होगा जिसके ख़िलाफ़ यह साइट खड़ी है:
- इसका यह मतलब है कि आपका दस्तावेज़ कभी किसी और के सर्वर पर नहीं पहुँचता, इसलिए जिस सेवा को आपने एक बार इस्तेमाल किया था उसमें हुई सेंधमारी उसे उजागर नहीं कर सकती।
- इसका यह मतलब नहीं कि नुक़सानदेह PDF हानिरहित हो जाती है। PDF खोलने वाले हर प्रोग्राम को उसे पढ़ना ही पड़ता है, मेरे प्रोग्राम को भी। स्थानीय रूप से काम करना आपकी निजता की रक्षा करता है। यह एंटीवायरस नहीं है।
ये दो अलग सवाल हैं — इस फ़ाइल की नक़ल और किसके पास जाती है, और क्या यह फ़ाइल मेरे कंप्यूटर पर हमला करने की कोशिश कर रही है — और इनके दो अलग जवाब चाहिए।
संक्षेप में
PDF किसी पन्ने की तस्वीर नहीं है। वह एक छोटा डिब्बा है जो तस्वीर जैसा दिखता भर है, और उसे ऐसी चीज़ें ले जाने की इजाज़त है जो चुपचाप पड़ी रहने से कहीं ज़्यादा करती हैं। इससे PDF ख़तरनाक नहीं हो जातीं — इस महीने आप दर्जनों खोलेंगे और हर एक ठीक निकलेगी। इसका बस इतना मतलब है कि किसी अनजान की भेजी फ़ाइल डबल-क्लिक पाने से पहले तीस सेकंड का ध्यान माँगती है।
PDF Manipulator मुफ़्त है और पूरी तरह ऑफ़लाइन चलता है — देखिए यह क्या करता है →


स्रोत
- Didier Stevens, Escape From PDF (2010)
- Didier Stevens, PDF Tools
- Help Net Security, Researcher exploits PDF file without using a vulnerability


