PyTorch: مجموعة أدوات التعلم الآلي pwned من عيد الميلاد إلى رأس السنة الجديدة PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

PyTorch: مجموعة أدوات التعلم الآلي pwned من عيد الميلاد إلى رأس السنة الجديدة

PyTorch هي واحدة من أكثر مجموعات أدوات التعلم الآلي شيوعًا والأكثر استخدامًا.

(لن يتم الاعتماد على مكان وجوده في لوحة صدارة الذكاء الاصطناعي - كما هو الحال مع العديد من الأدوات مفتوحة المصدر المستخدمة على نطاق واسع في مجال تنافسي ، يبدو أن الإجابة تعتمد على من تسأل ومجموعة الأدوات التي يستخدمونها أنفسهم.)

تم تطوير البرنامج وإصداره في الأصل كمشروع مفتوح المصدر بواسطة Facebook ، والآن Meta ، تم تسليم البرنامج إلى مؤسسة Linux في أواخر عام 2022 ، والتي تديرها الآن تحت رعاية مؤسسة PyTorch.

لسوء الحظ، تم اختراق المشروع عن طريق هجوم سلسلة التوريد خلال موسم الأعياد في نهاية عام 2022 ، بين يوم عيد الميلاد [2022-12-25] واليوم الذي يسبق ليلة رأس السنة الجديدة [2022-12-30].

أنشأ المهاجمون بشكل خبيث حزمة بايثون تسمى torchtriton على PyPI ، مستودع فهرس حزمة Python الشهير.

الاسم torchtriton تم اختياره بحيث يتطابق مع اسم الحزمة في نظام PyTorch نفسه ، مما يؤدي إلى موقف خطير أوضحه فريق PyTorch (تركيزنا) على النحو التالي:

[A] حزمة التبعية الضارة (torchtriton) [...] تم تحميله إلى مستودع كود Python Package Index (PyPI) بنفس اسم الحزمة الذي نشحنه على فهرس الحزم الليلي PyTorch. نظرًا لأن فهرس PyPI له الأسبقية ، تم تثبيت هذه الحزمة الخبيثة بدلاً من الإصدار من مستودعنا الرسمي. يتيح هذا التصميم لأي شخص تسجيل حزمة بنفس الاسم الموجود في فهرس جهة خارجية ، و pip سيقومون بتثبيت نسختهم بشكل افتراضي.

البرنامج pipبالمناسبة ، كان يُعرف باسم pyinstall، ويبدو أنها نكتة تكرارية قصيرة pip installs packages. على الرغم من اسمها الأصلي ، فهي ليست لتثبيت Python نفسها - إنها الطريقة القياسية لمستخدمي Python لإدارة مكتبات البرامج والتطبيقات المكتوبة بلغة Python ، مثل PyTorch والعديد من الأدوات الشائعة الأخرى.

Pwned بواسطة خدعة سلسلة التوريد

من المؤكد تقريبًا أن أي شخص سيئ الحظ لتثبيت الإصدار pwned من PyTorch خلال فترة الخطر انتهى ببرامج ضارة لسرقة البيانات مزروعة على أجهزة الكمبيوتر الخاصة بهم.

وفقًا لما ذكرته PyTorch ، فهي قصيرة ولكنها مفيدة تحليل البرمجيات الخبيثة، سرق المهاجمون بعض أو معظم أو كل البيانات المهمة التالية من الأنظمة المصابة:

  • معلومات النظام ، بما في ذلك اسم المضيف واسم المستخدم والمستخدمين المعروفين على النظام ومحتوى جميع متغيرات بيئة النظام. تعد متغيرات البيئة طريقة لتوفير بيانات إدخال للذاكرة فقط يمكن للبرامج الوصول إليها عند بدء تشغيلها ، وغالبًا ما تتضمن البيانات التي لا يُفترض حفظها على القرص ، مثل مفاتيح التشفير ورموز المصادقة التي تتيح الوصول إلى الخدمات المستندة إلى مجموعة النظراء. يتم استخراج قائمة المستخدمين المعروفين من /etc/passwd، والتي ، لحسن الحظ ، لا تحتوي فعليًا على أي كلمات مرور أو تجزئات لكلمات المرور.
  • تكوين Git المحلي الخاص بك. هذا مسروق من $HOME/.gitconfig، وعادة ما يحتوي على معلومات مفيدة حول الإعداد الشخصي لأي شخص يستخدم نظام إدارة كود مصدر Git الشهير.
  • مفاتيح SSH الخاصة بك. هذه مسروقة من الدليل $HOME/.ssh. تتضمن مفاتيح SSH عادةً المفاتيح الخاصة المستخدمة للاتصال الآمن عبر SSH (غلاف آمن) أو باستخدام SCP (نسخة آمنة) بخوادم أخرى على شبكاتك الخاصة أو في السحابة. يحتفظ الكثير من المطورين ببعض مفاتيحهم الخاصة على الأقل غير مشفرة ، بحيث يمكن للنصوص وأدوات البرامج التي يستخدمونها الاتصال تلقائيًا بالأنظمة البعيدة دون التوقف للمطالبة بكلمة مرور أو مفتاح أمان للأجهزة في كل مرة.
  • أول 1000 ملف آخر في الدليل الرئيسي أصغر حجمًا من 100 كيلو بايت. لا يوضح وصف البرامج الضارة لـ PyTorch كيفية حساب "قائمة 1000 ملف الأولى". يعتمد محتوى وترتيب قوائم الملفات على ما إذا كانت القائمة مرتبة أبجديًا ؛ ما إذا تمت زيارة الدلائل الفرعية قبل أو أثناء أو بعد معالجة الملفات في أي دليل ؛ سواء تم تضمين الملفات المخفية ؛ وما إذا كان يتم استخدام أي عشوائية في الكود الذي يسير في طريقه من خلال الدلائل. ربما يجب أن تفترض أن أي ملفات أقل من عتبة الحجم قد تكون تلك الملفات التي ينتهي بها الأمر للسرقة.

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

من المحتمل أن يلتزم معظم مستخدمي PyTorch بـ ما يسمى بالنسخة "المستقرة" ، والتي لم تتأثر بهذا الهجوم.

أيضًا ، من تقرير PyTorch ، يبدو أن استهدف الملف التنفيذي للبرامج الضارة Triton بشكل خاص بيئات 64 بت من Linux.

لذلك نحن نفترض أن هذا البرنامج الضار لن يعمل إلا على أجهزة الكمبيوتر التي تعمل بنظام Windows إذا تم تثبيت نظام Windows الفرعي لنظام Linux (WSL).

لا تنس ، على الرغم من أن الأشخاص الذين يُرجح أن يقوموا بتثبيت برامج "nightlies" العادية يشملون مطوري PyTorch نفسها أو التطبيقات التي تستخدمها - ربما بما في ذلك المطورين الداخليين لديك ، الذين قد يكون لديهم وصول قائم على المفتاح الخاص إلى إنشاء الشركة وخوادم الاختبار والإنتاج.

سرقة بيانات DNS

ومن المثير للاهتمام أن برنامج Triton الخبيث لا يخترق بياناته (المصطلح العسكري الذي تحب صناعة الأمن السيبراني استخدامه بدلاً من سرقة or نسخ بشكل غير قانوني) باستخدام HTTP أو HTTPS أو SSH أو أي بروتوكول آخر عالي المستوى.

وبدلاً من ذلك، يقوم بتشفير وترميز البيانات التي يريد سرقتها في تسلسل يشبه "أسماء الخوادم" التي تنتمي إلى اسم المجال الذي يتحكم فيه المجرمون.

وهذا يعني أنه من خلال إجراء سلسلة من عمليات البحث عن DNS، يمكن للمحتالين التسلل إلى كمية صغيرة من البيانات في كل طلب مزيف.

هذه هي نفس الحيلة التي استخدمها المتسللين Log4Shell في نهاية عام 2021 ، الذي سرب مفاتيح التشفير عن طريق إجراء عمليات بحث في DNS عن "الخوادم" ذات "الأسماء" التي تصادف أنها تمثل قيمة مفتاح الوصول السري إلى AWS ، المنهوب من متغير بيئة في الذاكرة.

إذن ما بدا أنه بحث بريء ، إن لم يكن بلا جدوى ، بحث DNS عن "خادم" مثل S3CR3TPA55W0RD.DODGY.EXAMPLE يقوم بهدوء بتسريب مفتاح الوصول الخاص بك تحت ستار بحث بسيط يتم توجيهه إلى خادم DNS الرسمي المدرج في DODGY.EXAMPLE المجال.


LOG4SHELL DEMO المباشر يشرح توضيح البيانات عبر DNS

[المحتوى جزءا لا يتجزأ]

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


إذا كان المحتالون يملكون المجال DODGY.EXAMPLE، يمكنهم إخبار العالم بخادم DNS للاتصال به عند إجراء عمليات البحث هذه.

والأهم من ذلك ، حتى الشبكات التي ترشح بدقة اتصالات الشبكة القائمة على بروتوكول TCP باستخدام HTTP و SSH وغيرها من بروتوكولات مشاركة البيانات عالية المستوى ...

... في بعض الأحيان لا تقم بتصفية اتصالات الشبكة المستندة إلى UDP والمستخدمة لعمليات بحث DNS على الإطلاق.

الجانب السلبي الوحيد للمحتالين هو أن طلبات DNS لها حجم محدود نوعًا ما.

تقتصر أسماء الخوادم الفردية على 64 حرفًا من مجموعة مكونة من 37 (AZ، 0-9 ورمز الشرطة أو الواصلة)، وتقيد العديد من الشبكات حزم DNS الفردية، بما في ذلك جميع الطلبات والرؤوس وبيانات التعريف المضمنة، إلى 512 بايت فقط لكل منها.

نحن نخمن أن هذا هو السبب في أن البرامج الضارة في هذه الحالة بدأت بالسعي وراء مفاتيحك الخاصة ، ثم اقتصرت نفسها على 1000 ملف بحد أقصى ، كل منها أصغر من 100,000 بايت.

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

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

ماذا ستفعلين.. إذًا؟

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

هذا يعني أن أي شخص ، أو أي برنامج ، حاول التثبيت torchtriton من PyPI بعد 2022-12-30T08: 38: 06Z ، سواء عن طريق الصدفة أو عن طريق التصميم ، لن تتلقى البرامج الضارة.

حزمة PyPI المارقة بعد تدخل PyTorch.

نشرت PyTorch قائمة مفيدة من IoCs ، أو مؤشرات التسوية، التي يمكنك البحث عنها عبر شبكتك.

تذكر ، كما ذكرنا أعلاه ، أنه حتى إذا التزم جميع المستخدمين لديك تقريبًا بالإصدار "الثابت" ، والذي لم يتأثر بهذا الهجوم ، فقد يكون لديك مطورون أو متحمسون يختبرون "nightlies" ، حتى إذا كانوا يستخدمون الإصدار الثابت الافراج كذلك.

وفقًا لـ PyTorch:

  • يتم تثبيت البرنامج الضار باسم الملف triton. بشكل افتراضي ، تتوقع العثور عليه في الدليل الفرعي triton/runtime في دليل حزم مواقع Python. بالنظر إلى أن أسماء الملفات وحدها هي مؤشرات ضعيفة للبرامج الضارة ، ومع ذلك ، تعامل مع وجود هذا الملف كدليل على الخطر ؛ لا تتعامل مع غيابه كشيء واضح.
  • البرمجيات الخبيثة في هذا الهجوم بالذات لها مجموع SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. مرة أخرى ، يمكن بسهولة إعادة تجميع البرامج الضارة لإنتاج مجموع اختباري مختلف ، لذا فإن عدم وجود هذا الملف ليس علامة على صحة مؤكدة ، ولكن يمكنك التعامل مع وجوده كعلامة على الإصابة.
  • انتهت عمليات بحث DNS المستخدمة لسرقة البيانات باسم المجال H4CK.CFD. إذا كانت لديك سجلات شبكة تسجل عمليات بحث DNS بالاسم ، فيمكنك البحث عن هذه السلسلة النصية كدليل على تسرب البيانات السرية.
  • يبدو أن ردود DNS الخبيثة قد ذهبت إلى ، والردود ، إن وجدت ، جاءت من خادم DNS يسمى WHEEZY.IO. في الوقت الحالي ، لا يمكننا العثور على أي أرقام IP مرتبطة بهذه الخدمة ، ولم تقدم PyTorch أي بيانات IP من شأنها ربط DNS taffic بهذه البرامج الضارة ، لذلك نحن لسنا متأكدين من مدى استخدام هذه المعلومات في البحث عن التهديدات. في الوقت الحالي [2023-01-01T21: 05: 00Z].

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

ولكن إذا كنت من المتحمسين لـ PyTorch الذين يتعاملون مع البنايات الليلية ، وإذا كنت تعمل خلال الإجازات ، فعندئذٍ حتى إذا لم تتمكن من العثور على أي دليل واضح على تعرضك للاختراق ...

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

إذا كنت تشك في تعرضك للاختراق ، بالطبع ، فلا تؤجل تحديثات مفتاح SSH - إذا لم تكن قد قمت بها بالفعل ، فقم بها الآن!


الطابع الزمني:

اكثر من الأمن عارية