Книга: Руководство по DevOps
Защитите конвейер развертывания
Защитите конвейер развертывания
Инфраструктура, поддерживающая непрерывную интеграцию и непрерывное развертывание, также становится возможной целью атаки. Например, если злоумышленник взламывает серверы, на которых работает конвейер развертывания, где содержатся параметры доступа к системе контроля версий, то он может украсть наш исходный код. Что еще хуже, если у конвейера есть доступ с правом записи, взломщик может внести вредоносные изменения в репозиторий контроля версий и, следовательно, внести вредоносные правки в приложения и сервисы.
Как отметил Джонатан Клаудиус, бывший старший тестировщик безопасности в организации TrustWave SpiderLabs, «серверы непрерывной сборки приложений и тестирования работают потрясающе, я сам их использую. Но я начал задумываться о том, как использовать CI и CD для внедрения вредоносного кода. Что привело меня к вопросу: где хорошее место для того, чтобы спрятать вредоносный код? Ответ очевиден: в юнит-тестах. На них никто не смотрит, и они запускаются каждый раз, когда кто-то отправляет свой код в репозиторий».
Это наглядно демонстрирует, что для адекватной защиты целостности приложений и сред нужно также позаботиться о защите конвейера развертывания. Среди возможных рисков — разработчики могут написать код, разрешающий неавторизованный доступ (с этим можно справиться с помощью тестирования и рецензирования кода, а также с помощью тестов на проникновение), или неавторизованные пользователи могут получить доступ к нашему коду или среде (это исправляется проверкой конфигураций на соответствие известным правильным образцам и эффективным созданием патчей).
Кроме того, чтобы защитить конвейер непрерывной сборки, интеграции или развертывания, можно ввести такие стратегии:
• защита серверов непрерывной сборки и интеграции и создание механизмов для их автоматического восстановления, чтобы их нельзя было взломать; все точно так же, как и для инфраструктуры, поддерживающей ориентированные на клиентов сервисы;
• анализ и оценка всех изменений в системе контроля версий, или с помощью парного программирования во время подтверждения кода, или с помощью рецензирования кода между подтверждением кода и добавлением его в основную ветку. Так в серверы непрерывной интеграции не будет поступать неконтролируемый код (например, тесты могут содержать вредоносный код, делающий возможным неавторизованный доступ);
• оснащение репозиториев инструментами для обнаружения подозрительных API-вызовов в коде тестов (например, тесты, требующие доступа к файловой системе или сетевым соединениям), добавляемых в репозиторий, возможно, с карантином подозрительного кода и его немедленным анализом;
• предоставление для каждого процесса непрерывной интеграции своего изолированного контейнера или виртуальной машины;
• проверка того, что параметры доступа контроля версий, используемые системой непрерывной интеграции, разрешают только чтение.
- Приглашайте инженеров службы безопасности на презентации промежуточных этапов создания продуктов
- Вовлекайте инженеров безопасности в поиск дефектов и приглашайте их на совещания по разбору ошибок и сбоев
- Встройте профилактические средства контроля безопасности в общие репозитории и сервисы
- Встройте меры безопасности в конвейер развертывания
- Обеспечьте безопасность приложений
- Практический пример
- Статическое тестирование безопасности в компании Twitter (2009 г.)
- Проконтролируйте безопасность системы поставок программного обеспечения
- Обеспечьте безопасность программной среды
- Практический пример
- Автоматизация проверок на соответствие требованиям с помощью Compliance Masonry, сделанное группой 18F для федерального правительства
- Дополните информационную безопасность телеметрией
- Создайте телеметрию защиты данных в приложениях
- Создайте телеметрию защиты данных в своих средах
- Практический пример
- Оснащение сред инструментами слежения в компании Etsy (2010 г.)
- Защитите конвейер развертывания
- Заключение
- Агрессивный и консервативный варианты производственного конвейера
- 9.4.2. Создание нелинейных конвейеров:
- Пример: использование очередей в многоступенчатом конвейере
- Комментарии по поводу многоступенчатого конвейера
- Творческий конвейер: либо спятишь, либо научишься
- 1.8 Конвейер
- 4.1. Оценка разработанной концепции нового продукта: построение «дома качества» (алгоритм развертывания функции качества...
- Варианты развертывания междоменного репозитория
- Предварительный этап развертывания PKI
- Определение цели развертывания PKI
- Принятие решения о варианте развертывания
- Стоимость и время развертывания