PyTorch: क्रिसमस से नए साल तक मशीन लर्निंग टूलकिट प्लेटोब्लॉकचेन डेटा इंटेलिजेंस। लंबवत खोज. ऐ.

PyTorch: मशीन लर्निंग टूलकिट क्रिसमस से नए साल तक चला

PyTorch सबसे लोकप्रिय और व्यापक रूप से उपयोग की जाने वाली मशीन लर्निंग टूलकिट में से एक है।

(हम आर्टिफिशियल इंटेलिजेंस लीडरबोर्ड पर इस बात पर ध्यान नहीं देंगे - जैसा कि प्रतिस्पर्धी क्षेत्र में व्यापक रूप से उपयोग किए जाने वाले कई ओपन सोर्स टूल्स के साथ होता है, उत्तर इस बात पर निर्भर करता है कि आप किससे पूछते हैं, और वे किस टूलकिट का उपयोग करते हैं खुद।)

मूल रूप से फेसबुक द्वारा एक ओपन-सोर्स प्रोजेक्ट के रूप में विकसित और जारी किया गया, अब मेटा, सॉफ्टवेयर को 2022 के अंत में लिनक्स फाउंडेशन को सौंप दिया गया था, जो अब इसे PyTorch Foundation के तत्वावधान में चलाता है।

दुर्भाग्य से, आपूर्ति-श्रृंखला हमले के माध्यम से परियोजना से समझौता किया गया था 2022 के अंत में छुट्टियों के मौसम के दौरान, क्रिसमस दिवस [2022-12-25] और नए साल की पूर्व संध्या [2022-12-30] के बीच।

हमलावरों ने दुर्भावनापूर्वक एक पायथन पैकेज बनाया जिसे कहा जाता है torchtriton PyPI पर, लोकप्रिय Python Package Index रिपॉजिटरी।

नाम torchtriton चुना गया था ताकि यह PyTorch सिस्टम में एक पैकेज के नाम से मेल खा सके, जिससे खतरनाक स्थिति पैदा हो PyTorch टीम द्वारा समझाया गया (हमारा जोर) इस प्रकार है:

[ए] दुर्भावनापूर्ण निर्भरता पैकेज (torchtriton) […] को उसी पैकेज नाम के साथ पायथन पैकेज इंडेक्स (PyPI) कोड रिपॉजिटरी में अपलोड किया गया था जिसे हम PyTorch नाइटली पैकेज इंडेक्स पर शिप करते हैं। चूंकि PyPI इंडेक्स को प्राथमिकता दी जाती है, यह दुर्भावनापूर्ण पैकेज हमारे आधिकारिक रिपॉजिटरी के संस्करण के बजाय स्थापित किया जा रहा था. यह डिज़ाइन किसी को उसी नाम से एक पैकेज पंजीकृत करने में सक्षम बनाता है जो किसी तृतीय पक्ष अनुक्रमणिका में मौजूद है, और pip उनके संस्करण को डिफ़ॉल्ट रूप से स्थापित करेगा।

कार्यक्रम pipवैसे, के रूप में जाना जाता था pyinstall, और जाहिरा तौर पर एक पुनरावर्ती मजाक है जो कि के लिए छोटा है pip installs packages. अपने मूल नाम के बावजूद, यह स्वयं पायथन को स्थापित करने के लिए नहीं है - यह पायथन उपयोगकर्ताओं के लिए सॉफ्टवेयर पुस्तकालयों और अनुप्रयोगों को प्रबंधित करने का मानक तरीका है जो कि पायथन में लिखे गए हैं, जैसे कि PyTorch और कई अन्य लोकप्रिय उपकरण।

आपूर्ति-श्रृंखला की चाल से फंसाया गया

किसी ने भी खतरे की अवधि के दौरान PyTorch के pwned संस्करण को स्थापित करने के लिए पर्याप्त रूप से निश्चित रूप से अपने कंप्यूटर पर प्रत्यारोपित डेटा-चोरी मैलवेयर के साथ समाप्त कर दिया।

PyTorch के अपने छोटे लेकिन उपयोगी के अनुसार मैलवेयर का विश्लेषण, हमलावरों ने संक्रमित सिस्टम से निम्न में से कुछ, अधिकांश या सभी महत्वपूर्ण डेटा चुरा लिए हैं:

  • सिस्टम जानकारी, जिसमें होस्टनाम, उपयोगकर्ता नाम, सिस्टम पर ज्ञात उपयोगकर्ता और सभी सिस्टम पर्यावरण चर की सामग्री शामिल है। पर्यावरण चर मेमोरी-ओनली इनपुट डेटा प्रदान करने का एक तरीका है जिसे प्रोग्राम शुरू होने पर एक्सेस कर सकते हैं, जिसमें अक्सर डेटा शामिल होता है जिसे डिस्क में सहेजा नहीं जाना चाहिए, जैसे कि क्रिप्टोग्राफ़िक कुंजियाँ और प्रमाणीकरण टोकन क्लाउड-आधारित सेवाओं तक पहुँच प्रदान करते हैं। ज्ञात उपयोगकर्ताओं की सूची से निकाली गई है /etc/passwd, जो, सौभाग्य से, वास्तव में कोई पासवर्ड या पासवर्ड हैश नहीं रखता है।
  • आपका स्थानीय Git कॉन्फ़िगरेशन। इससे चोरी हुई है $HOME/.gitconfig, और आमतौर पर लोकप्रिय गिट स्रोत कोड प्रबंधन प्रणाली का उपयोग करने वाले किसी के व्यक्तिगत सेटअप के बारे में उपयोगी जानकारी शामिल है।
  • आपकी SSH कुंजियाँ। ये निर्देशिका से चुराए गए हैं $HOME/.ssh. SSH कुंजियों में आमतौर पर SSH (सुरक्षित शेल) के माध्यम से सुरक्षित रूप से कनेक्ट करने के लिए उपयोग की जाने वाली निजी कुंजियाँ या SCP (सुरक्षित प्रति) का उपयोग करके आपके स्वयं के नेटवर्क पर या क्लाउड में अन्य सर्वर शामिल होते हैं। बहुत सारे डेवलपर कम से कम अपनी कुछ निजी कुंजियों को अनएन्क्रिप्टेड रखते हैं, ताकि वे जिन स्क्रिप्ट और सॉफ़्टवेयर टूल का उपयोग करते हैं, वे हर बार पासवर्ड या हार्डवेयर सुरक्षा कुंजी मांगने के लिए रुके बिना स्वचालित रूप से रिमोट सिस्टम से कनेक्ट हो सकें।
  • आपकी होम निर्देशिका में पहली 1000 अन्य फ़ाइलें आकार में 100 किलोबाइट से छोटी हैं। PyTorch मैलवेयर विवरण यह नहीं बताता है कि "पहली 1000 फ़ाइल सूची" की गणना कैसे की जाती है। फ़ाइल लिस्टिंग की सामग्री और क्रम इस बात पर निर्भर करता है कि सूची को वर्णानुक्रम में क्रमबद्ध किया गया है या नहीं; क्या किसी निर्देशिका में फ़ाइलों को संसाधित करने से पहले, उसके दौरान या बाद में उपनिर्देशिकाओं का दौरा किया जाता है; क्या छिपी हुई फ़ाइलें शामिल हैं; और क्या कोड में किसी यादृच्छिकता का उपयोग किया जाता है जो निर्देशिकाओं के माध्यम से चलता है। आपको शायद यह मान लेना चाहिए कि आकार सीमा से नीचे की कोई भी फाइल चोरी हो सकती है।

इस बिंदु पर, हम खुशखबरी का उल्लेख करेंगे: केवल वे लोग जो सॉफ्टवेयर के तथाकथित "नाइटली", या प्रायोगिक संस्करण को प्राप्त करते थे, जोखिम में थे. ("नाइटली" नाम इस तथ्य से आता है कि यह बहुत नवीनतम बिल्ड है, आमतौर पर प्रत्येक कार्य दिवस के अंत में स्वचालित रूप से बनाया जाता है।)

अधिकांश PyTorch उपयोगकर्ता शायद इससे चिपके रहेंगे तथाकथित "स्थिर" संस्करण, जो इस हमले से प्रभावित नहीं था.

साथ ही, PyTorch की रिपोर्ट से भी ऐसा लगता है ट्राइटन मालवेयर निष्पादन योग्य फ़ाइल विशेष रूप से 64-बिट लिनक्स वातावरण को लक्षित करती है.

इसलिए हम मान रहे हैं कि यह दुर्भावनापूर्ण प्रोग्राम केवल Windows कंप्यूटर पर चलेगा यदि Linux (WSL) के लिए Windows सबसिस्टम स्थापित किया गया हो।

मत भूलिए, हालांकि नियमित रूप से "नाइटलीज़" स्थापित करने वाले लोगों में स्वयं PyTorch के डेवलपर या इसका उपयोग करने वाले एप्लिकेशन शामिल हैं - शायद आपके स्वयं के इन-हाउस डेवलपर्स सहित, जिनके पास कॉर्पोरेट बिल्ड के लिए निजी-कुंजी-आधारित पहुंच हो सकती है , परीक्षण और उत्पादन सर्वर।

डीएनएस डेटा चोरी

आश्चर्यजनक रूप से, ट्राइटन मालवेयर अपने डेटा (सैन्यवादी शब्दजाल शब्द जिसे साइबर सुरक्षा उद्योग इसके बजाय उपयोग करना पसंद करता है) का उपयोग नहीं करता है चोरी or अवैध रूप से कॉपी करें) HTTP, HTTPS, SSH, या किसी अन्य उच्च-स्तरीय प्रोटोकॉल का उपयोग करना।

इसके बजाय, यह उस डेटा को एन्क्रिप्ट और एन्कोड करता है जिसे वह "सर्वर नाम" की तरह दिखने वाले अनुक्रम में चुराना चाहता है जो अपराधियों द्वारा नियंत्रित डोमेन नाम से संबंधित है।

इसका मतलब यह है कि, डीएनएस लुकअप का एक क्रम बनाकर, बदमाश हर नकली अनुरोध में थोड़ी मात्रा में डेटा चुरा सकते हैं।

यह उसी तरह की ट्रिक है जिसका इस्तेमाल किया गया था Log4Shell हैकर्स 2021 के अंत में, जिन्होंने "नामों" के साथ "सर्वर" के लिए DNS लुकअप करके एन्क्रिप्शन कुंजियों को लीक किया, जो कि आपकी गुप्त AWS एक्सेस कुंजी का मान था, जो एक इन-मेमोरी पर्यावरण चर से लूटा गया था।

तो क्या एक निर्दोष की तरह लग रहा था, अगर व्यर्थ, डीएनएस एक "सर्वर" के लिए खोज करता है जैसे S3CR3TPA55W0RD.DODGY.EXAMPLE के लिए सूचीबद्ध आधिकारिक DNS सर्वर को निर्देशित एक साधारण लुकअप की आड़ में चुपचाप आपकी एक्सेस कुंजी को लीक कर देगा DODGY.EXAMPLE डोमेन.


लाइव लॉग4शेल डेमो डीएनएस के माध्यम से डेटा एक्सफ़िल्ट्रेशन की व्याख्या करता है

[एम्बेडेड सामग्री]

यदि आप यहां पाठ को स्पष्ट रूप से नहीं पढ़ सकते हैं, तो पूर्ण स्क्रीन मोड का उपयोग करके देखें, या सीधे देखें यूट्यूब पर।
प्लेबैक को गति देने या उपशीर्षक चालू करने के लिए वीडियो प्लेयर में कॉग पर क्लिक करें।


अगर बदमाश डोमेन के मालिक हैं DODGY.EXAMPLE, वे लुकअप करते समय दुनिया को बताते हैं कि किस DNS सर्वर से कनेक्ट करना है।

इससे भी महत्वपूर्ण बात यह है कि ऐसे नेटवर्क जो HTTP, SSH और अन्य उच्च-स्तरीय डेटा साझाकरण प्रोटोकॉल का उपयोग करके टीसीपी-आधारित नेटवर्क कनेक्शनों को सख्ती से फ़िल्टर करते हैं ...

…कभी-कभी DNS लुकअप के लिए उपयोग किए जाने वाले UDP-आधारित नेटवर्क कनेक्शन को बिल्कुल भी फ़िल्टर न करें।

बदमाशों के लिए एकमात्र नकारात्मक पक्ष यह है कि डीएनएस अनुरोधों का आकार सीमित है।

व्यक्तिगत सर्वर नाम 64 (AZ, 37-0 और डैश या हाइफ़न प्रतीक) के सेट से 9 वर्णों तक सीमित हैं, और कई नेटवर्क सभी संलग्न अनुरोधों, हेडर और मेटाडेटा सहित व्यक्तिगत DNS पैकेटों को केवल 512 बाइट्स तक सीमित करते हैं।

हम अनुमान लगा रहे हैं कि इस मामले में मैलवेयर आपकी निजी चाबियों के बाद क्यों शुरू हुआ, फिर खुद को अधिकतम 1000 फाइलों तक सीमित कर लिया, प्रत्येक 100,000 बाइट्स से छोटी।

इस तरह, बदमाश बड़ी संख्या में डीएनएस लुकअप उत्पन्न किए बिना, विशेष रूप से सर्वर एक्सेस कुंजियों सहित, बहुत सारे निजी डेटा को चुरा लेते हैं।

असामान्य रूप से बड़ी संख्या में DNS लुकुओस को नियमित परिचालन कारणों से देखा जा सकता है, यहां तक ​​कि साइबर सुरक्षा उद्देश्यों के लिए विशेष रूप से लागू किसी भी जांच के अभाव में भी।

क्या करना है?

PyTorch ने इस हमले को बंद करने के लिए पहले ही कार्रवाई कर ली है, इसलिए यदि आप अभी तक हिट नहीं हुए हैं, तो आप लगभग निश्चित रूप से अब हिट नहीं होंगे, क्योंकि दुर्भावनापूर्ण torchtriton PyPI पर पैकेज को जानबूझकर "डड", उसी नाम के खाली पैकेज से बदल दिया गया है।

इसका मतलब है कि कोई भी व्यक्ति, या कोई सॉफ्टवेयर, जिसने इंस्टॉल करने की कोशिश की torchtriton PyPI से 2022-12-30T08:38:06Z के बाद, चाहे गलती से हो या डिज़ाइन से, मैलवेयर प्राप्त नहीं होगा।

PyTorch के हस्तक्षेप के बाद दुष्ट PyPI पैकेज।

PyTorch ने IoCs, या की एक उपयोगी सूची प्रकाशित की है समझौता के संकेतक, जिसे आप अपने पूरे नेटवर्क पर खोज सकते हैं।

याद रखें, जैसा कि हमने ऊपर उल्लेख किया है, भले ही आपके लगभग सभी उपयोगकर्ता "स्थिर" संस्करण से चिपके रहते हैं, जो इस हमले से प्रभावित नहीं था, आपके पास ऐसे डेवलपर या उत्साही हो सकते हैं जो "नाइटलीज़" के साथ प्रयोग करते हैं, भले ही वे स्थिर का उपयोग करते हों रिलीज भी।

पाइटोरेक के अनुसार:

  • फ़ाइल नाम के साथ मैलवेयर इंस्टॉल हो गया है triton. डिफ़ॉल्ट रूप से, आप इसे उपनिर्देशिका में खोजने की अपेक्षा करेंगे triton/runtime आपकी पायथन साइट संकुल निर्देशिका में। यह देखते हुए कि केवल फ़ाइल नाम ही कमजोर मैलवेयर संकेतक हैं, हालांकि, इस फ़ाइल की उपस्थिति को खतरे के प्रमाण के रूप में मानें; इसकी अनुपस्थिति को सर्व-स्पष्ट मत समझिए।
  • इस विशेष हमले में मैलवेयर का SHA256 योग है 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. एक बार फिर, मैलवेयर को एक अलग चेकसम बनाने के लिए आसानी से पुन: संकलित किया जा सकता है, इसलिए इस फ़ाइल की अनुपस्थिति निश्चित स्वास्थ्य का संकेत नहीं है, लेकिन आप इसकी उपस्थिति को संक्रमण के संकेत के रूप में देख सकते हैं।
  • डेटा चोरी करने के लिए उपयोग किए जाने वाले DNS लुकअप डोमेन नाम के साथ समाप्त हो गए H4CK.CFD. यदि आपके पास नेटवर्क लॉग हैं जो DNS लुकअप को नाम से रिकॉर्ड करते हैं, तो आप इस पाठ स्ट्रिंग को साक्ष्य के रूप में खोज सकते हैं कि गुप्त डेटा लीक हो गया है।
  • दुर्भावनापूर्ण DNS उत्तर स्पष्ट रूप से गए, और उत्तर, यदि कोई हो, तो DNS सर्वर से आया था WHEEZY.IO. फिलहाल, हमें उस सेवा से जुड़ा कोई आईपी नंबर नहीं मिल रहा है, और PyTorch ने ऐसा कोई आईपी डेटा प्रदान नहीं किया है जो डीएनएस टैफिक को इस मैलवेयर से जोड़े, इसलिए हमें यकीन नहीं है कि यह जानकारी खतरे के शिकार के लिए कितनी उपयोगी है फिलहाल [2023-01-01T21:05:00Z]।

सौभाग्य से, हम अनुमान लगा रहे हैं कि अधिकांश PyTorch उपयोगकर्ता इससे प्रभावित नहीं होंगे, या तो क्योंकि वे रात के निर्माण का उपयोग नहीं करते हैं, या वे छुट्टियों की अवधि में काम नहीं कर रहे थे, या दोनों।

लेकिन अगर आप एक PyTorch उत्साही हैं जो रात के निर्माण के साथ छेड़छाड़ करता है, और यदि आप छुट्टियों में काम कर रहे हैं, तो भले ही आपको कोई स्पष्ट सबूत न मिले कि आपके साथ समझौता किया गया था ...

…आप फिर भी एहतियात के तौर पर नए SSH कीपेयर बनाने पर विचार कर सकते हैं, और उन सार्वजनिक कुंजियों को अपडेट कर सकते हैं जिन्हें आपने SSH के माध्यम से एक्सेस करने वाले विभिन्न सर्वरों पर अपलोड किया है।

यदि आपको संदेह है कि आपके साथ समझौता किया गया था, तो निश्चित रूप से, उन SSH कुंजी अद्यतनों को बंद न करें - यदि आपने उन्हें पहले से नहीं किया है, तो उन्हें अभी करें!


समय टिकट:

से अधिक नग्न सुरक्षा