Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Безопасность времени выполнения процессов






Итак, допустим, что приложение поступило из доверенного источника, и его код надлежащим образом подписан. Но и на этом меры безопасности не заканчиваются. iOS также следит за тем, чтобы приложение никак не повлияло на работу других приложений или системы. Именно поэтому все сторонние приложения работают в “песочнице” (sandbox). У каждого приложения есть домашняя папка, в которой хранятся его файлы, домашняя папка создается во время установки приложения на устройство. При необходимости доступ к системной информации приложение может получить посредством API или системных служб.

Системные файлы и ресурсы также защищены от пользовательских приложений. Большинство системных процессов, как и все процессы сторонних приложений, выполняются с правами непривилегированного пользователя “mobile”. Раздел, на котором установлена iOS, доступен только для чтения.

Необязательные системные утилиты (например, удаленное подключение или шелл) исключены из системного ПО, а API не позволяют пользовательским процессам повысить свои привилегии, чтобы внести изменения в другие приложения или саму iOS.

Доступ сторонних приложений к пользовательской информации или специальным сервисам (таким как iCloud) контролируется с помощью “прав доступа” (entitlements). Права доступа встроены в приложение и представляют собой пару “ключ-значение”. Поскольку права доступа имеют цифровую подпись, то их нельзя изменить. Права доступа широко используются системными приложениями и демонами для осуществления специальных привилегированных операций, которые в противном случае потребовали бы прав root’а. Благодаря использованию прав доступа в значительной степени снижается риск несанкционированного повышения привилегий.

 

Рисунок 3. Пример прав доступа для использования iCloud

 

Следующий механизм – рандомизация адресного пространства (Address space layout randomization - ASLR) – защищает систему от эксплуатации багов в памяти. ASLR – это технология, благодаря которой случайном образом изменяется расположение важных структур в адресном пространстве процесса. Встроенные приложения используют ASLR для гарантии того, что размещение всех регионов памяти во время запуска рандомизируется. Кроме того, Xcode – среда разработки приложений для iOS – автоматически компилирует сторонние приложения с поддержкой ASLR.

И, наконец, последний механизм защиты, это ARM’s Execute Never (XN). Функция ARM’s XN помечает страницы в памяти как недоступные для выполнения кода. iOS позволяет приложениям использовать страницы, помеченные одновременно, как доступные для записи и выполнения кода, только при выполнении строгих условий: у приложения должно присутствовать право доступа “dynamic-codesigning”, а такое право доступа есть только у приложений, выпущенных самой Apple. И даже при выполнении этого условия, приложение сможет запросить страницу, доступную для записи и выполнения, только один раз. В частности, этим пользуется Safari для своего JIT-компилятора JavaScript.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.