- Огляд
- Які дані збирає Mend для виправлення коду на основі ШІ?
- Як це зробити
Огляд
Функція виправлення коду (SAST) на базі ШІ в Mend використовує передову модель штучного інтелекту, на основі ChatGPT, для підвищення безпеки коду. Вона надає практичні рекомендації щодо виправлення виявлених вразливостей та автоматизує процес їх усунення. Це рішення безперешкодно інтегрується у робочий процес безпеки, гарантуючи ефективне зниження ризиків завдяки автоматизованому виправленню коду.
Після активації система оцінює виявлені проблеми за допомогою механізму виявлення Mend SAST Gen 2 і пропонує високонадійні виправлення коду, які можна переглянути як в Mend Repository Integrations, так і в Mend Platform. Відгуки на ці пропозиції допомагають вдосконалити майбутні рекомендації, а дешборди в додатку Mend дають уявлення про тенденції та обсяги виправлень на різних організаційних рівнях.
Які дані збирає Mend для виправлення коду на основі ШІ?
Дані клієнтів
Виправлення коду на основі Mend AI не збирає дані клієнтів для навчання і не передає їх третім особам.
- Процес виправлення базується виключно на фрагментах вихідного коду, пов’язаних з результатами перевірки коду.
- Додаткові дані не збираються, а модель штучного інтелекту працює на окремому екземплярі, гарантуючи, що жодні дані не передаються стороннім LLM-провайдерам.
- За бажанням можна надати зворотний зв’язок, щоб допомогти Mend відстежувати прийняття та вдосконалювати рішення.
Як це зробити
Необхідні умови
- Обліковий запис Mend SAST на платформі Mend
- Увімкнено функцію виправлення коду для потрібної організації Mend
- Підключити Mend до необхідного проєкту Jira (щоб переглядати пропозиції щодо виправлень у Jira)
- Увімкнути Code Findings Remediation в меню General Administration:

- Якщо увімкнено, фрагменти вихідного коду будуть надіслані ШІ-моделі Mend.io для надання рекомендацій щодо виправлення. Щоб отримати пропозиції щодо виправлення, розмір фрагмента має бути не менше 10 рядків коду, що є значенням за замовчуванням. Можна вимкнути цю опцію, щоб запобігти будь-якому обміну кодом із моделлю та повністю вимкнути виправлення на основі Mend Code AI.
- Після увімкнення Code Findings Remediation, щоб виправлення коду запрацювало, проєкти потрібно повторно відсканувати. Потім потрібно вийти з системи та увійти знову, щоб оновити інтерфейс і переглянути виправлення коду.
Мови, які підтримуються виправленням коду на основі ШІ в Mend
Виправлення коду на основі ШІ в Mend підтримує наступні мови та CWE (Common Weakness Enumeration – загальний перелік вразливостей):
| Мова | CWE |
|---|---|
| C# Java JavaScript Python | CWE-22 – Обхід шляху (Path Traversal) CWE-79 – Міжсайтовий скриптинг (XSS) CWE-89 – SQL-ін’єкція CWE-117 – Ін’єкція журналів (Log Injection) CWE-601 – Відкрите перенаправлення (Open Redirect) |
Увімкнення виправлення коду на основі ШІ в Mend в інтеграціях репозиторію Mend
Щоб налаштувати виправлення коду на основі ШІ через підтримувані інтеграції репозиторію Mend, необхідно додати параметр “enableRemediation”: true у секцію scanSettingsSAST у файлі .whitesource.
"scanSettingsSAST": {
"enableScan": true,
"enableRemediation": true,
"scanPullRequests": true,
"incrementalScan": true,
"baseBranches": [],
"snippetSize": 10
}
Перегляд запропонованих виправлень коду
Платформа Mend
У рамках платформи Mend виправлення коду обчислюються за запитом і можуть бути переглянуті у поданні результатів аналізу коду програми/проєкту:
1. Потрібно вибрати проєкт і перейти до розділу Code Findings.

2. У таблиці Code Findings необхідно переконатися, що стовпчик Remediation додано до подання, щоб побачити, для яких знахідок є доступне виправлення.

3. Обрати Code Finding з доступним виправленням, щоб переглянути деталі виправлення.
4. Можна переглянути опис виправлення, запропонований Mend.
5. Є можливість залишити відгук про запропоноване виправлення (Like / Unlike). Ці відгуки відстежуються, але не використовуються для покращення пропозицій, оскільки Mend не ділиться кодом користувача з моделлю.
6. Також можна надати детальний відгук, варто натиснути на Provide detailed feedback.

7. З’явиться спливаюче вікно з різними варіантами для вибору, також можна описати відгук своїми словами. Щоб надіслати відгук, слід натиснути Submit Feedback.

Інтеграція з репозиторієм Mend
Щоб переглянути пропозиції щодо виправлень у сховищі вихідного коду, слід активувати та налаштувати інтеграцію з репозиторієм Mend за допомогою ліцензійного ключа Mend.
Якщо репозиторій проскановано, то є можливість переглянути й застосувати запропоновані виправлення коду двома способами:
Звіт про безпеку коду Mend
1. Перейти до звіту Mend Code Security Report у розділі GitHub Issues.
2. Натиснути на Remediation Suggestion, щоб переглянути доступне виправлення коду для даної проблеми.

3. Можна переглянути запропоновані виправлення і скористатися наступним методом, щоб зрозуміти результати:
- Червоні лінії позначають видалені рядки вихідного коду.
- Зелені лінії позначають доданий код для завершеного виправлення.

4. Також можна залишити відгук про надане виправлення (Like / Unlike). Ці відгуки відстежуються, але не використовуються для покращення пропозицій, оскільки Mend не ділиться кодом користувача з моделлю.
Перевірка безпеки коду Mend
1. Після створення запиту на вилучення у гілці функцій, потрібно перейти до розділу Conversation.

2. Натиснути на Remediation Suggestion, щоб переглянути доступне виправлення коду для даної знахідки.

3. Можна переглянути запропоновані виправлення і скористатися наступним методом, щоб зрозуміти результати:
- Червоні лінії позначають видалені рядки вихідного коду.
- Зелені лінії позначають доданий код для завершеного виправлення.

4. Є можливість залишити відгук про надане виправлення (Like / Unlike). Ці відгуки відстежуються, але не використовуються для покращення пропозицій, оскільки Mend не ділиться кодом користувача з моделлю.
Mend CLI
У Mend CLI після завершення сканування коду в результатах консолі відображається кількість запропонованих виправлень:

Інтеграція Mend з Jira
Щоб переглядати пропозиції щодо виправлень на дошці проєкту Jira, потрібно підключити інтеграцію Mend з проєктом Jira. Крім того, Mend рекомендує налаштувати робочі процеси так, щоб вони автоматично створювали проблему в Jira для результатів аналізу коду.
Коли результати сканування відповідають умовам робочого процесу і вибрана дія – створення Jira Issue, Mend створить проблеми для цих результатів. Якщо є пропозиція щодо виправлення, вона буде включена в опис завдання.
Також можна створити завдання Jira вручну на вимогу для знахідки.
1. У налаштованому проєкті Jira з інтеграцією Mend, потрібно перейти до розділу Issues:

2. Переглянути результати й знайти Remediation Suggestion та Remediation Suggestion Snippet, де можна знайти рекомендацію Mend.io, включаючи власне запропоноване виправлення коду.

3. Слід використовувати наступний метод, щоб зрозуміти результати:
- Червоні лінії позначають видалені рядки оригінального коду.
- Зелені лінії показують доданий код для завершеного виправлення.
Примітка: Номери рядків у фрагменті не збігаються з номерами рядків вихідного коду, оскільки фрагмент коду Jira починається з рядка 1, а не з фактичних рядків вихідного коду.
Як виправити результати перевірки коду
Після завершення перевірки безпеки коду Mend Code Security Check (SAST) у сховищі, можна переглянути запропоновані виправлення і створити Pull-запит для впровадження виправлення коду.
Звіт про безпеку коду Mend
1. Перейти до Mend Code Security Report у створеному завданні GitHub.
2. Натиснути на Remediation Suggestion, щоб переглянути доступне виправлення коду для даної знахідки.

3. Якщо потрібно застосувати запропоноване виправлення, варто натиснути Create Pull Request.

4. Перейти до розділу Pull Requests сховища.
5. Відкрити новостворений Pull Request після застосування пропозиції щодо виправлення Mend.

6. Можна переглянути PR Explanation (пояснення PR) у коментарях до розмови.
7. Натиснути Merge pull request, щоб перенести виправлення коду Mend до потрібної гілки. Mend рекомендує дочекатися завершення перевірки безпеки коду виправлення, перш ніж переміщати PR у відповідну гілку.

Перевірка безпеки коду Mend
1. Перейти до Mend Code Security Check у створеному Pull-запиті GitHub і натиснути на розділ Conversation.
2. Натиснути Remediation Suggestion, щоб переглянути доступне виправлення коду для даної знахідки.

Якщо потрібно застосувати запропоноване виправлення, можна вибрати один з двох способів:
3. Можна створити запит, натиснувши на “Create Pull Request into назва вашої гілки функцій”.
4. Оновити гілку функцій за допомогою коміту, натиснувши “Update назва вашої гілки функцій“.

5. Якщо було створено Pull-запит, слід перейти до розділу Pull Requests сховища.
6. Відкрити новостворений Pull-запит після застосування пропозиції щодо виправлення Mend.

7. Можна переглянути PR Explanation (пояснення PR) у коментарях до розмови.
8. Натиснути Merge pull request, щоб перенести виправлення коду Mend у необхідну гілку. Mend рекомендує дочекатися завершення перевірки безпеки коду виправлення, перш ніж переміщати цю PR у відповідну гілку.







