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

Классы МПК:G06F11/36 Предотвращение ошибок с помощью тестирования или отладки программного обеспечения
G06F21/22 путем ограничения доступа к программам или процессам
Патентообладатель(и):Свирин Илья Сергеевич (RU)
Приоритеты:
подача заявки:
2006-12-25
публикация патента:

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

Формула изобретения

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

Описание изобретения к патенту

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, определены множества способ контроля функционирования программного обеспечения, патент № 2331101 , где способ контроля функционирования программного обеспечения, патент № 2331101 - j-я контролируемая подсистема i-го контролируемого программного обеспечения, и способ контроля функционирования программного обеспечения, патент № 2331101 , где способ контроля функционирования программного обеспечения, патент № 2331101 - ожидаемая интенсивность (динамика) поступления сигналов оповещения о состоянии j-й контролируемой подсистемы i-го контролируемого программного обеспечения.

Для противодействия злонамеренным воздействиям, направленным на вывод контролируемого приложения из строя и подмены его другим приложением, которое продолжит от имени контролируемого приложения оповещать модуль контроля, для каждого pi должен быть сгенерирован уникальный ключ симметричного шифрования si , с использованием которого организуется защищенный от подмены канал взаимодействия между контролируемым приложением и модулем контроля.

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

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

в ответ на сигнал инициализации от программного обеспечения рi модуль контроля вырабатывает уникальный ключ симметричного шифрования si для программного обеспечения pi, при этом все дальнейшее взаимодействие программного обеспечения p i с модулем контроля выполняется по криптографически защищенному каналу, что позволяет исключить подмену программного обеспечения в результате злонамеренного воздействия;

программное обеспечение pi (включая все подсистемы, установленные им на контроль способ контроля функционирования программного обеспечения, патент № 2331101 в процессе функционирования формирует сигналы оповещения для модуля контроля, которые передаются модулю контроля по криптографически защищенному на ключе si каналу с интенсивностью не меньшей способ контроля функционирования программного обеспечения, патент № 2331101

модуль контроля отслеживает сигналы оповещения от каждой контролируемой подсистемы способ контроля функционирования программного обеспечения, патент № 2331101 программного обеспечения pi и определяет реальную интенсивность (динамику) их поступления способ контроля функционирования программного обеспечения, патент № 2331101 , вычисляемую по формуле способ контроля функционирования программного обеспечения, патент № 2331101 , где способ контроля функционирования программного обеспечения, патент № 2331101 - количество сигналов от j-й контролируемой подсистемы i-го контролируемого программного обеспечения за время наблюдения T. Если хотя бы для одной контролируемой подсистемы способ контроля функционирования программного обеспечения, патент № 2331101 , то модуль контроля делает вывод о том, что функционирование j-й подсистемы i-го контролируемого программного обеспечения нарушено, и выполняет перезапуск программного обеспечения. Перезапуск программного обеспечения может быть выполнен путем перезагрузки электронной вычислительной машины или непосредственно остановом и последующим запуском i-го программного обеспечения.

Таким образом, обеспечивается надежное функционирование программного обеспечения.

4. Осуществление изобретения

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

электронная вычислительная машина - аппаратная платформа для функционирования контролируемого программного обеспечения;

модуль контроля - аппаратный или программный модуль, которому по криптографически защищенному каналу контролируемое программное обеспечение передает сигналы оповещения;

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

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

1. подключить модуль контроля к электронной вычислительной машине (для аппаратной реализации модуля контроля) или выполнить запуск модуля контроля на электронной вычислительной машине (для программной реализации модуля контроля);

2. установить контролируемое программное обеспечение системы охранной телевизионной на автозапуск при включении электронной вычислительной машины. Выполнить запуск контролируемого программного обеспечения, в т.ч. запуск подсистем отображения видеоданных в режиме реального времени и записи видеоданных на НЖМД для всех видеоканалов;

3. при запуске каждой подсистемы для каждого видеоканала выполняется процедура инициализации модуля контроля, которая предполагает выполнение следующих действий:

передача сигнала инициализации от программного обеспечения модулю контроля с указанием уникального идентификатора программного обеспечения (может быть сгенерирован любым способом, в т.ч. последовательным увеличением значения некоторого глобального счетчика), набор контролируемых подсистем K={k0,..., kM, k M+1,..., k2M} и ожидаемая интенсивность (динамика) поступления сигналов об их состоянии F={f 0,..., fM, fM+1 ,..., f2M}. При этом k0 ,..., kM - подсистемы отображения видеоданных в режиме реального времени для каналов 0...М, k M+1,..., k2M - подсистемы записи видеоданных на НЖМД для каналов 0...М. Ожидаемая интенсивность (динамика) F определяется исходя из логики работы каждой контролируемой подсистемы, в соответствии с которой динамика получения видеокадров для отображения в режиме реального времени составляет 25 кадр/сек, т.е. fi=20, способ контроля функционирования программного обеспечения, патент № 2331101 , а в режиме записи на НЖМД для экономии пространства на НЖМД динамика сохранения не превышает 10 кадр/сек, т.е. f i=7, способ контроля функционирования программного обеспечения, патент № 2331101 . Значения fi заведомо выбраны меньшими, чем реальная интенсивность (динамика) работы контролируемых подсистем, чтобы исключить ложные срабатывания модуля контроля на кратковременные снижения производительности;

выработка модулем контроля ключа симметричного шифрования s и передача его программному обеспечению в ответ на сигнал инициализации;

4. при работе каждой подсистемы для каждого видеоканала после обработки каждого кадра видеопотока выполняется отправка сигнала оповещения модулю контроля по криптографически защищенному на ключе s каналу взаимодействия;

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

Класс G06F11/36 Предотвращение ошибок с помощью тестирования или отладки программного обеспечения

способ и устройство автоматизированной сериализации для массового производства радиоэлектронных устройств -  патент 2500019 (27.11.2013)
способ представления информации, имеющей отношение к безопасности, на дисплее и устройство для применения настоящего способа -  патент 2498395 (10.11.2013)
способ автоматического генерирования сценария для проверки правильности функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для применения способа -  патент 2473115 (20.01.2013)
способ отладки функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для его осуществления -  патент 2454706 (27.06.2012)
способ проверки функционирования протоколов информационных систем -  патент 2453905 (20.06.2012)
способ обработки объема данных, используемого во время фазы отладки функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для его осуществления -  патент 2451990 (27.05.2012)
система оценивания объема работ по контролю отсутствия недекларированных возможностей в программном обеспечении -  патент 2445684 (20.03.2012)
схема отладки, сравнивающая режим обработки набора команд процессора -  патент 2429525 (20.09.2011)
система, устройство и способ динамической настройки и конфигурирования приложений -  патент 2422882 (27.06.2011)
система и способ прозрачной трассировки и профилирования виртуализированных встроенных вычислительных систем -  патент 2411571 (10.02.2011)

Класс G06F21/22 путем ограничения доступа к программам или процессам

способ обработки дейтаграмм сетевого трафика для защиты информационно-вычислительных сетей (варианты) -  патент 2472217 (10.01.2013)
способ защиты программного обеспечения от несанкционированной активации и копирования -  патент 2470358 (20.12.2012)
способ защиты исполнения программы -  патент 2468428 (27.11.2012)
виртуализация для диверсифицированной защиты от несанкционированного вмешательства -  патент 2458394 (10.08.2012)
основанные на репутации решения по авторизации -  патент 2458393 (10.08.2012)
устройство обработки информации и способ управления выполнением -  патент 2450351 (10.05.2012)
способ и система управления дополнительными функциями и носитель записи для цифрового устройства -  патент 2450350 (10.05.2012)
архитектура виртуального модуля безопасности -  патент 2444783 (10.03.2012)
система защиты информации от несанкционированного доступа к конфиденциальной информации и информации, содержащей персональные данные -  патент 2444057 (27.02.2012)
система защиты информации от несанкционированного доступа к информации, содержащей сведения, составляющие государственную тайну -  патент 2443017 (20.02.2012)
Наверх