Патент на изобретение №2331101
|
||||||||||||||||||||||||||
(54) СПОСОБ КОНТРОЛЯ ФУНКЦИОНИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
(57) Реферат:
Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение отказоустойчивого выполнения программным обеспечением своих функциональных возможностей с обеспечением защиты от случайного и преднамеренного вмешательства. Способ заключается в следующем: осуществляют запуск контролируемого программного обеспечения при запуске электронной вычислительной машины, вырабатывают ключ симметричного шифрования для взаимодействия модуля контроля и контролируемого программного обеспечения в ответ на сигнал инициализации, полученный при начальном запуске от программного обеспечения, модулю контроля сообщают идентификатор контролируемого программного обеспечения, набор контролируемых подсистем и ожидаемую интенсивность (динамику) получения сигналов оповещения от контролируемых подсистем, в процессе функционирования программного обеспечения модулем контроля отслеживают интенсивность (динамику) получения сигналов оповещения от контролируемых подсистем по криптографически защищенному каналу, в случае несоответствия реальной интенсивности (динамики) ожидаемой выполняют перезапуск электронной вычислительной машины.
1. Область техники Изобретение относится к области вычислительной техники и направлено на обеспечение надежного функционирования программного обеспечения. 2. Уровень техники Развитие встраиваемых и других автономных вычислительных устройств, построенных на базе электронных вычислительных машин, свидетельствует о том, что все более и более ответственные задания возлагаются на электронные системы принятия решения. Это диктует достаточно жесткие требования к надежности функционирования таких систем, которая складывается из показателей надежности самой электронной вычислительной машины и исполняемого на ней программного обеспечения. При этом важность второго аспекта неоправданно занижается. В настоящее время известно большое количество теоретических исследований и практических рекомендаций по организации процесса разработки программного обеспечения для сокращения числа ошибок, повышения его эффективности и надежности его функционирования (Макгрегор Дж., Сайке Д. Тестирование объектно-ориентированного программного обеспечения: Практическое пособие. – К.: ООО ТИД ДС, 2002. – 423 с.), но для этого, по сути, необходимо выполнить заново проектирование и разработку существующего программного обеспечения, что на практике неосуществимо. Использование предлагаемого изобретения призвано обеспечить надежное функционирование программного обеспечения с учетом уже существующих в этом программном обеспечении недостатков, а также с учетом возможных случайных и преднамеренных воздействий на программное обеспечение с целью нарушения его работоспособности. В контексте рассматриваемой проблемы под надежностью функционирования программного обеспечения будем понимать отказоустойчивое выполнение его функциональных возможностей за счет противодействия следующим негативным факторам: 1. зависание программного обеспечения в целом или одной из его подсистем. Например, для программного обеспечения системы охранной телевизионной должна осуществляться запись видеопотока для всех видеоканалов, но в результате ошибки в программном коде произошел сбой (зависание) при записи одного видеоканала. Для обеспечения отказоустойчивого выполнения функциональных возможностей данной системы охранной телевизионной необходимо осуществить перезапуск программного обеспечения. 2. случайные воздействия на программное обеспечение, приводящие к нарушению его функционирования (аварийное завершение работы). В этом случае для обеспечения отказоустойчивого выполнения функциональных возможностей программного обеспечения требуется его повторный запуск. 3. преднамеренные воздействия на программное обеспечение, нацеленные на нарушение его функционирования. Отличаются от случайных воздействий тем, что после достижения цели воздействия (аварийное завершение работы программного обеспечения) злоумышленником предпринимаются дополнительные действия, направленные на то, чтобы скрыть от средств контроля функционирования факт нарушения работы программного обеспечения. Это требует применения дополнительных мер противодействия. Известны аналоги предлагаемого изобретения. Способ контроля функционирования, реализованный в программном продукте SoftDog, является наиболее близким аналогом к предлагаемому изобретению и рассматривается в качестве прототипа. 3. Раскрытие изобретения Задача настоящего изобретения заключается в обеспечении надежного функционирования программного обеспечения в автономном режиме (без участия оператора). Технический результат, достигаемый в результате использования предлагаемого изобретения, заключается в расширении функциональных возможностей известного решения за счет обеспечения отказоустойчивого выполнения программным обеспечением своих функциональных возможностей с обеспечением защиты от случайного и преднамеренного вмешательства. Для применения предлагаемого изобретения должен быть определен ряд параметров. Пусть задано множество Р={p0,…,pN}, где pi – i-е контролируемое программное обеспечение. Для каждого pi, определены множества , где – j-я контролируемая подсистема i-го контролируемого программного обеспечения, и , где – ожидаемая интенсивность (динамика) поступления сигналов оповещения о состоянии j-й контролируемой подсистемы i-го контролируемого программного обеспечения. Для противодействия злонамеренным воздействиям, направленным на вывод контролируемого приложения из строя и подмены его другим приложением, которое продолжит от имени контролируемого приложения оповещать модуль контроля, для каждого pi должен быть сгенерирован уникальный ключ симметричного шифрования si, с использованием которого организуется защищенный от подмены канал взаимодействия между контролируемым приложением и модулем контроля. Для достижения указанного технического результата необходимо для каждого контролируемого приложения pi выполнение следующей последовательности действий: программное обеспечение pi, при начальном запуске, а также при запуске любой дополнительной подсистемы отправляет сигнал инициализации модулю контроля, которому сообщает собственный идентификатор pi, набор контролируемых подсистем и ожидаемую интенсивность (динамику) поступления сигналов оповещения об их состоянии ; в ответ на сигнал инициализации от программного обеспечения рi модуль контроля вырабатывает уникальный ключ симметричного шифрования si для программного обеспечения pi, при этом все дальнейшее взаимодействие программного обеспечения pi с модулем контроля выполняется по криптографически защищенному каналу, что позволяет исключить подмену программного обеспечения в результате злонамеренного воздействия; программное обеспечение pi (включая все подсистемы, установленные им на контроль в процессе функционирования формирует сигналы оповещения для модуля контроля, которые передаются модулю контроля по криптографически защищенному на ключе si каналу с интенсивностью не меньшей модуль контроля отслеживает сигналы оповещения от каждой контролируемой подсистемы программного обеспечения pi и определяет реальную интенсивность (динамику) их поступления , вычисляемую по формуле , где – количество сигналов от j-й контролируемой подсистемы i-го контролируемого программного обеспечения за время наблюдения T. Если хотя бы для одной контролируемой подсистемы , то модуль контроля делает вывод о том, что функционирование j-й подсистемы i-го контролируемого программного обеспечения нарушено, и выполняет перезапуск программного обеспечения. Перезапуск программного обеспечения может быть выполнен путем перезагрузки электронной вычислительной машины или непосредственно остановом и последующим запуском i-го программного обеспечения. Таким образом, обеспечивается надежное функционирование программного обеспечения. 4. Осуществление изобретения Для осуществления предлагаемого способа контроля функционирования программного обеспечения необходимы следующие компоненты: электронная вычислительная машина – аппаратная платформа для функционирования контролируемого программного обеспечения; модуль контроля – аппаратный или программный модуль, которому по криптографически защищенному каналу контролируемое программное обеспечение передает сигналы оповещения; программное обеспечение – некоторое программное обеспечение, например, программное обеспечение системы охранной телевизионной, надежное функционирование которого требуется обеспечить. Пусть данное программное обеспечение включает в свой состав две подсистемы: подсистема отображения видеоданных в режиме реального времени и подсистема записи видеоданных на накопитель на жестком магнитном диске (НЖМД). Задача ставится как обеспечение надежного функционирования обеих подсистем для каждого видеоканала. Для осуществления предлагаемого способа контроля функционирования программного обеспечения необходимо выполнение следующей последовательности действий: 1. подключить модуль контроля к электронной вычислительной машине (для аппаратной реализации модуля контроля) или выполнить запуск модуля контроля на электронной вычислительной машине (для программной реализации модуля контроля); 2. установить контролируемое программное обеспечение системы охранной телевизионной на автозапуск при включении электронной вычислительной машины. Выполнить запуск контролируемого программного обеспечения, в т.ч. запуск подсистем отображения видеоданных в режиме реального времени и записи видеоданных на НЖМД для всех видеоканалов; 3. при запуске каждой подсистемы для каждого видеоканала выполняется процедура инициализации модуля контроля, которая предполагает выполнение следующих действий: передача сигнала инициализации от программного обеспечения модулю контроля с указанием уникального идентификатора программного обеспечения (может быть сгенерирован любым способом, в т.ч. последовательным увеличением значения некоторого глобального счетчика), набор контролируемых подсистем K={k0,…, kM, kM+1,…, k2M} и ожидаемая интенсивность (динамика) поступления сигналов об их состоянии F={f0,…, fM, fM+1,…, f2M}. При этом k0,…, kM – подсистемы отображения видеоданных в режиме реального времени для каналов 0…М, kM+1,…, k2M – подсистемы записи видеоданных на НЖМД для каналов 0…М. Ожидаемая интенсивность (динамика) F определяется исходя из логики работы каждой контролируемой подсистемы, в соответствии с которой динамика получения видеокадров для отображения в режиме реального времени составляет 25 кадр/сек, т.е. fi=20, , а в режиме записи на НЖМД для экономии пространства на НЖМД динамика сохранения не превышает 10 кадр/сек, т.е. fi=7, . Значения fi заведомо выбраны меньшими, чем реальная интенсивность (динамика) работы контролируемых подсистем, чтобы исключить ложные срабатывания модуля контроля на кратковременные снижения производительности; выработка модулем контроля ключа симметричного шифрования s и передача его программному обеспечению в ответ на сигнал инициализации; 4. при работе каждой подсистемы для каждого видеоканала после обработки каждого кадра видеопотока выполняется отправка сигнала оповещения модулю контроля по криптографически защищенному на ключе s каналу взаимодействия; 5. модуль контроля, получив сигнал оповещения от контролируемого программного обеспечения, обновляет (пересчитывает) реальную интенсивность (динамику) получения сигналов оповещения. Если реальная интенсивность (динамика) получения сигналов оповещения оказывается меньше ожидаемой, например, в результате нарушения функционирования одной из подсистем, то модуль контроля выполняет перезапуск электронной вычислительной машины, а следовательно, и контролируемого программного обеспечения, обеспечив его надежное функционирование при условии достижения указанного технического результата.
Формула изобретения
Способ контроля функционирования программного обеспечения, заключающийся в том, что передают сигналы состояния работоспособности от контролируемого программного обеспечения программному модулю контроля, отличающийся тем, что осуществляют запуск контролируемого программного обеспечения при запуске электронной вычислительной машины, вырабатывают ключ симметричного шифрования для взаимодействия модуля контроля и контролируемого программного обеспечения в ответ на сигнал инициализации, полученный при начальном запуске от программного обеспечения, модулю контроля сообщают идентификатор контролируемого программного обеспечения, набор контролируемых подсистем и ожидаемую интенсивность (динамику) получения сигналов оповещения от контролируемых подсистем, в процессе функционирования программного обеспечения модулем контроля отслеживают интенсивность (динамику) получения сигналов оповещения от контролируемых подсистем по криптографически защищенному каналу, в случае несоответствия реальной интенсивности (динамики) ожидаемой выполняют перезапуск электронной вычислительной машины.
|
||||||||||||||||||||||||||