Доклады, выступления, видео и электронные публикации

Применимость методов тестирования ПО к программно-аппаратным СЗИ

Т. М. Каннер

Закрытое акционерное общество «ОКБ САПР», Москва, Россия

В статье рассматривается применимость методов тестирования программного обеспечения к программно-аппаратным средствам защиты информации, выявляются особенности функционирования программно-аппаратных СЗИ в зависимости от их принципа работы, формируются критерии возможности использования существующих методов тестирования ПО для тестирования различных видов программно-аппаратных СЗИ.

Ключевые слова: тестирование, методы тестирования ПО, особенности программно-аппаратных СЗИ, критерии возможности применения методов тестирования ПО для программно-аппаратных СЗИ

Applicability of software testing methods for software and hardware DST

M. Kanner

Closed Joint Stock Company «OKB SAPR», Moscow, Russia

The article considers the applicability of software testing methods for software and hardware data security tools (DST), identifies features of the software and hardware DST according to their operation principles, forms criteria possibility of using existing software testing methods for testing various types of software and hardware DST.

Keywords: testing, software testing methods, features of the software and hardware DST, criteria possibility of using existing software testing methods for testing software and hardware DST.

Применимость методов тестирования программного обеспечения (ПО) к программно-аппаратным средствам защиты информации (СЗИ) целесообразно рассматривать в аспекте существования разных видов тестирования. Обычно принято выделять следующие признаки для классификации видов тестирования [1,2]:

  • время проведения;
  • позитивность сценариев;
  • степень автоматизированности тестирования;
  • объект тестирования.

С точки зрения времени проведения тестирования (альфа и бета-тестирование) и позитивности сценариев тестирования (позитивное или негативное тестирование) в целом нет существенной разницы в том, что является предметом тестирования – ПО, программное или программно-аппаратное СЗИ. В связи с этим при выполнении таких видов тестирования любые методы их проведения будут применимы как к программным, так и к программно-аппаратным продуктам (в том числе и СЗИ).

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

С точки зрения автоматизации тестирование ПО может быть ручным, автоматизированным и полуавтоматизированным [1,2].

В случае ручного тестирования метод тестирования ПО состоит из следующих шагов:

  • создание программы и методики испытаний (ПМИ);
  • определение входных данных для ПМИ (например, в каких ОС проводится тестирование, какое прикладное ПО дополнительно установлено и т.п.);
  • проведение тестирования по ПМИ, которое, в свою очередь, включает:
  • выявление некорректного поведения продукта, указывающего на наличие в нем ошибок;
  • фиксация проявления ошибок;
  • локализация зафиксированных проявлений ошибок (поиск других проявлений и взаимосвязей);
  • анализ локализованных проявлений ошибок;
  • фиксация ошибок и особенностей;
  • анализ полученных результатов тестирования.

Программа и методика испытаний составляется на основании требований, предъявляемых к продукту. Если ПМИ составлена грамотно, то она служит хорошим помощником для тестировщика, описывая четкую последовательность его действий. После выполнения всех пунктов ПМИ на основании полученных результатов можно сделать вывод о соответствии продукта заявленным требованиям, а также оценить найденные ошибки, их критичность и возможность выпуска ПО.

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

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

Также тестирование ПО (по объекту тестирования) можно условно разделить на следующие группы:

  • функциональное (тестирование реализуемого функционала продукта, включая взаимодействие его компонент);
  • нефункциональное (нагрузочное, стрессовое тестирование, тестирование удобства использования и т.п.);
  • тестирование, связанное с изменениями (регрессионное, санитарное тестирование и т.п.).

Необходимо отметить, что в общем случае при проведении любых видов тестирования ПО применяются следующие обобщенные методы:

  1. ручное тестирование по ПМИ (как функциональных, так и нефункциональных требований);
  2. автоматизированное тестирование с применением скриптов автоматизации (в основном нагрузочное и стрессовое тестирование, регрессионное и т.п.);
  3. полуавтоматизированное в случаях, когда нет возможности полноценно использовать скрипты автоматизации.

Рассмотрим особенности, которые возникают при попытках применения указанных методов проведения тестирования ПО к программно-аппаратным СЗИ на конкретных примерах.

Программно-аппаратные СЗИ, функционирующие до старта ОС

Как правило, СЗИ, функционирующие до старта ОС, представляют собой аппаратный модуль, подключаемый в средство вычислительной техники (СВТ), который либо перехватывает на себя управление до момента старта ОС СВТ, либо с него необходимо инициировать загрузку до (вместо) ОС СВТ. Примером такого СЗИ является средство защиты информации от несанкционированного доступа (НСД) «Аккорд-АМДЗ».

Принцип работы СЗИ НСД «Аккорд-АМДЗ» следующий: контроллер перехватывает управление сразу после выполнения штатного BIOS СВТ и позволяет выполнить дальнейшую загрузку ОС только с заранее определенных постоянных носителей информации и только после прохождения ряда контрольных процедур: идентификации/аутентификации пользователя и проверки целостности технических и программных средств СВТ.

Попробуем применить существующие методы тестирования ПО к тестированию данного СЗИ.

Тестирование «Аккорд-АМДЗ», выполняемое вручную, в общем случае не отличается от ручного тестирования ПО, за исключением того, что необходимо обязательно учитывать в ПМИ некоторые особенности этого СЗИ, такие как [3]:

  • сложность фиксации ошибок в функционировании СЗИ (обычно связанная с невозможностью записи большого объема информации в память СЗИ или с тем, что любое возникновение серьезных ошибок, как правило, приводит к перезагрузке СВТ без сохранения каких-либо результатов);
  • невозможность в общем случае использовать режим отладки или еще каким-либо образом изменять программную составляющую СЗИ (с сохранением изменений до следующей перезагрузки);
  • СЗИ может быть реализовано на базе различных контроллеров (в рассматриваемом случае – Аккорд-5MX, 5.5, 5.5e, GX, GXM, GXMH), то есть входные данные в ПМИ необходимо дополнить различными вариантами исполнения аппаратной базы;
  • существование необходимости проведения перекрестного функционального тестирования составляющих программно-аппаратного СЗИ, то есть тестирование их взаимодействия (надежности интерфейса управления, надежности каких-либо аппаратных компонент – флеш-памяти и т.д.);
  • существование необходимости проведения тестирования на разнообразном оборудовании (с различными версиями BIOS/UEFI, различными прерываниями и питанием).

При рассмотрении возможности автоматизации тестирования «Аккорд-АМДЗ» сразу же возникает проблема, связанная с тем, что скрипты автоматизации могут функционировать только в ОС с установленным ПО автоматизации (достаточно большого объема с точки зрения объема памяти «Аккорд-АМДЗ»), то есть при наличии среды функционирования скриптов автоматизации. Кроме того невозможно автоматизировать тестирование «Аккорд-АМДЗ» на всём разнообразии оборудования (вручную устанавливая параметры BIOS и т.п., это нарушает идеологию проведения автоматизированных тестов, которые должны проводиться без участия человека. Поэтому автоматизированные тесты для «Аккорд-АМДЗ» в любом случае необходимо дополнять ручной проверкой работоспособности на различном оборудовании.

В соответствии с вышесказанным автоматизация тестирования «Аккорд-АМДЗ» крайне затруднена, возможна только частичная автоматизация и только при выполнении следующих условий:

Условие 1.1. Наличие достаточных условий для работы среды функционирования скриптов автоматизации (работоспособность в среде ОС СЗИ, увеличение объема памяти «Аккорд-АМДЗ», то есть изменение схемотехники).

Условие 1.2. Существование возможности фиксации результатов автоматизированного тестирования (например, с записью на внутренний или внешний носитель информации).

Условие 1.3. наличие скриптов автоматизации перекрестного функционального тестирования составляющих программно-аппаратного СЗИ.

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

При рассмотрении тестирования «Аккорд-АМДЗ» несколько с другой стороны, его можно разделить на две части: тестирование исполняемого кода СЗИ отдельно от аппаратной составляющей (например, в среде ОС СВТ, а не СЗИ) и тестирование конечного функционала СЗИ, доступного пользователю (то есть исполняемого кода вместе с аппаратной составляющей).

Исполняемый код СЗИ может быть запущен на выполнение не в среде ОС аппаратного устройства (в нашем случае контроллера Аккорд), а в среде аналогичной ОС, установленной на СВТ. Для исполнения этого кода не в операционной системе, а в виртуальной машине требуется возможность «пробрасывания» аппаратного компонента в конкретной среде виртуализации, что часто бывает невозможно. Таким образом, в рамках ОС СВТ можно автоматизировать процесс проверки корректности исполнения различных модулей, провести нагрузочное и стрессовое тестирование (интерфейса взаимодействия с контроллером и т.п.), проверить корректную работу интерфейса. Но в данном случае не будет ответа на главный вопрос: как будет работать финальный продукт, ведь весь этот код должен также корректно выполняться и в среде ОС контроллера Аккорд. Таким образом, дополнительно необходимо выполнять ручное тестирование.

На основании вышесказанного можно сделать вывод, что в случае с программно-аппаратными СЗИ, функционирующими до старта ОС, (на примере «Аккорд-АМДЗ») можно использовать либо только полуавтоматизированное тестирование без внесения каких-либо доработок в конструктив самого СЗИ, либо автоматизированное тестирование, для которого потребуется изменять как программную так и аппаратную компоненту СЗИ. Однако в обоих случаях потребуется дополнительно проводить проверки как минимум работоспособности СЗИ на различных СВТ.

Программно-аппаратные СЗИ, функционирующие в ОС

Рассмотрим СЗИ, функционирующие в ОС, в конструктив которых входит флеш-память (далее – СЗИ с флеш-памятью). Такие СЗИ представляют собой комплекс программного обеспечения и составного аппаратного устройства (как правило, отчуждаемого), включающего в себя:

  • компоненты, непосредственно реализующие функции по защите информации (микропроцессор, внутреннее ПО, ПО в ОС и т.п.);
  • прочие компоненты, не реализующие функции защиты напрямую, в данном случае – флеш-память.

Например, к средствам защиты с флеш-памятью можно отнести ПСКЗИ ШИПКА на базе ШИПКА-2.0 и служебные носители (СН) Секрет. При тестировании таких СЗИ (как ручном, так и автоматизированном) необходимо дополнительно к привычным методам тестирования ПО провести такие проверки, как:

  1. тестирование флеш-памяти (определение скоростных характеристик, нагрузочные тесты и т.п.);
  2. тестирование взаимодействия компонент, реализующих защитные функции, с флеш-памятью.

Таким образом, при тестировании СЗИ, функционирующих в ОС, в конструктив которых входит флеш-память, необходимо дополнить ПМИ приведенными выше проверками. При этом следует отметить, что, например, тестирование флеш-памяти в аспекте определения её надежности провести вручную можно, но, как минимум, неразумно по временным затратам, так как это требует выполнения большого количества циклов атомарных операций чтения/записи различных по объему блоков данных. Для тестирования флеш-памяти целесообразно применять существующие и широкодоступные специализированные средства, вместо разработки собственных тестов [4].

При рассмотрении возможности автоматизации тестирования программно-аппаратных СЗИ с флеш-памятью, возникает нюанс, связанный с необходимостью переподключения аппаратной составляющей в процессе тестирования функционала продукта, используемого конечными пользователями. Для решения такой проблемы необходимо использовать специальные USB-прерыватели, позволяющие выполнять отключение питания на шине USB (для самого СЗИ), без физического отключения устройства. То есть применение такого прерывателя позволяет полноценно эмулировать работу реального пользователя программно-аппаратного СЗИ.

В соответствии с вышесказанным автоматизация тестирования СЗИ с флеш-памятью, в общем случае возможна, но требует выполнения ряда условий, таких как:

Условие 2.1. Применение USB-прерывателя в случае необходимости переподключения СЗИ в ходе настройки или использования.

Условие 2.2. Поддержка среды функционирования скриптов автоматизации в целевой ОС.

Условие 2.3. Наличие скриптов автоматизации или прочих средств тестирования флеш-памяти и взаимодействия компонент программно-аппаратных СЗИ.

Ручное же тестирование таких СЗИ достаточно затруднено и требует, как минимум, использования сторонних программ для тестирования флеш-памяти (т.е. желательна, как минимум, частичная автоматизация).

Формализация критериев применимости методов тестирования ПО к программно-аппаратным СЗИ

Обозначим как M = {m1, m2, m3, m4,...} - множество всех программно-аппаратных СЗИ, где m1, m2, m3, m4, ... - некоторые программно-аппаратные СЗИ (например, средства защиты, рассмотренные выше – ШИПКА и Аккорд-АМДЗ).

Обозначим Мр – множество программно-аппаратных СЗИ, для которых возможно ручное тестирование.

М = Мр для любого непротиворечивого СЗИ (Мр ⊆ М по определению, то есть все программно-аппаратные СЗИ могут быть проверены вручную).

В соответствии с этим множество М можно представить в следующем виде:

Ма U Мпа ⊆ M = Mр, где:

Ма – множество программно-аппаратных СЗИ, тестирование которых можно проводить автоматизировано;

Мпа – множество программно-аппаратных СЗИ, тестирование которых возможно автоматизировать только частично.

При этом:

  1. Ма ⊆ Мр = M, Мпа ⊆ Мр = M – подмножества множества М.
  2. Подмножества Ма и Мпа не пересекаются - Ма ∩ Мпа = ∅.

Множество программно-аппаратных СЗИ (M) представлено на рис. 1.

Рисунок 1: Множество программно-аппаратных СЗИ (М)

Также множество М может быть представлено следующим образом:

M = Pос U Pдоос, где:

Pос – множество программно-аппаратных СЗИ, функционирующих в среде ОС;

Pдоос – множество программно-аппаратных СЗИ, функционирующих до старта ОС.

Множество Рос состоит из двух подмножеств: Рос = Рusb U Pдр, где:

Pusb – множество программно-аппаратных СЗИ, функционирующих в среде ОC, аппаратная часть которых подключается в USB-порт СВТ;

Pдр – множество других программно-аппаратных СЗИ, функционирующих в среде ОС, не входящих в Pusb.

При этом Рusb ∩ Pдр = ∅.

Определение 1:

Определим математическую модель некоторого абстрактного программно-аппаратного СЗИ следующим образом: ∀ m ∈ M может быть представлено в виде m = ∑(F, V, OP) - набора следующих множеств:

  • F - множество целевых функций, которые выполняет программно-аппаратное СЗИ (например: шифрование, подпись, контроль доступа и т.п.);
  • V - множество состояний, в которых может находиться аппаратная компонента (при этом v0 ∈ V - начальное состояние, например, когда аппаратная составляющая не инициализирована);
  • OP - множество функций переходов программно-аппаратного СЗИ из одного состояния в другое (например, инициализация аппаратной компоненты и ее переход в инициализированное состояние).

В каждый момент времени СЗИ может находиться в определенном состоянии (F`, v, OP), где v ∈ V – текущее состояние m, F` - множество выполнимых в данном состоянии v целевых функций m. При этом объединение U F` = F, ∀ v ∈ V.

В общем случае ∀ F` ⊆ F, F`(input) =

True (если F` выполнена успешно)

False (если произошла ошибка)

где:

input – набор формальных параметров функции F`, зависит от реализации функции (например, для шифрования файла – это файл, который нужно зашифровать, куда сохранить зашифрованный результат, и ключ шифрования).

op ∈ OP: (F`, v1, OP) → (F``, v2, OP), то есть m переходит из одного состояния (F`, v1, OP) в другое (F``, v2, OP).

При этом из-за особенностей конкретных программно-аппаратных СЗИ некоторые функции, которые выполняет СЗИ, могут быть выполнены только в определенных состояниях, в которых находится аппаратная компонента СЗИ. Например, как правило, нельзя выполнять никакой функционал СЗИ до того, как выполнится первоначальная инициализация его аппаратной компоненты, нельзя использовать функции шифрования криптографического СЗИ, если не сгенерированы ключи шифрования и т.п.

Таким образом, Определение 1 подразумевает, что некоторые функции из множества F могут быть вычислимы в понятиях теории алгоритмов [5] только в определенных состояниях из множества V, в других состояниях данные функции могут быть невычислимы.

Также функции из множества OP могут быть как функциями, реализованными непосредственно в самом программно-аппаратном СЗИ (нецелевые функции, например, функция инициализации устройства), так и функциями, внешними по отношению к нему, которые необходимо реализовывать дополнительно (например, ввод пин-кода, переподключение аппаратной компоненты и т.д.)

Определим множество функций ручных проверок для программно-аппаратных СЗИ.

Определение 2:

Пусть m ∈ M и m = ∑(F, V, OP) в соответствии с Определением 1. Пусть F = {F1, ..., Fn}, где n ∈ N - конечное множество целевых функций, которые выполняет m.

Так как M = Мр, то для m существует R = R1 U … U Rn, где n ∈ N – конечное множество функций ручных проверок, соответствующих функциям F = {F1, ..., Fn}.

При этом если представить все функции в F в виде набора выполняющихся друг за другом подфункций f (шагов, необходимых для выполнения самой функции):

∀ Fi ⊆ F (i = 1,…, n), Fi(input) =

f1(input1)

fk (inputk)

При этом ∀ fj ⊆ Fi (j = 1,…, k), fj(inputj) =

True (если fj выполнена успешно)

False (если произошла ошибка)

Если fj = False, то Fi = False;

Если fj = True, то Fi = True, если j = k

то в таком случае можно определить функции ручных проверок следующим образом:

В общем случае ∀ Ri ⊆ R, Ri (input, output) =

где i = 1,...,n.

True (если Fi выполнена успешно)

False (если произошла ошибка)

∀ rj ∈ Ri, rj(inputj, outputj) =

где j = 1,...,k.

True (если fj выполнена успешно).

False (если произошла ошибка)

где:

outputj – набор выходных данных (лог работы, код ошибки, дополнительный результат и т.д.).

output = outputj, если rj = False (Ri = False).

output = outputj+1, если rj = True, j ≠ k (Ri = True, output = outputj, если j = k).

Определение 2.1:

∀ rj ∈ Ri вычислима, если соответствующая ей fj ∈ Fi вычислима, для ∀ j = 1,…,k.

Определение 2.2:

Пусть m = ∑(F, V, OP) ∈ M. Тогда m ∈ Mр, если ∀ Ri ⊆ R (множество функций ручных проверок по Определению 2), Ri – множество вычислимых функций, i = 1,…, n.

Основываясь на Определениях 1, 2, 2.1 и 2.2 формализуем общий критерий возможности проведения ручного тестирования программно-аппаратных СЗИ.

Утверждение 1 (Общий критерий возможности проведения ручного тестирования программно-аппаратных СЗИ):

Если m = ∑(F, V, OP) ∈ M, в состоянии v0 ∈ V, то m ∈ Mp ⇐⇒:

  1. либо ∀ rj ∈ Ri вычислимы в состоянии v0 ∈ V для ∀ Ri ⊆ R;
  2. либо ∃ op1,…, opL ∈ OP (функции перехода в состояния v1,…, vL): ∀ rj ∈ Ri, невычислимые в состоянии v0, вычислимы в одном из состояний v1,…, vL, для ∀ Ri ⊆ R.

То есть Ri (input, output) =

r1(input1, output1)

opl

rj(inputj, outputj)

rk(inputk, outputk)

где opl – функция перехода в состояние, где rj(inputj, outputj) – вычислима.

Определим множество функций (скриптов) автоматизации для программно-аппаратных СЗИ.

Определение 3:

Пусть m ∈ M и m = ∑(F, V, OP) в соответствии с Определением 1. Пусть F = {F1, ..., Fn}, где n ∈ N - конечное множество целевых функций, которые выполняет m.

Для m определим множество функций (скриптов) автоматизации, применимых как для ПО, так и для программно-аппаратных СЗИ, как S = S1 U … U Sn, где n ∈ N – конечное множество функций автоматизированных проверок, соответствующих целевым функциям F = {F1, ..., Fn}.

При этом если представить все функции в F в виде набора выполняющихся друг за другом подфункций f (аналогично Определению 2), то в таком случае можно определить функции автоматизированных проверок следующим образом:

∀ Si ⊆ S, Si (input, output, count) =

где i = 1,...,n.

True (если Fi выполнена успешно)

False (если произошла ошибка)

count – количество повторов выполнения автоматизированного скрипта.

Si (input, output, count) =

for (i = 0,…, count) {

s1(input1, output1)

sk(inputk, outputk)

}

∀ sj ∈ Si, sj(inputj, outputj) =

где j = 1,...,k.

True (если fj выполнена успешно)

False (если произошла ошибка)

где outputj – набор выходных данных (лог работы, код ошибки, дополнительный результат и т.д.), необходимый для анализа и отчетности средства автоматизации.

оutput =

{

output`1

output`count

}

где:

output`l = outputj, l = 1,…,count, если sj = False на итерации l.

output`l = outputj+1, l = 1,…,count, если sj = True, j≠k на итерации l (output` l = outputj, если j = k).

Определение 3.1:

∀ sj ∈ Si вычислимая функция автоматизации, если соответствующая ей fj ∈ Fi вычислима, для ∀ j = 1,…,k и существуют достаточные условия для выполнения sj и возможность фиксации результата sj.

Определение 3.2:

Пусть m = ∑(F, V, OP) ∈ M. Тогда m ∈ Mа, если ∀ Si ⊆ S (множество функций автоматизации по Определению 3), Si – множество вычислимых функций автоматизации, i = 1,…, n.

Основываясь на Определениях 1, 3, 3.1 и 3.2 формализуем общие критерии возможности полной и частичной автоматизации тестирования программно-аппаратных СЗИ.

Утверждение 2 (Общий критерий возможности автоматизации тестирования программно-аппаратных СЗИ):

Если m = ∑(F, V, OP) ∈ M, в состоянии v0 ∈ V, то m ∈ Mа ⇐⇒:

  1. либо ∀ sj ∈ Si является вычислимой функцией автоматизации в состоянии v0 ∈ V, для ∀ Si ⊆ S;
  2. либо ∃ op1,…, opL ∈ OP (автоматизированные функции перехода в состояния v1,…, vL): ∀ sj ∈ Si, невычислимые функции автоматизации в состоянии v0, являются вычислимыми функциями автоматизации в одном из состояний v1,…, vL, для ∀ Si ⊆ S.

То есть Si (input, output, count) =

for (i = 0,…, count) {

s1(input1, output1)

opl

sj(inputj, outputj)

sk(inputk, outputk)

}

где opl – функция перехода в состояние, где sj(inputj, outputj) – вычислима.

Следствие (Общий критерий возможности частичной автоматизации тестирования программно-аппаратных СЗИ):

Если m = ∑(F, V, OP) ∈ M, в состоянии v0 ∈ V, то m ∈ Mпа ⇐⇒ ∃ Si ⊆ S, Si – множество вычислимых функций автоматизации, i = 1,…, n ⇐⇒:

  1. либо ∀ sj ∈ Si является вычислимой функцией автоматизации в состоянии v0 ∈ V, для Si ⊆ S;
  2. либо ∃ op1,…, opL ∈ OP (автоматизированные функции перехода в состояния v1,…, vL): ∀ sj ∈ Si невычислимые функции автоматизации в состоянии v0, являются вычислимыми функциями автоматизации в одном из состояний v1,…, vL, для Si ⊆ S.

Применим общий критерий возможности проведения ручного тестирования из Утверждения 1 к таким программно-аппаратным СЗИ, как «Аккорд-АМДЗ» и ПСКЗИ ШИПКА.

Обозначим СЗИ НСД «Аккорд-АМДЗ» как mамдз, ПСКЗИ ШИПКА как mшипка (mамдз, mшипка ∈ M).

Аксиома 1: mамдз ∈ Pдоос.

Аксиома 2: mшипка ∈ Pusb ⊆ Pос.

Утверждение 3: Пусть mамдз = ∑(Fамдз, Vамдз, OPамдз) ∈ M – СЗИ НСД «Аккорд-АМДЗ», а mшипка = ∑(Fшипка, Vшипка, OPшипка) ∈ M – ПСКЗИ ШИПКА.

Тогда mамдз = ∑(Fамдз, Vамдз, OPамдз) ∈ Mр, mшипка = ∑(Fшипка, Vшипка, OPшипка) ∈ Mр.

Докажем Утверждение 3 для «Аккорд-АМДЗ» и ПСКЗИ ШИПКА.

«Аккорд-АМДЗ»

mамдз может находиться в следующих состояниях v0 , v1 , v2 , v3 ∈ Vамдз:

v0 – начальное состояние, когда контроллер неинициализирован (пустая БД пользователей, необходимо создать гл.Администратора);

v1 – состояние, когда контроллер готов к работе (инициализирован, зарегистрирован гл. Администратор, могут быть созданы пользователи и списки КЦ);

v2 – состояние, когда контроллер завершил работу (проведена и/а, проведены контрольные процедуры, результаты переданы в ОС);

v3 – состояние, когда контроллер находится в технологическом режиме.

Из принципа работы «Аккорд-АМДЗ» следует, что все его целевые функции вычислимы либо в состоянии v1 , либо в состоянии v2.

В начальный момент времени работы контроллера он не может находиться в состоянии v2, при этом он может находится в одном из состояний - v0, v1, v3. Поэтому, по Утверждению 1, чтобы сделать вычислимой задачу ручного тестирования «Аккорд-АМДЗ» должны существовать функции перехода op1,…, op5 ∈ OP из одних состояний mамдз в другие:

  • op1: v0 → v1;
  • op2: v1 → v2;
  • op3: v0 → v2;
  • op4: v3 → v1;
  • op5: v3 → v2.

Возможные состояния и функции переходов mамдз изображены на рис. 2.

Рисунок 2: Возможные состояния и функции переходов mамдз

Для mамдз такими функциями перехода являются его штатные возможности, а именно:

op1 – функция инициализации контроллера (инициализация БД пользователей, регистрация гл. Администратора);

op2 – функция перехода при успешном прохождении процедуры и/а пользователя и контроля целостности (в случае неуспешной и/а пользователя или непрохождения КЦ контроллер переходит в состояние v1);

op3 – составная функция перехода, состоящая из op1 и op2;

op4 – перевод контроллера из технологического режима в рабочий (ручная установка или снятие перемычки и т.п.);

op4 – составная функция перехода, состоящая из op4 и op2.

Все перечисленные функции переходов могут быть выполнены вручную, в соответствии с чем все целевые функции могут быть вычислимы после выполнения соответствующих переходов при ручном тестировании «Аккорд-АМДЗ», то есть mамдз ∈ Mр, что и требовалось доказать.

ПСКЗИ ШИПКА

mшипка может находиться в следующих состояниях v0 , v1 , v2 , v3 , v4 ∈ Vшипка:

v0 – начальное состояние, когда устройство неинициализировано (не форматировано, не заданы параметры авторизации, пароль администратора, PIN и PUK-код пользователя);

v1 – состояние, когда устройство инициализировано и подготовлено к работе (отформатировано, заданы параметры авторизации, пароль администратора, PIN и PUK-код пользователя);

v2 – состояние, когда устройство готово к работе и не введен PIN-код пользователя (сгенерированы или импортированы криптографические ключи и сертификаты, необходимые для выполнения процедур шифрования и подписи, или зарегистрирован пользователь для осуществления защищенного входа в ОС, или созданы пасскарты, или существует одновременное сочетание двух или более перечисленных пунктов);

v3 – состояние, когда устройство готово к работе аналогично v2, но при этом введен корректный PIN-код пользователя.

v4 – состояние, когда устройство находится в технологическом режиме.

В начальный момент времени работы ПСКЗИ ШИПКА может находиться в состояниях v0, v1, v2, v4 и не может находится в состоянии v3.

При этом, так как ПСКЗИ ШИПКА является отчуждаемым устройством (mшипка ∈ Pusb), то для mшипка существуют состояния v`0 , v`1 , v`2 , v`4 ∈ Vшипка аналогичные состояниям v0 , v1 , v2 , v4 ∈ Vшипка, но в которых устройство не подключено в USB-порт СВТ. В начальный момент времени работы ПСКЗИ ШИПКА также может находиться в состояниях v`0, v`1, v`2, v`4.

Из принципа работы ПСКЗИ ШИПКА следует, что все его целевые функции вычислимы только в состоянии v3.

Поэтому, по Утверждению 1, чтобы сделать вычислимой задачу ручного тестирования для ПСКЗИ ШИПКА должны существовать функции перехода op1,…, op5 ∈ OP из одних состояний mшипка в другие:

  • op1: v2 → v3;
  • op2: v`2 → v3;
  • op3: v1 → v3;
  • op4: v`1 → v3;
  • op5: v0 → v3;
  • op6: v`0 → v3;
  • op7: v4 → v3;
  • op8: v`4 → v3.

Возможные состояния и функции переходов mшипка изображены на рис. 3.

Рисунок 3: Возможные состояния и функции переходов mшипка

Для mшипка такими функциями перехода являются:

op1 – ввод PIN-кода;

op2 – составная функция перехода, состоящая из подключения устройства в USB-порт СВТ и выполнения op1;

op3 – составная функция перехода, состоящая из процедур генерации или импорта криптографических ключей и сертификатов, или регистрации пользователя для осуществления защищенного входа в ОС, или создания пасскарты, или одновременное сочетание двух или более перечисленных пунктов, а также из выполнения op1;

op4 – составная функция перехода, состоящая из подключения устройства в USB-порт СВТ и выполнения op3;

op5 – составная функция перехода, состоящая из инициализации устройства и выполнения op3;

op6 – составная функция перехода, состоящая из подключения устройства в USB-порт СВТ и выполнения op5;

op7 – составная функция перехода, состоящая из перевода устройства из технологического режима в состояние v0 , v1 , или v2 и выполнения op5, op3 или op1 соответственно;

op8 – составная функция перехода, состоящая из подключения устройства в USB-порт СВТ и выполнения op7;

Все перечисленные функции переходов могут быть выполнены вручную, в соответствии с чем все целевые функции могут быть вычислимы после выполнения соответствующих переходов при ручном тестировании ПСКЗИ ШИПКА, что и требовалось доказать.

Формализуем частные критерии возможности автоматизации тестирования «Аккорд-АМДЗ» и ПСКЗИ ШИПКА, используя Условия 1.1-1.3 и Условия 2.1-2.3 соответственно и общий критерий из Утверждения 2.

Утверждение 4 (частный критерий возможности автоматизации тестирования «Аккорд-АМДЗ»):

Пусть mамдз = ∑(Fамдз, Vамдз, OPамдз) ∈ M – СЗИ НСД «Аккорд-АМДЗ».

Тогда mамдз = ∑(Fамдз, Vамдз, OPамдз) ∈ Mа ⇐⇒ ∀ Si ⊆ S (определенных в соответствии с Определением 3) выполняются следующие условия:

  1. ∀ sj ∈ Si являются вычислимыми функциями автоматизации в каком-либо состоянии v ∈ Vамдз.
  2. ∃ op4 ∈ OP, позволяющая автоматизировано переходить из состояния v3 (технологический режим) в состояние v1 (рабочий режим), в следствии чего невычислимые в состоянии v3 функции автоматизации sj ∈ Si становятся вычислимыми функциями автоматизации в состоянии v1 или v2.

Из Определения 3, 3.1, 3.2 и Утверждения 3 следует, что ∀ sj ∈ Si должны быть вычислимыми функциями автоматизации в каком-либо состоянии v ∈ Vамдз.

Из Утверждения 3 следует, что все функции переходов из OPамдз, кроме op4, могут быть автоматизированы, в соответствии с чем, если каким-либо образом автоматизировать op4, то для вычислимости задачи автоматизированного тестирования «Аккорд-АМДЗ» достаточно будет вызывать функции автоматизированного перехода из одного состояния (в котором некоторая sj невычислима) в другое (в котором эта функция sj вычислима).

Утверждение 5 (частный критерий возможности автоматизации тестирования ПСКЗИ ШИПКА):

Пусть mшипка = ∑(Fшипка, Vшипка, OPшипка) ∈ M – ПСКЗИ ШИПКА.

Тогда mшипка = ∑(Fшипка, Vшипка, OPшипка) ∈ Mа ⇐⇒ ∀ Si ⊆ S (определенных в соответствии с Определением 3) выполняются следующие условия:

  1. ∀ sj ∈ Si являются вычислимыми функциями автоматизации в каком-либо состоянии v ∈ Vшипка.
  2. ∃ op2, op4, op6, op8 ∈ OP, позволяющие автоматизировано подключать/переподключать устройство в USB-порт СВТ (с дополнительными дальнейшими действиями), вследствии чего невычислимые функции автоматизации sj ∈ Si становятся вычислимыми.

Доказательство аналогично Утверждению 4. В качестве указанных в условиях op2, op4, op6, op8 ∈ OP может выступать USB-прерыватель, способный подавать или прерывать питание на USB-порт СВТ. Поэтому для вычислимости задачи автоматизированного тестирования ПСКЗИ ШИПКА достаточно включать и выключать USB-прерыватель до или после определенных функций автоматизации.

Таким образом, можно сделать вывод, что и для программно-аппаратных СЗИ, функционирующих до момента страта ОС и для программно-аппаратных СЗИ, функционирующих в ОС применимы все те же методы тестирования программного обеспечения, но с учетом некоторых особенностей, индивидуальных для каждого СЗИ. Для того чтобы выполнять автоматизированное тестирование рассмотренных программно-аппаратных СЗИ, необходимо обязательное выполнение описанных выше критериев.

Литература

  1. Тамре Л. Введение в тестирование программного обеспечения // Вильямс. 2003. Стр. 368.
  2. Котляров В.П. Основы тестирование программного обеспечения // Интернет-Университет Информационных Технологий. БИНОМ. Лаборатория знаний, М., 2006. Стр. 285
  3. Борисова Т. М., Кузнецов А. В. Проблемы тестирования СЗИ, функционирующих до старта ОС // Комплексная защита информации. Электроника инфо. Материалы XVIII Международной конференции 21–24 мая 2013 года, Брест (Республика Беларусь). 2013. С. 114-115
  4. Борисова Т. М., Обломова А. И. Способы автоматизации тестирования СЗИ, функционирующих в ОС, на примере ПСКЗИ ШИПКА // Комплексная защита информации. Электроника инфо. Материалы Электроника инфо. Материалы XVIII Международной конференции 21–24 мая 2013 года, Брест (Республика Беларусь). 2013. С. 117-118
  5. Мальцев А.Н. Алгоритмы и рекурсивные функции. – М., Наука, 1986. – 366 с.

Автор: Каннер(Борисова) Т. М.

Дата публикации: 01.01.2015

Библиографическая ссылка: Каннер (Борисова) Т. М. Применимость методов тестирования ПО к программно-аппаратным СЗИ // Вопросы защиты информации: Научно-практический журнал. М.: ФГУП «ВИМИ», 2015. Вып. 1. С. 30–39.


Метки документа:
другое   тестирование  

Scientia potestas est
Кнопка связи