поиск по сайту
Особенности тестирования средств защиты информации от несанкционированного доступа в виртуальной инфраструктуре

Особенности тестирования средств защиты информации от несанкционированного доступа в виртуальной инфраструктуре

Н. В. Мозолина, К. А. Луговцова МФТИ, Москва, Россия

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

Ключевые слова: функциональное тестирование, автоматизация процессов тестирования, виртуальная инфраструктура.

Features of testing data security tools from unauthorized access at the virtual infrastructure

The article discusses the features and problems of functional testing data security tools from unauthorized access at the virtual infrastructure, and offers the way to solve them with the help of automated functional testing tool and separation of the testing process in two independent stages.

Keywords: functional testing, automation of testing processes, virtual infrastructure.

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

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

Одним из самых простых способов тестирования является выполнение всех этих операций человеком вручную. Такой подход хоть и не требует большого объема подготовительных действий от тестировщика, но вместе с тем имеет ряд существенных минусов: человек может случайно или осознанно пропустить часть тестов, неверно интерпретировать результаты испытания, сделать ложные выводы, а также такое тестирование может растянуться на недели и даже месяцы.  Для решения таких проблем используют автоматизацию: IBM Rational Functional Tester (RFT), TestComplete и другие продукты позволяют воспроизводить действия пользователя программного обеспечения, обрабатывать результаты тестовых испытаний и сравнивать их с ожидаемыми. Это исключает ошибки, которые человек мог сделать в силу усталости или невнимательности, а также значительно сокращает время выполнения тестов.

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

Рассмотрим проблемы и особенности проведения тестовых испытаний при разработке программно-аппаратного комплекса «Сегмент-В.» и способ их решения.

Данный продукт предназначен для защиты инфраструктур виртуализации, построенных на базе платформы VMware vSphere. «Сегмент-В.» представляет собой совокупность технических и программных средств, предназначенных для обеспечения защиты от несанкционированного доступа [2].

Одна из основных функций программно-аппаратного комплекса —  управление доступом субъектов  к объектам в виртуальной инфраструктуре. Она осуществляется за счёт перехвата всех команд управления прокси-сервером «Segment-V. Module» и их обработки на основе заранее созданных правил (метки и уровни доступа для объектов и субъектов, списки разрешённых действий пользователей, политики прокси-сервера). Эта функция осуществляется модулем контроля доступа, входящим в прокси-сервер «Segment-V. Module».

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

Использование автоматизированных тестов, моделирующих операции пользователя, избавляет тестировщика от необходимости вручную исполнять каждое действие и следить за их результатами [3], но, как и прежде, требуют наличия тестовой виртуальной инфраструктуры, предусматривающей всевозможные отношения между объектами и субъектами доступа.

Например, виртуальная машина может находиться на локальном хранилище хоста или на хранилище, подключённом по iSCSI, гипервизоры могут образовывать кластер или не быть объединёнными в общий ресурс. Кроме того, «Сегмент-В.» позволяет назначать метки и уровни доступа субъектов и объектов, что рождает новые отношения между элементами инфраструктуры. Для полной проверки работы функции управления доступом «Сегмента-В.» тестовая инфраструктура должна предоставлять возможность работать с каждым типом объектов и всеми возможными отношениями между ними и субъектами. Виртуальная инфраструктура, удовлетворяющая этим условиям, требует значительных вычислительных ресурсов и места на хранилище.

Для решения этой проблемы был использован следующий подход: четыре стадии процесса тестирования выполняются в два этапа:

  • выбор действия, определение ожидаемого результата этого действия с помощью записи команд в log-файл и создания файлов с эталонными результатами теста;
  • определение фактического результата проведения тестов модуля контроля доступа и сравнение его с эталонным.

Исполнение первого этапа начинается с написания автоматизированных тестов (test_name.java), которые исполняются с помощью RFT на рабочем месте тестировщика и воспроизводят действия администратора виртуальной инфраструктуры в vClient. Команда управления, реализуемая в каждом отдельном тесте, перехватывается на прокси-сервере, который пишет в log-файл (message.log) все принятые HTTP-пакеты, содержащие данные об этом действии. Формат log-файла соответствует входным данным модуля контроля доступа. message.log автоматически передаётся на рабочее место тестировщика, где переименовывается в test_name.log. В процессе исполнения теста в RFT также создаётся файл с ожидаемыми результатами выполнения тестового испытания test_name.etalon.

 

Рис. 1. Этап 1. Схема получения ожидаемого результата выполнения теста (test_name.etalon) и log-файла (test_name.log)

На втором этапе тестирования test_name.log обрабатывается модулем контроля доступа, работающим на отдельной машине для тестовых испытаний. В результате работы модуля создаётся file.log, который с помощью скрипта проверки сравнивается с ожидаемым test_name.etalon.

Рис. 2. Этап 2. Схема получения результата выполнения теста и его сравнение с ожидаемым результатом.

В результате такого разделения тестирования первый этап зависит только от виртуальной инфраструктуры, а второй — только от модуля контроля доступа.

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

Непосредственное проведение тестов модуля контроля доступа на втором этапе требует незначительных вычислительных ресурсов, а также происходит значительно быстрее, чем при тестировании с использованием тестовой инфраструктуры, как не зависит от времени получении данных об объектах — все необходимые сведения уже содержатся в test_name.log.

Таким образом, данный подход к функциональному тестированию решает проблемы, связанные с человеческим фактором, длительным временем проведения тестовых испытаний и большими вычислительными ресурсами, необходимыми для выполнения тестов. Автоматизация тестовых испытаний позволяет снять с человека ответственность за корректную интерпретацию результатов и выполнение всех тестов и позволяет сократить время тестирования, а разделение процесса тестирования на два независимых этапа позволяет сократить требуемые вычислительные ресурсы.

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

  1. Куликов С. C. Тестирование программного обеспечения. Базовый курс: практ. пособие. Минск: Четыре четверти, 2015. C. 63-110
  2. Постоев Д. А. Управление доступом в виртуальных системах на основе контроля информационных потоков // Безопасность информационных технологий. М., 2014. № 4. С. 86-91. 
  3. Каннер (Борисова) Т. М., Кузнецов А. В., Обломова А. И. Тестирование средств защиты информации // Информационная безопасность. Материалы XIII Международной конференции. Таганрог 2013. Часть. 1. С. 121-129.

References:

  1. Kulikov S. C. Testirovanie programmnogo obespechenija. Bazovyj kurs: prakt. posobie. Minsk: Chetyre chetverti, 2015. S. 63-110
  2. Postoev D. A. Upravlenie dostupom v virtualʼnyh sistemah na osnove kontrolja informacionnyh potokov // Bezopasnost' informacionnyh tehnologij. M., 2014. № 4. S. 86-91.
  3. Kanner (Borisova) T. M., Kuznecov A. V., Oblomova A. I. Testirovanie sredstv zashhity informacii // Informacionnaja bezopasnost'. Materialy XIII Mezhdunarodnoj konferencii. Taganrog 2013. Chast'. 1. S. 121-129.