Да, Copilot от GitHub может сливать реальные секреты

Да, Copilot от GitHub может сливать реальные секреты


84
19 поделились, 84 баллы

В последние годы внимание специалистов и общественности сосредоточилось на этических и приватных рисках, связанных с продвинутыми языковыми моделями и инструментами наподобие ChatGPT. Помимо общих моделей, отдельные опасения вызывают специализированные ассистенты для разработки, такие как автодополнение кода.

По данным GitHub, спустя год после запуска инструмент Copilot использовали около миллиона разработчиков и более 20 000 организаций; с его помощью было сгенерировано свыше трёх миллиардов строк кода. Между 2023 и 2024 годами число репозиториев с активированным Copilot выросло на 27%, что указывает на широкое и быстрое распространение таких помощников.

Наряду с распространением возникли и вопросы безопасности: эксперты отмечали юридические риски, проблемы с авторскими правами, угрозы приватности и случаи предложений небезопасного кода, включая рекомендации помещать секреты прямо в код. Поэтому проводится активное исследование потенциальных уязвимостей этих инструментов.

Одно из таких исследований, выполненное коллективом из Гонконгского университета, начало с гипотезы о том, что кодовые ассистенты, обученные на данных из публичных репозиториев, могут воспроизводить утёкшие секреты. Для проверки исследователи создали автоматизированный механизм составления подсказок, названный Hard-coded Credential Revealer (HCR).

Методика заключалась в поиске на GitHub файлов с жёстко заданными секретами с помощью регулярных выражений, затем в скрытии оригинального секрета и многократных запросах модели на генерацию заменяющих строк. Целью было максимизировать шанс получить из модели ту же или похожую строку, представляющую собой действительный секрет.

В работе использовалось 18 шаблонов для поиска различных типов секретов, распространённых среди разработчиков, включая ключи облачных сервисов и OAuth-токены. Предложенные моделью строки затем прогонялись через несколько фильтров, чтобы снизить число ложных срабатываний.

Строки отбраковывались, если они не соответствовали регулярному шаблону, имели недостаточную энтропию или слишком шаблонную структуру, либо содержали очевидные общие слова. Только строки, прошедшие все проверки, считались «валидными» — то есть имеющими свойства реального секрета.

Результаты показали значительную частоту таких совпадений. Из 8 127 предложений Copilot исследователи выделили 2 702 валидных секрета, что соответствует доле 33,2%. В среднем по набору подсказок это даёт около 3,0 валидных секрета на одну исходную подсказку.

У Amazon CodeWhisperer из 736 предложенных фрагментов было 129 валидных секретов, доля составила 17,5%. Авторы исследования подчёркивают, что «валидный» не обязательно означает подтверждённо действующий, но указывает на высокую вероятность совпадения с реальными секретами по синтаксическим и статистическим признакам.

Исследователи смогли сопоставить по крайней мере 200 из собранных валидных секретов с опубликованными данными в репозиториях GitHub, что подтверждает реальную возможность извлечения ранее опубликованных секретов из моделей. При этом в выборке примерно из 20 000 репозиториев с активным Copilot более 1 200 репозиториев содержали как минимум один утёкший секрет, то есть 6,4% против 4,6% по всем публичным репозиториям — на 40% выше.

Выводы исследования подчёркивают серьёзный риск приватности: кодовые ассистенты могут не только воспроизводить секреты, присутствовавшие в обучающих данных, но и предлагать другие строки, встречавшиеся в корпусе. Это создаёт угрозу того, что удалённые или исправленные секреты всё ещё могут быть восстановлены через подходящие подсказки.

Аналогичные выводы содержатся в другом исследовании, проанализировавшем фрагменты кода, сгенерированные Copilot: примерно 35,8% таких фрагментов содержали уязвимости по результатам автоматического анализа, а проблема жёстко заданных учётных данных классифицировалась как один из идентифицируемых недостатков.

Для снижения рисков авторы предлагают комплекс мер как для разработчиков, так и для инженеров-машинного обучения. Разработчикам рекомендуют использовать централизованные менеджеры учётных данных и сканеры кода, чтобы исключать жёстко встроенные секреты в репозитории.

На этапах разработки моделей возможны разные подходы: на стадии подготовки данных — очищать тренировочный корпус от секретов; при обучении и дообучении — применять алгоритмические защиты, такие как дифференциальная приватность; на этапе вывода — фильтровать и постобрабатывать ответы модели, чтобы удалять возможные секреты.

В заключение исследование демонстрирует, что инструменты автодополнения кода несут реальный риск разглашения жёстко заданных секретов и других чувствительных данных. Для эффективного снижения этой угрозы требуются согласованные действия разработчиков, инженеров по обучению моделей и поставщиков инструментов.


Понравилось? Поделитесь с друзьями!

84
19 поделились, 84 баллы

Какова ваша реакция?

Чего? Чего?
3
Чего?
Плачу Плачу
10
Плачу
Прикол Прикол
9
Прикол
Ого Ого
8
Ого
Злой Злой
7
Злой
Ржака Ржака
6
Ржака
Ух, ты! Ух, ты!
5
Ух, ты!
Ужас Ужас
3
Ужас
Супер Супер
10
Супер
Admin

Добро пожаловать на сайт Паутина AI. Здесь я публикую свежие новости, подробные обзоры и аналитику ведущих AI-сервисов. Оставайтесь c нами что бы быть в курсе событий в мире AI.

Комментариев

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Выберите формат
Пост
Форматированный текст с вставками и визуальными элементами
Опрос
Голосование для принятия решений или определения мнений
Изображение
Фото или GIF
Видео
Вставки с YouTube, Vimeo или Vine
Аудио
Вставки с SoundCloud или Mixcloud
Мем
Загружайте свои изображения для создания собственных мемов
Send this to a friend