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
