Научная статья на тему 'Представление программ инвариантами подобия для контроля искажения вычислений'

Представление программ инвариантами подобия для контроля искажения вычислений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
257
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БЕЗОПАСНОСТЬ ПРОГРАММ / МЕТОДЫ КОНТРОЛЯ ЦЕЛОСТНОСТИ / ПАСПОРТИЗАЦИЯ ПРОГРАММ / СЕМАНТИКА ВЫЧИСЛЕНИЙ / ОРГАНИЗАЦИЯ ВЫЧИСЛЕНИЙ С ПАМЯТЬЮ / SOFTWARE SECURITY / INTEGRITY CHECK METHOD / SOFTWARE CERTIFICATION / CALCULATIONS SEMANTICS / ORGANIZATION OF CALCULATIONS WITH MEMORY

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Харжевская Александра Владимировна, Ломако Александр Григорьевич, Петренко Сергей Анатольевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Харжевская Александра Владимировна, Ломако Александр Григорьевич, Петренко Сергей Анатольевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Representing Programs with Similarity Invariants for Monitoring Tampering with Calculations

It is important for the computation systems that run special computing programs to control integrity of the calculations. Since modern integrity control tools mainly using control computation methods cannot comprehensively control the computation process that is uploaded into the processor’s RAM, it is necessary to suggest a method aimed to prevent any modification in the arithmetic operations, which are the key operations for special calculations. Otherwise, insignificant modification of one operator may result in accumulation of errors, which will lead to incorrect computation results. Moreover, these results may fall within a certain confidence interval, therefore an error cannot be identified without additional control tools. The authors of the paper suggest solving the problem of the accuracy control of the arithmetic operators using mathematical tools of the theory of dimensions and similarity. The developed approach can present a computational process as defining relations or similarity equations in pre-set control points, which solution results in obtaining invariant information properties of the process. Reference attributes (or invariants) form a program passport. Conventional invariants are generated in the process of calculations and are compared with the reference. Such method can be used to monitor the semantics of the calculations and guarantee accuracy of the result.

Текст научной работы на тему «Представление программ инвариантами подобия для контроля искажения вычислений»

■ ПРЕДСТАВЛЕНИЕ ПРОГРАММ ИНВАРИАНТАМИ ПОДОБИЯ ДЛЯ КОНТРОЛЯ ИСКАЖЕНИЯ ВЫЧИСЛЕНИЙ

Харжевская А.В.1, Ломако А.Г.2, Петренко С.А.3

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

Ключевые слова: безопасность программ, методы контроля целостности, паспортизация программ, семантика вычислений, организация вычислений с памятью

DOI: 10.21581/2311-3456-2017-2-9-20

Введение

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

Основные положения теории подобия были сформулированы Седовым Л.И.4 и развиты Вени-ковым В.А., Гухманом А.А. и др. П ервоначально положения теории разрабатывались п бтменительнб к моделированию механичесвих, электиичехких хет-цессов и процессов теплообмена. Однако в коное 1980-х годов полученные ртзультато! были применены в области моделирования с использованием универсальных цифровых ЭВМ, а затем перенесены для решения гораздо более широкого спектра задач, в том числе защиты информации.

Наиболее детально положения теории подобия проработаны в отношении процессов, описываемых системами однородною степинных многочленов [9]. Основополагающими в теории подоб ия являюася тр и иео ре мы: пр ямди, обратная и п-тиорема. Пусти ыыассггптриваются две ардцесса р, и ра полные уравнения котирых имеют вид:

£ ДМ =0,и=1,2, ...,г;

1=1

ЕФШ = 0, и =1 ,2!,.. „г;

1=1

п п

=-о аю = П-Х^1 И Ф = ПХ""1 - однород-1 =1 " 1=1 1 ные фуакции своих ппиаметров;

Прямаи таорема подобия утверждает, что если прицессы о-нородео подобны, то имеет место система соотношений!:

Р= = Ф ,

р Ф '

тщ ид

и = 1,2!, . !.,г; 8 = 1,2, . .., (д-1 ).

1 Харжевская Александра Владимировна, Военно-космическая академия им. А.Ф. Можайского, Санкт-Петербург, Россия, a92_zotova@mail.ru

2 Ломако Александр Григорьевич, Заслуженный деятель науки РФ, доктор техн ических наук , проф ессо р, Воен но- космическая академия им. А.Ф. Можайсыово, Санкт-Петербург, Россия, 1итако_дмЫтвРш

3 Петренко Сергей Анатольевич, доктор технических наук, профессор, Уни верситет Иннополис, г. Иннополис, Татарстан, Россия, s.petrenko@ram_ler.ru

4 Седов Л.И. Методы теории размерности и теории подобия в механике. - М.; Лм ОГИЗ. Гос. изд-во технико-теорет. лит., 1944. - 136 с.

Выражения

Гц

и = 1,2, ..., г; 8 = 1,2, ...,

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

Таким образом, прямой теоремой формулируются необходимые условия для соотнесения исследуемого процесса с одним из подклассов. Достаточные условия однородного подобия двух процессов приведены в обратной теореме подобия: если существует возможность привести полные уравнения процессов к изоструктурной относительной форме с численно равными инвариантами подобия, то такие процессы являются однородно подобными. Теорема подобия, известная как «п-теорема», позволяет выявить функциональную зависимость между переменными процессами в относительной форме.

Теория подобия для контроля правильности программ была применена учеными В.В. Ковалевым [1], В.А. Романюк, С.А. Петренко [2-4] в диссертационных исследованиях. Следствие из прямой и «п-» теорем подобия позволило сформулировать инвариантные информативные признаки для вычислительных процессов.

Математическая постановка задачи контроля корректности вычислений инвариантами подобия

Представим вычислительный процесс в виде:

ВП = <Т, X, У Z, F Ф>,

где Т - множество моментов времени в которые наблюдается вычислительный процесс

X, У - множества входных и выходных параме-

тров вычислительного процесса

Z - множество состояний вычислительного

процесса. Всякое состояние ^ (j = 1,т ) вычислительного процесса характеризуется в каждый момент времени t е Т последовательностью выполнения арифметических операций в выбранной контрольной точке к.

F - множество операторов переходов /¡, отражающих механизм изменения состояний вычислительного процесса при его выполнении, в том числе при выполняемых арифметических операциях.

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

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

ц - отображение сравнения штатных и эталонных инвариантов вычислительного процесса;

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

£ - отображение восстановления арифметических операций на основе эталонных инвариантов подобия;

X - отображение корректности производимых вычислений на основе восстановленных арифметических операций.

Чтобы исключить возможность скрытной модификации производимых программой вычислений необходимо осуществить динамический контроль выполняемого вычислительного процесса (рис.1). Под динамическим контролем корректности программ специальных расчетных задач будем понимать контроль правильности выполняемой семантики арифметических операций в ходе их реального выполнения [5]. Данные для дина-

воздействие на формирование вычисления инвариантов

сравнение с эталонными

восстановление вычисление

Т х X х У

^ ¥ Ц £

Ъ' П' к П ? ъ

вычислений корректного результата

X

сигнал о некорректности вычислений

и

Е

Рис. 1. Обобщенная диаграмма отображений процесса восстановления корректности вычислений

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

Тогда для формирования паспорта программы необходимо:

1 . Решить задачу наблюдения (моделирование вычислительного процесса ориентирова нным управляющим графом программы).

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

т.е. преобразовать арифметические операции вида:

р

Х2,..., Хт ) = £ 2- Х2,..., Хт )

] =1

в безразмерный вид: [^ (*1, Х2Хт )] = [2а (х1,х2,-, Хт

Для обаспечеьия корректности вычислений необходимо:

1. Решить задачу управления вычислительным процессом путем сравнения семантических инвариантов с паспортом програмов1, то есть необходимо найти отображения: у: г'-П' ц: П'-П £ П-^

Огра=ичегия и допущения: 1. Рассматриваемое множество арифметических операций {+, -,*,/ ,=И

2.1 < 1 , где а - врася восстаьовлрния кср-ректности вычислений, 1 - пределрно допусти= мое время восстановления корректности вычислений.

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

Моделирование вычислительного процесса ориентированным управляющим графом

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

Моделирование вычислительного процесса необходимо для наблюдения корректного функционирования программы. Одним из способов представления вычислительного процесса является ориентированный управляющий граф. Пред-

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

Г( В, П)

где В = {В1} - множество вершин (линейных тчастков программы),

О = {В х В} - множество дуг (связей по управлению) меж=у нсми.

Здесь каждому линейному участку В{ е В графа соответствует своя последовательность арифметических операторов, т.е.

в = ь, ь 2,..., ьа).

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

в^СВрвО,..--^)

оде£лс£иВ/а:аЬЧ,ЬИПс..,Ь- О, V/= 1нр

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

Алгоритм вычислвтельаоло проценса приводится к графовой форме представления с целью вывести операторы арифмееичеспих выражений ио упровляющих операторов (условных оврехо-дов, вотвлений, циклов) [83]].

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

В каждой КТ для арифметических операторов необходимо строить системы определяющих соотношений [9] в виде уравнений подобия. Решение данных систем позволит сформировать матрицы инвариантов, которые позволят контролировать семантику вычислительного процесса.

Построение системы уравнений подобия на линейных участках графа

Исследования показали, что наиболее эффективным способом контроля целостности программ является проверка соотношений, опирающихся на теоретически обоснованные соотношения и свойства вычислений [11]. Ключевым соотношением в

последовательность

поел едовател ь-ность

разветвление

услоаке

Фу л KU.II»

305

Рис. 2. Декомпозиция управляющего графа программы

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

Реализацию Вк управляющего графа программы можно представить в виде упорядоченной последовательности первичных соотношений [9],

соответствующих арифметическим операторам:

У1 = /1 (Х1 >х2'--->хм )

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

У 2 = /2 (Х1'Х2'''''ХЫ 'У1 )

УМ = /М (Х1 , Х2 >'••> ХМ 'у1'у2'•••' УМ-1 )

(1)

Выполнив в правых частях соотношений суперпозицию {у1} наX, получим систему соотношений инвариантных относительно перемещения:

у1 = 21 (Х1 ,Х2 '■■■'ХМ )

У 2 = 2 2 (Х1 ,Х2'■■■' ХЫ )

Ут = 2т (Х1 ,Х2'■■■'ХN )

(2)

Соотношение у представить в виде:

= Р' ( )

(х1,х

х„)

можно

1=1

(3)

(4)

Вк) = ДР

Система (4) является системой определяющих соотношений или системой уравнений подобия.

С П01\Л01_1ь>КЭ функции р = X—[X сопостави м каждому х^ е X некоторую абстрактную размерность [xJ ]е[Х] . Т(огда размерности слагаемых суммы (3) выраится как

Г 1 N ( -Лп -

[¿Ух^х^.^х^П^.! , В' = ЛРг (5)

п=1

N г -Т 'Л N г -Т -

п[х„] =пк] - И = ]'Р,,

п=1 п=1

которую преобразуем к виду

N г л^л -

0К = Н-Рг

N

ЙЫ

1,

(6)

п=1

Е(пИ(„- Л п ^[л-и] = = 1,цк

п=1

(7)

Ак =

а!

размером

т. х

К

п., у которое чис-

е. реализация позволяет построить

где е. (х1)х2(..ихы ) - степенной одночлен. В соответствии с правилом Фурье слагаемые суммы (3) должны быть однородными по размерностям, т.е. _

или

т а1, т.

хотя бы один критерий подобия.

Обычно программа соответствует отдельному функциональному модулю или состоит из взаимосвязанной группы таковых и описывает общее решение некоторой задачи. Каждая из реализа)ий Вк еВ описывает частное решение этой же задачи, соответствующее определенным значениям компонент X. Так как Вк П В1 Ф0, VВ ,В е В ,то структура математических зависимостей при переходе от одной реализации к другой должна в основном сохраняться, т.е. критерии подобия должны быть общими. Тогда матрицы {Лк}, соответствующие реализациям {Вк}, могут быть объединены в одну систему.

Пусть программа имеет ц реализаций. Обозначим через A объединение матриц {Лк}, соответствующих реализациям {Вк}, т.е.

А =

Используя (4) и (5), построим систем), определяющих соотношений

А

V А У

(9)

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

Выражение (И) является кхитеридм семантической корректности.

Выполнив подн1иси контроение для VBi е Вк получим для к-ой реализации систему однородных линейных уравнений:

АС = 0 18)

В общем случае, можно предположить, что функция (з = Х-[Х] сюръективна и, следовательно, реалиаация Бк представляется матрицей

лы столИцов ке меньшь, чем число строк, т.е. па ат=.

Будем говорить, что реализация Вк представительна, если ей соотидтсьвует матрьца АК с

Построение Л можно осуществить по выборочным, обеспечивающим покрытие вершин реализациям.

Таким образом объединение матриц А является частью паапортх срограммы и представляет собой базу данкко семантических эталонов {Лк} для линейных участков программы {Вк}.

Пример представления вычислений уравнениями подобия

Рассмотрим в качестве примера оператор присваивания:

р = а * Ь + с / ^ - е). (10)

Корректное выражение должно порождаться некоторой выбранной грамматикой, которая зав.аот как от во.можных значений термов, так и от выбр.нного онбора операций. Для контекстно-свободной грамматики каждому выражению может быть поставлено в соответствие дерево вывода единственним способом. Таким образом, дерхво вывода может использоваться как альтернативное представление выражения.

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

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

Построенное дерево с учетом порядка вычисления будет однозначно соответствовать заданному выражению. Приведенному выше выражению (10) будет соответствовать дерево, представленное на рисунке 3:

ЫР I

ШЕхаг

IntExpr

Ident

(A)

IntExpr IntExpr

Ident (B)

Ident (C)

IntExpr

IntExpr

IntExpr

IntExpr

(D) (E)

Рис.3. Дерево порождения арифметического выражения

Формализуем арифметические выражения: Пусть Op {+, -, *, /} - множество рассматриваемых арифметических операций.

Terms - множество термов, включающее возможные объекты, которые могут быть аргументами операции.

Expr - множество всех возможных выражений, причем Terms с Expr.

elem(o, e) е Expr - множество других элементов, причем o & Op, e е Expr.

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

Выражение (10) при множестве термов Terms = {p, a, b, c, d, e} и множестве бинарных операций Op {+, -, *, /} будет представлено как: elem: (=, p, (+, (*, a, b), (/, c, (-, d, e)))).

Корректность выполнения арифметического оператора можно оценить, используя соответствующую семантическую функцию. Применительно к выражениям семантическая функция T:a a ]ставит в соответствие каждому аргументу a некоторую абстрактную сущность или размерность [а]. Таким образом, арифметические операции, выполняемые над программными переменными во время выполнения программы, фактически являются операциями над физическими размерностями, а отражения семантики, которые осуществляются во время выполнения -линейными отображениями. Аксиоматика расширенной семантической алгебры, определяющая операции над размерностями переменных, представлена в табл. 1.

Для корректно выполняющейся программы в контексте данного оператора должны выполняться следующие соотношения между физическими размерностями термов { p, a, b, c, d, e }:

;; = v (11)

где [X] - физическая размерность объекта X.

Модель вычислений в памяти можно представить, используя аппарат контекстно-свободных грамматик. Он позволяет описать структуру про-

Таблица 1.

Операции над размерностями программных переменных

Оператор Обозначение Условие корректности Линейные уравнения Критерии подобия

Сложение R = L + P [L] = [P] [R]0[L]1[P]-1 = 1 0 1 -1

Вычитание R = L - P [L] = [P] [R]0[L]1[P]-1 = 1 0 1 -1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Умножение R = L * P [R] = [L][P] [R]1[L]-1 [P]-1 = 1 1 -1 -1

Деление R = L / P [R] = [L][P]-1 [R]1[L]-1 [P]1 = 1 1 -1 1

Возведение в степень R = Ls [R] = [L]s [R]1[L]-s[P]0 = 1 1 -s 0

Присваивание L = P [L] = [P] [R]0[L]1[P]-1 = 1 0 1 -1

где Я - результат операции; I, Я - левый и правый операнды; [] - размерность.

Таблица 2.

Множества нетерминальных символов

НЕТЕРМИНАЛЬНЫЙ СИМВОЛ ОБОБЩАЮЩИЙ ТЕРМИНАЛЬНЫЕ СИМВОЛЫ

N ПРИЗНАК Е

Addition Команды сложения fiadd | fadd | faddp | ...

Subtraction Команды вычитания fisub | fsub | fsubr | ...

Multiplication Команды умножения fimul | fmul | fmulp | ...

Division Команды деления fidiv | fdiv | fdivr | ...

Appropriate Команды передачи данных fist | fst | fstp | ...

цесса вычислений в целом. Контекстно-свободная грамматика имеет следующий вид:

G = (s ,N,R,S ), (12)

где Z= {identifier, condtant, adress ... register}-набор терминальных символов языка ассемблер (таблица 1);

N = {Addition, Substraction, Multiplication, Division, Appropriate} - набор нетерминальных символов;

R = {AddCommand, SubComand Mulcommand, ..., DivCommand} -множество правил вывода;

S е 2 - стартовый символ.

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

Правило вывода, представленное выражением

(13) обуславливает применение команды «fadd». Таким образом, представим все возможные правила вывода в языке ассемблер.

AddCommand ^ Addition _Re gister, Address I Addition _Re gister, Re gister I Addition _Re gister, Re gister ^ faddp st(l), st I...

где Addition - нетерминальное множество команд сложевия сопроцессора;

RegistBr - нвтееминальное множестве регистров стека сопроцессора;

Address - множество идентификаторвв памяти ил и непосредственно адресов памяти.

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

Пример дерева вывода, относящегося к дизас-семблированному коду выражения (10), а также его представление в виде уравнений подобия в терминах теории размерностей приведен на рис. 4.

text 90411443 D9 45 EC fid [ebp+a]

text 00411446 D8 4D E0 fmul [ebp'ti]

text 00411449 D9 45 C8 fid [ebp+d]

text 0041144C D8 65 ВС fsub [ebp+e]

text 0041144F D8 7D D4 fdiur [ebp+c]

text 00411452 DE C1 faddp st(1), st

text 00411454 D9 5D Г8 fstp [ebp+p]

[ebp+a]

[ebp+b] [ebp+d] - [ebp+e]

Ii I I II l|

fmul Address Address fsub Address

MulCommand

Subcommand

[ebp+c] Address

/ fdiv

DivCommand

fadd

AddCommand

Address

[ebp+p]

I

fstp Address AppCommand -[ebp+p] = [ebp+a][ebp+b]

[ebp+d] = [ebp+e]

[ebp+p] = [ebp+c][ebp+d]"1=[ebp+c][ebp+e]"1

Рис.4. Рис. 4. Представление вычислений уравнениями подобия

Address

Address

Address

Решением данной системы уравнений является матрица коэффициентов подобия, построенная следующим образом:

[еЬр+р] = [еЬр+а][еЬр+Ь] [ebp+p]1[ebp+a]-1[ebp+b]-1[ebp+c]0[ebp+d]0[ebp+e]0=1

[ebp+d] = [еЬр+е] [ebp+p]0[ebp+a]0[ebp+b]0[ebp+c]0[ebp+d]1 [еЬр+е]-1=1

[еЬр+р] = [ebp+c][ebp+d]-1=[ebp+c][ebp+e]-1 [ebp+p]0[ebp+a]0[ebp+b]0[ebp+c]-1[ebp+d]1[ebp+e]0=1

Логарифмируя, получаем однородную систему линейных уравнений с матрицей коэффициентов:

Л1 =

(1 -1 -1 0 0 0 ^

0 0 0 0 1 -1

0 0 0 -1 1 0

Для организации построения соотношений

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

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

Облик системы контроля искажений и восстановления процессов вычислений

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

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

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

Этап 1. Формирование паспорта программы в инвариантах подобия.

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

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

1 Формирование паспорта программы в инвариантах подобия

2 Формирование инвариантов подобия в условиях воздействий

3 Формирование базы данных инвариантов подобия в контрольных точках УГ программы

4 Проверка критерия семантической корректности вычислительный процессов

5 Формирование сигнала о нарушении семантики вычислений и частичное восстановление вычислений по паспорту программы

Рис. 5. Схема контроля искажений и восстановления процессов вычислений

вычисления

вычисления

Л

/2

/п

конец

ф^Лъ Х1,уо,21,Екор ф2'Л2, Х1,у1,г2,Екор

Рис. 6. Схема корректных вычислений

В каждой КТ для каждого арифметического оператора генерируется дерево порождения арифметического выражения с целью построения системы линейных однородных уравнений в терминах размерностей. Результатом решения систем уравнений для каждого линейного участка программы является матрица инвариантов пидо-бия. Базу данный семантических эталонов составляют эталонные матрицы! инвариантов подобия для еажсон КТ (рис.7).

Формирование паспорта программы в инвариантах подобия

Построение дерева порождения арифметических выражений в КТ УГП О = (е , N, Я, 5 )

Формирование эталонных инвариантов подобия

а -1-

Рис. 7. Схема формирования паспорта программы в инвариантах подобия

Этап 2. Формирование инвариантов подобия в условиях воздействий

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

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

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Некорректные вычисления будут отличаться множеством состояний вычислительного процесса 2, т.е. последовательностью выполняемых арифметических операторов. Схема некорректных вычислений представлена на рисунке 9.

Этап 3. Формирование базы данных инвариантов подобия в контрольных точках УГП.

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

начало

2.1

2.2

2.3

Формирование инвариантов подобия в

_условиях воздействий_

Моделирование вычислительного процесса

Х={хьх2. .... хп} -множество вх.данных — Z ={21, 22, ...,2т, ...

множество операторов

Представление вычислений в виде УГП с адресами КТ на линейных участках ЦВ,П),В* =(Ь';1,Ь';2.....Ь], ). =

Построение дерева порождения арифметических выражений в КТ УГП О =

2.4

Формирование эталонных инвариантов подобия

Мно жество скрытных воздействий на вычислительный процесс Тх2хХ

Рис. 8. Схема формирования инвариантов подобия в условиях воздействий

о

¡а хо

/1

/2

/п

ф1'Ль х1,уо,г1 ',Екор ф2-'(2, ХьУ1,г2 'Екор

Рис.9. Схема выполнения некорректных вычислений

о

¡0, Хо

о

останов

М

/2

вычисления

ф^Аь х1,уо,гьЕк

/п

возврат

Ф2Л2, Хь,уь,г2,ЕК1

матрицы

Рис.10. Схема формирования базы данных матриц инвариантов подобия

Этап 4. Проверка критерия семантической корректности вычислител ьн ых п роцессов.

Для контроля корректности семантики выполняемых вычислений! необходемо испольиуя эталонную и штатную матрицы инвариантов (рис.11) проверить критерий семантической корректности по формуле (7). Необходимым критерием семантической корректности вычислений является существование решение; системы, в котором ни одна из переменных (1п[х]) не обращена с 0.

если проверка для данной контрольной точки выполнилась, то переходим к проверке критерия в следующей КТ, чока не завершится программа.

Этап 5. Формирование сигнала о нарушении семантики вычислений и частичное восстановление вычислений по паспорту программы

В случае обваружения нарушения семантической корректность выполнесия едяграммы,товсть если двя данной контряльной точке — Ф 0, то формируется сигнал и реализуется почетка вос-

Рис.11. Схема проверки корректности вычислительных процессов

становления вычислений по обратному преобразованию инвариантов эталонной матрицы (рис.11).

Данный подход позволяет определить не просто факт нарушения семантики вычислений, а указать конкретное место воздействия на программу, используя механизм внедрения контрольных точек.

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

Заключение

Исследование современной ситуации в области обнаружения скрытных воздействий на вычисления, а также анализ нормативно-правовых аспектов в сфере информационной безопасности РФ позволили сделать вывод об актуальности разработки новых моделей и методов рационального применения средств защиты информации для выполнения требований своевременности обнаружения ИТВ, учитывая скрытность их проведения вероятным противником [12-15]. Современные

методы верификации и контроля не распространяются на этап выполнения программ, когда естественные ошибки и уязвимости, а также преднамеренные закладки проявляются через используемые данные и ресурсы [16, 17].

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

Рецензент: Марков Алексей Сергеевич, доктор технических наук, профессор кафедры ИУ8 «Информационная безопасность» МГТУ им.Н.Э.Баумана, Москва, a.markov@bmstu.ru

Литература:

1. Зотова А.В., Компаниец Р.И., Ковалев В.В. Способ паспортизации расчетных алгоритмов программ // Защита информации. Инсайд. 2016. № 5 (71). С. 26-33.

2. Петренко С.А., Ломако А.Г., Амельченкова О.Н., Зотова А.В. Вычисления с памятью критически важных информационных систем в условиях кибератак // Защита информации. Инсайд. 2012. № 6 (48). С. 58-69.

3. Петренко С.А., Шамсутдинов Т.И., Петренко А.С. Научно-технические задачи развития ситуационных центров в Российской Федерации // Защита информации. Инсайд. 2016. № 6 (72). С. 22-27.

4. Петренко А.С., Петренко С.А. Проектирование корпоративного сегмента СОПКА // Защита информации. Инсайд. 2016. № 6 (72). С. 28-30.

5. Ломако А.Г., Еремеев М.А., Новиков В.А. Метод выявления дефектов и недокументированных возможностей программ // Информационное противодействие угрозам терроризма. 2010. № 14. С. 46-49.

6. Зима В.М., Котухов М.М., Ломако А. Г., Марков А.С., Молдовян А.А. Разработка систем информационно-компьютерной безопасности. СПб: ВАК им. А. Ф. Можайского, 2003. 327 с.

7. Козачок А.В., Кочетков Е.В. Обоснование возможности применения верификации программ для обнаружения вредоносного кода // Вопросы кибербезопасности. 2016. № 3 (16). С. 25-32.

8. Новиков В.А., Компаниец Р.И., Ломако А.Г. «Спецпроверка» программ // Защита информации. Инсайд. 2006. № 3 (9). С. 18-27.

9. Ковалев В.В., Компаниец Р.И., Новиков В.А. Верификация программ на основе соотношений подобия // Труды СПИИРАН. 2015. № 1. С. 233-245.

11. Петренко С.А., Курбатов В.А., Бугаев И.А., Петренко А.С. Когнитивная система раннего предупреждения о компьютерном нападении // Защита информации. Инсайд. 2016. № 3 (69). С. 74-82.

12. Петренко С.А., Петренко А.С. Новая доктрина информационной безопасности Российской Федерации // Защита информации. Инсайд. 2017. № 1 (73). С. 33-39.

13. Петренко А.С., Петренко С.А. Первые межгосударственные киберучения стран СНГ: «Кибер-Антитеррор-2016» // Защита информации. Инсайд. 2016. № 5 (71). С. 57-63.

14. Петренко А.А., Петренко С.А. Киберучения: методические рекомендации ENISA // Вопросы кибербезопасности. 2015. № 3 (11). С. 2-14.

15. Петренко А.А., Петренко С.А. НИОКР Агенства DARPA в области кибербезопасности // Вопросы кибербезопасности. 2015. № 4 (12). С. 2-22.

16. Barabanov A.V., Markov A.S., Tsirlov V.L. Methodological framework for analysis and synthesis of a set of secure software development controls // Journal of Theoretical and Applied Information Technology. 2016. V. 88. N 1. P. 77-88.

17. Markov A.S., Fadin A.A., Tsirlov V.L. Multilevel metamodel for heuristic search of vulnerabilities in the software source code // International Journal of Control Theory and Applications. 2016. V. 9. N 30. P. 313-320.

REPRESENTING PROGRAMS WITH SIMILARITY INVARIANTS FOR MONITORING TAMPERING

WITH CALCULATIONS

Kharzhevskaya A.5, Lomako A.6, Petrenko S.7

It is important for the computation systems that run special computing programs to control integrity of the calculations. Since modern integrity control tools mainly using control computation methods cannot comprehensively control the computation process that is uploaded into the processor's RAM, it is necessary to suggest a method aimed to prevent any modification in the arithmetic operations, which are the key operations for special calculations. Otherwise, insignificant modification of one operator may result in accumulation of errors, which will lead to incorrect computation results. Moreover, these results may fall within a certain confidence interval, therefore an error cannot be identified without additional control tools. The authors of the paper suggest solving the problem of the accuracy control of the arithmetic operators using mathematical tools of the theory of dimensions and similarity. The developed approach can present a computational process as defining relations or similarity equations in pre-set control points, which solution results in obtaining invariant information properties of the process. Reference attributes (or invariants) form a program passport. Conventional invariants are generated in the process of calculations and are compared with the reference. Such method can be used to monitor the semantics of the calculations and guarantee accuracy of the result.

Keywords: software security, integrity check method, software certification, calculations semantics, organization of calculations with memory

Reference:

1. Zotova A.V., Kompaniets R.I., Kovalev V.V. Sposob pasportizatsii raschetnykh algoritmov programm, Zashchita informatsii. Insayd.

2016, N 5 (71), pp. 26-33.

2. Petrenko S.A., Lomako A.G., Amel'chenkova O.N., Zotova A.V. Vychisleniya s pamyat'yu kriticheski vazhnykh informatsionnykh sistem v usloviyakh kiberatak, Zashchita informatsii. Insayd. 2012, N 6 (48), pp. 58-69.

3. Petrenko S.A., Shamsutdinov T.I., Petrenko A.S. Nauchno-tekhnicheskie zadachi razvitiya situatsionnykh tsentrov v Rossiyskoy Federatsii, Zashchita informatsii. Insayd. 2016, N 6 (72), pp. 22-27.

4. Petrenko A.S., Petrenko S.A. Proektirovanie korporativnogo segmenta SOPKA, Zashchita informatsii. Insayd. 2016, N 6 (72), pp. 28-30.

5. Lomako A.G., Eremeev M.A., Novikov V.A. Metod vyyavleniya defektov i nedokumentirovannykh vozmozhnostey programm, Informatsionnoe protivodeystvie ugrozam terrorizma, 2010, N 14, pp. 46-49

6. Zima V. M., Kotukhov M. M., Lomako A. G., Markov A. S., Moldovyan A. A. Razrabotka sistem informatsionno-komp'yuternoy bezopasnosti. SPb: VAK im. A. F. Mozhayskogo, 2003. 327 p.

7. Kozachok A.V., Kochetkov E.V. Obosnovanie vozmozhnosti primeneniya verifikatsii programm dlya obnaruzheniya vredonosnogo koda, Voprosy kiberbezopasnosti. 2016, N 3 (16), pp. 25-32.

8. Novikov V.A., Kompaniets R.I., Lomako A.G. «Spetsproverka» programm, Zashchita informatsii. Insayd. - 2006, N 3. - P. 18 - 27.

9. Kovalev V.V., Kompaniets R.I., Novikov V.A. Verifikatsiya programm na osnove sootnosheniy podobiya, Trudy SPIIRAN. 2015, N 1, pp. 233-245.

11. Petrenko S.A., Kurbatov V.A., Bugaev I.A., Petrenko A.S. Kognitivnaya sistema rannego preduprezhdeniya o komp'yuternom napadenii, Zashchita informatsii. Insayd. 2016, N 3 (69), pp. 74-82.

12. Petrenko S.A., Petrenko A.S. Novaya doktrina informatsionnoy bezopasnosti Rossiyskoy Federatsii, Zashchita informatsii. Insayd.

2017, N 1 (73), pp. 33-39.

13. Petrenko A.S., Petrenko S.A. Pervye mezhgosudarstvennye kiberucheniya stran SNG: «Kiber-Antiterror-2016», Zashchita informatsii. Insayd. 2016, N 5 (71), pp. 57-63.

14. Petrenko A.A., Petrenko S.A. Kiberucheniya: metodicheskie rekomendatsii ENISA, Voprosy kiberbezopasnosti, 2015. N 3 (11), pp. 2-14.

15. Petrenko A.A., Petrenko S.A. NIOKRAgenstva DARPAv oblasti kiberbezopasnosti, Voprosy kiberbezopasnosti. 2015, N 4 (12), pp. 2-22.

16. Barabanov A.V., Markov A.S., Tsirlov V.L. Methodological framework for analysis and synthesis of a set of secure software development controls, Journal of Theoretical and Applied Information Technology. 2016. V. 88. N 1. P. 77-88.

17. Markov A.S., Fadin A.A., Tsirlov V.L. Multilevel metamodel for heuristic search of vulnerabilities in the software source code, International Journal of Control Theory and Applications. 2016. V. 9. N 30. P. 313-320.

5 Alexsandra Kharzhevskaya, Mozhaisky Military Space Academy, St. Petersburg, Russia, a92_zotova@mail.ru

6 Aleksandr Lomako, Dr.Sc., Professor, Honored Scientist of Russia, Mozhaisky Military Space Academy, Saint-Petersburg, Russia, lomako_ag@mail.ru

7 Sergey Petrenko, Dr.Sc., Professor, University of Innopolis, Innopolis, Tatarstan, Russia, s.petrenko@rambler.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.