-- Leo's gemini proxy

-- Connecting to byzoni.org:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=ru-RU

⏪ Вернуться к gemlog


2021-09-03


Пайплайн CI/CD является основой разработки программного обеспечения и одним из основных компонентов DevOps.


Процесс непрерывной интеграции/доставки (или развертывания) определяет серию шагов для инженеров-программистов по созданию новых программ.


> Хотя эффективность производства и повышается при использовании CI/CD, этот процесс склонен к пренебрежению безопасностью.


Базы данных, собственный код, учетные данные, ключи, секреты и пароли, используемые в производственных и тестовых средах, также представляют собой риск для безопасности.


В этой статье рассказывается о безопасности CI/CD, проблемах и лучших практиках для защиты пайплайна производства программного обеспечения.


Общие проблемы безопасности в пайплайне CI/CD


Существует множество проблем безопасности, которые необходимо учитывать при защите CI/CD пайплайна:


Соответствие данных в непроизводственной среде – важнейшая задача. Чем больше людей работает над одним проектом, тем выше число возможных точек нарушения.

Хорошо сформулированные правила контроля доступа и политики паролей для всех пользователей являются обязательным условием. На случай компрометации должен существовать готовый план реагирования на инциденты.

Для автоматизации и оркестрации требуются многочисленные части программного обеспечения и единичные фрагменты кода. Необходим постоянный мониторинг и аудит кода и стороннего программного обеспечения.


Быстро меняющаяся среда с постоянными обновлениями оставляет много места для случайностей и непреднамеренных действий.


Лучшая практика – встроить безопасность в пайплайн.


1. Моделирование угроз


Проведите исследование потенциальных угроз безопасности.


Определите точки, где необходимы дополнительные уровни безопасности, смоделируйте эти угрозы и создайте упражнения для повышения осведомленности о потенциальных проблемах безопасности.


Большинство угроз безопасности находятся в точках подключения.


Все, что подключается к пайплайну, должно регулярно исправляться и обновляться.


Блокируйте устройства, которые не отвечают требованиям безопасности, соответствующим образом.


2. Безопасность до коммитов


Создавайте проверки безопасности перед коммитами кода в системе контроля версий.


Большинство IDE предоставляют плагины безопасности и предупреждают об уязвимостях кода по мере ввода.


Проверяйте работу неопытных разработчиков перед коммитами кода в Git.


Используйте небольшие фрагменты кода и контрольные списки, чтобы убедиться, что код соответствует всем протоколам и стандартам безопасности.


Также избегайте копирования и публикации API-ключей, токенов и других конфиденциальных данных.


3. Ревью закоммиченного кода


Как только вы коммитили код, просмотрите его еще раз, чтобы убедиться, что все в нем обосновано.


Используйте инструменты статического анализа кода, чтобы получить обратную связь для исправления.


Инструменты анализа не требуют запуска приложения, и многие из них предоставляют полезные советы вместе с отчетом.


Отправляйте отчеты о сканировании кода в команду безопасности, чтобы проверить, нужны ли какие-либо последующие действия.


Используйте системы отслеживания ошибок и регистрируйте результаты, чтобы убедиться, что все ошибки исправлены и не забыты.


Кроме того, проанализируйте историю Git на предмет подозрительной активности.


4. Защитите свой Git


Git, как известно, является весьма привлекательной целью для хакеров.


Убедитесь, что разработчики обучены тому, как использовать Git, и постоянно информированы о процедурах компании.


Используйте файл .gitignore для предотвращения случайных коммитов стандартных и сгенерированных кэшированных файлов.


Имейте локально хранимую и защищенную резервную копию как часть общей политики резервного копирования.


5. Проверка на наличие уязвимостей в библиотеках с открытым исходным кодом


Библиотеки с открытым исходным кодом являются важнейшим компонентом при создании приложений.


Однако программное обеспечение сторонних разработчиков подвержено изменениям кода, что может косвенно повлиять на безопасность вашего приложения.


Обязательно анализируйте и сканируйте пакеты с открытым исходным кодом на предмет известных проблем безопасности.


Используйте инструменты анализа состава программного обеспечения (SCA) для анализа стороннего программного обеспечения, компонентов и файлов.


6. Автоматизируйте с помощью IaC


Инфраструктура как код (IaC) обеспечивает стабильные условия разработки и тестирования.


Вместо ручной настройки среды инструменты IaC, такие как Ansible, Terraform или Puppet, помогают постоянно автоматически создавать безопасную инфраструктуру.


Дополнительным преимуществом является то, что IaC легко вписывается в цепочку инструментов DevOps.


Постоянно тестируемые многократно используемые конфигурации и внедряемые процедуры гарантируют отличные результаты производства и качественный код.


7. Мониторинг после развертывания


После развертывания приложения постоянно сканируйте и контролируйте его, чтобы предотвратить любые угрозы.


Мониторинг помогает обнаружить и устранить подозрительную активность на основе предоставленных данных.


Используйте такие инструменты, как Grafana или Kibana, для создания интерактивных визуальных информационных панелей, чтобы получать предупреждения о любой подозрительной активности.


8. Разделите задачи и обеспечьте ролевую модель доступа


Права пользователей замедляют и даже мешают процессу тестирования.


Однако установление и обеспечение прав доступа для выполнения только основных задач имеет решающее значение с точки зрения безопасности.


Если речь идет о Git, определите роли доступа для каждого репозитория и внедрите двухфакторную аутентификацию для каждого коммита.


Старайтесь разделять задачи, чтобы сохранить безопасность п и при этом обеспечить непрерывную доставку.


9. Обеспечьте безопасность учетных данных


Защитите все учетные данные, обеспечивающие доступ к программному обеспечению и сервисам, такие как API-токены, пароли, ключи SSH, ключи шифрования и т. д.


Неправильная защита учетных данных открывает путь для хакеров, что приводит к утечке данных и краже интеллектуальной сосбственности.


Поэтому используйте платформу управления ключами для безопасного и автоматизированного доступа к ним.


Программное обеспечение гарантирует, что секреты будут использоваться по прямому запросу.


Для управления множеством сложных паролей используйте программное обеспечение для управления паролями.


10. Усердно наводите порядок


В среде CI/CD процессы и задачи протекают быстро без надлежащей очистки.


Обязательно закрывайте все оставшиеся временные ресурсы, такие как виртуальные машины, контейнеры или процессы.


Кроме того, обеспечьте надлежащее поддержание безопасности в целом и удалите все лишние утилиты и инструменты.


Заключение


Безопасность CI/CD-пайплайна – это процесс, который варьируется от системы к системе.


Эта статья дала представление о процедуре обеспечения безопасности пайплайна CI/CD.

-- Response ended

-- Page fetched on Mon May 20 10:00:48 2024