Баги памяти угрожают всей стране. Rust — не альтернатива, а кислородная маска. Без неё долго не протянем
NewsMakerСША наконец-то объявили войну C и C++...
Крупнейшие агентства кибербезопасности США — CISA и NSA — выпустили совместный доклад, в котором призывают программистов повсеместно переходить на так называемые memory-safe языки. Под этим термином понимаются языки программирования, которые изначально защищают от ошибок работы с памятью — одной из самых опасных и массовых категорий уязвимостей.
В документе подчеркивается, что проблемы безопасности, связанные с некорректным управлением памятью, остаются одной из ключевых угроз как для пользователей, так и для критически важных информационных систем. Memory-safe языки , такие как Rust, Go, C#, Java, Swift, Python и JavaScript, либо автоматически управляют памятью с помощью сборки мусора, либо ещё на этапе компиляции проверяют, как распределяются участки памяти между объектами и процессами. Это позволяет существенно снизить риск возникновения уязвимостей.
Однако самые распространённые в мире языки программирования — C и C++ — такими механизмами по умолчанию не обладают. Теоретически разработчики могут минимизировать риски, используя статический анализ и следуя жёстким стандартам кодирования, но на практике далеко не все прикладывают к этому достаточно усилий.
Кроме того, даже если основная часть программы написана на безопасном языке, библиотеки на C или C++, подключённые через так называемый Foreign Function Interface (FFI), могут легко нарушить всю защиту. Такие уязвимости особенно коварны, поскольку они проникают в проекты, которые на первый взгляд кажутся безопасными.
Последние годы тема безопасности памяти постоянно в фокусе внимания отрасли. Сами ИТ-гиганты подтверждают, насколько серьёзна эта проблема. По статистике Google, в 2018 году 90% всех критических уязвимостей Android возникали именно из-за ошибок работы с памятью. В браузере Chromium, по данным 2021 года, этот показатель составил более 70%. Именно подобная ошибка привела к известнейшему сбою Heartbleed в библиотеке OpenSSL — уязвимость позволяла посторонним считывать данные за пределами выделенной памяти.
Даже недавний инцидент с Google Cloud в июне этого года напрямую связан с отсутствием проверки при работе с нулевыми указателями — ещё одна классическая ошибка, связанная с небезопасной работой с памятью.
Учитывая масштабы угрозы, крупнейшие игроки ИТ-рынка начали активно продвигать memory-safe языки. В 2022 году руководство Microsoft официально призвало разрабатывать новые приложения на Rust или аналогичных технологиях . К 2023 году к обсуждению этой темы подключились и правительственные структуры. Глава CISA Джен Истерли в своих публичных выступлениях открыто говорила о необходимости индустрии переориентироваться на безопасные языки.
Однако не всё проходит гладко. В сообществе разработчиков ядра Linux за последний год разгорелись споры из-за попыток интегрировать драйверы на Rust. Сторонники C и C++ также не остались в стороне: появились целые проекты, направленные на то, чтобы приблизить эти языки по уровню безопасности к Rust. Среди таких инициатив — TrapC, FilC, Mini-C и Safe C++, где разрабатываются новые подходы к обеспечению контроля над памятью. Google также работает над улучшением защиты памяти в C++ без потери производительности.
Новый доклад CISA и NSA подчёркивает: переход на memory-safe языки требует времени и ресурсов, особенно для организаций с большими объёмами устаревшего кода или систем, от которых зависят критически важные процессы. Тем не менее, преимущества — снижение атакуемой поверхности, повышение надёжности программ и сокращение долгосрочных затрат на поддержку — делают этот шаг неизбежным.
Доклад приводит конкретные примеры успехов в этой области. В частности, благодаря переходу Android на более безопасные языки к 2024 году доля уязвимостей, связанных с памятью, сократилась до 24%.
Власти США также запускают собственные инициативы для ускорения процесса. Программа DARPA TRACTOR (Translating All C to Rust) должна создать автоматические инструменты, способные переводить проекты, написанные на C, в Rust, сводя к минимуму вмешательство человека. Учёные Принстона, UC Berkeley и UC San Diego развивают проект Omniglot — он должен обеспечить безопасное взаимодействие Rust-кода с небезопасными библиотеками через FFI.
CISA и NSA подчёркивают , что государство рассчитывает не только на собственные инициативы, но и на активность частного сектора. Среди предложений — популяризация вакансий, где требуется опыт работы с memory-safe языками, чтобы расширять пул специалистов и ускорять трансформацию отрасли.
Сами разработчики понимают: полный отказ от C и C++ невозможен в обозримом будущем, учитывая количество устаревших систем и особенности некоторых задач, где производительность важнее безопасности. Но тренд на рост использования memory-safe языков уже очевиден. Google сообщила , что разработчики стали в два раза продуктивнее при переходе с C++ на Rust, а Microsoft активно внедряет Rust в Windows и разрабатывает драйверы на этом языке.
Авторы доклада не оставляют сомнений: ошибки работы с памятью — это прямая угроза национальной безопасности и устойчивости критических инфраструктур. А переход на memory-safe технологии — наиболее комплексный способ борьбы с этим классом уязвимостей. Важность этой проблемы подтверждает и общая ситуация с безопасностью кода , где ошибки разработчиков становятся серьёзной угрозой для всей ИТ-инфраструктуры.

Крупнейшие агентства кибербезопасности США — CISA и NSA — выпустили совместный доклад, в котором призывают программистов повсеместно переходить на так называемые memory-safe языки. Под этим термином понимаются языки программирования, которые изначально защищают от ошибок работы с памятью — одной из самых опасных и массовых категорий уязвимостей.
В документе подчеркивается, что проблемы безопасности, связанные с некорректным управлением памятью, остаются одной из ключевых угроз как для пользователей, так и для критически важных информационных систем. Memory-safe языки , такие как Rust, Go, C#, Java, Swift, Python и JavaScript, либо автоматически управляют памятью с помощью сборки мусора, либо ещё на этапе компиляции проверяют, как распределяются участки памяти между объектами и процессами. Это позволяет существенно снизить риск возникновения уязвимостей.
Однако самые распространённые в мире языки программирования — C и C++ — такими механизмами по умолчанию не обладают. Теоретически разработчики могут минимизировать риски, используя статический анализ и следуя жёстким стандартам кодирования, но на практике далеко не все прикладывают к этому достаточно усилий.
Кроме того, даже если основная часть программы написана на безопасном языке, библиотеки на C или C++, подключённые через так называемый Foreign Function Interface (FFI), могут легко нарушить всю защиту. Такие уязвимости особенно коварны, поскольку они проникают в проекты, которые на первый взгляд кажутся безопасными.
Последние годы тема безопасности памяти постоянно в фокусе внимания отрасли. Сами ИТ-гиганты подтверждают, насколько серьёзна эта проблема. По статистике Google, в 2018 году 90% всех критических уязвимостей Android возникали именно из-за ошибок работы с памятью. В браузере Chromium, по данным 2021 года, этот показатель составил более 70%. Именно подобная ошибка привела к известнейшему сбою Heartbleed в библиотеке OpenSSL — уязвимость позволяла посторонним считывать данные за пределами выделенной памяти.
Даже недавний инцидент с Google Cloud в июне этого года напрямую связан с отсутствием проверки при работе с нулевыми указателями — ещё одна классическая ошибка, связанная с небезопасной работой с памятью.
Учитывая масштабы угрозы, крупнейшие игроки ИТ-рынка начали активно продвигать memory-safe языки. В 2022 году руководство Microsoft официально призвало разрабатывать новые приложения на Rust или аналогичных технологиях . К 2023 году к обсуждению этой темы подключились и правительственные структуры. Глава CISA Джен Истерли в своих публичных выступлениях открыто говорила о необходимости индустрии переориентироваться на безопасные языки.
Однако не всё проходит гладко. В сообществе разработчиков ядра Linux за последний год разгорелись споры из-за попыток интегрировать драйверы на Rust. Сторонники C и C++ также не остались в стороне: появились целые проекты, направленные на то, чтобы приблизить эти языки по уровню безопасности к Rust. Среди таких инициатив — TrapC, FilC, Mini-C и Safe C++, где разрабатываются новые подходы к обеспечению контроля над памятью. Google также работает над улучшением защиты памяти в C++ без потери производительности.
Новый доклад CISA и NSA подчёркивает: переход на memory-safe языки требует времени и ресурсов, особенно для организаций с большими объёмами устаревшего кода или систем, от которых зависят критически важные процессы. Тем не менее, преимущества — снижение атакуемой поверхности, повышение надёжности программ и сокращение долгосрочных затрат на поддержку — делают этот шаг неизбежным.
Доклад приводит конкретные примеры успехов в этой области. В частности, благодаря переходу Android на более безопасные языки к 2024 году доля уязвимостей, связанных с памятью, сократилась до 24%.
Власти США также запускают собственные инициативы для ускорения процесса. Программа DARPA TRACTOR (Translating All C to Rust) должна создать автоматические инструменты, способные переводить проекты, написанные на C, в Rust, сводя к минимуму вмешательство человека. Учёные Принстона, UC Berkeley и UC San Diego развивают проект Omniglot — он должен обеспечить безопасное взаимодействие Rust-кода с небезопасными библиотеками через FFI.
CISA и NSA подчёркивают , что государство рассчитывает не только на собственные инициативы, но и на активность частного сектора. Среди предложений — популяризация вакансий, где требуется опыт работы с memory-safe языками, чтобы расширять пул специалистов и ускорять трансформацию отрасли.
Сами разработчики понимают: полный отказ от C и C++ невозможен в обозримом будущем, учитывая количество устаревших систем и особенности некоторых задач, где производительность важнее безопасности. Но тренд на рост использования memory-safe языков уже очевиден. Google сообщила , что разработчики стали в два раза продуктивнее при переходе с C++ на Rust, а Microsoft активно внедряет Rust в Windows и разрабатывает драйверы на этом языке.
Авторы доклада не оставляют сомнений: ошибки работы с памятью — это прямая угроза национальной безопасности и устойчивости критических инфраструктур. А переход на memory-safe технологии — наиболее комплексный способ борьбы с этим классом уязвимостей. Важность этой проблемы подтверждает и общая ситуация с безопасностью кода , где ошибки разработчиков становятся серьёзной угрозой для всей ИТ-инфраструктуры.