ट्रोजन स्त्रोत, आक्रमण जो विकासकाला अदृश्य कोड बदल जोडण्याची परवानगी देतो

काही दिवसांपूर्वी केंब्रिज विद्यापीठाच्या संशोधकांनी जाहीर केले च्या प्रकाशन सूक्ष्मपणे कोड बदलण्याचे तंत्र अनुप्रयोग स्त्रोत कोडमध्ये दुर्भावनापूर्ण.

हल्ल्याची पद्धत तशी तयार केली हे आधीच CVE-2021-42574 अंतर्गत सूचीबद्ध आहे हे ट्रोजन सोर्स या नावाने येते आणि कंपायलर/इंटरप्रिटर आणि कोड पाहणाऱ्या व्यक्तीसाठी भिन्न दिसणार्‍या मजकुराच्या निर्मितीवर आधारित आहे.

ट्रोजन स्रोत बद्दल

पद्धत कोड टिप्पण्यांमध्ये विशेष युनिकोड वर्ण लागू करण्यावर अवलंबून आहे, जे द्विदिशात्मक मजकूराचा प्रदर्शन क्रम बदलतो. या नियंत्रण वर्णांच्या मदतीने, मजकुराचे काही भाग डावीकडून उजवीकडे, तर काही भाग उजवीकडून डावीकडे प्रदर्शित केले जाऊ शकतात.

दैनंदिन व्यवहारात, हे नियंत्रण वर्ण वापरले जाऊ शकतात, उदाहरणार्थ, कोड फाइलमध्ये हिब्रू किंवा अरबी स्ट्रिंग घालण्यासाठी. तथापि, तुम्ही एकाच ओळीवर वेगवेगळ्या मजकूर दिशानिर्देशांसह ओळी एकत्र करण्यासाठी हे वर्ण वापरल्यास, उजवीकडून डावीकडे प्रदर्शित मजकूराचे परिच्छेद डावीकडून उजवीकडे प्रदर्शित विद्यमान सामान्य मजकूर ओव्हरलॅप करू शकतात.

या पद्धतीने, कोडमध्ये दुर्भावनायुक्त रचना जोडली जाऊ शकते, परंतु नंतर कोड पाहताना या बांधकामासह मजकूर अदृश्य करा, पुढील टिप्पणीमध्ये उजवीकडून डावीकडे दर्शविलेले वर्ण जोडून किंवा शाब्दिक आतील बाजूस, ज्याचा परिणाम दुर्भावनापूर्ण इन्सर्टवर पूर्णपणे भिन्न वर्णांचा परिणाम होईल. असा कोड शब्दार्थाने योग्य असेल, परंतु त्याचा अर्थ लावला जाईल आणि वेगळ्या प्रकारे प्रदर्शित केला जाईल.

आम्ही स्त्रोत कोड फायलींच्या एन्कोडिंगमध्ये फेरफार करण्याचे मार्ग शोधले आहेत जेणेकरुन मानवी दर्शक आणि संकलकांना भिन्न तर्क दिसेल. एक विशेषतः अपायकारक पद्धत युनिकोड डायरेक्शनॅलिटी ओव्हरराइड कॅरेक्टर्स वापरून कोडला त्याच्या खऱ्या लॉजिकचे अॅनाग्राम म्हणून दाखवते. आम्ही सत्यापित केले आहे की हा हल्ला C, C++, C#, JavaScript, Java, Rust, Go आणि Python विरुद्ध कार्य करतो आणि आम्हाला शंका आहे की ते इतर आधुनिक भाषांच्या विरूद्ध कार्य करेल.

कोडचे पुनरावलोकन करताना, विकसकाला पात्रांच्या दृश्य क्रमाचा सामना करावा लागेल आणि त्याला संपादकामध्ये संशयास्पद टिप्पणी दिसेल मजकूर, वेब इंटरफेस किंवा IDE, परंतु कंपाइलर आणि इंटरप्रिटर वर्णांचा तार्किक क्रम वापरतील आणि दुर्भावनापूर्ण कोड हाताळतील टिप्पण्यातील द्विदिशात्मक मजकूराकडे दुर्लक्ष करून. अनेक लोकप्रिय कोड एडिटर (VS Code, Emacs, Atom), तसेच रेपॉजिटरीजमधील कोड पाहण्यासाठी इंटरफेस (GitHub, Gitlab, BitBucket आणि सर्व Atlassian उत्पादने) प्रभावित झाले आहेत.

दुर्भावनापूर्ण कृती अंमलात आणण्यासाठी पद्धत वापरण्याचे अनेक मार्ग आहेत: एक लपलेले अभिव्यक्ती "रिटर्न" जोडा, ज्यामुळे फंक्शनची अंमलबजावणी वेळेपूर्वी समाप्त होते; अभिव्यक्तींच्या टिप्पणीतील निष्कर्ष जे सामान्यतः वैध रचना मानले जातात (उदाहरणार्थ, महत्त्वाच्या तपासण्या अक्षम करण्यासाठी); इतर स्ट्रिंग मूल्ये नियुक्त करणे ज्यामुळे स्ट्रिंग प्रमाणीकरण अयशस्वी होते.

तसेच, दुसरा हल्ला पर्याय प्रस्तावित करण्यात आला होता (CVE-2021-42694), ज्यामध्ये homoglyphs चा वापर समाविष्ट आहे, चिन्हे जी दिसायला सारखी दिसतात, परंतु अर्थात भिन्न असतात आणि भिन्न युनिकोड कोड असतात. विकासकांची दिशाभूल करण्यासाठी हे वर्ण काही भाषांमध्ये फंक्शन आणि व्हेरिएबल नावांमध्ये वापरले जाऊ शकतात. उदाहरणार्थ, तुम्ही दोन फंक्शन्स अभेद्य नावांसह परिभाषित करू शकता जे भिन्न क्रिया करतात. तपशीलवार विश्लेषणाशिवाय, विशिष्ट ठिकाणी या दोन फंक्शन्सपैकी कोणते कार्य म्हटले जाते हे आपण त्वरित समजू शकत नाही.

संरक्षण उपाय म्हणून, एरर किंवा चेतावणी दर्शविणारे, युनिकोड वर्णांना समर्थन देणारे कंपाइलर, दुभाषी आणि असेंब्ली टूल्समध्ये अंमलबजावणी करण्याची शिफारस केली जाते. टिप्पण्या, स्ट्रिंग लिटरल किंवा आउटपुट दिशा बदलणारे आयडेंटिफायरमध्ये जोडलेले नियंत्रण वर्ण आहेत का. हे वर्ण प्रोग्रामिंग भाषेच्या वैशिष्ट्यांमध्ये देखील स्पष्टपणे प्रतिबंधित असले पाहिजेत आणि रेपॉजिटरीजसह कार्य करण्यासाठी कोड संपादक आणि इंटरफेसमध्ये विचारात घेतले पाहिजेत.

त्याच्या बाजूला असुरक्षा आधीच निश्चित केल्या जाऊ लागल्या आहेत GCC, LLVM/Clang, Rust, Go, Python आणि binutils साठी तयार. GitHub, Bitbucket आणि Jira देखील GitLab सोबत एक उपाय तयार करत आहेत.

शेवटी आपल्याला त्याबद्दल अधिक जाणून घेण्यात स्वारस्य असल्यास, आपण सल्ला घेऊ शकता पुढील लिंकमधील तपशील.


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटासाठी जबाबदार: AB इंटरनेट नेटवर्क 2008 SL
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.