Git, репозитории и конвейеры… Здесь много важных ньюансов! В этой статье рассматриваются стандартные методы разработки веб-приложений и даются рекомендации по использованию Tenable Web Application Scanning для обеспечения безопасности кода.
Отлично! Это должно быть просто. Все, что вам нужно для начала, это… Подождите… что такое конвейер?
Ну, давайте начнем с этого. Вы когда-нибудь пользовались репозиторием кода для отслеживания изменений в коде?
Каждый раз, когда вы вносите изменения в файлы/код репозитория, вы должны сделать так называемые «git commit» и «git push».
Разработчики используют Git как основу для запуска конвейеров CI/CD.
Подождите… что такое Git, и что означает CI/CD?
Чтобы было понятно, непрерывная интеграция и непрерывное развертывание (CI/CD) – это методология, а не инструмент.
Букву «D» в CI/CD часто называют «доставкой», а не развертыванием.
Прежде чем приступить к работе, давайте поговорим о контроле версий. Пора вернуться на несколько лет назад. В 2005 году Линус Торвальдс, создатель Linux, создал нечто под названием «Git», программное обеспечение для контроля версий с открытым исходным кодом. Контроль версий позволяет отслеживать и контролировать все изменения в кодовой базе.
Эти базы данных, называемые репозиториями, обычно используются для управления кодом, который лежит в основе любого программного обеспечения или веб-сайта, о котором вы только можете подумать. Git – наиболее распространенная система контроля версий, а GitHub, который сейчас принадлежит Microsoft, – одна из облачных платформ для хостинга репозиториев, использующих Git.
С тех пор разработчики используют этот замечательный инструмент контроля версий, но каждый раз, когда они хотели протестировать свои производственные приложения/программное обеспечение, им приходилось делать следующее:
- Войти на сервер
- Извлечь код из репозитория
- Упаковать код в красивый zip-файл
- Отправить этот пакет на другой сервер, который является средой для постановки/тестирования.
- Запустить приложение и убедиться, что оно по-прежнему работает.
- Провести все необходимые тесты, например, разрешить другим разработчикам зайти и поработать над ним, чтобы найти неработающие части приложения.
Самые эффективные разработчики создавали скрипты для автоматизации частично или полностью этой работы, но есть еще более эффективный способ…

Что такое непрерывная интеграция?
Интеграция здесь может означать не то, о чем вы подумали. Это значит, что вы собираете свое приложение и запускаете тесты по расписанию или каждый раз, когда вносите изменения в код. Подумайте, сколько времени это может сэкономить. Вместо того чтобы поручать задания команде тестировщиков, тесты будут выполняться каждый раз, когда вы вносите изменения в код. Представляете, как можно сразу узнать обо всех проблемах?
Кроме того, непрерывная интеграция автоматически собирает ваше приложение, поэтому вам не нужно самостоятельно упаковывать и запускать его, что позволяет вам продолжать работу над созданием.
Для специалистов по безопасности это тот участок конвейера, где может помочь сканер динамического тестирования безопасности приложений (DAST), доступный в Tenable Web Application Scanning.
Компания Tenable стремится к тому, чтобы разработчики узнавали о проблемах безопасности как можно раньше. Именно здесь находится место анализу состава программного обеспечения (SCA) и статическому сканированию безопасности приложений (SAST). Эти инструменты используются для изучения исходного кода, в то время как Tenable Web Application Scanning смотрит на собранное приложение и сканирует его с помощью реальных сетевых запросов.
Jenkins считается первым основным и широко распространенным инструментом CI. Jenkins помог командам внедрить эту методологию. Некоторые команды уже делали это с помощью собственных решений. У Tenable есть документация о том, как развернуть сканер веб-приложений в CI/CD-конвейере Jenkins.
Что такое непрерывное развертывание?
Развертывание – это когда вы берете то, что создали, и выводите это на рынок для реального использования. Это создание приложения для использования в реальном использовании, а не просто для быстрого тестирования. Раньше разработчики заходили на свои серверы и вносили обновления в приложения на ходу. Если что-то сломается, что ж, придется вспомнить внесенные изменения и весело провести время, восстанавливая их.
Автоматизированное развертывание позволяло разработчикам запускать один сценарий, который за один раз запускал всю среду или приложение. Приложение упало? Нет проблем! Запустите развертывание, и вскоре оно будет восстановлено.
Непрерывное развертывание позволяет вносить изменения в исходный код и автоматически отправлять их в реальное использование. Время разработчиков и ИТ-команды не тратится на смену ресурсов.
Подведение итогов
Итак. Конвейер CI/CD – это сочетание контроля версий (Git), непрерывной интеграции и непрерывного развертывания. Это позволяет командам разрабатывать приложения очень быстро и не терять времени. Конвейер – это непрерывный поток тестов и автоматизированных действий, которые происходят на основе изменений кода.
Со временем инструменты становились лучше и появлялись новые, такие как Bamboo, CircleCI и некоторые другие. В 2015 году появился GitHub Actions, позволяющий разработчикам автоматизировать рабочие процессы разработки программного обеспечения из GitHub.
Дополнительную документацию по внедрению можно найти в документации Tenable.
Источник: Web App Scanning 101: What Security Pros Need to Know About CI/CD Pipelines
