Статья: Проблемы разграничения доступа при управлении KVM-гипервизором посредством libvirt

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Чтобы сформировать такой список, будем ассоциировать с каждой ФНУ определенный счетчик (целочисленную переменную). Счетчик будет показывать, разрешена операция или нет. Если счетчик больше нуля -- значит разрешена, если равен нулю - запрещена. По умолчанию он равен нулю. При разрешении ФВУ увеличиваем на единицу счетчик каждой ФНУ, входящей в это действие, для соответствующего объекта. Например, в наборе ФНУ есть функция REMOTE_PROC_DOMAIN_GET_XML_DESC. Увеличив счетчик на 1 только для, например, ФВУ “Создание snapshot”, невозможно будет достигнуть правильного поведения на прокси-сервере, так как анализируя приходящее сообщение, нельзя будет установить, что чтение xml-данных происходит именно в рамках создания snapshot. Следовательно, необходимо разрешить функцию REMOTE_PROC_DOMAIN_GET_XML_DESC для всех действий пользователя. Этот шаг не расширяет права пользователя, так как если пользователь имеет право просматривать какие-либо xml-данные в рамках выполнения одной функции, он потенциально может всегда получить к ним доступ. В целом проверка счетчиков осуществляется следующим образом: ФНУ отсылаются на сервер, пока не встретится функция, у которой счетчик равен нулю. Тогда клиенту отправляется сообщение об ошибке, соответствующее функции, на которой остановилось исполнение. Этой функцией всегда будет одна из характеризующих функций. Запрет ФВУ происходит аналогично, но только путем уменьшения счетчика. Все ФНУ применяются к каким-либо объектам, соответственно счетчики также применяются одновременно для определенного объекта и для применяемой к нему функции. Объекты можно определить по префиксу ФНУ (тип объекта) и по параметрам, подающимся к ней на вход. Если, например, в префиксе присутствует приставка DOMAIN, это означает, что объект, к которому относится рассматриваемая функция, является виртуальной машиной, UUID виртуальной машины можно определить по передаваемой на вход структуре. Аналогично и другие объекты имеют свои имена или UUID.

Такой механизм позволит свести к минимуму количество исполненных ФНУ для запрещённой ФВУ (т.е. запретить ФВУ и отправить сообщение об ошибке максимально быстро).

Во всех приведенных выше описаниях фигурировал один пользователь. Нерешенной проблемой на текущий момент остается отсутствие идентификатора сессии в сообщении, который бы позволил легко отслеживать пользователя в сообщении, тем самым позволяя различать их между собой. Имеется возможность определять отправителя по ip-адресу, но с одного компьютера могут регистрироваться много пользователей. Авторизация в virt-manager настраивается либо при помощи tls/ssl, либо при помощи SASL. Однако, регистрируя на прокси-сервере необходимые сертификаты для расшифровки трафика, мы устанавливаем соответствие снова между ip-адресом компьютера и сертификатом.

Таким образом, были представлены основные положения и особенности предложенного механизма разграничения доступа при работе с KVM через libvirt, подробно описан протокол взаимодействия клиентской и серверной частей. Выявленная особенность с итеративными удаленными вызовами в рамках выполнения одного действия, а также проблема с сессиями делает реализацию более сложной, чем в случае, если бы информация о пользователях содержалась в пересылаемых сообщениях. В дальнейшем необходимо сосредоточиться на программах с дополнительными серверами, так как они уже обладают собственной подсистемой управления пользователями, что позволит устранить вторую проблему, не повлияв на предложенные основные аспекты решения, заключающиеся в разделении на ФВУ и ФНУ, а также отправке ошибок. Планируется проработка модели для обеспечения сценария со многими субъектами и объектами, с возможностью поддерживать объединение субъектов в группы. В рамках этого необходимо решить проблему с отсутствием сессионной информации.

Список литературы

1. Приказ ФСТЭК № 17 «Об утверждении требований о защите информации, не составляющей государственную тайну, содержащейся в государственных информационных системах». [Электронный ресурс] URL: http://fstec.ru/normotvorcheskaya/akty/53-prikazy/702-prikaz-fstek-rossii-ot-11-fevralya-2013-g-n-17 (дата обращения: 07.04.2018).

2. Лыдин С. С. О проблеме выбора средств защиты информации для инфраструктуры виртуализации // Вопросы защиты информации, 2017. № 3. С. 42--45.

3. Официальный сайт KVM. [Электронный ресурс] URL: https://www.linux-kvm.org/page/Main_Page (дата обращения: 07.04.2018).

4. Статья Gartner о VMware. [Электронный ресурс] URL: http://ir.vmware.com/overview/press-releases/press-releasedetails/2016/VMware-Named-a-Leader-in-2016-Magic-Quadrant-for-x86-Server-VirtualizationInfrastructure/default.aspx (дата обращения: 07.04.2018).

5. Документация Windows к Hyper-V. [Электронный ресурс] URL: https://docs.microsoft.com/ru-ru/virtualization/hyper-v-on-windows/about/ (дата обращения: 07.04.2018).

6. Сегмент-В. [Электронный ресурс] URL: http://www.accord.ru/segment-v.html (дата обращения: 07.04.2018).

7. vGate. [Электронный ресурс] URL: https://www.securitycode.ru/products/vgate/ (дата обращения: 07.04.2018).

8. Государственный реестр сертифицированных средств защиты информации N РОСС RU.0001.01БИ00. [Электронный ресурс] URL: https://fstec.ru/tekhnicheskaya-zashchita-informatsii/dokumenty-po-sertifikatsii/153-sistema-sertifikatsii/591-gosudarstvennyj-reestr-sertifitsirovannykh-sredstv-zashchity-informatsii-n-ross-ru-0001-01bi00 (дата обращения: 07.04.2018).

9. ПК “ВИУ”, ПК “БРЕСТ” РусБИТех. [Электронный ресурс] URL: http://www.astralinux.com/products/virt.html (дата обращения: 07.04.2018).

10. HyTrust Control [Электронный ресурс] URL: https://www.hytrust.com/solutions/cloud-compliance/pci-dss/ (дата обращения: 07.04.2018).

11. Официальная страница oVirt. [Электронный ресурс] URL: https://ovirt.org/ (дата обращения: 07.04.2018).

12. OpenStack. [Электронный ресурс] URL: https://www.openstack.org/ (дата обращения: 07.04.2018).

13. OpenNebula. [Электронный ресурс] URL: https://opennebula.org/ (дата обращения: 07.04.2018).

14. Официальная документация библиотеки libvirt. [Электронный ресурс] URL: https://libvirt.org (дата обращения: 07.04.2018).

15. Протокол RPC. [Электронный ресурс] URL: https://libvirt.org/internals/rpc.html (дата обращения: 07.04.2018).

16. Стандарт XDR. [Электронный ресурс] URL: https://tools.ietf.org/html/rfc1832 (дата обращения: 07.04.2018).

17. Официальная страница mitmproxy. [Электронный ресурс] URL: https://mitmproxy.org/ (дата обращения: 07.04.2018).

18. Спецификация ошибок libvirt. [Электронный ресурс] URL: https://libvirt.org/html/libvirtvirterror.html#virErrorDomain (дата обращения: 07.04.2018).