
نظام ثنائي للترخيص والمراقبة لنظام macOS
[!NOTE] اعتبارًا من عام 2025، لم يعد Santa مدعومًا من Google. نشجع المستخدمين الحاليين على الترحيل إلى فرع نشط من Santa، مثل https://github.com/northpolesec/santa.
Santa هو نظام للترخيص بالوصول إلى الملفات والبرامج الثنائية لنظام macOS. يتكون من امتداد نظام يراقب عمليات التنفيذ، وخفيّة تتخذ قرارات التنفيذ بناءً على محتويات قاعدة بيانات محلية، وعامل واجهة مستخدم رسومي يُعلم المستخدم في حالة قرار الحظر، وأداة سطر أوامر لإدارة النظام ومزامنة قاعدة البيانات مع خادم.
سُمي Santa لأنه يتتبع البرامج الثنائية المشاغبة أو اللطيفة.
وثائق Santa مخزنة في دليل Docs ومنشورة على https://santa.dev.
تتضمن الوثائق خيارات النشر، تفاصيل كيفية عمل أجزاء من Santa، وتعليمات لتطوير Santa نفسه.
إذا كانت لديك أسئلة أو تحتاج مساعدة في البدء، فإن مجموعة santa-dev مكان رائع.
إذا كنت تعتقد أن لديك خطأ، فلا تتردد في الإبلاغ عن مشكلة وسنرد في أقرب وقت ممكن.
إذا كنت تعتقد أنك وجدت ثغرة أمنية، فيرجى قراءة سياسة الأمان للإبلاغ عنها.
أوضاع متعددة: في الوضع الافتراضي MONITOR، سيُسمح بتشغيل جميع البرامج الثنائية باستثناء تلك المحددة كمحظورة، مع تسجيلها في قاعدة بيانات الأحداث. في الوضع LOCKDOWN، يُسمح فقط بتشغيل البرامج الثنائية المدرجة.
تسجيل الأحداث: عند تحميل امتداد النظام، يتم تسجيل جميع إطلاقات البرامج الثنائية. في أي من الوضعين، تُخزَّن جميع البرامج الثنائية غير المعروفة أو المرفوضة في قاعدة البيانات لتمكين التجميع لاحقًا.
قواعد تستند إلى الشهادات، بمستويات تجاوز: بدلاً من الاعتماد على بصمة البرنامج الثنائي (أو 'البصمة الرقمية')، يمكن السماح/حظر البرامج القابلة للتنفيذ بناءً على شهادة التوقيع الخاصة بها. وبالتالي يمكنك السماح/حظر جميع البرامج الثنائية لناشر معين تم توقيعها بتلك الشهادة عبر تحديثات الإصدارات. لا يمكن السماح لبرنامج ثنائي بشهادته إلا إذا تم التحقق من توقيعه بشكل صحيح، لكن قاعدة لبصمة البرنامج الثنائي ستتجاوز قرار الشهادة؛ أي يمكنك السماح بشهادة بينما تحظر برنامجًا ثنائيًا موقَّعًا بتلك الشهادة، أو العكس.
قواعد تستند إلى المسار (عبر NSRegularExpression/ICU): يتيح ذلك ميزة مشابهة لتلك الموجودة في Managed Client (سابقة ملفات التكوين، التي استخدمت نفس آلية التنفيذ)، قيود إطلاق التطبيقات عبر برنامج mcxalr. يحمل هذا التنفيذ فائدة إضافية تتمثل في إمكانية تكوينه عبر regex، وعدم الاعتماد على LaunchServices. كما هو موضح في الويكي، عند تقييم القواعد، يحمل هذا أولوية دنيا.
قواعد شهادات آمنة: لا يمكنك وضع قاعدة حظر تمنع الشهادة المستخدمة لتوقيع launchd، المعروفة أيضًا باسم pid 1، وبالتالي جميع المكونات المستخدمة في macOS. بالتالي، يُسمح تلقائيًا بالبرامج الثنائية في كل تحديث نظام (وفي بعض الحالات إصدارات كاملة جديدة). لا يؤثر هذا على برامج متجر App Store من Apple، التي تستخدم شهادات مختلفة تتغير بانتظام للتطبيقات الشائعة. وبالمثل، لا يمكنك حظر Santa نفسه، ويستخدم Santa شهادة منفصلة ومميزة عن تطبيقات Google الأخرى.
مكونات مساحة المستخدم تتحقق من بعضها البعض: كل مكون من مكونات مساحة المستخدم (الخفيّة، واجهة المستخدم الرسومية، وأداة سطر الأوامر) تتواصل مع بعضها البعض باستخدام XPC وتتحقق من أن شهادات التوقيع الخاصة بها متطابقة قبل قبول أي اتصال.
التخزين المؤقت: يتم تخزين البرامج الثنائية المسموح بها مؤقتًا بحيث لا تتم معالجة الطلب إلا إذا لم يكن البرنامج الثنائي مخزَّنًا بالفعل.
لا يمكن لنظام أو عملية واحدة إيقاف جميع الهجمات، أو توفير أمان بنسبة 100%. كُتب Santa بهدف المساعدة في حماية المستخدمين من أنفسهم. غالبًا ما يقوم الأشخاص بتنزيل البرامج الضارة والثقة بها، مما يمنح البرامج الضارة بيانات الاعتماد، أو يسمح للبرامج غير المعروفة بتسريب المزيد من البيانات حول نظامك. كمكوّن مركزي الإدارة، يمكن لـ Santa المساعدة في إيقاف انتشار البرامج الضارة بين عدد كبير من الأجهزة. بشكل مستقل، يمكن لـ Santa المساعدة في تحليل ما يتم تشغيله على جهاز الكمبيوتر الخاص بك.
Santa هو جزء من استراتيجية الدفاع المتعمق، ويجب عليك الاستمرار في حماية الأجهزة بأي طرق أخرى تراها مناسبة.
يمنع Santa فقط التنفيذ (execve والمتغيرات)، ولا يحمي من المكتبات الديناميكية المُحمَّلة بـ dlopen، أو المكتبات على القرص التي تم استبدالها، أو المكتبات المُحمَّلة باستخدام DYLD_INSERT_LIBRARIES.
البرامج النصية: كُتب Santa حاليًا لتجاهل أي تنفيذ ليس برنامجًا ثنائيًا. وذلك لأنه بعد موازنة تكلفة الإدارة مقابل الفائدة، وجدنا أنه لا يستحق العناء. بالإضافة إلى ذلك، تستخدم العديد من التطبيقات برامج نصية مؤقتة مُنشأة، والتي لا يمكننا السماح بها بأي حال، وعدم القيام بذلك قد يسبب مشاكل. يسعدنا إعادة النظر في هذا (أو على الأقل جعله خيارًا) إذا كان مفيدًا للآخرين.
يتضمن عميل سطر الأوامر santactl علامة للمزامنة مع خادم إدارة، والذي يقوم بتحميل الأحداث التي حدثت على الجهاز وتنزيل القواعد الجديدة. هناك العديد من الخوادم مفتوحة المصدر التي يمكنك المزامنة معها:
بدلاً من ذلك، يمكن لـ santactl تكوين القواعد محليًا (بدون خادم مزامنة).
أداة مثل Santa لا تصلح حقًا لقطات الشاشة، لذا إليك فيديو بدلاً من ذلك.
نرحب جدًا بالتصحيحات لهذا المشروع. يرجى الاطلاع على وثيقة المساهمة.
هذا ليس منتجًا رسميًا من Google.