Без плюсов: почему звучат призывы отказаться от C и C++ - IT Speaker, новости информационных технологий

Без плюсов: почему звучат призывы отказаться от C и C++

Редакция

16:55 / 29 февраля 2024

В последнее время довольно часто звучат призывы отказываться от использования C и C++ в пользу языков C#, Go, Java, Ruby, Rust, Python. Главный аргумент заключается в том, что другие языки программирования обеспечивают автоматическое управление памятью или проверяют безопасность работы с ней на этапе компиляции в отличие от C и C++, где управление памятью возложено целиком на разработчика. Ведущий эксперт отдела разработки и тестирования компании «Код Безопасности» Александр Самсонов рассказал редакции IT Speaker, насколько серьезны опасения в уязвимости, и каковы шансы массового отказа от C и C++. 

Фотография unsplash

Офис национального директора по кибербезопасности (ONCD) Белого дома США призвал разработчиков программного обеспечения (ПО) в долгосрочной отказаться от небезопасных (в рамках работы с памятью) языках программирования С и С++ и перейти на более современные решения с высокой безопасностью памяти, например Rust, Python и Java. По мнению ведомства, это снизит количество уязвимостей и улучшит надежность ПО. 

К отказу от использования языков C и C++ в пользу других языков программирования также призывало и Агентство национальной безопасности (АНБ) США еще в 2022 году. Согласно анализу экспертов ведомства, злоумышленники стали чаще использовать уязвимости управления памятью. Благодаря этим «дырам» хакеры могут получать доступ к конфиденциальной информации, нарушать цепочки поставок программного обеспечения и выполнять произвольный код. 

Как отмечает эксперт отдела разработки и тестирования компании «Код Безопасности» Александр Самсонов, эти рекомендации направлены на снижение количества возможных ошибок, связанных с управлением памятью, которые может допустить разработчик. А такие ошибки, помимо нарушения работоспособности программ, могут стать источником уязвимостей.

«Однако не стоит забывать, что ошибки, связанные с памятью, представляют только один из классов возможных ошибок. Языки с автоматическим управлением памятью могут защитить от ошибок этого класса, но при этом не гарантируют полную безопасность. В частности, не так давно —  в 2021 году —  была выявлена критическая уязвимость с высоким статусом в популярной библиотеке Log4j, которая полностью написана на Java», — говорит Самсонов. 

Эксперт также обращает внимание на то, что использование тех или иных языков в программных продуктах чаще обусловлено другими требованиями, например, зависимостью от среды выполнения, скоростью работы, существующей кодовой базой и инфраструктурой. Соответственно переход на другой стек может быть связан со значительными затратами. 

«В России скорее всего данные рекомендации не найдут широкого применения. Возможно, они могут быть рассмотрены в качестве одного из аргументов при выборе стека разработки на начальном этапе планирования создания новых программных продуктов, но при этом вряд ли будут иметь ключевое значение. А переделывать существующее ПО, только исходя из этих рекомендаций, точно никто не будет ввиду несоизмеримо больших затрат. В целом правильнее не отказываться от использования C/C++, а сфокусироваться на повышении безопасности разработки в более широком смысле», — добавляет Cамсонов.

Как отмечает эксперт, для языков C и C++ активно внедряются рекомендации по безопасной разработке и применению средств, обеспечивающих безопасную работу с типами и ресурсами. Такие рекомендации могут быть реализованы в статических анализаторах кода, которые способны указать разработчику на ошибки на этапе написания кода и предоставить рекомендации по их устранению. 

Ранее учебный центр компании IBS провел исследование, согласно которому, самым популярным языком программирования в 2023 году стал Python, а самым необходимым из soft skills ИТ-специалисты назвали тайм-менеджмент. 



Поделиться новостью