Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sinter — نظام ترخيص تطبيقات في وضع المستخدم لنظام MacOS مكتوب بلغة Swift | Kitploit
أدوات/GitHubGitHub/trailofbits/sinter
أدوات دفاعيةتدقيق التكوينالاستجابة للحوادثArchived
GitHubtrailofbits/sinter

sinter

نظام ترخيص تطبيقات في وضع المستخدم لنظام MacOS مكتوب بلغة Swift

عرض المستودعالموقع الإلكتروني
29915منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Sinter

Build Status

Sinter هو وكيل أمان لنقاط النهاية يعمل في وضع المستخدم بنسبة 100% لنظام macOS 10.15 وما فوق، مكتوب بلغة Swift.

يستخدم Sinter واجهة برمجة تطبيقات EndpointSecurity في وضع المستخدم للاشتراك في استدعاءات التفويض من نواة macOS واستلامها، لمجموعة من أنواع الأحداث ذات الصلة بالأمان. الإصدار الحالي من Sinter يدعم السماح/رفض تنفيذ العمليات؛ في الإصدارات المستقبلية نعتزم دعم أنواع أخرى من الأحداث مثل أحداث الملفات والمآخذ والنواة.

Sinter قيد التطوير. الترحيب بالملاحظات. إذا كنت مهتمًا بالمساهمة أو رعايتنا للمساعدة في تحقيق إمكاناته، تواصل معنا.

الميزات

  • السماح أو رفض تنفيذ العملية بواسطة تجزئة دليل الكود (المعروفة باسم "CD hash")
    • خيار لرفض جميع البرامج غير المعروفة (أي برنامج غير مسموح به صراحة)
    • خيار لرفض جميع البرامج غير الموقعة
    • خيار لرفض جميع البرامج ذات التوقيعات غير الصالحة
  • وضع "المراقبة" لتتبع وتسجيل (مع السماح) جميع أحداث تنفيذ العمليات
  • قبول قواعد السماح/الرفض من خادم مزامنة Santa
  • تكوين قواعد الرفض بتنسيق JSON، سواء محليًا أو عبر خادم المزامنة
  • تسجيل في نظام الملفات المحلي بتنسيق JSON منظم

الميزات المخطط لها في المستقبل:

  • رفض تنفيذ العملية بواسطة مسار ملف التنفيذ
  • رفض تنفيذ العملية بواسطة معرف فريق الشهادة

مضادات الميزات

  • لا يستخدم امتدادات النواة (التي سيتم إيقافها رسميًا في macOS 11 Big Sur)
  • لا يدعم أنظمة macOS القديمة (10.14 أو أقدم)
  • لا يستخدم أي كود غير آمن للذاكرة
  • يحد من تبعيات المكتبات الخارجية
  • ليس برنامجًا لمكافحة البرامج الضارة أو الفيروسات. لا توجد قاعدة بيانات توقيع. يرفض فقط ما تطلب رفضه، باستخدام القواعد.

الخلفية

الحل الأول مفتوح المصدر لنظام macOS للسماح/رفض العمليات كان Google Santa. نحن معجبون بـ Santa، وقد ساهمنا في قاعدة الكود الخاصة به في الماضي. لفترة طويلة، مع ذلك، طلب العديد من مجتمع macOS حلاً مفتوح المصدر لتتبع وإدارة أكثر من مجرد أحداث العملية.

رأينا المنصة المثالية لبناء هذه القدرة مع واجهة برمجة تطبيقات EndpointSecurity في macOS 10.15. البدء من الصفر حول واجهة برمجة تطبيقات تعمل في وضع المستخدم بشكل صارم يعني أنه يمكننا محاولة تصميم أبسط، واستخدام لغة برمجة حديثة مع معالجة أكثر أمانًا للذاكرة وأداء أفضل. لذلك، شرعنا في تطوير Sinter، وهو اختصار لـ "Sinter Klausen"، اسم آخر لسانتا كلوز.

البدء

قم بتنزيل وتثبيت أحدث إصدار من Sinter باستخدام رابط مثبت pkg من صفحة الإصدارات.

بعد تثبيت Sinter، يجب تمكين إذن "الوصول الكامل إلى القرص" لتطبيق Sinter.app. قم بذلك عن طريق فتح تفضيلات النظام، علامة التبويب الأمان والخصوصية، الوصول الكامل إلى القرص. حدد العنصر الخاص بـ Sinter.app. إذا كنت تستخدم MDM، يمكنك تمكين هذا الإذن تلقائيًا على نقاط النهاية الخاصة بك، ولن تكون هناك حاجة لتفاعل المستخدم.

التكوين

يتطلب Sinter وجود ملف تكوين في /etc/sinter/config.json. يتم توفير مثال في شجرة المصدر في ./config/config.json:

root@kitploit:~
{
  "Sinter": {
    "decision_manager": "local",
    "logger": "filesystem",

    "allow_unsigned_programs": "true",
    "allow_invalid_programs": "true",
    "allow_unknown_programs": "true",
    "allow_expired_auth_requests": "true",
    "allow_misplaced_applications": "true",

    "config_update_interval": 600,

    "allowed_application_directories": [
      "/bin",
      "/usr/bin",
      "/usr/local/bin",
      "/Applications",
      "/System",
      "/usr/sbin",
      "/usr/libexec",
    ],
  },
  
  "FilesystemLogger": {
    "log_file_path": "/var/log/sinter.log",
  },

  "RemoteDecisionManager": {
    "server_url": "https://server_address:port",
    "machine_identifier": "identifier",
  },

  "LocalDecisionManager": {
    "rule_database_path": "/etc/sinter/rules.json",
  }
}

يمكن تحديد مكون إضافي لمدير القرار عن طريق تغيير قيمة decision_manager. سيقوم المكون الإضافي المحلي بتمكين قسم تكوين LocalDecisionManager، مما يوجه Sinter لاستخدام قاعدة البيانات المحلية للقواعد الموجودة في المسار المحدد. من الممكن استخدام خادم مزامنة متوافق مع Santa، عن طريق استخدام المكون الإضافي sync-server بدلاً من ذلك. هذا يمكّن قسم تكوين RemoteDecisionManager، حيث يمكن تعيين عنوان URL للخادم ومعرف الجهاز.

هناك مكونان إضافيان للتسجيل تم تنفيذهما حاليًا:

  1. نظام الملفات: تتم كتابة الرسائل إلى ملف، باستخدام المسار المحدد في FilesystemLogger.log_file_path
  2. التسجيل الموحد: يتم إصدار السجلات باستخدام نظام التسجيل الموحد، باستخدام com.trailofbits.sinter كنظام فرعي.

أدلة التطبيقات المسموح بها

من الممكن تكوين Sinter لتسجيل ورفض التطبيقات التي لم يتم تشغيلها من مجلد مسموح به اختياريًا.

  • allow_misplaced_applications: إذا تم تعيينه على true، ستولد التطبيقات في غير مكانها تحذيرًا فقط. إذا تم تعيينه على false، سيتم رفض أي تنفيذ لا يبدأ من مسار صالح.
  • allowed_application_directories: إذا لم يكن فارغًا، سيتم استخدامه لتحديد ما إذا كانت التطبيقات موجودة في المجلد الخطأ.

تمكين إشعارات واجهة المستخدم

  1. قم بتثبيت خادم الإشعارات (سيفعل مثبت PKG هذا تلقائيًا): sudo /Applications/Sinter.app/Contents/MacOS/Sinter --install-notification-server
  2. ابدأ الوكيل: /Applications/Sinter.app/Contents/MacOS/Sinter --start-notification-server

تكوين Sinter في وضع المراقبة (MONITOR)

لم يتم تنفيذ الأوضاع في Sinter، حيث كل شيء يعتمد على القواعد. من الممكن تنفيذ وظيفة المراقبة عن طريق تعديل الإعدادات التالية:

  • allow_unsigned_programs: السماح للتطبيقات غير الموقعة
  • allow_invalid_programs: السماح للتطبيقات التي تفشل في فحص التوقيع
  • allow_unknown_programs: السماح تلقائيًا للتطبيقات غير المغطاة بقاعدة القواعد النشطة
  • allow_expired_auth_requests: تتطلب واجهة برمجة تطبيقات EndpointSecurity من Sinter الرد على طلبات التفويض خلال إطار زمني غير محدد (عادةً أقل من دقيقة). ستستغرق التطبيقات الكبيرة، مثل Xcode، وقتًا طويلاً للتحقق. يتم رفض هذه العمليات افتراضيًا، ومن المتوقع أن يحاول المستخدم مرة أخرى بمجرد التحقق من التطبيق. يؤدي تعيين هذا التكوين على true إلى تغيير هذا السلوك بحيث يُسمح دائمًا بهذه الطلبات.

تنسيق القاعدة

قواعد البيانات مكتوبة بتنسيق JSON. إليك مثال لقاعدة بيانات تسمح بحزمة تطبيق CMake من cmake.org:

root@kitploit:~
{
  "rules": [
    {
      "rule_type": "BINARY",
      "policy": "ALLOWLIST",
      "sha256": "BDD0AF132D89EA4810566B3E1E0D1E48BAC6CF18D0C787054BB62A4938683039",
      "custom_msg": "CMake"
    }
  ]
}

يدعم Sinter حاليًا قواعد BINARY فقط، باستخدام سياسات ALLOWLIST أو DENYLIST. يمكن الحصول على قيمة تجزئة دليل الكود من مخرجات أداة codesign (مثال: codesign -dvvv /Applications/CMake.app). لاحظ أنه على الرغم من أن أدوات سطر الأوامر يمكنها الحصول على تجزئة SHA256 كاملة، فإن واجهة برمجة تطبيقات Kernel/EndpointSecurity تقتصر على أول 20 بايت.

البناء من المصدر

يتطلب بناء Sinter شهادات وتراخيص معينة لتوقيع الكود يجب أن تمنحها Apple لمؤسستك. ومع ذلك، لا يزال من الممكن بناء Sinter من المصدر وتشغيله محليًا على نظام اختبار مع تعطيل SIP. للحصول على التعليمات، راجع ويكي Sinter.

الترخيص

Sinter مرخص وموزع بموجب ترخيص AGPLv3. اتصل بنا إذا كنت تبحث عن استثناء للشروط.

تنزيل الأداة