Россияне обнаружили сотни дефектов в ПО для виртуализации. Многие из них останутся без исправлений
191 дефектом меньше
Как стало известно CNews, специалисты компания «Базис», российского разработчика инфраструктурного ПО, совместно с сотрудниками Института системного программирования (ИСП) РАН и испытательной лаборатории «Фобос-НТ», провели тестирование компонентов с открытым исходным кодом, задействованных в программных продуктах «Базиса» для виртуализации.
В ходе испытаний проверке подверглись такие компоненты с открытым исходным кодом как веб-сервер nginx, брокер сообщений ActiveMQ Artemis, сервер каталогов Apache Directory, библиотека для сбора данных телеметрии виртуальных машин libvirt-exporter, эмулятор аппаратного обеспечения QEMU. В результате был устранен 191 дефект, в том числе несколько уязвимостей. Часть дефектов по тем или иным причинам осталась без исправлений.
Как утверждают в «Базисе», протестированные компоненты также применяются в некоторых решениях в области виртуализации сторонних вендоров – как отечественных, так и зарубежных.
Важные компоненты
Особое внимание в ходе тестирования было уделено libvirt – сбой в работе этой библиотеки может нанести ущерб инфраструктуре и привести к утечке конфиденциальной информации, поэтому она была подвергнута комплексному исследованию – библиотека предоставляет программные интерфейсы (API) для управления виртуальными машинами, Веб-сервер nginx, помимо прочего, помогает балансировать нагрузку. От качества их работы зависит множество российских и иностранных решений для работы с виртуальными средами.
«Libvirt-exporter – самый значительный компонент с открытым исходным кодом для систем виртуализации. Вместе с ним часто применяется эмулятор различных устройств QEMU. Стоит также отметить систему оркестрации контейнеров Kubernetes, которая встречается во множестве участков кода. Кроме того, в этих системах используется ядро операционной системы Linux, – пояснил в разговоре с CNews технический директор компании «Базис» Дмитрий Сорокин. – Применение этих компонентов упрощает интеграцию наших продуктов в инфраструктуру заказчиков».
Существуют также вендоры, которые не просто используют элементы открытого ПО для решения отдельных задач, а строят вокруг его ядра весь свой продукт. В качестве одного из примеров такого продукта Сорокин привел свободную систему управления виртуализацией oVirt (Red Hat). Такой подход влечет значительные риски с точки зрения управления развитием продукта и его безопасности, считает эксперт.
Техники тестирования
При разработке и тестировании продуктов «Базис» применяются различные виды анализа, такие как фаззинг, статический анализ, композиционный анализ, модульное и функциональное тестирование.
В ходе завершившегося этапа испытаний основной упор исследователи сделали на разметке срабатываний статического анализатора Svace и создании фаззинг-целей.
Согласно определению библиотеки знаний по кибербезопасности Сбербанка «Кибрарий», фаззинг (англ. fuzzing) – это автоматизированная или полуавтоматизированная проверка того, как поведет себя программа при обработке случайных (в том числе некорректных) входных данных. Фаззинг позволяет обнаружить ошибки в ПО как на стадии разработки, так и в процессе его использования. Фаззинг-цель – функция (подпрограмма) или модуль, принимающие данные на вход, отправляющие результат обработки входных данных на вывод и нуждающиеся в проверке.
Статический анализ кода – анализ исходного кода ПО без его выполнения, с помощью специальных инструментов. В частности, позволяет выявить потенциальные угрозы безопасности таких типов как переполнение буфера и неопределенное поведение.
Валидатор кода Svace разработан специалистами ИСП РАН, в 2016 г. он был включен в состав пакета разработчика (SDK) мобильной операционной системы Tizen компании Samsung.
В рамках подготовки к тестированию для наиболее критичных компонентов открытого ПО, лежащих на поверхности атаки, были разработаны фаззинг-тесты. Их можно найти в соответствующих проектах на GitLab Центра исследований безопасности системного ПО. В дальнейшем созданные сотрудниками ИСП РАН и «Базиса» цели послужили исследованиям, которые специалисты «Фобос-НТ» выполняли на своих мощностях.
Найденные дефекты также были учтены при обновлении компонентов с открытым исходным кодом в продуктах «Базис», сообщили CNews в компании.
Результаты тестирования
Статический анализ выявил 178 дефектов в коде тестируемых компонентов. Изучив их, специалисты ИСП РАН и «Базис» разработали 86 исправлений, которые были приняты в основные ветки разработки соответствующих проектов. Большая часть срабатываний относилась к популярному брокеру сообщений ActiveMQ Artemis и Apache Directory.
К дефектам относятся ошибки в исходном коде, возникающие из-за низкого качества самого кода, неверного выбора констант и параметров или других подобных недочетов. Кроме того, даже в том случае, когда программа написана правильно, разработчик может задать неверные настройки компилятора, в результате чего ПО окажется собранным небезопасно.
«Проще говоря, дефекты – это любые недостатки, связанные со скоростью, качеством или безопасностью ее выполнения. В соответствии со стандартами ФСТЭК и современными подходами к разработке безопасного ПО, улучшение и написание правильного кода начинается с выявления дефектов. Далее специалисты по информационной безопасности определяют, является ли найденная дефект просто недостатком или полноценной уязвимостью», – пояснил Дмитрий Пономарев, заместитель генерального директора – директор департамента внедрения и развития РБПО НТЦ «Фобос-НТ».
Отвечая на вопрос CNews о судьбе еще 92 дефектов, оставшихся без исправлений, Дмитрий Пономарев заявил, что не все дефекты требуют обязательного устранения.
«Например, могут быть обнаружены баги, которые фактически не влияют на функциональность продукта. В определенной сборке или при стандартных сценариях использования компанией “Базис” протестированного открытого ПО этот баг может вовсе не проявиться», – пояснил Пономарев.
Кроме того, компонент, используемый в проекте, может иметь более раннюю версию по сравнению с той, что сейчас находится в основной ветке разработки этого компонента. В таком случае разработчики, вероятно, будут отказываться принимать исправления, указывая на работу с устаревшей версией.
Фаззинг-тестирование выявило еще 13 дефектов в коде – пять в Apache Directory LDAP API и восемь в библиотеке libvirt. Последние были найдены в ходе проверки функций обработки инструкций, которые потенциально могут быть получены из конфигурационных файлов при создании виртуальной машины. В частности, были найдены ошибки, связанные с переполнением буфера, а также несколько проблем, связанных с неоптимальной работой функций в отношении некоторых контроллеров. Все поданные исправления были оперативно приняты в основные ветки разработки libvirt и Apache Directory.
В Apache Directory, который применяется в системе доменной авторизации, к слову, было выявлено несколько уязвимостей, отличающихся высоким (7.8 балла из 10 по шкале CVSSv3) уровнем опасности. Все они внесены в банк данных угроз (БДУ) безопасности информации ФСТЭК.
«Как эксперты мы хотим, чтобы код был максимально качественным, поэтому стремимся исправить все найденные дефекты. И компания “Базис” разделяет это желание. Поэтому зачастую мы не тратим время на выяснение, является ли найденный дефект уязвимостью или нет, на доказательство эксплуатируемости, присваивание критичности и т.д. У нас нет задачи обнаружить уязвимость уровня 10.0 или похвастаться количеством найденных CVE», – подчеркнул Пономарев.
Непрерывный процесс
Очередной этап тестирования и исследования кода проходил с использованием инфраструктуры Центра исследований безопасности системного ПО, созданного ФСТЭК России на базе ИСП РАН.
Работы по разметке и созданию целей для фаззинга выполнялись совместно с ИСП РАН, к решению этой задачи были привлечены студенты профильных специальностей МГТУ и Чебоксарского государственного университета, сообщили CNews в «Базисе».
Сотрудники испытательной лаборатории НТЦ «Фобос-НТ» проводят сертификационные испытания продуктов «Базис» и занимаются улучшением фаззинг-тестов, в том числе разработанных компанией.
В ответ на вопрос CNews о частоте проведения мероприятий подобного рода и масштаба технический директор «Базиса» Дмитрий Сорокин заявил, что для компании «это непрерывный ежемесячный процесс».
«Мы придерживаемся методов безопасной разработки (DevSecOps), в том числе опираясь на передовые отечественные стандарты. Поэтому для развития инструментов анализа кода и их более эффективной интеграции в наши конвейеры, а также для более глубоких и качественных проверок кодовой базы, мы активно сотрудничаем с ИСП РАН», – отметил представитель «Базиса».
В числе продуктов «Базиса», в которых задействованы технологии виртуализации, Basis Dynamix и Basis Workplace, выступающие отечественными аналогами VMWare vSphere, VMWare eRealize Automatization, VMWare Nsx, VMWare vSAN, Microsoft Hyper-V, Nutanix, Simplivit и VMware, Windows Virtual Desktop, Citrix XenDesktop, Citrix Workspace Enterprise соответственно.
В октябре 2024 г. стало известно, что «Базис» и «Веб-Сервер» работают над созданием коробочного решения для организации программно-определяемых сетей (SDN).