Ліцензійне зараження коду від ШІ
Написав помічник. Належить комусь іншому.
Що таке Ліцензійне зараження коду від ШІ?
ШІ-помічник може слово в слово відтворити код, на якому навчався, разом із ліцензією, а ліцензійні зобов'язання лягають на компанію, що цей код випускає. Тут функція, яку помічник написав кілька тижнів тому, виявляється скопійованою з проєкту з копілефтом. Ви простежите її походження за смугою авторства, порівняєте з першоджерелом, замінете власною реалізацією, підтвердите виправлення ліцензійним скануванням фрагментів і запишете, звідки береться ваш код.
Що ви дізнаєтесь у Ліцензійне зараження коду від ШІ
- Поясніть, чому код, який пише ШІ-помічник, може нести ліцензійні зобов'язання іншого проєкту
- Розпізнавайте ознаки відтвореного коду: характерні коментарі й незвичні назви
- Порівнюйте підозрілий код із першоджерелом і читайте ліцензію, яку він несе
- Замінюйте скопійований код власною реалізацією й підтверджуйте це ліцензійним скануванням фрагментів
- Для коду, написаного помічником, ведіть журнал походження й запускайте ліцензійне сканування перед випуском
Ліцензійне зараження коду від ШІ — Кроки навчання
-
Повідомлення від юрисконсультки
Аліса очолює команду SDK в Undercott. Telemetry SDK — закрита бібліотека, яку Undercott постачає клієнтам у складі їхніх пристроїв. Сьогодні вранці Ільзе, юрисконсультка Undercott, переслала зовнішнє повідомлення про цю бібліотеку.
-
Відкрийте SDK
Повідомлення вказує на функцію пакування бітів у src/bitpack.c з репозиторію SDK, ~/work/undercott-sdk . У смузі ліворуч від рядків фіолетові пунктирні лінії позначають код, який написав помічник і який ніхто не переглядав.
-
Прийнято, але не прочитано
Кілька тижнів тому Аліса попросила помічника Claude написати швидку функцію, яка пакує показання датчиків у 64-бітні слова. Claude написав її, вона пройшла тести, і Аліса її прийняла. У версії 4.2 вона дійшла до клієнтів.
-
Прочитайте блок
Перегляньте блок так, як переглядали б зміни колеги, і шукайте все, що не схоже на решту кодової бази.
-
Першоджерело
Повідомлення називає файл першоджерела: src/bitpack.c проєкту Crumbfold на платформі Githarrow.
-
Рядок у рядок
Порівняйте функцію з першоджерела з блоком SDK: їх показано поруч.
-
Чого вимагає ліцензія
Githarrow показує її короткий опис за значком ліцензії, а ще ліцензія зазначена в заголовку самого файлу.
-
Чия це проблема
-
Скануйте так, як перед випуском
Сканер фрагментів створює відбитки вихідного коду й порівнює їх із відкритим кодом. Така перевірка виявила б це ще до випуску 4.2.
-
Напишіть самі
Перейменування змінних приховало б копію, а не прибрало її. Виправлення — функція, яку Аліса пише сама, виходячи із завдання, а не з коду Crumbfold.
Охоплення стандартів безпеки
OWASP Top 10
- A03:2025 Software Supply Chain Failures
CWE
- CWE-1395 Dependency on Vulnerable Third-Party Component
CIS Controls
- CIS 16 Application Software Security
- CIS 2 Inventory and Control of Software Assets
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security
- ID.AM Asset Management