مجموعة أدوات تعلم الآلة من عيد الميلاد إلى العام الجديد – Naked Security

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

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

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

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

أنشأ المهاجمون بشكل ضار حزمة Python تسمى 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 بشكل خاص بيئات Linux 64 بت.

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

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

سرقة بيانات DNS

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

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

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

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

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


LOG4SHELL LIVE DEMO الذي يشرح شرح البيانات عبر DNS

https://www.youtube.com/watch؟v=jSs6bjmv6ak

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


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

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

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

الجانب السلبي الوحيد للمحتالين هو أن استعلامات DNS محدودة الحجم إلى حد ما.

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

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

بهذه الطريقة ، يمكن للمحتالين سرقة الكثير من البيانات الخاصة ، بما في ذلك مفاتيح الوصول إلى الخادم ، دون إنشاء عدد لا يمكن إدارته من عمليات بحث 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 بهذه البرامج الضارة ، لذلك لا نعرف مقدار هذه المعلومات المستخدمة في البحث عن البرامج الضارة. . في هذه اللحظة [2023-01-01T21:05:00Z].

لحسن الحظ ، نفترض أن غالبية مستخدمي PyTorch لن يتأثروا بهذا ، إما لأنهم لا يستخدمون الإصدارات الليلية ، أو لأنهم لم يكونوا يعملون خلال فترة العطلة ، أو كلاهما.

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

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

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


Leave a Comment