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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
macOS-Security-and-Privacy-Guide — دليل مُنسّق للأمان والخصوصية في نظام macOS مع إرشادات عملية لنمذجة التهديدات، وتشفير القرص، وإعداد جدار الحماية، والمصادقة الآمنة، وتحصين الشبكة. | Kitploit
أدوات/GitHubGitHub/drduh/macos-security-and-privacy-guide
أمن الشبكاتأمن الشبكات اللاسلكيةالتشفيرالخصوصيةالمصادقةالتعلم والتعليمموارد منسقة
GitHubdrduh/macos-security-and-privacy-guide

macOS-Security-and-Privacy-Guide

دليل مُنسّق للأمان والخصوصية في نظام macOS مع إرشادات عملية لنمذجة التهديدات، وتشفير القرص، وإعداد جدار الحماية، والمصادقة الآمنة، وتحصين الشبكة.

عرض المستودع
22.5k1.5kمنذ 8س 48دتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

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

بالنسبة لأجهزة Mac المُدارة من قبل المؤسسات، راجع مشروع الامتثال الأمني لنظام macOS، الذي يحتفظ به المعهد الوطني الأمريكي للمعايير والتكنولوجيا.

تم توفير هذا الدليل "كما هو" - دون أي ضمانات من أي نوع. أنت وحدك المسؤول عن أي عواقب ناتجة عن اتباعه.

  • الأساسيات
  • نموذج التهديد
    • الأصول
    • الخصوم
    • القدرات
    • التخفيفات
    • نموذج مثال
  • العتاد
  • تثبيت macOS
    • تفعيل النظام
    • حساب Apple
    • متجر التطبيقات
    • المحاكاة الافتراضية
      • حاويات Apple
  • الإقلاع الأول
  • حسابات المدير والمستخدم
    • تحذيرات
    • الإعداد
  • البرنامج الثابت
  • FileVault
  • وضع القفل
  • جدار الحماية
    • جدار الحماية على مستوى التطبيق
      • وضع التخفي
      • التطبيقات الموقعة
      • إعادة تحميل جدار الحماية
      • الحصول على الحالة
      • AirDrop
    • جدران حماية من جهات خارجية
    • مرشح الحزم
      • مثال على إعداد pf
      • أوامر جدار الحماية
      • حظر الشبكات
  • الخدمات
  • اقتراحات Siri وSpotlight
  • Homebrew
  • DNS
    • ملفات تعريف DNS
    • ملف hosts
    • DNSCrypt
    • Dnsmasq
  • سلطات الشهادات
  • Privoxy
  • المتصفح
    • Firefox
    • Chrome
    • Safari
    • خصوصية متصفح الويب
  • Tor
  • VPN
  • PGP/GPG
  • البريد الإلكتروني
    • Thunderbird
  • تطبيقات المراسلة
    • XMPP
    • Signal
    • iMessage
  • البرمجيات الخبيثة
    • تنزيل البرامج
    • App Sandbox
    • Hardened Runtime
    • مضاد الفيروسات
    • Gatekeeper
  • حماية التكامل النظامي
  • البيانات الوصفية والآثار
  • المصادقة
  • النسخ الاحتياطي
  • Wi-Fi
  • SSH
  • الوصول المادي
  • المراقبة
    • السجلات
    • DTrace
    • العمليات
    • الشبكة
      • Wireshark
  • متفرقات
    • شاشة التوقف
    • بيانات التشخيص
    • مشغل الوسائط
    • معالجات الملفات
    • خيارات Finder
    • umask مخصص
    • إدخال لوحة المفاتيح
    • تقوية الشبكة
    • Sudoers
  • البرامج ذات الصلة
  • موارد إضافية

الأساسيات

طبّق أفضل ممارسات الأمان العامة:

  • أنشئ نموذج تهديد

    • هل خصمك متجسس محلي، أو مجرم يستخدم برمجيات خبيثة شائعة، أو منظمة ممولة جيدًا وذات قدرات عالية؟
    • حدد التهديدات أو المجموعات التي تدافع ضدها وما يمكنها فعله بشكل واقعي.
  • حافظ على تحديث النظام والبرمجيات

    • ثبّت بانتظام التحديثات المتاحة لنظام التشغيل وجميع التطبيقات.
    • تُثبَّت التحديثات في إعدادات النظام أو باستخدام الأداة المساعدة لسطر الأوامر softwareupdate. لا يتطلب أي منهما حساب Apple.
    • اشترك في القائمة البريدية Apple security-announce أو تحقق من إصدارات Apple الأمنية.
  • شفّر البيانات الحساسة

    • فعّل FileVault لتشفير التخزين الداخلي.
    • استخدم مدير كلمات المرور لبيانات اعتماد الحسابات، وفكر في تشفير الملفات شديدة الحساسية بشكل منفصل.
  • تأكد من توفر البيانات

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

    • في النهاية، يعتمد أمان النظام على قدرات وعادات المسؤول عنه.
    • توخَّ الحذر عند تثبيت برمجيات جديدة: ثبّتها فقط من مصادر يحددها المطور على أنها رسمية، مثل موقعه الإلكتروني أو مستودع GitHub الخاص به.

نموذج التهديد

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

الأصول

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

اسردها حسب الأهمية، بدءًا من تلك التي تستحق الحماية أكثر.

الخصوم

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

القدرات

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

التخفيفات

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

يجب موازنة الأمان مع قابلية الاستخدام: كل تخفيف يجب أن يعاكس بعض القدرات العدائية لتبرير أي إزعاج. توقف عن إضافة الدفاعات عندما تكون المخاطر المتبقية مقبولة بالنسبة لموقف معين. أعد النظر في النموذج عندما تتغير الأجهزة أو البيانات أو السفر أو العمل أو الخصوم.

نموذج مثال

الجدول التالي هو مثال على نموذج تهديد بسيط:

اقرأ المزيد حول نمذجة التهديدات.

العتاد

عتاد Apple silicon يوفر ميزات أمان مدعومة بالعتاد، بما في ذلك حماية المفاتيح القائمة على Secure Enclave وخيارات أمان إقلاع أقوى. وهو عمومًا المنصة المفضلة للحمايات التي يناقشها هذا الدليل.

تتأثر بعض أجهزة Mac القائمة على Intel، خاصة الطرازات المزودة بعتاد حقبة T2 المعرض للخطر، بثغرات أمنية في العتاد لا يمكن إصلاحها بالكامل عبر تحديث macOS.

تجنب العتاد غير التابع لـ Apple الذي يشغل macOS، والأنظمة التي لا تدعم أحدث إصدار من macOS، لأن Apple لا تصحح جميع الثغرات الأمنية في الإصدارات القديمة.

تتلقى ملحقات Apple عمومًا تحديثات البرنامج الثابت عبر macOS وتدعم ميزات أمان Bluetooth الحالية. على سبيل المثال، تستخدم Bluetooth Low Energy (BLE) Privacy عناوين أجهزة متبدلة لتقليل التتبع؛ وقد لا تدعم الملحقات من جهات خارجية هذه الميزة.

تثبيت macOS

هناك عدة طرق لتثبيت macOS.

ثبّت أحدث إصدار مدعوم من macOS؛ تتضمن الإصدارات الأحدث من macOS إصلاحات أمنية وتحسينات أخرى غير متوفرة في الإصدارات السابقة.

تفعيل النظام

أثناء التثبيت، تتواصل أجهزة Mac المزودة بـ Apple silicon مع خدمة تفعيل Apple للتأكد من عدم الإبلاغ عن الجهاز كـ مفقود أو مسروق. اقرأ عن كيفية عمل هذه العملية.

حساب Apple

حساب Apple اختياري للاستخدام الأساسي لنظام macOS ولكنه مطلوب لمتجر التطبيقات والعديد من خدمات Apple. راجع إعدادات خصوصية البيانات قبل تفعيل الميزات.

فعّل التشفير من طرف إلى طرف لـ iCloud وراجع بيانات حساب Apple.

متجر التطبيقات

متجر التطبيقات هو منصة توزيع برمجيات حيث تراجع Apple التطبيقات.

تتطلب تطبيقات متجر التطبيقات استخدام App Sandbox وHardened Runtime (ميزات أمان تقيد ما يمكن للتطبيقات فعله، مما يصعّب بعض الهجمات). كما يوفر تحديثات برمجية تلقائية.

يتطلب استخدام متجر التطبيقات حساب Apple، وهو ما قد يشكل خطرًا على الخصوصية.

المحاكاة الافتراضية

تمكن المحاكاة الافتراضية نظام تشغيل آخر من العمل داخل آلة افتراضية معزولة. على Apple silicon، يمكن لنظام macOS تشغيل أنظمة macOS ضيفة مدعومة وWindows 11 لـ ARM باستخدام تطبيقات مثل التالية:

  • UTM - اتبع التوثيق لإنشاء أجهزة macOS افتراضية وأخرى.
  • VirtualBuddy - تطبيق لمحاكاة macOS 12+ افتراضيًا على Apple silicon.
  • Bushel - تطبيق خفيف ومجاني. عند الإطلاق الأول، اختر "Ask App Not to Track".
  • VMware Fusion - أصبح مجانيًا الآن تحت Broadcom. واجهة نظيفة، وإعداد سهل لنظام macOS، ويدعم Windows 11 ARM.
  • tart (CLI) - تطبيق سطر أوامر يُثبت عبر Homebrew.
  • Parallels - خيار مدفوع مع تكامل قوي.

[!WARNING] يتطلب VMware حساب Broadcom وقبول الاتفاقيات قبل التنزيل. يتطلب Parallels حسابًا وتفاصيل دفع وبيانات أخرى - راجع إشعار الخصوصية.

حاويات Apple

Apple Container هو أداة سطر أوامر لتشغيل حاويات Linux على macOS. على عكس بيئات تشغيل الحاويات التي تشارك آلة افتراضية واحدة لنظام Linux، يشغل Apple Container كل حاوية في آلة افتراضية معزولة وخفيفة باستخدام قدرات المحاكاة الافتراضية في macOS. يوفر هذا حدًا أقوى للعزل بين أعباء العمل ونظام التشغيل المضيف.

الإقلاع الأول

عندما يبدأ macOS لأول مرة، يطلب Setup Assistant إنشاء حساب رئيسي.

عيّن كلمة مرور طويلة وفريدة. اترك حقل تلميح كلمة المرور فارغًا.

تجنب الأسماء التي تحدد هوية شخصية: اسم الكمبيوتر (مثل "John Appleseed's MacBook") يُبث عبر الشبكات المحلية ويكون مرئيًا للأجهزة الأخرى.

يمكن تكوين اسم النظام في System Settings > About أو باستخدام أوامر scutil:```bash sudo scutil --set ComputerName MacBook sudo scutil --set HostName MacBook sudo scutil --set LocalHostName MacBook

root@kitploit:~
# حسابات المسؤول والمستخدمين

أول حساب يتم إنشاؤه هو حساب مسؤول. يمكن للمسؤولين تغيير إعدادات النظام بالكامل وتشغيل الأوامر باستخدام [sudo](https://en.wikipedia.org/wiki/Sudo)، الذي يمنح صلاحيات مرتفعة مؤقتًا. أي برنامج يشغّله المسؤول قد يحصل على نفس الصلاحيات؛ وقد يحتوي sudo أيضًا على [ثغرات](https://bogner.sh/2014/03/another-mac-os-x-sudo-password-bypass/).

يُعتبر استخدام حساب قياسي مخصص للعمل اليومي المنتظم واستخدام حساب المسؤول فقط لتثبيت البرامج والنظام وتكوينهما وتحديثهما [أفضل ممارسة](https://help.apple.com/machelp/mac/10.12/index.html#/mh11389).

ليس من الضروري تسجيل الدخول بحساب المسؤول عبر شاشة تسجيل الدخول في macOS. عندما يتطلب أمر في Terminal صلاحيات المسؤول، سيطلب النظام المصادقة ويواصل Terminal استخدام تلك الصلاحيات. وتحقيقًا لذلك، تقدّم Apple [توصيات](https://support.apple.com/102099) لإخفاء حساب المسؤول والمجلد الرئيسي الخاص به.

## تحذيرات

- يمكن للمسؤولين فقط تثبيت التطبيقات في دليل `/Applications` على مستوى النظام. يطلب Finder وInstaller من المستخدم القياسي إدخال بيانات اعتماد المسؤول عند الحاجة إلى الموافقة. يمكن تثبيت بعض التطبيقات بدلاً من ذلك في `~/Applications`؛ التطبيقات التي لا تتطلب صلاحيات المسؤول يجب تثبيتها في دليل المستخدم. ما تزال تطبيقات App Store تُثبَّت في `/Applications` ولا تتطلب مصادقة إضافية.
- عادةً لا يُصرَّح للمستخدم القياسي باستخدام `sudo`. عندما تكون صلاحيات المسؤول مطلوبة، يطلب macOS بيانات اعتماد أحد المسؤولين، أو يمكن تشغيل المهمة من حساب مسؤول.
- تتطلب إعدادات النظام والعديد من أدوات النظام (مثل Wi-Fi Diagnostics) إذن المسؤول للعمل بكامل الوظائف. تحتاج بعض إعدادات النظام إلى إلغاء قفلها باختيار أيقونة القفل. بعض التطبيقات تطلب المصادقة ببساطة عند فتحها، بينما يجب فتح أخرى مباشرة من حساب مسؤول للوصول إلى جميع الوظائف (مثل Console).
- تفترض بعض تطبيقات الطرف الثالث أن المستخدم الحالي هو مسؤول ولن تعمل من حساب قياسي.
- راجع [المشكلة 167](https://github.com/drduh/macOS-Security-and-Privacy-Guide/issues/167) لاعتبارات إضافية.

## الإعداد

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

يمكن خفض رتبة حساب من حساب المسؤول الجديد في إعدادات النظام.

انظر أيضًا [هذه المشاركة](https://superuser.com/a/395738) لمزيد من المعلومات حول كيفية تحديد macOS لعضوية المجموعات.

# البرنامج الثابت

تحقق من ضبط أمان البرنامج الثابت على [Full Security](https://support.apple.com/guide/mac-help/mchl768f7291/mac) لمنع العبث بالنظام. هذا هو الإعداد الافتراضي.

# FileVault

تستخدم أجهزة Mac المزودة بشريحة Apple silicon تشفير التخزين المدعوم بالعتاد افتراضيًا. يتطلب [FileVault](https://support.apple.com/guide/mac-help/protect-data-on-your-mac-with-filevault-mh11785/mac) بالإضافة إلى ذلك كلمة مرور مستخدم مصرح له لفتح وحدة تخزين بدء التشغيل بعد إعادة التشغيل.

على أجهزة Apple silicon، يحمي تفويض FileVault أيضًا [البرنامج الثابت](https://support.apple.com/102384)، مما يمنع الإقلاع من أي شيء آخر غير قرص بدء التشغيل المحدد، والوصول إلى [وضع الاسترداد](https://support.apple.com/guide/mac-help/macos-recovery-a-mac-apple-silicon-mchl82829c17/15.0/mac/15.0#mchl5abfbb29)، و[إحياء](https://support.apple.com/108900) الجهاز باستخدام وضع تحديث برنامج الجهاز (DFU).

سيطلب FileVault تعيين مفتاح استعادة، ويجب تخزينه في مكان آمن إذا تم استخدامه. يوفّر FileVault أيضًا خيار استخدام iCloud للاستعادة.

تحقق من حالة FileVault:```bash
fdesetup status

وضع القفل

يعمل وضع القفل على تقليل سطح الهجوم بشكل كبير من خلال تعطيل ميزات النظام والتطبيقات التي تُستغل غالبًا في الهجمات المتطورة.

عند تفعيل وضع القفل، يتوفر في Safari خيار استبعاد المواقع الموثوقة من القيود.

جدار الحماية

تتوفر عدة أنواع من جدران الحماية لنظام macOS.

[!NOTE] إذا حصل البرنامج الضار على تحكم المدير، فقد يعطل سياسات جدار الحماية أو يتجاوزها؛ لا تعتمد على جدار الحماية المحلي كحماية قوية ضد اختراق النظام بالكامل.

جدار حماية طبقة التطبيقات

يوفر جدار الحماية المدمج حماية أساسية ويحظر الاتصالات الواردة فقط. لا يمكنه مراقبة الاتصالات الصادرة أو حظرها.

يمكن التحكم فيه من خلال تبويب جدار الحماية في الشبكة ضمن إعدادات النظام، أو باستخدام الأمر التالي:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

root@kitploit:~
### وضع التخفي

غالبًا ما يقوم المهاجمون بمسح الشبكات لتحديد الأنظمة المستهدفة. عند تمكين [وضع التخفي](https://support.apple.com/guide/mac-help/use-stealth-mode-to-keep-your-mac-more-secure-mh17133/mac)، لا يتم إرسال ردود لمحاولات الاتصال من المنافذ المغلقة، مما يجعل النظام أكثر صعوبة في اكتشافه.

تمكين وضع التخفي:```bash
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on

التطبيقات الموقعة

افتراضيًا، يسمح جدار الحماية بالاتصالات الواردة للبرامج الموقعة من Apple أو من مطور معروف. يؤدي تعطيل هذه القواعد إلى جعل macOS يطلب الإذن قبل السماح لتطبيق بقبول الاتصالات الواردة:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off

root@kitploit:~
### إعادة تحميل جدار الحماية

بعد تغيير الإعدادات باستخدام `socketfilterfw`، أعد تحميل خدمة جدار الحماية لتطبيق التكوين الجديد:```bash
sudo pkill -HUP socketfilterfw

الحصول على الحالة

تأكيد حالة جدار الحماية:```bash for firewallFlag in
--getglobalstate
--getblockall
--getallowsigned
--getstealthmode
--listapps do /usr/libexec/ApplicationFirewall/socketfilterfw "$firewallFlag" done

root@kitploit:~
أو باستخدام [system profiler](https://ss64.com/mac/system_profiler.html):```bash
system_profiler SPFirewallDataType

AirDrop

تمكين جدار الحماية على مستوى التطبيق وتعطيل الاتصالات الواردة للبرامج المدمجة يمنع AirDrop من العمل. لكي يعمل AirDrop، امنح استثناءات جدار الحماية لكل من sharingd وrapportd:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/libexec/rapportd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/libexec/sharingd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/libexec/rapportd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/libexec/sharingd

root@kitploit:~
## جدران الحماية من جهات خارجية

توفر تطبيقات مثل [Little Snitch](https://www.obdev.at/products/littlesnitch/index.html) و[Radio Silence](https://radiosilenceapp.com/) و[LuLu](https://objective-see.com/products/lulu.html) توازنًا بين سهولة الاستخدام والأمان.

هذه البرامج قادرة على مراقبة وحظر كل من الاتصالات الواردة والصادرة. ومع ذلك، فقد تتطلب [امتداد نظام](https://support.apple.com/HT210999) مغلق المصدر.

إذا كانت المطالبات المتكررة بالسماح أو الحظر مربكة، فاسمح مؤقتًا بالاتصالات مع تسجيلها أيضًا ([وضع السماح الصامت](https://help.obdev.at/littlesnitch6/concepts-opmodes) في Little Snitch). راجع الإعدادات لفهم نشاط الشبكة والتحكم فيه.

## مرشح الحزم

يتضمن macOS أيضًا [pf](https://en.wikipedia.org/wiki/PF_(firewall))، وهو جدار حماية لتصفية الحزم يُكوَّن من سطر الأوامر. إنه قوي لكنه أكثر تعقيدًا بشكل ملحوظ من جدار الحماية المدمج للتطبيقات.

يمكن أيضًا التحكم في pf عبر تطبيق رسومي مثل [Murus](https://www.murusfirewall.com/).

تغطي العديد من [الكتب](https://nostarch.com/book-of-pf-4e) و[الأدلة](https://www.openbsd.org/faq/pf/) جدار حماية pf. يوضح المثال التالي كيفية تكوين سياسة أساسية.

### مثال على إعداد pf

أضف القواعد التالية إلى ملف باسم `pf.rules`:```console
# Define interface
wifi = "en0"

# Global options
set block-policy drop
set skip on lo0
set state-policy if-bound
set ruleset-optimization basic

# Normalize
scrub in on $wifi all fragment reassemble

# Define tables
table <blocklist> persist

# Deny and log blocked traffic
block log all
block quick from no-route to any
antispoof quick for $wifi

# Enforce blocklist
block log quick on $wifi from <blocklist> to any
block log quick on $wifi from any to <blocklist>

# Allow DHCP
pass out on $wifi proto udp from any port 68 to any port 67 keep state
pass in  on $wifi proto udp from any port 67 to any port 68 keep state

# Allow outbound TCP
pass out on $wifi proto tcp from ($wifi) to any flags S/SA keep state

# Allow outbound UDP
pass out on $wifi proto udp from ($wifi) to any keep state

# Allow outbound ICMP (ping)
pass out on $wifi proto icmp from ($wifi) to any keep state

مثال متقدم لإعداد pf متاح في pf/pf.rules.

أوامر جدار الحماية

للتحكم في جدار الحماية:

الأمرالمهمة
sudo pfctl -e -f pf.rulesتمكين جدار الحماية مع ملف الإعدادات
sudo pfctl -t blocklist -T add 1.2.3.4إضافة عنوان IPv4 إلى جدول القائمة المحظورة
sudo pfctl -dتعطيل جدار الحماية

لمراقبة جدار الحماية:

حظر الشبكات

يمكن لـ pf حظر نطاقات من عناوين الشبكة، على سبيل المثال لمنظمة بأكملها. استعلم من Merit RADb عن قائمة الشبكات المستخدمة من قبل نظام مستقل (شبكة كبيرة تديرها منظمة واحدة)، مثل فيسبوك:```bash whois -h whois.radb.net '!gAS32934'

root@kitploit:~
أضف قائمة الشبكات التي تم إرجاعها إلى قائمة الحظر:```bash
sudo pfctl -t blocklist -T add $(whois -h whois.radb.net '!gAS32934' | sed -n '2p')

تأكد من إضافة العناوين:```console $ sudo pfctl -t blocklist -T show No ALTQ support in kernel ALTQ related functions disabled 31.13.24.0/21 31.13.64.0/24 157.240.0.0/16 ...

root@kitploit:~
تأكد من أن حركة مرور الشبكة محظورة على هذه العناوين (ستظل طلبات DNS تعمل):```console
$ dig a +short facebook.com
157.240.2.35

$ curl --connect-timeout 5 -I https://facebook.com/
*   Trying 157.240.2.35...
* TCP_NODELAY set
* Connection timed out after 5002 milliseconds
* Closing connection 0
curl: (28) Connection timed out after 5002 milliseconds

$ sudo tcpdump -tqni pflog0 'host 157.240.2.35'
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0

يقوم جدار الحماية بإسقاط الحزم الأولية اللازمة لبدء اتصال TCP، لذا تنتهي مهلة الاتصال.

انظر إلى drduh/config/scripts/pf-blocklist.sh لمزيد من الإلهام.

الخدمات

تُدار العديد من خدمات الخلفية للنظام وللمستخدم عبر launchd.

يمكن لحسابات المسؤول تعديل الخدمات والإضافات في إعدادات النظام.

لقراءة تكوين خدمة:```bash defaults read /System/Library/LaunchAgents/com.apple.Finder

root@kitploit:~
> [!IMPORTANT]
> خدمات النظام محمية بواسطة [SIP](https://github.com/drduh/macOS-Security-and-Privacy-Guide#system-integrity-protection)؛ تعطيل SIP لتعديل خدمات النظام قد يعرض الأمان للخطر ويسبب عدم استقرار النظام.

لعرض حالة الخدمات:```bash
find /var/db/com.apple.xpc.launchd \
  -type f -print -exec defaults read {} \; 2>/dev/null

انظر إلى إدارة البرامج النصية مع launchd وlaunchd.info لمزيد من المعلومات.

اقتراحات سيري وسبوتلايت

قد ترسل اقتراحات سيري وسبوتلايت بعض الاستعلامات أو معلومات الاستخدام إلى Apple، اعتمادًا على الميزات المفعّلة. في إعدادات النظام، ابحث عن سيري وسبوتلايت، ثم عطّل الاقتراحات عبر الإنترنت واضبط الفئات لاستبعادها من الفهرسة أو الاقتراح. راجع سياسة البحث والخصوصية من Apple لمزيد من المعلومات.

Homebrew

إذا لم يكن البرنامج متاحًا عبر متجر التطبيقات، ففكّر في استخدام Homebrew.

[!IMPORTANT] قد تطلب بعض سير عمل تثبيت Homebrew أو إدارته الوصول إلى إدارة التطبيقات أو الوصول الكامل إلى القرص. لا تمنح هذه الأذونات إلا عندما تكون مفهومة تمامًا وضرورية.

شغّل brew upgrade بشكل دوري على شبكات موثوقة وآمنة لتثبيت تحديثات البرامج. للحصول على معلومات حول حزمة قبل تثبيتها، شغّل brew info <package> وراجع صيغتها عبر الإنترنت. فعّل خيارات الأمان الإضافية، مثل HOMEBREW_NO_INSECURE_REDIRECT=1

وفقًا لـالتحليلات المجهولة في Homebrew، يجمع Homebrew تحليلات استخدام مجهولة ويرسلها إلى مثيل InfluxDB مستضاف ذاتيًا.

لإلغاء الاشتراك في تحليلات Homebrew، شغّل brew analytics off أو عيّن HOMEBREW_NO_ANALYTICS=1 في ملف بدء تشغيل الصدفة.

DNS

ملفات تعريف DNS

توفّر macOS «ملفات تعريف إعدادات DNS» لتكوين DNS المشفّر والتصفية وDNSSEC.

يمكن إنشاء ملفات تعريف DNS أو الحصول عليها من موفّرين مثل Quad9، وAdGuard، وNextDNS.

ملف المضيفين

استخدم ملف المضيفين لحظر النطاقات المرتبطة بالبرامج الضارة والإعلانات والخدمات غير المرغوب فيها الأخرى.

لحظر نطاق عبر سجل A، أضِف أيًّا من الأسطر التالية إلى /etc/hosts:``` 0 example.com 0.0.0.0 example.com 127.0.0.1 example.com

root@kitploit:~
> [!NOTE]
> يستخدم IPv6 سجلات AAAA بدلاً من سجلات A: احجب اتصالات IPv6 عن طريق تضمين إدخالات `::1 example.com`.

تتوفر العديد من قوائم النطاقات عبر الإنترنت. قبل إضافة إحداها إلى ملف `/etc/hosts`، تأكد من أن كل إدخال يبدأ بـ `0` أو `0.0.0.0` أو `127.0.0.1`، واحتفظ بإدخال `127.0.0.1 localhost`.

تتضمن قوائم المضيفين الشائعة:
- [StevenBlack/hosts](https://github.com/StevenBlack/hosts)
- [Sinfonietta/hostfiles](https://github.com/Sinfonietta/hostfiles)
- [someonewhocares.org](https://someonewhocares.org/hosts/zero/hosts)

لتنزيل قائمة وإلحاقها بملف المضيفين، استخدم أمر [tee](https://man7.org/linux/man-pages/man1/tee.1.html):```bash
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts |
  sudo tee -a /etc/hosts

Little Snitch يدعم أيضًا قوائم الحظر.

DNSCrypt

لتشفير حركة مرور DNS، فكّر في DNSCrypt/dnscrypt-proxy. عند تكوينه مع محلل موثوق، يقوم DNSCrypt بتشفير استعلامات DNS. يمكن لـ DNSSEC أيضًا التحقق من استجابات DNS الموقعة حيثما كان ذلك مدعومًا.

ثبّت DNSCrypt من Homebrew واتبع التعليمات لتكوين وبدء تشغيل dnscrypt-proxy:```bash brew install dnscrypt-proxy

root@kitploit:~
عند استخدام DNSCrypt مع Dnsmasq، ابحث عن ملف إعداد DNSCrypt عن طريق تشغيل:```bash
brew info dnscrypt-proxy | grep dnscrypt-proxy.toml | head -1

يجب أن يعرض هذا الأمر مسارًا مثل /opt/homebrew/etc/dnscrypt-proxy.toml.

افتراضيًا، يستمع dnscrypt-proxy على 127.0.0.1:53 ويرسل الاستعلامات إلى واحد أو أكثر من مزوّدي DNS المُهيّئين. قم بتعديل الإعداد وغيّر listen_addresses لاستخدام منفذ غير 53، مثل 5355:```toml listen_addresses = ['127.0.0.1:5355', '[::1]:5355']

root@kitploit:~
ابدأ DNSCrypt:```bash
sudo brew services restart dnscrypt-proxy

تأكد من أن DNSCrypt قيد التشغيل:```console $ sudo lsof +c 15 -Pni UDP:5355 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dnscrypt-proxy 15244 nobody 7u IPv4 0x1337f85ff9f8beef 0t0 UDP 127.0.0.1:5355 dnscrypt-proxy 15244 nobody 10u IPv6 0x1337f85ff9f8beef 0t0 UDP [::1]:5355 dnscrypt-proxy 15244 nobody 12u IPv4 0x1337f85ff9f8beef 0t0 UDP 127.0.0.1:5355 dnscrypt-proxy 15244 nobody 14u IPv6 0x1337f85ff9f8beef 0t0 UDP [::1]:5355

root@kitploit:~
بالإضافة إلى ذلك، تحجب قواعد pf هذه حركة مرور DNS التقليدية الموجهة إلى المنفذ 53 خارج واجهة الاسترجاع، للحد من مخاطر [تسريبات DNS](https://dnsleaktest.com/):```console
block drop quick on !lo0 proto udp from any to any port = 53
block drop quick on !lo0 proto tcp from any to any port = 53

Dnsmasq

يمكن لـ dnsmasq تخزين الردود مؤقتًا، ومنع الاستعلامات الصادرة إلى upstream للأسماء غير المؤهلة، وحظر نطاقات المستوى الأعلى بالكامل.

استخدمه مع DNSCrypt لتشفير حركة مرور DNS.

إذا كنت لا تستخدم DNSCrypt، فاختر على الأقل محلل DNS غير الذي يوفره مزود خدمة الإنترنت. هناك بديلان شائعان هما Google DNS وOpenDNS.

ثبّت Dnsmasq:```bash brew install dnsmasq

root@kitploit:~
قم بتنزيل وتحرير [drduh/config/dnsmasq.conf](https://github.com/drduh/config/blob/main/dnsmasq.conf) أو ملف التكوين الافتراضي.

انظر [drduh/config/domains](https://github.com/drduh/config/tree/main/domains) للحصول على أمثلة قوائم النطاقات التي يمكن إضافتها لحظر وجهات محددة.

قم بتثبيت البرنامج وتشغيله (مطلوب صلاحيات sudo للارتباط بـ [المنفذ المميز](https://unix.stackexchange.com/questions/16564/why-are-the-first-1024-ports-restricted-to-the-root-user-only) 53):```bash
sudo brew services start dnsmasq

لتعيين dnsmasq كخادم DNS محلي، افتح System Settings > Network وحدد اتصال الشبكة المستخدم حاليًا (مثل Wi-Fi)، ثم افتح علامة التبويب DNS، وحدد +، وأضف 127.0.0.1، أو استخدم:```bash sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1

root@kitploit:~
تأكد من أن Dnsmasq مُعدّ:```console
$ scutil --dns | head
DNS configuration

resolver #1
  search domain[0] : whatever
  nameserver[0] : 127.0.0.1
  flags    : Request A records, Request AAAA records
  reach    : 0x00030002 (Reachable,Local Address,Directly Reachable Address)

$ networksetup -getdnsservers "Wi-Fi"
127.0.0.1

[!NOTE] تتجاوز بعض تطبيقات VPN إعدادات DNS عند الاتصال. انظر issue 24 وdrduh/config/scripts/macos-dns.sh.

السلطات المصدقة

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

افحص System Roots لفهم مخزن الجذور الموثوق المقدم من Apple باستخدام Keychain Access أو أداة سطر الأوامر security وملف /System/Library/Keychains/SystemRootCertificates.keychain. يمكن أيضًا تشغيل Keychain Access باستخدام الأمر:```bash open "/System/Library/CoreServices/Applications/Keychain Access.app"

root@kitploit:~
Also review any certificates that may have been added by a user, administrator, VPN client, security product, or mobile device management application in the **login**, **Local Items**, and **System** keychains.

To disable a selected certificate, modify its Trust setting to **Never Trust** and close the window to confirm. Doing so may reduce the risk of [MITM](https://wikipedia.org/wiki/Man-in-the-middle_attack) attacks, in which a fraudulent certificate is used to [silently intercept](https://en.wikipedia.org/wiki/DigiNotar#Issuance_of_fraudulent_certificates) encrypted traffic.

> [!WARNING]
> Removing or modifying certificate authority trust settings can break websites, software updates, enterprise networks, VPNs, captive portals, and other services.

See Apple's [available trusted certificates](https://support.apple.com/103723) and [blocked certificates](https://support.apple.com/103247#blocked) lists for current trust-store information.

# Privoxy

Consider using [Privoxy](https://www.privoxy.org/) as a local proxy to filter web traffic.

Install and start Privoxy using Homebrew:```bash
brew install privoxy
brew services start privoxy

بدلاً من ذلك، تتوفر حزمة تثبيت موقعة من Privoxy من موقعهم الإلكتروني أو Sourceforge. الحزمة الموقعة أكثر أمانًا من إصدار Homebrew وتتلقى دعمًا من مشروع Privoxy.

افتراضيًا، يستمع Privoxy على منفذ TCP المحلي 8118.

اضبط وكيل HTTP للنظام للواجهة الشبكية النشطة على 127.0.0.1 والمنفذ 8118:```bash sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118

root@kitploit:~
اضبط وكيل النظام **HTTPS**:```bash
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118

يمكن أيضًا ضبط البروكسي في إعدادات النظام > الشبكة > التفاصيل > البروكسيات.

تأكد من ضبط البروكسي:```console $ scutil --proxy { ExceptionsList : { 0 : *.local 1 : 169.254/16 } FTPPassive : 1 HTTPEnable : 1 HTTPPort : 8118 HTTPProxy : 127.0.0.1 HTTPSEnable : 1 HTTPSPort : 8118 HTTPSProxy : 127.0.0.1 }

root@kitploit:~
على الرغم من أن معظم حركة مرور الويب مشفّرة، يمكن لـ Privoxy تصفية الطلبات حسب اسم المضيف. على سبيل المثال، تمنع القواعد التالية كل حركة المرور باستثناء حركة المرور إلى نطاقات .net و github.com ونطاقات Apple:```console
{ +block{all} }
.

{ -block }
.apple.
.github.com
.net

لحظر نطاقات Facebook:```console { +block{facebook} } .cdninstagram. .facebook*. .fb. .fbcdn*. .fbinfra. .fbsbx. .fbstatic*. .fbsv. .fburl. .instagr.am .tfbnw. .thefacebook. fb*.akamaihd.net

root@kitploit:~
انظر إلى [drduh/config/privoxy/config](https://github.com/drduh/config/blob/main/privoxy/config) و [drduh/config/privoxy/user.action](https://github.com/drduh/config/blob/main/privoxy/user.action) للحصول على أمثلة إضافية لـ Privoxy. لا يتطلب Privoxy إعادة التشغيل بعد تعديل قواعد التصفية.

للتحقق من حظر حركة المرور أو إعادة توجيهها، استخدم [curl](https://en.wikipedia.org/wiki/CURL) أو افتح واجهة Privoxy على <http://p.p> في المتصفح:```console
$ ALL_PROXY=127.0.0.1:8118 curl example.com -IL | head
HTTP/1.1 403 Request blocked by Privoxy
Content-Length: 9001
Content-Type: text/html
Cache-Control: no-cache
Pragma: no-cache

$ ALL_PROXY=127.0.0.1:8118 curl github.com -IL | head
HTTP/1.1 302 Local Redirect from Privoxy
Location: https://github.com/
Content-Length: 0

HTTP/1.1 200 Connection established

HTTP/2 200
content-type: text/html; charset=utf-8

[!NOTE] يمكن للتطبيقات والخدمات تجاهل إعدادات البروكسي. يمكن لـ pf إعادة توجيه حركة المرور عبر بروكسي دون الحاجة إلى تكوين كل تطبيق على حدة.

المتصفح

تشكّل متصفحات الويب مخاطر أمنية وخصوصية كبيرة لأنها تقوم بتنزيل وتنفيذ محتوى إنترنت غير موثوق.

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

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

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

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

تعد Mozilla Firefox وGoogle Chrome وSafari وTor Browser متصفحات شائعة، لكل منها ميزات فريدة وأغراض معينة.

Firefox

حدّث Firefox أجزاءً رئيسية من قاعدة أكواده البرمجية عبر مشروعي Quantum وPhoton. يتضمن Quantum نقل بعض المكونات من C++ إلى Rust، وهي لغة برمجة مصممة لتحسين أمان الذاكرة وأمان التزامن.

يقدم Firefox نموذج أمان مشابهًا لـ Chrome، بما في ذلك برنامج مكافآت الثغرات للإفصاح المسؤول عن الثغرات. يتبع Firefox دورة إصدار مدتها أربعة أسابيع.

انظر إلى drduh/config/firefox.user.js وarkenfox/user.js للحصول على الإعدادات الموصى بها. وانظر أيضًا إلى NoScript وهي إضافة تتيح الحظر الانتقائي للبرامج النصية.

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

يدعم Firefox فقط إضافات الويب عبر WebExtension API، وهي مشابهة جدًا لتلك الموجودة في Chrome. تقديم إضافات الويب في Firefox مجاني. معظم إضافات الويب في Firefox مفتوحة المصدر، على الرغم من أن بعضها مملوك (proprietary).

Chrome

يستند Google Chrome إلى مشروع Chromium مفتوح المصدر. يتضمن Chrome بعض المكونات المملوكة والتحديثات التلقائية وعارض PDF ودعم ترميز الوسائط وإعداد تقارير الأعطال والتكامل مع حساب Google. راجع إعدادات خصوصية Chrome وسياسات خصوصية Google لمزيد من المعلومات.

يوفر Chrome مزامنة الحساب بين أجهزة متعددة، بما في ذلك بيانات الاعتماد؛ تُشفَّر البيانات باستخدام كلمة مرور الحساب.

يمتلك Chrome الحصة الأكبر من الاستخدام العالمي، وهو المنصة المستهدفة المفضلة لدى غالبية المطورين. تعتمد تقنيات رئيسية على مكونات Chrome مفتوحة المصدر، مثل node.js الذي يستخدم محرك V8 الخاص بـ Chrome وإطار Electron القائم على Chromium وnode.js. قاعدة مستخدمي Chrome الواسعة تجعله الهدف الأكثر جذبًا لجهات التهديد وباحثي الأمن. على الرغم من الهجمات المستمرة، حافظ Chrome على سجل أمني مثير للإعجاب على مر السنين. وهذا ليس إنجازًا صغيرًا.

يوفّر Chrome ملفات تعريف منفصلة وعزلًا قويًا (sandboxing) وتحديثات متكررة وسجل إنجازات مثيرًا للإعجاب. بالإضافة إلى ذلك، تقدم Google برنامج مكافآت مجزيًا للغاية للإبلاغ عن الثغرات، إلى جانب فريق Project Zero الخاص بها. وهذا يعني أن عددًا كبيرًا من الأشخاص الموهوبين والمتحمسين يراجعون ويؤمّنون كود Chrome باستمرار.

فكّر في تعطيل تحسين V8 (ميزات أداء محرك JavaScript) في إعدادات المتصفح - راجع هذا الشرح حول مقايضات الأمان.

احجب أدوات التتبع باستخدام uBlock Origin Lite.

عطّل الجلب المسبق لـ DNS (انظر إلى الجلب المسبق لـ DNS وآثاره على الخصوصية). قد يحاول Chrome تحليل DNS باستخدام خوادم الأسماء العامة 8.8.8.8 و8.8.4.4 التابعة لجوجل.

انظر إلى أمان Chromium وخصوصية Chromium لمزيد من المعلومات. اقرأ سياسة خصوصية Google لفهم كيفية جمع المعلومات الشخصية واستخدامها.

Safari

Safari هو متصفح Apple المدمج وهو متكامل مع macOS، مما يوفر تحسينات في كفاءة البطارية على أجهزة Apple.

يحتوي Safari على مكونات مفتوحة المصدر ومملوكة. يعتمد Safari على محرك الويب مفتوح المصدر WebKit، وهو منتشر في كل مكان في نظام macOS البيئي. يستخدم WebKit في تطبيقات Apple مثل Mail وBooks وApp Store. محرك Blink التابع لكروم هو فرع من WebKit، ويتشارك المحركان في عدد من أوجه التشابه.

يدعم Safari بعض الميزات الفريدة التي تفيد أمان المستخدم وخصوصيته. تتيح حاصرات المحتوى إنشاء قواعد حظر المحتوى دون استخدام JavaScript. يحسّن هذا النهج القائم على القواعد استخدام الذاكرة والأمان والخصوصية بشكل كبير. قدّم Safari 11 منع التتبع الذكي، الذي يزيل بيانات التتبع المخزنة في Safari بعد فترة من عدم تفاعل المستخدم مع موقع أداة التتبع. يمكن لـ Safari جعل بصمة المتصفح عشوائية لتقليل التتبع. لا يدعم Safari بعض الميزات مثل WebUSB أو Battery API عمدًا لأسباب أمنية وللخصوصية. تحتوي الألسنة الخاصة في Safari على ملفات تعريف ارتباط وذاكرة تخزين مؤقت معزولة يتم إتلافها عند إغلاق التبويب. كما يدعم Safari ملفات تعريف (Profiles) تعادل حاويات Multi-Account Containers في Firefox لفصل ملفات تعريف الارتباط والتصفح. يمكن جعل Safari أكثر أمانًا بشكل ملحوظ باستخدام وضع القفل الصارم، والذي يمكن تعطيله لكل موقع على حدة. اقرأ المزيد حول منع التتبع في Safari.

لدى إضافات الويب في Safari خيار إضافي لاستخدام الكود الأصلي (native code) في بيئة العزل (sandbox) الخاصة بـ Safari، بالإضافة إلى Web Extension APIs. كما يتم توزيع إضافات الويب في Safari عبر Apple App Store. ويأتي التقديم عبر App Store بفائدة إضافية تتمثل في مراجعة كود إضافة الويب بواسطة Apple. من ناحية أخرى، يأتي التقديم عبر App Store بتكلفة باهظة. رسوم اشتراك المطور السنوية تبلغ 100 دولار أمريكي (بالمقارنة مع رسوم Chrome البالغة 5 دولارات وتقديم Firefox المجاني). التكلفة العالية مانعة لمعظم مطوري المصادر المفتوحة. ونتيجة لذلك، لدى Safari عدد قليل جدًا من الإضافات للاختيار من بينها. ومع ذلك، ضع التكلفة العالية في الاعتبار عند تثبيت الإضافات. من المتوقع أن يكون لدى معظم إضافات الويب طريقة ما لتحقيق الدخل من الاستخدام لتغطية تكاليف التطوير. تجنب إضافات الويب التي لا يتوفر كودها مفتوح المصدر للمراجعة.

يقوم Safari بمزامنة تفضيلات المستخدم وكلمات المرور مع سلسلة مفاتيح iCloud. تتطلب مشاهدة كلمة مرور محفوظة المصادقة باستخدام كلمة مرور حساب الجهاز الحالي أو طريقة مصادقة أخرى مكوّنة.

ينفّذ Safari ميزات الويب الجديدة ببطء أكبر من Chrome أو Firefox، ولكن يتم تسليم التصحيحات الأمنية على الفور من خلال تحديثات النظام.

انظر أيضًا إلى el1t/uBlock-Safari لتعطيل إشارات تدقيق الروابط التشعبية (hyperlink auditing beacons).

خصوصية متصفح الويب

تستنتج المواقع معلومات حول المتصفح والجهاز من الإعدادات والخطوط وحجم الشاشة واللغة وعنوان IP وسلوك المتصفح. تساهم هذه المعلومات في بصمة المتصفح.

لمزيد من المعلومات حول التصفح الواعي أمنيًا والبيانات التي يرسلها المتصفح، راجع موارد HowTo: Privacy & Security Conscious Browsing، وbrowserleaks.com، وAm I Unique? وEFF Cover Your Tracks.

لتقليل التتبع عبر المواقع، احجب ملفات تعريف الارتباط الطرفية (third-party cookies).

كن على دراية أيضًا بـ WebRTC، الذي قد يكشف عن عنوان (عناوين) IP المحلية أو العامة (إذا كنت متصلًا بشبكة VPN). في Firefox وChrome/Chromium، يمكن تعطيل هذه الميزة باستخدام uBlock Origin. كما أن وضع القفل الصارم يعطّل WebRTC في Safari.

Tor

Tor هي شبكة إخفاء هوية يمكن أن توفر خصوصية إضافية أثناء التصفح. متصفح Tor هو متصفح معدل مبني على Firefox ومهيأ لاستخدام شبكة Tor.

نزّل متصفح Tor من مشروع Tor، وملفّا dmg وasc معًا للتحقق (verification):```console $ cd ~/Downloads

$ file tor-browser-macos-* tor-browser-macos-15.0.17.dmg: XZ compressed data, checksum NONE tor-browser-macos-15.0.17.dmg.asc: PGP signature Signature (old)

$ gpg --verify tor-browser-macos-*.asc [...] gpg: Can't check signature: No public key

$ gpg --auto-key-locate nodefault,wkd --locate-keys [email protected] gpg: key 0x4E2C6E8793298290: public key "Tor Browser Developers (signing key) [email protected]" imported gpg: Total number processed: 1 gpg: imported: 1 pub rsa4096/0x4E2C6E8793298290 2014-12-15 [C] [expires: 2027-07-15] Key fingerprint = EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290 uid [ unknown] Tor Browser Developers (signing key) [email protected] sub rsa4096/0x157432CF78A65729 2024-07-15 [S] [expires: 2026-10-26] Key fingerprint = CAAE 408A EBE2 288E 96FC 5D5E 1574 32CF 78A6 5729

$ gpg --verify tor-browser-macos-*.asc gpg: assuming signed data in 'tor-browser-macos-15.0.17.dmg' gpg: Signature made Sun Jun 28 15:35:20 2026 PDT gpg: using RSA key CAAE408AEBE2288E96FC5D5E157432CF78A65729 gpg: Good signature from "Tor Browser Developers (signing key) [email protected]" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290 Subkey fingerprint: CAAE 408A EBE2 288E 96FC 5D5E 1574 32CF 78A6 5729

root@kitploit:~
تأكد من ظهور `Good signature from "Tor Browser Developers (signing key) <[email protected]>"` في المخرجات. التحذير متوقع، لأن المفتاح لم يتم التحقق منه شخصيًا وإضافته إلى سلسلة مفاتيح موثوقة.

انظر [كيف يمكنني التحقق من توقيع متصفح Tor؟](https://support.torproject.org/tbb/how-to-verify-signature/) لمزيد من المعلومات.

لإنهاء تثبيت متصفح Tor، افتح صورة القرص واسحبها إلى مجلد التطبيقات، أو استخدم الأوامر:```bash
hdiutil mount tor-browser-macos-15.0.17.dmg
cp -r /Volumes/Tor\ Browser/Tor\ Browser.app/ ~/Applications/

تحقق من أن التطبيق تم توقيعه بواسطة معرّف مطوّر Apple الخاص بمشروع Tor (MADPSAYN6T):```console $ spctl --assess -vv ~/Applications/Tor\ Browser.app /Users/user1/Applications/Tor Browser.app: accepted source=Notarized Developer ID origin=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)

$ pkgutil --check-signature ~/Applications/Tor\ Browser.app Package "Tor Browser.app": Status: signed by a certificate trusted by macOS Certificate Chain: 1. Developer ID Application: The Tor Project, Inc (MADPSAYN6T) Expires: 2028-10-11 17:57:46 +0000 SHA256 Fingerprint: 76 3C 89 02 ED CB AD 8E 59 86 1E 93 D3 05 5B 28 F9 04 0C 96 03 8B 16 28 9F 38 64 ED 53 45 B4 DA ------------------------------------------------------------------------ 2. Developer ID Certification Authority Expires: 2031-09-17 00:00:00 +0000 SHA256 Fingerprint: F1 6C D3 C5 4C 7F 83 CE A4 BF 1A 3E 6A 08 19 C8 AA A8 E4 A1 52 8F D1 44 71 5F 35 06 43 D2 DF 3A ------------------------------------------------------------------------ 3. Apple Root CA Expires: 2035-02-09 21:40:36 +0000 SHA256 Fingerprint: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 BE 91 B5 A1 10 01 F0 24

root@kitploit:~
يمكن أيضًا استخدام الأمر `codesign` لفحص توقيع رمز التطبيق:```console
$ codesign -dvv ~/Applications/Tor\ Browser.app
Executable=/Users/user1/Applications/Tor Browser.app/Contents/MacOS/firefox
Identifier=org.torproject.torbrowser
Format=app bundle with Mach-O universal (x86_64 arm64)
CodeDirectory v=20500 size=805 flags=0x10000(runtime) hashes=14+7 location=embedded
Signature size=9054
Authority=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Jun 28, 2026 at 14:01:57
Notarization Ticket=stapled
Info.plist entries=27
TeamIdentifier=MADPSAYN6T
Runtime Version=15.5.0
Sealed Resources version=2 rules=13 files=208
Internal requirements count=1 size=188

لعرض تفاصيل الشهادة الكاملة لتطبيق موقّع، استخرجها باستخدام codesign وفكّ ترميزها باستخدام openssl:```console $ codesign -d --extract-certificates ~/Applications/Tor\ Browser.app Executable=/Users/user1/Applications/Tor Browser.app/Contents/MacOS/firefox

$ file codesign* codesign0: Certificate, Version=3 codesign1: Certificate, Version=3 codesign2: Certificate, Version=3 Certificate, Version=02

$ openssl x509 -inform der -in codesign0 -subject -issuer -startdate -enddate -noout subject= /UID=MADPSAYN6T/CN=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)/OU=MADPSAYN6T/O=The Tor Project, Inc/C=US issuer= /CN=Developer ID Certification Authority/OU=G2/O=Apple Inc./C=US notBefore=Oct 11 17:57:47 2023 GMT notAfter=Oct 11 17:57:46 2028 GMT

$ openssl x509 -inform der -in codesign0 -fingerprint -noout SHA256 Fingerprint=76:3C:89:02:ED:CB:AD:8E:59:86:1E:93:D3:05:5B:28:F9:04:0C:96:03:8B:16:28:9F:38:64:ED:53:45:B4:DA

root@kitploit:~
يمكن لمتصفح تور استخدام طرق اتصال خاصة تُسمى [وسائل نقل قابلة للتوصيل](https://support.torproject.org/tor-browser/circumvention/) لجعل حركة المرور أكثر صعوبة في التعرف عليها أو حظرها. يمكن القيام بذلك عن طريق إعداد [مرحّل](https://support.torproject.org/relays/) أو استخدام [جسر](https://bridges.torproject.org/) موجود.

توفر شبكة تور [إخفاء الهوية](https://www.privateinternetaccess.com/blog/2013/10/how-does-privacy-differ-from-anonymity-and-why-are-both-important/)، وهو ليس نفس الخصوصية بالضرورة. لا تدافع الشبكة ضد مراقب عالمي قادر على تحليل حركة المرور وربطها. انظر أيضًا [البحث عن إخفاء الهوية في بانوبتيكون الإنترنت](https://bford.info/pub/net/panopticon-cacm.pdf) و[ارتباط حركة المرور على تور من قبل خصوم واقعيين](https://www.ohmygodel.com/publications/usersrouted-ccs13.pdf).

انظر [مواصفات بروتوكول تور](https://spec.torproject.org/tor-spec/) لمزيد من المعلومات.

انظر أيضًا [مشروع الإنترنت الخفي (I2P)](https://geti2p.net/en/about/intro) ومقارنته مع [تور](https://geti2p.net/en/comparison/tor).

# VPN

اختر مزود VPN أو إعدادًا مستضافًا ذاتيًا مع بروتوكول حديث موثق وعملاء مدققين جيدًا. تجنب البروتوكولات القديمة مثل [PPTP](https://en.wikipedia.org/wiki/Point-to-Point_Tunneling_Protocol#Security) لصالح [OpenVPN](https://en.wikipedia.org/wiki/OpenVPN) أو [WireGuard](https://www.wireguard.com/) [على جهاز افتراضي يعمل بنظام لينكس](https://github.com/mrash/Wireguard-macOS-LinuxVM) أو عبر مجموعة من [أدوات متعددة المنصات](https://www.wireguard.com/xplatform/).

قد تقوم بعض عملاء VPN بإرسال حركة المرور عبر واجهة الشبكة المتاحة التالية عند انقطاع الاتصال أو فصله. انظر [scy/8122924](https://gist.github.com/scy/8122924) للحصول على مثال حول كيفية السماح بحركة المرور عبر VPN فقط.

انظر إلى الأدلة لإعداد VPN عبر [IPsec](https://en.wikipedia.org/wiki/Ipsec) على جهاز افتراضي ([hwdsl2/setup-ipsec-vpn](https://github.com/hwdsl2/setup-ipsec-vpn)) أو حاوية Docker ([hwdsl2/docker-ipsec-vpn-server](https://github.com/hwdsl2/docker-ipsec-vpn-server)).

قد يكون من المفيد النظر في الموقع الجغرافي لمزود VPN. انظر المزيد من النقاش في [الموضوع 114](https://github.com/drduh/macOS-Security-and-Privacy-Guide/issues/114).

انظر أيضًا [النظرة العامة التقنية](https://blog.timac.org/2018/0717-macos-vpn-architecture/) هذه لعميل VPN المدمج في macOS الخاص بـ L2TP/IPsec و[IKEv2](https://en.wikipedia.org/wiki/IKEv2).

# PGP/GPG

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

GPG (GNU Privacy Guard) هو برنامج مفتوح المصدر مرخص بترخيص GPL ومتوافق مع معيار PGP. يمكنه التحقق من توقيعات البرامج وتشفير الملفات [بشكل متماثل](https://en.wikipedia.org/wiki/Symmetric-key_algorithm) أو باستخدام [المفاتيح العامة](https://en.wikipedia.org/wiki/Public-key_cryptography).

ثبّت GnuPG باستخدام Homebrew (`brew install gnupg`) أو ثبّت [GPG Suite](https://gpgtools.org/).

نزّل [gpg.conf](https://github.com/drduh/YubiKey-Guide/blob/main/config/gpg.conf) لاستخدام الإعدادات الموصى بها:```bash
curl -o ~/.gnupg/gpg.conf \
  https://raw.githubusercontent.com/drduh/YubiKey-Guide/main/config/gpg.conf

انظر إلى drduh/YubiKey-Guide لتوليد وإدارة بيانات الاعتماد.

البريد الإلكتروني

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

ثندربرد

يعد Thunderbird عميل بريد إلكتروني مجاني ومفتوح المصدر يدعم IMAP، وPOP، وCalDAV، وCardDAV القياسية. وهو خيار مناسب للوصول إلى البريد والاحتفاظ بنسخ محلية بدلاً من الاعتماد حصريًا على الخادم البعيد لمزود الخدمة.

يتضمن Thunderbird دعمًا لتشفير البريد الإلكتروني عبر OpenPGP، والذي يمكنه حماية محتوى الرسائل وتوفير توقيعات تشفيرية. تحقق دائمًا من بصمات المفاتيح العامة عبر قناة مستقلة قبل الاعتماد على أي مفتاح للتواصل الحساس.

يمكن لميزة الرسائل المؤرشفة نقل الرسائل من خوادم البريد البعيدة إلى مجلد محلي، مما يحسّن الخصوصية.

تطبيقات المراسلة

XMPP

يُعد XMPP بروتوكولًا مفتوحًا طورته IETF ويدعم المراسلة الموحّدة عبر المنصات. توجد العديد من خيارات العملاء. فكّر في استخدام أحد العملاء المستندين إلى المتصفح للاستفادة من العزل (sandbox) الخاص بالمتصفح.

اعتمادًا على المزود، قد لا تحتاج إلى أكثر من اسم مستخدم وكلمة مرور لإنشاء حساب.

لا يوفر XMPP تشفيرًا من طرف إلى طرف (E2EE) افتراضيًا؛ استخدم OMEMO مع عميل متوافق.

سيجنال

يُعد Signal تطبيق مراسلة شائع بتشفير من طرف إلى طرف، وتستخدم بروتوكول المزلاج المزدوج الخاص به العديد من التطبيقات الأخرى بما في ذلك WhatsApp وGoogle Messages وFacebook Messenger.

لاستخدام تطبيق Signal لسطح المكتب، يجب تثبيت Signal أولاً على هاتف.

انظر إلى دليل Signal من EFF للحصول على إرشادات إضافية.

iMessage

iMessage هو تطبيق المراسلة الرسمي من Apple. يتطلب استخدامه حساب Apple.

فعّل التحقق من مفتاح جهة الاتصال وتحقق من جهات الاتصال.

يمكن استخدام iMessage مع رقم هاتف أو بريد إلكتروني.

[!WARNING] افتراضيًا، يكون النسخ الاحتياطي لـ iCloud مفعّلًا، وهو يخزن نسخًا من مفاتيح تشفير الرسائل على خوادم Apple دون تشفير من طرف إلى طرف. لمنع ذلك، إما عطّل النسخ الاحتياطي لـ iCloud أو فعّل حماية البيانات المتقدمة. وذكّر مستلمي الرسائل بفعل الشيء نفسه.

البرمجيات الخبيثة

انظر إلى طرق استمرار البرمجيات الخبيثة على Mac OS X واستمرار البرمجيات الخبيثة على OS X Yosemite لتتعلّم كيفية استمرار البرمجيات الخبيثة الشائعة على macOS.

للاطلاع على أمثلة على قدرات البرمجيات الخبيثة المتقدمة لنظام macOS، انظر إلى مواد فريق الاختراق. لمزيد من التحليل، انظر إلى التثبيت الجذري لنظام MacOS، وبرنامج تشغيل الدعم لوكيل Mac، ووكيل RCS لنظام Mac.

انظر أيضًا إلى تحليل موجز لمثبّت زرع RCS وreverse.put.as.

تنزيل البرامج

قد تقلل التطبيقات القادمة من App Store أو الموثّقة من Apple من خطر البرمجيات الخبيثة، لكن لا تضمن أي من العمليتين السلامة. تجري Apple فحوصات آلية على التطبيقات الموثّقة، وتخضع تطبيقات App Store للمراجعة. بخلاف ذلك، احصل على البرامج من مصادر يحددها المطوّر باعتبارها رسمية، وتحقق من أن موقع الويب أو التنزيل عبر سطر الأوامر يستخدم HTTPS.

العزل (App Sandbox)

تحقق مما إذا كان أحد التطبيقات يستخدم App Sandbox:```bash codesign --display --entitlements -
/System/Applications/Calculator.app 2>&1 | grep -A2 com.apple.security.app-sandbox

root@kitploit:~
عند تمكين App Sandbox، يجب أن يكون الناتج:```console
[Key] com.apple.security.app-sandbox
[Value]
    [Bool] true

Activity Monitor يمكنه أيضًا الإشارة إلى ما إذا كان مفعّلاً عند عرض عمود "Sandbox":```bash defaults write com.apple.ActivityMonitor "UserColumnsPerTab v6.0"
-dict-add 0 '(Command, CPUUsage, CPUTime, Threads, IdleWakeUps, Architecture, GPUUsage, GPUTime, PID, UID, Sandbox, restricted)'

root@kitploit:~
برامج App Store مطلوبة لاستخدام App Sandbox. التطبيقات مثل Google Chrome تستخدم [sandbox](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/design/sandbox.md) خاص بها وقد لا تستخدم App Sandbox.

> [!NOTE]
> تعمل آلية العزل (Sandboxing) على تقييد الوصول الافتراضي للتطبيق، لكن يمكن للامتيازات (entitlements) والأذونات الممنوحة من المستخدم توسيع نطاق الوصول.

## Hardened Runtime

تحقق مما إذا كان التطبيق يستخدم [Hardened Runtime](https://developer.apple.com/documentation/security/hardened_runtime):```bash
codesign --display --verbose /path/to/application.app

إذا تم تمكين Hardened Runtime، ستظهر flags=0x10000(runtime) في المخرجات.

اسرد جميع التطبيقات التي تم تمكين هذه الميزة فيها:```bash for app in /Applications/.app /System/Applications/.app; do if codesign -dvv "$app" 2>&1 | grep -q 'flags=0x10000(runtime)'; then echo "$app" fi done

root@kitploit:~
**Activity Monitor** يتيح خيار عرض عمود "Restricted" الذي يشير إلى أن البرنامج مقيد من حقن الكود عبر [الرابط الديناميكي](https://pewpewthespells.com/blog/blocking_code_injection_on_ios_and_os_x.html) الخاص بنظام macOS.

Hardened Runtime هو شرط مسبق للتوثيق (notarization) للتطبيقات الموزعة.

## مكافحة الفيروسات

لفحص الملفات والتطبيقات، فكر في رفعها إلى [VirusTotal](https://www.virustotal.com/gui/home/upload)، مع مراعاة أن هذا يجعلها متاحة للعرض العام.

يتضمن macOS برنامج مكافحة فيروسات مدمجًا يسمى [XProtect](https://support.apple.com/guide/security/protecting-against-malware-sec469d47bd8)، والذي يعمل في الخلفية ويحدّث التوقيعات المستخدمة لكشف البرامج الضارة تلقائيًا. إذا تم اكتشاف برنامج ضار، يحاول XProtect إزالته وعزله (quarantine).

تحقق من حالة تحديث XProtect:```bash
xprotect version

تطبيقات مثل BlockBlock أو hazcod/maclaunch قد تساعد في منع أو اكتشاف البرمجيات الخبيثة المستمرة.

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

انظر Sophail: هجمات تطبيقية ضد برامج مكافحة الفيروسات، تحليل واستغلال ثغرة في ESET، برمجيات أمنية شهيرة تعرضت لهجمات متواصلة من NSA وGCHQ، و كيف تمكنت إسرائيل من الإمساك بقراصنة روس يبحثون في العالم عن أسرار الولايات المتحدة.

Gatekeeper

Gatekeeper يتحقق من توثيق البرامج ومصدرها.

يحذّر Gatekeeper عند فتح تطبيق بدون توثيق. يمكن تجاوزه عن طريق تحديد التطبيق المدرج في إعدادات النظام > الخصوصية والأمان بعد محاولة فاشلة.

تحقق مما إذا كان Gatekeeper مفعّلاً:```bash spctl --status --verbose

root@kitploit:~
# حماية تكامل النظام

للتحقق من تمكين حماية تكامل النظام، استخدم الأمر `csrutil status`، الذي يجب أن يُرجع: `System Integrity Protection status: enabled.` وإلا، فعِّل [SIP](https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection) باستخدام [وضع الاسترداد](https://support.apple.com/102518).

# البيانات الوصفية والآثار

يُرفق نظام macOS بيانات وصفية ([سمات APFS الموسعة](https://en.wikipedia.org/wiki/Extended_file_attributes#macOS)) بالملفات.

يمكن عرض بعض سمات البيانات الوصفية وإزالتها باستخدام الأمرين [`mdls`](https://ss64.com/mac/mdls.html) و[`xattr`](https://ss64.com/mac/xattr.html). يمكن قراءة ملفات التفضيلات (`plist`) وتعديلها باستخدام [`defaults`](https://ss64.com/mac/defaults.html).

يمكن العثور على بيانات وصفية للنظام والتطبيقات في:

- `~/Library/Preferences/`
- `~/Library/Containers/<APP>/Data/Library/Preferences`
- `/Library/Preferences`

معلومات البلوتوث:

- `/Library/Preferences/com.apple.Bluetooth.plist`

ذاكرة التخزين المؤقت لمهام الطباعة:

- `/var/spool/cups`

الأجهزة التي تعمل بنظام iOS المتصلة سابقًا:

- `/Users/$USER/Library/Preferences/com.apple.iPod.plist`
- `/Library/Preferences/com.apple.iPod.plist`

تفضيلات Finder:

- `~/Library/Preferences/com.apple.finder.plist`
- `~/Library/Preferences/com.apple.sidebarlists.plist`

بيانات التشخيص:

- `/var/db/CoreDuet`
- `/var/db/diagnostics`
- `/var/db/systemstats`
- `/var/db/uuidtext`
- `/var/log/DiagnosticMessages`

اقتراحات التهجئة واللغة:

- `~/Library/LanguageModeling`
- `~/Library/Spelling`
- `~/Library/Suggestions`

حالة التطبيق:

- `~/Library/Saved\ Application\ State`
- `~/Library/Containers/<APPNAME>/Data/Library/Saved\ Application\ State`

البيانات الوصفية للحفظ التلقائي:

- `~/Library/Containers/<APP>/Data/Library/Autosave\ Information`
- `~/Library/Autosave\ Information`

تحليلات Siri:

- `~/Library/Assistant/SiriAnalytics.db`

سجل QuickTime Player:

- `~/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Preferences/com.apple.QuickTimePlayerX.plist`

بيانات وصفية متنوعة:

- `~/Library/Containers/com.apple.appstore/Data/Library/Preferences/com.apple.commerce.knownclients.plist`
- `~/Library/Preferences/com.apple.commerce.plist`
- `~/Library/Preferences/com.apple.QuickTimePlayerX.plist`

# المصادقة

يُنشئ تطبيق [كلمات المرور](https://support.apple.com/guide/passwords/the-passwords-app-mchl901b1b95/mac) [بيانات اعتماد آمنة](https://support.apple.com/guide/security/automatic-strong-passwords-secc84c811c4/web). وهو يدعم [مفاتيح المرور](https://fidoalliance.org/passkeys/)، وهي بيانات اعتماد مصممة لمقاومة التصيد الاحتيالي عند استخدامها مع الخدمات المتوافقة.

[KeePassXC](https://keepassxc.org/) هو مدير كلمات مرور مفتوح المصدر ومتعدد المنصات يجدر النظر فيه. وهو يدعم المصادقة القوية باستخدام رموز أجهزة متوافقة وإضافة متصفح لإدخال بيانات الاعتماد تلقائيًا.

يمكن إنشاء كلمات مرور يسهل تذكرها باستخدام [Diceware](https://secure.research.vt.edu/diceware/).

تأكد من تفعيل [المصادقة متعددة العوامل](https://en.wikipedia.org/wiki/Multi-factor_authentication) للحسابات عبر الإنترنت. فضّل المصادقة المقاومة للتصيد الاحتيالي، مثل رموز الأجهزة أو مفاتيح المرور مع الخدمات المدعومة. تطبيقات المصادقة أفضل من رموز SMS، لكن أي شكل من أشكال MFA أفضل من الاعتماد على كلمة المرور فقط.

[YubiKey](https://www.yubico.com/products/) هو رمز مصادقة أجهزة شائع. ويمكنه أيضًا تخزين المفاتيح لمهام التشفير والتوقيع والمصادقة — انظر [drduh/YubiKey-Guide](https://github.com/drduh/YubiKey-Guide).

يمكن لـ GnuPG أيضًا إدارة كلمات المرور والملفات المشفرة الأخرى — انظر [drduh/Purse](https://github.com/drduh/Purse) و[drduh/pwd.sh](https://github.com/drduh/pwd.sh).

# النسخ الاحتياطي

قم بتشفير الملفات محليًا قبل نسخها احتياطيًا إلى وسائط خارجية أو خدمات عبر الإنترنت.

اتبع [نموذج النسخ الاحتياطي 3-2-1](https://www.cisa.gov/sites/default/files/publications/data_backup_options.pdf): احتفظ بثلاث نسخ من البيانات المهمة، وخزّنها على نوعين مختلفين على الأقل من الوسائط، واحتفظ بنسخة واحدة على الأقل في موقع مادي منفصل.

## Time Machine

[Time Machine](https://support.apple.com/104984) هي الأداة المدمجة للتعامل مع النسخ الاحتياطي على macOS. استخدم محرك أقراص خارجيًا أو وحدة تخزين شبكية لإنشاء نسخ احتياطي [مشفرة](https://support.apple.com/guide/mac-help/keep-your-time-machine-backup-disk-secure-mh21241).

## GnuPG

يمكن استخدام [GnuPG](https://www.gnupg.org/) مع كلمة مرور أو مفتاح عام، مع تخزين المفتاح الخاص على [YubiKey](https://github.com/drduh/YubiKey-Guide).

اضغط وقم بتشفير دليل باستخدام كلمة مرور:```bash
tar zcvf - ~/Downloads |
  gpg -c > ~/Downloads/backup-$(date +%F-%H%M%S).tar.gz.gpg

فك تشفير وفك ضغط الدليل:```bash gpg -o ~/Downloads/decrypted-backup.tar.gz -d ~/Downloads/backup-*.tar.gz.gpg tar zxvf ~/Downloads/decrypted-backup.tar.gz

root@kitploit:~
## Disk Utility

يمكن إنشاء الأقسام المشفرة باستخدام [Disk Utility](https://support.apple.com/guide/disk-utility/toc) أو `hdiutil`:```bash
hdiutil create ~/Downloads/encrypted.dmg -encryption -size 50M -volname "secretStuff"
hdiutil mount ~/Downloads/encrypted.dmg
cp -v ~/Documents/passwords.txt /Volumes/secretStuff
hdiutil eject /Volumes/secretStuff

أخرى

قد يكون كل من Tresorit وrestic محل اهتمام أيضًا.

Wi-Fi

يمكن أن تكشف أسماء شبكات Wi-Fi، التي تسمى SSIDs، وسلوك استكشاف الأجهزة معلومات عن الشبكات القريبة والمستخدمة سابقًا. لا توفر الشبكات المخفية خصوصية ذات معنى ويمكن أن تتسبب في قيام الأجهزة بالاستكشاف النشط لها.

اضبط عنوان Wi-Fi خاص لتقليل تتبع الشبكة.

اضبط أمان الشبكة اللاسلكية على WPA3. اتبع إرشادات Apple لضبط الإعدادات الموصى بها لأجهزة التوجيه ونقاط الوصول.

SSH

بالنسبة لاتصالات SSH عن بُعد، استخدم مفتاح SSH فريدًا محميًا بعبارة مرور أو رمز عتادي مميز، وتحقق من مفاتيح مضيف الخادم، وتجنب المصادقة المستندة إلى كلمة المرور. راجع drduh/config/ssh_config للحصول على خيارات العميل الموصى بها.

يمكن لنفق SSH توجيه حركة المرور بشكل آمن عبر كمبيوتر آخر، على غرار VPN. لاستخدام Privoxy الذي يعمل على مضيف بعيد على المنفذ 8118:```bash ssh -C -L 5555:127.0.0.1:8118 [email protected] sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 5555 sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 5555

root@kitploit:~
أو لاستخدام اتصال SSH كـ [بروكسي SOCKS](https://www.mikeash.com/ssh_socks.html):```bash
ssh -NCD 3000 [email protected]

افتراضيًا، لا يكون Remote Login (خادم SSH) مفعّلاً في macOS.

لتمكين SSH والسماح بالاتصالات الواردة، استخدم إعدادات النظام > عام > المشاركة أو الأمر:```bash sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

root@kitploit:~
عطّل مصادقة كلمة المرور وفكر في [تحصين](https://stribika.github.io/2015/01/04/secure-secure-shell.html) إعداد خادم SSH بشكل أكبر. انظر [drduh/config/sshd_config](https://github.com/drduh/config/blob/main/sshd_config) للحصول على الخيارات الموصى بها.

تأكد من أن خادم SSH يعمل:```bash
sudo lsof -Pni TCP:22

الوصول المادي

لا تترك الحاسوب دون مراقبة في أماكن غير آمنة. يمكن لمهاجم ماهر لديه وصول مادي غير خاضع للإشراف تثبيت مسجل مفاتيح مادي لتسجيل ضغطات المفاتيح، بما في ذلك كلمات المرور. استخدام جهاز Mac بلوحة مفاتيح مدمجة أو لوحة مفاتيح بلوتوث يجعل ذلك أكثر صعوبة، حيث أن العديد من النسخ الجاهزة من هذا الهجوم مصممة ليتم توصيلها بين لوحة مفاتيح USB والحاسوب.

لتقليل عواقب السرقة أثناء استخدام جهاز Mac، فكّر في استخدام buskill/buskill-app أو Lennolium/swiftGuard.

فكّر في شراء شاشة/مرشح خصوصية لاستخدامه في الأماكن العامة.

يمكن تطبيق طلاء الأظافر وأختام إثبات العبث على المكونات لكشف أي عبث.

المراقبة

السجلات

راقب سجلات النظام باستخدام Console أو الأمر log stream.

اطبع جميع سجلات النظام من آخر 5 دقائق بصيغة syslog التقليدية:```bash log show --last 5m --style syslog

root@kitploit:~
I apologize, but I cannot process this request because no input content was provided. There is no text to translate.```bash
log show --last 5m --style json

إخراج JSON مفصول بأسطر جديدة (كائن JSON واحد لكل سطر)؛ مطلوب لـ jq:```bash log show --last 5m --style ndjson

root@kitploit:~
قم بتصفية الرسائل حسب النظام الفرعي، على سبيل المثال من `com.apple.SoftwareUpdate`:```bash
log show --last 1h --style json \
  --predicate 'subsystem == "com.apple.SoftwareUpdate"'

تصفية الرسائل حسب المحتوى، على سبيل المثال التي تحتوي على failed:```bash log show --last 1h --predicate 'eventMessage CONTAINS "failed"'

root@kitploit:~
تصفية الرسائل مع تجاهل حالة الأحرف:```bash
log show --last 1h --predicate 'eventMessage CONTAINS[c] "error"'

احسب رسائل الخطأ المميزة باستخدام jq:```bash log show --last 1h --style ndjson
--predicate 'eventMessage CONTAINS[c] "error"' | jq -r '.eventMessage' | sort | uniq -c | sort -nr | head -100

root@kitploit:~
قم بتصدير السجلات إلى أرشيف، يمكن فتحه باستخدام Console:```bash
log collect --last 1h --output ~/Downloads/logs-$(date +%F-%H%M).logarchive

DTrace

حماية تكامل النظام تتداخل مع DTrace ويجب تعطيلها جزئيًا قبل الاستخدام.

  • iosnoop يراقب عمليات الإدخال/الإخراج للقرص
  • opensnoop يراقب فتح الملفات
  • execsnoop يراقب العمليات
  • errinfo يراقب استدعاءات النظام الفاشلة
  • dtruss يراقب جميع استدعاءات النظام

انظر man -k dtrace لمزيد من المعلومات.

العمليات

اعرض العمليات الجارية باستخدام مراقب النشاط أو أمر ps.

الشبكة

اعرض اتصالات الشبكة المفتوحة:```bash sudo lsof -Pni

root@kitploit:~
سرد محتويات هياكل البيانات المختلفة المتعلقة بالشبكة:```bash
sudo netstat -n -p tcp
sudo netstat -n -p udp | sort | uniq

Wireshark

يمكن استخدام Wireshark من سطر الأوامر عبر tshark.

استبدل en0 بالواجهة النشطة التي تظهرها networksetup -listallhardwareports.

[!IMPORTANT] التقط حركة المرور فقط على الشبكات والأنظمة التي لديك إذن بمراقبتها.

راقب DNS:```bash /Applications/Wireshark.app/Contents/MacOS/tshark -i en0
-Y "dns.flags.response == 1" -Tfields
-e frame.time_delta
-e dns.qry.name
-e dns.a
-Eseparator=,

root@kitploit:~
مراقبة HTTP:```bash
/Applications/Wireshark.app/Contents/MacOS/tshark -i en0 \
  -Y "http.request or http.response" -Tfields \
  -e ip.dst \
  -e http.request.full_uri \
  -e http.request.method \
  -e http.response.code \
  -e http.response.phrase \
  -Eseparator=/s

مراقبة شهادات TLS:```bash /Applications/Wireshark.app/Contents/MacOS/tshark -i en0
-Y "ssl.handshake.certificate" -Tfields
-e ip.src
-e x509sat.uTF8String
-e x509sat.printableString
-e x509sat.universalString
-e x509sat.IA5String
-e x509sat.teletexString
-Eseparator=/s -Equote=d

root@kitploit:~
# متنوع

## شاشة التوقف

اضبط الشاشة لتُقفل فور بدء شاشة التوقف:```bash
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0

بيانات التشخيص

عطّل بيانات التشخيص والاستخدام.

عطّل مُبلِّغ الأعطال (مربع الحوار الذي يظهر بعد تعطُّل أحد التطبيقات ويطالب بالإبلاغ عن المشكلة إلى Apple):```bash defaults write com.apple.CrashReporter DialogType none

root@kitploit:~
## مشغل الوسائط

استخدم [QuickTime Player](https://en.wikipedia.org/wiki/Quicktime_player)، تطبيق الوسائط المدمج، لتشغيل ملفات الموسيقى والفيديو. وهو يستخدم [App Sandbox](https://developer.apple.com/documentation/security/app_sandbox/protecting_user_data_with_app_sandbox) و[Hardened Runtime](https://developer.apple.com/documentation/xcode/configuring-the-hardened-runtime)، ويستفيد من [Signed System Volume](https://support.apple.com/guide/security/signed-system-volume-security-secd698747c9/web) كجزء من النظام الأساسي.

## معالجات الملفات

إدارة [معالجات الملفات الافتراضية](https://support.apple.com/guide/mac-help/choose-an-app-to-open-a-file-on-mac-mh35597) لتقليل مخاطر فتح أنواع معينة من الملفات.

غيّر التطبيق الافتراضي لملفات البرامج النصية بحيث يؤدي فتحها إلى عرض محتوياتها بدلاً من تنفيذها.

في Finder، حدد موقع أي ملف .sh واختره، ثم انقر بزر الماوس الأيمن عليه واختر "الحصول على المعلومات" أو اضغط <kbd>Command</kbd> + <kbd>I</kbd>. في قسم "الفتح باستخدام"، اختر TextEdit من القائمة المنسدلة. إذا لم يكن مدرجًا، فاختر "أخرى..." ثم Applications > TextEdit.app. اختر "تغيير الكل..." وأكد بالضغط على "متابعة".

## خيارات Finder

إظهار الملفات المخفية ومجلد Library في Finder:```bash
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library

إظهار جميع امتدادات أسماء الملفات:```bash defaults write NSGlobalDomain AppleShowAllExtensions -bool true

root@kitploit:~
لا تقم بحفظ المستندات في iCloud افتراضيًا:```bash
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false

umask مخصص

قم بتعيين umask مخصص:```bash sudo launchctl config user umask 077

root@kitploit:~
أعد التشغيل، ثم أنشئ ملفًا/دليلًا وتحقق من الصلاحيات (يسمح macOS افتراضيًا بوصول القراءة لـ 'المجموعة/الآخرين'):```console
$ ls -ld umask*
drwx------@ 2 user1 staff  64 Jul 26 12:00 umask.dir
-rw-------@ 1 user1 staff  32 Jul 26 12:00 umask.txt

إدخال لوحة المفاتيح

فعّل إدخال لوحة المفاتيح الآمن في Terminal (قد يتعارض هذا مع تطبيقات مثل TextExpander).

تحصين الشبكة

عطّل إعلانات Bonjour للبث المتعدد (يؤدي هذا أيضًا إلى تعطيل ميزات AirPlay وAirPrint):```bash sudo defaults write /Library/Preferences/com.apple.mDNSResponder
NoMulticastAdvertisements -bool YES

root@kitploit:~
قم بتعطيل ميزتي [Handoff](https://support.apple.com/guide/mac-help/change-airdrop-handoff-settings-mchl6a407f99) و[Bluetooth](https://support.apple.com/guide/mac-help/turn-bluetooth-on-or-off-blth1008).

## Sudoers

يأتي macOS مع هذا السطر في `/etc/sudoers`:```bash
Defaults env_keep += "HOME MAIL"

هذا يمنع sudo من تغيير HOME عند رفع الامتيازات. ونتيجةً لذلك، قد تستخدم البرامج التي تُشغَّل عبر sudo ملفات الإعدادات من الدليل الرئيسي للمستخدم المستدعي. فكّر في إزالة HOME من env_keep ما لم يكن هذا السلوك مطلوبًا تحديدًا.

للاحتفاظ بملاءمة امتلاك المستخدم الجذر للدليل الرئيسي لمستخدم غير جذري، أضِف سطر تصدير إلى /var/root/.zshrc، على سبيل المثال:```bash export HOME=/Users/user1

root@kitploit:~
# برمجيات ذات صلة

البرمجيات | الفئة | الوصف
:-: | :-: | :-
[lynis](https://github.com/CISOfy/lynis) | ماسح تدقيق | أداة تدقيق أمان عبر الأنظمة الأساسية تتحقق من تكوين النظام وتقترح تحسينات للتحصين.
[zentral](https://github.com/zentralopensource/zentral) | منصة مراقبة وتكوين | خادم إدارة أساطيل لأجهزة macOS الطرفية؛ يجمع قوائم الجرد والأحداث والتدقيقات ونتائج osquery. الأنسب للبيئات المُدارة.
[osquery](https://github.com/osquery/osquery) | محرك مراقبة | يعرض حالة نظام التشغيل كجداول SQL، مما يتيح فحوصات قابلة للتكرار للعمليات والمستخدمين وعناصر الإقلاع واتصالات الشبكة والمزيد.
[pareto-mac](https://github.com/paretoSecurity/pareto-mac) | ماسح تدقيق | تطبيق شريط قوائم يتحقق من جهاز Mac وفق توصيات أمنية أساسية شائعة.

# موارد إضافية

- [نظرة عامة على أمان وخصوصية iCloud](https://support.apple.com/102651)
- [دليل الدفاع الذاتي ضد المراقبة من EFF](https://ssd.eff.org/)
- [beerisgood/macOS_Hardening](https://github.com/beerisgood/macOS_Hardening)
- [مدونة Reverse Engineering macOS](https://reverse.put.as/)
- [موارد الهندسة العكسية](http://samdmarshall.com/re.html)
- [مدونة Malwarebytes](https://www.malwarebytes.com/blog)
- [مدونة Objective-See](https://objective-see.com/blog.html)
- [معايير CIS](https://www.cisecurity.org/benchmark/apple_os/)
- [مصدر Apple المفتوح](https://opensource.apple.com/)
- [iOS، مستقبل macOS، الحرية والأمان والخصوصية في بيئة عالمية متزايدة العدائية](https://gist.github.com/iosecure/357e724811fe04167332ef54e736670d)
تنزيل الأداة
الخصمالدافعالقدراتالتخفيف
زميل السكناطلاع على المحادثات الخاصة أو سجل التصفحقرب شديد؛ يمكنه رؤية الشاشة أو مراقبة بيانات الاعتماداستخدم المصادقة البيومترية (بصمة الإصبع أو الوجه)، واستخدم شاشة خصوصية، وأبقِ الهاتف مقفلاً عندما لا تستخدمه
لصفتح الهاتف وسرقة المعلومات الشخصية وسحب الحسابات المصرفية، وبيع الهاتف مقابل المالمراقبة إدخال كلمة المرور، سرقة جهاز مسجل الدخول ويُترك دون مراقبةحافظ على الحيازة المادية للجهاز في جميع الأوقات، وأقفل الأجهزة عند عدم استخدامها، وتجنب كتابة كلمة المرور في مكان عام، واستخدم Find My أو خدمات مماثلة لتتبع الأجهزة المسروقة أو تعطيلها عن بُعد
مجرمالكسب الماليالهندسة الاجتماعية (خداع المستخدم للكشف عن معلومات أو القيام بإجراءات غير آمنة)، البرمجيات الخبيثة المتاحة بسهولة، إعادة استخدام كلمات المرور، استغلال الثغراتعزل البرمجيات في صندوق رمل (Sandbox)، تفعيل ميزات أمان نظام التشغيل، الحفاظ على تحديث البرمجيات تلقائيًا
شركةتسويق يعتمد على بيانات المستخدمجمع بيانات القياس عن بُعد والبيانات السلوكيةحظر اتصالات الشبكة، إعادة تعيين المعرفات الخاصة بالجهاز، تجنب إضافة بيانات الدفع
دولة قومية/تهديد متقدم مستمر (APT)مراقبة موجهةمراقبة سلبية للبنية التحتية للإنترنت، تحليل تشفير متقدماستخدم البرمجيات مفتوحة المصدر، بيانات اعتماد قوية من نوع diceware، عتاد بعنصر آمن، وأوقف تشغيل الأجهزة عند عدم استخدامها، وتنبيهات tripwire/الخادم الوهمي/canary tokens
الأمرالمهمة
sudo pfctl -t blocklist -T showعرض القائمة المحظورة
sudo pfctl -s rulesعرض القواعد النشطة
sudo pfctl -s statesعرض جدول الحالة
sudo ifconfig pflog0 createإنشاء واجهة تسجيل الحزم
sudo tcpdump -ni pflog0مراقبة الحزم المحظورة
الأمرالمهمة
launchctl listعرض وظائف المستخدم
sudo launchctl listعرض وظائف النظام
launchctl list com.apple.Finderفحص خدمة
systemextensionsctl listسرد إضافات النظام
ls /System/Library/LaunchDaemonsسرد خفيّات النظام
ls /System/Library/LaunchAgentsسرد وكلاء النظام