![github.jpg](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgha6J17PBjMlZmCOcg1I-lTr7rM8MurscrQk2Twx22VRJntGNMvOVKULSGL7ZpR3BsGq2zEqX7wUpY9ts08-AooVmzdAdsDFxuObWx3wnlsKmKeEvMB_i0mar3yZzaMisqkTl0udAopzdcud62CF6sdzbmM5-dkzjUUkJxT-z-QSe5P9HwKFux1sWWdODo/s728-rw-e365/github.jpg)
В среду GitHub объявил, что делает доступной функцию автоматической фиксации при сканировании кода в публичной бета-версии для всех клиентов с продвинутой системой безопасности, которая предоставляет целевые рекомендации во избежание возникновения новых проблем безопасности.
"Работающий на GitHub Copilot и CodeQL, code scanning autofix охватывает более 90% типов предупреждений в JavaScript, Typescript, Java и Python и предоставляет рекомендации по коду, которые устраняют более двух третей обнаруженных уязвимостей практически без редактирования", - сказали Пьер Темпель и Эрик Тули из GitHub.
Эта возможность, впервые представленная в ноябре 2023 года, использует комбинацию CodeQL, API второго пилота и OpenAI GPT-4 для генерации предложений по коду. Дочерняя компания Microsoft также заявила, что планирует добавить поддержку большего количества языков программирования, включая C # и Go, в будущем.
Функция автоматической фиксации при сканировании кода предназначена для того, чтобы помочь разработчикам устранять уязвимости по мере написания кода, генерируя потенциальные исправления, а также предоставляя объяснение на естественном языке при обнаружении проблемы на поддерживаемом языке.
Эти предложения могут выходить за рамки текущего файла и включать изменения в несколько других файлов и зависимости, которые следует добавить для устранения проблемы.
"Автоматическая фиксация при сканировании кода снижает барьер доступа для разработчиков, объединяя информацию о лучших практиках с подробностями кодовой базы и оповещением, чтобы предложить разработчику потенциальное исправление", - сказали в компании.
"Вместо того, чтобы начинать с поиска информации об уязвимости, разработчик начинает с предложения кода, демонстрирующего потенциальное решение для их кодовой базы".
Тем не менее, разработчику остается оценить рекомендации и определить, правильное ли это решение, а также убедиться, что оно не отклоняется от предполагаемого поведения.
GitHub также подчеркнул текущие ограничения предложений по коду автоматической фиксации, в связи с чем крайне важно, чтобы разработчики тщательно изучали изменения и зависимости, прежде чем принимать их -
- Предлагайте исправления, которые не являются синтаксически корректными изменениями кода
- Предлагайте исправления, которые являются синтаксически правильным кодом, но предлагаются в неправильном месте
- Предлагайте исправления, которые синтаксически корректны, но изменяют семантику программы
- Предлагать исправления, которые не устраняют основную причину или создают новые уязвимости
- Предлагайте исправления, которые лишь частично устраняют лежащий в основе недостаток
- Предлагать неподдерживаемые или небезопасные зависимости
- Предлагать произвольные зависимости, приводящие к возможным атакам по цепочке поставок