Изобретение относится к области защиты данных, в частности к информационным вычислительным системам и сетям, и может быть использовано для защиты компьютеров, их компонентов, программ или данных от несанкционированной деятельности, а также при анализе исходного кода программного обеспечения, в том числе при проведении сертификационных испытаний программного обеспечения на отсутствие недекларированных возможностей.
Толкование терминов, используемых в заявке:
недекларированные (функциональные) возможности - функциональные возможности программного обеспечения, не описанные или не соответствующие описанным в документации, при использовании которых возможно нарушение конфиденциальности, доступности или целостности обрабатываемой информации [Руководящий документ Государственной технической комиссии «Защита от несанкционированного доступа к информации. 4.1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей» от 04.06.1999 №114];
программные закладки - преднамеренно внесенные в программное обеспечение функциональные объекты, которые при определенных условиях (входных данных) инициируют выполнение не описанных в документации функций программного обеспечения, приводящих к нарушению конфиденциальности, доступности или целостности обрабатываемой информации [Руководящий документ Государственной технической комиссии «Защита от несанкционированного доступа к информации. 4.1. Программное 1 обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей» от 04.06.1999 №114];
стеговставка - информация, исполняемый модуль или его фрагмент, встраиваемый в файл методом стеганографии для нарушения конфиденциальности, доступности, целостности обрабатываемой информации или работоспособности автоматизированной системы.
Известна система анализа программного обеспечения на отсутствие недекларированных возможностей [Патент №2622622 от 16.06.2017, МПК G06F 21/00, G06F 21/50, G06F 11/30, G06F 12/16], включающая блок сохранения найденных потоков управления исследуемого программного обеспечения, блок хранения файлов исходных текстов программного обеспечения, блок установки контрольных точек в файлы исходных текстов программного обеспечения, блок компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, блок выполнения скомпилированных файлов программного обеспечения, блок сохранения перечня пройденных контрольных точек, блок сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, блок хранения перечня потенциально опасных программных конструкций, блок поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения, блок экспертной корректировки результатов автоматизированного анализа, блок тестирования потенциально опасных программных конструкций, блок сохранения итоговых результатов, блок фиксации исходного состояния исходных текстов программного обеспечения, блок проверки избыточности исходных текстов, блок анализа и систематизации контекстной информации.
Недостатками известной системы является ограниченная функциональность и низкая достоверность результатов обнаружения недекларированных функциональных возможностей в программном обеспечении, что обусловлено невозможностью обнаружения заданных конструкций в файлах ресурсов программного обеспечения в виде скрытых каналов, представляющих собой стеговставки в графических ресурсах программного обеспечения.
Наиболее близкой к заявленной является система анализа программного обеспечения на отсутствие потенциально опасных функциональных объектов [Патент №2675210 от 17.12.2018, МПК G06F 21/00, G06F 21/577, G06F 2221/033, G06F 11/3624], включающая блок сохранения найденных потоков управления исследуемого программного обеспечения, блок хранения файлов исходных текстов программного обеспечения, блок фиксации исходного состояния исходных текстов программного обеспечения, блок проверки избыточности исходных текстов, блок анализа и систематизации контекстной информации, блок установки контрольных точек в файлы исходных текстов программного обеспечения, блок компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, блок выполнения скомпилированных файлов программного обеспечения, блок сохранения перечня пройденных контрольных точек, блок сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, блок хранения перечня потенциально опасных программных конструкций, блок поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения, блок экспертной корректировки результатов автоматизированного анализа, блок тестирования потенциально опасных программных конструкций, блок сохранения итоговых результатов, блок анализа массивов бинарных данных, блок оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации, вход репозитория массивов бинарных данных, вход репозитория функций, взаимодействующих с элементами программных и программно-технических средств защиты информации. Вход блока хранения файлов исходных текстов программного обеспечения соединен с входом файлов исходных текстов программного обеспечения. Первый выход блока хранения файлов исходных текстов программного обеспечения соединен с входом блока фиксации 3 исходного состояния исходных текстов программного обеспечения, второй выход - с входом блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения. Выход блока фиксации исходного состояния исходных текстов программного обеспечения соединен с входом блока проверки избыточности исходных текстов, выход которого соединен с блоком анализа и систематизации контекстной информации. Выход блока анализа и систематизации контекстной информации соединен со входом блока установки контрольных точек в файлы исходных текстов программного обеспечения. Выход блока установки контрольных точек в файлы исходных текстов программного обеспечения соединен с входом блока компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, выход которого соединен с входом блока выполнения скомпилированных файлов программного обеспечения. Первый выход блока выполнения скомпилированных файлов программного обеспечения соединен с входом блока сохранения найденных потоков управления исследуемого программного обеспечения, второй выход - с входом блока сохранения перечня пройденных контрольных точек, третий выход - с входом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения. Выход блока сохранения найденных потоков управления исследуемого программного обеспечения соединен с первым входом блока экспертной корректировки результатов автоматизированного анализа, второй вход которого соединен с выходом блока сохранения перечня пройденных контрольных точек, третий вход - с выходом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, выход - с входом блока сохранения итоговых результатов. Выход блока сохранения итоговых результатов соединен с выходом выдачи итоговых результатов контроля, второй вход блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения соединен с выходом блока хранения перечня потенциально опасных программных конструкций.
Вход блока хранения перечня потенциально опасных программных конструкций соединен с входом формирования перечня потенциально опасных программных конструкций, выход блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения соединен с блоком тестирования потенциально опасных программных конструкций. Выход блока тестирования потенциально опасных программных конструкций соединен с четвертым входом блока экспертной корректировки промежуточных результатов. Выход блока анализа и систематизации контекстной информации в исходных текстах программного обеспечения соединен с входом блока анализа массивов бинарных данных, выход которого соединен с блоком установки контрольных точек в файлы исходных текстов программного обеспечения. Второй вход блока анализа массивов бинарных данных соединен с входом репозитория массивов бинарных данных. Первый вход блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации соединен с выходом блока экспертной корректировки результатов автоматизированного анализа. Второй вход блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации соединен с входом репозитория функций взаимодействующих с элементами программных и программно-технических средств защиты информации. Выход блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации соединен со входом блока сохранения итоговых результатов.
Недостатками указанной системы является ограниченная функциональность и низкая достоверность результатов обнаружения недекларированных функциональных возможностей в программном обеспечении, что обусловлено невозможностью обнаружения заданных конструкций в файлах ресурсов программного обеспечения в виде скрытых каналов, представляющих собой стеговставки в графических ресурсах программного обеспечения.
Задачей, решаемой изобретением, является расширение арсенала систем анализа программного обеспечения, позволяющих осуществить защиту компьютеров, их компонентов, программ или данных от несанкционированной деятельности путем выявления недекларированных функциональных возможностей в файлах ресурсов программного обеспечения в виде скрытых каналов, представляющих собой стеговставки в графических ресурсах программного обеспечения.
Технический результат изобретения заключается в повышении функциональности системы анализа программного обеспечения, позволяющей осуществить защиту компьютеров, их компонентов, программ или данных от несанкционированной деятельности, а также в повышении достоверности результатов за счет возможности обнаружения недекларированных функциональных возможностей в виде скрытых каналов, представляющих собой стеговставки в графических ресурсах программного обеспечения.
Технический результат достигается тем, что в системе анализа программного обеспечения на отсутствие недекларированных функциональных возможностей, содержащей блок сохранения найденных потоков управления исследуемого программного обеспечения, блок хранения файлов исходных текстов программного обеспечения, блок фиксации исходного состояния исходных текстов программного обеспечения, блок проверки избыточности исходных текстов, блок анализа и систематизации контекстной информации, блок установки контрольных точек в файлы исходных текстов программного обеспечения, блок компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, блок выполнения скомпилированных файлов программного обеспечения, блок сохранения перечня пройденных контрольных точек, блок сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, блок хранения перечня потенциально опасных программных конструкций, блок поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения, блок экспертной корректировки результатов автоматизированного анализа, блок тестирования потенциально опасных программных конструкций, блок сохранения итоговых результатов, выход выдачи готовых результатов, блок анализа массивов бинарных данных, блок оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации, вход репозитория массивов бинарных данных, вход репозитория функций взаимодействующих с элементами программных и программно-технических средств защиты информации; вход блока хранения файлов исходных текстов программного обеспечения соединен с входом файлов исходных текстов программного обеспечения, первый выход блока хранения файлов исходных текстов программного обеспечения соединен с входом блока фиксации исходного состояния исходных текстов программного обеспечения, второй выход - с входом блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения, выход блока фиксации исходного состояния исходных текстов программного обеспечения соединен с входом блока проверки избыточности исходных текстов, выход которого соединен с входом блока анализа и систематизации контекстной информации, второй вход блока анализа массивов бинарных данных соединен с репозиторием массивов бинарных данных, выход блока анализа массивов бинарных данных соединен с входом блока установки контрольных точек в файлы исходных текстов программного обеспечения, выход блока установки контрольных точек в файлы исходных текстов программного обеспечения соединен с входом блока компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, выход которого соединен с входом блока выполнения скомпилированных файлов программного обеспечения, первый выход блока выполнения скомпилированных файлов программного обеспечения соединен с входом блока сохранения найденных потоков управления исследуемого программного обеспечения, второй выход - с входом блока сохранения перечня пройденных контрольных точек, третий выход - с входом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, выход блока сохранения найденных потоков управления исследуемого программного обеспечения соединен с первым входом блока экспертной корректировки результатов автоматизированного анализа, второй вход которого соединен с выходом блока сохранения перечня пройденных контрольных точек, третий вход - с выходом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, выход - с входом блока сохранения итоговых результатов, выход блока сохранения итоговых результатов соединен с выходом выдачи итоговых результатов контроля, второй вход блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения соединен с выходом блока хранения перечня потенциально опасных программных конструкций, вход блока хранения перечня потенциально опасных программных конструкций соединен с входом формирования перечня потенциально опасных программных конструкций, выход блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения соединен с блоком тестирования потенциально опасных программных конструкций, выход блока тестирования потенциально опасных программных конструкций соединен с четвертым входом блока экспертной корректировки промежуточных результатов, выход блока анализа и систематизации контекстной информации в исходных текстах программного обеспечения, соединен с входом блока анализа массивов бинарных данных, выход которого соединен с блоком установки контрольных точек в файлы исходных текстов программного обеспечения, второй вход блока анализа массивов бинарных данных соединен с входом репозитория массивов бинарных данных, второй вход блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации соединен с входом репозитория функций взаимодействующих с элементами программных и программно-технических средств защиты информации, выход блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации соединен со входом блока сохранения итоговых результатов, отличающейся тем, что дополнительно содержит блок выявления графических ресурсов программного обеспечения, вход репозитория идентификационных признаков графических ресурсов программного обеспечения, блок идентификации скрытых каналов в графических ресурсах программного обеспечения, вход репозитория признаков, идентифицирующих скрытые каналы в графических ресурсах программного обеспечения, блок сохранения найденных скрытых каналов в графических ресурсах программного обеспечения, блок анализа выявленных скрытых каналов в графических ресурсах программного обеспечения, первое и второе устройство мультиплексирования, причем выход блока анализа и систематизации контекстной информации соединен с входом первого устройства мультиплексирования, первый выход которого соединен с входом блока анализа массивов бинарных данных, а второй выход - с первым входом блока выявления графических ресурсов программного обеспечения, второй вход блока выявления графических ресурсов программного обеспечения, второй вход блока выявления графических ресурсов программного обеспечения соединен с входом репозитория идентификационных признаков графических ресурсов программного обеспечения, первый вход блока идентификации скрытых каналов в графических ресурсах программного обеспечения соединен с выходом блока выявления графических ресурсов программного обеспечения, второй вход блока идентификации скрытых каналов в графических ресурсах программного обеспечения соединен с входом репозитория признаков, идентифицирующих скрытые каналы в графических ресурсах программного обеспечения, выход блока идентификации скрытых каналов в графических ресурсах программного обеспечения соединен с входом блока сохранения найденных скрытых каналов в графических ресурсах программного обеспечения, выход блока сохранения найденных скрытых каналов в графических ресурсах программного обеспечения соединен с входом блока анализа выявленных скрытых каналов в графических ресурсах программного обеспечения, выход блока анализа выявленных скрытых каналов в графических ресурсах программного обеспечения соединен с вторым входом второго устройства мультиплексирования, первый вход которого соединен с выходом блока экспертной корректировки результатов автоматизированного анализа, выход второго устройства мультиплексирования соединен с первым входом блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации.
Дополнительное включение блока выявления графических ресурсов программного обеспечения, первый вход которого соединен через второй выход первого устройства мультиплексирования с выходом блока анализа и систематизации контекстной информации, а второй вход - с входом репозитория идентификационных признаков графических ресурсов программного обеспечения, позволяет осуществить поиск и выявить графические ресурсы программного обеспечения с помощью анализа данных, полученных в блоке анализа и систематизации контекстной информации, выполняемого путем побитного сравнения с идентификационными признаками графических ресурсов программного обеспечения, поступающими с входа репозитория идентификационных признаков графических ресурсов программного обеспечения.
Из блока выявления графических ресурсов программного обеспечения полученные данные поступают в блок идентификации скрытых каналов в графических ресурсах программного обеспечения, второй вход которого соединен с входом репозитория признаков, идентифицирующих скрытые каналы в графических ресурсах программного обеспечения. Блок идентификации скрытых каналов в графических ресурсах программного 10 обеспечения позволяет выявить скрытые каналы, представляющие собой стеговставки в графических ресурсах программного обеспечения, путем побитного сравнения выявленных скрытых каналов в графических ресурсах программного обеспечения, представляющих собой стеговставки в графических ресурсах программного обеспечения, с идентификационными признаками скрытых каналов в графических ресурсах программного обеспечения, представляющих собой стеговставки в графических ресурсах программного обеспечения, поступающими со входа репозитория признаков, идентифицирующих скрытые каналы в графических ресурсах программного обеспечения.
Из блока идентификации скрытых каналов в графических ресурсах программного обеспечения данные поступают в блок сохранения найденных скрытых каналов в графических ресурсах программного обеспечения, который осуществляет сохранение найденных скрытых каналов в графических ресурсах программного обеспечения, представляющих собой стеговставки в графических ресурсах программного обеспечения.
Из блока сохранения найденных скрытых каналов в графических ресурсах программного обеспечения данные поступают в блок анализа выявленных скрытых каналов в графических ресурсах программного обеспечения. В блоке анализа выявленных скрытых каналов в графических ресурсах программного обеспечения осуществляется анализ обнаруженных скрытых каналов, представляющих собой стеговставки в графических ресурсах программного обеспечения, и принимается решение о наличии или отсутствии скрытых каналов, представляющих собой стеговставки в графических ресурсах программного обеспечения.
Из блока анализа выявленных скрытых каналов в графических ресурсах программного обеспечения результаты о наличии или отсутствии скрытых каналов, представляющих собой стеговставки в графических ресурсах программного обеспечения, направляется на второй вход второго устройства мультиплексирования, а затем в блок оценки влияния функциональных 11 объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации.
Дополнительная установка первого устройства мультиплексирования позволяет осуществить прием информации по входу от одного устройства - блока анализа и систематизации контекстной информации, и передать полученную информацию по выходам на несколько устройств, а именно по первому выходу - на блок анализа массивов бинарных данных, а по второму - на блок выявления графических ресурсов программного обеспечения, без искажения информации.
Второе устройство мультиплексирования позволяет осуществить прием информации от нескольких устройств, а именно по первому входу - от блока экспертной корректировки результатов автоматизированного анализа, по второму входу - от блока анализа выявленных скрытых каналов в графических ресурсах программного обеспечения, и передать через один выход на вход блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации, без искажения информации.
Таким образом, совокупность предложенных признаков позволяет обеспечить достижение технического результата.
На фиг. 1 приведена блок-схема системы анализа программного обеспечения на отсутствие недекларированных функциональных возможностей.
Система анализа программного обеспечения на отсутствие недекларированных функциональных возможностей содержит блок сохранения найденных потоков управления исследуемого программного обеспечения 1, блок хранения файлов исходных текстов программного обеспечения 2, блок фиксации исходного состояния исходных текстов программного обеспечения 16, блок проверки избыточности исходных текстов 17, блок анализа и систематизации контекстной информации 18, блок установки контрольных точек в файлы исходных текстов программного обеспечения 3, блок 12 компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками 4, блок выполнения скомпилированных файлов программного обеспечения 5, блок сохранения перечня пройденных контрольных точек 6, блок сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения 7, блок хранения перечня потенциально опасных программных конструкций 8, блок поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9, блок экспертной корректировки результатов автоматизированного анализа 10, блок тестирования потенциально опасных программных конструкций 15, блок сохранения итоговых результатов 11, вход файлов исходных текстов программного обеспечения 12, вход перечня потенциально опасных программных конструкций 13, блок анализа массивов бинарных данных 19, блок оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации 20, вход репозитория массивов бинарных данных 21, вход репозитория функций, взаимодействующих с элементами программных и программно-технических средств защиты информации 22, блок выявления графических ресурсов программного обеспечения 23, вход репозитория идентификационных признаков графических ресурсов программного обеспечения 28, блок идентификации скрытых каналов в графических ресурсах программного обеспечения 24, вход репозитория признаков, идентифицирующих скрытые каналы в графических ресурсах программного обеспечения 27, блок сохранения найденных скрытых каналов в графических ресурсах программного обеспечения 25, блок анализа выявленных скрытых каналов в графических ресурсах программного обеспечения 26, первое устройство мультиплексирования 29, второе устройство мультиплексирования 30, выход выдачи итоговых результатов контроля 14.
Причем вход блока хранения файлов исходных текстов программного обеспечения 2 соединен с входом получения файлов исходных текстов программного обеспечения 12, первый выход - входом блока фиксации 13 исходного состояния исходных текстов программного обеспечения 16, второй выход - с входом блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9, выход блока фиксации исходного состояния исходных текстов программного обеспечения 16 соединен с входом блока проверки избыточности исходных текстов 17, выход блока проверки избыточности исходных текстов 17 соединен с входом блока анализа и систематизации контекстной информации 18, выход блока анализа и систематизации контекстной информации 18 соединен с входом первого устройства мультиплексирования 29, первый выход которого соединен с входом блока анализа массивов бинарных данных 19, а второй выход - с первым входом блока выявления графических ресурсов программного обеспечения 23, второй вход блока анализа массивов бинарных данных 19 соединен с репозиторием массивов бинарных данных 21, выход блока анализа массивов бинарных данных 19 соединен с входом блока установки контрольных точек в файлы исходных текстов программного обеспечения 3, выход которого соединен с входом блока компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками 4, выход которого соединен с входом блока выполнения скомпилированных файлов программного обеспечения 5, первый выход которого соединен с входом блока сохранения найденных потоков управления исследуемого программного обеспечения 1, второй выход - с входом блока сохранения перечня пройденных контрольных точек 6, третий выход - с входом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения 7, выход блока сохранения найденных потоков управления исследуемого программного обеспечения 1 соединен с первым входом блока экспертной корректировки результатов автоматизированного анализа 10, второй вход которого соединен с выходом блока сохранения перечня пройденных контрольных точек 6, третий вход - с выходом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения 7, выход - с входом блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации 20, второй вход которого соединен с выходом репозитория функций, взаимодействующих с элементами программных и программно-технических средств защиты информации 22, выход блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации 20 соединен с входом блока сохранения итоговых результатов 11, выход которого соединен с выходом выдачи итоговых результатов контроля 14, второй вход блока выявления графических ресурсов программного обеспечения 23 соединен с входом репозитория идентификационных признаков графических ресурсов программного обеспечения 28, первый вход блока идентификации скрытых каналов в графических ресурсах программного обеспечения 24 соединен с выходом блока выявления графических ресурсов программного обеспечения 23, а второй вход блока идентификации скрытых каналов в графических ресурсах программного обеспечения 24 соединен с входом репозитория признаков, идентифицирующих скрытые каналы в графических ресурсах программного обеспечения 27, выход блока идентификации скрытых каналов в графических ресурсах программного обеспечения 24 соединен с входом блока сохранения найденных скрытых каналов в графических ресурсах программного обеспечения 25, выход блока сохранения найденных скрытых каналов в графических ресурсах программного обеспечения 25 соединен с входом блока анализа выявленных скрытых каналов в графических ресурсах программного обеспечения 26, выход блока анализа выявленных скрытых каналов в графических ресурсах программного обеспечения 26 соединен с вторым входом второго устройства мультиплексирования 30, первый вход которого соединен с выходом блока экспертной корректировки результатов автоматизированного анализа 10, выход второго устройства мультиплексирования 30 соединен с первым входом блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические 15 средства защиты информации 20.
Заявленная система работает следующим образом. Файлы исходных текстов программного обеспечения с входа 12 после сохранения в блоке 2 поступают в блок 16, где происходит фиксация исходного состояния файлов исходных текстов исследуемого программного обеспечения. После этого файлы исходных текстов поступают в блок 17, где осуществляется проверка избыточности исходных текстов, а затем передаются в блок 18 для анализа и систематизации контекстной информации в исходных текстах программного обеспечения. Следующим этапом является выявление массивов бинарных данных в блоке 19, в котором обнаруженные массивы бинарных данных сравниваются с массивами, поступающими с входа 21 из репозитория массивов бинарных данных 21. После чего обрабатывают файлы исходных текстов в блоке 3, где происходит установка контрольных точек в файлы исходных текстов программного обеспечения. После чего файлы исходных текстов программного обеспечения с установленными контрольными точками поступают в блок 4, где происходит их компиляция. Скомпилированные файлы исходных текстов из блока 4 поступают в блок 5, где происходит их запуск на выполнение, обработка запросов из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехват информации о найденных потоках управления исследуемого программного обеспечения и ее передача в блок 1 для сохранения, перехват информации о пройденных контрольных точках и ее передача в блок 6 для сохранения, перехват информации о пройденных трассах маршрутов выполнения скомпилированных файлов программного обеспечения и ее передача в блок 7 для сохранения. Помимо этого, файлы исходных текстов поступают из блока хранения файлов исходных текстов программного обеспечения 2 в блок поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9, где в них осуществляется поиск потенциально опасных программных конструкций, перечень которых поступает из блока 8. Предварительное формирование перечня потенциально опасных программных конструкций осуществляется с входа 13. Из блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9 информация поступает в блок тестирования потенциально опасных программных конструкций 15. Результаты автоматизированного анализа файлов исходных текстов поступают из блоков 1, 6, 7 и 15 в блок экспертной корректировки результатов автоматизированного анализа 10, где осуществляют корректировку с помощью интерактивного взаимодействия с экспертами. Полученные итоговые результаты поступают на первый вход второго устройства мультиплексирования, а затем в блок 20, куда также поступают данные в вход 22 репозитория функций взаимодействующих с элементами программных и программно-технических средств защиты информации. После чего в блоке 20 с помощью интерактивного взаимодействия с экспертами осуществляется оценка влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации, по окончании которого полученные данные поступают в блок 11, где происходит их сохранение, и данные поступают на выход 14. Из блока анализа и систематизации контекстной информации 18 данные поступают на вход первого устройства мультиплексирования 29. С первого входа первого устройства мультиплексирования 29 данные поступают на первый вход блока выявления графических ресурсов программного обеспечения 23, в котором выявленные графические ресурсы программного обеспечения сравниваются с идентификационными признаками графических ресурсов программного обеспечения, поступающими с входа репозитория идентификационных признаков графических ресурсов программного обеспечения 28. После чего выявленные графические ресурсы программного обеспечения поступают на первый вход блока идентификации скрытых каналов в графических ресурсах программного обеспечения 24, где выявленные скрытые каналы в графических ресурсах программного обеспечения, представляющие собой стеговставки в графических ресурсах программного обеспечения, сравниваются с идентификационными признаками скрытых каналов в графических ресурсах программного обеспечения, представляющих собой стеговставки в графических ресурсах программного обеспечения, поступающими с входа репозитория признаков, идентифицирующих скрытые каналы в графических ресурсах программного обеспечения 27. На следующем этапе из блока идентификации скрытых каналов в графических ресурсах программного обеспечения 24 полученные данные поступают в блок сохранения найденных скрытых каналов в графических ресурсах программного обеспечения 25, где осуществляется сохранение найденных скрытых каналов в графических ресурсах программного обеспечения, представляющих собой стеговставки в графических ресурсах программного обеспечения. Из блока сохранения найденных скрытых каналов в графических ресурсах программного обеспечения 25 сохраненные данные поступают в блок анализа выявленных скрытых каналов в графических ресурсах программного обеспечения 26, где осуществляется анализ обнаруженных скрытых каналов, представляющих собой стеговставки в графических ресурсах программного обеспечения, и принимается решение о наличии или отсутствии скрытых каналов, представляющих собой стеговставки в графических ресурсах программного обеспечения. Полученные итоговые результаты поступают на второй вход второго устройства мультиплексирования 30. С выхода второго устройства мультиплексирования 30 информация поступает на первый вход блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации 20.
Таким образом, разработана система анализа программного обеспечения на отсутствие недекларированных функциональных возможностей, позволяющая расширить арсенал и повысить функциональность систем анализа программного обеспечения, позволяющих осуществить защиту компьютеров, их компонентов, программ или данных от несанкционированной деятельности путем выявления недекларированных функциональных возможностей в файлах ресурсов программного обеспечения в виде скрытых каналов, представляющих 18 собой стеговставки в графических ресурсах программного обеспечения, а также в повысить достоверность получаемых результатов за счет возможности обнаружения недекларированных функциональных возможностей в виде скрытых каналов, представляющих собой стеговставки в графических ресурсах программного обеспечения.
название | год | авторы | номер документа |
---|---|---|---|
СИСТЕМА АНАЛИЗА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОТСУТСТВИЕ ПОТЕНЦИАЛЬНО ОПАСНЫХ ФУНКЦИОНАЛЬНЫХ ОБЪЕКТОВ | 2018 |
|
RU2675210C1 |
СПОСОБ АНАЛИЗА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОТСУТСТВИЕ НЕДЕКЛАРИРОВАННЫХ ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ | 2019 |
|
RU2711041C1 |
СИСТЕМА АНАЛИЗА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОТСУТСТВИЕ НЕДЕКЛАРИРОВАННЫХ ВОЗМОЖНОСТЕЙ | 2016 |
|
RU2622622C1 |
СИСТЕМА КОНТРОЛЯ ОТСУТСТВИЯ НЕДЕКЛАРИРОВАННЫХ ВОЗМОЖНОСТЕЙ В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ | 2010 |
|
RU2434265C1 |
СИСТЕМА КОНТРОЛЯ ОТСУТСТВИЯ НЕДЕКЛАРИРОВАННЫХ ВОЗМОЖНОСТЕЙ В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ | 2009 |
|
RU2419135C1 |
СИСТЕМА КОНТРОЛЯ ОТСУТСТВИЯ НЕДЕКЛАРИРОВАННЫХ ВОЗМОЖНОСТЕЙ В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ | 2010 |
|
RU2434272C1 |
Способ защиты программного обеспечения от недекларированных возможностей, содержащихся в получаемых обновлениях | 2018 |
|
RU2696951C1 |
КОНТЕЙНЕРНОЕ РАЗВЕРТЫВАНИЕ МИКРОСЕРВИСОВ НА ОСНОВЕ МОНОЛИТНЫХ УНАСЛЕДОВАННЫХ ПРИЛОЖЕНИЙ | 2017 |
|
RU2733507C1 |
СИСТЕМА И СПОСОБ ФОРМИРОВАНИЯ ОПТИМАЛЬНОГО НАБОРА ТЕСТОВ ДЛЯ ВЫЯВЛЕНИЯ ПРОГРАММНЫХ ЗАКЛАДОК | 2020 |
|
RU2744438C1 |
Способ и устройство управления потоками данных распределенной информационной системы с использованием идентификаторов | 2019 |
|
RU2710284C1 |
Изобретение относится к области защиты данных и может быть использовано при анализе исходного кода программного обеспечения на отсутствие недекларированных возможностей. Технический результат изобретения заключается в повышении функциональности системы анализа программного обеспечения, позволяющей осуществить защиту компьютеров, их компонентов, программ или данных от несанкционированной деятельности, а также в повышении достоверности результатов за счет возможности обнаружения недекларированных функциональных возможностей в виде скрытых каналов, представляющих собой стеговставки в графических ресурсах программного обеспечения. Технический результат достигается включением в систему анализа программного обеспечения на отсутствие недекларированных функциональных возможностей блока выявления графических ресурсов программного обеспечения, блока идентификации скрытых каналов в графических ресурсах программного обеспечения, блока сохранения найденных скрытых каналов в графических ресурсах программного обеспечения, блока анализа выявленных скрытых каналов в графических ресурсах программного обеспечения, первого и второго устройств мультиплексирования. 1 ил.
Система анализа программного обеспечения на отсутствие недекларированных функциональных возможностей, содержащая блок сохранения найденных потоков управления исследуемого программного обеспечения, блок хранения файлов исходных текстов программного обеспечения, блок фиксации исходного состояния исходных текстов программного обеспечения, блок проверки избыточности исходных текстов, блок анализа и систематизации контекстной информации, блок установки контрольных точек в файлы исходных текстов программного обеспечения, блок компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, блок выполнения скомпилированных файлов программного обеспечения, блок сохранения перечня пройденных контрольных точек, блок сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, блок хранения перечня потенциально опасных программных конструкций, блок поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения, блок экспертной корректировки результатов автоматизированного анализа, блок тестирования потенциально опасных программных конструкций, блок сохранения итоговых результатов, выход выдачи готовых результатов, блок анализа массивов бинарных данных, блок оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации, вход репозитория массивов бинарных данных, вход репозитория функций взаимодействующих с элементами программных и программно-технических средств защиты информации; вход блока хранения файлов исходных текстов программного обеспечения соединен с входом файлов исходных текстов программного обеспечения, первый выход блока хранения файлов исходных текстов программного обеспечения соединен с входом блока фиксации исходного состояния исходных текстов программного обеспечения, второй выход - с входом блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения, выход блока фиксации исходного состояния исходных текстов программного обеспечения соединен с входом блока проверки избыточности исходных текстов, выход которого соединен с входом блока анализа и систематизации контекстной информации, второй вход блока анализа массивов бинарных данных соединен с репозиторием массивов бинарных данных, выход блока анализа массивов бинарных данных соединен с входом блока установки контрольных точек в файлы исходных текстов программного обеспечения, выход блока установки контрольных точек в файлы исходных текстов программного обеспечения соединен с входом блока компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, выход которого соединен с входом блока выполнения скомпилированных файлов программного обеспечения, первый выход блока выполнения скомпилированных файлов программного обеспечения соединен с входом блока сохранения найденных потоков управления исследуемого программного обеспечения, второй выход - с входом блока сохранения перечня пройденных контрольных точек, третий выход - с входом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, выход блока сохранения найденных потоков управления исследуемого программного обеспечения соединен с первым входом блока экспертной корректировки результатов автоматизированного анализа, второй вход которого соединен с выходом блока сохранения перечня пройденных контрольных точек, третий вход - с выходом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, выход - с входом блока сохранения итоговых результатов, выход блока сохранения итоговых результатов соединен с выходом выдачи итоговых результатов контроля, второй вход блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения соединен с выходом блока хранения перечня потенциально опасных программных конструкций, вход блока хранения перечня потенциально опасных программных конструкций соединен с входом формирования перечня потенциально опасных программных конструкций, выход блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения соединен с блоком тестирования потенциально опасных программных конструкций, выход блока тестирования потенциально опасных программных конструкций соединен с четвертым входом блока экспертной корректировки промежуточных результатов, выход блока анализа и систематизации контекстной информации в исходных текстах программного обеспечения соединен с входом блока анализа массивов бинарных данных, выход которого соединен с блоком установки контрольных точек в файлы исходных текстов программного обеспечения, второй вход блока анализа массивов бинарных данных соединен с входом репозитория массивов бинарных данных, второй вход блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации соединен с входом репозитория функций, взаимодействующих с элементами программных и программно-технических средств защиты информации, выход блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации соединен со входом блока сохранения итоговых результатов, отличающаяся тем, что дополнительно содержит блок выявления графических ресурсов программного обеспечения, вход репозитория идентификационных признаков графических ресурсов программного обеспечения, блок идентификации скрытых каналов в графических ресурсах программного обеспечения, вход репозитория признаков, идентифицирующих скрытые каналы в графических ресурсах программного обеспечения, блок сохранения найденных скрытых каналов в графических ресурсах программного обеспечения, блок анализа выявленных скрытых каналов в графических ресурсах программного обеспечения, первое и второе устройства мультиплексирования, причем выход блока анализа и систематизации контекстной информации соединен с входом первого устройства мультиплексирования, первый выход которого соединен с входом блока анализа массивов бинарных данных, а второй выход - с первым входом блока выявления графических ресурсов программного обеспечения, второй вход блока выявления графических ресурсов программного обеспечения соединен с входом репозитория идентификационных признаков графических ресурсов программного обеспечения, первый вход блока идентификации скрытых каналов в графических ресурсах программного обеспечения соединен с выходом блока выявления графических ресурсов программного обеспечения, второй вход блока идентификации скрытых каналов в графических ресурсах программного обеспечения соединен с входом репозитория признаков, идентифицирующих скрытые каналы в графических ресурсах программного обеспечения, выход блока идентификации скрытых каналов в графических ресурсах программного обеспечения соединен с входом блока сохранения найденных скрытых каналов в графических ресурсах программного обеспечения, выход блока сохранения найденных скрытых каналов в графических ресурсах программного обеспечения соединен с входом блока анализа выявленных скрытых каналов в графических ресурсах программного обеспечения, выход блока анализа выявленных скрытых каналов в графических ресурсах программного обеспечения соединен с вторым входом второго устройства мультиплексирования, первый вход которого соединен с выходом блока экспертной корректировки результатов автоматизированного анализа, выход второго устройства мультиплексирования соединен с первым входом блока оценки влияния функциональных объектов исследуемого программного обеспечения на программные и программно-технические средства защиты информации.
СИСТЕМА АНАЛИЗА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОТСУТСТВИЕ ПОТЕНЦИАЛЬНО ОПАСНЫХ ФУНКЦИОНАЛЬНЫХ ОБЪЕКТОВ | 2018 |
|
RU2675210C1 |
СИСТЕМА АНАЛИЗА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОТСУТСТВИЕ НЕДЕКЛАРИРОВАННЫХ ВОЗМОЖНОСТЕЙ | 2016 |
|
RU2622622C1 |
Мраморовидное стекло | 1958 |
|
SU114799A1 |
СПОСОБ КОНТРОЛЯ ВЫПОЛНЕНИЯ КОМПЬЮТЕРНЫХ ПРОГРАММ В СООТВЕТСТВИИ С ИХ НАЗНАЧЕНИЕМ | 1998 |
|
RU2220443C2 |
US 11720731 B208.08.2023 | |||
US 7437718 B2, 14.10.2008. |
Авторы
Даты
2024-07-23—Публикация
2024-01-10—Подача