Способ контроля функционирования программного обеспечения

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

 

1. Область техники

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

2. Уровень техники

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

В настоящее время известно большое количество теоретических исследований и практических рекомендаций по организации процесса разработки программного обеспечения для сокращения числа ошибок, повышения его эффективности и надежности его функционирования (Макгрегор Дж., Сайке Д. Тестирование объектно-ориентированного программного обеспечения: Практическое пособие. - К.: ООО ТИД ДС, 2002. - 423 с.), но для этого, по сути, необходимо выполнить заново проектирование и разработку существующего программного обеспечения, что на практике неосуществимо. Использование предлагаемого изобретения призвано обеспечить надежное функционирование программного обеспечения с учетом уже существующих в этом программном обеспечении недостатков, а также с учетом возможных случайных и преднамеренных воздействий на программное обеспечение с целью нарушения его работоспособности.

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

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

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

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

Известны аналоги предлагаемого изобретения.

Аппаратный модуль контроля зависания операционной системы электронной вычислительной машины (т.н. модуль WatchDog), встроенный в плату видеозахвата Provideo PV-26x (электронный ресурс - http://www.provideo.tw). Данное решение предполагает наличие аппаратного модуля, который ожидает от программного обеспечения, загруженного в операционную систему электронной вычислительной машины, периодических сигналов оповещения «heartbeat» (англ. - «сердцебиение»). При отсутствии сигналов оповещения в течение некоторого промежутка времени модуль контроля зависания делает вывод о том, что операционная система зависла и выполняет перезагрузку электронной вычислительной машины. К недостатку данного решения можно отнести то, что осуществляется контроль только за функционированием операционной системы, а перезагрузка электронной вычислительной машины производится только при зависании операционной системы. Уровень надежности современных операционных систем, устанавливаемых на автономные устройства (Linux-подобные операционные системы), достаточно высок, чтобы вероятность зависания операционной системы считать пренебрежимо малой. Значительно более критична надежность функционирования прикладного программного обеспечения, которое никак не контролируется указанным аналогом.

Второй известный аналог представляет собой полностью программное решение, реализованное в коммерческом продукте Watchdog-О-Matic (электронный ресурс - http://www.securitylab.ru/software) компании SecurityLab. Данный программный продукт проверяет корректность работы выбранного программного обеспечения и автоматически перезагружает его при недоступности. К недостатку данного решения можно отнести то, что корректность работы программного обеспечения определяется по косвенным признакам и не может быть обнаружено частичное зависание (только одной из подсистем программного обеспечения). Кроме того, данное решение никак не противостоит преднамеренному воздействию на контролируемое программное обеспечение, а следовательно, если злоумышленник после вывода программного обеспечения из строя осуществит запуск собственного программного обеспечения с таким же именем (идентификатором), то система контроля не обнаружит замены и продолжит контролировать работоспособность уже подмененного программного обеспечения.

Третий известный аналог также представляет собой полностью программное решение, реализованное в свободно распространяемом продукте SoftDog для операционной системы Linux (электронный ресурс - http://www.opennet.ru/prog/info/497.html). Указанный программный продукт представляет собой программный модуль контроля, который ожидает получения от контролируемого программного обеспечения сигналов оповещения «heartbeat» (англ. - «сердцебиение»). При отсутствии сигналов оповещения в течение некоторого промежутка времени модуль контроля делает вывод о нарушении функционирования основного программного обеспечения и выполняет его перезапуск. К недостатку данного решения можно отнести то, что модуль контроля получает от программного обеспечения сигналы оповещения только одного типа - «программное обеспечение функционирует», хотя может быть нарушено функционирование только какой-либо подсистемы контролируемого программного обеспечения (например, сбой записи только по одному из четырех видеоканалов системы охранной телевизионной). Кроме того, данное решение также никак не противостоит злонамеренному воздействию на контролируемое программное обеспечение, а следовательно, если злоумышленник после вывода программного обеспечения из строя продолжит передавать модулю контроля сигналы оповещения со стороны собственного программного обеспечения, то модуль контроля не обнаружит подмены и не предпримет никаких действий по восстановлению работоспособности аварийно завершенного программного обеспечения.

Способ контроля функционирования, реализованный в программном продукте 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. модуль контроля, получив сигнал оповещения от контролируемого программного обеспечения, обновляет (пересчитывает) реальную интенсивность (динамику) получения сигналов оповещения. Если реальная интенсивность (динамика) получения сигналов оповещения оказывается меньше ожидаемой, например, в результате нарушения функционирования одной из подсистем, то модуль контроля выполняет перезапуск электронной вычислительной машины, а следовательно, и контролируемого программного обеспечения, обеспечив его надежное функционирование при условии достижения указанного технического результата.

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



 

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

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

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

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

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

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

Изобретение относится к способам и системам обработки визуализируемой цифровой информации. .

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

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

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

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

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

Изобретение относится к вычислительной технике и может быть использовано для отладки аппаратно-программных средств микроЭВМ и микропроцессорных систем. .

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

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

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

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

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