DevOps как культура, важно настроить конвейер CI / CD, это помогает нам сократить время развертывания с недель до минут, но как насчет интеграции DevSecOps в наши конвейеры и не только развертывания кода, но и развертывания безопасного кода?

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

Помните: ни одна система не может быть защищена на 100%.

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

В этом случае мы собираемся интегрировать SonarCloud в созданное ранее Node JS App.

Интеграция с SonarCloud

Предварительные требования:
1. Репозиторий GitHub
2. Конвейер CircleCi в нашем проекте.

Ресурсы:
1. SonarQube

Интеграция
1. Войдите в свою учетную запись GitHub.

2. Выберите проект для анализа.

3. После выбора проекта нажмите кнопку Настроить.

4. Начнется анализ проекта.

5. По завершении мы можем увидеть итог нашего анализа.

6. Мы можем щелкнуть по каждой опции. В разделе «Ошибки» будут отображаться текущие ошибки в приложении. Выберите одну из них, чтобы получить информацию о том, как устранить ошибку.

7. После исправления нашего кода обзор будет выглядеть так:

8. Чтобы интегрировать SonarCloud в наш конвейер CircleCi, необходимо определить, какие ветви будут запускать SonarCloud автоматически, этот параметр находится в Администрирование ›Ветви и запросы на извлечение› Шаблон долгоживущих ветвей, здесь должен быть указан наш шаблон.

9. После этого нам нужно выбрать CircleCi в качестве метода анализа, Администрирование ›Метод анализа› CircleCi.

10. Следуйте инструкциям, данным в руководстве.

11. Создайте контекст CircleCi в приложенииCircleCi с заданной envar.

12. После создания контекста необходимо создать config.yml для нашего JS-проекта.

13. Поскольку в нашем текущем проекте уже есть конвейер, мы добавим задание SonarCloud. Добавьте шаг run_sonar_cloud, который будет запускать сонар, раздел orb, чтобы использовать сонар, и задание run_sonar_cloud, чтобы интегрировать его в наш конвейер.

14. Создайте наш sonar-project.properties.

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

16. Наш конвейер выглядит так:

17. А обзор анализируемой ветки выглядит так:

Это все! Мы приступили к созданию безопасного кода за 10 минут :)