Site icon IT Education Center Blog – блог навчального центру DevOps – ITEDU by NETFORCE Group

Як захистити дані у Jenkins: кращі поради

Jenkins — відкритий інструмент для безперервної інтеграції, написаний на Java. Він допомагає автоматизувати частину процесу розробки ПЗ, яка не потребує участі людини. 

Програму використовують як в корпоративних інтрамережах, так і на потужних серверах, підключених до загальнодоступної мережі. Через її поширеність питання безпеки — дуже актуальне. Тому Jenkins пропонує багато параметрів для налаштування різних функцій безпеки.

Як підвищити безпеку Jenkins? Нумо розбиратися. 

Про безпеку у Jenkins

Програма сама по собі захищена і включає багато параметрів безпеки за замовчуванням під час першого налаштування. Інші параметри потребують окремого налаштування середовища та залежать від конкретних випадків використання Jenkins.

Загалом, він має сторінку з порадами щодо безпеки, де повідомляє про вразливості платформи. Тож радимо вчасно оновлюватися до останньої версії. Так ми й переходимо до першої поради з захисту даних у Jenkins.

Перше правило: все має бути оновлено

Знайти вразливість у ПЗ можуть в будь-який момент. Згадайте log4shell, що існувала з 2017 року, але виявили та почали використовувати її у грудні минулого року. 

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

Тож оновлюйтесь до останньої версії, щоб дізнаватися про усунені проблеми зі сповіщення після оновлення, а не з гіркого досвіду. Оновлюйте свій екземпляр та його плагіни.

Спочатку перевірте, чи доступні оновлення для Jenkins: 

  1. Натисніть Керувати Jenkins у меню.
  2. На наступному екрані у верхній частині ви побачите чи доступна нова версія. Натисніть кнопку Або оновити автоматично, щоб оновити зараз. Або ж можете завантажити останню версію та оновитись в запланований час.

В тому ж розділі можна і відкотити оновлення назад. Для цього натисніть кнопку Повернутися.

Щоб оновити плагіни:

  1. Знов перейдіть у Керувати Jenkins.
  2. Натисніть Керувати плагінами.
  3. Переконайтеся, що ви перебуваєте на вкладці Оновлення та відмітьте те з них, яке хочете встановити. 
  4. Натисніть Завантажити зараз та встановіть після перезавантаження програми.
  5. Перезапустіть Jenkins, щоб завершити оновлення.

Змінюйте параметри безпеки за замовчуванням, лише якщо впевнені

Jenkins активує більшість своїх функцій безпеки під час встановлення, щоб зробити все максимально безпечним. Програма має багато варіантів використання, тож не варто сподіватися на «універсальне рішення» для налаштування та захисту свого екземпляра.  

Хоч Jenkins не дає єдиного рішення, він має детальну документацію щодо важливих функцій, на які варто звернути увагу. Перегляньте сторінку Захист Jenkins, щоб дізнатися більше про базове налаштування, формування поведінки та інтерфейс користувача.

Вносьте зміни, лише якщо впевнені в тому, що робите, а ще краще — робити це після рекомендацій вашого спеціаліста з кібербезпеки. Ці зміни можна зробити на сторінці «Налаштування глобальної безпеки». Щоб знайти її, виберіть «Керувати Jenkins» у меню ліворуч.

Захистіть операційну систему

Захистити Jenkins, звичайно, добре. Але пам’ятаємо, що ми можемо встановити його у більшості основних операційних систем. Тож слідкуємо за їх оновленнями також.

Навіть найзахищеніший застосунок Jenkins не допоможе, якщо його встановити на незахищеному сервері або встановити необережно. 

Оскільки більшість серверів програми, скоріше за все базуватимуться на Linux, розглянемо як захистити цю ОС. Наші поради заборонять зловмисний доступ і модифікацію сервера:

Головне правило: захищайте сервер так, як ви захищаєте свою програму Jenkins.

Уникайте створення на контролері

Jenkins пропонує вбудовану ноду, щоб ви могли якомога швидше запустити тести й побачити, чи це рішення для вас. Однак збірки, які працюють на одному екземплярі, мають доступ до файлової системи вашої ОС. Тому програма рекомендує замість цього виконувати завдання на агентах.

Агенти — це віртуальні екземпляри Jenkins, які виконують завдання замість вашого контролера. Використовуючи агенти, ви можете заборонити контролеру запускати збірки, щоб обмежити доступ до файлів, яким можуть завдати шкоди.

Щоб ваш контролер не запускав збірки:

  1. Натисніть Керувати Jenkins у меню.
  2. Натисніть Керувати вузлами та хмарами.
  3. Клацніть на гвинтик праворуч від вбудованого вузла.
  4. Далі у вас є 2 варіанти. Виберіть один і натисніть Зберегти:

Надайте команді лише потрібні доступи

Недостатньо захистити системи від зовнішніх атак. Зайві доступи всередині команди також можуть привести до неприємних наслідків. 

Якщо ви використовуєте екземпляр Jenkins з одним обліковим записом адміністратора або всі користувачі мають всі доступи, такі інциденти стануть лише питанням часу. Адже з зайвими доступами дуже легко змінити те, що не варто змінювати. 

Що із цим робити?

Дайте акаунт кожному користувачеві

Так ви зможете подивитись, хто і які дії виконував.

Як створити додаткових користувачів:

  1. Натисніть Керувати Jenkins у меню.
  2. Прокрутіть вниз і виберіть Керувати користувачами.
  3. Натисніть Створити користувача.
  4. Заповніть усі поля та знов натисніть Створити користувача.

Використовуйте плагін Matrix Authorization Strategy

Jenkins надає вбудовані методи авторизації, наприклад, «Будь-хто може робити все» та «Авторизовані користувачі можуть робити все». Краще замість таких налаштувань використовувати плагіни для більш розширених методів авторизації.

Один з найвідоміших для цієї мети є Matrix Authorization Strategy. Він забезпечує велику гнучкість для впровадження принципу найменших привілеїв PoLP. Плагін визначає привілеї анонімних, автентифікованих або окремих користувачів. Крім того, ви також можете визначити привілеї для кожного проєкту або призначити створені ролі для кожного користувача. 

Отже, ви можете використовувати цей плагін, щоб керувати доступом користувачів до програми більш детально. Наприклад, зможете:

Як встановити плагін: 

  1. Звичне Керувати Jenkins у меню ліворуч.
  2. Натисніть Керувати плагінами.
  3. Перейдіть на вкладку Доступні та почніть вводити Matrix Authorization. Плагін з’явиться в результатах.
  4. Поставте прапорець ліворуч від плагіну та натисніть Встановити без перезавантаження.

Щоб налаштувати дозволи за допомогою плагіну: 

  1. «Керувати Jenkins» — «Налаштувати глобальну безпеку»
  2. Натисніть перемикач для:
  1. Незалежно від вашого вибору, використовуйте кнопки, щоб додати користувачів або групи та вибрати їхній рівень доступу за допомогою прапорців у таблиці. Натисніть Зберегти, коли закінчите.

Додаткові плагіни, які варто розглянути

Якщо ви користуєтесь іншими системами для керування доступом, то можете автентифікувати своїх користувачів Jenkins через них. Наприклад, є плагіни для Microsoft’s Active Directory та OpenID, що дасть вам керувати доступами в одному місці. 

Також зверніть увагу на плагіни Folders та Folder-based Authorization Strategy

Folders дозволяє групувати завдання у вкладених теках. Ви зможете групувати завдання зі спільними вимогами безпеки, щоб уважніше за ними стежити. 

Плагін Folder-based Authorization Strategy розширює захист теки, дозволяючи налаштувати доступ за допомогою ролей.

Надійно зберігайте свої облікові дані

Пам’ятайте про захист облікових даних. Плагін Credentials Binding шифрує та безпечно зберігає облікові дані, які з’єднують Jenkins з іншими службами. Сама програма рекомендує цей плагін під час першого встановлення, а інші плагіни використовують його як залежність.

Credentials Binding дозволяє зберігати та повторно використовувати всі типи методів автентифікації, наприклад:

Висновок 

Ніщо не може бути захищеним на 100%. І хоч Jenkins — надійно захищена система, ви все одно маєте додатково дбати про її безпеку. Вчасно оновлюйтесь, захищайте не тільки Jenkins, а й операційну систему, обмежуйте доступи до важливих налаштувань та захищайте облікові дані.

Хай ваші системи будуть надійно захищені😉

Exit mobile version