Агенцията за национална сигурност на САЩ (NSA) помоли разработчиците от цял свят да избягват
Какъв е проблемът с езика C++?
За да изпълните инструкции в кода, от който се нуждаетесистемни ресурси, по-специално памет. Проблемът с някои по-стари езици за програмиране е, че те позволяват на разработчиците да го преместват ръчно. В резултат на това отговорността за управлението на паметта е на разработчика. Простите грешки на програмистите водят до „срив“ на системата и възникване на проблеми със сигурността.
Тази свобода води до определени рискове.Тези грешки в безопасността на паметта могат да възникнат от прости печатни грешки и забравени редове от код или от сложни структури на паметта и неочаквани взаимодействия.
изявление на Атлантическия съвет към Организацията на Северноатлантическия пакт
В някои случаи нападателят може да използва тези грешки, за да получи достъп до системата или да изпълни зловреден код.
По този начин, широко използвани езици катоПодобно на C и C++, не само предоставят по-голяма свобода и гъвкавост в управлението на паметта, но и „разчитат“ на програмиста по този въпрос. NSA смята, че това дава възможност на хакерите да използват уязвимостите за свои собствени цели.
Мнение на ИТ гигантите
Според технологичните компании делътСтарите езици като C и C++ представляват до 65% от всички грешки. Така Microsoft, Google и други ИТ гиганти отбелязват уязвимости в своите кодове поради проблеми със сигурността на паметта.
Кои езици са безопасни?
Нови езици за програмиране като Python,Java* и Rust разпределят памет автоматично. Много от тях или практически премахват грешки в сигурността, или ги правят невъзможни. Представители на NSA добавиха C#, Go и Swift към „сигурния списък“.
Отговор от „бащата-основател“ на C и C++
Създател на езика за програмиране C++ BjörnStraustrup отговори на призива на NSA да се откаже от използването на наследени езици за програмиране, в които отговорността за управлението на паметта е на разработчика.
В отвореното си писмо публикуванНа open-std.org Страуструп изрази несъгласие с позицията на агенцията. Той заяви, че неговите представители са "обединили" C и C++, въпреки факта, че езиците са се развили независимо през последните 30 години. В същото време той обвини разработчиците, че „често пренебрегват промените в езика, които могат радикално да подобрят сигурността на кода“.
Всъщност, според него, C++ по никакъв начин не отстъпва на съвременните така наречени безопасни езици като C#, Go, Java, Ruby, Rust и Swift.
Експертно мнение
За да разбере колко сериозно да приеме предупреждението на NSA, Hi-Tech разговаря с Андрей Найченко, водещ архитект за предпродажба на платформата за производство на софтуер Sphere.
Той смята, че опасността от тази забраназа пазара и кодерите не трябва да се надценяват. „Времената, когато приложните системи се разработват на C++, са нещо от миналото и преходът към препоръчителните езици (C#, Go, Java, Ruby и Swift) вече е завършен от повечето разработчици“, обяснява експертът.
Днешното използване на C++ограничено до нишови решения в областта на операционните системи, разработката на игри и двигателите за игри (Unreal Engine, Unity), GPU изчисления (криптовалута, дълбоко обучение), разработване на алгоритми с високо натоварване и висока производителност. Предвид обема на разработения код и броя на специалистите, преходът към други езици в тези области е малко вероятно да се случи в близко бъдеще. За останалата (основната) част от пазара тази препоръка от NSA не застрашава нищо.
Относно валидността на това решениеАндрей Найченко подкрепи създателя на езика C++ Bjarne Stroustrup. „Езикът C++ в съвременните издания на стандарта предоставя широк и зрял набор от инструменти, които ви позволяват успешно да решавате проблемите на безопасната работа с паметта“, обясни експертът.
Как решението на NSA ще се отрази на Русия?
Проблемите, идентифицирани в доклада на NSA, са по-вероятниОбщо те бяха намерени в решения, реализирани на ранни езикови стандарти. В крайна сметка решението на NSA няма да окаже значително влияние върху разработчиците на софтуер, насочени към руския пазар.
Прочетете още:
Учените посочиха топ 6 начина за "спасяване" на паметта на възрастните хора
Мистериозен отпечатък под земята изненада учените. Той е на повече от 1000 години
Мечът, смятан за фалшив, се оказва артефакт на 3000 години от бронзовата епоха
*Въпреки факта, че Java се класифицира като нов език, той е доста стар език за програмиране (забележка - „High-tech“)