Americká Národní bezpečnostní agentura (NSA) požádala vývojáře z celého světa , aby se vyhnuli
Jaký je problém s C ?
Chcete-li provádět instrukce v kódu, potřebujete systémové prostředky, jako je paměť. V důsledku toho odpovědnost za správu paměti spočívá na vývojáři.Jednoduché chyby programátorů vedou k "zhroucení" systému a vzniku bezpečnostních problémů .
Tato svoboda s sebou nese určitá rizika.Vyskytují se kvůli jednoduchým překlepům a zapomenutým řádkům kódu nebo kvůli složitým strukturámpaměť a neočekávané interakce.
prohlášení Atlantické rady k Severoatlantické alianci
V některých případech může útočník tyto chyby využít k získání přístupu do systému nebo ke spuštění škodlivého kódu.
Tedy široce používané jazyky jakoStejně jako C a C++ poskytují nejen větší svobodu a flexibilitu při správě paměti, ale také se v této věci „spoléhají“ na programátora. NSA věří, že to dává hackerům příležitost zneužít zranitelnosti pro své vlastní účely.
Názor IT gigantů
Podle technologických firem podílStaré jazyky jako C a C++ tvoří až 65 % všech chyb. Microsoft, Google a další IT giganti si tedy všímají zranitelností ve svých kódech kvůli problémům se zabezpečením paměti.
Jaké jazyky jsou bezpečné?
Nové programovací jazyky jako Python,Java* a Rust přidělují paměť automaticky. Mnohé z nich buď prakticky eliminují bezpečnostní chyby, nebo je znemožňují. Představitelé NSA přidali C#, Go a Swift na „seznam bezpečných“.
Odpověď od „otce zakladatele“ C a C++
Tvůrce programovacího jazyka C++ BjörnStroustrup reagoval na výzvu NSA opustit používání starších programovacích jazyků, ve kterých odpovědnost za správu paměti spočívá na vývojáři.
Ve svém otevřeném dopise zveřejněnoStroustrup na open-std.org vyjádřil nesouhlas s postojem agentury. Uvedl, že jeho zástupci „spojili dohromady“ C a C++, a to navzdory skutečnosti, že se jazyky během posledních 30 let vyvíjely nezávisle. Zároveň obvinil vývojáře, že „často ignorují změny v jazyce, které mohou radikálně zlepšit zabezpečení kódu“.
Ve skutečnosti podle jeho názoru není C++ v žádném případě horší než moderní takzvané bezpečné jazyky jako C#, Go, Java, Ruby, Rust a Swift.
Názor odborníka
Aby zjistil, jak vážně brát varování NSA, Hi-Tech mluvil s Andrejem Naičenkem, předním architektem předprodeje softwarové produkční platformy Sphere.
Věří, že nebezpečí tohoto zákazupro trh a kódery není radno přeceňovat. „Doby, kdy se aplikační systémy vyvíjely v C++, jsou minulostí a přechod na doporučené jazyky (C#, Go, Java, Ruby a Swift) již většina vývojářů dokončila,“ vysvětluje odborník.
Dnešní použití C++omezena na specializovaná řešení v oblasti operačních systémů, vývoje her a herních enginů (Unreal Engine, Unity), GPU computingu (kryptoměny, hluboké učení), vývoje vysoce výkonných a vysoce výkonných algoritmů. Vzhledem k objemu vyvinutého kódu a počtu specialistů je nepravděpodobné, že by v blízké budoucnosti došlo k přechodu na jiné jazyky v těchto oblastech. Pro zbytek (hlavní) část trhu toto doporučení NSA nic neohrožuje.
Ohledně platnosti tohoto rozhodnutíAndrey Naichenko podporoval tvůrce jazyka C++ Bjarna Stroustrupa. „Jazyk C++ v moderních edicích standardu poskytuje širokou a vyspělou sadu nástrojů, které vám umožní úspěšně řešit problémy bezpečné práce s pamětí,“ vysvětlil odborník.
Jak rozhodnutí NSA ovlivní Rusko?
Problémy uvedené ve zprávě NSA jsou pravděpodobnějšíCelkově byly nalezeny v řešeních implementovaných na raných jazykových standardech. Rozhodnutí NSA nakonec nebude mít žádný významný dopad na softwarové vývojáře zacílené na ruský trh.
Přečtěte si více:
Vědci pojmenovali 6 nejlepších způsobů, jak „zachránit“ paměť starších lidí
Tajemný otisk v podzemí vědce překvapil. Je starý přes 1000 let
Ukázalo se, že meč považovaný za falešný je 3000 let starý artefakt z doby bronzové
*Navzdory skutečnosti, že Java je klasifikována jako nový jazyk, je to poměrně starý programovací jazyk (poznámka - “High-tech”)