Все заметки
ИИ-код может компилироваться, проходить базовые тесты, выглядеть чистым при быстром ревью - и при этом быть небезопасным. Именно это и делает его опасным. ИИ не понимает контекст твоего проекта - какие данные пойдут через этот код, какие требования к безопасности, как это встроится в архитектуру. Он решает задачу как она сформулирована, а не как она должна быть решена.
Я не доверяю ИИ сложные задачи. Простые компоненты, типовые функции, шаблонный код - пожалуйста. Архитектуру, бизнес-логику, всё что касается безопасности - пишу сам.
Когда принимаю сгенерированный код - смотрю не на строчки а на логику и архитектуру. Правильно ли разделена ответственность? Туда ли идут данные? Нет ли лишнего там где не должно быть?
— Не давай ИИ писать код который работает с авторизацией и чувствительными данными пользователей
— Всегда проверяй входные данные - ИИ часто забывает валидацию
— Не копируй код не понимая что он делает - это и есть главная уязвимость
— Используй линтеры и статический анализ - они поймают то что глаз пропустит
ИИ это инструмент который ускоряет работу - но не снимает ответственность за то что ты деплоишь. 45% - это не приговор. Это напоминание что код нужно проверять. Всегда. 🔐
45% ИИ-кода содержит уязвимости — что с этим делать
Звучит страшно. Но это реальная цифра с конкретным источником - Veracode протестировала более 100 языковых моделей на Java, Python, C# и JavaScript и выяснила что 45% сгенерированного кода проваливает тесты безопасности и вносит уязвимости из OWASP Top 10.
CodeRabbit показал что ИИ-код содержит в 2.74 раза больше уязвимостей чем код написанный человеком. Исследования Fortune 50 компаний зафиксировали что разработчики с ИИ-ассистентами делают коммиты в 3-4 раза быстрее - но вносят проблемы безопасности в 10 раз чаще.
Скорость выросла. Безопасность - нет.
Почему ИИ делает такие ошибки
ИИ-код может компилироваться, проходить базовые тесты, выглядеть чистым при быстром ревью - и при этом быть небезопасным. Именно это и делает его опасным. ИИ не понимает контекст твоего проекта - какие данные пойдут через этот код, какие требования к безопасности, как это встроится в архитектуру. Он решает задачу как она сформулирована, а не как она должна быть решена.
Что делаю я
Я не доверяю ИИ сложные задачи. Простые компоненты, типовые функции, шаблонный код - пожалуйста. Архитектуру, бизнес-логику, всё что касается безопасности - пишу сам.
Когда принимаю сгенерированный код - смотрю не на строчки а на логику и архитектуру. Правильно ли разделена ответственность? Туда ли идут данные? Нет ли лишнего там где не должно быть?
Простые правила
— Не давай ИИ писать код который работает с авторизацией и чувствительными данными пользователей
— Всегда проверяй входные данные - ИИ часто забывает валидацию
— Не копируй код не понимая что он делает - это и есть главная уязвимость
— Используй линтеры и статический анализ - они поймают то что глаз пропустит
ИИ это инструмент который ускоряет работу - но не снимает ответственность за то что ты деплоишь. 45% - это не приговор. Это напоминание что код нужно проверять. Всегда. 🔐

Комментарии