В последние годы искусственный интеллект совершил настоящий прорыв, а языковые модели вроде GPT, Llama и Claude стали привычными помощниками программистов. Они обещают быстро и легко создавать рабочий код, но в гонке за продуктивностью многие забывают о критически важном факторе — безопасности. Новый отчёт компании Veracode показывает, что ситуация куда серьёзнее, чем можно было ожидать.
🧪 Эксперимент: 100 нейросетей и тысячи строк небезопасного кода
Компания Veracode протестировала более ста крупных языковых моделей (LLM), попросив их написать код на популярных языках программирования: Java, Python, JavaScript и C#. Результаты оказались пугающими:
- 🔴 45% всего сгенерированного кода содержало критические уязвимости из списка OWASP Top 10.
- ☕️ Наиболее рискованным языком оказался Java, где 72% кода имело серьёзные проблемы с безопасностью.
- 🐍 В Python проблемы были в 38% случаев, в JavaScript — 43%, а в C# — 45%.
Особенно тревожит то, что самая распространённая и простая для предотвращения атака — Cross-Site Scripting (XSS) (тип CWE-80), была допущена в 86% случаев!
🧠 Более «умные» модели — не значит более безопасные
Казалось бы, новейшие и самые мощные модели должны лучше осознавать риски и генерировать безопасный код. Но исследование опровергает это ожидание. Несмотря на то, что новые версии моделей становятся гораздо точнее в написании функционального и синтаксически верного кода, качество их безопасности практически не растёт. Это связано с тем, что ИИ обучается на огромном количестве данных из открытых источников, где безопасный код далеко не всегда является стандартом.
💣 Почему это уже касается вас?
Кто-то может подумать: «Я не пользуюсь нейросетями, значит, мне нечего бояться». К сожалению, это не так. Сегодня код, написанный нейросетями, может оказаться в ваших проектах даже без вашего ведома:
- 📦 через open-source библиотеки,
- 👥 от подрядчиков и фрилансеров, активно использующих нейросети,
- 🛠️ через low-code и no-code платформы, которые упрощают создание приложений, но часто прячут под капотом небезопасные алгоритмы, сгенерированные ИИ.
Таким образом, код, созданный нейросетями, уже «сидит» в инфраструктуре вашего проекта, ожидая подходящего момента, чтобы стать причиной серьёзной утечки данных или финансовых потерь.
🛡️ Что делать разработчикам и компаниям?
Понимая риски, важно действовать проактивно. Вот рекомендации, которые помогут снизить вероятность катастрофических последствий использования нейросетей в кодировании:
- ✅ Использовать инструменты статического анализа кода (SAST и SCA), чтобы быстро находить и исправлять уязвимости.
- ✅ Регулярно обновлять базы знаний о безопасности среди разработчиков, объясняя им типичные ошибки нейросетей.
- ✅ Внедрить обязательные проверки безопасности всех решений, даже если код кажется безупречным и рабочим.
- ✅ Ограничивать использование нейросетей для критически важных систем, где ошибка может привести к непоправимым последствиям.
🧑💻 Личное мнение: ИИ — не волшебная таблетка
Как разработчик, я и сам активно использую языковые модели для ускорения работы. Однако опыт показывает, что даже идеальный с первого взгляда код от ИИ нуждается в обязательной проверке и ручной доработке. Слепо доверять нейросетям не стоит — они отлично решают простые и повторяющиеся задачи, но часто не учитывают тонкости реальной эксплуатации программных продуктов, особенно в контексте безопасности.
ИИ — это мощный инструмент, который значительно облегчает жизнь разработчиков, но при одном условии: его нужно воспринимать как помощника, а не замену квалифицированным специалистам по безопасности.
🔑 Заключение: доверяй, но проверяй
Нейросети радикально изменили подход к разработке ПО, однако отчёт Veracode ясно показывает, что сейчас на повестке дня — интеграция ИИ в процессы разработки с обязательными механизмами контроля безопасности. Только так можно будет эффективно использовать потенциал искусственного интеллекта без ущерба для бизнеса и пользователей.
🔗 Полезные ссылки: