Как сообщает The New Stack, Canonical финансирует команду Бристольского университета, которая изучает автоматический перевод унаследованного C-кода на безопасный и поддерживаемый Rust без изменения поведения программ. Для испытаний выбрали AppArmor и snap-confine. Оба проекта выполняют критически важные для безопасности задачи, но Canonical пока не готова переписывать их на Rust. Сначала компания хочет понять, какие доказательства убедят сопровождающих код специалистов в надежности автоматического перевода.
Система будет генерировать Rust-код с помощью языковых моделей, а затем сравнивать его с исходной реализацией. Исследователи планируют объединить фаззинг и формальный анализ программ, чтобы выявлять расхождения, незаметные для обычных тестов. Если обнаружится несовпадение, система должна применить символическое исправление, диагностировать конкретный сбой и внести правки в код.
Еще одна задача состоит в том, чтобы ограничить использование unsafe. Такие блоки упрощают перенос сложных конструкций C, но могут сохранить риски для безопасности памяти. Команде также предстоит проверить, работает ли этот подход на уровне целых репозиториев с сотнями тысяч строк C-кода. Кроме того, исследователи выяснят, сохраняется ли поведение исходной реализации, даже если полученный Rust-код успешно компилируется.
Ключевые факты
Canonical финансирует исследовательскую команду Бристольского университета.
Для сравнения реализаций исследователи планируют совместить фаззинг с формальным анализом программ.
При обнаружении расхождения система должна диагностировать сбой и исправлять код с помощью символического исправления.
Подход намерены проверить на репозиториях с сотнями тысяч строк C-кода.
Вопросы и ответы
- Как будут проверять, что перевод не изменил поведение программы?
Сгенерированный языковой моделью Rust-код сравнят с C-реализацией, совместив фаззинг с формальным анализом. При расхождении система должна диагностировать конкретный сбой и исправить код с помощью символического исправления.
- Какой критерий определит, можно ли доверять такому переносу?
Исследователи должны подтвердить сохранение поведения исходной реализации, а не только успешную компиляцию Rust-кода. Отдельно они проверят, удается ли ограничить блоки unsafe, которые могут сохранить риски безопасности памяти из C.
- На какой масштаб рассчитан эксперимент?
Подход намерены проверить на целых репозиториях с сотнями тысяч строк C-кода, а не только на отдельных функциях или небольших модулях.
Контекст по теме
- Veracode: ИИ проходит лишь 56% проверок безопасности при генерации кода29 июля 2026 г.
- InfoWorld: разработчикам с AI всё ещё нужны инструменты для проверки кода, тестирования и инфраструктуры30 июня 2026 г.
- В arXiv предложили архитектурный уровень контроля для AI‑агентов, Unfireable Safety Kernel25 июня 2026 г.
- Анализ 112 000 коммитов: исследование о качестве кода, написанного ИИ19 июня 2026 г.