Творець С++ відреагував на заклик АНБ США відмовитися від мови
Агентство національної безпеки США у листопаді 2022 року закликало відмовитися від використання мов програмування, у яких відповідальність за управління пам’яттю покладена на розробника, таких як C та C++, на користь тих, що забезпечують безпечну роботу з пам’яттю, на кшталт Rust. Творець мови програмування C++ Б’ярн Страуструп у відкритому листі виступив на захист мови і не погодився з позицією агентства.
Він зазначив, що в АНБ «змішали в одну купу» C та C++, хоча мови розвивалися незалежно протягом останніх 30 років. Проте, на його думку, практика застосування C++ багато в чому застрягла в минулому — «розробники нерідко ігнорують зміни у мові, які дозволяють кардинально підвищити безпеку коду».
Страуструп вважає, що C++ ні в чому не поступається таким мовам, як C#, Go, Java, Ruby, Rust та Swift, які АНБ вважає альтернативою.
«Я працював десятиліттями, щоб зробити можливим написання кращого, безпечнішого і ефективнішого C++. Зокрема, робота над C++ Core Guidelines спеціально спрямована на надання статично гарантовано безпечного типу та ресурсів C++ для людей, яким це потрібно, без порушення кодових баз, які можуть обійтися без серйозних гарантій або впровадження додаткових ланцюжків інструментів», — пише Страуструп.
Серйозною підмогою програмісту стане статичний аналізатор коду, вважає Страуструп. Впровадження такого інструменту призведе до менших трудовитрат, ніж перехід на «безпечні» мови.
На його думку, автори рекомендацій в АНБ мають дуже вузьке уявлення про безпеку ПЗ, яке обмежується безпечною роботою з пам’яттю. У той же час існує понад десяток інших сценаріїв, за яких особливості конкретної мови можуть зашкодити безпеці софту, зазначає автор C++.
Страуструп вважає, що домогтися безпеки ПЗ можливо, поєднуючи різні стилі програмування, перевірені бібліотеки та обов’язковий статичний аналіз коду.
Він закликав АНБ США спершу серйозно подумати про безпеку нових мов і лише потім «запропонувати щось розумне з цього приводу». «Розумним» Страуструп вважає формування списку проблем безпеки C++, які згодом можна було б усунути шляхом прийняття поправок до міжнародних стандартів мови.
«Цим я і планую зайнятися», — зазначив програміст.
Що було раніше
10 листопада фахівці АНБ США порадили розробникам використовувати під час написання ПЗ мови програмування, які безпечніші з погляду доступу до пам’яті.
У повідомленні АНБ йдеться про те, що зловмисники можуть використовувати проблеми управління пам’яттю, що виникають при застосуванні мов C і C++ — наприклад, переповнення буфера або помилки розподілу пам’яті, — для отримання несанкціонованого доступу до цільових систем.
Як альтернативу їм рекомендується використовувати мови, чиї механізми перевірки автоматично запобігають появі в коді помилок, які можуть перетворитися на вразливість.
У вересні відмовитися від створення нових проектів на C/C++ заради «безпеки та надійності» закликав також технічний директор Microsoft Azure Марк Руссинович.
Все про українське ІТ в телеграмі — підписуйтеся на канал DOU
15 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.