Попрощайтесь с C и C++ Рекомендация правительства США по использованию языков программирования с безопасной памятью
Правительство США рекомендует избегать использования C или C++ при создании программных инструментов для лучших результатов. Вот список рекомендуемых альтернатив.
“`html
NSA обновило список безопасных языков программирования
![NSA list of memory-safe programming](https://cdn.miximages.com/tech/996449856aa0353e08b9f1ecc2c226bb.jpg)
В последнем отчете Белого дома Управления Национального директора по кибербезопасности (ONCD) сделали смелое предложение программистскому сообществу: перестать использовать C и C++ и начать использовать «языки программирования с безопасностью памяти». 🛡️💻 Этот шаг считается ключевым для обеспечения безопасности основ киберпространства и соответствует плану кибербезопасности президента Байдена.
Итак, что означает «безопасность памяти»? Это защита от недостатков и уязвимостей, связанных с доступом к памяти. Примеры таких проблем включают в себя висячие указатели и переполнение буфера. Язык Java, с его проверками ошибок времени выполнения, относится к категории языков с безопасностью памяти. С другой стороны, как C, так и C++ поддерживают неконтролируемую арифметику указателей без проверки границ, что подвергает их проблемам безопасности памяти.
Для помощи разработчикам в принятии практик безопасности памяти Агентство национальной безопасности (NSA) составило список рекомендуемых языков программирования. Вот их предложения в произвольном порядке:
- Go
- Rust
- C#
- Swift
- Java
- Ruby
- Python
- Delphi/Object Pascal
- Ada
Эти языки имеют функции и характеристики, способствующие безопасности памяти, что делает их менее подверженными уязвимостям безопасности, вызванным проблемами памяти. Выбор одного из этих языков на первом этапе проекта может значительно улучшить безопасность получаемого программного обеспечения.
- Spotify представляет Song Psychic, музыкальный волшебный шар восьме...
- Обновление Microsoft Edge вызвало хаос у пользователей.
- Влияние данных о инфляции на доллар США анализ колебаний валюты
Согласно анализу 2019 года инженеров по безопасности Microsoft, практически 70% уязвимостей безопасности были вызваны проблемами безопасности памяти. Исследование Google в 2020 году по проблемам браузера Chromium привело к подобной статистике. Учитывая эти цифры, становится очевидным, почему ONCD настаивает на переходе к языкам программирования с безопасностью памяти.
🔒🏢 В отчете ONCD подчеркивается важность того, что более крупные организации и государственные структуры должны играть значительную роль в кибербезопасности. В нем утверждается, что кибербезопасность не должна быть ответственностью только малых организаций и частных лиц. В рамках этого усилия отчет определяет использование C и C++ как «небезопасных» языков программирования из-за их связи с уязвимостями безопасности памяти. Хотя отчет воздерживается от предложения конкретного языка для замены, он подчеркивает, что есть «дюжины языков программирования с безопасностью памяти, которые можно — и следует — использовать» вместо этого.
Отчет не ограничивается рекомендациями по языкам. Он также призывает к улучшению показателей безопасности программного обеспечения. Путем внедрения лучших практик измерения поставщики технологий могут предвидеть и преодолеть риски проактивно, уменьшая вероятность уязвимостей, проскальзывающих сквозь щели.
В конечном итоге отчет ONCD — это призыв к действию для всего программистского сообщества по приоритизации безопасности памяти. Будь то разработчик, работающий над критическими системами, или небольшой стартап, предпринятие шагов по внедрению языков программирования с безопасностью памяти в процесс разработки программного обеспечения является важной частью создания безопасного по дизайну программного обеспечения.
Часто задаваемые вопросы
Q: Почему C и C++ считаются «небезопасными» языками программирования? A: C и C++ позволяют неконтролируемую арифметику указателей, которая может привести к уязвимостям безопасности памяти. Эти языки не имеют встроенных механизмов защиты и проверок от распространенных проблем, связанных с памятью, таких как висячие указатели и переполнение буфера.
Q: Каковы преимущества языков программирования с безопасностью памяти? A: Языки программирования с безопасностью памяти, такие как Go, Rust и Java, обладают функциями и механизмами, предотвращающими или смягчающими уязвимости, связанные с памятью. Они предлагают встроенные проверки и ограничения для обеспечения безопасного использования памяти, уменьшая вероятность появления уязвимостей.
Q: Переход к языкам программирования с безопасностью памяти повлияет ли на существующие проекты? A: Переход на другие языки программирования для существующих проектов может быть сложным и затратным процессом. Это в значительной степени зависит от таких факторов, как размер проекта, сложность кодовой базы и экспертиза команды. Однако включение языков программирования с безопасностью памяти на ранних этапах новых проектов может значительно улучшить безопасность программного обеспечения.
Q: Существуют ли конкретные рекомендуемые языки программирования с безопасностью памяти для различных приложений? A: Выбор языка программирования зависит от конкретных требований и ограничений каждого приложения. В то время как языки типа Go и Rust хорошо подходят для программирования на уровне системы, языки типа Python и Ruby отлично справляются с веб-разработкой. Прежде всего, учитывайте потребности вашего проекта и консультируйтесь со специализированными ресурсами языков для принятия обоснованного решения.
“““html
🔍 Для дополнительных идей и информации, связанной с языками программирования, обеспечивающими безопасность памяти, и кибербезопасностью, ознакомьтесь с этими ценными ресурсами:
- Питон продолжает царствовать на рынке труда
- Главы Meta, TikTok, Snap и Discord отправляются в Конгресс, чтобы обсудить онлайн-безопасность детей
- Окончательный технический отчет ONCD
📚 Помните о том, чтобы быть информированным и следить за последними тенденциями и лучшими практиками в мире программирования и кибербезопасности!
Диана Ричи
Управляющий редактор в ENBLE
Диана является редактором в ENBLE с более чем 20-летним опытом в управлении и развитии контента. Ранее она была главным редактором Startup Grind и Calendar, а также редактором в медиа-компании Entrepreneur. Ее страсть к технологиям и экспертиза в этой области делают ее ценным ресурсом для отслеживания последних достижений в области компьютерных технологий и программирования.
Сталкивались ли вы с какими-либо проблемами, связанными с безопасностью памяти, в своем пути программирования? Поделитесь своими опытом и мыслями в комментариях ниже! Давайте вместе стремиться к более безопасному и надежному киберпространству! 🚀
Не забудьте поделиться этой статьей со своими коллегами-разработчиками, чтобы распространить информацию о важности языков программирования, обеспечивающих безопасность памяти. Вместе мы можем создать более безопасное цифровое будущее. 🌐💪
“`