أمن المعالجة وقت التشغيل في iOS و iPadOS
يساعد iOS و iPadOS على ضمان أمن وقت التشغيل باستخدام "وضع الحماية" والاستحقاقات المعلنة وعشوائية تخطيط مساحة العنوان (ASLR).
وضع الحماية
تكون جميع تطبيقات الجهات الخارجية في "وضع الحماية"، لذا فهي ممنوعة من الوصول إلى الملفات المخزنة بواسطة تطبيقات أخرى أو من إجراء تغييرات على الجهاز. وقد تم تصميم وضع الحماية لحماية التطبيقات من جمع أو تعديل المعلومات المخزنة بواسطة التطبيقات الأخرى. يحتوي كل تطبيق على دليل رئيسي فريد يضم ملفاته، ويتم تعيينه عشوائيًا عند تثبيت التطبيق. إذا احتاج تطبيق جهة خارجية إلى الوصول إلى معلومات أخرى غير معلوماته الخاصة، فإنه لا يفعل ذلك إلا باستخدام الخدمات الحصرية التي يوفرها iOS و iPadOS.
ملفات النظام وموارده محمية أيضًا من تطبيقات المستخدم. تعمل غالبية ملفات وموارد iOS و iPadOS مثل "جوال" مستخدم لا يتمتع بامتيازات، كما تفعل جميع تطبيقات الجهات الخارجية. ويتم تحميل قسم نظام التشغيل بالكامل للقراءة فقط. بينما الأدوات غير الضرورية، مثل خدمات تسجيل الدخول عن بُعد، لا يتم تضمينها في برامج النظام؛ وواجهات API لا تسمح للتطبيقات بتصعيد امتيازاتها الخاصة لتعديل التطبيقات الأخرى أو iOS و iPadOS.
استخدام الاستحقاقات
تتحكم الاستحقاقات المعلنة في إمكانية الوصول من خلال تطبيقات الجهات الخارجية إلى معلومات المستخدم وإلى الميزات مثل iCloud وإمكانية التوسعة. الاستحقاقات عبارة عن أزواج قيم أساسية يتم تسجيل دخولها إلى أحد التطبيقات وتسمح بالمصادقة بما يتجاوز عوامل وقت التشغيل، مثل معرف مستخدم UNIX. نظرًا لأن الاستحقاقات يتم توقيعها رقميًا، لا يمكن تغييرها. وتُستخدم الاستحقاقات على نطاق واسع بواسطة تطبيقات النظام والبرامج الخفية لتنفيذ عمليات ذات امتيازات خاصة قد تتطلب تشغيل العملية كجذر. وهذا يقلل بشكل كبير من احتمال تصعيد الامتياز بواسطة تطبيق نظام مُخترَق أو برنامج خفي.
بالإضافة إلى ذلك، لا يمكن للتطبيقات إجراء معالجة في الخلفية إلا من خلال واجهات API التي يوفرها النظام. يتيح ذلك للتطبيقات الاستمرار في العمل دون تدهور في الأداء أو التأثير بشكل كبير في عمر البطارية.
عشوائية تخطيط مساحة العنوان
إن عشوائية تخطيط مساحة العنوان (ASLR) تساعد على الحماية من استغلال أخطاء فساد الذاكرة. وتستخدم التطبيقات المضمنة تقنية ASLR للمساعدة على ضمان عشوائية جميع مناطق الذاكرة عند التشغيل. بالإضافة إلى العمل عند التشغيل، تقوم ASLR بالترتيب العشوائي لعناوين الذاكرة الخاصة بالتعليمات البرمجية القابلة للتنفيذ ومكتبات النظام ووحدات البناء البرمجية ذات الصلة، ما يقلل احتمال وقوع العديد من الهجمات. على سبيل المثال، يحاول هجوم return-to-libc خداع الجهاز لتنفيذ تعليمات برمجية ضارة من خلال التلاعب بعناوين الذاكرة الخاصة بمكتبات المكدس والنظام. ومن ثم فإن عشوائية تعيين موضع هذه المكتبات يجعل تنفيذ الهجوم أكثر صعوبة، خاصة عبر أجهزة متعددة. تقوم Xcode وبيئات تطوير iOS أو iPadOS، بتجميع برامج الجهات الخارجية تلقائيًا مع تشغيل دعم ASLR.
ميزة عدم التنفيذ
يوفر iOS و iPadOS مزيدًا من الحماية باستخدام ميزة عدم التنفيذ مطلقًا (XN) في ARM، والتي تميّز صفحات الذاكرة على أنها غير قابلة للتنفيذ. ولا يمكن استخدام صفحات الذاكرة التي تم تمييزها على أنها قابلة للكتابة وقابلة للتنفيذ إلا بواسطة التطبيقات تحت ظروف محكمة للغاية: يتحقق kernel من وجود استحقاق توقيع التعليمات البرمجية الديناميكي من Apple فقط. وحتى ذلك الحين، يمكن إجراء اتصال mmap
واحد فقط لطلب صفحة قابلة للتنفيذ وقابلة للكتابة يتم منحها عنوانًا عشوائيًا. يستخدم سفاري هذه الوظيفة لبرنامج التحويل البرمجي JavaScript Just-in-Time (JIT) الخاص به.