система контроля отсутствия недекларированных возможностей в программном обеспечении
Классы МПК: | G06F12/16 защита от потерь данных в памяти G06F11/30 контроль |
Автор(ы): | Бурушкин Алексей Анатольевич (RU), Минаков Владимир Александрович (RU), Мирошников Вячеслав Викторович (RU), Грищенко Кристина Павловна (RU) |
Патентообладатель(и): | Федеральное государственное учреждение "Государственный научно-исследовательский испытательный институт проблем технической защиты информации Федеральной службы по техническому и экспортному контролю" (RU) |
Приоритеты: |
подача заявки:
2009-10-05 публикация патента:
20.05.2011 |
Изобретение относится к информационным вычислительным системам и сетям. Техническим результатом является значительное сокращение объема работ по автоматизированному контролю отсутствия недекларированных возможностей в исходных текстах программного обеспечения. Система содержит блок сохранения найденных потоков управления исследуемого программного обеспечения, блок хранения файлов исходных текстов программного обеспечения, блок установки контрольных точек в файлы исходных текстов программного обеспечения, блок компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, блок выполнения скомпилированных файлов программного обеспечения, блок сохранения перечня пройденных контрольных точек, блок сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, блок хранения перечня потенциально опасных программных конструкций, блок поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения, блок экспертной корректировки результатов автоматизированного анализа, блок сохранения итоговых результатов, блок построения сетей Петри файлов исходных текстов программного обеспечения, блок анализа и маркирования исключаемых из дальнейшей обработки ветвей сетей Петри, блок хранения оптимизированных исходных текстов. 2 ил.
Формула изобретения
Система контроля отсутствия недекларированных возможностей в программном обеспечении, содержащая блок сохранения найденных потоков управления исследуемого программного обеспечения, блок хранения файлов исходных текстов программного обеспечения, блок установки контрольных точек в файлы исходных текстов программного обеспечения, блок компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, блок выполнения скомпилированных файлов программного обеспечения, блок сохранения перечня пройденных контрольных точек, блок сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, блок хранения перечня потенциально-опасных программных конструкций, блок поиска потенциально-опасных программных конструкций в файлах исходных текстов программного обеспечения, блок экспертной корректировки результатов автоматизированного анализа, блок сохранения итоговых результатов, причем вход блока хранения файлов исходных текстов программного обеспечения соединен с входом получения файлов исходных текстов программного обеспечения, первый выход - с входом блока установки контрольных точек в файлы исходных текстов программного обеспечения, второй выход - с входом блока поиска потенциально-опасных программных конструкций в файлах исходных текстов программного обеспечения, выход блока установки контрольных точек в файлы исходных текстов программного обеспечения соединен с входом блока компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, выход которого соединен с входом блока выполнения скомпилированных файлов программного обеспечения, первый выход которого соединен с входом блока сохранения найденных потоков управления исследуемого программного обеспечения, второй выход - с входом блока сохранения перечня пройденных контрольных точек, третий выход - с входом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, выход блока сохранения найденных потоков управления исследуемого программного обеспечения соединен с первым входом блока экспертной корректировки результатов автоматизированного анализа, второй вход которого соединен с выходом блока сохранения перечня пройденных контрольных точек, третий вход - с выходом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, четвертый вход - с выходом блока поиска потенциально-опасных программных конструкций в файлах исходных текстов программного обеспечения, выход - с входом блока сохранения итоговых результатов, выход которого соединен с выходом выдачи итоговых результатов контроля, второй вход блока поиска потенциально-опасных программных конструкций в файлах исходных текстов программного обеспечения соединен с выходом блока хранения перечня потенциально-опасных программных конструкций, вход которого соединен с входом формирования перечня потенциально-опасных программных конструкций, отличающаяся тем, что между входом получения файлов исходных текстов программного обеспечения и входом блока хранения файлов исходных текстов программного обеспечения дополнительно введены блок построения сетей Петри файлов исходных текстов программного обеспечения, блок анализа и маркирования исключаемых из дальнейшей обработки ветвей сетей Петри, блок хранения оптимизированных исходных текстов, причем вход блока построения сетей Петри файлов исходных текстов программного обеспечения соединен с входом получения файлов исходных текстов программного обеспечения, выход - с входом блока анализа и маркирования исключаемых из дальнейшей обработки ветвей сетей Петри, выход которого соединен с входом блока хранения оптимизированных исходных текстов, выход которого соединен с входом блока хранения файлов исходных текстов программного обеспечения.
Описание изобретения к патенту
Изобретение относится к вычислительной технике, а именно к информационным вычислительным системам и сетям, и может быть использовано для защиты информационных ресурсов рабочих станций и серверов от воздействия недекларированных возможностей в установленном на них программном обеспечении, при создании программного обеспечения, при анализе исходного кода программного обеспечения, в том числе при проведении сертификационных испытаний [1, ст. 20; 2] программного обеспечения на отсутствие недекларированных возможностей [3].
Известна система контроля отсутствия недекларированных возможностей в программном обеспечении [4]. Система представлена на фиг.1. Система контроля отсутствия недекларированных возможностей в программном обеспечении включает блок сохранения найденных потоков управления исследуемого программного обеспечения 1, блок хранения файлов исходных текстов программного обеспечения 2, блок установки контрольных точек в файлы исходных текстов программного обеспечения 3, блок компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками 4, блок выполнения скомпилированных файлов программного обеспечения 5, блок сохранения перечня пройденных контрольных точек 6, блок сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения 7, блок хранения перечня потенциально опасных программных конструкций 8, блок поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9, блок экспертной корректировки результатов автоматизированного анализа 10, блок сохранения итоговых результатов 11, причем вход блока хранения файлов исходных текстов программного обеспечения 2 соединен с входом получения файлов исходных текстов программного обеспечения 12, первый выход - с входом блока установки контрольных точек в файлы исходных текстов программного обеспечения 3, второй выход - с входом блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9, выход блока установки контрольных точек в файлы исходных текстов программного обеспечения 3 соединен с входом блока компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками 4, выход которого соединен с входом блока выполнения скомпилированных файлов программного обеспечения 5, первый выход которого соединен с входом блока сохранения найденных потоков управления исследуемого программного обеспечения 1, второй выход - с входом блока сохранения перечня пройденных контрольных точек 6, третий выход - с входом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения 7, выход блока сохранения найденных потоков управления исследуемого программного обеспечения 1 соединен с первым входом блока экспертной корректировки результатов автоматизированного анализа 10, второй вход которого соединен с выходом блока сохранения перечня пройденных контрольных точек 6, третий вход - с выходом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения 7, четвертый вход - с выходом блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9, выход - с входом блока сохранения итоговых результатов 11, выход которого соединен с выходом выдачи итоговых результатов контроля 14, второй вход блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9 соединен с выходом блока хранения перечня потенциально опасных программных конструкций 8, вход которого соединен с входом формирования перечня потенциально опасных программных конструкций 13.
Контроль отсутствия недекларированных возможностей в программном обеспечении заключается в том, что файлы исходных текстов программного обеспечения с входа 12 после сохранения в блоке 2 поступают в блок 3, где происходит установка контрольных точек в файлы, а также процедуры и функции исходных текстов. После чего файлы исходных текстов программного обеспечения с установленными контрольными точками поступают в блок 4, где происходит их компиляция. Скомпилированные файлы исходных текстов поступают в блок 5, где происходит их запуск на выполнение, обработка запросов из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехват информации о найденных потоках управления исследуемого программного обеспечения и ее передаче в блок 1 для сохранения, перехват информации о пройденных контрольных точках и ее передаче в блок 6 для сохранения, перехват информации о пройденных трассах маршрутов выполнения скомпилированных файлов программного обеспечения и ее передаче в блок 7 для сохранения. Дополнительно файлы исходных текстов поступают в блок 9, где в них осуществляется поиск потенциально опасных программных конструкций, перечень которых поступает из блока 8. Предварительное формирование перечня потенциально опасных программных конструкций осуществляется с входа 13. Результаты автоматизированного анализа файлов исходных текстов поступают из блоков 1, 6, 7 и 9 в блок 10, где осуществляют корректировку с помощью интерактивного взаимодействия с экспертами. Полученные итоговые результаты после сохранения в блоке 11 поступают на выход 14.
Таким образом, данная система позволяет проводить частично автоматизированный анализ исходных текстов на наличие недекларированных возможностей.
Недостатками системы для контроля отсутствия недекларированных возможностей в программном обеспечении являются следующие.
1. Избыточность проводимого автоматизированного анализа всех файлов и функциональных объектов исходных текстов.
2. Отсутствие предварительной оценки отсутствия недекларированных возможностей в исходных текстах программного обеспечения.
Задача, на решение которой направлено данное изобретение, заключается в обеспечении возможности предварительной оценки отсутствия недекларированных возможностей в исходных текстах программного обеспечения.
Техническим результатом заявляемого изобретения является значительное сокращение объема работ по автоматизированному контролю отсутствия недекларированных возможностей в исходных текстах программного обеспечения.
Указанный технический результат достигается тем, что в известной системе контроля отсутствия недекларированных возможностей в программном обеспечении, включающей блок сохранения найденных потоков управления исследуемого программного обеспечения, блок хранения файлов исходных текстов программного обеспечения, блок установки контрольных точек в файлы исходных текстов программного обеспечения, блок компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, блок выполнения скомпилированных файлов программного обеспечения, блок сохранения перечня пройденных контрольных точек, блок сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, блок хранения перечня потенциально опасных программных конструкций, блок поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения, блок экспертной корректировки результатов автоматизированного анализа, блок сохранения итоговых результатов, причем вход блока хранения файлов исходных текстов программного обеспечения соединен с входом получения файлов исходных текстов программного обеспечения, первый выход - с входом блока установки контрольных точек в файлы исходных текстов программного обеспечения, второй выход - с входом блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения, выход блока установки контрольных точек в файлы исходных текстов программного обеспечения соединен с входом блока компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками, выход которого соединен с входом блока выполнения скомпилированных файлов программного обеспечения, первый выход которого соединен с входом блока сохранения найденных потоков управления исследуемого программного обеспечения, второй выход - с входом блока сохранения перечня пройденных контрольных точек, третий выход - с входом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, выход блока сохранения найденных потоков управления исследуемого программного обеспечения соединен с первым входом блока экспертной корректировки результатов автоматизированного анализа, второй вход которого соединен с выходом блока сохранения перечня пройденных контрольных точек, третий вход - с выходом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения, четвертый вход - с выходом блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения, выход - с входом блока сохранения итоговых результатов, выход которого соединен с выходом выдачи итоговых результатов контроля, второй вход блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения соединен с выходом блока хранения перечня потенциально опасных программных конструкций, вход которого соединен с входом формирования перечня потенциально опасных программных конструкций, согласно изобретению между входом получения файлов исходных текстов программного обеспечения и входом блока хранения файлов исходных текстов программного обеспечения дополнительно введены блок построения сетей Петри файлов исходных текстов программного обеспечения, блок анализа и маркирования исключаемых из дальнейшей обработки ветвей сетей Петри, блок хранения оптимизированных исходных текстов, причем вход блока построения сетей Петри файлов исходных текстов программного обеспечения соединен с входом получения файлов исходных текстов программного обеспечения, выход - с входом блока анализа и маркирования исключаемых из дальнейшей обработки ветвей сетей Петри, выход которого соединен с входом блока хранения оптимизированных исходных текстов, выход которого соединен с входом блока хранения файлов исходных текстов программного обеспечения.
Эти отличительные признаки по сравнению с прототипом позволяют сделать вывод о соответствии заявляемого технического решения критерию "новизна".
Сущность изобретения заключается в следующем. В большинстве случаев несимметричные ветви в исходных текстах программного обеспечения могут содержать программные ошибки и требуют особого внимания при анализе. Программные ошибки являются одним из видов недекларированных возможностей программного обеспечения. Анализ исходных текстов различного программного обеспечения позволил определить, что несимметричные ветви исходных текстов могут содержать не только программные ошибки, но и другие виды недекларированных возможностей, например программные закладки, а симметричные ветви практически не содержат недекларированных возможностей. Исходные тексты в основном состоят из симметричных ветвей, следовательно, исключение симметричных ветвей из анализа является целесообразным и влечет за собой значительное уменьшение объема проводимых работ по контролю отсутствия недекларированных возможностей в программном обеспечении.
Перечисленная совокупность существенных признаков в указанном порядке обеспечивает возможность исключения из рассмотрения части симметричных ветвей, наличие недекларированных возможностей в которых практически невозможно, что уменьшает общий объем работ по контролю отсутствия недекларированных возможностей.
Именно новое свойство совокупности признаков, приводящих к существенному уменьшению объема работ по контролю отсутствия недекларированных возможностей и, следовательно, затрачиваемого на выполнение данных работ времени, что не описано ранее в литературных источниках, позволяет сделать вывод о соответствии предлагаемого технического решения критерию "изобретательский уровень".
Схема предлагаемой системы контроля отсутствия недекларированных возможностей в программном обеспечении приведена на фиг.2, содержит: блок сохранения найденных потоков управления исследуемого программного обеспечения 1, блок хранения файлов исходных текстов программного обеспечения 2, блок установки контрольных точек в файлы исходных текстов программного обеспечения 3, блок компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками 4, блок выполнения скомпилированных файлов программного обеспечения 5, блок сохранения перечня пройденных контрольных точек 6, блок сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения 7, блок хранения перечня потенциально опасных программных конструкций 8, блок поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9, блок экспертной корректировки результатов автоматизированного анализа 10, блок сохранения итоговых результатов 11, блок построения сетей Петри файлов исходных текстов программного обеспечения 15, блок анализа и маркирования исключаемых из дальнейшей обработки ветвей сетей Петри 16, блок хранения оптимизированных исходных текстов 17, причем первый выход блока хранения файлов исходных текстов программного обеспечения 2 соединен с входом блока установки контрольных точек в файлы исходных текстов программного обеспечения 3, второй выход - с входом блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9, выход блока установки контрольных точек в файлы исходных текстов программного обеспечения 3 соединен с входом блока компиляции файлов исходных текстов программного обеспечения с установленными контрольными точками 4, выход которого соединен с входом блока выполнения скомпилированных файлов программного обеспечения 5, первый выход которого соединен с входом блока сохранения найденных потоков управления исследуемого программного обеспечения 1, второй выход - с входом блока сохранения перечня пройденных контрольных точек 6, третий выход - с входом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения 7, выход блока сохранения найденных потоков управления исследуемого программного обеспечения 1 соединен с первым входом блока экспертной корректировки результатов автоматизированного анализа 10, второй вход которого соединен с выходом блока сохранения перечня пройденных контрольных точек 6, третий вход - с выходом блока сохранения трасс маршрутов выполнения скомпилированных файлов программного обеспечения 7, четвертый вход - с выходом блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9, выход - с входом блока сохранения итоговых результатов 11, выход которого соединен с выходом выдачи итоговых результатов контроля 14, второй вход блока поиска потенциально опасных программных конструкций в файлах исходных текстов программного обеспечения 9 соединен с выходом блока хранения перечня потенциально опасных программных конструкций 8, вход которого соединен с входом формирования перечня потенциально опасных программных конструкций 13, вход блока построения сетей Петри файлов исходных текстов программного обеспечения 15 соединен с входом получения файлов исходных текстов программного обеспечения 12, выход - с входом блока анализа и маркирования исключаемых из дальнейшей обработки ветвей сетей Петри 16, выход которого соединен с входом блока хранения оптимизированных исходных текстов 17, выход которого соединен с входом блока хранения файлов исходных текстов программного обеспечения 2.
Назначение блоков понятно из их названия.
Перед осуществлением контроля отсутствия недекларированных возможностей в программном обеспечении, реализованного в прототипе, с помощью блока 15 для файлов исходных текстов, поступающих с входа 12, предварительно проводят построение сетей Петри. Построенные сети Петри в блоке 16 анализируют на наличие симметричных ветвей и исключают из дальнейшего анализа путем маркирования специальными метками. Маркированные исходные тексты оптимизируют и сохраняют в блоке 17. После чего исходные тексты уменьшенного объема передают для проведения дальнейшего контроля отсутствия недекларированных возможностей в блок 2.
Технический результат достигается за счет исключения из рассмотрения части симметричных ветвей, наличие недекларированных возможностей в которых практически невозможно.
Реализация предлагаемой системы не вызывает затруднений, так как все блоки и узлы, входящие в устройство, реализующее систему, общеизвестны и широко описаны в технической литературе [6-14]. Например, блок построения сетей Петри файлов исходных текстов программного обеспечения и блок анализа и маркирования исключаемых из дальнейшей обработки ветвей сетей Петри могут быть реализованы в виде вычислительного устройства, включающего арифметико-логическое устройство анализа и оперативное запоминающее устройство на базе современных интегральных микросхем или микроконтроллерах, по принципам и методам, описанным в [7-12], блок хранения оптимизированных исходных текстов - на базе любого машиночитаемого носителя информации [13, 14], взаимное соединение блоков и подсоединение к блокам прототипа может быть осуществлено по стандартным схемам подключения устройств [15].
Источники информации
1. Федеральный закон "О техническом регулировании" № 184-ФЗ от 27 декабря 2002 года.
2. Положение о сертификации средств защиты информации по требованиям безопасности информации. Утверждено приказом председателя Гостехкомиссии при Президенте РФ от 27 октября 1995 г. № 199.
3. Руководящий документ "Защита от несанкционированного доступа к информации. Часть 1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей" (Гостехкомиссия России, 1999).
4. Инструментальный комплекс для проведения статического и динамического анализа потоков управления в исполняемых кодах программ "IRIDA". Описание применения. 72410666.425790.007.31.
5. Котов В.Е. Сети Петри - М.: Наука, Гл. ред. физ.-мат. лит., 1984. - 160 с.
6. Питерсон Дж. Теория сетей Петри и моделирование систем: Пер. с англ. - М.: Мир, 1984. - 264 с., ил.
7. Нечаев И.А. Конструкции на логических элементах цифровых микросхем. - М.: Радио и связь, 1992. - 123 с.
8. Белов А.В. Создаем устройства на микроконтроллерах. - СПб.: Наука и техника, 2007. - 304 с.
9. Конструкторско-технологическое проектирование электронной аппаратуры. Учебник для вузов. Серия: Информатика в техническом университете. Под ред. Шахнова В.А. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2003. - 528 с.: ил.
10. Суворова Е., Шейнин Ю. Проектирование цифровых систем на VHDL. Серия "Учебное пособие". - СПб.: БХВ-Петербург, 2003. - 576 с.: ил.
11. Овчинников В.А. Алгоритмизация комбинаторно-оптимизационных задач при проектировании ЭВМ и систем. Серия: Информатика в техническом университете. - М.: Изд-во МГТУ им. Н.Э.Баумана, 2001. - 288 с.: ил.
12. Новиков Ю.В. Основы цифровой схемотехники. Базовые элементы и схемы. Методы проектирования. - М.: Мир, 2001. - 379 с.
13. Левин В.И. Носители информации в цифровом веке / Под общ. ред. Д.Г.Красковского. - М.: КомпьютерПресс, 2000. - 256 с.: ил.
14. Гук М. Дисковая подсистема ПК. - СПб.: Питер, 2001. - 336 с.: ил.
15. Пей Ан. Сопряжение ПК с внешними устройствами. - М.: ДМК Пресс, 2003. - 320 с., ил.
Класс G06F12/16 защита от потерь данных в памяти