СПОСОБ АНАЛИЗА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОТСУТСТВИЕ НЕДЕКЛАРИРОВАННЫХ ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ
SOFTWARE ANALYSIS METHOD BASED ON ABSENCE OF UNDECLARED FUNCTIONALITIES

Изобретение относится к вычислительной технике, а именно к информационным вычислительным системам и сетям, и может быть использовано для защиты информационных ресурсов рабочих станций и серверов, их компонентов, программ или данных от несанкционированного доступа к ним, а также при анализе исходного кода программного обеспечения (ПО), в том числе при проведении сертификационных испытаний программного обеспечения на отсутствие недекларированных возможностей.
Толкование терминов, используемых в заявке:
недекларированные (функциональные) возможности - функциональные возможности ПО, не описанные или не соответствующие описанным в документации, при использовании которых возможно нарушение конфиденциальности, доступности или целостности обрабатываемой информации (Руководящий документ «Защита от несанкционированного доступа к информации. Часть 1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей», утв. Гостехкомиссией России 04.06.1999, далее - РД НДВ);
программные закладки - преднамеренно внесенные в ПО функциональные объекты, которые при определенных условиях (входных данных) инициируют выполнение не описанных в документации функций ПО, приводящих к нарушению конфиденциальности, доступности или целостности обрабатываемой информации (РД НДВ);
логическая бомба (англ. logic bomb) - функциональный объект, который запускается при определенных временных или информационных условиях для осуществления вредоносных действий (Танненбаум Э., Бос X. Современные операционные системы. 4-е изд. - СПб.: - Питер, 2015);
функциональный объект - элемент программы, осуществляющий выполнение действий по реализации законченного фрагмента алгоритма программы. В качестве функциональных объектов могут выступать процедуры, функции, ветви, операторы и т.п. (РД НДВ);
CWE - общий перечень дефектов безопасности. Предназначен для разработчиков и специалистов по обеспечению безопасности ПО. Он представляет собой официальный реестр или словарь общих дефектов безопасности, которые могут проявиться в архитектуре, проектировании, коде или реализации ПО, и могут быть использованы злоумышленниками для получения несанкционированного доступа к системе. Данный перечень был разработан в качестве универсального формального языка для описания дефектов безопасности ПО, а также в качестве стандарта для измерения эффективности инструментов, выявляющих такие дефекты, и для распознавания, устранения и предотвращения эти дефектов (Common Weakness Enumeration: офиц. сайт.URL: https://cwe.mitre.org/about/faq.htm);
фактический маршрут выполнения скомпилированных файлов (функциональных объектов) - последовательность фактически выполняемых функциональны объектов при определенных условиях (входных данных) (РД НДВ);
среда функционирования - набор системного и прикладного ПО, включая стандартную службу времени, которое установлено и используется на рабочей станции для обеспечения работоспособности исследуемого ПО и проведения его анализа.
Уровень техники
а) описание аналогов
Известен аналог - система контроля отсутствия недекларированных возможностей в программном обеспечении (Пат. 2434265 Российская Федерация, МПК G06F 11/00. Система контроля отсутствия недекларированных возможностей в программном обеспечении [Текст] / Минаков В.А., Мирошников В.В., Бурушкин А.А.; заявитель и правообладатель Федеральное государственное учреждение «Государственный научно-исследовательский испытательный институт проблем технической защиты информации Федеральной службы по техническому и экспортному контролю». - №2010129013/08; заявл. 13.07.2010; опубл. 20.11.2011. Бюл. №32), которая заключается в том, что сохраняют исходные тексты исследуемого ПО, устанавливают контрольные точки в файлы, а также процедуры и функции исходных текстов исследуемого ПО, компилируют файлы исходных текстов исследуемого ПО, запускают на выполнение скомпилированные файлы исследуемого ПО, обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления исследуемого ПО, перехватывают и сохраняют информацию о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, перехватывают и сохраняют информацию о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, дополнительно осуществляют поиск потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций, осуществляют корректировку результатов перехвата информации о найденных потоках управления исследуемого ПО, пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, поиска потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО с помощью интерактивного взаимодействия с экспертами, после чего выдают итоговые результаты [4].
Недостатком указанной системы является низкая достоверность результатов контроля отсутствия недекларированных функциональных возможностей в ПО ввиду возможности пропуска программных закладок типа «логическая бомба». Контроль отсутствия недекларированных возможностей осуществляется за счет сигнатурного анализа исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций, а также за счет анализа информации, перехваченной и сохраненной в процессе выполнения скомпилированных файлов исследуемого ПО. При этом из виду упускается то, что программные закладки типа «логическая бомба» могут отсутствовать в предварительно сформированном перечне потенциально опасных программных конструкций, а также не проявиться в процессе выполнения скомпилированных файлов исследуемого ПО.
Известен аналог - система анализа программного обеспечения на отсутствие недекларированных возможностей (Пат. 2622622 Российская Федерация, МПК G06F 21/00, G06F 21/50, G06F 11/30, G06F 12/16. Система анализа программного обеспечения на отсутствие недекларированных возможностей [Текст] / Горюнов М.Н., Мельников П.В., Закалкин П.В., Воробьев С.А., Анисимов Д.В., Петров К.Е.; заявитель и правообладатель Федеральное государственное казенное военное образовательное учреждение высшего образования «Академия федеральной службы охраны Российской Федерации» (Академия ФСО России). - №2016110533; заявл. 22.03.2016; опубл. 16.06.2017. Бюл. №17), которая заключается в том, что сохраняют файлы исходных текстов исследуемого ПО, фиксируют исходное состояние файлов исходных текстов исследуемого ПО, осуществляют проверку избыточности исходных текстов исследуемого ПО, проводят анализ и систематизацию контекстной информации, устанавливают контрольные точки в файлы, процедуры и функции исходных текстов исследуемого ПО, компилируют файлы исходных текстов исследуемого ПО, запускают на выполнение скомпилированные файлы исследуемого ПО, обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления исследуемого ПО, перехватывают и сохраняют информацию о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, перехватывают и сохраняют информацию о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, помимо этого осуществляют поиск потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций и их тестирование, осуществляют корректировку результатов перехвата информации о найденных потоках управления исследуемого ПО, пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, поиска и тестирования потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО с помощью интерактивного взаимодействия с экспертами, после чего выдают итоговые результаты [5].
Недостатком указанной системы является низкая достоверность результатов контроля отсутствия недекларированных функциональных возможностей в ПО ввиду возможности пропуска программных закладок типа «логическая бомба». Контроль отсутствия недекларированных возможностей осуществляется за счет анализа и систематизации контекстной информации, а также за счет сигнатурного анализа исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций и анализа информации, перехваченной и сохраненной в процессе выполнения скомпилированных файлов исследуемого ПО. При этом из виду упускается то, что контекстная информация может не содержать сведений об имеющихся программных закладках типа «логическая бомба», а также указанные программные закладки могут отсутствовать в предварительно сформированном перечне потенциально опасных программных конструкций и не проявиться в процессе выполнения скомпилированных файлов исследуемого ПО. б) описание ближайшего аналога (прототипа)
Наиболее близким по технической сущности к предлагаемому способу является система анализа программного обеспечения на отсутствие потенциально опасных функциональных объектов (Пат. 2675210 Российская Федерация, МПК G06F 21/00. Система анализа программного обеспечения на отсутствие потенциально опасных функциональных объектов [Текст] / Горюнов М.Н., Мельников П.В., Закалкин П.В., Воробьев С.А., Анисимов Д.В., Петров К.Е.; заявитель и правообладатель Федеральное государственное казенное военное образовательное учреждение высшего образования «Академия федеральной службы охраны Российской Федерации» (Академия ФСО России). - №2018103834; заявл. 31.01.2018; опубл. 17.12.2018. Бюл. №35), заключающаяся в том, что сохраняют файлы исходных текстов исследуемого ПО, фиксируют исходное состояние файлов исходных текстов исследуемого ПО, осуществляют проверку избыточности исходных текстов исследуемого ПО, проводят анализ и систематизацию контекстной информации, выявляют массивы бинарных данных и сравнивают их с массивами бинарных данных, поступающими из репозитория массивов бинарных данных, устанавливают контрольные точки в файлы исходных текстов, а также процедуры и функции исходных текстов исследуемого ПО, компилируют файлы исходных текстов исследуемого ПО, запускают на выполнение скомпилированные файлы исследуемого ПО, обрабатывают запросы к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления исследуемого ПО, перехватывают и сохраняют информацию о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, перехватывают и сохраняют информацию о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, помимо этого осуществляют поиск потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций и их тестирование, осуществляют экспертную корректировку результатов перехвата информации о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, поиска и тестирования потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО, осуществляют экспертную оценку влияния функциональных объектов исследуемого ПО на программные и программно-технические средства защиты информации, после чего выдают итоговые результаты [6].
Недостатком указанной системы является низкая достоверность результатов контроля отсутствия недекларированных функциональных возможностей в ПО ввиду возможности пропуска программных закладок типа «логическая бомба». Контроль отсутствия недекларированных возможностей осуществляется за счет анализа и систематизации контекстной информации, сигнатурного анализа исходных текстов исследуемого ПО (поиск CWE-уязвимостей) на основе базы CWE-уязвимостей, анализа информации, перехваченной и сохраненной в процессе выполнения скомпилированных файлов исследуемого ПО, а также при помощи выявления функционала, нацеленного на нарушение работы механизмов защиты среды функционирования на основе репозитория массивов бинарных данных. При этом из виду упускается то, что контекстная информация может не содержать сведений об имеющихся программных закладках типа «логическая бомба», а также указанные программные закладки могут отсутствовать в базе CWE-уязвимостей, репозитории массивов бинарных данных и не проявиться в процессе выполнения скомпилированных файлов исследуемого ПО.
Раскрытие сущности изобретения
а) технический результат, на достижение которого направлено изобретение
Целью настоящего изобретения является повышение достоверности результатов контроля отсутствия недекларированных функциональных возможностей в ПО за счет обеспечения выявления программных закладок типа «логическая бомба», которые могли бы сработать в течение планируемого срока эксплуатации исследуемого ПО, путем применения специального способа выявления указанных программных закладок, заключающегося в моделировании процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации.
б) совокупность существенных признаков
Технический результат достигается тем, что в известной системе анализа программного обеспечения на отсутствие потенциально опасных функциональных объектов, заключающейся в том, что сохраняют файлы исходных текстов исследуемого ПО, фиксируют исходное состояние файлов исходных текстов исследуемого ПО, осуществляют проверку избыточности исходных текстов исследуемого ПО, проводят анализ и систематизацию контекстной информации, выявляют массивы бинарных данных и сравнивают их с массивами бинарных данных, поступающими из репозитория массивов бинарных данных, устанавливают контрольные точки в файлы исходных текстов, а также процедуры и функции исходных текстов исследуемого ПО, компилируют файлы исходных текстов исследуемого ПО, запускают на выполнение скомпилированные файлы исследуемого ПО, обрабатывают запросы к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления исследуемого ПО, перехватывают и сохраняют информацию о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, перехватывают и сохраняют информацию о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, помимо этого осуществляют поиск потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций и их тестирование, осуществляют экспертную корректировку результатов перехвата информации о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, поиска и тестирования потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО, осуществляют экспертную оценку влияния функциональных объектов исследуемого ПО на программные и программно-технические средства защиты информации, после чего выдают итоговые результаты. В предлагаемом способе предварительно выделяют для анализа исследуемого ПО отдельную рабочую станцию, отключают у данной рабочей станции возможность синхронизации системного времени с астрономическим временем, имитируют на данной рабочей станции службу времени, на которую замыкают канал синхронизации времени среды функционирования исследуемого ПО, а также осуществляют моделирование процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации путем запуска скомпилированных файлов исследуемого ПО и циклического выполнения всех декларированных в документации к исследуемому ПО функциональных возможностей, при этом на каждой итерации цикла: обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления, о пройденных контрольных точках, о фактических маршрутах выполнения скомпилированных файлов исследуемого ПО, при помощи сымитированной службы времени осуществляют сдвиг точки времени среды функционирования ПО по установленному правилу и переходят к следующей итерации цикла, после завершения цикла, т.е. завершения моделирования планируемого срока эксплуатации исследуемого ПО, осуществляют анализ информации, перехваченной и сохраненной в процессе выполнения цикла, и выявление подозрительных функциональных объектов, включая функциональные объекты, реализующие недекларированные функциональные возможности типа «логическая бомба».
Реализованный в прототипе подход к выявлению недекларированных функциональных возможностей в исходных текстах ПО заключается в анализе и систематизации контекстной информации, сигнатурном анализе исходных текстов исследуемого ПО (поиск CWE-уязвимостей) на основе базы CWE-уязвимостей, анализе информации, перехваченной и сохраненной в процессе выполнения скомпилированных файлов исследуемого ПО, а также при помощи выявления функционала, нацеленного на нарушение работы механизмов защиты среды функционирования на основе репозитория массивов бинарных данных. При этом из виду упускается то, что программные закладки типа «логическая бомба» могут не эксплуатировать уязвимости среды функционирования и не быть нацеленными на нарушение работы механизмов защиты среды функционирования, вследствие чего могут отсутствовать в базе CWE-уязвимостей и в репозитории массивов бинарных данных. Кроме того, программные закладки типа «логическая бомба» срабатывают при выполнении некоторого условия, в частности, при наступлении определенной злоумышленником даты. Подобное условие может не выполниться в процессе выполнения скомпилированных файлов исследуемого ПО на этапе контроля отсутствия недекларированных функциональных возможностей, вследствие чего подобная программная закладка не будет выявлена. Также контекстная информация, содержащаяся в исходных текстах исследуемого ПО, может не содержать сведений об имеющихся программных закладках типа «логическая бомба».
Вредоносный характер программных закладок типа «логическая бомба» заключается в том, что, не оказывая непосредственно деструктивного воздействия на среду выполнения или обрабатываемую информацию, при наступлении определенной даты или по прошествии некоторого промежутка времени они могут инициировать загрузку и запуск дополнительных программных модулей, которые, в свою очередь, будут нести в себе функционал, направленный оказание на нарушение конфиденциальности, доступности и целостности обрабатываемой информации или деструктивного воздействия на среду функционирования исследуемого ПО. Помимо этого, программные закладки типа «логическая бомба», будучи запущенными в определенное время или с определенной периодичностью, могут нанести ущерб функционированию ПО или среде его функционирования за счет выполнения корректных с точки зрения безопасности, но некорректных с точки зрения штатного функционирования ПО действий, например, путем периодического аварийного завершения программы, отключения отдельных функциональных возможностей и других действий, влияющих на работу ПО.
Сопоставительный анализ заявляемого решения с прототипом показывает, что предлагаемый способ отличается от известного тем, что применяют специальный способ выявления недекларированных функциональных возможностей типа «логическая бомба», заключающийся в моделировании процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации. Для этого выделяют для анализа исследуемого ПО отдельную рабочую станцию, отключают у данной рабочей станции возможность синхронизации системного времени с астрономическим временем, имитируют на данной рабочей станции службу времени, на которую замыкают канал синхронизации времени среды функционирования исследуемого ПО, осуществляют моделирование процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации при помощи запуска скомпилированных файлов и циклического выполнения всех декларированных в документации к исследуемому ПО функциональных возможностей, при этом на каждой итерации цикла: обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления, о пройденных контрольных точках, о фактических маршрутах выполнения скомпилированных файлов исследуемого ПО, при помощи сымитированной службы времени осуществляют сдвиг точки времени среды функционирования ПО по установленному правилу и переходят к следующей итерации цикла, после завершения цикла, т.е. завершения моделирования планируемого срока эксплуатации исследуемого ПО, осуществляют анализ информации, перехваченной и сохраненной в процессе выполнения цикла, и выявление подозрительных функциональных объектов, включая реализующие недекларированные функциональные возможности типа «логическая бомба».
в) причинно-следственная связь между признаками и техническим результатом
Путем выделения для анализа исследуемого ПО отдельной рабочей станции, отключения у данной рабочей станции возможности синхронизации системного времени с астрономическим временем, имитации на данной рабочей станции службы времени, замыкания на нее канала синхронизации времени среды функционирования исследуемого ПО и моделирования процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации создают условия срабатывания программных закладок типа «логическая бомба», благодаря чему выявляют указанные программные закладки на этапе анализа перехваченной и сохраненной при выполнении скомпилированных файлов информации.
Благодаря новой совокупности существенных признаков в способе реализована возможность выявления недекларированных функциональных возможностей типа «логическая бомба», тем самым повышена достоверность результатов контроля отсутствия недекларированных функциональных возможностей в ПО.
Доказательства соответствия заявленного изобретения условиям патентоспособности «новизна» и «изобретательский уровень».
Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного технического решения, отсутствуют, что указывает на соответствие заявленного способа условию патентоспособности «новизна».
Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного объекта, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность отличительных существенных признаков, обуславливающих тот же технический результат, который достигнут в заявленном способе. Следовательно, заявленное изобретение соответствует условию патентоспособности «изобретательский уровень».
Краткое описание чертежей
На фигуре представлена схема последовательности действий, реализующих заявленный способ.
Осуществление изобретения
Указанный технический результат достигается за счет того, что моделируют процесс функционирования исследуемого ПО в течение планируемого срока его эксплуатации, для чего выделяют для анализа исследуемого ПО отдельную рабочую станцию, отключают у данной рабочей станции возможность синхронизации системного времени с астрономическим временем и имитируют на данной рабочей станции службу времени, на которую замыкают канал синхронизации времени среды функционирования исследуемого ПО.
КНТ
БВ
ПОК
Перед непосредственно моделированием процесса функционирования ПО сохраняют на рабочей станции файлы исходных текстов исследуемого ПО, фиксируют исходное состояние файлов исходных текстов исследуемого ПО, осуществляют проверку избыточности исходных текстов исследуемого ПО, проводят анализ и систематизацию контекстной информации в исходных текстах исследуемого ПО, выявляя возможные описания недекларированных функциональных возможностей и соответствующие им функциональные объекты ФО, выявляют массивы бинарных данных в исходных текстах исследуемого ПО, сравнивают их с массивами бинарных данных, поступающими из репозитория массивов бинарных данных, и выявляют бинарные вставки ФО, осуществляют поиск потенциально опасных программных конструкций ФО в файлах исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций и их тестирование, устанавливают контрольные точки в файлы исходных текстов, а также процедуры и функции исходных текстов исследуемого ПО и компилируют файлы исходных текстов исследуемого ПО.
Затем осуществляют непосредственно моделирование процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации.
Моделирование процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации проводится с целью имитации условий, при которых сработает тот или иной функциональный объект исследуемого ПО, реализующий недекларированные функциональные возможности типа «логическая бомба», тем самым позволит себя обнаружить, и заключается в установке начальной точки времени, запуске скомпилированных файлов исследуемого ПО и циклическом выполнении всех декларированных в документации к нему функциональных возможностей, при этом после выполнения каждой итерации цикла при помощи сымитированной службы времени осуществляют сдвиг точки времени среды функционирования по заданному правилу и выполняют следующую итерацию цикла.
Сдвиг точки времени среды функционирования осуществляется по следующему правилу.
ОС
макс
ОС
макс
ОС
Пусть Т - начальная точка времени среды функционирования, равная началу планируемого периода функционирования исследуемого ПО, N=Т-Т - период времени, равный количеству суток, в течение которого необходимо гарантировать, что ни одна из возможных недекларированных возможностей исследуемого ПО типа «логическая бомба» не сработает, Т>Т. Тогда правило сдвига точки времени среды функционирования будет выглядеть следующим образом:
-1
ОС
Ti=Ti+С=Т+i*С,
i
i
OC..
макс
0
ОС
где T - точка времени среды функционирования на текущей итерации, T=[T Т], i - порядковый номер текущей итерации, i=[0..N), С -интервал времени, равный одним суткам, Т=Т.
ПУi
КТi
TPi
На каждой итерации цикла обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления M о пройденных контрольных точках М о фактических маршрутах выполнения скомпилированных файлов исследуемого ПО M.
ПУ
1
k
Найденные потоки управления М представляют собой множество векторов функциональных объектов [ФО..ФО], k=[1..K], K - количество функциональных объектов в исследуемом ПО, которые расположены в порядке передачи управления от одного функционального объекта к другому.
1
р
Пройденные контрольные точки Мкт представляют собой множество векторов [КТ..КТ], р=[1..Р], Р - количество контрольных точек, установленных в исходных текстах исследуемого ПО.
ТР
1
k
Фактические маршруты выполнения скомпилированных файлов исследуемого ПО М представляют собой множество векторов [ФО..ФО], k=[1..K], K - количество функциональных объектов в исследуемом ПО, функциональные объекты в которых расположены в порядке их выполнения. При этом вектора функциональных объектов, представляющие фактические маршруты выполнения, могут не совпадать с векторами функциональных объектов, представляющими потоки управления.
После завершения выполнения всех итераций цикла осуществляют анализ информации, сохраненной в процессе выполнения цикла, и выявление подозрительных функциональных объектов, т.е. объектов, потенциально реализующих недекларированные функциональные возможности, в том числе типа «логическая бомба».
Анализ указанной информации осуществляют выполнением следующих функций:
ПУ
ПУi
ПУi-1
ПУi
ПУi
F(M,M)=ФO - функция выявления подозрительных функциональных объектов на основе анализа потоков управления, перехваченных и сохраненных на i-й итерации, ФО - множество подозрительных функциональных объектов, выявленных на основе анализа потоков управления, перехваченных и сохраненных на i-й итерации;
КT
КТi
КТi-1
КТi
КТi
F(M,M)=ФO - функция выявления подозрительных функциональных объектов на основе анализа пройденных контрольных точек, перехваченных и сохраненных на i-й итерации, ФО - множество подозрительных функциональных объектов, выявленных на основе анализа пройденных контрольных точек, перехваченных и сохраненных на i-й итерации;
TP
TPi
TPi-1
TPi
ТРi
F(M,M)=ФO - функция выявления подозрительных функциональных объектов на основе анализа фактических маршрутов выполнения скомпилированных файлов, перехваченных и сохраненных на i-й итерации, ФО - множество подозрительных функциональных объектов, выявленных на основе анализа фактических маршрутов выполнения скомпилированных файлов, перехваченных и сохраненных на i-й итерации.
При этом i=[1..N].
ПУ
ПУ
ПУi-1
ПУi-1
ПУi
ПУi
ПУi-1
ПУ
Функция выявления подозрительных функциональных объектов на основе анализа потоков управления F(Mi,M) работает следующим образом. Каждому вектору множества М ставится в соответствие равный ему вектор множества M. Между векторами множества М, для которых не был найден равный вектор множества M, выявляются отличия в виде набора соответствующих функциональных объектов ФО, которые далее рассматриваются как подозрительные, т.е. потенциально реализующие недекларированные функциональные возможности, и сохраняются для последующего экспертного анализа.
КТ
КТi
КТi-1
КTi-1
КТi
КTi
КТ-i
КТ
Функция выявления подозрительных функциональных объектов на основе анализа пройденных контрольных точек F(М,М) работает следующим образом. Каждому вектору множества M ставится в соответствие равный ему вектор М. Между векторами множества M, для которых не был найден равный вектор множества М, выявляются отличия в виде набора соответствующих контрольных точек, после чего определяются функциональные объекты ФО, в которых были установлены выявленные контрольные точки, которые далее рассматриваются как подозрительные, т.е. потенциально реализующие недекларированные функциональные возможности, и сохраняются для последующего экспертного анализа.
TP
TPi
TPi-1
TPi-1
ТРi
TPi
TPi-1
ТР
Функция выявления подозрительных функциональных объектов на основе анализа фактических маршрутов выполнения скомпилированных файлов F(M,M) работает следующим образом. Каждому вектору множества M ставится в соответствие равный ему вектор множества М. Между векторами множества M, для которых не был найден равный вектор множества M, выявляются отличия в виде набора соответствующих функциональных объектов ФО, которые далее рассматриваются как подозрительные, т.е. потенциально реализующие недекларированные функциональные возможности, и сохраняются для последующего экспертного анализа.
После завершения анализа информации, сохраненной в процессе выполнения цикла, устанавливают контрольные итерации, соответствующие следующим точкам времени:
m
Im=32*m, m=[1..N/32] - контрольные итерации, соответствующие месячному периоду работы исследуемого ПО, m - натуральное число;
k
Ik=93*k, k=[1..N/93] - контрольные итерации, соответствующие квартальному периоду работы исследуемого ПО, k - натуральное число;
g
Ig=366*g, g=[1..N/366] - контрольные итерации, соответствующие годовому периоду работы исследуемого ПО, g - натуральное число.
Группируют выявленные подозрительные функциональные объекты в соответствии с установленными контрольными итерациями:
m-1
m
j=[Im..Im] - множества подозрительных функциональных объектов, выявленных в течение месячного периода работы исследуемого ПО;
множества подозрительных функциональных объектов, выявленных в течение квартального периода работы исследуемого ПО;
множества подозрительных функциональных объектов, выявленных в течение годового периода работы исследуемого ПО.
После завершения группировки подозрительных функциональных объектов формируют совокупность данных о результатах моделирования процесса функционирования исследуемого ПО и поиска подозрительных функциональных объектов на предыдущих этапах
ПОК
КНТ
БВ
БВ
включающую выявленные и сгруппированные подозрительные функциональные объекты, а также результаты поиска потенциально опасных конструкций ФО, анализа и систематизации контекстной информации ФО, выявления бинарных вставок ФО и подвергают ее экспертному анализу с целью установления того, что выявленные подозрительные функциональные объекты действительно реализуют недекларированные функциональные возможности, в том числе типа «логическая бомба». Затем среди функциональных объектов ФО производится выявление функциональных объектов, взаимодействующих со средствами защиты информации, производится их анализ на предмет наличия функционала, деструктивного по отношению к средствам защиты информации, после чего принимается окончательное решение о наличии недекларированных функциональных возможностей в исследуемом ПО, в том числе типа «логическая бомба».
Таким образом, предлагаемый способ обеспечивает выявление программных закладок типа «логическая бомба», которые могли бы сработать в течение планируемого срока эксплуатации исследуемого ПО, за счет чего повышается достоверность результатов контроля отсутствия недекларированных функциональных возможностей в ПО и достигается поставленный технический результат.