إلى الخلف
جدول المحتوى
لم يتم العثور على أية عناصر.

ملخص تنفيذي

يتتبع فريق استخبارات التهديدات في CloudSEK حملة FortiBleed، وهي حملة نشطة وواسعة النطاق لسرقة بيانات الاعتماد تستهدف جدران حماية Fortinet FortiGate وبوابات SSL VPN المتصلة بالإنترنت حول العالم. وعلى الرغم من اسمها، فإن FortiBleed ليست ثغرة برمجية ولا ترتبط بأي خلل مكتشف حديثاً أو ثغرة يوم صفر في منتجات Fortinet. 

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

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

فحص الدليل

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

  • المسح والتحقق — panel.js, check.js, panel_final.js
  • بنية كسر التشفير — bot.py (التحكم عبر تيليجرام), Hashtopolis, hashpanel.log
  • مجموعات بيانات الاعتماد والأهداف — corps.txt, fsd_sort.txt, creds_with_pass.txt, targets_300M_plus.txt
  • الإثراء والإسناد — match_corps.py, merge_revenue.py, build_report.py, build_full_map.py
  • مراقبة الجودة — clean_honeypots.py, fake_ips.txt
  • مجموعة أدوات ما بعد الاختراق — ad_enum.py, spray_admin.sh, spray_da.py, pass_* قوائم كلمات المرور
  • وصول مباشر — vpn5.conf (اتصال SSL VPN فعال بشبكة الضحية)

في وقت كتابة هذا التقرير، تم تعطيل البنية التحتية للمهاجم من المصدر، على الرغم من أننا نؤكد أن نسخة Hashtopolis الموجودة على نفس عنوان IP لا تزال نشطة.

بنية كسر التشفير التحتية

لم يقم المشغلون بتشغيل خادم واحد متكامل لكسر التشفير. يكشف الدليل عن بنية متعددة الطبقات تم تأكيدها من خلال السجلات الداخلية والفهرسة الخارجية.

طبقة التنسيق هي Hashtopolis 0.14.3 نسخة تعمل على 85.11.187.8:8443، والتي تمت فهرستها بواسطة FOFA في 15 يونيو 2026 قبل أيام من هذا التقرير. Hashtopolis هو إطار عمل مفتوح المصدر لكسر التشفير الموزع: يقوم الخادم بتقسيم المهام إلى أجزاء وتوزيعها على وكلاء معالجة يعملون بوحدات معالجة الرسومات (GPU). في هذه الحالة، كان الوكلاء عبارة عن مثيلات vast.ai GPU مستأجرة، وهو ما أكدته لافتات الترحيب عبر SSH في سجلات المشغل الخاصة. كان هناك ستة وكلاء نشطين، ثلاثة منهم بـ 4 وحدات GPU لكل منهم، وثلاثة بـ 8 وحدات GPU لكل منهم، بإجمالي 36 وحدة GPU. بعد إجراء المزيد من البحث، وجدنا المزيد من عناوين IP التي تستضيف بنية تحتية مماثلة.

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

قاعدة بيانات بيانات الاعتماد وربط العلامات التجارية — corps.txt

‍

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

 حقل إسناد FortiGuard — fsd_sort.txt

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

إعادة استخدام بيانات الاعتماد عبر المؤسسات — corps.txt

يكشف البحث في قاعدة بيانات بيانات الاعتماد عن كلمات مرور فردية عن وجود إعادة استخدام مكثفة: حيث تظهر مجموعة صغيرة من السلاسل النصية عبر عشرات العلامات التجارية والمناطق الجغرافية غير المرتبطة ببعضها البعض. كلمات مرور مثل ITAdmin@888 و F0rt!n3tS3cur3! و fortiAdmin1qaz2wsx و Admin@123 تتكرر كثيراً لدرجة لا يمكن معها اعتبارها بيانات اعتماد تم اختيارها بشكل مستقل في مؤسسات منفصلة.

أسماء نطاقات Active Directory الداخلية - all_domains.txt, build_full_map.py

إن الرقم المتكرر على نطاق واسع "~21,000 نطاق متأثر" لا يمثل واحداً وعشرين ألف شركة مخترقة. فقائمة نطاقات الدليل تهيمن عليها أسماء نطاقات Active Directory الداخلية إدخالات تنتهي بلواحق داخلية غير قابلة للتوجيه مثل .LOCAL و .LAN و .LCL و .CORP و .INT و .YEREL، إلى جانب نطاقات بكلمة واحدة (مثل ADMIN و AD وما شابه) التي لا يمكن ربطها بأي مؤسسة محددة على الإطلاق. هذه ليست نطاقات يمكن البحث عنها أو نسبها إلى جهات خارجية.

إن الرقم "21,632" بحد ذاته يعود إلى مجموعات نطاقات Kerberos التي أنتجها ملف build_full_map.py. وبعبارة أخرى، فهو يحصي مجموعات التجزئة (hash) بعد الاستغلال، وليس جدران الحماية أو الشركات المخترقة بشكل منفصل. كما أن جزءاً كبيراً من هذه النطاقات ينتمي إلى مؤسسات صغيرة ومتوسطة لن يتعرف عليها أي قارئ، وهو أمر يختلف تماماً عن الإيحاء بأن آلاف العلامات التجارية الكبرى قد تم اختراق أدلتها الداخلية.

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

طبقتان من التجزئة (Hash) — FortiOS و Kerberos

هناك تمييز حاسم يوضحه الدليل — وهو تمييز تم تجاهله في معظم التقارير — وهو أن الحملة أنتجت نوعان مختلفان جوهرياً من البيانات، ولهما ثقل أدلة مختلف تماماً.

الطبقة الأولى هي بيانات اعتماد FortiOS، المستخرجة من ملفات إعدادات الأجهزة التي تم سحبها من واجهات الإدارة المكشوفة. تحدد هذه التجزئات (سواء بتنسيق salted-SHA256 القديم أو تنسيق PBKDF2 الأحدث) مسؤولي جدار الحماية. ويعتمد نسبها إلى شركة معينة كلياً على مشكلات مطابقة البريد الإلكتروني وعنوان IP الخاصة بـ FortiGuard الموضحة أعلاه، مما يجعل الطبقة الأولى الحلقة الأضعف في أي ادعاء بتعرض مؤسسة معينة للاختراق.

الطبقة الثانية هي بيانات المصادقة المسبقة لبروتوكول Kerberos، التي يتم التقاطها عن طريق نشر أدوات مراقبة الشبكة داخل الشبكات التي تمكن المشغلون من اختراقها بالفعل. تظهر هذه التجزئات بتنسيقات مثل `krb5pa$18200` و ` krb5pa2323 23` ، والأهم من ذلك، أنها تحمل أسماء نطاقات Active Directory داخلية مضمنة مستمدة من البنية التحتية الخاصة بالضحية.

تصفية المصائد (Honeypot) - clean_honeypots.py

كان المشغلون يدركون أن عمليات المسح التي يقومون بها ستشمل أنظمة المصائد (honeypot) التي يديرها المدافعون والباحثون لجذب المهاجمين ودراستهم، لذا قاموا بكتابة سكربت clean_honeypots.py لإزالتها. منطق السكربت كاشف: فهو يحدد كـ "مصيدة" أي مضيف يقبل أكثر من ثلاثة أزواج مختلفة من بيانات الاعتماد، بناءً على منطق أن الجهاز الحقيقي لن يتحقق من صحة العديد من عمليات تسجيل الدخول المختلفة، بينما المصيدة المصممة لاستدراج المهاجمين ستقبل أي شيء تقريباً.

أجهزة غير تابعة لشركة Fortinet في ملف البيانات - creds_with_pass.txt

يُظهر ملف بيانات الاعتماد الخام أن عمليات مسح المشغلين لم تكن مقتصرة على Fortinet أبداً. فبين عمليات تسجيل الدخول إلى FortiGate، توجد بيانات اعتماد لأجهزة شبكات غير ذات صلة تماماً من موردين آخرين، وأجهزة إدارة طاقة وبنية تحتية، وأجهزة مماثلة متصلة بالإنترنت، إلى جانب إدخالات مشوهة تحتوي على حمولات برمجية بأسلوب الحقن بدلاً من بيانات اعتماد حقيقية.

هذا يخبرنا أن الماسحات الضوئية كانت تحصد أي جهاز يعرض واجهة تسجيل دخول عبر الويب، ثم تقوم بتوجيه كل شيء إلى نفس مجموعة البيانات. والنتيجة المترتبة على الأرقام مباشرة: أي إحصائية يتم تقديمها على أنها "جدران حماية Fortinet مخترقة" تتضمن أجهزة ليست من نوع Fortinet على الإطلاق. كل إدخال غير تابع لـ Fortinet يظل في الإجماليات يؤدي إلى تضخيم رقم يتم تسويقه على أنه خاص بـ Fortinet.

أدوات ما بعد الاستغلال لـ AD - ad_enum.py, spray_admin.sh

يحتوي الدليل على مجموعة أدوات قوية لما بعد الاستغلال تعمل خارج نطاق جدار الحماية. يستخدم ملف ad_enum.py والبرامج النصية المرتبطة به مكتبة impacket لتعداد بيئات Active Directory الداخلية عبر بروتوكول LDAP، حيث يقوم بسحب بيانات مسؤولي النطاق، والحسابات القابلة لهجمات Kerberoasting وAS-REP-roasting، وحصة حسابات الأجهزة، وبيانات الاعتماد المخزنة بإهمال في حقول وصف الحساب. كما تقوم برامج نصية مرافقة مثل spray_admin.sh وspray_da.py بتنفيذ هجمات رش كلمات المرور عبر بروتوكولي Kerberos وSMB ضد وحدات التحكم في النطاق الداخلية، بينما تختبر برامج أخرى الوصول إلى SMB وتفحص مشاركات الشبكة.

عنقود كسر التشفير - bot.py، hashpanel.log

وصفت التقارير قدرة العملية على كسر التشفير بأنها عنقود GPU ضخم ومخصص. لكن التكوين الموجود في الدليل يروي قصة أكثر تواضعاً. فملف bot.py، وهو بوت Telegram الذي يدير عمليات كسر التشفير، يكتشف تلقائياً عدد وحدات معالجة الرسومات (GPU) المتاحة ويحدد سقفاً لما يعتبره "عاملين كبار"، مع العودة إلى القيمة الافتراضية وهي عشرة في حال فشل أمر nvidia-smi في تقديم تقرير. ويسرد سجل المشغل، hashpanel.log، النشر الفعلي: ست مثيلات مستأجرة من Vast.ai بإجمالي 36 وحدة معالجة رسومات تقريباً، وليس عنقوداً واحداً مخصصاً لهذا الغرض.

وصول للبيع - targets_300M_plus.txt، vpn5.conf

يصبح الغرض من خط الأنابيب بأكمله واضحاً لا لبس فيه في مرحلة المخرجات. ملف targets_300M_plus.txt هو كتالوج لأهداف الوصول عن بُعد مرتبة حسب الإيرادات نقاط نهاية SSH وVPN مقترنة ببيانات اعتماد صالحة ومرتبة حسب إيرادات الشركات، ومنسقة تماماً بالطريقة التي يغلف بها وسطاء الوصول الأولي منتجاتهم للبيع في الأسواق السرية. يحتوي الدليل أيضاً على ملف واحد على الأقل لتكوين SSL VPN مباشر يشير إلى شبكة الضحية، مما يؤكد أن المشغلين كانوا يمتلكون وصولاً فعلياً وقابلاً للاستخدام، وليس مجرد قائمة بكلمات مرور مخترقة.

أصل المشغل - قوائم كلمات المرور pass_*

لا تزال مسألة نسب المشغلين إلى أصل محدد، بناءً على الأدلة الموجودة في الدليل، غير محسومة. تحمل أجزاء من الأدوات آثاراً للغة الروسية في التعليقات والتسميات، وهو ما استندت إليه توصيفات "المجموعة الناطقة بالروسية" في بعض التقارير. لكن قوائم كلمات المرور المستخدمة في هجمات الرش تعقد هذه الصورة: فمجموعة كبيرة منها مسماة بأسماء علم فارسية وعربية مثل pass_ahmad وpass_reza وpass_hossein وpass_mohammad وغيرها الكثير، وهو أمر يتسق على الأقل مع مشغل ناطق بالفارسية يستهدف أو يستمد بيانات الاعتماد من تلك المنطقة اللغوية

‍

تحليل الضحايا

تتصدر الهند قائمة عدد الأجهزة المنسوبة إليها بـ 9,629 جهازاً، وهو عدد يتجاوز مجموع الولايات المتحدة (6,355) وتايوان (3,637) معاً. وتمثل الدول الخمس الأولى وحدها (الهند، الولايات المتحدة، تايوان، المكسيك، تركيا) 54% من إجمالي الإدخالات المنسوبة، ومع ذلك يمتد الانتشار الجغرافي ليشمل 194 دولة، مما يؤكد أن هذا كان مسحاً عشوائياً وشاملاً للإنترنت وليس حملة مستهدفة ضد مناطق أو قطاعات محددة.

‍

إن التركيز في الهند والمكسيك وكولومبيا وجنوب شرق آسيا يتسق مع نتائج إعادة استخدام بيانات الاعتماد في شركتي Telmex وAirtel التي تمت تغطيتها سابقاً؛ حيث يقوم مشغلو الاتصالات ومزودو خدمات الإنترنت في هذه الأسواق بإدارة بوابات Fortinet بشكل روتيني لقواعد عملاء كبيرة من الشركات الصغيرة والمتوسطة باستخدام بيانات اعتماد مشتركة، مما يؤدي إلى تجمعات جغرافية تضخم أعداد الدول الفردية بشكل كبير.

‍

تتمثل النتائج الرئيسية للتحليل في أن الرقم 21,632 الذي تصدر العناوين هو عدد الإدخالات في قاعدة بيانات "FortiGuard" الخاصة بالمهاجم، وهي عبارة عن سجل لتسجيل الأجهزة، وليست قائمة اختراقات مؤكدة. وعند تتبع هذه البيانات عبر أدوات المهاجم نفسه، تبين أن 918 مؤسسة فقط لديها أدلة على التقاط حركة مرور "Kerberos" من داخل شبكاتها، مما يعني أن المشغلين وصلوا فعلياً إلى البنية التحتية لـ

"Active Directory" في أقل من 5% من الحالات المنسوبة إليهم. ومن بين تلك الـ 918 حالة، تمثل 148 حالة فقط - أي حوالي 0.68% من الرقم المذكور في العناوين - اختراقات مؤكدة حيث تم كسر تشفير "Kerberos" بالكامل والتحقق من بيانات اعتماد "AD". ولا يظهر أي من الضحايا الذين وردت أسماؤهم في التقارير الأصلية ضمن تلك القائمة المؤكدة.

قائمة "Active Directory" التي تضم 899 إدخالاً (all_domains.txt) تروي القصة نفسها من زاوية مختلفة. فمن بين تلك الـ 899 نطاقاً لـ "Kerberos" تم التقاطها، ينتهي 46% منها بنطاقات داخلية غير قابلة للتوجيه مثل .LOCAL (316)، و.LAN/.LCL (47)، و.CORP/.INT/.YEREL (13)، وهي نطاقات موجودة فقط داخل الشبكات الخاصة ولا يمكن مطابقتها مع أي مؤسسة عامة من خلال السجلات الخارجية. كما أن 4.3% إضافية هي أسماء عامة (مثل ADMIN، AD، DC) لا تحمل معنى دون سياق إضافي. فقط 484 إدخالاً 53.8% تستخدم أسماء نطاقات قابلة للتوجيه يمكن من حيث المبدأ نسبها إلى مؤسسة معينة، وحتى تلك النسب تعتمد على نفس مطابقة البريد الإلكتروني غير الدقيقة في "FortiGuard" التي تمت مناقشتها أعلاه.

الخلاصة

لا يترك الدليل المكشوف مجالاً للشك في أن "FortiBleed" عملية حقيقية وذات قدرات عالية. فسلسلة الأدوات تعمل من البداية إلى النهاية: مسح واجهات "FortiGate" المكشوفة، وكسر التشفير على مجموعة "Hashtopolis" مكونة من حوالي 45 وحدة معالجة رسومية، واستخدام بيانات اعتماد تم التحقق منها للتوغل في الشبكات وفحص "Active Directory"، وكل ذلك يغذي كتالوجاً مرتباً حسب الإيرادات لبيع الوصول. يجب على أي مؤسسة تشغل واجهة إدارة "FortiOS" مكشوفة أن تتعامل مع بيانات اعتماد محيط شبكتها على أنها مخترقة وأن تبادر بتنفيذ إجراءات التخفيف المذكورة أعلاه.

لكن الأرقام التي تصدرت العناوين تبتعد كثيراً عما تدعمه الأدلة. بالتتبع عبر أدوات المشغلين، يتبين أن رقم الـ 21,000 نطاق تقريباً يعود إلى حوالي 918 مؤسسة لديها أي حركة مرور داخلية ملتقطة، و148 حالة فقط - أي أقل من واحد بالمائة - هي اختراقات مؤكدة. ولا يظهر أي من العلامات التجارية الكبرى التي وردت في التقارير الأصلية في تلك القائمة. الخلاصة للمدافعين بسيطة: الظهور في مجموعة البيانات هو سبب للتحقيق، وليس دليلاً على الاختراق. قم بتأمين أي واجهة "Fortinet" مكشوفة، وقم بتغيير بيانات اعتماد محيط الشبكة، وتعامل مع الأرقام التي وردت في العناوين كحد أقصى.

Indicator Type Value
Open Directory/Hashtopolis IP 85.11.187.8
Fortinet credential harvesting IP 85.11.187.28
Jump Box IP 193.8.187.2
Hashtopolis Instance IP 185.229.26.83
Hashtopolis Instance IP 213.169.49.142
Hashtopolis Instance IP 38.117.87.37
Hashtopolis Instance IP 198.53.64.194
Hashtopolis Instance IP 175.155.64.221

إجراءات التخفيف:

  1. إزالة واجهات إدارة جدار حماية "Fortinet" و"SSL VPN" من التعرض المباشر للإنترنت العام، مع قصر الوصول الإداري على الشبكات الداخلية الموثوقة.
  2. تغيير جميع بيانات اعتماد المسؤولين و"VPN" فوراً، مع إعطاء الأولوية للحسابات طويلة الأمد وأي حسابات لم يتم تغييرها منذ حوادث سابقة.
  3. فرض المصادقة متعددة العوامل (MFA) على كل حساب إداري وحساب وصول عن بُعد لتحييد كلمات المرور المسروقة بنص واضح.
  4. ترقية "FortiOS" إلى إصدار يدعم تشفير "PBKDF2"، ثم إجبار كل مسؤول على تسجيل الدخول مرة واحدة لتحفيز إعادة التشفير وإزالة أي تشفير "SHA-256" قديم متبقٍ.
  5. تغيير أي بيانات اعتماد لـ "LDAP" أو "RADIUS" أو حسابات الخدمة التي قد تكون مخزنة في تكوينات الأجهزة المُصدرة.
  6. افترض حدوث اختراق على الأجهزة التي شهدت عمليات تسجيل دخول إدارية ناجحة غير مألوفة - قم بالتدقيق بحثاً عن حسابات خلفية أو عناصر تحكم معدلة، واستبدل الجهاز في الحالات الخطيرة.

المراجع

‍

مدونات ذات صلة