مدونة FireAI للأمان

بقلم FireAI Security & Research Team · نُشر في

أي تطبيقات Mac يمكنك الثقة بها؟ التوقيع والتوثيق والأذونات والسلوك الشبكي

أي تطبيقات Mac يمكنك الثقة بها؟ التوقيع والتوثيق والأذونات والسلوك الشبكي

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

App Store أم التنزيل المباشر

تصف صفحة دعم Apple فتح التطبيقات بأمان على جهاز Mac متجر App Store بأنه المكان الأكثر أمانًا للحصول على البرامج، لسببَين ملموسَين: تراجع Apple كل تطبيق قبل قبوله، وتستطيع Apple إزالة تطبيق بسرعة إن وُجدت مشكلة لاحقًا. ويجب أيضًا أن تعمل تطبيقات App Store داخل App Sandbox، الذي تصفه صفحة Gatekeeper وحماية وقت التشغيل من Apple بأنه يحدّ البيانات التي يستطيع التطبيق الوصول إليها ويجبره على استخدام واجهات macOS للتحدث إلى التطبيقات الأخرى.

وهذا لا يجعل كل تنزيل مباشر مشكوكًا فيه. فقدر كبير من برامج Mac المشروعة يُوزَّع خارج المتجر لأن الصندوق الرملي يمنع ما تحتاج إلى فعله (أدوات الأقراص، وأدوات التطوير، وجدران الحماية من بينها). والفارق أن خطوة المراجعة تُستبدل في التنزيل المباشر بفحصَين أخف تصفهما Apple على الصفحات نفسها: توقيع يقول من بنى التطبيق، وفحص توثيق.

Developer ID والتوثيق: ما الذي يثبتانه

شهادة Developer ID تصدرها Apple لمطوّر مسجّل في Apple Developer Program، وتتيح لـ Gatekeeper التأكد من أن التطبيق وقّعه ذلك المطوّر ولم يُعدَّل منذ ذلك الحين. هذا كل ما يثبته التوقيع: الهوية والسلامة. ولا يقول شيئًا عن النية. فالتطبيق الموقّع قد يظل تطبيقًا سيئًا؛ والتوقيع يعني فقط أن Apple تعرف اسم من عليه وتستطيع إلغاءه.

والتوثيق هو الفحص الثاني. تصفه وثائق مطوّري Apple عن توثيق برامج macOS قبل التوزيع بأنه فحص آلي للبرامج الموقّعة بـ Developer ID بحثًا عن محتوى عدائي معروف ومشكلات في توقيع الشفرة، تُصدر Apple بعده تذكرة يستطيع Gatekeeper قراءتها. وصفحة دعم Apple حريصة على الصياغة: يعني التوثيق أن «Apple فحصته بحثًا عن برمجيات ضارة ولم تُكتشف أي منها». إنه فحص مقابل ما تعرفه Apple بالفعل، لا مراجعة لما يفعله التطبيق، وتستطيع Apple إلغاء التوثيق لاحقًا إن علمت ما هو أفضل.

علامة الحجر الصحي

الآلية التي تربط هذه الفحوص بتنزيل بعينه هي سمة موسّعة على الملف، com.apple.quarantine، يضعها Safari ومعظم المتصفحات وتطبيقات المراسلة الأخرى على أي شيء تحفظه. وعندما تفتح للمرة الأولى ملفًا يحمل تلك السمة، يجري Gatekeeper فحوصه ويطلب موافقتك. وتصف صفحة Gatekeeper من Apple الإعداد الافتراضي بأنه فحص جميع البرامج بحثًا عن محتوى خبيث معروف في أول مرة تُفتح فيها. ويمكنك رؤية السمة بنفسك بأمر الطرفية xattr -l على ملف منزَّل.

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

الأذونات: ما الذي يُسمح للتطبيق بلمسه

السؤال الثالث هو النطاق. فمنذ macOS 10.15، كما توضح صفحة دليل أمن المنصة من Apple عن التحكم في وصول التطبيقات إلى الملفات، يجب على التطبيقات أن تطلب الإذن قبل قراءة «سطح المكتب» أو «المستندات» أو «التنزيلات» أو iCloud Drive أو الأحجام الشبكية، ولا يُمنح الوصول إلى الكاميرا والميكروفون وتسجيل الشاشة ومراقبة ضغطات المفاتيح والوصول الكامل إلى القرص إلا عبر تنبيهات صريحة أو تغيير يدوي في «إعدادات النظام» ثم «الخصوصية والأمن». ويُسمّى النظام الذي وراء هذه التنبيهات TCC (الشفافية والموافقة والتحكم)، ومبدأه، بكلمات Apple، أن ينعم المستخدمون بشفافية وموافقة وتحكم كاملين في ما تفعله التطبيقات ببياناتهم.

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

السلوك الشبكي: السؤال الذي لا تستطيع الفحوص الأخرى الإجابة عنه

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

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

لهذا وُجد FireAI. تعرض خريطته الحية كل اتصال يجريه كل تطبيق، مع المقصد والبلد والشبكة وراءه، وتحكم مراجعة Private AI لديه، وهي نموذج يعمل على الجهاز، على كل اتصال جديد من تطبيق غير معروف باستخدام سمعة المقصد، وهل رُئي الملف التنفيذي من قبل، والمنفذ والبروتوكول، وهل الرابط مشفّر، ثم تشرح سببها بلغة واضحة. ويمنع حارس البيانات غير المشفّرة لديه أرقام البطاقات وكلمات المرور ومفاتيح API من الخروج عبر HTTP غير المشفّر بصرف النظر عن التطبيق الذي يرسلها. ويصبح كل قرار للذكاء الاصطناعي قاعدة مرئية يمكنك التراجع عنها، ويمكن كتابة القواعد بالإنجليزية أو الفرنسية العادية («block Microsoft Teams») أو تصديرها كملف نصي.

حظر غير الموقّع، وتتبّع التوقيع

خياران تصميميان في FireAI يأتيان مباشرة من نموذج Apple أعلاه. الأول أن أوضاع الأمان الأشد لديه، Paranoid وUnder attack، تحظر التطبيقات غير الموقّعة من الاتصال أصلًا، إلى جانب بيانات القياس عن بُعد وأدوات التتبع، ما يحوّل مربع حوار Apple «هل أنت متأكد؟» إلى إعداد افتراضي على مستوى الشبكة: يستطيع ملف تنفيذي غير موقّع أن يعمل إن أصررت، لكنه لا يستطيع الاتصال بأحد. والثاني أن قواعد FireAI الخاصة بكل تطبيق تتبع توقيع شفرة التطبيق لا اسمه أو مساره. فالمنتحل المسمّى «Slack.app» في مجلد «التنزيلات» لا يرث القاعدة التي كتبتها لـ Slack الحقيقي، لأن التوقيع لا يتطابق؛ وعندما يُحدَّث التطبيق الحقيقي، تنتقل القاعدة معه، لأنه يتطابق. هذه هي الهوية نفسها التي تستخدمها Apple لـ Gatekeeper، مطبّقة على الشبكة.

ما الذي لا يفعله هذا

لا يفحص FireAI ملفات تطبيق، ولا يفحص شفرته أو ذاكرته، وليس مكافح فيروسات؛ ولا يستطيع أن يخبرك بأن تنزيلًا عدائي قبل أن تشغّله. وإن كنت قد سمحت لتطبيق، فالحركة التي تختبئ داخل ذلك التطبيق ترث إذنه. والحركة المشفّرة إلى مقصد ذي سمعة حسنة يُحكم عليها بالمقصد والنمط، لا بالمحتوى. ولا يحلّ أي جدار حماية محل الفحوص الثلاثة الأولى: فقرار الثقة الأقل تكلفة والأكثر موثوقية على جهاز Mac يبقى تفضيل App Store أو تنزيل موقّع بـ Developer ID وموثّق، ورفض مربع حوار التجاوز، ورفض الأذونات التي لا سبب ظاهرًا لحاجة التطبيق إليها.

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

دور FireAI وHisnLabs

Apple answers the first three trust questions at install time; FireAI exists for the fourth, showing what each app actually does on the network and keying every rule to the same code signature Gatekeeper already relies on.

FireAI هو منتج HisnLabs نفسها: جدار حماية بذكاء اصطناعي يعمل على جهاز Mac مباشرة. يعرض بلغة واضحة كل اتصال تجريه تطبيقاتك، ويترك لك القرار فيما يخرج من جهازك — ذكاؤه الاصطناعي يعمل محليًا، فلا يُرسَل ترافيكك إلينا ولا إلى أي جهة أخرى أبدًا. فريق أبحاث الأمن في HisnLabs هو من يحافظ على دقة هذه القرارات: يصنّف النطاقات بين قياس عن بُعد عادي وخدمة حقيقية، ويتتبّع بلد وشبكة كل اتصال، ويدرّب النموذج المحلي (ميزة Autopilot) على حركة اتصال حقيقية، دون أن يغادر أي شيء جهاز Mac.

يمكنك الاطلاع على القرارات التقنية وراء ذلك، أو تجربة FireAI لمدة 17 يومًا، على FireAI من HisnLabs.

المصادر