Americká Národná bezpečnostná agentúra (NSA) požiadala vývojárov z celého sveta , aby sa vyhli
Aký je problém s C ?
Na vykonanie pokynov v kóde potrebujete systémové prostriedky, napríklad pamäť. V dôsledku toho , zodpovednosť za správu pamäte spočíva na vývojárovi.Jednoduché chyby programátorov vedú k "poruche" systému a vzniku bezpečnostných problémov .
Táto sloboda vedie k určitým rizikám.Vyskytujú sa v dôsledku jednoduchých preklepov a zabudnutých riadkov kódu alebo v dôsledku zložitých štruktúrpamäť a neočakávané interakcie.
vyhlásenie Atlantickej rady pre Organizáciu Severoatlantickej zmluvy
V niektorých prípadoch môže útočník použiť tieto chyby na získanie prístupu do systému alebo na spustenie škodlivého kódu.
Široko používané jazyky, naprRovnako ako C a C++ poskytujú nielen väčšiu slobodu a flexibilitu pri správe pamäte, ale v tejto veci sa tiež „spoliehajú“ na programátora. NSA verí, že to dáva hackerom príležitosť využiť zraniteľné miesta pre svoje vlastné účely.
Názor IT gigantov
Podľa technologických firiem podielStaré jazyky ako C a C++ predstavujú až 65 % všetkých chýb. Microsoft, Google a ďalší IT giganti si teda všímajú zraniteľné miesta vo svojich kódoch kvôli problémom so zabezpečením pamäte.
Aké jazyky sú bezpečné?
Nové programovacie jazyky ako Python,Java* a Rust prideľujú pamäť automaticky. Mnohé z nich buď prakticky eliminujú bezpečnostné chyby, alebo ich znemožňujú. Predstavitelia NSA pridali C#, Go a Swift na „zoznam bezpečných“.
Odpoveď od „otca zakladateľa“ C a C++
Tvorca programovacieho jazyka C++ BjörnStroustrup reagoval na výzvu NSA opustiť používanie starších programovacích jazykov, v ktorých zodpovednosť za správu pamäte nesie vývojár.
Vo svojom otvorenom liste zverejnenomStroustrup na stránke open-std.org vyjadril nesúhlas s pozíciou agentúry. Uviedol, že jeho zástupcovia „zlúčili“ C a C++, napriek tomu, že jazyky sa za posledných 30 rokov vyvíjali nezávisle. Zároveň obvinil vývojárov, že „často ignorujú zmeny v jazyku, ktoré môžu radikálne zlepšiť bezpečnosť kódu“.
V skutočnosti podľa jeho názoru nie je C++ v žiadnom prípade horší ako moderné takzvané bezpečné jazyky ako C#, Go, Java, Ruby, Rust a Swift.
Odborný názor
Aby sme zistili, ako vážne brať varovanie NSA, Hi-Tech sa porozprával s Andrei Naichenkom, popredným architektom predpredaja produkčnej platformy softvéru Sphere.
Verí, že nebezpečenstvo tohto zákazupre trh a kóderov netreba preceňovať. „Časy, keď sa aplikačné systémy vyvíjali v C++, sú minulosťou a prechod na odporúčané jazyky (C#, Go, Java, Ruby a Swift) už väčšina vývojárov dokončila,“ vysvetľuje odborník.
Dnešné využitie C++obmedzené na špecializované riešenia v oblasti operačných systémov, vývoja hier a herných enginov (Unreal Engine, Unity), výpočtovej techniky GPU (kryptomeny, hlboké učenie), vývoja vysoko zaťažených a vysokovýkonných algoritmov. Vzhľadom na objem vyvinutého kódu a počet špecialistov je nepravdepodobné, že by sa prechod na iné jazyky v týchto oblastiach v blízkej budúcnosti uskutočnil. Pre zvyšok (hlavnú) časť trhu toto odporúčanie NSA nič neohrozuje.
Čo sa týka právoplatnosti tohto rozhodnutiaAndrey Naichenko podporil tvorcu jazyka C++ Bjarna Stroustrupa. „Jazyk C++ v moderných vydaniach štandardu poskytuje širokú a vyspelú sadu nástrojov, ktoré vám umožňujú úspešne riešiť problémy bezpečnej práce s pamäťou,“ vysvetlil odborník.
Ako rozhodnutie NSA ovplyvní Rusko?
Problémy identifikované v správe NSA sú pravdepodobnejšieCelkovo sa našli v riešeniach implementovaných na skorých jazykových štandardoch. V konečnom dôsledku nebude mať rozhodnutie NSA žiadny významný vplyv na vývojárov softvéru, ktorí sa zameriavajú na ruský trh.
Čítaj viac:
Vedci vymenovali 6 najlepších spôsobov, ako „zachrániť“ pamäť starších ľudí
Tajomný odtlačok podzemia vedcov prekvapil. Má viac ako 1000 rokov
Meč považovaný za falošný sa ukáže ako 3000-ročný artefakt z doby bronzovej
*Napriek tomu, že Java je klasifikovaná ako nový jazyk, je to dosť starý programovací jazyk (poznámka - “High-tech”)