Сторонние инструкции по безопасности программного обеспечения
Это приложение обеспечивает безопасные инструкции по кодированию для программного обеспечения, которое будет связано продуктами Apple.
Небезопасное программное обеспечение может представлять угрозу для полной безопасности систем пользователей. Проблемы безопасности могут привести к отрицательной рекламе и проблемам поддержки конечного пользователя для Apple и третьих лиц.
Уважайте конфиденциальность пользователей
Ваше связанное программное обеспечение может использовать Интернет для передачи с серверами или сторонними серверами. Если так, необходимо предоставить ясную и краткую информацию пользователю о том, какая информация отправлена или получена и причина отправки или получения ее.
Шифрование должно использоваться для защиты информации в то время как в пути. Серверы должны аутентифицироваться прежде, чем передать информацию.
Предоставьте информацию обновления
Предоставьте информацию о том, как обновить до последней версии. Рассмотрите реализацию функции «Check for updates …». Клиенты ожидают (и должен получить), исправления безопасности, влияющие на версию программного обеспечения, которую они выполняют.
У Вас должен быть способ передать доступные исправления безопасности клиентам.
Если возможно, необходимо использовать App Store Mac для обеспечения обновлений. App Store Mac обеспечивает единственный, стандартный интерфейс для обновления всего программного обеспечения пользователя. App Store Mac также обеспечивает ускоренный процесс рассмотрения приложения для обработки критических исправлений безопасности.
Храните информацию в надлежащих местах
Храните специфичную для пользователя информацию в корневом каталоге с надлежащими полномочиями файловой системы.
Проявите специальную заботу при контакте с совместно используемыми данными или предпочтениями.
Следуйте инструкциям о полномочиях файловой системы, установленных в Руководстве по программированию Файловой системы.
Заботьтесь для предотвращения условий состязания и информационного раскрытия при использовании временных файлов. Если возможно, используйте специфичный для пользователя временный каталог файла.
Избегите требовать поднятых полномочий
Не требуйте или призывайте пользователей быть зарегистрированными как администраторский пользователь, чтобы установить или использовать Ваше приложение. Необходимо регулярно тестировать приложение как обычный пользователь, чтобы удостовериться, что оно работает как ожидалось.
Реализация безопасные методы разработки
Расскажите своим разработчикам о том, как записать безопасный код для предотвращения наиболее распространенных классов уязвимостей:
Переполнение буфера
Целочисленные переполнения
Условия состязания
Уязвимости строки формата
Обратите особое внимание для кодирования этого:
соглашения с потенциально недоверяемыми данными, такие как документы или URLs
связывается по сети
пароли дескрипторов или другая уязвимая информация
выполнения с поднятыми полномочиями, такими как корень или в ядре
Используйте APIs, подходящий для задачи:
Используйте APIs, принимающий безопасность во внимание в их проекте.
Избегите низкоуровневого C кода, когда возможный (например, используют NSString вместо струн до).
Используйте средства защиты OS X для защиты пользовательских данных.
Тест для безопасности
Как подходящие для Вашего продукта, используйте следующие методы QA для нахождения потенциальных проблем безопасности:
Тест для недопустимых и неожиданных данных в дополнение к тестированию, что ожидается. (Используйте fuzzing инструменты, включайте тесты модуля, тестирующие на отказ и т.д.)
Статический анализ кода
Отзывы кода и аудиты
Полезные ресурсы
Другие главы в этом документе описывают методы наиболее успешной практики для записи безопасного кода, включая большую информацию о темах, на которые ссылаются выше.
Обзор безопасности и Руководство по Криптографическим службам содержат подробную информацию о функциональности безопасности в OS X, который могут использовать разработчики.