Крупнейшая платформа для IT-разработчиков GitHub запустила бета-версию ИИ-функции, которая автоматически сканирует код для поиска и устранения в нём уязвимостей прямо в процессе его написания. Новая опция работает на основе GitHub Copilot – ИИ-инструмента для помощи в автодополнении кода, и CodeQL – механизма для семантического анализа кода.
В анонсе новинки GitHub указывает, что функция может автоматически исправлять более 2/3 обнаруженных ею уязвимостей, избавляя разработчиков от необходимости редактировать код вручную и снижая таким образом затраченное на работу время. Также компания обещает, что функция будет автоматически реагировать на более чем 90% типов оповещений об ошибках в кодах на поддерживаемых ею языках, к коим на данный момент относятся JavaScript, Typescript, Java и Python. В ближайшем будущем инструмент начнет работать также с языками C# и Go.
При обнаружении уязвимости инструмент сгенерирует объяснение предложенного исправления на естественном языке, а также даст возможность предварительного просмотра исправления, которое разработчик может принять, отредактировать или отклонить. Помимо изменений в текущем файле, предложение может включать в себя исправления в других файлах и зависимостях данных, которые относятся к проекту.
В основе новой функции лежит CodeQL – механизм семантического анализа кода, который осуществляет поиск уязвимостей в исходном коде. Изначально инструмент был разработан IT-стартапом Semmle. В 2019 GitHub приобрел стартап и начал развивать CodeQL для своей платформы.
В анонсе также отмечается, что для работы ИИ-функции используется «комбинация эвристики и API-интерфейсов GitHub Copilot». Генерация самих исправлений и текстовых пояснений к ним выполняется с помощью GPT-4 от OpenAI.
Несмотря на то, что сервис обещает высокую точность и правильность подавляющего числа автоисправлений, он допускает возможность небольшого процента ошибочных исправлений из-за неверного понимания кодовой базы системой.
Бета-версия функции сейчас доступна для всех клиентов Advanced Security (GHAS) – набора средств, обеспечивающего корпоративным клиентам доступ к дополнительным функциям. Компания сообщила, что инструмент будет корректироваться и улучшаться на основе отзывов и замечаний бета-тестеров.