Безопасность в разработке ПО
Модель угроз Для построения модели нарушителя необходимо обратиться к существующим практикам
Определение совместимости со старыми версиями Старое ПО никогда не умирает, оно становится не безопасным. Тем не менее его могут использовать и необходимо предусмотреть соместимость
Стратегия SD3 Secure: by Design by Default In Deployment
Secure by Design Назначьте ответственного за безопасность Требуется обучение всего персонала по вопросам безопасности Убедитесь, что в проекте учитывается модель угроз Придерживайтесь принципов программирования отраженных в инструкциях проекта. Исправляйте код который отличается от принципов проекта, как можно быстрее. Необходимо развивать принципы безопасности проекта и модель угроз вместе с проектом. Разработайте тесты включающие уже ранее обнаруженные уязвимости. При этом надо учитывать, что схожие уязвимости могут быть в других модулях
Secure by Design Упрощение кода позволяет упрощать модель безопасности. Проведите тест на проникновение до выпуска релиза. Принципиально модно проводить тест по двум сценариям: Привлечение сторонних специалистов Собственными силами
Secure by Default Не запускайте все сервисы по умолчанию. Предоставьте пользователю простой механизм управления запущенными сервисами. Оставьте запуск по умолчанию только наиболее часто используемые. Соблюдайте принцип минимальных привилегий. Применяйте механизмы защиты для критических ресурсов и данных.
Secure in Deployment Убедитесь, что у администратора имеется простой способ убедиться в безопасности приложения. Разрабатывайте хорошие исправления безопасности, потратьте дополнительное время на тестирование исправлений. Дайте информацию пользователю как использовать Вашу систему в безопасном режиме. Это может быть специальные сообщения или разделы справки.
Принципы безопасности Учитесь на ошибках Минимизируйте зависимость от атак Используйте многоуровневую защиту Используйте принцип минимальных привилегий Применяйте безопасные настройки по умолчанию Помните, что обратная совместимость всегда порождает проблемы Учитывайте, что внешние системы небезопасны Разработайте план устранения сбоев
Принципы безопасности Помните, что наличие функций безопасных не обеспечивает безопасность системы Никогда не обеспечиваете безопасность за счет сокрытия Не смешивайте код и данные Исправляйте корректно ошибки безопасности