Безопасное программирование Стоимость исправлений • • • • • • Цена плана исправлений Цена поиска уязвимого кода Цена исправления кода Цена тестирования Цена тестирования инсталлятора Цена создания и тестирования международной версии Стоимость исправлений • • • • • Цена цифровой подписи и ее поддержки Цена публикации на web-сайте Цена написания сопроводительной документации Цена исправления плохого общественного мнения Цена поддержания канала для скачивания исправления Стоимость исправлений • Цена потери производительности компании • Цена установки исправления для клиента • Стоимость потенциальных потерь дохода из-за ухода клиентов Безопасность в разработке ПО Определение требований к совместимости со старыми версиями Определение потребностей безопасности в течении интервью Внешняя ревизи Процесс реакции Поддержка безопасности Моделирование угроз Фаза дизайна Концепт Исследование Фаза продаж и сопровождения Фаза тестирования Фаза разработки Завершение дизайна Создание плана тестирования Тестирование Рецензия возможностей команды манипулирования безопасности данными и привелегиями Кодирование завершено · · · Ревизия старых ошибок Регистрация проверок Инструкции безопасного программирования Фаза дизайна • • • • В каких условиях используется устройство? Как атакующий может уничтожить устройство? Как управление может уменьшить атаки? Каковы угрозы для устройства, предполагая, что каждое устройство содержит чувствительные данные? • Кто создаёт чувствительные данные на устройстве? • Кто устанавливает ПО? • Кто управляет созданием данных и установкой ПО? Определение целей безопасности • Кто является целевой группой ПО? • Какие ожидания безопасности целевой группы? Чем они отличаются о более требовательных представителей? Как это влияет на требования безопасности? • Где и как может быть запущено приложение? Internet? Коммуникатор? • Что можно предпринять для защиты? • Какие последствия наступают для пользователя в случае компрометации системы? Определение целей безопасности • Кто управляет приложением? Пользователь ил администратор? • Какие коммуникации необходимы для работы ПО? • Какие сервисы безопасности предоставляет окружение: ОС, ПО сторонних производителей? • Что должно быть защищено от пользователя? Модель угроз • Для построения модели нарушителя необходимо обратиться к существующим практикам Определение совместимости со старыми версиями • Старое ПО никогда не умирает, оно становится не безопасным. • Тем не менее его могут использовать и необходимо предусмотреть соместимость