Усилия по повышению безопасности памяти в программном обеспечении набирают обороты

Прочитано: 55 раз(а)


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

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

Consumer Reports, некоммерческая организация по тестированию продуктов, опубликовала в этом месяце отчет о безопасности памяти, который поддерживает аргумент в пользу перехода предприятий с таких языков, как C и C++, на безопасные для памяти языки программирования, такие как Rust.

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

Например, при атаке с переполнением буфера злоумышленник может, искусно вставив неверные данные, получить контроль над программой и на лету переписать ее, чтобы сделать что-то неблаговидное, сказал Эндрю Корнуолл, аналитик Forrester Research.

«Безопасность памяти всегда была постоянным источником дефектов в индустрии программного обеспечения, — сказал он.

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

«Однако в последнее время мы начинаем видеть некоторые новые методы, упрощающие изоляцию небезопасного кода», — сказал Корнуолл. «Rust продемонстрировал, что вы можете обеспечить безопасность статической памяти, навязанную самим компилятором».

Импульс безопасности памяти нарастает

Участники конференции Usenix Enigma 2023 на этой неделе, в том числе представители Consumer Reports и некоммерческой исследовательской группы Internet Security Research Group (ISRG), дополнительно обсудили тему снижения уязвимостей безопасности памяти. ISRG, пожалуй, больше всего известна благодаря проекту Let’s Encrypt , который стал катализатором широкого распространения сертификатов безопасности транспортного уровня.

В 2020 году ISRG запустила проект , посвященный повышению безопасности памяти. Идея безопасности памяти также некоторое время вынашивалась в Consumer Reports, говорит Яэль Грауэр, менеджер по продукту Consumer Reports Security Planner, который дает советы о том, как обеспечить безопасность в Интернете, включая недавний отчет о безопасности памяти.

«Мы говорили о безопасности памяти внутри компании как минимум с мая 2021 года, — сказал Грауэр.

По ее словам, недавний скачок темы в центр внимания общественности является кульминацией многолетних усилий различных организаций и отдельных лиц.

Например, законопроект об ассигнованиях Конгресса, принятый в прошлом месяце , включал положение, которое требовало от национального кибер-директора расследования безопасности памяти в правительстве. В том же месяце Google выпустила Android 13 — первую версию Android, в которой большая часть нового кода была написана на безопасном для памяти языке. Кроме того, для общего пользования стала доступна версия ядра Linux 6.1 LTS , включающая начальную поддержку Rust. Между тем, в ноябре Агентство национальной безопасности рекомендовало разработчикам стратегически отказаться от C и C++, сказал Грауэр.

По словам Джоша Ааса, соучредителя и исполнительного директора ISRG, основной движущей силой этого импульса является то, что уязвимости безопасности памяти могут подвергать системы риску, что может привести к серьезным последствиям, таким как финансовые потери и кража личных данных.

«Это огромная проблема», — сказал он. «Когда больничные системы или государственные службы отключаются, и людям приходится ждать, чтобы получить помощь или услуги, будь то из-за атак вредоносного ПО или чего-то подобного, часто причиной является безопасность памяти».

Сторонники безопасного для памяти языка предпочитают Rust

Большая часть основного программного обеспечения технологической отрасли написана либо на C, либо на C++. По словам Ааса, до разработки Rust не было жизнеспособной альтернативы C/C++.

«Сейчас мы находимся в той точке, когда у нас есть по крайней мере один хороший вариант, Rust, где мы можем обеспечить безопасность без ущерба для производительности», — сказал он.

Помимо Rust и Swift, безопасные для памяти языки включают Go, Python и JavaScript. Но Rust особенно подходит для ядра Linux из-за его производительности и безопасности, сказал Аас. C, язык ядра Linux, имеет долгую историю уязвимостей безопасности памяти.

«Нет другого безопасного для памяти языка, который обеспечил бы ядру Linux высокую производительность и необходимые современные функции, — сказал Аас.

По словам Ааса, первым шагом к безопасности памяти является написание новых модулей и программ на безопасных для памяти языках. Разработчики должны начать с наиболее важных с точки зрения безопасности модулей.

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

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

Суть в том, что C и C++ не являются безопасными языками, поэтому разработчикам следует отказаться от них, сказал Аас.

«Они будут существовать долгое время, потому что нет будущего, в котором мы бы избавились от всего этого кода в ближайшее время», — сказал он. «Но нам нужно начать процесс его удаления».

Усилия по повышению безопасности памяти в программном обеспечении набирают обороты



Новости партнеров