
हाल ही में प्रकाशित bidi-अटैक (CVE-2021-42574) का उपयोग करके दुर्भावनापूर्ण फ़ाइलें उत्पन्न करें
// अद्यतन: 05.11.2021
अब न केवल एन्कोड करना, बल्कि फ़ाइलों को डिकोड करना भी संभव है। इसका मतलब है कि अब समर्थित bidi वर्णों वाली फ़ाइलों को bidi प्लेसहोल्डर्स (LRO, ...) के साथ टेम्पलेट फ़ाइलों में अनुवादित किया जा सकता है।
हाल ही में प्रकाशित bidi-हमले की कमजोरी का उपयोग करके दुर्भावनापूर्ण फ़ाइलें उत्पन्न करें, जो यूनिकोड विनिर्देश में खोजी गई थी और कई इंटरप्रेटरों/कंपाइलरों को प्रभावित करती है।
cve.mitre.org से उद्धरण:
एक समस्या यूनिकोड विनिर्देश के द्विदिशात्मक एल्गोरिदम में 14.0 तक खोजी गई थी। यह नियंत्रण अनुक्रमों के माध्यम से वर्णों की दृश्य पुनर्क्रमण की अनुमति देता है, जिसका उपयोग ऐसे स्रोत कोड तैयार करने के लिए किया जा सकता है जो कंपाइलरों और इंटरप्रेटरों द्वारा उपभोग किए गए टोकन के तार्किक क्रम से भिन्न तर्क प्रस्तुत करता है। प्रतिद्वंद्वी इसका उपयोग यूनिकोड स्वीकार करने वाले कंपाइलरों के लिए स्रोत कोड को एन्कोड करने के लिए कर सकते हैं ताकि मानव समीक्षकों के लिए अदृश्य रूप से लक्षित कमजोरियां पेश की जा सकें।
unicode.org से द्विदिशात्मक एल्गोरिदम के बारे में रिपोर्ट देखें:
https://www.unicode.org/reports/tr9/tr9-42.html
कैम्ब्रिज विश्वविद्यालय से मूल स्रोत देखें:
https://www.trojansource.codes/trojan-source.pdf
python3 codegen.py [-h] [-m MODE] [-i INFILE] [-o OUTFILE] [-u] [-a]
| तर्क | लंबा तर्क | प्राचल | विवरण |
|---|---|---|---|
| -h | --help | none | यह सहायता संदेश दिखाएं और बाहर निकलें |
| -i | --infile | INFILE | यूनिकोड प्लेसहोल्डर्स वाली इनपुट फ़ाइल (टेम्पलेट) |
| -o | --outfile | OUTFILE | अंतिम कोड संग्रहीत करने के लिए आउटपुट फ़ाइल |
| -u | --uctable | none | समर्थित bidi-संबंधित वर्ण |
| -a | --about | none | के बारे में टेक्स्ट प्रिंट करें |
| -m | --mode | MODE | टेम्पलेट को दुर्भावनापूर्ण कोड में बदलने के लिए e|ncode का उपयोग करें और विपरीत के लिए d|ecode का उपयोग करें |
यह bidi-प्लेसहोल्डर्स वाली टेम्पलेट फ़ाइल को वास्तविक bidi वर्णों वाली फ़ाइल में अनुवादित करेगा। सभी उदाहरण संदर्भित PDF से लिए गए हैं। इन उदाहरणों को चलाने के लिए, आवश्यक तर्कों के साथ codegen.py चलाएँ:
python3 codegen.py -m encode -i infile.xyz -o outfile.xyz और outfile.xyz चलाएँ/कंपाइल करें।
यह bidi वर्णों वाली फ़ाइल को संबंधित bidi प्लेसहोल्डर्स वाली फ़ाइल में अनुवादित करेगा। नोट: आउटपुट को चलाया नहीं जा सकता, क्योंकि यह केवल एक टेम्पलेट है।
python3 codegen.py -m decode -i infile.xyz -o outfile.xyz
अपने स्वयं के टेम्पलेट बनाने के लिए, उन स्थानों पर प्लेसहोल्डर्स (python3 codegen.py -u) सेट करें जहाँ आप विशेष वर्ण दिखाना चाहते हैं। एक टेम्पलेट कैसा दिख सकता है, इसका पहला प्रभाव पाने के लिए उदाहरण देखें।
निम्न तालिका (मूल कैम्ब्रिज रिपोर्ट से ली गई) उन वर्णों को दर्शाती है जो वर्तमान में इस स्क्रिप्ट द्वारा समर्थित हैं।
~ https://www.trojansource.codes/trojan-source.pdf