Tvorca C++ kritizoval zavedenie bezpečných programovacích jazykov

Bjarne Stroustrup, tvorca jazyka C++, zverejnil námietky k záverom správy NSA, ktorá odporučila, aby organizácie ustúpili od programovacích jazykov ako C a C++, ktoré prenechávajú správu pamäte vývojárom, v prospech jazykov. ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​, ktoré poskytujú automatickú správu pamäte alebo vykonávajú kontroly bezpečnosti pamäte počas kompilácie.

Podľa Stroustrupa bezpečné jazyky uvedené v správe NSA v skutočnosti nie sú nadradené C++ v aplikáciách, ktoré sú z jeho pohľadu dôležité. Najmä základné odporúčania pre používanie C++ (C++ Core Guidelines), vyvinuté v posledných rokoch, pokrývajú metódy bezpečného programovania a predpisujú používanie nástrojov, ktoré zaručujú bezpečnú prácu s typmi a zdrojmi. To ponecháva vývojárom, ktorí nevyžadujú také prísne bezpečnostné záruky, možnosť pokračovať v používaní starých metód vývoja.

Stroustrup verí, že dobrý statický analyzátor, ktorý sa riadi zásadami C++ Core Guidelines, môže poskytnúť potrebné záruky bezpečnosti kódu C++ pri výrazne nižších nákladoch ako migrácia na nové bezpečné programovacie jazyky. Napríklad väčšina základných smerníc je už implementovaná v statickom analyzátore a bezpečnostnom profile pamäte, ktorý je súčasťou Microsoft Visual Studio. Niektoré odporúčania sa zohľadňujú aj v statickom analyzátore Clang tidy.

Správa NSA bola tiež kritizovaná za to, že sa zameriava len na problémy s pamäťou, pričom vynecháva mnohé ďalšie problémy s programovacím jazykom, ktoré ovplyvňujú bezpečnosť a spoľahlivosť. Stroustrup vníma bezpečnosť ako širší koncept, ktorého rôzne aspekty možno dosiahnuť kombináciou štýlu kódovania, knižníc a statických analyzátorov. Na kontrolu zahrnutia pravidiel, ktoré zaisťujú bezpečnosť práce s typmi a zdrojmi, sa navrhuje použiť anotácie v kóde a možnostiach kompilátora.

V aplikáciách, kde je výkon dôležitejší ako bezpečnosť, tento prístup umožňuje selektívne použitie funkcií, ktoré zaručujú bezpečnosť len tam, kde je to potrebné. Bezpečnostné nástroje môžu byť aplikované aj čiastkovým spôsobom, napríklad začať s kontrolou rozsahu a inicializačnými pravidlami a potom postupne prispôsobovať kód prísnejším požiadavkám.

Zdroj: opennet.ru

Pridať komentár