Дослідники проаналізували GitHub Copilot з погляду безпеки й дійшли висновку, що в 40% такого коду або є помилки, або він потенційно вразливий до атак.
Нагадаємо, GitHub Copilot — це розумний помічник, який аналізує код і підказує розробникам, що писати далі. Microsoft представила його у червні цього року і попередила, що код не завжди буде ідеальним, але чим більше користуватись інструментом, тим ліпше він працюватиме.
Copilot використовує модель штучного інтелекту OpenAI Codex і тренувався на мільйонах рядків коду з GitHub (тож міг успадкувати схильність до помилок і звідти). Автори інструменту зауважували, що Copilot працює не просто як автозаповнювач, який повторює раніше побачений код: він може аналізувати написане та генерувати код з конкретними функціями, що відповідають контексту.
Зараз дослідники з Нью-Йоркського університету створили 89 сценаріїв, для яких Copilot мав згенерувати код. В такий спосіб було створено 1692 програми. Виявилось, що близько 40% з них містили помилки або потенційні вразливості.
Подекуди Copilot створював C-код, який використовував пойнтери з malloc()
і не перевіряв, чи вони не NULL. Ще був код, який передав ненадійні дані користувача безпосередньо в командний рядок; код, який показував більше за чотири останні цифри номера соцстрахування тощо.
Зараз Copilot працює у закритій бета-версії як розширення до Visual Studio Code. Поки що інструмент безплатний, але його планують монетизувати, коли вийде реліз.
Ще немає коментарів