в начало  предыдущее  закрыть  следущее  в конец
141090, Московская область, г.Королев, мкр.Юбилейный, ул. Ленинская, д.4, пом.7
Телефон: +7(495) 589-99-53, e-mail: support@lissi.ru

Контроль отсутствия недекларированных возможностей программного изделия

Цель контроля: формирование на основании анализа результатов проверочных действий заключения об отсутствии (наличии) недекларированных возможностей (далее по тексту – НДВ) программного обеспечения, в том числе отсутствия (наличия) программных закладок. Перечень проверочных действий, подлежащих выполнению в рамках конкретного уровня контроля, определяется положениями руководящего документа Гостехкомиссии России «Защита от несанкционированного доступа к информации. Часть 1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей» (введен в действия Приказом Председателя Гостехкомиссии России № 114 от 04.06.1999 г., далее по тексту – РД НДВ).

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

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

В соответствии с пунктом 2.1 РД НДВ под недекларированными возможностями понимаются функциональные возможности программного обеспечения (далее по тексту – ПО), не описанные или не соответствующие описанным в документации, при использовании которых возможно нарушение конфиденциальности, доступности или целостности обрабатываемой информации. Реализацией недекларированных возможностей, в частности, являются программные закладки.

В соответствии с пунктом 2.2 РД НДВ под программными закладками понимаются преднамеренно внесенные в ПО функциональные объекты, которые при определенных условиях (входных данных) инициируют выполнение не описанных в документации функций ПО, приводящих к нарушению конфиденциальности, доступности или целостности обрабатываемой информации.

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

РД НДВ не требует определения количественных характеристик программного обеспечения. Пример перечня качественных характеристик, оцениваемых при выполнении 3 уровня контроля в соответствии с РД НДВ, приведен в таблице 1.


Таблица 1

п/пТребование РД НДВПункт РД НДВКачественная характеристикаМетод исследованийМетод оценки
1.Контроль состава и содержания документации3.2.1
3.3.1
Соответствие требованиям, предъявляемым к составу и содержанию документацииЭкспертиза документацииЗаключение эксперта
2.Контроль исходного состояния ПО3.2.2Соответствие полученных результатов расчета контрольных сумм и фиксации файлов исходных текстов и дистрибутивов анализируемого ПО данным, приведенным в документацииРасчет контрольных сумм и фиксация размеров файлов исходных текстов и дистрибутивов компонентов ПОСравнительный анализ результатов расчета и фиксации с данными документации
3.Статический анализ исходных текстов программ
3.1Контроль полноты и отсутствия избыточности исходных текстов ПО на уровне файлов3.2.3Полнота и отсутствие избыточности исходных текстов ПО на уровне файловВыполнение контрольной сборки ПО. Выявление файлов, не участвующих в процессе сборки ПОЗаключение эксперта
3.2Контроль соответствия исходных текстов ПО объектному (загрузочному) коду3.2.3Соответствие исходных текстов ПО объектному (загрузочному) кодуАнализ соответствия результатов контрольной сборки ПО исходным текстам ПО и данными документацииЗаключение эксперта
3.3Контроль полноты и отсутствия избыточности исходных текстов ПО на уровне функциональных объектов (процедур, функций)3.3.3Полнота и отсутствие избыточности исходных текстов ПО на уровне функциональных объектов (процедур, функций)Выявление процедур (функций), которые в ПО только объявлены, но к которым нет обращений из функциональных объектовЗаключение эксперта
3.4Контроль связей функциональных объектов (модулей, процедур, функций) по управлению3.3.3Отсутствие недекларированных в документации связей функциональных объектов (модулей, процедур, функций) по управлениюВыявление отношений по передачам управления между функциональными объектамиСравнительный анализ выявленных отношений с данными документации
3.5Контроль полноты и отсутствия избыточности исходных текстов ПО на уровне типов информационных объектов3.3.3Полнота и отсутствие избыточности исходных текстов ПО на уровне типов информационных объектовВыявление типов информационных объектов, которые только объявлены, но нигде не используютсяЗаключение эксперта
3.6Контроль полноты и отсутствия избыточности исходных текстов ПО на уровне информационных объектов (переменных)3.3.3Полнота и отсутствие избыточности исходных текстов ПО на уровне информационных объектов (переменных)Выявление переменных, которые только объявлены, но нигде не используютсяЗаключение эксперта
3.7Контроль связей функциональных объектов (модулей, процедур, функций) по информации3.3.3Отсутствие недекларированных в документации связей функциональных объектов по информацииВыявление отношений по использованию информационных объектов различными функциональными объектамиСравнительный анализ выявленных отношений с данными документации
3.8Контроль информационных объектов различных типов3.3.3Отсутствие недекларированных в документации обращений к переменнымФормирование перечня информацион-ных объектов, подлежащих контролю. Анализ всех участков кода, в которых осуществляет-ся обращение к указанным в перечне информацион-ным объектамЗаключение эксперта
3.9Формирование перечня маршрутов выполнения функциональных объектов (процедур, функций)3.3.3Для данного требования РД НДВ качественная характеристика оценки результатов не вводится, данный этап испытаний рассматривается как технологический, результат которого используется совместно с результатом динамического анализа (см. ниже)Построение по исходным кодам цепочки вызовов функциональных объектов (маршрутов) 
4.Динамический анализ исходных текстов программ
4.1Контроль выполнения функциональных объектов (процедур, функций)3.3.4Соответствие реальных обращений (вызовов, передачи управления) функциональных объектов описанию, приведенному в документацииКонтроль процесса выполнения программно-го обеспеченияСравнительный анализ данных файла результатов контроля выполнения функциональ-ных объектов и данных документации
4.2Сопоставление фактических маршрутов выполнения функциональных объектов и маршрутов, построенных в процессе проведения статического анализа3.3.4Соответствие фактических маршрутов выполнения функциональных объектов (процедур, функций) и маршрутов, построенных в процессе проведения статического анализаВыявление расхождений в маршрутах выполнения функциональных объектов, полученных на этапах статического и динамического анализаСравнительный анализ

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

  • спецификация (ГОСТ 19.202-78);
  • описание программы (ГОСТ 19.402-78);
  • описание применения (ГОСТ 19.502-78);
  • исходные тексты программ (ГОСТ 19.401-78);
  • пояснительная записка (ГОСТ 19.404-79).

Контроль исходного состояния ПО подразумевает, что при идентификации объекта сертификации, заключающейся в расчете указанным разработчиком способом (технологическим средством) контрольных сумм модулей исполняемого кода и исходных текстов программного средства, полученные данные расчетов при последующем сравнении совпадут с данными, приведенными в документации на сертифицируемое программное средство.

Контроль полноты и отсутствия избыточности исходных текстов ПО на уровне файлов подразумевает, что контролируемое программное средство не содержит в своем составе программных модулей (файлов), явно не используемых другими программными модулями.

Контроль соответствия исходных текстов ПО объектному (загрузочному) коду подразумевает мониторинг сборки исполняемого кода из исходного с последующим побайтным сравнением результата сборки с исполняемым кодом, представленным заявителем для проведения сертификационных испытаний.

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

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

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

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

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

Эксперт может внести в перечень также и другие информационные объекты, субъективно показавшиеся ему существенными. В результате выполнения контроля формируется список информационных объектов и ссылки на участки исходного текста, в которых эти информационные объекты используются. Результат контроля считается положительным, если список информационных объектов и ссылки на участки исходного текста, в которых эти информационные объекты используются, соответствуют данным, представленным в документах «Описание программы», «Описание применения» и «Пояснительная записка».

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

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

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

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

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


Актуальность контроля отсутствия недекларированных возможностей

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

Суть технологических преимуществ обусловлена самой спецификой проведения сертификационных испытаний такого рода. Технологические операции, присущие контролю отсутствия НДВ, такие, как идентификация объекта сертификации, мониторинг сборки исполняемого кода из исходного, мониторинг начальной инсталляции программного средства, статический анализ исходного кода позволяют получить большой объем полезной аналитической информации. Как уже упоминалось ранее, возможно четко соотнести исходный и исполняемый код ПС, выявить и устранить избыточность представленного на испытания исходного кода (которая присуща многим проектам, особенно большим по объему и разработанным разными программистами), однозначно определить действия ПС в процессе начальной инсталляции и деинсталляции по отношению к системным областям операционной системы ЭВМ, получить ряд других характеристик ПС. Полученные результаты испытаний могут быть использованы разработчиком для проведения углубленного анализа своего продукта, планирования и реализации корректирующих воздействий по отношению к ПС в части усовершенствования процессов его разработки и сопровождения.

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

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

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

  • государственный документ - сертификат - с определенной степенью вероятности, зависящей от уровня проведенного контроля, подтверждает тот факт, что в проверенном ПС нет явных программных конструкций, использование которых предполагает возможность несанкционированного доступа, нарушения целостности и доступности защищаемой информации.
  • при проведении испытаний по более высоким уровням контроля результирующим сертификатом фактически подтверждается способность ПС реализовывать свои продекларированные возможности.
  • по результатам проведенных испытаний ПС приобретает четкий идентификационный признак - зафиксированные контрольные суммы исходных и исполняемых файлов, позволяющий осуществлять мероприятия по контролю целостности сертифицированного ПС на этапах эго разработки, тиражирования и эксплуатации.
© 2002-2017. ООО "ЛИССИ-Софт". Все права защищены
Телефон: +7(495) 589-99-53, e-mail: support@lissi.ru