هذا الدليل عبارة عن مجموعة من الأساليب لتحسين الأمان والخصوصية لأجهزة كمبيوتر Apple silicon Mac التي تعمل بإصدار مدعوم حاليًا من macOS. يؤدي استخدام أجهزة Mac المزودة بوحدات المعالجة المركزية Intel إلى تعرضك لثغرات أمنية على مستوى الأجهزة والتي لا تستطيع Apple تصحيحها . تعد أجهزة Mac التي تعمل بتقنية Apple Silicon هي الحد الأدنى الموصى به، ولكن كقاعدة عامة، تكون الرقائق الأحدث دائمًا أكثر أمانًا.
يستهدف هذا الدليل المستخدمين المتميزين الذين يرغبون في اعتماد الأمان المتوافق مع معايير المؤسسة، ولكنه مناسب أيضًا للمستخدمين المبتدئين المهتمين بتحسين خصوصيتهم وأمانهم على جهاز Mac.
إذا كنت تقوم بتأمين أجهزة الكمبيوتر لمؤسسة ما، فاستخدم إرشادات NIST الرسمية لنظام التشغيل macOS.
يكون النظام آمنًا بقدر قدرة مديره على تحقيقه. لا توجد تقنية أو برنامج أو تقنية واحدة لضمان الأمان المثالي للكمبيوتر؛ يعد نظام التشغيل والكمبيوتر الحديثان أمرًا معقدًا للغاية، ويتطلب العديد من التغييرات الإضافية لتحسين وضع الأمان والخصوصية بشكل هادف.
يتم توفير هذا الدليل على أساس "كما هو" دون أي ضمانات من أي نوع. أنت وحدك المسؤول إذا كسرت أي شيء أو واجهت أي نوع من المشاكل باتباع هذا الدليل.
لاقتراح تحسين، أرسل طلب سحب أو افتح مشكلة.
تنطبق أفضل ممارسات الأمان العامة:
إنشاء نموذج التهديد
حافظ على تحديث النظام والبرمجيات
softwareupdate
- ولا يتطلب أي منهما تسجيل حساب Apple.تشفير البيانات الحساسة
التأكد من توافر البيانات
انقر بعناية
الخطوة الأولى والأكثر أهمية للأمان والخصوصية هي إنشاء نموذج تهديد. عليك أن تفهم خصومك لتتمكن من الدفاع ضدهم. سيكون لكل شخص احتياجاته الخاصة، لذلك سيكون نموذج التهديد الخاص بكل شخص مختلفًا. تميل نماذج التهديد إلى التطور بمرور الوقت مع تغير وضعنا، لذا تأكد من إعادة تقييم نموذج التهديد الخاص بك بشكل دوري.
من المحتمل أن تكون هذه أشياء كثيرة: هاتفك، وجهاز الكمبيوتر المحمول الخاص بك، وكلمات المرور المخزنة على أجهزتك، وسجل تصفح الإنترنت، وما إلى ذلك. قم بإعداد قائمة تبدأ بأهم الأصول التي يجب حمايتها. يمكنك تصنيفها في فئات بناءً على مدى أهميتها: عامة، أو حساسة، أو سرية.
حدد من تدافع ضده. ابدأ بتحديد الدافع الذي قد يكون لديهم لمهاجمة أصولك. فالكسب المالي يشكل حافزًا كبيرًا للعديد من المهاجمين، على سبيل المثال.
من أجل مواجهة خصومك، ستحتاج إلى فهم ما هم قادرون عليه وما لا يستطيعون فعله. رتب الخصوم من غير المتطورين تمامًا إلى المتقدمين جدًا. على سبيل المثال، اللص العادي ليس متطورًا جدًا؛ من المحتمل أن يتم إيقافها عن طريق أشياء أساسية مثل الحصول على كلمة مرور وتشفير محرك الأقراص على جهازك. قد يتطلب خصم متقدم جدًا مثل ممثل الدولة إيقاف تشغيل جهازك بالكامل عندما لا يكون قيد الاستخدام لمسح المفاتيح من ذاكرة الوصول العشوائي (RAM) وكلمة مرور طويلة.
الآن عليك أن تقرر أفضل طريقة لمواجهة كل تهديد. يمكنك تجنب كتابة كلمات المرور على الورق حتى لا يتمكن زميلك في الغرفة من العثور عليها أو يمكنك تشفير محرك الأقراص الموجود على جهاز الكمبيوتر الخاص بك حتى لا يتمكن اللص من الحصول على البيانات منه. من المهم تحقيق التوازن بين الأمان وسهولة الاستخدام؛ يجب أن يتعارض كل تخفيف مع بعض قدرات خصومك، وإلا فإنك قد تجعل حياتك غير مريحة مقابل مكاسب قليلة أو معدومة. إذا لم تتمكن من التفكير في أي قدرات أخرى قد يمتلكها خصومك وقمت بتنفيذ إجراءات تخفيف لهم جميعًا، فقد تم إنجاز عملك.
فيما يلي مثال لنوع الجدول الذي يجب عليك إعداده لكل أصل تريد حمايته:
خصم | تحفيز | القدرات | التخفيف |
---|---|---|---|
رفيق السكن | شاهد الدردشات الخاصة أو سجل التصفح | القرب القريب؛ يمكن رؤية الشاشة أو مشاهدة نوع كلمة المرور | استخدم القياسات الحيوية، واستخدم شاشة الخصوصية، وأبق الهاتف مغلقًا عند عدم استخدامه |
لص | فتح الهاتف وسرقة المعلومات الشخصية واستنزاف الحسابات المصرفية، وبيع الهاتف مقابل المال | تصفح الكتف لرؤية كلمة المرور، وسرقة الجهاز عندما لا تبحث أثناء تسجيل الدخول | أبقِ الهاتف في متناول يدك أو في متناول يدك في جميع الأوقات، وابقه مقفلاً عند عدم استخدامه، واستخدم القياسات الحيوية لتجنب كتابة كلمة المرور في الأماكن العامة، واستخدم خدمة Find My أو خدمة مشابهة لتتبع/تعطيل الجهاز المسروق عن بُعد |
مجرم | مالي | الهندسة الاجتماعية، والبرامج الضارة المتوفرة بسهولة، وإعادة استخدام كلمة المرور، واستغلال نقاط الضعف | استخدم وضع الحماية، وقم بتمكين ميزات الأمان في نظام التشغيل، وحافظ على تحديث نظام التشغيل وجميع البرامج، وقم بتشغيل التحديثات التلقائية |
مؤسَّسة | تسويق بيانات المستخدم | القياس عن بعد وجمع البيانات السلوكية | حظر اتصالات الشبكة، وإعادة تعيين المعرفات الفريدة، وتجنب إضافة بيانات الدفع |
الدولة القومية/APT | المراقبة المستهدفة | المراقبة السلبية للبنية التحتية للإنترنت، وأجهزة الكمبيوتر المتقدمة لكسر تشفير/تحليل الحزم | استخدم e2ee مفتوح المصدر، واستخدم كلمات مرور قوية للأجهزة، واستخدم الأجهزة ذات العنصر الآمن للتشفير الآمن، وأغلق الأجهزة عند عدم استخدامها، ورموز الكناري/مصيدة الشبكة/البرنامج |
اقرأ المزيد عن نمذجة التهديدات هنا.
يعد نظام التشغيل macOS هو الأكثر أمانًا عند تشغيله على أجهزة Apple المزودة بمعالج Apple. كلما كان جهاز Mac أحدث، كان ذلك أفضل. تجنب أجهزة hackintoshes وأجهزة Mac التي لا تدعم أحدث إصدار من نظام التشغيل macOS، حيث لا تقوم Apple بتصحيح جميع الثغرات الأمنية في الإصدارات التي ليست الأحدث.
عند شراء جهاز Mac الخاص بك، قد ترغب في تجنب ربطه بك مرة أخرى. اعتمادًا على نموذج التهديد الخاص بك، يجب عليك دفع ثمنه نقدًا شخصيًا بدلاً من الطلب عبر الإنترنت أو الشراء باستخدام بطاقة الائتمان/الخصم، وبهذه الطريقة لا يمكن ربط أي معلومات تعريفية بعملية الشراء الخاصة بك.
إذا كنت ترغب في استخدام لوحة مفاتيح أو ماوس أو سماعات رأس لاسلكية أو ملحقات أخرى، فإن الخيار الأكثر أمانًا هو أجهزة Apple حيث سيتم تحديثها تلقائيًا بواسطة نظامك. كما أنها تدعم أحدث ميزات Bluetooth مثل خصوصية BLE التي تعمل على توزيع عنوان جهاز Bluetooth الخاص بك بشكل عشوائي لمنع التتبع. مع ملحقات الطرف الثالث، لا يعد هذا ضمانًا.
هناك عدة طرق لتثبيت نظام التشغيل macOS. اختر طريقتك المفضلة من الخيارات المتاحة.
يجب عليك تثبيت أحدث إصدار من macOS المتوافق مع جهاز Mac الخاص بك . تحتوي الإصدارات الأحدث على تصحيحات أمنية وتحسينات أخرى تفتقر إليها الإصدارات الأقدم.
كجزء من نظام منع السرقة من Apple، ستحتاج أجهزة Mac المصنوعة من Apple إلى التنشيط مع خوادم Apple في كل مرة تقوم فيها بإعادة تثبيت macOS للتحقق من قاعدة بيانات أجهزة Mac المسروقة أو المقفلة بالتنشيط.
يمكنك أن تقرأ بالضبط كيف تعمل هذه العملية هنا.
لا يلزم إنشاء حساب Apple لاستخدام نظام التشغيل macOS. يتطلب إنشاء حساب Apple رقم هاتف وسيعمل بشكل افتراضي على مزامنة الكثير من البيانات مع iCloud، خدمة التخزين السحابية من Apple. يمكنك تعطيل المزامنة لاحقًا إذا كنت تريد أو تمكين التشفير الشامل لبيانات iCloud الخاصة بك.
يمكنك التحكم في البيانات المرتبطة بحساب Apple الخاص بك أو حذفها بالكامل.
يلزم وجود حساب Apple للوصول إلى App Store واستخدام معظم خدمات Apple مثل iCloud وApple Music وما إلى ذلك.
يعد Mac App Store مستودعًا منسقًا للبرامج المطلوبة للاستفادة من App Sandbox وHardened Runtime، بالإضافة إلى تقديم تحديثات تلقائية تتكامل مع نظامك.
يوفر App Store أكبر ضمانات الأمان للبرامج على نظام macOS، ولكنه يتطلب منك تسجيل الدخول باستخدام حساب Apple وستتمكن Apple من ربط حساب Apple الخاص بك بتطبيقاتك التي تم تنزيلها.
يمكنك بسهولة تشغيل macOS محليًا في جهاز افتراضي باستخدام UTM. إنه مجاني من موقعهم، ولكن إذا قمت بشرائه من App Store، فستحصل على تحديثات تلقائية.
اتبع وثائقهم لتثبيت جهاز macOS VM ببضع نقرات فقط.
خيار آخر هو VMware Fusion. يمكنك قراءة وثائقهم لمعرفة كيفية تثبيت جهاز macOS VM.
عند بدء تشغيل macOS لأول مرة، سيتم الترحيب بك بواسطة مساعد الإعداد .
عند إنشاء الحساب الأول، استخدم كلمة مرور قوية دون تلميح.
إذا قمت بإدخال اسمك الحقيقي في عملية إعداد الحساب، فكن على دراية بأن اسم جهاز الكمبيوتر الخاص بك واسم المضيف المحلي سيتضمنان هذا الاسم (على سبيل المثال، جهاز MacBook الخاص بـ John Appleseed ) وبالتالي سيظهران على الشبكات المحلية وفي ملفات التفضيلات المختلفة.
يجب التحقق من كلاهما وتحديثهما حسب الحاجة في إعدادات النظام > حول أو باستخدام الأوامر التالية بعد التثبيت:
sudo scutil --set ComputerName MacBook
sudo scutil --set LocalHostName MacBook
حساب المستخدم الأول هو دائمًا حساب مسؤول. حسابات الإدارة هي أعضاء في مجموعة الإدارة ولها حق الوصول إلى sudo
، مما يسمح لها باغتصاب الحسابات الأخرى، وخاصة root، ويمنحها سيطرة فعالة على النظام. من المحتمل أن يحصل أي برنامج ينفذه المسؤول على نفس الوصول، مما يجعل هذا خطرًا أمنيًا.
الأدوات المساعدة مثل sudo
بها نقاط ضعف يمكن استغلالها من خلال تشغيل البرامج بشكل متزامن.
تعتبر شركة Apple من أفضل الممارسات استخدام حساب قياسي منفصل للعمل اليومي واستخدام حساب المسؤول لعمليات التثبيت وتكوين النظام.
ليس من الضروري تسجيل الدخول إلى حساب المسؤول عبر شاشة تسجيل الدخول إلى macOS. عندما يتطلب أمر الوحدة الطرفية امتيازات المسؤول، سيطالب النظام بالمصادقة وسيستمر الجهاز الطرفي بعد ذلك في استخدام هذه الامتيازات. ولتحقيق هذه الغاية، تقدم شركة Apple بعض التوصيات لإخفاء حساب المسؤول والدليل الرئيسي الخاص به. يمكن أن يكون هذا حلاً أنيقًا لتجنب وجود حساب "خفي" مرئي.
/Applications
(الدليل المحلي). سيطالب Finder وInstaller المستخدم القياسي بمربع حوار المصادقة. يمكن تثبيت العديد من التطبيقات في ~/Applications
بدلاً من ذلك (يمكن إنشاء الدليل). كقاعدة عامة: التطبيقات التي لا تتطلب وصول المسؤول - أو لا تشكو من عدم تثبيتها في /Applications
- يجب تثبيتها في دليل المستخدم، والباقي في الدليل المحلي. لا تزال تطبيقات Mac App Store مثبتة في /Applications
ولا تتطلب أي مصادقة إضافية.sudo
غير متوفر في الأصداف الخاصة بالمستخدم القياسي، الأمر الذي يتطلب استخدام su
أو login
لإدخال الصدفة الخاصة بحساب المسؤول. وهذا يمكن أن يجعل بعض المناورات أكثر صعوبة ويتطلب بعض الخبرة الأساسية مع واجهات سطر الأوامر.open
.يمكن إنشاء الحسابات وإدارتها في تفضيلات النظام. في الأنظمة المستقرة، يكون من الأسهل عمومًا إنشاء حساب مسؤول ثانٍ ثم خفض مستوى الحساب الأول. وهذا يتجنب ترحيل البيانات. يمكن للأنظمة المثبتة حديثًا أيضًا إضافة حساب قياسي.
يمكن إجراء خفض تصنيف الحساب إما من حساب المسؤول الجديد في تفضيلات النظام - يجب تسجيل الخروج من الحساب الآخر - أو عن طريق تنفيذ هذه الأوامر (قد لا يكون من الضروري تنفيذ كليهما، راجع الإصدار 179):
sudo dscl . -delete /Groups/admin GroupMembership <username>
sudo dscl . -delete /Groups/admin GroupMembers <GeneratedUID>
للعثور على GeneratedUID للحساب:
dscl . -read /Users/<username> GeneratedUID
راجع أيضًا هذا المنشور لمزيد من المعلومات حول كيفية تحديد macOS لعضوية المجموعة.
يجب عليك التحقق من ضبط إعدادات أمان البرامج الثابتة على الأمان الكامل لمنع التلاعب بنظام التشغيل لديك. هذا هو الإعداد الافتراضي.
يتم تشفير جميع طرز Mac المزودة بـ Apple silicon افتراضيًا. يؤدي تمكين FileVault إلى جعلك تحتاج إلى إدخال كلمة مرور للوصول إلى البيانات الموجودة على محرك الأقراص لديك. لدى EFF دليل حول إنشاء كلمات مرور قوية ولكن لا تُنسى.
تعمل كلمة مرور FileVault أيضًا ككلمة مرور للبرامج الثابتة التي ستمنع الأشخاص الذين لا يعرفونها من التمهيد من أي شيء آخر غير قرص بدء التشغيل المحدد، والوصول إلى الاسترداد، وإحيائه باستخدام وضع DFU.
سيطلب منك FileVault تعيين مفتاح استرداد في حالة نسيان كلمة المرور الخاصة بك. احتفظ بهذا المفتاح مخزنًا في مكان آمن. سيكون لديك خيار استخدام حساب iCloud الخاص بك لفتح القرص الخاص بك؛ ومع ذلك، سيتمكن أي شخص لديه حق الوصول إلى حساب iCloud الخاص بك من فتحه أيضًا.
يوفر macOS وضع التأمين، وهي ميزة أمان تعمل على تعطيل العديد من الميزات عبر نظام التشغيل، مما يقلل بشكل كبير من مساحة الهجوم للمهاجمين مع الحفاظ على نظام التشغيل قابلاً للاستخدام. يمكنك أن تقرأ بالضبط عما تم تعطيله وتقرر بنفسك ما إذا كان مقبولاً بالنسبة لك.
عند تشغيل وضع التأمين، يمكنك تعطيله لكل موقع في Safari على المواقع الموثوقة.
هناك عدة أنواع من جدران الحماية المتوفرة لنظام التشغيل macOS.
جدار الحماية الأساسي المدمج الذي يمنع الاتصالات الواردة فقط. لا يتمتع جدار الحماية هذا بالقدرة على مراقبة الاتصالات الصادرة أو حظرها.
يمكن التحكم فيه من خلال علامة التبويب "جدار الحماية" الخاصة بالشبكة في "إعدادات النظام" ، أو باستخدام الأوامر التالية.
تمكين جدار الحماية مع وضع التسجيل والتسلل:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setloggingmode on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
يقوم قراصنة الكمبيوتر بفحص الشبكات حتى يتمكنوا من محاولة التعرف على أجهزة الكمبيوتر المراد مهاجمتها. يمكنك منع جهاز الكمبيوتر الخاص بك من الاستجابة لبعض عمليات الفحص هذه باستخدام وضع التخفي . عند تمكين وضع التخفي، لا يستجيب جهاز الكمبيوتر الخاص بك لطلبات ping الخاصة بـ ICMP، ولا يستجيب لمحاولات الاتصال من منفذ TCP أو UDP مغلق. وهذا يجعل من الصعب على المهاجمين العثور على جهاز الكمبيوتر الخاص بك.
لمنع البرامج المضمنة وكذلك البرامج الموقعة بواسطة التعليمات البرمجية والتي تم تنزيلها من إدراجها في القائمة البيضاء تلقائيًا :
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off
تتم إضافة التطبيقات الموقعة بواسطة مرجع مصدق صالح تلقائيًا إلى قائمة التطبيقات المسموح بها، بدلاً من مطالبة المستخدم بترخيصها. يتم توقيع التطبيقات المضمنة في macOS بواسطة Apple ويُسمح لها باستقبال الاتصالات الواردة عند تمكين هذا الإعداد. على سبيل المثال، نظرًا لأن iTunes موقع بالفعل بواسطة Apple، فإنه يُسمح تلقائيًا بتلقي الاتصالات الواردة من خلال جدار الحماية.
إذا قمت بتشغيل تطبيق غير موقع وغير مدرج في قائمة جدار الحماية، فسيظهر مربع حوار يحتوي على خيارات السماح أو رفض الاتصالات الخاصة بالتطبيق. إذا اخترت "السماح"، يقوم macOS بتوقيع التطبيق وإضافته تلقائيًا إلى قائمة جدران الحماية. إذا اخترت "رفض"، يضيفه macOS إلى القائمة ولكنه يرفض الاتصالات الواردة المخصصة لهذا التطبيق.
بعد التفاعل مع socketfilterfw
، أعد تشغيل العملية عن طريق إرسال إشارة قطع الخط:
sudo pkill -HUP socketfilterfw
توفر برامج مثل Little Snitch وRadio Silence وLuLu توازنًا جيدًا بين سهولة الاستخدام والأمان.
هذه البرامج قادرة على مراقبة وحظر اتصالات الشبكة الواردة والصادرة . ومع ذلك، فإنها قد تتطلب استخدام ملحق نظام مغلق المصدر.
إذا كان عدد خيارات السماح/حظر اتصالات الشبكة كبيرًا، فاستخدم الوضع الصامت مع السماح بالاتصالات، ثم تحقق من التكوين بشكل دوري لفهم التطبيقات وما تفعله.
تجدر الإشارة إلى أنه يمكن تجاوز جدران الحماية هذه عن طريق البرامج التي تعمل كجذر أو من خلال ثغرات نظام التشغيل (pdf)، لكنها لا تزال تستحق الحصول عليها - فقط لا تتوقع الحماية المطلقة. ومع ذلك، فإن بعض البرامج الضارة تحذف نفسها فعليًا ولا تعمل في حالة تثبيت Little Snitch، أو أي برنامج أمان آخر.
يوجد في النواة جدار حماية قوي وقابل للتخصيص بدرجة كبيرة ولكنه أيضًا أكثر تعقيدًا. يمكن التحكم فيه باستخدام pfctl
وملفات التكوين المختلفة.
يمكن أيضًا التحكم في pf باستخدام تطبيق واجهة المستخدم الرسومية مثل Murus.
هناك العديد من الكتب والمقالات حول موضوع جدار الحماية pf. فيما يلي مثال واحد فقط لحظر حركة المرور عن طريق عنوان IP.
أضف ما يلي إلى ملف يسمى pf.rules
:
wifi = "en0"
ether = "en7"
set block-policy drop
set fingerprints "/etc/pf.os"
set ruleset-optimization basic
set skip on lo0
scrub in all no-df
table <blocklist> persist
block in log
block in log quick from no-route to any
block log on $wifi from { <blocklist> } to any
block log on $wifi from any to { <blocklist> }
antispoof quick for { $wifi $ether }
pass out proto tcp from { $wifi $ether } to any keep state
pass out proto udp from { $wifi $ether } to any keep state
pass out proto icmp from $wifi to any keep state
ثم استخدم الأوامر التالية للتعامل مع جدار الحماية:
sudo pfctl -e -f pf.rules
لتمكين جدار الحماية وتحميل التكوينsudo pfctl -d
لتعطيل جدار الحمايةsudo pfctl -t blocklist -T add 1.2.3.4
لإضافة عنوان IP إلى القائمة السوداءsudo pfctl -t blocklist -T show
لعرض القائمة السوداءsudo ifconfig pflog0 create
لإنشاء واجهة للتسجيلsudo tcpdump -ni pflog0
لعرض الحزم التي تمت تصفيتهاما لم تكن معتادًا على تصفية الحزم، فمن غير المستحسن قضاء الكثير من الوقت في تكوين pf. ربما يكون ذلك أيضًا غير ضروري إذا كان جهاز Mac الخاص بك يعمل خلف NAT على شبكة منزلية خاصة.
من الممكن استخدام جدار الحماية pf لمنع وصول الشبكة إلى نطاقات كاملة من عناوين الشبكة، على سبيل المثال لمؤسسة بأكملها:
الاستعلام عن Merit RADb لقائمة الشبكات المستخدمة من قبل نظام مستقل، مثل Facebook:
whois -h whois.radb.net '!gAS32934'
انسخ والصق قائمة الشبكات التي تم إرجاعها إلى أمر blocklist:
sudo pfctl -t blocklist -T add 31.13.24.0/21 31.13.64.0/24 157.240.0.0/16
تأكيد إضافة العناوين:
$ 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
تأكد من حظر حركة مرور الشبكة على تلك العناوين (ستظل طلبات DNS تعمل):
$ dig a +short facebook.com
157.240.2.35
$ curl --connect-timeout 5 -I http://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.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.162771 > 157.240.2.35.80: tcp 0
يتم حظر حزم TCP SYN الصادرة، لذلك لا يتم إنشاء اتصال TCP وبالتالي يتم حظر موقع الويب بشكل فعال على طبقة IP.
راجع drduh/config/scripts/pf-blocklist.sh لمزيد من الإلهام.
تتم إدارة الخدمات على نظام التشغيل macOS من خلال Launchd . انظر Launchd.info.
يمكنك إدارة ورؤية المزيد من المعلومات حول البرنامج الذي يتم تشغيله عند تسجيل الدخول في إعدادات النظام. يمكنك رؤية النظام المثبت، والنظرة السريعة، والباحث، والملحقات الأخرى في إعدادات النظام أيضًا.
launchctl list
لعرض وكلاء المستخدم قيد التشغيلsudo launchctl list
لعرض برامج النظام قيد التشغيلlaunchctl list com.apple.Maps.mapspushd
defaults read
لفحص قوائم المهام في /System/Library/LaunchDaemons
و /System/Library/LaunchAgents
man
و strings
لمعرفة المزيد حول ما يفعله الوكيل/البرنامج الخفيعلى سبيل المثال، لمعرفة ما يفعله البرنامج الخفي أو وكيل تشغيل النظام، ابدأ بما يلي:
defaults read /System/Library/LaunchDaemons/com.apple.apsd.plist
انظر إلى قسم Program
أو ProgramArguments
لمعرفة أي ثنائي يتم تشغيله، في هذه الحالة apsd
. للعثور على مزيد من المعلومات حول ذلك، انظر إلى صفحة الدليل مع man apsd
ملاحظة: خدمات النظام محمية بواسطة SIP، لا تقم بتعطيل SIP فقط للتلاعب بخدمات النظام لأن SIP جزء لا يتجزأ من الأمان على نظام التشغيل macOS. قد يؤدي تعطيل خدمات النظام إلى حدوث عطل وسلوك غير مستقر!
لعرض حالة الخدمات:
find /var/db/com.apple.xpc.launchd/ -type f -print -exec defaults read {} ; 2>/dev/null
يتم تضمين قوائم مشروحة لبرامج الإطلاق والوكلاء، والبرنامج المعني الذي تم تنفيذه، ومجموعات تجزئة البرامج في هذا المستودع.
اقرأ المزيد حول Launchd وأين يمكن العثور على عناصر تسجيل الدخول على موقع Apple الإلكتروني.
تنتقل Apple إلى المعالجة على الجهاز للعديد من وظائف Siri، ولكن لا يزال يتم إرسال بعض المعلومات إلى Apple عند استخدام اقتراحات Siri أو Spotlight. يمكنك قراءة سياسة خصوصية Apple لمعرفة ما يتم إرساله بالضبط وكيفية تعطيله.
إذا لم يكن برنامجك متاحًا عبر App Store، فيمكنك التفكير في استخدام Homebrew.
مهم! يطلب منك Homebrew منح إذن "إدارة التطبيقات" (أو "الوصول الكامل إلى القرص") إلى جهازك الطرفي. هذه فكرة سيئة، لأنها ستجعلك عرضة لهذه الهجمات مرة أخرى: يمكن لأي تطبيق غير معزول تنفيذ تعليمات برمجية باستخدام أذونات TCC الخاصة بجهازك عن طريق إضافة أمر ضار إلى (على سبيل المثال) ~/.zshrc. يجب اعتبار منح "إدارة التطبيقات" أو "الوصول الكامل إلى القرص" إلى جهازك الطرفي بمثابة تعطيل TCC بالكامل.
تذكر تشغيل brew upgrade
بشكل دوري على شبكات موثوقة وآمنة لتنزيل تحديثات البرامج وتثبيتها. للحصول على معلومات حول الحزمة قبل التثبيت، قم بتشغيل brew info <package>
وتحقق من صيغتها عبر الإنترنت. قد ترغب أيضًا في تمكين خيارات أمان إضافية، مثل HOMEBREW_NO_INSECURE_REDIRECT=1
وفقًا لـ Homebrew's Anonymous Analytics، تقوم Homebrew بجمع تحليلات مجهولة المصدر وإبلاغها إلى مثيل InfluxDB مستضاف ذاتيًا. لإلغاء الاشتراك في تحليلات Homebrew، يمكنك تعيين export HOMEBREW_NO_ANALYTICS=1
في بيئتك أو ملف Shell rc، أو إيقاف brew analytics off
قدم نظام التشغيل macOS 11 "ملفات تعريف تكوين DNS" لتكوين DNS المشفر وتصفية المجالات واستخدام DNSSEC.
يمكن إنشاء ملفات تعريف DNS أو الحصول عليها من موفري خدمات مثل Quad9 وAdGuard وNextDNS.
استخدم ملف المضيفين لحظر البرامج الضارة أو الإعلانات أو المجالات غير المرغوب فيها المعروفة.
قم بتحرير ملف المضيفين كجذر، على سبيل المثال باستخدام sudo vi /etc/hosts
لحظر نطاق ما عن طريق سجل A
، قم بإلحاق أي من الأسطر التالية بـ /etc/hosts
:
0 example.com
0.0.0.0 example.com
127.0.0.1 example.com
ملاحظة: يستخدم IPv6 نوع سجل AAAA
DNS، بدلاً من نوع السجل A
، لذا قد ترغب أيضًا في حظر هذه الاتصالات من خلال تضمين ::1 example.com
أيضًا ، كما هو موضح هنا.
هناك العديد من قوائم النطاقات المتاحة عبر الإنترنت والتي يمكنك لصقها، فقط تأكد من أن كل سطر يبدأ بـ 0
و 0.0.0.0
و 127.0.0.1
ومن تضمين السطر 127.0.0.1 localhost
.
فيما يلي بعض قوائم المضيفين الشائعة والمفيدة:
إلحاق قائمة المضيفين مع tee
:
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | sudo tee -a /etc/hosts
إذا كنت تستخدم جدار حماية مثل Little Snitch، فيمكنك استخدام SteveBlack/hosts لاستيراد القواعد من مستودع leohidalgo/little-snitch---rule-groups، ويتم تحديث هذه القواعد كل 12 ساعة من مستودع SteveBlack/hosts.
لتشفير حركة مرور DNS، فكر في استخدام DNSCrypt/dnscrypt-proxy. عند استخدامه مع dnsmasq وDNSSEC، يمكن تحسين سلامة حركة مرور DNS بشكل كبير.
قم بتثبيت DNSCrypt من Homebrew واتبع التعليمات لتكوين وبدء تشغيل dnscrypt-proxy
:
brew install dnscrypt-proxy
إذا كنت تستخدمه مع Dnsmasq، فابحث عن الملف homebrew.mxcl.dnscrypt-proxy.plist
عن طريق تشغيله
brew info dnscrypt-proxy
والذي سيُظهر موقعًا مثل /usr/local/etc/dnscrypt-proxy.toml
افتحه في محرر نصوص، وابحث عن السطر الذي يبدأ listen_addresses =
وقم بتحرير هذا السطر لاستخدام DNScrypt على منفذ آخر غير 53، مثل 5355:
listen_addresses = ['127.0.0.1:5355', '[::1]:5355']
بدء تشغيل DNSCrypt:
sudo brew services restart dnscrypt-proxy
تأكد من تشغيل DNSCrypt:
$ 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
افتراضيًا، يعمل dnscrypt-proxy على المضيف المحلي (127.0.0.1)، المنفذ 53، مما يوازن حركة المرور عبر مجموعة من وحدات الحل. إذا كنت ترغب في تغيير هذه الإعدادات، فسيتعين عليك تعديل ملف التكوين: $HOMEBREW_PREFIX/etc/dnscrypt-proxy.toml
ملاحظة: قد تقوم التطبيقات والبرامج بحل DNS باستخدام الخوادم المتوفرة الخاصة بها. إذا تم استخدام dnscrypt-proxy، فمن الممكن تعطيل جميع حركة مرور DNS الأخرى غير dnscrypt باستخدام قواعد pf التالية:
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
راجع أيضًا ما هو تسرب DNS وipv6-test.com
ومن بين الميزات الأخرى، يستطيع dnsmasq تخزين الردود مؤقتًا، ومنع الاستعلامات الأولية للأسماء غير المؤهلة، وحظر نطاقات المستوى الأعلى بالكامل.
استخدمه مع DNSCrypt لتشفير حركة مرور DNS بشكل إضافي.
إذا كنت لا ترغب في استخدام DNSCrypt، فيجب عليك على الأقل استخدام DNS الذي لا يوفره مزود خدمة الإنترنت الخاص بك. البديلان الشائعان هما Google DNS وOpenDNS.
DNSSEC الاختياري عبارة عن مجموعة من الامتدادات لنظام DNS والتي توفر لعملاء DNS (المحللين) مصادقة الأصل لبيانات DNS، وإنكار الوجود المصادق عليه، وسلامة البيانات. جميع الإجابات من المناطق المحمية DNSSEC موقعة رقميًا. تتم مصادقة السجلات الموقعة عبر سلسلة ثقة، بدءًا بمجموعة من المفاتيح العامة التي تم التحقق منها لمنطقة جذر DNS. يمكن تنزيل أدوات تثبيت الثقة الحالية لمنطقة الجذر من موقع IANA على الويب. هناك عدد من الموارد على DNSSEC، ولكن ربما يكون أفضلها هو موقع dnssec.net.
تثبيت دنسماسك:
brew install dnsmasq --with-dnssec
قم بتنزيل وتحرير drduh/config/dnsmasq.conf أو ملف التكوين الافتراضي.
راجع drduh/config/domains للحصول على أمثلة قابلة للإلحاق حول حظر الخدمات حسب النطاقات.
قم بتثبيت البرنامج وبدء تشغيله (مطلوب Sudo للربط بالمنفذ المميز 53):
sudo brew services start dnsmasq
لتعيين dnsmasq كخادم DNS المحلي، افتح تفضيلات النظام > الشبكة وحدد الواجهة النشطة، ثم علامة تبويب DNS ، وحدد + وأضف 127.0.0.1
، أو استخدم:
sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1
تأكد من تكوين Dnsmasq:
$ 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
ملاحظة: تتجاوز بعض برامج VPN إعدادات DNS عند الاتصال. راجع الإصدار 24 وdrduh/config/scripts/macos-dns.sh.
اختبار اختياري للتحقق من DNSSEC للمناطق الموقعة - يجب أن يكون الرد بحالة NOERROR
وأن يحتوي على علامة ad
:
$ dig +dnssec icann.org | head
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47039
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
فشل اختبار التحقق من DNSSEC للمناطق التي تم توقيعها بشكل غير صحيح - يجب أن يكون الرد بحالة SERVFAIL
:
$ dig www.dnssec-failed.org | head
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 15190
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
يأتي macOS مزودًا بأكثر من 100 شهادة سلطة جذر مثبتة من شركات مثل Apple وVerisign وThawte وDigicert ووكالات حكومية من الصين واليابان وهولندا والولايات المتحدة والمزيد! هذه المراجع المصدقة (CAs) قادرة على إصدار شهادات TLS لأي مجال، وشهادات توقيع التعليمات البرمجية، وما إلى ذلك. وتحظر Apple هذه الشهادات عندما يثبت المرجع المصدق أنه غير جدير بالثقة. لديهم أيضًا متطلبات صارمة يجب على المراجع المصدقة الموثوقة الوفاء بها.
لمزيد من المعلومات، راجع موقع ويب CA/Browser Forum.
افحص شهادات جذر النظام في Keychain Access ، ضمن علامة التبويب System Roots أو باستخدام أداة سطر أوامر security
وملف /System/Library/Keychains/SystemRootCertificates.keychain
.
يمكنك تعطيل المراجع المصدقة يدويًا من خلال Keychain Access عن طريق وضع علامة عليها على أنها "لا تثق أبدًا" وإغلاق النافذة:
تحذير: سيؤدي هذا إلى قيام المتصفح الخاص بك بإرسال تحذير عند زيارة موقع باستخدام شهادات موقعة من قبل مراجع التصديق هذه وقد يتسبب في حدوث خلل في البرامج الأخرى. لا تثق في شهادات جذر Apple وإلا فإنها ستتسبب في حدوث الكثير من الأعطال في نظام التشغيل macOS!
إن خطر قيام رجل في المنتصف بالهجوم الذي تقوم فيه سلطة التصديق القسرية أو المخترقة والموثوق بها من قبل نظامك بإصدار شهادة TLS مزيفة/مارقة منخفض جدًا، ولكنه لا يزال ممكنًا.
فكر في استخدام Privoxy كوكيل محلي لتصفية حركة مرور الويب.
تثبيت وبدء تشغيل privoxy باستخدام Homebrew:
brew install privoxy
brew services start privoxy
وبدلاً من ذلك، تتوفر حزمة تثبيت موقعة لـ Privoxy من موقعهم على الويب أو من Sourceforge. تعد الحزمة الموقعة أكثر أمانًا من إصدار Homebrew وتتلقى الدعم من مشروع Privoxy.
افتراضيًا، يستمع Privoxy إلى منفذ TCP المحلي رقم 8118.
قم بتعيين وكيل HTTP للنظام لواجهة الشبكة النشطة 127.0.0.1
و 8118
:
sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118
قم بتعيين وكيل HTTPS للنظام:
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118
ويمكن القيام بذلك أيضًا من خلال تفضيلات النظام > الشبكة > خيارات متقدمة > الوكلاء
تأكد من تعيين الوكيل:
$ scutil --proxy
<dictionary> {
ExceptionsList : <array> {
0 : *.local
1 : 169.254/16
}
FTPPassive : 1
HTTPEnable : 1
HTTPPort : 8118
HTTPProxy : 127.0.0.1
}
على الرغم من أن معظم حركة مرور الويب اليوم مشفرة، إلا أن Privoxy لا يزال مفيدًا للتصفية حسب أنماط اسم المجال ولترقية طلبات HTTP غير الآمنة.
على سبيل المثال، تمنع القواعد التالية كل حركة المرور، باستثناء .net
و github.com
وجميع نطاقات apple
:
{ +block{all} }
.
{ -block }
.apple.
.github.com
.net
أو لحظر نطاقات فيسبوك فقط، على سبيل المثال:
{ +block{facebook} }
.facebook*.
.fb.
.fbcdn*.
.fbinfra.
.fbsbx.
.fbsv.
.fburl.
.tfbnw.
.thefacebook.
fb*.akamaihd.net
يتم دعم أحرف البدل أيضًا.
راجع drduh/config/privoxy/config و drduh/config/privoxy/user.action للحصول على أمثلة إضافية لـ Privoxy. لا يلزم إعادة تشغيل Privoxy بعد تحرير قواعد عامل تصفية user.action
.
للتحقق من حظر حركة المرور أو إعادة توجيهها، استخدم واجهة Curl أو Privoxy المتوفرة على http://pp في المتصفح:
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
server: GitHub.com
ملاحظة: إعدادات وكيل macOS ليست عالمية؛ قد لا تحترم التطبيقات والخدمات إعدادات وكيل النظام. تأكد من تكوين التطبيق الذي ترغب في إنشاء وكيل له بشكل صحيح وتأكد من عدم تسرب الاتصالات. بالإضافة إلى ذلك، يمكن تكوين pf لتوكيل حركة المرور بشفافية على منافذ معينة.
من المحتمل أن يشكل متصفح الويب أكبر خطر على الأمن والخصوصية، حيث أن وظيفته الأساسية هي تنزيل وتنفيذ تعليمات برمجية غير موثوقة من الإنترنت.
إحدى الخصائص المهمة للمتصفحات الحديثة هي Same Origin Policy (SOP) التي تمنع البرنامج النصي الضار الموجود على إحدى الصفحات من الوصول إلى البيانات الحساسة الموجودة على صفحة ويب أخرى من خلال نموذج كائن المستند (DOM). إذا تم اختراق SOP، فسيتم اختراق أمان المتصفح بأكمله.
تعتمد العديد من عمليات استغلال المتصفحات على الهندسة الاجتماعية كوسيلة لاكتساب المثابرة. كن حذرًا دائمًا من فتح مواقع غير موثوقة وكن حذرًا بشكل خاص عند تنزيل برامج جديدة.
هناك اعتبار مهم آخر حول أمان المتصفح وهو الإضافات. هذه مشكلة تؤثر على Firefox وChrome على حدٍ سواء. يجب أن يقتصر استخدام ملحقات المتصفح على الملحقات الضرورية للغاية التي ينشرها مطورون جديرون بالثقة.
تعتبر Mozilla Firefox وGoogle Chrome وSafari وTor Browser من المتصفحات الموصى بها لأغراضها الفريدة والفردية.
يعد Mozilla Firefox متصفحًا شائعًا مفتوح المصدر. استبدل Firefox الأجزاء الرئيسية من البنية التحتية وقاعدة التعليمات البرمجية الخاصة به ضمن المشروعين Quantum وPhoton. جزء من مشروع Quantum هو استبدال كود C++ بـ Rust. Rust هي لغة برمجة أنظمة تركز على الأمان وسلامة الخيوط. من المتوقع أن يؤدي اعتماد Rust إلى تحسين الوضع الأمني العام لمتصفح Firefox بشكل كبير.
يقدم Firefox نموذجًا أمنيًا مشابهًا لمتصفح Chrome: فهو يحتوي على برنامج مكافأة الأخطاء، على الرغم من أنه ليس مربحًا. يتبع Firefox دورة إصدار مدتها أربعة أسابيع.
يدعم Firefox ملفات التكوين التي يوفرها المستخدم. راجع drduh/config/firefox.user.js و arkenfox/user.js للتعرف على التفضيلات الموصى بها وإجراءات التعزيز. راجع أيضًا NoScript، وهو امتداد يسمح بحظر البرامج النصية الانتقائية.
يركز Firefox على خصوصية المستخدم. وهو يدعم حماية التتبع في وضع التصفح الخاص. يمكن تمكين حماية التتبع للحساب الافتراضي، على الرغم من أن ذلك قد يعطل تجربة التصفح على بعض مواقع الويب. سيقوم Firefox في وضع الحماية الصارمة من التتبع بتوزيع بصمة إصبعك بشكل عشوائي لإحباط نصوص التتبع الأساسية. يقدم Firefox ملفات تعريف مستخدم منفصلة. يمكنك فصل تصفحك داخل الملف الشخصي باستخدام حاويات الحسابات المتعددة.
يدعم Firefox امتدادات الويب فقط من خلال Web Extension Api، والتي تشبه إلى حد كبير متصفح Chrome. تقديم ملحقات الويب في Firefox مجاني. ملحقات الويب في Firefox في أغلب الأحيان تكون مفتوحة المصدر، على الرغم من أن بعض ملحقات الويب تكون مملوكة.
يعتمد Google Chrome على مشروع Chromium مفتوح المصدر مع بعض المكونات الخاصة:
يوفر Chrome مزامنة الحساب بين أجهزة متعددة. يتضمن جزء من بيانات SYNC بيانات الاعتماد لمواقع الويب. يتم تشفير البيانات بكلمة مرور الحساب.
يتطلب متجر Chrome على الويب للامتدادات رسومًا عمرها 5 أمريكي من أجل تقديم الامتدادات. تتيح التكلفة المنخفضة تطوير العديد من ملحقات الويب مفتوحة المصدر الجودة التي لا تهدف إلى الدخل من خلال الاستخدام.
يتمتع Chrome بأكبر حصة من الاستخدام العالمي وهو المنصة الهدف المفضلة لغالبية المطورين. تعتمد التقنيات الرئيسية على مكونات Chrome Open Source ، مثل Node.js التي تستخدم محرك V8 من Chrome وإطار الإلكترون ، الذي يعتمد على Chromium و Node.js. قاعدة المستخدمين الشاسعة في Chrome تجعلها الهدف الأكثر جاذبية لممثلي التهديدات والباحثين الأمن. على الرغم من الهجمات المستمرة ، احتفظ Chrome بسجل أمني مثير للإعجاب على مر السنين. هذا ليس إنجازًا صغيرًا.
يوفر Chrome ملفات تعريف منفصلة ، وعلبة رملية قوية ، وتحديثات متكررة ، وتحمل بيانات اعتماد رائعة. بالإضافة إلى ذلك ، تقدم Google برنامج مكافأة مربح للغاية للإبلاغ عن نقاط الضعف ، إلى جانب فريق Project Zero الخاص به. هذا يعني أن عددًا كبيرًا من الأشخاص الموهوبين والمتحمسين للغاية يقومون باستمرار بتدقيق وتأمين رمز الكروم.
قم بإنشاء ملامح Chrome منفصلة لتقليل مخاطر XSS وإضفاء الطابع القضوي على ملفات تعريف الارتباط/الهويات. في كل ملف تعريف ، إما تعطيل JavaScript في إعدادات Chrome وتكوين الأصول المسموح بها. يجب عليك أيضًا تعطيل محسن V8 للمواقع التي تستخدم فيها JavaScript لتقليل سطح الهجوم. انتقل إلى الإعدادات -> الخصوصية والأمان -> الأمان -> إدارة أمان V8 -> لا تسمح للمواقع باستخدام محسن V8
اقرأ المزيد عن فوائد تعطيل هذا هنا.
يمكنك حظر أجهزة التتبع مع Oblock Origin Lite.
قم بتغيير محرك البحث الافتراضي من Google لتقليل التتبع الإضافي.
تعطيل الجذاب المسبق DNS (انظر أيضًا التغلب على DNS وآثارها الخاصة (PDF)). لاحظ أن Chrome قد يحاول حل DNS باستخدام خادمات الأسماء العامة من Google 8.8.8.8
و 8.8.4.4
.
اقرأ أمان الكروم وخصوصية الكروم لمزيد من المعلومات. اقرأ سياسة خصوصية Google لفهم كيفية جمع المعلومات الشخصية واستخدامها.
Safari هو المتصفح الافتراضي على MacOS. إنه أيضًا المتصفح الأكثر تحسينًا لتقليل استخدام البطارية. Safari ، مثل Chrome ، له كل من المكونات مفتوحة المصدر والملكية. يعتمد Safari على WebKit WebKit مفتوح المصدر ، والذي يعد في كل مكان بين النظام البيئي MacOS. يتم استخدام WebKit بواسطة تطبيقات Apple مثل Mail و iTunes و Ibooks و App Store. محرك Blink من Chrome هو شوكة WebKit ويشترك كل من المحركين في عدد من أوجه التشابه.
يدعم Safari بعض الميزات الفريدة التي تفيد أمان المستخدم والخصوصية. تتيح حاصرات المحتوى إنشاء قواعد حظر المحتوى دون استخدام JavaScript. هذا النهج القائم على القاعدة يحسن إلى حد كبير استخدام الذاكرة والأمان والخصوصية. قدم Safari 11 الوقاية الذكية للتتبع ، والذي يزيل تتبع البيانات المخزنة في Safari بعد فترة من عدم التفاعل من قبل المستخدم من موقع Tracker. يمكن Safari عشوائيًا بصمة بصماتك لتقليل التتبع. لا يدعم Safari بعض الميزات مثل WebUSB أو API بطارية عن قصد لأسباب الأمان والخصوصية. علامات التبويب الخاصة في Safari تحتوي على ملفات تعريف الارتباط وذاكرة التخزين المؤقت التي يتم تدميرها عند إغلاق علامة التبويب. تدعم Safari أيضًا ملفات تعريف تعادل حاويات Firefox متعددة الحسابات لفصل ملفات تعريف الارتباط والتصفح. يمكن جعل Safari أكثر أمانًا بشكل ملحوظ مع وضع القفل ، والذي يمكن تعطيله في كل موقع. اقرأ المزيد عن التتبع الوقاية في Safari.
يقدم Safari برنامج Bounty للدعوة فقط لتقارير الأخطاء إلى عدد محدد من الباحثين الأمان. تم الإعلان عن برنامج Bounty خلال عرض Apple في Blackhat 2016.
تمتلك امتدادات الويب في Safari خيار إضافي لاستخدام التعليمات البرمجية الأصلية في بيئة Safari Sandbox ، بالإضافة إلى واجهات برمجة تطبيقات امتداد الويب. يتم توزيع ملحقات الويب في Safari من خلال متجر تطبيقات Apple. يأتي تقديم متجر التطبيقات مع فائدة إضافية من رمز تمديد الويب الذي يتم تدقيقه بواسطة Apple. من ناحية أخرى ، يأتي تقديم متجر التطبيقات بتكلفة شديدة. تبلغ تكلفة رسوم الاشتراك السنوية للمطورين 100 دولار أمريكي (على عكس رسوم Chrome التي تبلغ 5 دولارات أمريكي وتقديم Firefox المجاني). التكلفة العالية باهظة بالنسبة لغالبية مطوري المصادر المفتوحة. نتيجة لذلك ، لدى Safari عدد قليل جدًا من الإضافات للاختيار من بينها. ومع ذلك ، يجب أن تضع التكلفة العالية في الاعتبار عند تثبيت الامتدادات. من المتوقع أن يكون لمعظم امتدادات الويب طريقة لاستخدام الاستخدام من أجل تغطية تكاليف المطورين. كن حذرًا من امتدادات الويب التي لا يتم فتح رمز المصدر.
Safari يزامن تفضيلات المستخدم وكلمات المرور مع سلسلة مفاتيح ICLOUD. من أجل عرضه في نص عادي ، يجب على المستخدم إدخال كلمة مرور الحساب للجهاز الحالي. هذا يعني أنه يمكن للمستخدمين مزامنة البيانات عبر الأجهزة ذات الأمان المضافة.
يتبع Safari دورة إطلاق أبطأ من Chrome و Firefox (3-4 إصدارات صغيرة ، إصدار واحد رئيسي ، في السنة). الميزات الأحدث أبطأ لتبنيها للقناة المستقرة. يتم التعامل مع تحديثات الأمان في Safari بشكل مستقل عن جدول الإصدار المستقر ويتم تثبيته من خلال متجر التطبيقات.
انظر أيضًا EL1T/UBLOCK-SAFARI لتعطيل منارات التدقيق في الارتباط التشعبي.
لا ينصح العديد من المتصفحات المشتقة من الكروم. وعادة ما تكون مصدر مغلق ، وصيانتها بشكل سيئ ، وتقديم مطالبات مشكوك فيها لحماية الخصوصية.
لا يتم تقييم المتصفحات المتنوعة الأخرى ، مثل الشجاعة ، في هذا الدليل ، لذلك لا ينصح بها ولا تثبيطها بنشاط.
تكشف متصفحات الويب عن معلومات بعدة طرق ، على سبيل المثال من خلال واجهة Navigator ، والتي قد تتضمن معلومات مثل إصدار المتصفح ، ونظام التشغيل ، وأذونات الموقع ، ومستوى بطارية الجهاز. تستخدم العديد من مواقع الويب أيضًا بصمة قماش لتحديد المستخدمين بشكل فريد عبر الجلسات.
لمزيد من المعلومات حول التصفح الواعي للأمان وما هي البيانات التي يتم إرسالها بواسطة متصفحك ، انظر Howto: الخصوصية وتصفح الأمن ، BrowserLeaks.com ، هل أنا فريدة من نوعها؟ وتغطي EFF موارد المسارات الخاصة بك.
لإعاقة أجهزة تتبع الطرف الثالث ، يوصى بتعطيل ملفات تعريف الارتباط الطرف الثالث تمامًا. Safari و Firefox و Chrome جميع ملفات تعريف الارتباط من طرف ثالث بشكل افتراضي. ملف تعريف الارتباط من طرف ثالث هو ملف تعريف ارتباط مرتبط بملف يطلبه مجال مختلف عن المجال الذي يشاهده المستخدم حاليًا. في معظم الوقت ، يتم استخدام ملفات تعريف الارتباط من الطرف الثالث لإنشاء ملفات تعريف التصفح من خلال تتبع حركة المستخدم على الويب. يؤدي تعطيل ملفات تعريف الارتباط التابعة لجهة خارجية إلى منع استجابات HTTP والبرامج النصية من المجالات الأخرى من إعداد ملفات تعريف الارتباط. علاوة على ذلك ، تتم إزالة ملفات تعريف الارتباط من طلبات إلى المجالات التي ليست مجال أصل المستند ، لذلك يتم إرسال ملفات تعريف الارتباط فقط إلى الموقع الحالي الذي يتم عرضه.
كن على دراية أيضًا بـ WEBRTC ، والتي قد تكشف عن عنوان IP المحلي أو العام (إذا كان متصلاً بعنوان VPN) IP (ES). في Firefox و Chrome/Chromium يمكن تعطيل هذا مع امتدادات مثل Oblock Origin. وضع Lockdown يعطل Webrtc في Safari.
TOR هي شبكة مجهولة يمكن استخدامها لتصفح الويب بخصوصية إضافية. Tor Prowser هو نسخة معدلة من Firefox مع وكيل للوصول إلى شبكة TOR.
قم بتنزيل متصفح Tor من Project Project.
لا تحاول تكوين المتصفحات أو التطبيقات الأخرى لاستخدام TOR حيث قد ترتكب خطأً من شأنه أن يضعف عدم الكشف عن هويته.
قم بتنزيل كل من ملفات توقيع dmg
و asc
، ثم تحقق من توقيع صورة Disk من قبل مطوري TOR:
$ cd ~ /Downloads
$ file Tor *
TorBrowser-8.0.4-osx64_en-US.dmg: bzip2 compressed data, block size = 900k
TorBrowser-8.0.4-osx64_en-US.dmg.asc: PGP signature Signature (old)
$ gpg Tor * asc
[...]
gpg: Can't check signature: No public key
$ gpg --recv 0x4E2C6E8793298290
gpg: key 0x4E2C6E8793298290: public key "Tor Browser Developers (signing key) <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
$ gpg --verify Tor * asc
gpg: assuming signed data in 'TorBrowser-8.0.4-osx64_en-US.dmg'
gpg: Signature made Mon Dec 10 07:16:22 2018 PST
gpg: using RSA key 0xEB774491D9FF06E2
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: 1107 75B5 D101 FB36 BC6C 911B EB77 4491 D9FF 06E2
تأكد من Good signature from "Tor Browser Developers (signing key) <[email protected]>"
في الإخراج. إن التحذير من المفتاح غير المعتمد هو حميد ، لأنه لم يتم تعيينه بعد.
انظر كيف يمكنني التحقق من توقيع Tor Browser؟ لمزيد من المعلومات.
لإنهاء تثبيت متصفح Tor ، افتح صورة القرص واسحب IT إلى مجلد التطبيقات ، أو مع:
hdiutil mount TorBrowser-8.0.4-osx64_en-US.dmg
cp -r /Volumes/Tor Browser/Tor Browser.app/ ~/Applications/
تحقق من توقيع رمز تطبيق TOR من خلال مع معرف Apple Developer الخاص بمشروع TOR ، باستخدام أوامر spctl -a -v
و/أو pkgutil --check-signature
.
$ spctl -a -vv ~ /Applications/Tor Browser.app
/Users/drduh/Applications/Tor Browser.app: accepted
source=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 Mac OS X
Certificate Chain:
1. Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
SHA1 fingerprint: 95 80 54 F1 54 66 F3 9C C2 D8 27 7A 29 21 D9 61 11 93 B3 E8
-----------------------------------------------------------------------------
2. Developer ID Certification Authority
SHA1 fingerprint: 3B 16 6C 3B 7D C4 B7 51 C9 FE 2A FA B9 13 56 41 E3 88 E1 86
-----------------------------------------------------------------------------
3. Apple Root CA
SHA1 fingerprint: 61 1E 5B 66 2C 59 3A 08 FF 58 D1 4A E2 24 52 D1 98 DF 6C 60
يمكنك أيضًا استخدام الأمر codesign
لفحص توقيع رمز التطبيق:
$ codesign -dvv ~ /Applications/Tor Browser.app
Executable=/Users/drduh/Applications/Tor Browser.app/Contents/MacOS/firefox
Identifier=org.torproject.torbrowser
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=229 flags=0x0(none) hashes=4+3 location=embedded
Library validation warning=OS X SDK version before 10.9 does not support Library Validation
Signature size=4247
Authority=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Signed Time=Dec 10, 2018 at 12:18:45 AM
Info.plist entries=24
TeamIdentifier=MADPSAYN6T
Sealed Resources version=2 rules=12 files=128
Internal requirements count=1 size=188
لعرض تفاصيل الشهادة الكاملة للتطبيق الموقّع ، قم باستخراجها باستخدام codesign
وفك تشفيره باستخدام openssl
:
$ codesign -d --extract-certificates ~ /Applications/Tor Browser.app
Executable=/Users/drduh/Applications/Tor Browser.app/Contents/MacOS/firefox
$ file codesign *
codesign0: data
codesign1: data
codesign2: data
$ 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=Apple Certification Authority/O=Apple Inc./C=US
notBefore=Apr 12 22:40:13 2016 GMT
notAfter=Apr 13 22:40:13 2021 GMT
$ openssl x509 -inform der -in codesign0 -fingerprint -noout
SHA1 Fingerprint=95:80:54:F1:54:66:F3:9C:C2:D8:27:7A:29:21:D9:61:11:93:B3:E8
$ openssl x509 -inform der -in codesign0 -fingerprint -sha256 -noout
SHA256 Fingerprint=B5:0D:47:F0:3E:CB:42:B6:68:1C:6F:38:06:2B:C2:9F:41:FA:D6:54:F1:29:D3:E4:DD:9C:C7:49:35:FF:F5:D9
يتم تشفير حركة مرور Tor على عقدة الخروج (أي ، لا يمكن قراءتها بواسطة تنصت شبكة سلبية) ، ولكن يمكن تحديد استخدام TOR - على سبيل المثال ، ستظهر TLS مصافحة "أسماء المضيف" في نص عادي:
$ sudo tcpdump -An " tcp " | grep " www "
listening on pktap, link-type PKTAP (Apple DLT_PKTAP), capture size 262144 bytes
.............". ...www.odezz26nvv7jeqz1xghzs.com.........
.............#.!...www.bxbko3qi7vacgwyk4ggulh.com.........
.6....m.....>...:.........|../* Z....W....X=..6...C../....................................0...0..0.......'....F./0.. *.H........0%1#0!..U....www.b6zazzahl3h3faf4x2.com0...160402000000Z..170317000000Z0'1%0#..U....www.tm3ddrghe22wgqna5u8g.net0..0..
انظر مواصفات بروتوكول TOR و TOR/TLSHISTORY لمزيد من المعلومات.
قد ترغب في زيادة عدد حركة المرور TOR باستخدام نقل قابل للتوصيل.
يمكن القيام بذلك عن طريق إعداد ترحيل TOR الخاص بك أو العثور على جسر خاص أو عام خاص ليكون بمثابة عقدة دخول متورطة.
للحصول على أمان إضافي ، استخدم TOR داخل VirtualBox أو VMware Virtualized GNU/Linux أو OpenBSD.
أخيرًا ، تذكر أن شبكة TOR توفر عدم الكشف عن هويتها ، والتي ليست بالضرورة مرادفًا للخصوصية. لا تضمن شبكة TOR الحماية ضد مراقب عالمي قادر على تحليل حركة المرور والارتباط. انظر أيضًا البحث عن عدم الكشف عن هويته في الإنترنت Panopticon (PDF) وارتباط حركة المرور على TOR من قبل الخصوم الواقعية (PDF).
انظر أيضًا مشروع الإنترنت غير المرئي (I2P) ومقارنة TOR.
عند اختيار خدمة VPN أو إعدادك ، تأكد من البحث في البروتوكولات ، وخوارزميات التبادل المفاتيح ، وآليات المصادقة ، ونوع التشفير المستخدمة. يجب تجنب بعض البروتوكولات ، مثل PPTP ، لصالح OpenVPN أو Linux Wireguard على Linux VM أو عبر مجموعة من أدوات المنصة المتقاطعة.
قد يرسل بعض العملاء حركة المرور عبر الواجهة المتاحة التالية عند مقاطعة VPN أو فصلها. انظر SCY/8122924 للحصول على مثال على كيفية السماح لحركة المرور فقط على VPN.
يوجد دليل محدث لإعداد IPSEC VPN على جهاز افتراضي (HWDSL2/SETUP-PEPSEC-VPN) أو حاوية Docker (HWDSL2/DOCKER-EPSEC-VPN-SERVER).
قد يكون من المفيد النظر في الموقع الجغرافي لمزود VPN. انظر المزيد من النقاش في العدد 114.
انظر أيضًا هذه النظرة الفنية عن عميل MacOS المدمج في VPN L2TP/IPSEC و IKEV2.
يعد PGP معيارًا لتوقيع البيانات وتشفيرها (وخاصة البريد الإلكتروني) من طرف إلى طرف ، لذلك يمكن للمرسل والمستلم الوصول إليها فقط.
GPG ، أو GNU Guard ، هو برنامج مفتوح المصدر المرخص GPL مع معيار PGP.
يتم استخدام GPG للتحقق من توقيعات البرامج التي تقوم بتنزيلها وتثبيتها ، بالإضافة إلى تشفير الملفات والنص بشكل متماثل أو غير متماثل.
التثبيت من homebrew مع brew install gnupg
.
إذا كنت تفضل تطبيقًا رسوميًا ، فقم بتنزيل وتثبيت GPG Suite.
قم بتنزيل drduh/config/gpg.conf لاستخدام الإعدادات الموصى بها:
curl -o ~/.gnupg/gpg.conf https://raw.githubusercontent.com/drduh/config/master/gpg.conf
انظر Drduh/Yubikey-Guide لإنشاء وتخزين مفاتيح GPG.
اقرأ أدلة عبر الإنترنت وممارسة تشفير وفك تشفير البريد الإلكتروني لنفسك ولأصدقائك. اجعلهم مهتمين بهذه الأشياء!
XMPP هو معيار مفتوح تم تطويره بواسطة IETF يسمح بالرسائل الفدارية عبر المنصات. هناك العديد من الخيارات للعملاء. فكر في استخدام أحد العملاء القائم على المتصفح للاستفادة من صندوق الرمل الخاص بالمتصفح.
اعتمادًا على المزود ، قد لا تحتاج إلى أي شيء آخر غير اسم المستخدم وكلمة المرور لإعداد حسابك.
XMPP ليس E2EE افتراضيًا ، ستحتاج إلى استخدام تشفير Omemo ، لذا تأكد من دعم عميلك.
Signal هي عبارة عن Messenger متطور E2EE يتم استخدام بروتوكول الإقالة المزدوجة من قبل عدد لا يحصى من المراسلين الآخرين بما في ذلك WhatsApp و Google Messages و Facebook Messenger.
تتطلب الإشارة رقم هاتف للتسجيل وستحتاج إلى تثبيته على هاتفك أولاً قبل أن تتمكن من استخدامه على سطح المكتب.
Imessage هو رسول الطرف الأول من Apple. يتطلب حساب Apple لاستخدامه.
تأكد من تمكين التحقق من مفتاح الاتصال والتحقق من أي شخص ترسله للتأكد من أنك ترسل الشخص المناسب.
يمكنك استخدام iMessage إما برقم هاتف أو بريد إلكتروني ، لذا اختر رسالة مرتاح لرؤية جهات الاتصال الخاصة بك.
ملاحظة: بشكل افتراضي ، يتم تمكين النسخ الاحتياطي لـ ICLOUD الذي يخزن نسخًا من مفاتيح تشفير الرسائل على خوادم Apple دون E2EE. إما تعطيل نسخة احتياطية من ICLOUD أو تمكين حماية البيانات المتقدمة لمنع ذلك. تذكر أيضًا أن تخبر شريك المراسلة/أن تفعل الشيء نفسه!
هناك كمية متزايدة من البرامج الضارة Mac في البرية. أجهزة Mac ليست محصنة من الفيروسات والبرامج الخبيثة!
تأتي بعض البرامج الضارة مع كلا البرامج المشروعة ، مثل شريط أدوات Java Bundling Ask ، وبعضها مع برامج غير شرعية ، مثل Mac.BackDoor.iworm مجمعة ببرامج مقرصنة.
انظر طرق استمرار البرامج الضارة على Mac OS X (PDF) واستمرار البرامج الضارة على OS X Yosemite لمعرفة كيفية وظائف البرامج الضارة في حديقة.
اشترك في التحديثات في مدونة MalwareBytes لأخبار Mac Security الحالية.
تحقق أيضًا من برنامج Hacking Team Malware لـ MacOS: تثبيت الجذر لـ MacOS ، ودعم برنامج التشغيل لـ Mac Agent و RCS لـ Mac ، وهو مثال جيد على البرامج الضارة المتقدمة مع إمكانات للاختباء من Userland (على سبيل المثال ، ps
، ls
). لمزيد من المعلومات ، راجع تحليل موجز لمثبت زرع RCS و revers.as.as
فقط تشغيل البرامج من متجر التطبيقات أو التي يتم توثيقها بواسطة Apple سيساعد على تخفيف البرامج الضارة. تقوم Apple بإجراء فحص تلقائي على التطبيقات الموثوقة للبرامج الضارة. تخضع تطبيقات متجر التطبيقات لعملية مراجعة للقبض على البرامج الضارة.
خلاف ذلك ، احصل على برامج من مصادر موثوقة مثل مباشرة من موقع المطور أو github. تأكد دائمًا من أن المستعرض/المحطة الطرفية يستخدم HTTPS عند تنزيل أي برنامج.
يجب عليك أيضًا تجنب البرامج التي تطلب الكثير من الأذونات وبرامج المصدر المغلقة من طرف ثالث. يتيح رمز المصدر المفتوح لأي شخص مراجعة وفحص رمز قضايا الأمان/الخصوصية.
تحقق مما إذا كان البرنامج يستخدم صندوق رمل التطبيق قبل تشغيله عن طريق تشغيل الأمر التالي:
codesign -dvvv --entitlements - <path to your app>
إذا تم تمكين صندوق الرمال التطبيق ، فسترى
[Key] com.apple.security.app-sandbox
[Value]
[Bool] true
بدلاً من ذلك ، يمكنك التحقق أثناء تشغيل التطبيق عن طريق فتح شاشة النشاط وإضافة عمود "Sandbox".
مطلوب جميع تطبيقات متجر التطبيقات لاستخدام صندوق الرمل.
ملاحظة: تستخدم المتصفحات مثل Google Chrome صندوق الرمل الخاص بهم حتى لا تستخدم صندوق رمل التطبيق.
تحقق مما إذا كان البرنامج يستخدم وقت التشغيل المتصلب قبل تشغيله باستخدام الأمر التالي:
codesign --display --verbose /path/to/bundle.app
إذا تم تمكين وقت التشغيل الصلب ، فسترى flags=0x10000(runtime)
. "وقت التشغيل" يعني تمكين وقت التشغيل المتصلب. قد تكون هناك أعلام أخرى ، لكن علم وقت التشغيل هو ما نبحث عنه هنا.
يمكنك تمكين عمود في شاشة النشاط المسمى "المقيد" وهو علامة تمنع البرامج من حقن التعليمات البرمجية عبر الرابط الديناميكي الخاص بـ MacOS. من الناحية المثالية ، يجب أن يقول "نعم".
هناك حاجة إلى تطبيقات موثوقة لاستخدام وقت التشغيل المتصلب.
لمسح تطبيق مع منتجات AV متعددة وفحص سلوكه ، قم بتحميله إلى Virustotal قبل تشغيله.
يأتي MacOS مع برنامج AV مدمج يسمى XProtect. يعمل XProtect تلقائيًا في الخلفية ويقوم بتحديث توقيعاته التي تستخدمها للكشف عن البرامج الضارة دون الاضطرار إلى القيام بأي شيء. إذا اكتشفت البرامج الضارة التي تعمل بالفعل ، فسيعمل على إزالة وتخفيفها تمامًا مثل أي برنامج AV آخر.
قد تساعد تطبيقات مثل blockblock أو macLaunch.sh في منع البرامج الضارة المستمرة.
تعتبر برامج مكافحة الفيروسات المثبتة محليًا سيفًا مزدوج الحدين: قد تصطاد برامج "متنوعة حديقة" ، ولكنها قد تزيد أيضًا من سطح الهجوم للخصوم المتطورة بسبب وضع التشغيل المتميز. كما أنها عادةً هاتفية منزل لإرسال عينات من أجل التقاط أحدث البرامج الضارة. هذا يمكن أن يكون مصدر قلق الخصوصية.
انظر Sofail: هجمات التطبيقية ضد مكافحة الفيروسات (PDF) ، وتحليل واستغلال ثغرة الأمنية ، تعرضت برامج الأمن الشعبية في NSA و GCHQ لا هوادة فيها ، وكيف اشتعلت إسرائيل المتسللين الروس الذين كانوا يتجولون في العالم من أجل أسرار الولايات المتحدة.
يحاول Gatekeeper منع التطبيقات غير العاجلة.
إذا حاولت تشغيل تطبيق غير موضح ، فسوف يعطيك Gatekeeper تحذيرًا. يمكن تجاوز ذلك بسهولة إذا ذهبت إلى الخصوصية والأمان ، ثم انتقل لأسفل إلى الأسفل وانقر فوق فتح على تطبيقك. ثم يسمح لك Gatekeeper بتشغيله.
لا يغطي Gatekeeper جميع الثنائيات ، فقط التطبيقات ، لذا كن حذرًا عند تشغيل أنواع الملفات الأخرى.
للتحقق من تمكين SIP ، استخدم csrutil status
الأمر ، والتي يجب أن تعود: System Integrity Protection status: enabled.
خلاف ذلك ، تمكين SIP من خلال وضع الاسترداد.
MacOS يرفق البيانات الوصفية (سمات APFS الموسعة) إلى الملفات التي تم تنزيلها ، والتي يمكن عرضها باستخدام أوامر mdls
و xattr
:
$ ls -l@ ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
-rw-r--r--@ 1 drduh staff 63M Jan 1 12:00 TorBrowser-8.0.4-osx64_en-US.dmg
com.apple.metadata:kMDItemWhereFroms 46B
com.apple.quarantine 57B
$ mdls ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
kMDItemContentCreationDate = 2019-01-01 00:00:00 +0000
kMDItemContentCreationDate_Ranking = 2019-01-01 00:00:00 +0000
kMDItemContentModificationDate = 2019-01-01 00:00:00 +0000
kMDItemContentType = "com.apple.disk-image-udif"
kMDItemContentTypeTree = (
"public.archive",
"public.item",
"public.data",
"public.disk-image",
"com.apple.disk-image",
"com.apple.disk-image-udif"
)
kMDItemDateAdded = 2019-01-01 00:00:00 +0000
kMDItemDateAdded_Ranking = 2019-01-01 00:00:00 +0000
kMDItemDisplayName = "TorBrowser-8.0.4-osx64_en-US.dmg"
kMDItemFSContentChangeDate = 2019-01-01 00:00:00 +0000
kMDItemFSCreationDate = 2019-01-01 00:00:00 +0000
kMDItemFSCreatorCode = ""
kMDItemFSFinderFlags = 0
kMDItemFSHasCustomIcon = (null)
kMDItemFSInvisible = 0
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = (null)
kMDItemFSLabel = 0
kMDItemFSName = "TorBrowser-8.0.4-osx64_en-US.dmg"
kMDItemFSNodeCount = (null)
kMDItemFSOwnerGroupID = 5000
kMDItemFSOwnerUserID = 501
kMDItemFSSize = 65840402
kMDItemFSTypeCode = ""
kMDItemInterestingDate_Ranking = 2019-01-01 00:00:00 +0000
kMDItemKind = "Disk Image"
kMDItemWhereFroms = (
"https://dist.torproject.org/torbrowser/8.0.4/TorBrowser-8.0.4-osx64_en-US.dmg",
"https://www.torproject.org/projects/torbrowser.html.en"
)
$ xattr -l ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
com.apple.metadata:kMDItemWhereFroms:
00000000 62 70 6C 69 73 74 30 30 A2 01 02 5F 10 4D 68 74 |bplist00..._.Mht|
00000010 74 70 73 3A 2F 2F 64 69 73 74 2E 74 6F 72 70 72 |tps://dist.torpr|
00000020 6F 6A 65 63 74 2E 6F 72 67 2F 74 6F 72 62 72 6F |oject.org/torbro|
[...]
com.apple.quarantine: 0081;58519ffa;Google Chrome.app;1F032CAB-F5A1-4D92-84EB-CBECA971B7BC
يمكن أيضًا إزالة سمات البيانات الوصفية مع علم -d
:
xattr -d com.apple.metadata:kMDItemWhereFroms ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
xattr -d com.apple.quarantine ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
xattr -l ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
يمكن الاطلاع على البيانات الوصفية والتحف الأخرى في الدلائل ، بما في ذلك ، على سبيل المثال لا الحصر ، ~/Library/Preferences/
، ~/Library/Containers/<APP>/Data/Library/Preferences
/Library/Preferences
أقل.
~/Library/Preferences/com.apple.sidebarlists.plist
يحتوي على قائمة تاريخية من المجلدات المرفقة. لمسحه ، استخدم الأمر /usr/libexec/PlistBuddy -c "delete :systemitems:VolumesList" ~/Library/Preferences/com.apple.sidebarlists.plist
/Library/Preferences/com.apple.Bluetooth.plist
يحتوي على بيانات تعريف Bluetooth ، بما في ذلك تاريخ الجهاز. إذا لم يتم استخدام Bluetooth ، يمكن مسح البيانات الوصفية مع:
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist DeviceCache
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist IDSPairedDevices
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist PANDevices
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist PANInterfaces
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist SCOAudioDevices
/var/spool/cups
يحتوي على ذاكرة التخزين المؤقت لـ Cups Printer. لمسحها ، استخدم الأوامر:
sudo rm -rfv /var/spool/cups/c0*
sudo rm -rfv /var/spool/cups/tmp/*
sudo rm -rfv /var/spool/cups/cache/job.cache*
لمسح قائمة أجهزة iOS المتصلة ، استخدم:
sudo defaults delete /Users/$USER/Library/Preferences/com.apple.iPod.plist "conn:128:Last Connect"
sudo defaults delete /Users/$USER/Library/Preferences/com.apple.iPod.plist Devices
sudo defaults delete /Library/Preferences/com.apple.iPod.plist "conn:128:Last Connect"
sudo defaults delete /Library/Preferences/com.apple.iPod.plist Devices
sudo rm -rfv /var/db/lockdown/*
يمكن مسح بيانات Thumbnail Quicklook باستخدام أمر qlmanage -r cache
، ولكن هذا يكتب إلى ملف resetreason
في أدلة Quicklook ، ويذكر أنه تم مسح ذاكرة التخزين المؤقت Quicklook يدويًا. تعطيل ذاكرة التخزين المؤقت المصغرة مع qlmanage -r disablecache
يمكن أيضًا مسحه عن طريق الحصول على أسماء الدليل باستخدام getconf DARWIN_USER_CACHE_DIR
و sudo getconf DARWIN_USER_CACHE_DIR
، ثم إزالتها:
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/exclusive
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-shm
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-wal
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/resetreason
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.data
وبالمثل ، للمستخدم الجذر:
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.fraghandler
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/exclusive
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-shm
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-wal
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/resetreason
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.data
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.fraghandler
راجع أيضًا أن ذاكرة التخزين المؤقت "Quicklook" قد تتسرب من البيانات المشفرة.
لمسح تفضيلات الباحث:
defaults delete ~/Library/Preferences/com.apple.finder.plist FXDesktopVolumePositions
defaults delete ~/Library/Preferences/com.apple.finder.plist FXRecentFolders
defaults delete ~/Library/Preferences/com.apple.finder.plist RecentMoveAndCopyDestinations
defaults delete ~/Library/Preferences/com.apple.finder.plist RecentSearches
defaults delete ~/Library/Preferences/com.apple.finder.plist SGTRecentFileSearches
يمكن العثور على ملفات تشخيصية إضافية في الدلائل التالية - ولكن يجب توخي الحذر قبل إزالة أي ، لأنه قد يكسر التسجيل أو التسبب في مشكلات أخرى:
/var/db/CoreDuet/
/var/db/diagnostics/
/var/db/systemstats/
/var/db/uuidtext/
/var/log/DiagnosticMessages/
MACOS تخزين بيانات Wi-Fi المفضلة (بما في ذلك بيانات الاعتماد) في NVRAM. لمسحها ، استخدم الأوامر التالية:
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-networks
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-count
قد تقوم MacOS بجمع معلومات حساسة حول ما تكتبه ، حتى لو تم إيقاف تشغيل قاموس المستخدم والاقتراحات. لإزالتها ، ومنعهم من الإنشاء مرة أخرى ، استخدم الأوامر التالية:
rm -rfv "~/Library/LanguageModeling/*" "~/Library/Spelling/*" "~/Library/Suggestions/*"
chmod -R 000 ~/Library/LanguageModeling ~/Library/Spelling ~/Library/Suggestions
chflags -R uchg ~/Library/LanguageModeling ~/Library/Spelling ~/Library/Suggestions
يمكن مسح البيانات الوصفية لدعم تطبيق Quicklook وإغلاقها بالأوامر التالية:
rm -rfv "~/Library/Application Support/Quick Look/*"
chmod -R 000 "~/Library/Application Support/Quick Look"
chflags -R uchg "~/Library/Application Support/Quick Look"
يتم تخزين بيانات تعريف مراجعة المستندات في /.DocumentRevisions-V100
sudo rm -rfv /.DocumentRevisions-V100/*
sudo chmod -R 000 /.DocumentRevisions-V100
sudo chflags -R uchg /.DocumentRevisions-V100
يمكن مسح بيانات تعريف حالة التطبيق المحفوظة وإغلاقها بالأوامر التالية:
rm -rfv ~/Library/Saved Application State/*
rm -rfv ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
chmod -R 000 ~/Library/Saved Application State/
chmod -R 000 ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
chflags -R uchg ~/Library/Saved Application State/
chflags -R uchg ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
يمكن مسح البيانات الوصفية للأوسيف وإغلاقها بالأوامر التالية:
rm -rfv "~/Library/Containers/<APP>/Data/Library/Autosave Information"
rm -rfv "~/Library/Autosave Information"
chmod -R 000 "~/Library/Containers/<APP>/Data/Library/Autosave Information"
chmod -R 000 "~/Library/Autosave Information"
chflags -R uchg "~/Library/Containers/<APP>/Data/Library/Autosave Information"
chflags -R uchg "~/Library/Autosave Information"
يمكن مسح وقاعدة بيانات Siri Analytics ، والتي يتم إنشاؤها حتى لو تم تعطيل وكيل إطلاق Siri ، مع الأوامر التالية:
rm -rfv ~/Library/Assistant/SiriAnalytics.db
chmod -R 000 ~/Library/Assistant/SiriAnalytics.db
chflags -R uchg ~/Library/Assistant/SiriAnalytics.db
~/Library/Preferences/com.apple.iTunes.plist
يحتوي على بيانات تعريف iTunes. قد يتم مسح بيانات بحث iTunes الحديثة مع الأمر التالي:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist recentSearches
إذا لم تستخدم الخدمات المرتبطة بحساب Apple ، فقد يتم مسح المفاتيح التالية أيضًا ، باستخدام الأوامر التالية:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist StoreUserInfo
defaults delete ~/Library/Preferences/com.apple.iTunes.plist WirelessBuddyID
يمكن العثور على جميع الوسائط التي يتم لعبها في لاعب Quicktime في:
~/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
إنشاء كلمات مرور قوية باستخدام urandom
و tr
:
tr -dc '[:graph:]' < /dev/urandom | fold -w 20 | head -1
يمكن أن يقوم مساعد كلمة المرور في الوصول إلى سلسلة المفاتيح أيضًا بإنشاء بيانات اعتماد آمنة.
فكر في استخدام Diceware لكلمات مرور لا تنسى.
يمكن أيضًا استخدام GNUPG لإدارة كلمات المرور والملفات المشفرة الأخرى (انظر DRDUH/Purse و DRDUH/PWD.SH).
تأكد من تمكين جميع الحسابات المؤهلة عبر الإنترنت على مصادقة متعددة العوامل. أقوى شكل من أشكال المصادقة متعددة العوامل هو Webauthn ، تليها المصادقون القائمون على التطبيق ، والرموز القائمة على الرسائل القصيرة أضعف.
Yubikey هو رمز الأجهزة بأسعار معقولة مع دعم Webauthn. يمكن استخدامه أيضًا لتخزين مفاتيح التشفير لتشفير GNUPG ومصادقة SSH - راجع Drduh/Yubikey -Guide.
تشفير الملفات محليًا قبل دعمها إلى الوسائط الخارجية أو الخدمات عبر الإنترنت.
إذا كان نموذج التهديد الخاص بك يسمح بذلك ، فيجب عليك اتباع نموذج النسخ الاحتياطي 3-2-1 كما حددته CISA. الحفاظ على 3 نسخ: النسخ الاحتياطية الأصلية واثنين. احتفظ بنسخ احتياطية على نوعين من الوسائط المختلفة ، على سبيل المثال على محرك محلي وتخزين سحابة. تخزين 1 نسخة خارج الموقع.
آلة Time هي الأداة المدمجة للتعامل مع النسخ الاحتياطية على MacOS. احصل على محرك أقراص خارجي أو محرك أقراص شبكة للنسخ الاحتياطية وتشفير النسخ الاحتياطية.
يمكن استخدام GNUPG بكلمة مرور ثابتة أو مفتاح عام (مع تخزين المفتاح الخاص على Yubikey).
ضغط وتشفير دليل باستخدام كلمة المرور:
tar zcvf - ~/Downloads | gpg -c > ~/Desktop/backup-$(date +%F-%H%M).tar.gz.gpg
فك تشفير الدليل وإلغاء ضغطه:
gpg -o ~/Desktop/decrypted-backup.tar.gz -d ~/Desktop/backup-*.tar.gz.gpg
tar zxvf ~/Desktop/decrypted-backup.tar.gz
يمكن أيضًا إنشاء وحدات التخزين المشفرة باستخدام الأداة المساعدة للقرص أو hdiutil
:
hdiutil create ~/Desktop/encrypted.dmg -encryption -size 50M -volname "secretStuff"
hdiutil mount ~/Desktop/encrypted.dmg
cp -v ~/Documents/passwords.txt /Volumes/secretStuff
hdiutil eject /Volumes/secretStuff
تتضمن التطبيقات والخدمات الإضافية التي تقدم النسخ الاحتياطية:
يتذكر MacOS نقاط الوصول التي تواصلها. مثل جميع الأجهزة اللاسلكية ، ستقوم جهاز Mac ببث جميع أسماء نقاط الوصول التي يتذكرها (على سبيل المثال ، myhomenetwork ) في كل مرة يبحث فيها عن شبكة ، مثل عند الاستيقاظ من النوم.
هذا هو خطر الخصوصية ، لذا قم بإزالة الشبكات من القائمة في تفضيلات النظام > الشبكة > المتقدمة عندما لم تعد هناك حاجة إليها.
انظر أيضًا إشارات من الحشد: كشف العلاقات الاجتماعية من خلال تحقيقات الهواتف الذكية (PDF).
يمكن العثور على معلومات Wi-Fi المحفوظة (SSID ، آخر الاتصال ، وما إلى ذلك) في /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
يمكنك الحصول على عنوان MAC عشوائي مختلف لكل شبكة تدور بمرور الوقت. سيساعد هذا على منعك من التعقب عبر الشبكات وعلى نفس الشبكة مع مرور الوقت.
يقوم MacOS بتخزين Wi-Fi SSIDs وكلمات المرور في NVRAM حتى يتمكن وضع الاسترداد من الوصول إلى الإنترنت. تأكد من مسح NVRAM أو إلغاء توصيل جهاز Mac الخاص بك من حساب Apple الخاص بك ، والذي سيقوم بمسح NVRAM ، قبل تمرير جهاز Mac على طول. سيؤدي إعادة تعيين SMC إلى مسح بعض NVRAM ، ولكن ليس كل شيء.
أخيرًا ، لا تكون حماية WEP على الشبكات اللاسلكية آمنة ويجب عليك الاتصال فقط بشبكات WPA3 المحمية عند الإمكان.
بالنسبة لاتصالات SSH الصادرة ، استخدم المفاتيح المحمية للأجهزة أو كلمة المرور ، وإعداد المضيفين عن بُعد والنظر في تجزئةها لمزيد من الخصوصية. راجع DRDUH/CONFIG/SSH_CONFIG لخيارات العميل الموصى بها.
يمكنك أيضًا استخدام SSH لإنشاء نفق مشفر لإرسال حركة المرور من خلال ، على غرار VPN.
على سبيل المثال ، لاستخدام Privoxy تشغيل على منفذ المضيف البعيد 8118:
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
أو لاستخدام اتصال SSH كوكيل الجوارب:
ssh -NCD 3000 [email protected]
بشكل افتراضي ، لا يحتوي MacOS على SSHD أو تسجيل الدخول عن بُعد .
لتمكين SSHD والسماح لاتصالات SSH الواردة:
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
أو استخدم تفضيلات النظام > القائمة المشاركة .
في حالة تمكين SSHD ، تأكد من تعطيل مصادقة كلمة المرور والنظر في مزيد من تصلب التكوين الخاص بك. راجع DrDUH/Config/SSHD_CONFIG للاطلاع على الخيارات الموصى بها.
تأكد مما إذا كان SSHD قيد التشغيل:
sudo lsof -Pni TCP:22
حافظ على جهاز Mac آمنًا جسديًا في جميع الأوقات ولا تتركه دون مراقبة في الأماكن العامة.
يمكن للمهاجم الماهر الذي يتمتع بالوصول المادي غير الخاضع للإشراف تثبيت مفتاح الأجهزة لتسجيل جميع ضربات المفاتيح الخاصة بك. إن استخدام جهاز Mac يحتوي على لوحة مفاتيح مدمجة أو لوحة مفاتيح Bluetooth يجعل هذا الأمر أكثر صعوبة حيث تم تصميم العديد من الإصدارات الجاهزة لهذا الهجوم لتوصيلها بين لوحة مفاتيح USB وجهاز الكمبيوتر الخاص بك.
للحماية من السرقة المادية أثناء الاستخدام ، يمكنك استخدام أداة مضادة للانتقام مثل Buskill أو SwiftGuard (USBKILL المحدثة ، مع واجهة المستخدم الرسومية). يستجيب جميع أحداث USB ويمكنه إغلاق جهاز الكمبيوتر الخاص بك على الفور إذا تم فصل جهازك فعليًا عنك أو يتم توصيل جهاز غير مصرح به.
النظر في شراء شاشة/مرشح خصوصية للاستخدام في الأماكن العامة.
يمكن تطبيق طلاء الأظافر والأقامات المثيرة للعبث على المكونات للكشف عن العبث.
يحتوي MacOS على قدرة تدقيق OpenBSM (وحدة الأمان الأساسية). يمكنك استخدامه لمراقبة تنفيذ العملية ، ونشاط الشبكة ، وأكثر من ذلك بكثير.
لذيل سجلات التدقيق ، استخدم أداة praudit
:
$ sudo praudit -l /dev/auditpipe
header,201,11,execve(2),0,Thu Sep 1 12:00:00 2015, + 195 msec,exec arg,/Applications/.evilapp/rootkit,path,/Applications/.evilapp/rootkit,path,/Applications/.evilapp/rootkit,attribute,100755,root,wheel,16777220,986535,0,subject,drduh,root,wheel,root,wheel,412,100005,50511731,0.0.0.0,return,success,0,trailer,201,
header,88,11,connect(2),0,Thu Sep 1 12:00:00 2015, + 238 msec,argument,1,0x5,fd,socket-inet,2,443,173.194.74.104,subject,drduh,root,wheel,root,wheel,326,100005,50331650,0.0.0.0,return,failure : Operation now in progress,4354967105,trailer,88
header,111,11,OpenSSH login,0,Thu Sep 1 12:00:00 2015, + 16 msec,subject_ex,drduh,drduh,staff,drduh,staff,404,404,49271,::1,text,successful login drduh,return,success,0,trailer,111,
راجع الصفحات اليدوية audit
، praudit
، audit_control
والملفات الأخرى في /etc/security
ملاحظة على الرغم من أن man audit
تقول أن علامة -s
ستتم مزامنة تكوين التدقيق ، يبدو من الضروري إعادة تشغيل التغييرات المفعمة بفعالية.
انظر مقالات على ilostmynotes.blogspot.com و derflounder.wordpress.com لمزيد من المعلومات.
ملاحظة تتداخل حماية سلامة النظام مع DTRACE ، لذلك لا يمكن استخدامها في إصدارات MACOS الحديثة دون تعطيل SIP.
iosnoop
القرص I/Oopensnoop
Swittorsexecsnoop
تنفيذ العملياتerrinfo
فاشلت مكالمات النظامdtruss
جميع مكالمات النظام انظر man -k dtrace
لمزيد من المعلومات.
ps -ef
يسرد معلومات حول جميع عمليات التشغيل.
يمكنك أيضًا عرض العمليات مع شاشة النشاط .
launchctl list
و sudo launchctl list
قائمة محمّل وتشغيل المستخدمين والوكلاء.
قائمة ملفات الشبكة المفتوحة:
sudo lsof -Pni
قائمة محتويات مختلف هياكل البيانات المتعلقة بالشبكة:
sudo netstat -atln
يمكن استخدام Wireshark من سطر الأوامر مع tshark
.
مراقبة استفسارات DNS والردود:
tshark -Y "dns.flags.response == 1" -Tfields
-e frame.time_delta
-e dns.qry.name
-e dns.a
-Eseparator=,
مراقبة طلبات ورد HTTP:
tshark -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
شهادات مراقبة X509 (SSL/TLS):
tshark -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
Google/Santa هو برنامج أمان تم تطويره لأسطول Macintosh للشركات من Google ومصادر مفتوح.
سانتا هو نظام ترخيص للوصول الثنائي والوصول إلى MACOS. وهو يتألف من امتداد نظام يراقب عمليات الإعدام ، وهو خفي يتخذ قرارات تنفيذ بناءً على محتويات قاعدة بيانات محلية ، ووكيل واجهة المستخدم الرسومية يخطر المستخدم في حالة قرار الكتلة وأداة سطر الأوامر لإدارة النظام و مزامنة قاعدة البيانات مع خادم.
يستخدم سانتا واجهة برمجة تطبيقات ترخيص kernel لمراقبة الثنائيات والسماح بها/عدم السماح بها من التنفيذ في kernel. يمكن أن تكون الثنائيات بيضاء أو سوداء من خلال تجزئة فريدة أو شهادة مطور. يمكن استخدام Santa للسماح فقط بتنفيذ التعليمات البرمجية الموثوقة ، أو إلى برنامج خبيث معروف قائمة من القائمة السوداء من التنفيذ على جهاز Mac ، على غرار برنامج Bit9 لنظام التشغيل Windows.
ملاحظة ، ليس لدى Santa حاليًا واجهة مستخدم رسومية لإدارة القواعد. التعليمات التالية مخصصة للمستخدمين المتقدمين فقط!
لتثبيت سانتا ، تفضل بزيارة صفحة الإصدارات وتنزيل أحدث صورة للقرص ، وتثبيتها وتثبيت الحزمة الموجودة:
hdiutil mount ~/Downloads/santa-0.9.20.dmg
sudo installer -pkg /Volumes/santa-0.9.20/santa-0.9.20.pkg -tgt /
بشكل افتراضي ، يتم تثبيت Santa في وضع "Monitor" (بمعنى ، لا يتم حظر أي شيء ، مسجّل فقط) ويأتي مع قاعدتين: واحدة لثنائيات Apple وآخر لبرنامج Santa نفسه.
تحقق من أن سانتا قيد التشغيل ويتم تحميل وحدة kernel الخاصة به:
$ santactl status
>>> Daemon Info
Mode | Monitor
File Logging | No
Watchdog CPU Events | 0 (Peak: 0.00%)
Watchdog RAM Events | 0 (Peak: 0.00MB)
>>> Kernel Info
Kernel cache count | 0
>>> Database Info
Binary Rules | 0
Certificate Rules | 2
Events Pending Upload | 0
$ ps -ef | grep " [s]anta "
0 786 1 0 10:01AM ?? 0:00.39 /Library/Extensions/santa-driver.kext/Contents/MacOS/santad --syslog
$ kextstat | grep santa
119 0 0xffffff7f822ff000 0x6000 0x6000 com.google.santa-driver (0.9.14) 693D8E4D-3161-30E0-B83D-66A273CAE026 <5 4 3 1>
إنشاء قاعدة قائمة سوداء لمنع iTunes من التنفيذ:
$ sudo santactl rule --blacklist --path /Applications/iTunes.app/
Added rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
حاول إطلاق iTunes - سيتم حظره.
$ open /Applications/iTunes.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/iTunes.app.
لإزالة القاعدة:
$ sudo santactl rule --remove --path /Applications/iTunes.app/
Removed rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
افتح iTunes:
$ open /Applications/iTunes.app/
[iTunes will open successfully]
قم بإنشاء برنامج جديد مثال C:
$ cat << EOF > foo.c
> # include <stdio.h>
> main () { printf( " Hello Worldn”); }
> EOF
قم بتجميع البرنامج باستخدام GCC (يتطلب تثبيت أدوات Xcode أو خط الأوامر):
$ gcc -o foo foo.c
$ file foo
foo: Mach-O 64-bit executable x86_64
$ codesign -d foo
foo: code object is not signed at all
قم بتشغيله:
$ ./foo
Hello World
تبديل Santa إلى وضع "Lockdown" ، والذي يسمح فقط للثنائيات المعتمدة بالتشغيل:
$ sudo defaults write /var/db/santa/config.plist ClientMode -int 2
حاول تشغيل الثنائي غير الموقّع:
$ ./foo
bash: ./foo: Operation not permitted
Santa
The following application has been blocked from executing
because its trustworthiness cannot be determined.
Path: /Users/demouser/foo
Identifier: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Parent: bash (701)
للتفويض الثنائي ، حدد مجموع SHA-256:
$ santactl fileinfo /Users/demouser/foo
Path : /Users/demouser/foo
SHA-256 : 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
SHA-1 : 4506f3a8c0a5abe4cacb98e6267549a4d8734d82
Type : Executable (x86-64)
Code-signed : No
Rule : Blacklisted (Unknown)
أضف قاعدة جديدة:
$ sudo santactl rule --whitelist --sha256 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Added rule for SHA-256: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed.
قم بتشغيله:
$ ./foo
Hello World
إنه مسموح به ويعمل!
يمكن أيضًا السماح بالطلبات بواسطة شهادة المطور. على سبيل المثال ، قم بتنزيل وتشغيل Google Chrome - سيتم حظره بواسطة Santa في وضع "Lockdown":
$ curl -sO https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
$ hdiutil mount googlechrome.dmg
$ cp -r /Volumes/Google Chrome/Google Chrome.app /Applications/
$ open /Applications/Google Chrome.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Google Chrome.app.
قم بتأمين التطبيق بواسطة شهادة المطور (العنصر الأول في سلسلة التوقيع):
$ santactl fileinfo /Applications/Google Chrome.app/
Path : /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
SHA-256 : 0eb08224d427fb1d87d2276d911bbb6c4326ec9f74448a4d9a3cfce0c3413810
SHA-1 : 9213cbc7dfaaf7580f3936a915faa56d40479f6a
Bundle Name : Google Chrome
Bundle Version : 2883.87
Bundle Version Str : 55.0.2883.87
Type : Executable (x86-64)
Code-signed : Yes
Rule : Blacklisted (Unknown)
Signing Chain:
1. SHA-256 : 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
SHA-1 : 85cee8254216185620ddc8851c7a9fc4dfe120ef
Common Name : Developer ID Application: Google Inc.
Organization : Google Inc.
Organizational Unit : EQHXZ8M8AV
Valid From : 2012/04/26 07:10:10 -0700
Valid Until : 2017/04/27 07:10:10 -0700
2. SHA-256 : 7afc9d01a62f03a2de9637936d4afe68090d2de18d03f29c88cfb0b1ba63587f
SHA-1 : 3b166c3b7dc4b751c9fe2afab9135641e388e186
Common Name : Developer ID Certification Authority
Organization : Apple Inc.
Organizational Unit : Apple Certification Authority
Valid From : 2012/02/01 14:12:15 -0800
Valid Until : 2027/02/01 14:12:15 -0800
3. SHA-256 : b0b1730ecbc7ff4505142c49f1295e6eda6bcaed7e2c68c5be91b5a11001f024
SHA-1 : 611e5b662c593a08ff58d14ae22452d198df6c60
Common Name : Apple Root CA
Organization : Apple Inc.
Organizational Unit : Apple Certification Authority
Valid From : 2006/04/25 14:40:36 -0700
Valid Until : 2035/02/09 13:40:36 -0800
في هذه الحالة ، 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
هو SHA -256 لشهادة مطور Apple في Google (ID ID EQHXZ8M8M)
$ sudo santactl rule --whitelist --certificate --sha256 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
Added rule for SHA-256: 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153.
يجب الآن تشغيل Google Chrome ، وستستمر التحديثات اللاحقة للتطبيق في العمل طالما أن شهادة توقيع الكود لا تتغير أو تنتهي صلاحيتها.
لتعطيل وضع "تأمين":
sudo defaults delete /var/db/santa/config.plist ClientMode
انظر /var/log/santa.log
لمراقبة قرارات السماح ورفض التنفيذ.
يتوفر خادم السجل والتكوين لـ Santa في Zentral ، وهو حل مراقبة الأحداث مفتوح المصدر وخادم TLS لـ Osquery و Santa.
ستدعم Zentral Santa في كل من وضع عملية الرصد والانسداد. يحتاج العملاء إلى التسجيل مع اتصال TLS لمزامنة قواعد Santa ، يتم تجميع جميع أحداث Santa من نقاط النهاية وتسجيلها مرة أخرى في Zentral. يمكن لأحداث سانتا أن تؤدي إلى إجراءات وإخطارات من داخل إطار Zentral.
لاحظ أن Python و Bash وغيرهم من المترجمين الفوريين معتمدين (نظرًا لأن شهادة مطور Apple من Apple) ، لذلك لن تتمكن Santa من منع مثل هذه البرامج النصية من التنفيذ. وبالتالي ، فإن برنامجًا غير ثنائي محتمل يعطل سانتا هو ضعف (وليس الضعف ، لأنه هو ذلك حسب التصميم) لإحداث علما.
تعطيل بيانات التشخيص والاستخدام.
إذا كنت ترغب في تشغيل الموسيقى أو مشاهدة مقاطع الفيديو ، فاستخدم مشغل QuickTime ، مشغل الوسائط المدمج في MacOS. يستخدم صندوق الرمال ، ووقت التشغيل المتصلب ، ويستفيد من حجم النظام الموقّع كجزء من النظام الأساسي.
إذا كنت ترغب في استخدام السيول ، فاستخدم الإرسال المجاني والمفتوح المصدر (ملاحظة: مثل جميع البرامج ، وحتى مشاريع المصدر المفتوح ، قد لا تزال البرامج الضارة في طريقها). قد ترغب أيضًا في استخدام قائمة كتلة لتجنب النظر مع المضيفين السيئين المعروفين - انظر ما هو أفضل قائمة كتلة للإرسال و Jontyree/3331662.
إدارة معالجات الملفات الافتراضية.
مراقبة سجلات نظام مع تطبيق وحدة التحكم أو أوامر syslog -w
أو /usr/bin/log stream
.
اضبط الشاشة على القفل بمجرد بدء تشغيل الشاشة:
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0
فضح الملفات المخفية ومجلد المكتبة في Finder:
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library
إظهار جميع ملحقات اسم الملف (بحيث لا يمكن "Evil.jpg.app" التنكر بسهولة).
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
لا تقف إلى حفظ المستندات إلى iCloud:
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
تمكين إدخال لوحة المفاتيح الآمنة في Terminal (إلا إذا كنت تستخدم Yubikey أو تطبيقات مثل Textexpander).
تعطيل مراسل التصادم (مربع الحوار الذي يظهر بعد تعطل التطبيق ويطالب بالإبلاغ عن المشكلة إلى Apple):
defaults write com.apple.CrashReporter DialogType none
تعطيل إعلانات البث المتعدد:
تحذير: هذا سيؤدي إلى مشاكل مع AirPlay و Airprint!
sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool YES
تعطيل ميزات التسليم والبلوتوث ، إذا لم تكن ضرورية.
تأكد من أن تطبيقاتك عبارة عن رمل في شاشة النشاط.
يأتي MacOS مع هذا الخط في /etc/sudoers
:
Defaults env_keep += "HOME MAIL"
الذي يمنع Sudo من تغيير متغير المنزل عند رفع الامتيازات. هذا يعني أنه سيتم تنفيذها كجذر لدوفات ZSH في الدليل الرئيسي للمستخدم غير الجذر عند تشغيل "Sudo Zsh". يُنصح بالتعليق على هذا الخط لتجنب طريقة سهلة المحتملة للبرامج الضارة أو المهاجم المحلي لتصعيد الامتيازات إلى الجذر.
إذا كنت ترغب في الاحتفاظ براحة المستخدم الجذر الذي لديه دليل رئيسي للمستخدم غير الجذر ، فيمكنك إلحاق خط تصدير بـ /var/root/.zshrc ، على سبيل المثال:
export HOME=/Users/blah
اضبط UMASK مخصص:
sudo launchctl config user umask 077
إعادة التشغيل ، قم بإنشاء ملف في Finder والتحقق من أذوناته (يتيح MacOS الافتراضي "الوصول/آخر" القراءة):
$ ls -ld umask *
drwx------ 2 kevin staff 64 Dec 4 12:27 umask_testing_dir
-rw-------@ 1 kevin staff 2026566 Dec 4 12:28 umask_testing_file