
دليل مُنسّق للأمان والخصوصية في نظام macOS مع إرشادات عملية لنمذجة التهديدات، وتشفير القرص، وإعداد جدار الحماية، والمصادقة الآمنة، وتحصين الشبكة.
هذا الدليل عبارة عن مجموعة من التقنيات لتحسين أمان وخصوصية macOS على أجهزة Mac من Apple silicon. إنه يستهدف المستخدمين ذوي الخبرة الذين يرغبون في ممارسات أمنية تستخدمها المؤسسات بشكل شائع، ولكنه مناسب أيضًا للمستخدمين المبتدئين المهتمين بالخصوصية والأمان.
بالنسبة لأجهزة Mac المُدارة من قبل المؤسسات، راجع مشروع الامتثال الأمني لنظام macOS، الذي يحتفظ به المعهد الوطني الأمريكي للمعايير والتكنولوجيا.
تم توفير هذا الدليل "كما هو" - دون أي ضمانات من أي نوع. أنت وحدك المسؤول عن أي عواقب ناتجة عن اتباعه.
طبّق أفضل ممارسات الأمان العامة:
أنشئ نموذج تهديد
حافظ على تحديث النظام والبرمجيات
softwareupdate. لا يتطلب أي منهما حساب Apple.شفّر البيانات الحساسة
تأكد من توفر البيانات
انقر بحذر
أهم خطوة لتحسين الأمان والخصوصية بشكل ملموس هي إنشاء نموذج تهديد: وصف عام لما تريد حمايته، ومن قد يحاول الوصول إليه، وكيف يمكنهم فعل ذلك، وأي الضوابط تستحق المقايضة بقابلية الاستخدام. يؤدي ذلك إلى فهم الخصوم المحتملين ودوافعهم، مما يؤدي إلى دفاعات أقوى.
قد تشمل الأصول هاتفًا أو كمبيوترًا محمولًا أو بيانات اعتماد أو معلومات شخصية مثل سجل التصفح.
اسردها حسب الأهمية، بدءًا من تلك التي تستحق الحماية أكثر.
حدد من تدافع ضده. ابدأ بتحديد الدافع الذي قد يكون لدى كل خصم لمهاجمة الأصول المهمة. الكسب المالي هو دافع كبير للعديد من المهاجمين، على سبيل المثال.
لكل خصم، اذكر ما يمكنه وما لا يمكنه فعله، ورتبهم من الأقل قدرة إلى الأكثر قدرة. على سبيل المثال، يعمل اللص العادي بشكل انتهازي: من المرجح أن يهزمه الضوابط الأساسية مثل قفل الشاشة والتخزين المشفر بكلمات مرور قوية. أما الخصم الأكثر تطورًا وإصرارًا فقد يتطلب إيقاف تشغيل الجهاز تمامًا عند عدم استخدامه لمسح بيانات الاعتماد من الذاكرة، وآليات مصادقة أقوى.
اختر أفضل تخفيف لكل تهديد. على سبيل المثال، تجنب كتابة كلمات المرور على الورق إذا كان زميل السكن قد يعثر عليها، أو شفر التخزين لحماية بياناته إذا سُرق.
يجب موازنة الأمان مع قابلية الاستخدام: كل تخفيف يجب أن يعاكس بعض القدرات العدائية لتبرير أي إزعاج. توقف عن إضافة الدفاعات عندما تكون المخاطر المتبقية مقبولة بالنسبة لموقف معين. أعد النظر في النموذج عندما تتغير الأجهزة أو البيانات أو السفر أو العمل أو الخصوم.
الجدول التالي هو مثال على نموذج تهديد بسيط:
اقرأ المزيد حول نمذجة التهديدات.
عتاد Apple silicon يوفر ميزات أمان مدعومة بالعتاد، بما في ذلك حماية المفاتيح القائمة على Secure Enclave وخيارات أمان إقلاع أقوى. وهو عمومًا المنصة المفضلة للحمايات التي يناقشها هذا الدليل.
تتأثر بعض أجهزة Mac القائمة على Intel، خاصة الطرازات المزودة بعتاد حقبة T2 المعرض للخطر، بثغرات أمنية في العتاد لا يمكن إصلاحها بالكامل عبر تحديث macOS.
تجنب العتاد غير التابع لـ Apple الذي يشغل macOS، والأنظمة التي لا تدعم أحدث إصدار من macOS، لأن Apple لا تصحح جميع الثغرات الأمنية في الإصدارات القديمة.
تتلقى ملحقات Apple عمومًا تحديثات البرنامج الثابت عبر macOS وتدعم ميزات أمان Bluetooth الحالية. على سبيل المثال، تستخدم Bluetooth Low Energy (BLE) Privacy عناوين أجهزة متبدلة لتقليل التتبع؛ وقد لا تدعم الملحقات من جهات خارجية هذه الميزة.
هناك عدة طرق لتثبيت macOS.
ثبّت أحدث إصدار مدعوم من macOS؛ تتضمن الإصدارات الأحدث من macOS إصلاحات أمنية وتحسينات أخرى غير متوفرة في الإصدارات السابقة.
أثناء التثبيت، تتواصل أجهزة Mac المزودة بـ Apple silicon مع خدمة تفعيل Apple للتأكد من عدم الإبلاغ عن الجهاز كـ مفقود أو مسروق. اقرأ عن كيفية عمل هذه العملية.
حساب Apple اختياري للاستخدام الأساسي لنظام macOS ولكنه مطلوب لمتجر التطبيقات والعديد من خدمات Apple. راجع إعدادات خصوصية البيانات قبل تفعيل الميزات.
فعّل التشفير من طرف إلى طرف لـ iCloud وراجع بيانات حساب Apple.
متجر التطبيقات هو منصة توزيع برمجيات حيث تراجع Apple التطبيقات.
تتطلب تطبيقات متجر التطبيقات استخدام App Sandbox وHardened Runtime (ميزات أمان تقيد ما يمكن للتطبيقات فعله، مما يصعّب بعض الهجمات). كما يوفر تحديثات برمجية تلقائية.
يتطلب استخدام متجر التطبيقات حساب Apple، وهو ما قد يشكل خطرًا على الخصوصية.
تمكن المحاكاة الافتراضية نظام تشغيل آخر من العمل داخل آلة افتراضية معزولة. على Apple silicon، يمكن لنظام macOS تشغيل أنظمة macOS ضيفة مدعومة وWindows 11 لـ ARM باستخدام تطبيقات مثل التالية:
[!WARNING] يتطلب VMware حساب Broadcom وقبول الاتفاقيات قبل التنزيل. يتطلب Parallels حسابًا وتفاصيل دفع وبيانات أخرى - راجع إشعار الخصوصية.
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
# حسابات المسؤول والمستخدمين
أول حساب يتم إنشاؤه هو حساب مسؤول. يمكن للمسؤولين تغيير إعدادات النظام بالكامل وتشغيل الأوامر باستخدام [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
### وضع التخفي
غالبًا ما يقوم المهاجمون بمسح الشبكات لتحديد الأنظمة المستهدفة. عند تمكين [وضع التخفي](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
### إعادة تحميل جدار الحماية
بعد تغيير الإعدادات باستخدام `socketfilterfw`، أعد تحميل خدمة جدار الحماية لتطبيق التكوين الجديد:```bash
sudo pkill -HUP socketfilterfw
تأكيد حالة جدار الحماية:```bash
for firewallFlag in
--getglobalstate
--getblockall
--getallowsigned
--getstealthmode
--listapps
do /usr/libexec/ApplicationFirewall/socketfilterfw "$firewallFlag"
done
أو باستخدام [system profiler](https://ss64.com/mac/system_profiler.html):```bash
system_profiler SPFirewallDataType
تمكين جدار الحماية على مستوى التطبيق وتعطيل الاتصالات الواردة للبرامج المدمجة يمنع 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
## جدران الحماية من جهات خارجية
توفر تطبيقات مثل [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'
أضف قائمة الشبكات التي تم إرجاعها إلى قائمة الحظر:```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 ...
تأكد من أن حركة مرور الشبكة محظورة على هذه العناوين (ستظل طلبات 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
> [!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.
[!IMPORTANT] قد تطلب بعض سير عمل تثبيت Homebrew أو إدارته الوصول إلى إدارة التطبيقات أو الوصول الكامل إلى القرص. لا تمنح هذه الأذونات إلا عندما تكون مفهومة تمامًا وضرورية.
شغّل brew upgrade بشكل دوري على شبكات موثوقة وآمنة لتثبيت تحديثات البرامج. للحصول على معلومات حول حزمة قبل تثبيتها، شغّل brew info <package> وراجع صيغتها عبر الإنترنت. فعّل خيارات الأمان الإضافية، مثل HOMEBREW_NO_INSECURE_REDIRECT=1
وفقًا لـالتحليلات المجهولة في Homebrew، يجمع Homebrew تحليلات استخدام مجهولة ويرسلها إلى مثيل InfluxDB مستضاف ذاتيًا.
لإلغاء الاشتراك في تحليلات Homebrew، شغّل brew analytics off أو عيّن HOMEBREW_NO_ANALYTICS=1 في ملف بدء تشغيل الصدفة.
توفّر 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
> [!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 يدعم أيضًا قوائم الحظر.
لتشفير حركة مرور DNS، فكّر في DNSCrypt/dnscrypt-proxy. عند تكوينه مع محلل موثوق، يقوم DNSCrypt بتشفير استعلامات DNS. يمكن لـ DNSSEC أيضًا التحقق من استجابات DNS الموقعة حيثما كان ذلك مدعومًا.
ثبّت DNSCrypt من Homebrew واتبع التعليمات لتكوين وبدء تشغيل dnscrypt-proxy:```bash
brew install dnscrypt-proxy
عند استخدام 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']
ابدأ 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
بالإضافة إلى ذلك، تحجب قواعد 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 تخزين الردود مؤقتًا، ومنع الاستعلامات الصادرة إلى upstream للأسماء غير المؤهلة، وحظر نطاقات المستوى الأعلى بالكامل.
استخدمه مع DNSCrypt لتشفير حركة مرور DNS.
إذا كنت لا تستخدم DNSCrypt، فاختر على الأقل محلل DNS غير الذي يوفره مزود خدمة الإنترنت. هناك بديلان شائعان هما Google DNS وOpenDNS.
ثبّت Dnsmasq:```bash brew install dnsmasq
قم بتنزيل وتحرير [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
تأكد من أن 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"
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
اضبط وكيل النظام **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 }
على الرغم من أن معظم حركة مرور الويب مشفّرة، يمكن لـ 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
انظر إلى [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 أجزاءً رئيسية من قاعدة أكواده البرمجية عبر مشروعي 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).
يستند 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 هو متصفح 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 هو متصفح معدل مبني على 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
تأكد من ظهور `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
يمكن أيضًا استخدام الأمر `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
يمكن لمتصفح تور استخدام طرق اتصال خاصة تُسمى [وسائل نقل قابلة للتوصيل](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 بروتوكولًا مفتوحًا طورته IETF ويدعم المراسلة الموحّدة عبر المنصات. توجد العديد من خيارات العملاء. فكّر في استخدام أحد العملاء المستندين إلى المتصفح للاستفادة من العزل (sandbox) الخاص بالمتصفح.
اعتمادًا على المزود، قد لا تحتاج إلى أكثر من اسم مستخدم وكلمة مرور لإنشاء حساب.
لا يوفر XMPP تشفيرًا من طرف إلى طرف (E2EE) افتراضيًا؛ استخدم OMEMO مع عميل متوافق.
يُعد Signal تطبيق مراسلة شائع بتشفير من طرف إلى طرف، وتستخدم بروتوكول المزلاج المزدوج الخاص به العديد من التطبيقات الأخرى بما في ذلك WhatsApp وGoogle Messages وFacebook Messenger.
لاستخدام تطبيق Signal لسطح المكتب، يجب تثبيت Signal أولاً على هاتف.
انظر إلى دليل Signal من EFF للحصول على إرشادات إضافية.
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:```bash
codesign --display --entitlements -
/System/Applications/Calculator.app 2>&1 |
grep -A2 com.apple.security.app-sandbox
عند تمكين 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)'
برامج 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
**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 مفعّلاً:```bash spctl --status --verbose
# حماية تكامل النظام
للتحقق من تمكين حماية تكامل النظام، استخدم الأمر `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
## 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، التي تسمى SSIDs، وسلوك استكشاف الأجهزة معلومات عن الشبكات القريبة والمستخدمة سابقًا. لا توفر الشبكات المخفية خصوصية ذات معنى ويمكن أن تتسبب في قيام الأجهزة بالاستكشاف النشط لها.
اضبط عنوان Wi-Fi خاص لتقليل تتبع الشبكة.
اضبط أمان الشبكة اللاسلكية على WPA3. اتبع إرشادات Apple لضبط الإعدادات الموصى بها لأجهزة التوجيه ونقاط الوصول.
بالنسبة لاتصالات 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
أو لاستخدام اتصال 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
عطّل مصادقة كلمة المرور وفكر في [تحصين](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
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
قم بتصفية الرسائل حسب النظام الفرعي، على سبيل المثال من `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"'
تصفية الرسائل مع تجاهل حالة الأحرف:```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
قم بتصدير السجلات إلى أرشيف، يمكن فتحه باستخدام Console:```bash
log collect --last 1h --output ~/Downloads/logs-$(date +%F-%H%M).logarchive
حماية تكامل النظام تتداخل مع DTrace ويجب تعطيلها جزئيًا قبل الاستخدام.
iosnoop يراقب عمليات الإدخال/الإخراج للقرصopensnoop يراقب فتح الملفاتexecsnoop يراقب العملياتerrinfo يراقب استدعاءات النظام الفاشلةdtruss يراقب جميع استدعاءات النظامانظر man -k dtrace لمزيد من المعلومات.
اعرض العمليات الجارية باستخدام مراقب النشاط أو أمر ps.
اعرض اتصالات الشبكة المفتوحة:```bash sudo lsof -Pni
سرد محتويات هياكل البيانات المختلفة المتعلقة بالشبكة:```bash
sudo netstat -n -p tcp
sudo netstat -n -p udp | sort | uniq
يمكن استخدام 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=,
مراقبة 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
# متنوع
## شاشة التوقف
اضبط الشاشة لتُقفل فور بدء شاشة التوقف:```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
## مشغل الوسائط
استخدم [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
لا تقم بحفظ المستندات في iCloud افتراضيًا:```bash
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
قم بتعيين umask مخصص:```bash sudo launchctl config user umask 077
أعد التشغيل، ثم أنشئ ملفًا/دليلًا وتحقق من الصلاحيات (يسمح 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
قم بتعطيل ميزتي [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
# برمجيات ذات صلة
البرمجيات | الفئة | الوصف
:-: | :-: | :-
[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 | سرد وكلاء النظام |