Содержание
Вместо этого компания сделала ставку на SPARK
NVIDIA совместно с AdaCore опубликовала кейс, который показывает: компания активно внедряет формально верифицированный код на языке SPARK вместо традиционного C в критически важных модулях.
Причина — невозможность гарантировать безопасность через тестирование.
Тестировать безопасность невозможно. Нельзя понять, когда ты действительно закончилДэниел Рорервице-президент NVIDIA по безопасности ПО
Почему C больше не устраивает
На фоне усиления киберугроз, в NVIDIA начали пересматривать подходы к разработке и верификации ПО.
Тестирование, считают в компании, не может гарантировать безопасность — оно дает понимание качества функциональности, но не защищенности. Поэтому ставка была сделана на доказуемость поведения кода — через формальную верификацию.
Что такое SPARK и как его внедрили
SPARK — это строго типизированный, безопасный для памяти подмножество языка Ada, предназначенный для написания кода, который можно формально верифицировать. Такие программы можно математически доказать на предмет корректности, отсутствия ошибок и уязвимостей — задолго до запуска.
Почему GenAI не поможет IT-бизнесу без базы знанийtproger.ru
Еще в 2018 году NVIDIA провела proof-of-concept: две низкоуровневые, чувствительные к безопасности C-программы были переписаны на SPARK за три месяца. Итоги оказались настолько успешными, что спустя несколько лет:
- в SPARK пишутся целые модули коммерческих продуктов NVIDIA;
- обучено более 50 разработчиков;
- верификация значительно упростила процессы аудита и укрепила доверие клиентов.
«Мы не просто запустили инструмент поиска багов — мы формально верифицировали этот код. Это сильно повышает доверие со стороны клиентов», — отмечается в кейсе.
Возражения скептиков развеялись
Переход с C на SPARK изначально вызывал сомнения внутри компании. Однако практический опыт показал:
- производительность не упала: «разницы с C не заметили», — признались разработчики;
- формальная верификация сократила затраты на аудиты;
- некоторые изначальные критики стали активными сторонниками подхода.
Что дальше
Хотя SPARK пока используется точечно, его уже применяют в чувствительных к безопасности частях — там, где традиционные языки и методы верификации не дают нужного уровня уверенности. NVIDIA делает ставку на переход от тестов к доказательствам.
Стоил ли переход того?По-моему, ерунда. Усложнение того, что усложнять не надоОтличный подход. Могут себе позволить