Опубликован документ Safe C++ для продвижения внедрения безопасного кода на C++ вместо перевода проектов на Rust
11 сентября 2024 года разработчик Шон Бакстер (Sean Baxter) представил драфт основного документа проекта Safe C++ для продвижения внедрения безопасного кода на C++, включая запрет на использование небезопасных методов работы с памятью, вместо перевода проектов на Rust.
«Специалисты по безопасности призывают проекты отказаться от C++ и перейти на безопасные для памяти языки, например Rust. Но масштаб проблемы устрашает. C++ поддерживает программное обеспечение, которое принесло триллионы долларов прибыли. Существует много опытных программистов на C++ и много кода на C++. Учитывая, насколько широко распространён C++, отрасль должна что-то реально сделать для улучшения качества программного обеспечения и снижения уязвимостей. В этом проекте предлагаются варианты внедрения нового безопасного для памяти кода в существующие проекты и улучшения новых проектов. Чужеродность Rust для профессиональных разработчиков C++ в сочетании с сложными инструментами взаимодействия затрудняет улучшение безопасности кода приложений C++ путём переписывания критических секций в Rust. Для противодействия этой проблеме нужно принять внутриязыковые решения для безопасности памяти и создать безопасный C++», — уточнил Бакстер.
Цель проекта Safe C++ — продвигать код на C++ с помощью использования безопасных инструментов. Начните новый проект или возьмите существующий и начните писать безопасный код на C++. В этом случае код в безопасном контексте демонстрирует те же строгие гарантии безопасности, что и код, написанный на Rust.
Бакстер предлагает использовать устоявшийся в ИБ метод кнута и пряника. Разработчикам Safe C++ запрещено писать код, который может привести к неопределённому поведению, включая обеспечивание безопасности типов и потоков. В качестве
Читать на habr.com