Огляд
Сканери безпеки знаходять вразливість. Вони не навчають розробника, як уникнути наступної. Цей компонент закриває розрив усередині GitLab: коли сканер позначає знахідку на merge request, розробник, що її вніс, отримує короткий урок саме про цей клас помилки — на merge request, поки код ще свіжий.
Це компонент GitLab CI/CD Catalog, тож упровадження — це один рядок include і три змінні:
- Читає ваші звіти SAST, Secret, Dependency та Container
- Зіставляє кожну знахідку з модулем безпечного кодування
- Публікує урок на merge request
- Без стану, у межах вашого власного GitLab
Як це працює
Компонент — це джоба у вашому пайплайні merge request, що виконується після ваших сканерів безпеки. Він ніколи не звертається до вашого коду: він читає звіти, які сканери вже створюють, і діє на їх основі.
-
Ваші сканери GitLab виконуються й записують свої артефакти
gl-*-report.json. Компонент читає їх і проходить по знахідках. -
Для кожної знахідки він бере ідентифікатори CWE та OWASP і зіставляє їх із модулем безпечного кодування, що навчає виправленню. SQL-інʼєкція мапиться на інʼєкції, захардкоджений секрет — на роботу із секретами, вразлива залежність — на гігієну залежностей.
-
Він визначає відповідального розробника за автором коміту й публікує посилання на модуль єдиною нотаткою на merge request, з дедуплікацією, тож повторний запуск ніколи не засмічує його.
-
Коли розробник завершує модуль, проходження записується назад на merge request підписаною нотаткою, тож рев’ю показує, що урок було призначено й виконано.
Урок з’являється в момент помилки, на merge request, а не у квартальній черзі навчання. Саме тоді розробник найбільш сприйнятливий до виправлення коду, який він щойно написав.
Додати у ваш пайплайн
Компонент опубліковано в
GitLab CI/CD Catalog.
Додайте його до вашого .gitlab-ci.yml після джоб, що створюють ваші звіти безпеки:
include:
- component: $CI_SERVER_FQDN/ransomleak/secure-coding-jit/secure-coding-training@1 Далі встановіть три замасковані змінні CI/CD зі свого встановлення RansomLeak:
| Змінна | Що це |
|---|---|
RANSOMLEAK_ORG_INSTALL_ID | Ідентифікатор встановлення вашої організації, показаний один раз під час увімкнення інтеграції. |
RANSOMLEAK_INGEST_SECRET | Секрет для кожного встановлення, яким компонент запитує підібраний модуль. |
RANSOMLEAK_GITLAB_TOKEN | Токен GitLab зі скоупом api, що публікує нотатку на merge request. |
Немає агента для розгортання й нічого хостити. Компонент — це джоба пайплайна, що виконується на
раннерах GitLab або ваших власних, а закріплення версії (@1) тримає вас на останньому
випуску без ламких змін.
Дозволи та дані
Інтеграція без стану й виконується в межах вашого власного GitLab. Вона читає звіти сканерів, які пайплайн уже створив, і звертається до GitLab токеном, яким володієте ви й можете відкликати.
- Виконується у вашому GitLab, вашим токеном
- Без записів на розробника, без зберігання проходжень
- Відкличте токен — і він чисто спиняється
| Дані | Як їх оброблено |
|---|---|
| Знахідки | Читаються зі звітів сканерів у пайплайні. RansomLeak отримує лише клас знахідки (CWE та OWASP), ніколи ваш вихідний код. |
| Розробник | Визначається за автором коміту, щоб адресувати нотатку. На нашому боці не зберігається жодного запису на розробника. |
| Проходження | Підписана нотатка на вашому merge request. GitLab тримає її як запис; RansomLeak її не зберігає. |
Оскільки компонент виконується всередині вашого власного GitLab, ні код, ні дані розробників не перетинають межу між GitLab і RansomLeak як компаніями. Про те, як RansomLeak обробляє дані, див. політику конфіденційності та сторінку безпеки та відповідності.
Поширені запитання
Чи інтегрується RansomLeak із GitLab?
Так. RansomLeak публікує компонент GitLab CI/CD Catalog, який перетворює знахідку безпеки на навчання безпечному кодуванню для розробника, що її вніс. Він виконується після ваших сканерів безпеки в пайплайні merge request, читає їхні звіти та публікує на merge request короткий, підібраний урок. Проходження записується назад у той самий merge request.
Як знахідка GitLab стає навчанням?
Компонент виконується в пайплайні merge request, після того як ваші сканери створять артефакти gl-*-report.json. Для кожної знахідки він читає ідентифікатори CWE та OWASP, зіставляє їх із мікромодулем безпечного кодування, визначає відповідального розробника за автором коміту й публікує посилання на модуль нотаткою на merge request. Завершення модуля записує проходження назад у merge request.
Які сканери він читає?
GitLab SAST, Secret Detection, Dependency Scanning та Container Scanning. Кожна знахідка зіставляється за її ідентифікаторами CWE та OWASP, тож SQL-інʼєкція, захардкоджений секрет або вразлива залежність кожне мапиться на урок, що навчає виправленню.
Які дані про розробників зберігає RansomLeak?
Жодних. Компонент виконується всередині вашого власного GitLab і звертається до вашого GitLab токеном, яким керуєте ви. Встановлення на рівні організації містить лише ключ підпису, список увімкнених модулів і ваш API-токен. Немає жодних записів на кожного розробника й жодного зберігання проходжень на нашому боці. Проходження — це підписана нотатка на вашому merge request: її тримає GitLab, а не ми.
Як його додати?
Додайте один рядок include до вашого .gitlab-ci.yml із CI/CD Catalog, встановіть три замасковані змінні CI/CD зі свого встановлення RansomLeak, і він запуститься на наступному merge request. Немає агента для розгортання й нічого хостити.
Чи блокує він злиття?
За замовчуванням він публікує навчання на merge request як підказку, а не блокувальний бар’єр, тож вписується у ваш наявний процес рев’ю, не спиняючи його. Проходження записується назад у merge request, тож рецензент бачить, що урок було призначено й завершено.
Потрібна допомога?
Напишіть нам на support@ransomleak.com — і ми допоможемо підключити GitLab до вашого тенанта.