Книга: Руководство по DevOps
Встройте меры безопасности в конвейер развертывания
Встройте меры безопасности в конвейер развертывания
В прошлые эпохи при работе над безопасностью приложения анализ его защиты обычно начинался после завершения разработки. Зачастую результат такого анализа — сотни страниц текста в формате PDF с перечислением уязвимых мест. Их мы отправляли командам разработки и эксплуатации. Эти проблемы обычно оставлялись без внимания, так как дедлайны подходили уже совсем близко или уязвимые места обнаруживались слишком поздно, чтобы их можно было легко исправить.
На этом шаге мы автоматизируем столько тестов защиты данных, сколько сможем, чтобы они проводились вместе со всеми другими тестами в конвейере развертывания. В идеале любое подтверждение кода и в разработке, и в эксплуатации должно приводить к запуску тестирования, даже на самых ранних стадиях проекта.
Наша цель — дать разработке и эксплуатации быструю обратную связь по их работе, чтобы они были в курсе, когда их код потенциально небезопасен. Благодаря этому они смогут быстро находить и исправлять проблемы с защитой данных в ходе ежедневной работы, накапливая полезный опыт и предотвращая будущие ошибки.
В идеале автоматизированные тесты должны запускаться в конвейере развертывания вместе с другими инструментами анализа кода.
Такие инструменты, как GauntIt, специально были созданы для работы в конвейере развертывания. Они проводят автоматические тесты безопасности для приложений, зависимостей приложений, для среды и так далее. Примечательно, что GauntIt даже помещает все свои тесты в тестовые скрипты на языке Gherkin, широко используемом разработчиками для модульного и функционального тестирования. Благодаря такому подходу тесты оказываются в уже знакомой им среде разработки. Кроме того, их можно легко запускать в конвейере развертывания при каждом подтверждении изменений кода, например при статическом анализе кода, проверке на наличие уязвимых зависимостей или при динамическом тестировании.
Рис. 43. Автоматизированное тестирование в системе Jenkins (источник: Джеймс Уикет и Гарет Рашгров, “Battle-tested code without the battle,” презентация на конференции Velocity 2014, выложенная на сайте Speakerdeck.com, 24 июня 2014 г., https://speakerdeck.com/garethr/battle-tested-code-without-the-battle)
Благодаря этим методикам у всех в потоке ценности будет мгновенная обратная связь о статусе безопасности всех сервисов и продуктов, что позволит разработчикам и инженерам эксплуатации быстро находить и устранять проблемы.
- Приглашайте инженеров службы безопасности на презентации промежуточных этапов создания продуктов
- Вовлекайте инженеров безопасности в поиск дефектов и приглашайте их на совещания по разбору ошибок и сбоев
- Встройте профилактические средства контроля безопасности в общие репозитории и сервисы
- Встройте меры безопасности в конвейер развертывания
- Обеспечьте безопасность приложений
- Практический пример
- Статическое тестирование безопасности в компании Twitter (2009 г.)
- Проконтролируйте безопасность системы поставок программного обеспечения
- Обеспечьте безопасность программной среды
- Практический пример
- Автоматизация проверок на соответствие требованиям с помощью Compliance Masonry, сделанное группой 18F для федерального правительства
- Дополните информационную безопасность телеметрией
- Создайте телеметрию защиты данных в приложениях
- Создайте телеметрию защиты данных в своих средах
- Практический пример
- Оснащение сред инструментами слежения в компании Etsy (2010 г.)
- Защитите конвейер развертывания
- Заключение
- Как получить снимок с веб-камеры?
- Система безопасности InterBase
- Общие рекомендации по безопасности
- Конфигурация безопасности для базы данных
- Примеры получения статистики
- Примеры
- Обеспечение безопасности библиотеки
- Глава 1 Стандарты и угрозы информационной безопасности
- Глава 3 Нормативные руководящие документы, назначение и задачи информационной безопасности России
- Меры результатов
- О технике безопасности
- 4.1.3. Правила безопасности