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

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

 

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

Толкование терминов, используемых в заявке:

недекларированные (функциональные) возможности - функциональные возможности ПО, не описанные или не соответствующие описанным в документации, при использовании которых возможно нарушение конфиденциальности, доступности или целостности обрабатываемой информации (Руководящий документ «Защита от несанкционированного доступа к информации. Часть 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=ТмаксОС - период времени, равный количеству суток, в течение которого необходимо гарантировать, что ни одна из возможных недекларированных возможностей исследуемого ПО типа «логическая бомба» не сработает, ТмаксОС. Тогда правило сдвига точки времени среды функционирования будет выглядеть следующим образом:

Ti=Ti-1+С=ТОС+i*С,

где Ti - точка времени среды функционирования на текущей итерации, Ti=[TOC.. Тмакс], i - порядковый номер текущей итерации, i=[0..N), С -интервал времени, равный одним суткам, Т0ОС.

На каждой итерации цикла обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления MПУi о пройденных контрольных точках МКТi о фактических маршрутах выполнения скомпилированных файлов исследуемого ПО MTPi.

Найденные потоки управления МПУ представляют собой множество векторов функциональных объектов [ФО1..ФОk], k=[1..K], K - количество функциональных объектов в исследуемом ПО, которые расположены в порядке передачи управления от одного функционального объекта к другому.

Пройденные контрольные точки Мкт представляют собой множество векторов [КТ1..КТр], р=[1..Р], Р - количество контрольных точек, установленных в исходных текстах исследуемого ПО.

Фактические маршруты выполнения скомпилированных файлов исследуемого ПО МТР представляют собой множество векторов [ФО1..ФОk], k=[1..K], K - количество функциональных объектов в исследуемом ПО, функциональные объекты в которых расположены в порядке их выполнения. При этом вектора функциональных объектов, представляющие фактические маршруты выполнения, могут не совпадать с векторами функциональных объектов, представляющими потоки управления.

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

Анализ указанной информации осуществляют выполнением следующих функций:

FПУ(MПУi,MПУi-1)=ФOПУi - функция выявления подозрительных функциональных объектов на основе анализа потоков управления, перехваченных и сохраненных на i-й итерации, ФОПУi - множество подозрительных функциональных объектов, выявленных на основе анализа потоков управления, перехваченных и сохраненных на i-й итерации;

FКT(MКТi,MКТi-1)=ФOКТi - функция выявления подозрительных функциональных объектов на основе анализа пройденных контрольных точек, перехваченных и сохраненных на i-й итерации, ФОКТi - множество подозрительных функциональных объектов, выявленных на основе анализа пройденных контрольных точек, перехваченных и сохраненных на i-й итерации;

FTP(MTPi,MTPi-1)=ФOTPi - функция выявления подозрительных функциональных объектов на основе анализа фактических маршрутов выполнения скомпилированных файлов, перехваченных и сохраненных на i-й итерации, ФОТРi - множество подозрительных функциональных объектов, выявленных на основе анализа фактических маршрутов выполнения скомпилированных файлов, перехваченных и сохраненных на i-й итерации.

При этом i=[1..N].

Функция выявления подозрительных функциональных объектов на основе анализа потоков управления FПУ(MПУi,MПУi-1) работает следующим образом. Каждому вектору множества МПУi-1 ставится в соответствие равный ему вектор множества MПУi. Между векторами множества МПУi, для которых не был найден равный вектор множества MПУi-1, выявляются отличия в виде набора соответствующих функциональных объектов ФОПУ, которые далее рассматриваются как подозрительные, т.е. потенциально реализующие недекларированные функциональные возможности, и сохраняются для последующего экспертного анализа.

Функция выявления подозрительных функциональных объектов на основе анализа пройденных контрольных точек FКТКТiКТi-1) работает следующим образом. Каждому вектору множества MКTi-1 ставится в соответствие равный ему вектор МКТi. Между векторами множества MКTi, для которых не был найден равный вектор множества МКТ-i, выявляются отличия в виде набора соответствующих контрольных точек, после чего определяются функциональные объекты ФОКТ, в которых были установлены выявленные контрольные точки, которые далее рассматриваются как подозрительные, т.е. потенциально реализующие недекларированные функциональные возможности, и сохраняются для последующего экспертного анализа.

Функция выявления подозрительных функциональных объектов на основе анализа фактических маршрутов выполнения скомпилированных файлов FTP(MTPi,MTPi-1) работает следующим образом. Каждому вектору множества MTPi-1 ставится в соответствие равный ему вектор множества МТРi. Между векторами множества MTPi, для которых не был найден равный вектор множества MTPi-1, выявляются отличия в виде набора соответствующих функциональных объектов ФОТР, которые далее рассматриваются как подозрительные, т.е. потенциально реализующие недекларированные функциональные возможности, и сохраняются для последующего экспертного анализа.

После завершения анализа информации, сохраненной в процессе выполнения цикла, устанавливают контрольные итерации, соответствующие следующим точкам времени:

Imm=32*m, m=[1..N/32] - контрольные итерации, соответствующие месячному периоду работы исследуемого ПО, m - натуральное число;

Ikk=93*k, k=[1..N/93] - контрольные итерации, соответствующие квартальному периоду работы исследуемого ПО, k - натуральное число;

Igg=366*g, g=[1..N/366] - контрольные итерации, соответствующие годовому периоду работы исследуемого ПО, g - натуральное число.

Группируют выявленные подозрительные функциональные объекты в соответствии с установленными контрольными итерациями:

j=[Imm-1..Imm] - множества подозрительных функциональных объектов, выявленных в течение месячного периода работы исследуемого ПО;

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

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

После завершения группировки подозрительных функциональных объектов формируют совокупность данных о результатах моделирования процесса функционирования исследуемого ПО и поиска подозрительных функциональных объектов на предыдущих этапах

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

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

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



 

Похожие патенты:

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

Изобретение относится к вычислительной технике. Технический результат заключается в увеличении степени защищенности киберфизической системы от компьютерных атак.

Изобретение относится к способу обработки пользовательских данных для выполнения платежной транзакции. Техническим результатом является повышение безопасности проведения платежной транзакции.

Изобретение относится к области создания и проверки удостоверения личности. Техническим результатом является улучшение защиты удостоверения личности.

Изобретение относится к способам создания набора виртуальных машин защиты (ВМЗ) для автоматического выбора ВМЗ с последующим соединением с агентом виртуальной машины с учетом ограничительной области автоматического выбора виртуальных машин защиты.

Изобретение относится к средствам формирования эвристических правил для поиска и обнаружения спам-писем на основании анализа статистических данных о получаемых электронных письмах клиентов.

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

Группа изобретений относится к области вычислительной техники и может быть использована для выполнения запутанных арифметических действий. Техническим результатом является повышение защищенности.

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

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

Изобретение относится к средствам генерирования рекомендации для представления пользователю в рамках контекста web-браузера пользователя. Технический результат заключается в предоставлении более релевантных результатов поиска и улучшении ранжирования результатов поиска. Рекомендации могут содержать, например, предлагаемые информационные ресурсы и/или поисковые запросы. Такие рекомендации могут быть представлены пользователю как часть новой станицы вкладки или внутри адресной строки графического интерфейса пользователя web-браузера. В соответствии с дополнительными вариантами осуществления, данные устройства пользователя используются поисковой машиной, чтобы генерировать результаты поиска, и/или для ранжирования результатов поиска. 3 н. и 15 з.п. ф-лы, 16 ил.
Наверх