×

Творець С++ відреагував на заклик АНБ США відмовитися від мови

Агентство національної безпеки США у листопаді 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

👍ПодобаєтьсяСподобалось9
До обраногоВ обраному0
LinkedIn



15 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

А как могло быть иначе, инфантил страуструп с маленьким эго и его последователи это почти всегда снобы. В 2к23 никакого нет смысла брать старый мусор для нового проекта

инфантил страуструп с маленьким эго и его последователи это почти всегда снобы

> на словах ты Лев Толстой, а на деле гитхаб пустой

Ну почему суть реплики так роскошно коррелирует с тегом у автора? ;)))

Коментар порушує правила спільноти і видалений модераторами.

статичний аналізатор коду,

Может всё таки «анализатор статичного кода» — т.е. анализ кода просто по тексту этого кода, т.е. «анализатор неподвижного кода», а не «неподвижный анализатор кода»?

Нет, статический анализатор, в отличии от виртуальных машин, запускающих код.
ru.wikipedia.org/...​i/Статический_анализ_кода

Иронично. Оказзывается, я такой анализатор всегда неправильно называл :)

Мова про статичний аналіз, такі інструменти традиційно називають «статичний аналізатор»

Да, я знаю что такое static code analysis. Просто крайне редко встречал не-английские варианты (хотя, вероятно, особо и не искал)

Ты че, пес, на святое замахнулся.

Так хай собі NSA на чому хоче, на тому і пише :)
Вони певно не в курсі, що всі ці русти на С++ і написані :)

А ещё ниже на машкоде, и что?
На самом деле предложение сократить использование языков с MMM в пользу, в первую очередь, AMM везде, где это возможно и не портит производительность — оно очень полезно. Как плюсовик говорю:)

Не заперечую, а й підтримую. Кожному інструменту своє місце.
Просто, якщо я правильно зрозумів, АНБ взагалі рекомендує від С++ відмовитися. Чи я неправильно зрозумів?

Так а що йому ще робити? Воно АНБ, його поставили відповідати за безпеку, от воно і радить, як буде найбезпечніше. Це, знаєте, як священники радять заради уникнення абортів відмовитися від сексу — їм не можна відмовити у логіці, дійсно дуже дієвий метод. От тільки чогось не так багато людей дослухаються до тих порад, видно чимось той метод не подобається людям.

раст написаний на расті, а ось компілятор (llvm, gcc) вже на плюсах частково чи повністю

Підтримую голову комітету. Комусь не подобається — може писати на чому хоче, а от закликати бойкотувати це перебір. І це не заклик Дейстери відмовитись від оператора goto:

Підписатись на коментарі