Trojan Source
ट्रोजन सोर्स एक सॉफ्टवेयर भेद्यता का नाम है जो स्रोत कोड के वास्तविक निष्पादन से अलग स्रोत कोड प्रदर्शित करने के लिए यूनिकोड के द्विदिश वर्णों का दुरुपयोग करता है। शोषण इस बात का उपयोग करता है कि कैसे विभिन्न पठन दिशाओं की लेखन लिपियों को कंप्यूटर पर प्रदर्शित और कूटबद्ध किया जाता है। इसकी खोज 2021 के अंत में कैम्ब्रिज विश्वविद्यालय में निकोलस बाउचर और रॉस एंडरसन ने की थी। पृष्ठभूमि यूनिकोड पाठ, प्रतीकों और ग्लिफ का प्रतिनिधित्व करने के लिए एक एन्कोडिंग मानक है। यूनिकोड कंप्यूटर पर सबसे प्रमुख एन्कोडिंग है, जिसका उपयोग 98 प्रतिशत से अधिक वेबसाइटों में किया जाता है। यह कई भाषाओं का समर्थन करता है, और इस वजह से, इसे पाठ लिखने के विभिन्न तरीकों का समर्थन करना चाहिए। इसके लिए अंग्रेजी और रूसी जैसी बाएं से दाएं दोनों भाषाओं और हिब्रू और अरबी जैसी दाएं से बाएं दोनों भाषाओं के लिए समर्थन की आवश्यकता है। चूंकि यूनिकोड का उद्देश्य एक से अधिक लेखन प्रणाली का उपयोग करके समाधान करना है, इसलिए इसे विभिन्न प्रदर्शन आदेशों के साथ स्क्रिप्ट को मिलाने और परस्पर विरोधी आदेशों को हल करने में सक्षम होना चाहिए। इसे ठीक करने के लिए, यूनिकोड में द्विदिश वर्ण (बिडी) नामक वर्ण होते हैं जो वर्णन करते हैं कि पाठ को कैसे प्रदर्शित और दर्शाया जाता है। इन वर्णों का उपयोग यह बदलने के लिए किया जा सकता है कि पाठ की व्याख्या को नेत्रहीन रूप से बदले बिना कैसे किया जाता है, क्योंकि पात्र अक्सर अदृश्य होते हैं। कार्यप्रणाली शोषण में, स्रोत कोड में पाठ को दृष्टिगत रूप से पुनः क्रमबद्ध करने के लिए द्विदिश वर्णों का दुरुपयोग किया जाता है ताकि बाद में निष्पादन एक अलग क्रम में हो। स्रोत कोड के उन क्षेत्रों में द्विदिश वर्ण डाले जा सकते हैं जहां स्ट्रिंग अक्षरों की अनुमति है। यह अक्सर प्रलेखन, चर या टिप्पणियों पर लागू होता है। उपरोक्त उदाहरण में, आर. एल. आई. चिह्न (दाएँ से बाएँ पृथक) निम्नलिखित पाठ को विपरीत क्रम में व्याख्या करने के लिए मजबूर करता हैः ट्रिपल-कोट पहले (स्ट्रिंग को समाप्त करना), उसके बाद एक अर्धविराम (एक नई रेखा शुरू करना), और अंत में समय से पहले वापसी (इसके नीचे किसी भी कोड को लौटाना और अनदेखा करना) के साथ होता है। नई रेखा आर. एल. आई. चिह्न को समाप्त करती है, जिससे यह नीचे दिए गए कोड में बहने से रोकता है। बिडी चरित्र के कारण, कुछ स्रोत कोड संपादक और आईडीई बिना किसी दृश्य संकेत के प्रदर्शित करने के लिए कोड को पुनर्व्यवस्थित करते हैं कि कोड को पुनर्व्यवस्थित किया गया है, इसलिए एक मानव कोड समीक्षक सामान्य रूप से उनका पता नहीं लगाएगा। हालाँकि, जब कोड को संकलक में डाला जाता है, तो संकलक बिडी चार को अनदेखा कर सकता है और वर्णों को दृश्य रूप से प्रदर्शित करने की तुलना में अलग क्रम में संसाधित कर सकता है। जब संकलक समाप्त हो जाता है, तो यह संभावित रूप से उस कोड को निष्पादित कर सकता है जो दृश्य रूप से गैर-निष्पादित प्रतीत होता है। जटिल हमले बनाने के लिए प्रारूपण चिह्नों को कई बार जोड़ा जा सकता है। प्रभाव और शमन प्रोग्रामिंग भाषाएँ जो यूनिकोड स्ट्रिंग्स का समर्थन करती हैं और यूनिकोड के बिडी एल्गोरिदम का पालन करती हैं, वे शोषण के लिए असुरक्षित हैं। इसमें जावा, गो, सी, सी + +, सी #, पायथन और जावास्क्रिप्ट जैसी भाषाएँ शामिल हैं। हालांकि हमला पूरी तरह से एक त्रुटि नहीं है, कई संकलकों, दुभाषियों और वेबसाइटों ने शोषण के लिए चेतावनी या शमन जोड़े। जीएनयू जीसीसी और एलएलवीएम दोनों को शोषण से निपटने के लिए अनुरोध प्राप्त हुए। मारेक पोलेसेक ने शोषण के प्रकाशित होने के तुरंत बाद जी. सी. सी. को एक पैच प्रस्तुत किया जिसने संभावित रूप से असुरक्षित दिशात्मक पात्रों के लिए एक चेतावनी लागू की; इस कार्यक्षमता को जी. सी. सी. 12 के लिए-विबिडी-अक्षर ध्वज के तहत विलय कर दिया गया था। एल. एल. वी. एम. ने भी इसी तरह के पैच का विलय किया। रस्ट ने उपयोग को 1.56.1 में ठीक किया, कोड को अस्वीकार करते हुए जिसमें डिफ़ॉल्ट रूप से वर्ण शामिल होते हैं। रस्ट के डेवलपर्स को ठीक करने से पहले कोई कमजोर पैकेज नहीं मिला। रेड हैट ने अपनी वेबसाइट पर एक परामर्श जारी किया, जिसमें शोषण को "मध्यम" के रूप में लेबल किया गया। गिटहब ने अपने ब्लॉग पर एक चेतावनी जारी की, साथ ही साथ वेबसाइट को एक डायलॉग बॉक्स दिखाने के लिए अपडेट किया जब एक रिपॉजिटरी के कोड में बिडी वर्णों का पता चला। संदर्भ खोजकर्ताओं द्वारा बाहरी लिंक https://trojansource.codes साइट, निकोलस बाउचर और रॉस एंडरसन अवधारणा कोड का सबूत ट्रोजन स्रोत पूर्ण शोध पत्र NIST राष्ट्रीय भेद्यता डेटाबेस और CVE सामान्य भेद्यता और एक्सपोजर CVE-2021-42574-NIST & CVE (BIDI शोषण) CVE-2021-42694-NIST & CVE (होमोग्लिफ हमला) यूएएक्स 9 यूनिकोड कंसोर्टियम से द्विदिशात्मक वर्णों के बारे में और यूनिकोड कंसोर्टियम से यू. टी. आर. 36 को प्रारूपित करने के बारे में, जो इंजेक्शन शोषण सॉफ्टवेयर बग की गणना में यूनिकोड CERT/CC भेद्यता रिपोर्ट 2021 में भेद्यता का वर्णन करता है।