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

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

Info

Publication number
RU2711041C1
RU2711041C1 RU2019114830A RU2019114830A RU2711041C1 RU 2711041 C1 RU2711041 C1 RU 2711041C1 RU 2019114830 A RU2019114830 A RU 2019114830A RU 2019114830 A RU2019114830 A RU 2019114830A RU 2711041 C1 RU2711041 C1 RU 2711041C1
Authority
RU
Russia
Prior art keywords
software
studied
files
compiled
information
Prior art date
Application number
RU2019114830A
Other languages
English (en)
Inventor
Максим Игоревич Поддубный
Алексей Юрьевич Болотов
Василий Александрович Краснов
Сергей Евгеньевич Кондаков
Сергей Владимирович Бобров
Original Assignee
федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации filed Critical федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации
Priority to RU2019114830A priority Critical patent/RU2711041C1/ru
Application granted granted Critical
Publication of RU2711041C1 publication Critical patent/RU2711041C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

Изобретение относится к вычислительной технике, а именно к информационным вычислительным системам и сетям, и может быть использовано для защиты информационных ресурсов рабочих станций и серверов, их компонентов, программ или данных от несанкционированного доступа к ним, а также при анализе исходного кода программного обеспечения (ПО), в том числе при проведении сертификационных испытаний программного обеспечения на отсутствие недекларированных возможностей.
Толкование терминов, используемых в заявке:
недекларированные (функциональные) возможности - функциональные возможности ПО, не описанные или не соответствующие описанным в документации, при использовании которых возможно нарушение конфиденциальности, доступности или целостности обрабатываемой информации (Руководящий документ «Защита от несанкционированного доступа к информации. Часть 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 - натуральное число.
Группируют выявленные подозрительные функциональные объекты в соответствии с установленными контрольными итерациями:
Figure 00000001
j=[Imm-1..Imm] - множества подозрительных функциональных объектов, выявленных в течение месячного периода работы исследуемого ПО;
Figure 00000002
множества подозрительных функциональных объектов, выявленных в течение квартального периода работы исследуемого ПО;
Figure 00000003
множества подозрительных функциональных объектов, выявленных в течение годового периода работы исследуемого ПО.
После завершения группировки подозрительных функциональных объектов формируют совокупность данных о результатах моделирования процесса функционирования исследуемого ПО и поиска подозрительных функциональных объектов на предыдущих этапах
Figure 00000004
Figure 00000005
включающую выявленные и сгруппированные подозрительные функциональные объекты, а также результаты поиска потенциально опасных конструкций ФОПОК, анализа и систематизации контекстной информации ФОКНТ, выявления бинарных вставок ФОБВ и подвергают ее экспертному анализу с целью установления того, что выявленные подозрительные функциональные объекты действительно реализуют недекларированные функциональные возможности, в том числе типа «логическая бомба». Затем среди функциональных объектов ФОБВ производится выявление функциональных объектов, взаимодействующих со средствами защиты информации, производится их анализ на предмет наличия функционала, деструктивного по отношению к средствам защиты информации, после чего принимается окончательное решение о наличии недекларированных функциональных возможностей в исследуемом ПО, в том числе типа «логическая бомба».
Таким образом, предлагаемый способ обеспечивает выявление программных закладок типа «логическая бомба», которые могли бы сработать в течение планируемого срока эксплуатации исследуемого ПО, за счет чего повышается достоверность результатов контроля отсутствия недекларированных функциональных возможностей в ПО и достигается поставленный технический результат.

Claims (1)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2019114830A RU2711041C1 (ru) 2019-05-14 2019-05-14 Способ анализа программного обеспечения на отсутствие недекларированных функциональных возможностей

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2019114830A RU2711041C1 (ru) 2019-05-14 2019-05-14 Способ анализа программного обеспечения на отсутствие недекларированных функциональных возможностей

Publications (1)

Publication Number Publication Date
RU2711041C1 true RU2711041C1 (ru) 2020-01-14

Family

ID=69171321

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019114830A RU2711041C1 (ru) 2019-05-14 2019-05-14 Способ анализа программного обеспечения на отсутствие недекларированных функциональных возможностей

Country Status (1)

Country Link
RU (1) RU2711041C1 (ru)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012862A (zh) * 2010-11-09 2011-04-13 北京神舟航天软件技术有限公司 基于控制流图逻辑结构对比的编译器验证方法
US9172720B2 (en) * 2013-08-30 2015-10-27 Bank Of America Corporation Detecting malware using revision control logs
RU2622622C1 (ru) * 2016-03-22 2017-06-16 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Система анализа программного обеспечения на отсутствие недекларированных возможностей
RU2675210C1 (ru) * 2018-01-31 2018-12-17 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Система анализа программного обеспечения на отсутствие потенциально опасных функциональных объектов
RU2679175C1 (ru) * 2015-06-12 2019-02-06 БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД Способ поведенческого обнаружения вредоносных программ с использованием виртуальной машины-интерпретатора
US20190050569A1 (en) * 2010-04-08 2019-02-14 Mcafee Ireland Holdings Limited Systems and methods of processing data associated with detection and/or handling of malware

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190050569A1 (en) * 2010-04-08 2019-02-14 Mcafee Ireland Holdings Limited Systems and methods of processing data associated with detection and/or handling of malware
CN102012862A (zh) * 2010-11-09 2011-04-13 北京神舟航天软件技术有限公司 基于控制流图逻辑结构对比的编译器验证方法
US9172720B2 (en) * 2013-08-30 2015-10-27 Bank Of America Corporation Detecting malware using revision control logs
RU2679175C1 (ru) * 2015-06-12 2019-02-06 БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД Способ поведенческого обнаружения вредоносных программ с использованием виртуальной машины-интерпретатора
RU2622622C1 (ru) * 2016-03-22 2017-06-16 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Система анализа программного обеспечения на отсутствие недекларированных возможностей
RU2675210C1 (ru) * 2018-01-31 2018-12-17 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Система анализа программного обеспечения на отсутствие потенциально опасных функциональных объектов

Similar Documents

Publication Publication Date Title
Zhu et al. Fuzzing: a survey for roadmap
Stuckman et al. The effect of dimensionality reduction on software vulnerability prediction models
Chua et al. One Engine To Serve'em All: Inferring Taint Rules Without Architectural Semantics.
CN110287693B (zh) 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法
Girol et al. Not all bugs are created equal, but robust reachability can tell the difference
Gerasimov et al. Anxiety: A dynamic symbolic execution framework
Ma et al. Control flow obfuscation using neural network to fight concolic testing
Hoffmann et al. ARMORY: fully automated and exhaustive fault simulation on ARM-M binaries
Zaazaa et al. Dynamic vulnerability detection approaches and tools: State of the Art
US9176846B1 (en) Validating correctness of expression evaluation within a debugger
RU2711041C1 (ru) Способ анализа программного обеспечения на отсутствие недекларированных функциональных возможностей
Gao et al. Deep Learning-Based Hybrid Fuzz Testing.
US9727735B2 (en) Method and system for simulating the effects of an attack on a computer code
Alshaer et al. Microarchitecture-aware fault models: Experimental evidence and cross-layer inference methodology
Kazemi et al. An in-depth vulnerability analysis of risc-v micro-architecture against fault injection attack
RU2675210C1 (ru) Система анализа программного обеспечения на отсутствие потенциально опасных функциональных объектов
Girol et al. Introducing robust reachability
Liu et al. Automated Crash Analysis and Exploit Generation with Extendable Exploit Model
Sellami et al. Inference of robust reachability constraints
Laurent et al. Analyzing software security against complex fault models with Frama-c value analysis
Sorsa Protocol fuzz testing as a part of secure software development life cycle
Scherer et al. I/o interaction analysis of binary code
Obaidat et al. DAEDALUS: Defense Against Firmware ROP Exploits Using Stochastic Software Diversity
German et al. Air vehicle software static code analysis lessons learnt
Baptista et al. Using machine learning for vulnerability detection and classification