Современные искусственные интеллекты демонстрируют невероятные успехи в обнаружении ошибок в программном обеспечении, включая код, написанный десятилетия назад. Однако, вместе с этими открытиями, AI-системы также могут создавать новые ошибки и представлять угрозы безопасности.
Историческое наследие и современные вызовы
Недавний эксперимент, проведённый техническим директором Microsoft Azure, Марком Руссиновичем, продемонстрировал возможности AI в анализе старого кода. Используя модель Claude Opus 4.6 от Anthropic, он проанализировал ассемблерный код для процессора Apple II 6502, написанный им в 1986 году. AI не только объяснил код, но и выявил ошибки, которые оставались незамеченными десятилетиями.
Этот случай подчеркивает, что AI может обнаруживать ошибки в коде, которые стали привычными для разработчиков и традиционных инструментов. Но важно понимать, что использование AI открывает новые пути для злоумышленников, которые могут использовать эти же возможности для поиска уязвимостей в старых системах.
Потенциальные угрозы безопасности
Эксперты отмечают, что AI может стать инструментом в руках хакеров, которые смогут находить и эксплуатировать уязвимости в коде, который уже не поддерживается. Как сказал Мэтью Трифиро, AI расширяет поверхность атаки, делая уязвимыми даже старые скомпилированные бинарные файлы.
Это особенно актуально для миллиардов устаревших микроконтроллеров по всему миру, работающих на устаревшем или плохо проверенном программном обеспечении. Злоумышленники могут использовать AI для автоматического поиска уязвимостей и их эксплуатации, что делает многие такие системы фактически необновляемыми.
Синергия AI и традиционных инструментов
Современные большие языковые модели (LLM) могут дополнять традиционные инструменты статического анализа, такие как SpotBugs, CodeQL и Snyk Code. Эти инструменты ищут паттерны уязвимостей в коде, а AI подходами, основанными на понимании общей логики программ, могут выявлять новые уязвимости.
Например, в недавнем исследовании 2025 года, LLM, такие как GPT-4.1 и Mistral Large, продемонстрировали эффективность на уровне лучших инструментов статического анализа в выявлении ошибок в открытых проектах.
Практическое применение и ограничения
Несмотря на успехи, AI не может полностью заменить разработчиков и специалистов по безопасности. Исследования показывают, что AI-инструменты генерируют больше ошибок, чем люди, включая критические проблемы. AI часто ошибается в обработке паролей и ссылках на объекты, создавая больше проблем, чем решает.
Заключение: AI как помощник, но не замена
AI, безусловно, является мощным помощником в работе с кодом, но он ещё не готов стать главным инструктором или проверяющим специалистом. Используйте AI в сочетании с традиционными инструментами и ваш код станет более безопасным. Однако, старый код остаётся проблемой, и его уязвимости могут вынудить замену устаревших устройств из-за угроз безопасности.