Основы передовой практики обеспечения безопасности закладываются в вашей организации.
Создайте команду по безопасности и конфиденциальности
Создайте специальную группу по обеспечению безопасности и конфиденциальности и назначьте руководителя этой организации.
- Создайте команду безопасности.
- Убедитесь, что хотя бы один сотрудник отвечает за безопасность, конфиденциальность и реагирование на инциденты.
- Определите миссию и сферу деятельности этой команды.
- Разработайте организационную структуру и должностные инструкции для: Менеджера по безопасности, Инженера по безопасности, Менеджера по инцидентам.
- Нанимайте сотрудников или внешних подрядчиков на эти должности.
- Определите жизненный цикл разработки безопасности (SDL) . Ваш SDL должен охватывать следующие области:
- Требования безопасности к продукции.
- Анализ рисков и моделирование угроз.
- Статический и динамический анализ приложений и кода.
- Процессы окончательной проверки безопасности продуктов.
- Реагирование на инцидент.
- Оцените организационный риск . Проведите оценку рисков и разработайте планы по устранению или смягчению этих рисков.
Процесс проверки сборки
Оцените пробелы в существующих внутренних процессах проверки и утверждения сборки.
- Определите любые пробелы в текущем процессе проверки сборки, которые могут привести к появлению в вашей сборке потенциально вредного приложения (PHA) .
- Убедитесь, что у вас есть процесс проверки и утверждения кода, даже для собственных исправлений для AOSP .
- Улучшите целостность сборки, внедрив элементы управления в следующих областях:
- Отслеживать изменения . Отслеживание инженеров-программистов; вести журналы изменений.
- Оцените риск . Оценить разрешения, используемые приложением; требуют ручной проверки изменений кода.
- Монитор . Оцените изменения, внесенные в привилегированный код.
Отслеживание изменений исходного кода
Отслеживайте непреднамеренные изменения исходного кода или сторонних приложений/бинарных файлов/SDK.
- Оцените партнерские отношения . Оцените риск работы с техническим партнером, выполнив следующие действия:
- Установите критерии того, как оценить риск работы с конкретным поставщиком.
- Создайте форму, в которой поставщику будет задан вопрос, как он разрешает инциденты и управляет безопасностью и конфиденциальностью.
- Подтверждайте свои утверждения периодическим аудитом.
- Отслеживать изменения . Регистрируйте, какие компании и сотрудники модифицируют исходный код, и проводите периодические проверки, чтобы гарантировать, что вносятся только соответствующие изменения.
- Вести учет . Запишите, какие компании добавляют сторонние двоичные файлы в вашу сборку, и задокументируйте, какие функции выполняют эти приложения и какие данные они собирают.
- Планируйте обновления . Убедитесь, что ваши поставщики обязаны предоставлять обновления программного обеспечения в течение всего срока службы вашего продукта. Для устранения непредвиденных уязвимостей может потребоваться поддержка со стороны поставщиков.
Проверка целостности и происхождения исходного кода
Проверьте и подтвердите исходный код, предоставленный производителем оригинального устройства (ODM), беспроводным обновлением (OTA) или оператором связи.
- Управление сертификатами подписи .
- Храните ключи в аппаратном модуле безопасности (HSM) или безопасном облачном сервисе (не передавайте их).
- Убедитесь, что доступ к подписывающим сертификатам контролируется и проверяется.
- Требуйте, чтобы вся подпись кода выполнялась в вашей системе сборки.
- Отозвать утерянные ключи.
- Создавайте ключи, используя лучшие практики.
- Анализируйте новый код . Протестируйте вновь добавленный код с помощью инструментов анализа кода безопасности, чтобы проверить наличие новых уязвимостей. Кроме того, проанализируйте общую функциональность для обнаружения проявления новых уязвимостей.
- Обзор перед публикацией . Ищите уязвимости безопасности в исходном коде и сторонних приложениях, прежде чем запускать их в производство. Например:
- Требовать от приложений использования безопасной связи.
- Следуйте принципу минимальных привилегий и предоставляйте минимальный набор разрешений, необходимых для работы приложения.
- Обеспечьте хранение и передачу данных по защищенным каналам.
- Поддерживайте актуальность зависимостей служб.
- Применяйте исправления безопасности к SDK и библиотекам с открытым исходным кодом.
Реагирование на инцидент
Android верит в силу сильного сообщества безопасности, помогающего находить проблемы. Вам следует создать и опубликовать возможность для внешних сторон связаться с вами по вопросам безопасности конкретного устройства.
- Наладить контакт . Создайте адрес электронной почты, например security@ your-company .com, или веб-сайт с четкими инструкциями по сообщению о потенциальных проблемах безопасности, связанных с вашим продуктом ( пример ).
- Создайте программу вознаграждений за уязвимости (VRP) . Поощряйте внешних исследователей безопасности отправлять отчеты об уязвимостях безопасности, влияющих на ваши продукты, предлагая денежное вознаграждение за достоверные материалы ( пример ). Мы рекомендуем награждать исследователей конкурентоспособными в отрасли вознаграждениями, например, 5000 долларов США за уязвимости критического уровня опасности и 2500 долларов США за уязвимости высокой степени серьезности.
- Вносите изменения в исходную версию . Если вам стало известно о проблеме безопасности, затрагивающей платформу Android или устройства от нескольких производителей устройств, свяжитесь с командой безопасности Android, отправив отчет об ошибке безопасности .
- Продвигайте передовые методы обеспечения безопасности . Заблаговременно оценивайте методы обеспечения безопасности поставщиков оборудования и программного обеспечения, которые предоставляют услуги, компоненты и/или код для ваших устройств. Привлекать поставщиков к ответственности за поддержание хорошего уровня безопасности.