Инструмент искусственного интеллекта GitHub автоматически исправит уязвимости кода
Новая функция GitHub объединяет в режиме реального времени возможности Copilot с механизмом семантического анализа кода CodeQL. Компания впервые анонсировала эту функцию в ноябре прошлого года.
GitHub обещает, что новая система сможет устранить более двух третей обнаруженных ею уязвимостей, при этом разработчикам зачастую не понадобится самостоятельно редактировать какой-либо код. Компания также обещает, что автоматическое исправление при сканировании кода будет охватывать более 90% типов оповещений на поддерживаемых ею языках, которыми в настоящее время являются JavaScript, Typescript, Java и Python. Эта новая функция теперь доступна для всех клиентов GitHub Advanced Security (GHAS).
«Точно так же, как GitHub Copilot избавляет разработчиков от утомительных и повторяющихся задач, автоисправление при сканировании кода поможет командам разработчиков сэкономить время, которое ранее было бы потрачено на исправление ошибок», - пишет GitHub в анонсе. «Команды безопасности также выиграют от уменьшения количества повседневных уязвимостей, так как они смогут сосредоточиться на стратегиях защиты бизнеса».
В фоновом режиме новая функция использует движок CodeQL (механизм семантического анализа GitHub) для поиска уязвимостей в коде еще до его выполнения. Компания сделала первое поколение CodeQL доступным широкой публике в конце 2019 года после того, как приобрела стартап по анализу кода Semmle, где и был создан CodeQL. За прошедшие годы в Code QL был внесен ряд улучшений, но одно никогда не менялось: CodeQL был доступен бесплатно только исследователям и разработчикам с открытым исходным кодом.
Теперь CodeQL находится в центре нового инструмента. Чтобы предлагать свои исправления он использует «комбинацию эвристики и API-интерфейсов GitHub Copilot». Для генерации исправлений и пояснений к ним GitHub использует большую языковую модель искусственного интеллекта GPT-4 от OpenAI.
«Несмотря на то, что подавляющее большинство предложений по автоисправлению будут правильными, однако небольшой процент предлагаемых исправлений будет отражать существенное непонимание кодовой базы или уязвимости», - отмечает GitHub в своем сообщении.