
يستخدم كل واحد منا تقريبًا خدمات المتاجر عبر الإنترنت ، مما يعني أنه عاجلاً أم آجلاً يخاطر بأن يصبح ضحية لمصمم جافا سكريبت JavaScript - وهو رمز خاص يضخه مجرمو الإنترنت على الموقع لسرقة معلومات البطاقة المصرفية والعناوين وتسجيلات الدخول وكلمات مرور المستخدم.
ما يقرب من 400000 مستخدم لموقع الويب وتطبيقات الهاتف المحمول لشركة الخطوط الجوية البريطانية ، فضلاً عن زوار الموقع البريطاني لشركة FILA الرياضية العملاقة وموزع التذاكر الأمريكي Ticketmaster ، قد عانوا بالفعل من المتشممون.
يتحدث فيكتور أوكوروكوف ، محلل مجموعة Threat Intelligence Group-IB ، عن كيفية تضمين المتشممون في كود الموقع وسرقة معلومات الفواتير ، وأيضًا عملاء CRM الذين يهاجمونهم.
تهديد الشبح
اتضح أنه منذ فترة طويلة ظل JS-sniffers بعيدًا عن نظر محللي مكافحة الفيروسات ، ولم ترى البنوك وأنظمة الدفع تهديدًا خطيرًا فيها. وعبثا تماما.
قام خبراء المجموعة IB
بتحليل 2440 متجرًا مصابًا عبر الإنترنت ، وكان زوارها - حوالي 1.5 مليون شخص يوميًا - معرضين لخطر التسوية. من بين الضحايا ليس فقط المستخدمين ، ولكن أيضًا المتاجر عبر الإنترنت وأنظمة الدفع والبنوك التي أصدرت بطاقات مخاطرة.
كان
تقرير Group-IB أول دراسة عن سوق darknet للمتشممون ، وبنيتهم التحتية وطرق تسييلهم ، حيث جلبوا منشئيهم ملايين الدولارات. حددنا 38 عائلة من المتشممون ، منها 12 عائلة فقط كانت معروفة من قبل الباحثين.
دعونا نتحدث بالتفصيل عن العائلات الأربع من المتشممون الذين درسوا أثناء الدراسة.
ReactGet الأسرة
يتم استخدام المتشممون من عائلة ReactGet لسرقة بيانات البطاقة المصرفية على مواقع المتاجر عبر الإنترنت. يمكن أن يعمل المتشمم مع عدد كبير من أنظمة الدفع المختلفة المستخدمة على الموقع: تتوافق قيمة المعلمة الواحدة مع نظام دفع واحد ، ويمكن استخدام إصدارات الشم المكتشفة الفردية لسرقة بيانات الاعتماد ، وكذلك لسرقة بيانات البطاقة المصرفية من أشكال الدفع في عدة أنظمة دفع في آن واحد ، مثل الشم عالمي يسمى. تبين أنه في بعض الحالات ، يقوم المهاجمون بهجمات تصيد المعلومات على مسؤولي المتاجر عبر الإنترنت من أجل الوصول إلى اللوحة الإدارية للموقع.
بدأت الحملة التي تستخدم هذه المجموعة من المتشممون في مايو 2017 ، حيث تمت مهاجمة المواقع الخاضعة لسيطرة CMS و Magento و Bigcommerce و Shopify.
كيف يتم تضمين ReactGet في رمز المتجر على الإنترنت
بالإضافة إلى التطبيق "الكلاسيكي" للبرنامج النصي بالرجوع إليه ، تستخدم عائلة ReactGet من المتشممون تقنية خاصة: باستخدام شفرة JavaScript ، يتحقق لمعرفة ما إذا كان العنوان الحالي حيث يوجد المستخدم يفي بمعايير معينة. لن يتم تشغيل التعليمات البرمجية الضارة إلا إذا كان عنوان URL الحالي يحتوي على
Checkring checkout أو
onestepcheckout ،
onepage / ،
out / onepag ،
checkout / one ،
ckout / one . وبالتالي ، سيتم تنفيذ رمز الشم في تمام الوقت الذي يشرع فيه المستخدم لدفع ثمن المشتريات وإدخال معلومات الدفع في النموذج على الموقع.
يستخدم هذا الشم أسلوب غير قياسي. يتم جمع مدفوعات الضحية وبياناتها الشخصية معًا وترميزها باستخدام
base64 ، ثم تُستخدم السلسلة الناتجة كمعلمة لإرسال طلب إلى موقع المهاجمين. في أغلب الأحيان ، يحاكي المسار المؤدي إلى البوابة ملف JavaScript ، على سبيل المثال
resp.js و
data.js وما إلى ذلك ، ولكن أيضًا يتم استخدام روابط لملفات الصور وملفات
GIF و
JPG . الخصوصية هي أن المتشمم ينشئ كائن صورة بحجم 1 × 1 بكسل ويستخدم الرابط الذي تم الحصول عليه مسبقًا كمعلمة
src للصورة. هذا ، بالنسبة للمستخدم ، سيبدو مثل هذا الطلب في حركة المرور كطلب لصورة عادية. تم استخدام تقنية مماثلة في متشمم العائلة ImageID. بالإضافة إلى ذلك ، يتم استخدام تقنية استخدام صورة 1 × 1 بكسل في العديد من البرامج النصية التحليلية المشروعة عبر الإنترنت ، والتي يمكن أن تضلل المستخدم أيضًا.
تحليل الإصدار
كشف تحليل المجالات النشطة المستخدمة من قبل مشغلي الشم ReactGet عن العديد من الإصدارات المختلفة لعائلة الشم. تختلف الإصدارات في وجود أو عدم وجود التشويش ، وبالإضافة إلى ذلك ، تم تصميم كل متشمم لنظام دفع محدد يعالج مدفوعات البطاقات المصرفية للمتاجر عبر الإنترنت. بعد فرز قيمة المعلمة المطابقة لرقم الإصدار ، تلقى متخصصو Group-IB قائمة كاملة بالتغيرات المتنوعة المتاحة ، ومن خلال أسماء حقول النماذج التي يبحث عنها كل مدافع في رمز الصفحة ، حددوا أنظمة الدفع التي يستهدفها المتشمم.
قائمة المتشممون ونظم الدفع المقابلة كلمة السر الشم
تتمثل إحدى مزايا أجهزة تشفير JavaScript التي تعمل على جانب العميل في الموقع في تعدد استخداماتها: يمكن أن تسرق الشفرة الخبيثة المضمنة في الموقع أي نوع من البيانات ، سواء كانت بيانات الدفع أو اسم المستخدم وكلمة المرور لحساب المستخدم. اكتشف متخصصو Group-IB عينة من الشم المنتمية إلى عائلة ReactGet ، المصممة لسرقة عناوين البريد الإلكتروني وكلمات مرور مستخدمي الموقع.
تقاطع مع ImageID الشم
كشف تحليل لأحد المتاجر المصابة أن موقعه قد أصيب مرتين: بالإضافة إلى الكود الضار لعائلة الشم ReactGet ، تم الكشف عن رمز شم عائلة ImageID. قد يشير هذا التقاطع إلى أن المشغلين الذين يقفون وراء استخدام كل من المتشممون يستخدمون تقنيات مشابهة لحقن الكود الضار.
الشم العالمي
كشف تحليل لأحد أسماء النطاقات المتعلقة بالبنية التحتية ReactGet sniffer أن المستخدم نفسه قد سجل ثلاثة أسماء مجال أخرى. هذه المجالات الثلاثة كانت تحاكي مجالات مواقع الحياة الواقعية وكانت تستخدم من قبل لاستضافة المتشممون. عند تحليل كود ثلاثة مواقع شرعية ، تم اكتشاف متشمم غير معروف ، وأظهر المزيد من التحليل أن هذا هو نسخة محسنة من المتفاعل الشم. جميع الإصدارات المتعقبة سابقًا من المتشممون من هذه العائلة كانت تهدف إلى نظام دفع واحد ، أي لكل نظام دفع مطلوب إصدار خاص من المتشمم. ومع ذلك ، في هذه الحالة ، تم اكتشاف إصدار عالمي من جهاز الشم ، وهو قادر على سرقة المعلومات من النماذج المتعلقة بـ 15 نظامًا مختلفًا للدفع ووحدات لمواقع التجارة الإلكترونية للدفع عبر الإنترنت.
لذلك ، في بداية العمل ، بحثت الشم عن الحقول الأساسية للنموذج التي تحتوي على معلومات الضحية الشخصية: الاسم الكامل ، العنوان الفعلي ، رقم الهاتف.
بعد ذلك ، بحث الشم عن أكثر من 15 بادئة مختلفة تتوافق مع أنظمة ووحدات دفع مختلفة للدفع عبر الإنترنت.
علاوة على ذلك ، تم جمع بيانات الضحية الشخصية ومعلومات الدفع معًا وإرسالها إلى الموقع الذي يسيطر عليه المهاجم: في هذه الحالة بالذات ، تم اكتشاف نسختين من جهاز ReactGet الشم العالمي الموجود على موقعين مختلفين تم اختراقهما. ومع ذلك ، أرسل كلا الإصدارين البيانات المسروقة إلى نفس الموقع الذي تم اختراقه
zoobashop.com .
يسمح لنا تحليل البادئات المستخدمة من قبل الشم للبحث عن الحقول التي تحتوي على معلومات دفع الضحية بتحديد أن نمط الشم هذا كان يهدف إلى أنظمة الدفع التالية:
- Authorize.Net
- فيريساين
- البيانات الأولى
- USAePay
- شريط
- باي بال
- ANZ eGate
- برينتر
- DataCash (MasterCard)
- Realex المدفوعات
- PsiGate
- نظم الدفع في قلب الأرض
ما الأدوات المستخدمة لسرقة معلومات الفواتير؟
يتم استخدام الأداة الأولى التي تم اكتشافها أثناء تحليل البنية التحتية للمهاجمين في تشفير البرامج النصية الضارة المسؤولة عن سرقة البطاقات المصرفية. تم اكتشاف نص bash على أحد المضيفين المهاجمين باستخدام أداة
javascript-obfuscator CLI لأتمتة تشفير رمز الشم.
تم تصميم الأداة المكتشفة الثانية لإنشاء رمز مسؤول عن تحميل الشم الرئيسي. تُنشئ هذه الأداة شفرة جافا سكريبت JavaScript التي تتحقق مما إذا كان المستخدم في صفحة الدفع عن طريق البحث في عنوان المستخدم الحالي لمعرفة ما إذا كان
الخروج من السطور
والعربة وما إلى ذلك ، وإذا كانت النتيجة إيجابية ، فإن الكود يحمِّل المتشمم الرئيسي من خادم المهاجم. لإخفاء النشاط الضار ، يتم تشفير جميع الأسطر ، بما في ذلك خطوط الاختبار لتحديد صفحة الدفع ، بالإضافة إلى رابط إلى الشم ، باستخدام
base64 .
هجمات التصيد
عند تحليل البنية التحتية لشبكة المهاجمين ، تبيّن أن مجموعة إجرامية تستخدم في الغالب الخداع للوصول إلى اللوحة الإدارية لمتجر الإنترنت المستهدف. يقوم المهاجمون بتسجيل نطاق يشبه بصريًا مجال المتجر ، ثم يقوم بنشر نموذج تسجيل دخول مزيف على لوحة إدارة Magento عليه. إذا نجح ، سيتمكن المهاجمون من الوصول إلى لوحة إدارة CMS Magento ، والتي تمكنهم من تحرير مكونات الموقع وتطبيق الشم لسرقة معلومات بطاقة الائتمان.
عائلة G- تحليلات
تُستخدم عائلة المتشممون هذه لسرقة البطاقات من عملاء المتاجر عبر الإنترنت. تم تسجيل أول اسم نطاق تستخدمه المجموعة في أبريل 2016 ، مما قد يشير إلى بداية نشاط المجموعة في منتصف عام 2016.
في الحملة الحالية ، تستخدم المجموعة أسماء النطاقات التي تحاكي خدمات الحياة الحقيقية مثل Google Analytics و jQuery ، وتخفي نشاط الشم باستخدام نصوص مشروعة ومماثلة لأسماء النطاقات الشرعية. تم الهجوم على مواقع تدير CMS Magento.
كيف يتم تضمين G-Analytics في رمز المتجر عبر الإنترنت
الميزة المميزة لهذه العائلة هي استخدام طرق مختلفة لسرقة معلومات دفع المستخدم. بالإضافة إلى التطبيق الكلاسيكي لرمز JavaScript في جزء العميل من الموقع ، استخدمت المجموعة الإجرامية أيضًا تقنية تضمين الكود في جزء الخادم في الموقع ، وهي البرامج النصية لـ PHP التي تعالج البيانات التي أدخلها المستخدم. هذه التقنية خطيرة لأنها تجعل من الصعب على الباحثين الخارجيين اكتشاف الشفرة الخبيثة. اكتشف متخصصو Group-IB إصدارًا من أداة الشم المضمنة في كود PHP الخاص بالموقع ، وذلك باستخدام مجال
dittm.org كبوابة.
تم اكتشاف إصدار سابق من الشم أيضًا ، والذي يستخدم نفس المجال
dittm.org لجمع البيانات المسروقة ، ولكن هذا الإصدار مصمم بالفعل للتثبيت على جانب العميل من المتجر عبر الإنترنت.
في وقت لاحق ، غيرت المجموعة تكتيكاتها وبدأت في إيلاء المزيد من الاهتمام لإخفاء النشاط الخبيث والتمويه.
في بداية عام 2017 ، بدأت المجموعة في استخدام نطاق
jquery-js.com ، الذي يتنكر كـ CDN لـ jQuery: عندما ينتقل إلى موقع الدخلاء ، تتم إعادة توجيه المستخدم إلى الموقع الشرعي
jquery.com .
وفي منتصف عام 2018 ، تبنت المجموعة اسم نطاق
g-analytics.com وبدأت في إخفاء أنشطة الشم تحت خدمة Google Analytics الشرعية.
تحليل الإصدار
أثناء تحليل النطاقات المستخدمة لتخزين رمز الشم ، وجد أن الموقع يحتوي على عدد كبير من الإصدارات التي تختلف عن وجود التشويش ، بالإضافة إلى وجود أو عدم وجود كود غير قابل للوصول تم إضافته إلى الملف لتشتيت الانتباه وإخفاء الرمز الضار.
في المجموع ، تم تحديد ستة إصدارات من المتشممون على
jquery-js.com . يرسل هؤلاء المتشممون البيانات المسروقة إلى العنوان الموجود على نفس الموقع الذي
يستخدمه متشمم نفسه:
hxxps: // jquery-js [.] Com / latest / jquery.min.js :
- hxxps: // jquery-js [.] com / jquery.min.js
- hxxps: // jquery-js [.] com / jquery.2.2.4.min.js
- hxxps: // jquery-js [.] com / jquery.1.8.3.min.js
- hxxps: // jquery-js [.] com / jquery.1.6.4.min.js
- hxxps: // jquery-js [.] com / jquery.1.4.4.min.js
- hxxps: // jquery-js [.] com / jquery.1.12.4.min.js
يعد نطاق
g-analytics.com اللاحق ، والذي تستخدمه المجموعة في الهجمات منذ منتصف عام 2018 ، بمثابة مستودع لعدد أكبر من المتشممون. تم اكتشاف ما مجموعه 16 نسخة شم مختلفة. في هذه الحالة ، تم إخفاء بوابة إرسال البيانات المسروقة كارتباط لصورة
GIF :
hxxp: // g-analytics [.] Com / __ utm.gif؟ V = 1 & _v = j68 & a = 98811130 & t = pageview & _s = 1 & sd = 24-bit & sr = 25-bit = 2145 × 371 & je = 0 & _u = AACAAEAB ~ & jid = 1841704724 & gjid = 877686936 & cid
= 1283183910.1527732071 :
- hxxps://g-analytics[.]com/libs/1.0.1/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.10/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.11/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.12/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.13/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.14/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.15/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.16/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.3/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.4/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.5/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.6/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.7/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.8/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.9/analytics.js
- hxxps://g-analytics[.]com/libs/analytics.js
, , . , , ,
google-analytics.cm ,
cardz.vc .
cardz.vc Cardsurfs (Flysurfs), AlphaBay , .
analytic.is , , , , Group-IB , Cookie-, , , .
iozoz.com , , 2016 . , . email-
kts241@gmail.com ,
cardz.su cardz.vc , Cardsurfs.
, , G-Analytics Cardsurfs , , .
Illum
Illum — , -, CMS Magento. , , .
, , , , , . , , , 2016 .
Illum -
.
cdn.illum[.]pw/records.php ,
base64 .
, —
records.nstatistics[.]com/records.php .
Willem de Groot, ,
, CSU.
Group-IB , .
, , Linux: , Linux Privilege Escalation Check Script, (Mike Czumak), CVE-2009-1185.
- :
core_config_data CVE-2016-4010,
RCE CMS Magento, -.
, . , , CMS . ,
segapay_standart.js segapay_onpage.js , Sage Pay.
paymentnow[.]tk ,
payment_forminsite.js ,
subjectAltName , CloudFlare. ,
evil.js . , CVE-2016-4010, footer CMS Magento.
request.requestnet[.]tk , ,
paymentnow[.]tk .
. - .
— PayPal, .
CoffeMokko
CoffeMokko, -, 2017 . , Group 1, RiskIQ 2016 . CMS, Magento, OpenCart, WordPress, osCommerce, Shopify.
CoffeMokko -
:
src js . .
, . , , .
, : , , .
/savePayment/index.php /tr/index.php . , , .
base64 , :
- «e» «:»
- «w» «+»
- «o» «%»
- «d» «#»
- «a» «-»
- «7» «^»
- «h» «_»
- «T» «@»
- «0» «/»
- «Y» «*»
base64 , .
, :
, -. TLD. , .
, jQuery (
slickjs[.]org ,
slick.js ), (
sagecdn[.]org , Sage Pay).
, , .
,
/js /src . : . , .
في بعض عينات الشم المكتشفة من هذه العائلة ، تم الغموض في الكود واحتواء البيانات المشفرة اللازمة لعمل الشم: على وجه الخصوص ، عنوان بوابة الشم وقائمة حقول نماذج الدفع ، وفي بعض الحالات رمز نموذج دفع مزيف. في الكود الموجود داخل الوظيفة ، تم تشفير الموارد باستخدام
XOR باستخدام المفتاح ، والذي تم تمريره بواسطة وسيطة نفس الوظيفة.
بعد فك تشفير السلسلة باستخدام المفتاح المطابق ، الفريد لكل عينة ، يمكنك الحصول على سلسلة تحتوي على كافة الأسطر من رمز الشم خلال حرف المحدد.
خوارزمية التشويش الثانية
في عينات الشم اللاحقة لهذه العائلة ، تم استخدام آلية تشويش مختلفة: في هذه الحالة ، تم تشفير البيانات باستخدام خوارزمية مكتوبة ذاتيًا. تم تمرير سلسلة تحتوي على البيانات المشفرة اللازمة للشم للعمل كوسيطة لدالة فك التشفير.
باستخدام وحدة التحكم في المتصفح ، يمكنك فك تشفير البيانات المشفرة والحصول على مجموعة تحتوي على موارد الشم.
الارتباط بهجمات MageCart المبكرة
كشف تحليل لأحد المجالات التي تستخدمها المجموعة كبوابة لجمع البيانات المسروقة أن المجال لديه بنية تحتية لسرقة بطاقة الائتمان مماثلة لتلك المستخدمة من قبل المجموعة 1 ، واحدة من المجموعات الأولى التي
اكتشفها متخصصو RiskIQ.
تم العثور على ملفين على مضيف عائلة الشم CoffeMokko:
- mage.js - ملف يحتوي على رمز المجموعة 1 مع عنوان البوابة js-cdn.link
- mag.php - PHP script المسؤول عن جمع بيانات الشم المسروقة
وقد وجد أيضًا أن النطاقات الأولى التي استخدمتها المجموعة وراء عائلة الشم CoffeMokko تم تسجيلها في 17 مايو 2017:
- رابط شبيبة [.] الرابط
- معلومات شبيبة [.] الرابط
- مسار شبيبة [.]
- خريطة شبيبة [.] الرابط
- الذكية شبيبة [.] الرابط
تنسيق أسماء النطاقات هذه هو نفس أسماء نطاق المجموعة 1 المستخدمة في هجمات عام 2016.
بناءً على الحقائق المكتشفة ، يمكن افتراض وجود علاقة بين مشغلي الشم CoffeMokko والجماعة الإجرامية Group 1. يفترض أن مشغلي CoffeMokko يمكنهم استعارة أدوات وبرامج سرقة البطاقات من سابقاتها. ومع ذلك ، فمن الأرجح أن المجموعة الإجرامية التي تقف وراء استخدام عائلة CoffeMokko من المتشممون هي نفس الأشخاص الذين نفذوا الهجمات كجزء من أنشطة المجموعة 1. بعد نشر التقرير الأول عن أنشطة المجموعة الإجرامية ، تم حظر جميع أسماء النطاقات الخاصة بهم ، وتمت دراسة الأدوات بالتفصيل و موصوفة. تم إجبار المجموعة على أخذ قسط من الراحة وصقل أدواتها الداخلية وإعادة كتابة رمز الشم حتى تستمر هجماتها دون أن يلاحظها أحد.