Как стать автором
Обновить

Бьёрн Страуструп ответил АНБ США по поводу рекомендации ведомства отказаться от использования языков C и C++

Время на прочтение3 мин
Количество просмотров63K


Изобретатель языка программирования C++ Бьёрн Страуструп ответил Агентству национальной безопасности (АНБ) США по поводу рекомендации ведомства отказаться от использования языков C и C++, перекладывающих управление памятью на разработчика, в пользу современных языков программирования (C#, Go, Java, Ruby, Rust и Swift), которые обеспечивают автоматическое управление памятью или выполняющие проверки безопасной работы с памятью во время компиляции кода.

Страуструп призвал АНБ со своей стороны сначала серьёзно подумать о «безопасности» новых языков и только потом предлагать что-нибудь разумное по этому поводу.

Учёный и разработчик считает, что упомянутые в отчёте АНБ «безопасные» языки программирования на самом деле не превосходят C++ в важных с его точки зрения применениях. В частности, развиваемые последние годы базовые рекомендации по использованию C++ (C++ Core Guidelines) охватывают методы безопасного программирования и предписывают разработчикам применение средств, гарантирующих безопасную работу с типами и ресурсами. При этом разработчикам, которым не требуются подобные строгие гарантии безопасности, оставляется возможность использовать старые методы разработки для своих проектов.

Страуструп пояснил, что хороший статический анализатор, соответствующий рекомендациям C++ Core Guidelines, может обеспечить необходимые гарантии безопасности C++ кода, требуя значительно меньше затрат, чем переход на новые безопасные языки программирования. Например, большинство рекомендаций Core Guidelines реализованы в статическом анализаторе и профиле безопасной работы с памятью из состава Microsoft Visual Studio. Часть рекомендаций безопасности также учтены в статическом анализаторе Clang tidy.

Страуструп раскритиковал акцентирование в отчёте АНБ только на проблемах работы с памятью, оставляя без внимания многие другие проблемы языков программирования, влияющие на безопасность и надёжность проектов.

В рамках видения Страуструпа, нужно рассматривать безопасность как более широкое понятие, различные грани которого могут быть достигнуты комбинацией стиля написания кода, использования проверенных библиотек и статических анализаторов.

Страуструп также предлагает использовать аннотации в коде и опции компиляторов для управления включением правил, обеспечивающих безопасность работы с типами и ресурсами. По его мнению, не все ставят безопасность превыше всего. Например, в приложениях, в которых производительность важнее безопасности, подобный подход даёт возможность выборочного применения средств, гарантирующих безопасность только там, где это необходимо. Инструменты повышения безопасности также можно применять частично, например, вначале ограничиться правилами проверки диапазонов и инициализации, а затем постепенно адаптировать код для более строгих требований.

Страуструп заверил, что в сообществе C++ не игнорируются вопросы безопасности, так как это нанесло бы значительный ущерб многим проектам. А сосредоточившись исключительно на безопасности трудно сделать что-то удобное и рабочее, которое приживётся в проектах сразу.

В конце своего ответа Страуструп предложил АНБ проводить в будущем консультации по безопасности языков программирования не с гипотетическим «всеобъемлющим сообществом разработчиков ПО», а с профильными экспертами и специалистами комитета ISO по стандартам C++.

В ноябре 2022 года АНБ выпустило отчёт, в котором указало на то, что широко используемые языки программирования C и C++ дают хакерам больше возможностей для использования эксплойтов. В связи с этим АНБ рекомендует организациям переходить на безопасные языки программирования, такие как C#, Go, Java, Ruby, Rust и Swift. По мнению экспертов, это поможет предотвратить возникновение определённых типов уязвимостей, связанных с памятью. 
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+68
Комментарии349

Другие новости

Истории

Работа

Ближайшие события