Следите за новостями по этой теме!
Подписаться на «Рифы и пачки / Твоя культура»
Почти половина программного кода, сгенерированного искусственным интеллектом (ИИ), содержит уязвимости в безопасности, даже если выглядит вполне профессионально. К такому выводу пришли аналитики компании Veracode, изучившие более 100 крупных языковых моделей (LLM — large language models) и 80 различных заданий по программированию.
Ожидалось, что более новые и мощные модели машинного обучения станут писать не только аккуратный, но и безопасный код. Однако реальность оказалась огорчительно иной: ни одна из современных моделей не смогла снизить процент небезопасного кода. Это сигнал тревоги для компаний, которые всерьёз полагаются на ИИ для поддержки человеческих разработчиков — а иногда и для их полной замены.
Особенно плачевно дела обстоят в мире Java: 70% сгенерированных ИИ решений провалили тест на безопасность. Python, C# и JavaScript также не отстали в негативном смысле — там уровень брака составил от 38% до 45%.
Примечательно, что сейчас до трети нового кода в Google и Microsoft создаётся именно генеративным ИИ. Но надёжность такого программирования под большим вопросом. Как отмечает технический директор Veracode Йенс Весслинг, разработчики начинают полагаться на ИИ, не спускаясь в детали требований к безопасности («vibe coding» — кодирование по настроению). Это становится новым стандартом разработки, где забота о безопасности уступает место скорости и удобству.
Эксперты из Veracode вычислили: крупные языковые модели выбирают заведомо небезопасные решения в 45% случаев. Особенно плохо машины умеют защищаться от так называемых cross-site scripting-атак (примерно в 86% случаев допускается уязвимость) и атак с внедрением вредоносных данных в логи (88%).
Весслинг замечает: ИИ-модели учатся писать более грамотный код, но с безопасностью у них стабильно худо. С другой стороны, ИИ позволяет не только разрабатывать продукты быстрее — он ещё и ускоряет взлом через эксплойты, делая масштабы угрозы беспрецедентными.
Эксперты считают, что сейчас единственный способ сократить риски — внедрять автоматические проверки безопасности в цепочку создания кода с помощью ИИ и учить разработчиков выявлять уязвимости. Рекомендуется использовать специализированные «фаерволы», программы для обнаружения багов и применять тематические практики по улучшению безопасности.
«ИИ-ассистенты и автоматизированные процессы — будущее софтверной отрасли. Но если относиться к безопасности как к досадной мелочи, все промахи быстро накапливаются и приводят к масштабным проблемам», — резюмирует Весслинг.
ИИ снова решил подыграть драме: теперь, когда код для Google и Microsoft наполовину пишется роботами, половина этого кода дырявая. Что примечательно, даже свежайшие и мощнейшие языковые модели крупно провалились в тестах — безопасность не улучшается, зато фасад кода всё красивее. Производительность растёт, а вместе с ней и шансы заработать хрестоматийную XSS-атаку (в 86 случаях из 100) или получить инъекцию в логи (88 из 100). Java просто плачет кровавыми слезами: семь из десяти программ — открытая дверь для хакеров.
Такой результат не то чтобы сюрприз, скорее следствие модного нынче "vibe coding". Ведь зачем тратить лишние минуты на скучную безопасность, если ИИ за тебя сам и быстрее? Платой становится эпоха масштабных багов и ускоренных взломов — приятно, когда багмасса растёт экспоненциально благодаря коллективному безразличию.
Инструкции всё те же: фаерволы, автоматизированные проверки, обучение разработчиков. Смешно, но теперь защита от ИИ-багов — часть новой грамотности. Наивность заказчиков — отличное топливо для катастроф, но кто их остановит, если баги такие красивые?