Защитете C++, призова създателят на езика

Съвременните програмисти имат богат избор от безопасни езици, които да заменят C и C++
(снимка: CC0 Public Domain)

Авторът на езика за програмиране C++ призова общността на разработчиците на софтуер да защити C и C++ от атаки на феновете на по-модерните и сигурни езици, както и на експертите по информационна сигурност. Двата езика са известни със своите проблеми с безопасността на паметта и затова нарастват призивите да бъдат изоставени изцяло в полза на Rust, Java, Go и други, по-сигурни езици.

Бярне Строуструп, датският програмист, създал C++, се обърна към общността на разработчиците да защитят любимия си език за програмиране, който е обект на критики от Агенцията за киберсигурност на САЩ и експерти по сигурността през последните години, съобщи The Register. Всички критици имат едни и същи оплаквания: нито C++, нито C могат да работят безопасно с паметта, което напоследък се превърна в проблем, предвид наличието на цял списък от езици, които не страдат от този недостатък.

Проблеми с паметта

C++ и особено C са стари езици за програмиране. Те са издадени съответно през 1985 г. и 1972 г., първият е на 40 години, а вторият на 53. Съвременните програмисти все повече предпочитат нови езици като Rust (2012), Java (1995), JavaScript (1995), Go (2009), Python (1991) и др.

За разлика от модерните езици, C и C++ изискват ръчно управление на паметта. Това води до редовни грешки в сигурността на паметта и като следствие до уязвимости в програмите, които след това се откриват и използват от хакери.

Както отбелязва The Register, използването на уязвимости, вкоренени във функциите на C и C++, често води до финансови загуби. В резултат на това индустриални и правителствени експерти по киберсигурност призоваха за отказ от C и C++ в полза на езици с по-добра безопасност на паметта.

Опити за поправка

През годините, в които C и C++ бяха критикувани като несигурни, общността на разработчиците въведе няколко по-безопасни алтернативи. Сред тях са форкове на TrapC и Mini-C, но до момента нито един от тях не е приет като стандарт за разработка.

С други думи, тези методи за „избелване” на C и C++ все още не работят. В началото на февруари 2025 г. Строуструп се обърна публично към комитета по стандартите на C++ (WG21), като призова за спешни действия за подобряване на репутацията на C и C++ и предложи преминаване към средата за разработка Profiles с цел подобряване на сигурността.

„Както казах и преди, това е добра възможност, защото безопасността на типа и безопасността на ресурсите (включително безопасността на паметта) са цели на C++ от самото начало”, написа Строуструп в обръщението.

Натиск от властите и корпорациите

Докато разработчиците не са в състояние да „поправят” сигурността на C и C++, американските власти все по-остро критикуват тези езици. През октомври миналата година Агенцията за киберсигурност и инфраструктура (CISA) изисква от разработчиците на софтуер или да затворят всички дупки, свързани с опасната работа с паметта, или да изоставят C и C++ в полза на по-сигурни езици за програмиране. Крайният срок за съответствие е 1 януари 2026 г., като дотогава компаниите трябва да изготвят поне пътни карти за прехода към безопасни езици.

Софтуерните корпорации също губят интерес към разработването на C и C++. Преди три години Марк Русинович, техническият директор на Microsoft Azure, призова програмистите да „прекратят започването на нови проекти на C/C++ и да използват Rust за тези сценарии, при които се изисква език, който „не събира на отпадъци”. В началото на 2024 г. се разчу за намерението на Microsoft да пренапише кода на облачната услуга в Rust.

Linux общността е разделена на два лагера. Един от тях включва поддръжници на пренаписването на кода на ядрото изцяло в Rust, докато другият обединява искрени привърженици на C и C++. Създателят на Linux ядрото Линус Торвалдс не може да реши на коя страна да застане – той се държи грубо с тези, които избират Rust, а в личен разговор с основния противник на Rust заяви, че ще приеме пачове за Rust, заобикаляйки поддръжниците на C.

Интернет гигантът Google, създател на безопасния език Golang, също се застъпва за отказ от C и C++, поради рисковете за сигурността. Експерти, интервюирани от The Register, обаче смятат, че пълно отхвърляне на тези езици е малко вероятно в обозримо бъдеще, тъй като на тях има написани твърде много редове код. Те предлагат да се изостави революцията в полза на еволюцията и да се модернизират C и C++, като се повиши нивото им на сигурност.

Коментари по темата: „Защитете C++, призова създателят на езика”

добавете коментар...

  1. ръст

    ръст тиктака бързо към цето/++

Коментар