С каждым годом искусственный интеллект все активнее внедряется в процесс разработки программного обеспечения. По последним данным, около 40% нового кода, написанного в прошлом году, было создано с помощью AI. Прогнозы Microsoft предполагают, что через пять лет этот показатель может достичь 95%. Однако с ростом использования AI возникают и новые проблемы, в частности, связанные с безопасностью кода.
Недавнее исследование выявило, что AI-генерируемый код часто содержит "галлюцинации" — несуществующие библиотеки, которые могут быть использованы злоумышленниками для атак. В ходе эксперимента 16 популярных языковых моделей (LLM) были протестированы на предмет создания 576 000 образцов кода на Python и JavaScript. Результаты показали, что некоторые модели, такие как CodeLlama 7B, генерировали более 25% несуществующих зависимостей.
Эти "фантомные" библиотеки могут стать основой для новых атак на открытые репозитории, что получило название "slopsquatting". Злоумышленники могут использовать повторяющиеся названия библиотек, сгенерированные AI, для создания вредоносных пакетов. Если разработчики бездумно устанавливают все зависимости, указанные в AI-сгенерированном коде, это может привести к внедрению вредоносного кода в приложения.
Чтобы минимизировать риски, связанные с "slopsquatting", разработчикам рекомендуется внедрить несколько простых мер. Во-первых, необходимо интегрировать сканирование исходного кода и статическое тестирование безопасности в процесс разработки. Все кодовые образцы, включая AI-сгенерированные, должны соответствовать строгим критериям безопасности. Во-вторых, стоит ввести дополнительные циклы валидации AI, чтобы модели могли проверять свой код на наличие ошибок.
Также важно ограничить использование AI-ассистентов для критически важных компонентов и обучить разработчиков основам безопасности при использовании AI в кодировании. Эти меры помогут снизить вероятность возникновения уязвимостей и защитить проекты от потенциальных атак.