Научная статья на тему 'ПРИМЕНЕНИЕ АППАРАТНО-ПРОГРАММНОЙ ПЛАТФОРМЫ «ЭЛЬБРУС» ДЛЯ БЫСТРОГО ОБНАРУЖЕНИЯ СКРЫТЫХ ОШИБОК'

ПРИМЕНЕНИЕ АППАРАТНО-ПРОГРАММНОЙ ПЛАТФОРМЫ «ЭЛЬБРУС» ДЛЯ БЫСТРОГО ОБНАРУЖЕНИЯ СКРЫТЫХ ОШИБОК Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
0
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
архитектура Е2К / режим безопасных вычислений / процессор «Эльбрус» / портирование программного обеспечения / верификация программного обеспечения / динамическое тестирование / architecture / protected execution mode / “Elbrus” CPU / software porting / software verification and debugging / dynamic testing

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

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

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

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

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

APPLYING OF THE HARDWARE-SOFTWARE PLATFORM «ELBRUS» TO QUICKLY DETECT HIDDEN ERRORS

This paper presents prospects of an E2K architecture software-hardware platform “Elbrus”. It analyzes such key features of E2K architecture as compiler explicit parallelism control and protected execution mode. Research results on development of a dynamic testing system (testbed) utilizing unique “Elbrus” protected execution mode features for detection of hidden software errors are presented.

Текст научной работы на тему «ПРИМЕНЕНИЕ АППАРАТНО-ПРОГРАММНОЙ ПЛАТФОРМЫ «ЭЛЬБРУС» ДЛЯ БЫСТРОГО ОБНАРУЖЕНИЯ СКРЫТЫХ ОШИБОК»

УДК 004.052.44; 004.054

DOI: 10.24412/2071-6168-2023-11-31-32

ПРИМЕНЕНИЕ АППАРАТНО-ПРОГРАММНОЙ ПЛАТФОРМЫ «ЭЛЬБРУС» ДЛЯ БЫСТРОГО ОБНАРУЖЕНИЯ СКРЫТЫХ ОШИБОК

Г.Е. Панамарев, А.В. Ефремов

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

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

В ввиду активизации импотрозамещения в России и перехода на отечественное программное обеспечение вопрос обнаружения в нем скрытых ошибок, уязвимостей является достаточно актуальным [1-4]. Ряд отечественных ученых раскрывают в своих работах отдельные аспекты в области реализации режима безопасных вычислений для обнаружения уязвимостей в программном обеспечении и автоматизированных системах [5-8], портирования [9-12], разработке безопасного системного программного обеспечения [13-18], исследуя заявленную проблематику в контексте использования аппаратно-программной платформы «Эльбрус».

На сегодняшний день лидерами на мировом рынке процессоров являются крупные зарубежные производители: Intel и AMD. Процессоры этих компаний созданы на архитектуре x86_64, их отличает высокая производительность и быстродействие. Однако, в погоне за быстродействием своей продукции данные разработчики осознанно оставляют бреши в безопасности, поскольку недопущение уязвимостей в безопасности при производстве процессоров неминуемо снизит их быстродействие из-за значительного усложнения вычислений. Кроме того, под предлогом повышения эффективности, оперативности технического обслуживания, на этапе проектирования и изготовлении процессоров, компании беспрепятственно вносят в них аппаратные закладки с недекларированными возможностями. В связи с этим особый интерес представляют процессоры, построенные по альтернативной архитектуре Е2К, например, семейство процессоров «Эльбрус».

В данный момент актуальным процессором архитектуры Е2К является процессор «Эльбрус-8С». Он относится к четвертому поколению процессоров «Эльбрус», имеет восемь ядер с тактовой частотой 1300 МГц, 16 MB кэша третьего уровня и способен работать с четырьмя каналами оперативной памяти. Процессор изготовлен по технологическому процессу 28 нм и поддерживает работу в многопроцессорных системах (до четырех штук). Сравнение данного процессора с некоторыми аналогами представлено в табл. 1.

Таблица 1

Сравнительные характеристики процессоров «Эльбрус» и «Intel»__

—_____ Процессор Характеристика —^^^^^^ Эльбрус-4С Эльбрус-8С Intel Core i3-3110М Intel Xeon E5-2609 v3

Микроархитектура Эльбрус пок. 3 Эльбрус пок. 4 Ivy Bridge Haswell

Тактовая частота 800 МГц 1,3 ГГц 2,4 ГГц 1,9 ГГц

Пиковая производительность, ГФлопс 25 125 38,4 182,4

Скалярных/векторных операций за такт 23/8 25/12 6/8 8/16

Число ядер 4 8 2 6

Кэш-память L3, МЬ 8 16 3,5 15

Количество каналов памяти 3 4 2 4

Пропускная способность каналов памяти, ГБ/с 38,4 51,2 25,6 51,2

Многопроцессорность До 4 Нет До 4 До 2

Технологический процесс, нм 65 28 22 22

Тепловыделение, Вт 45 70 35 85

Основными преимуществами процессора «Эльбрус-8С» относительно аналогов является встроенная аппаратная поддержка безопасных вычислений, что гарантирует защиту от ряда угроз нарушения нормального функционирования пользовательских и системных программ. Архитектура Е2К процессора «Эльбрус» предполагает реализацию обращений к памяти через дескрипторы, которые защищены от изменения и формирования нового дескриптора из частей других дескрипторов. Дескриптор - это структура размером 128 бит, которая реализовывается исключительно на аппаратном уровне, а при попытке создания дескриптора на программном уровне будет вызвано аппаратное прерывание. Организация дескриптора основана на следующих элементах: указатель на область в памяти, границы выделенной области памяти и теги контроля доступа. Схематичное отличие дескриптора от указателя продемонстрировано на рис. 1.

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

Данные особенности процессора «Эльбрус», повышающие безопасность использования ПЭВМ на архитектуре Е2К, позволяют догнать и превзойти в плане производительности и масштабируемости конкурирующие суперскалярные x86_64 процессоры Intel и AMD. Немаловажную роль в этом играет то, что процессоры «Эльбрус» не подвержены атакам, направленным на использование ошибок спекулятивного вычисления, найденным в процессорах x86_64 и ARM. Аппаратные уязвимости процессоров архитектур x86_64 такие, как Meltdown (CVE-2017-5754), Spectre (CVE-2017-5753, CVE-2017-5715), RIDL (CVE-2018-12126, CVE-2018-12130), Fallout (CVE-2018-12127), ZombieLoad (CVE-2019-11091) и им подобные были устранены на уровне операционных систем, однако эти меры снижают производительность на данном аппаратном и программном обеспечении на 30-80 %. У процессоров «Эльбрус» данная проблема была решена изначально, на уровне планирования архитектуры. Это позволяет утверждать, что разработка программных продуктов под данную архитектуру позволяет избегать создания заплаток, снижающих производительность.

Указатель

У КАЗАТЁЛ Ь-64бит

Дескриптор

БАЗА-64биг

Размер - 32 бит Смещение - 32 бит

Рис. 1. Отличие дескриптора от указателя

Для оценки производительности аппаратно-программного комплекса «Эльбрус-801» на базе процессора «Эльбрус-8С» с установленной операционной системой Astra Linux Special Edition «Ленинград» и настройки режима безопасных вычислений программ был разработан испытательный стенд, который позволяет провести тестирование программного кода на языках Си/Си++. Макет испытательного стенда изображен на рис. 2.

Рис. 2. Макет испытательного стенда

Испытательный стенд представляет собой две рабочие станции «Эльбрус 801-РС» и рабочую станцию на базе процессора «Intel», соединенные в сеть с помощью коммутатора Microtik (табл. 2). Стенд должен производить верификацию и отладку программного обеспечения для нахождения скрытых ошибок в программах, написанных на языках &/C++.

Таблица 2

Список оборудования, входящего в состав испытательного стенда_

Наименование Количество

Рабочая станция ПЭВМ ОН «Эльбрус-801» 2

Рабочая станция на базе процессора Intel 1

Сетевой коммутатор Microtik CRS328-24P-4S-RM 1

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

Принцип работы испытательного стенда основан на использовании режима безопасных вычислений процессора «Эльбрус», который накладывает на программный код некоторые ограничения, связанные с запретом использования легальных, но небезопасных конструкций языка Си.

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

1. Преобразование дескрипторов;

2. Отсутствие выравнивания дескрипторов на 16;

3. Отсутствие инициализации у переменных;

4. Отсутствие команды return в функциях;

5. Обращение к элементу массива по индексу, превышающему размер массива;

6. Особенности реализации некоторых библиотек.

Рассмотрим несколько примеров обнаружения недопустимых конструкций на языке Си при портирова-нии программного обеспечения в режим безопасных вычислений на базе процессора «Эльбрус».

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

user@localhost;-/serducov/Для поиска скрытых ошибок в ЗРИ$ lee -mptr64 ./calcul, с

user@localhost:~/serducov/flnfl поиска скрытых ошибок в ЗРИ$ ./a.out Выберите операцию:

1 Сложение

2 Вычитание

3 Умножение

4 Деление

5 Степень

6 Факториал ; 7

Выбрана операция :(null) Введите операнд №1 |

Рис. 3. Некорректный выбор операции в 64-битном режиме

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

userdlocalhost:-/serducov/Дпя поиска скрытых ошибок в ЗРИ$ lee -mptг128 ./calcul .с

user@localhost:~/serducov/flna поиска скрытых ошибок в ЗРИ$ ./a.out Выберите операцию:

1 Сложение

2 Вычитание

3 Умножение

4 Деление

5 Степень

6 Факториал :7

Ошибка сегментирования

user@localhost:~/serducov/Anfl поиска скрытых ошибок в ЗРИ$ |

Рис. 4. Некорректный выбор операции в 128-битном режиме

Фрагмент кода с ошибкой выхода за границы массива представлен на рис. 5.

int selectOperationt) {

char enteredNumber; scanf("\n %e", benteredNumber};

pnntf ("Выбрана операция:^", operationNames[tonvertToDigit[enteredNumber) -1]); Рис. 5. Фрагмент кода с ошибкой выхода за границы массива

Для предотвращения данной ошибки необходимо написать функцию, проверяющую выход индекса за границы массива при обращении к его элементу. Поскольку нумерация в массиве начинается с 0, то допустимый предел индексов находится в интервале [0, N-1], где N - количество элементов массива. Реализация функции проверки выхода за границы массива представлена на рис. 6. Количество элементов массива определяется как отношение размера всего массива к размеру указателя (в данном случае 16 байт).

int chetkArrayIndex(int index ) {

int siîeType = sizeof(char»); int size = sizeof(operationNames) / sizeType; if [index > -1 && index с size) retu rn Û; else return -1;

}

int selectOperationl) {

char enteredNumber;

scanf(и\п benteredNumber);

if(chetkDigital(enteredNumber)==-1)| {

printf("Введен некорректный номер операции! \n"); return -1;

}

if(chetkArraylndexfconvertToDigit(enteredNumber))-=-l)

{

printf("Операции с таким номером не существует! \i"); return -1;

)

Рис. 6. Реализация и вызов функции checkArrayIndex

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

user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ lee -mptrl28 ./calcul .с

user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ ./a.out Выберите операцию:

1 Сложение

2 Вычитание

3 Умножение

4 Деление

5 Степень

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

6 Факториал :7

Операции с таким номером не существует!

user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ |

Рис. 7. Обработка ошибки ввода неверного индекса в режиме безопасных вычислений архитектуры Е2К

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

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

#include<stdio.h>

int main!) (

int array|10] - (2620, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029}; int index =0;

printfl"Введите номер элемента массива:"); scanf(4d",&index]; printfew, index); getEleinentByDescriptortarray, index] ;

return 0;

}

int getElementByDescriptorlint array[], int index] (

unsigned long* addr = array;

unsigned long* new addr = [void* ]({long longladdr 4- 4 *index]; printfl"Элемент по индексу *ed = index, *new addr }; return fl;

>

Рис. 8. Обращение к элементу массива через преобразования с указателем

Результат работы программы в обычном 64-битном режиме представлен на рис. 9.

user@localhost:~/serducov/flnfl поиска скрытых ошибок в ЗРИ$ lee -mptr64 modifica tedescriptor.c

lee: "modificate_descriptor.с", строка 11: предупреждение #223: функция "getElementByDescriptor" объявлена неявно [-Wimplicit-function-decía ration] getElementByDescriptor(array, index);

lee: "modificate_descriptor.с", строка 18: предупреждение #3244: значение типа "int *" не может быть использовано для инициализации объекта типа "unsigned long *" [-Wincompatible-pointer-types] unsigned long* addr = array;

user@localhost¡-/serducov/Для поиска скрытых ошибок в ЗРИ$ ./a.out Введите номер элемента массива:4

4Элемент по индексу 4 = 2024user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ ./a.out

Введите номер элемента массива:1

1Элемент по индексу 1 = 2021user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ ./a.out

Введите номер элемента массива:7

7Элемент по индексу 7 - 2027user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ |_

Рис. 9. Результат обращения к элементам массива через преобразования указателя в обычном 64-битном режиме

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

user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ Icc -mptrl28 modifie atedescriptor.c

Icc: "modificate_descriptor.c", строка 11: предупреждение #223: функция "getElementByDescriptor" обьявлена неявно [-Wimplicit-function-declaration] getElementByDescriptor(array, index);

Icc: "modificate_descriptor.c"# строка 18: предупреждение #3244; значение типа "int *" не может быть использовано для инициализации объекта типа "unsigned long #" [-Wincompatible-pointer-types] unsigned long* addr = array;

user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ ./a.out Введите номер элемента массива:4 Недопустимая инструкция

user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ ./a.out Введите номер элемента массива :1 Недопустимая инструкция

user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ ./a.out Введите номер элемента массива:7 Недопустимая инструкция

user@localhost:-7serducov/flnfl поиска скрытых ошибок в ЗРИ$ |_

Рис. 10. Ошибка при обращении к элементам массива через преобразование указателей в режиме безопасных вычислений

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

#include<stdio.h>

int main() {

int array[10] = {2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029}; int index =0;

printf("Введите номер элемента массива:"); scanf("%d",&index); getElementByDescriptor(arrayr index);

return 0;

>

int getElementByDescriptorfint arrayf], int index) {

| int newlndex = index *100; unsigned long* new_addr; unsigned long* addr = array;

if ((unsigned long)(addr) & (newlndex))

new addr = ((char* )addr] + (newlndex - ((unsigned long)(addr) & (newlndex))) ; printf("Элемент no индексу = %d"\ index, *new addr ); return 0;

}

Рис. 11. Исправленный код некорректного обращения к элементам массива через указатель

Результат работы программы в режиме безопасных вычислений после исправления ошибки представлен на рис. 12, где по индексам 4, 7 и 1 вызваны элементы массива.

и5ег@1оса11ю5г:~/5егйисоу/Для поиска скрытых ошибок в ЗРИ$ Icc -mptrl28 modificate descriptor.с

Icc: "modificate_descriptor.с", строка 10: предупреждение #223: функция "getElementByDescriptor" обьявлена неявно [-Wimplicit-function-declaration] getElementByDescriptor(array, index)j

Icc: "modifieate_descriptor.с", строка 19: предупреждение #3244: значение типа "int *" не может быть использовано для инициализации объекта типа "unsigned long *" [Wincompatible-pointer-types] unsigned long* addr = array;

Icc: "modificate_descriptor.с", строка 22: предупреждение #3238: значение типа "char *" не может быть присвоено объекту типа "unsigned long *" [-Wincompatible-pointer-types] newaddr = ((char* )addr) + (newlndex - ((unsigned long)(addr) & (newlndex)))

user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ ./a.out Введите номер элемента массива:4

Элемент по индексу 4 = 2024user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ $ ./a.out

Введите номер элемента массива:1

изег@1оса1Ио51:~/5егйисоу/Для поиска скрытых ошибок в ЗРИ$ ./a.out Введите номер элемента массива:?

Элемент по индексу 7 = 2Q27user@localhost:-/serducov/Для поиска скрытых ошибок buusu user@localhost:-/serducov/Для поиска скрытых ошибок в ЗРИ$ |_

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

35

Аппаратно-программная платформа «Эльбрус» - уникальная российская (советская) разработка. Под руководством Всеволода Сергеевича Бурцева и при активном участии Бориса Арташесовича Бабаяна была разработана принципиально новая процессорная архитектура, которую Борис Бабаян назвал «постсуперскалярным» подходом, в дальнейшем получившая название VLIW/EPlC. Архитектура VLIW значительно упрощает аппаратную структуру процессора и позволяет выполнять несколько машинных команд за один такт. Однако за счет упрощения архитектуры усложняется процесс компиляции, повышаются требования к программному коду. Программировать под данную архитектуру достаточно сложно из-за того, что для достижения максимальной производительности процессора «Эльбрус» требуется заполнять каждое машинное слово максимальным количеством команд, что для некоторого класса задач может быть проблемой, и при этом усложненный компилятор не прощает ошибок и неточностей в программном коде.

В ходе работы был создан и настроен испытательный стенд на базе ПЭВМ ОН «Эльбрус 801-РС». Он позволяет проводить верификацию и отладку программного обеспечения для нахождения скрытых ошибок в программах, написанных на языках Си/С++, с помощью режима безопасных вычислений архитектуры Е2К процессора «Эльбрус-8С».

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

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

Важным моментом также является наличие у операционной системы Astra Linux Special Edition сертификатов ФСТЭК, ФСБ и Министерства обороны Российской Федерации, из чего следует, что эта система защищена от несанкционированного доступа к внутренней информации с помощью эксплуатации недекларированных возможностей и востребована в организациях, работающих с информацией, относящейся к государственной тайне, в том числе, в Министерстве обороны Российской Федерации.

Список литературы

1. Панамарев Г.Е. Исследование новых подходов к разработке методов обнаружения уязвимостей в автоматизированных системах военного назначения // Военная мысль. 2023. № 3. С. 82-89.

2. Панамарев Г.Е., Малинин К.С., Сердюков П.С., Леонтьев З.Д. Перенос в защищенный режим исполнения «Эльбрус» утилиты для шифрования ccrypt // Сборник статей I научно-технической конференции. Анапа, 2022. -С. 109-118.

3. Русяев Р.М., Нейманзаде М.И., Ермолицкий А.В., Волконский В.Ю. Программно-аппаратные средства выявления ошибок обращения к памяти для архитектуры «Эльбрус» // Вопросы радиоэлектроники. 2017. № 3. С. 3338.

4. Вареница В.В., Марков А.С., Савченко В.В., Цирлов В.Л. Практические аспекты выявления уязвимо-стей при проведении сертификационных испытаний программных средств защиты информации // Вопросы кибер-безопасности. 2021. №5 (45). С. 36-44.

5. Жмурин, А.В. Защищенный режим исполнения (ЗРИ). Режим безопасных вычислений (РБВ). - МЦСТ, 2021. - 46 с.

6. Григорьев П.В., Киржаев Д.А. Анализ недопустимых конструкций на языке Си при портировании программного обеспечения в защищенный режим исполнения на базе процессора «Эльбрус» // Сборник трудов II Всероссийской научно-технической конференции «Состояние и перспективы развития современной науки по направлению «ИТ-технологии». Анапа. 2023. С. 34-50.

7. Буланый Р.И., Хиков С.П., Малинин К.С. Компиляция и компоновка программ и библиотек в защищенном режиме исполнения семейства «Эльбрус» // Сборник статей I научно-технической конференции «Состояние и перспективы развития современной науки по направлению «ИТ-технологии». Анапа. 2022. С. 91-100.

8. Кравцунов Е.М., Гисматов А.Р., Антипов А.С., Копылов Н.М. Исследование актуальных уязвимостей cve на платформе «Эльбрус» // Сборник статей конференции «Информатика и вычислительная техника». Анапа. 2019. С. 176-179.

9. Жмурин, А.В. Портирование существующего Си-кода для исполнения на Е2К в защищенном режиме. Инструкция для программистов. - МЦСТ, 2020. - 30 с.

10. Струков М.С., Григорьев П.В. Портирование в ЗРИ E2K программы pdfcrack // Сборник трудов II Всероссийской научно-технической конференции «Состояние и перспективы развития современной науки по направлению «ИТ-технологии». Анапа. 2023. С. 18-26.

11. Кондратьев Б.В., Поддубный М.И., Леонтьев З.Д. Портирование утилиты для вычисления контрольных сумм rhash в защищенный режим исполнения архитектуры Е2К // Сборник статей I научно-технической конференции «Состояние и перспективы развития современной науки по направлению «ИТ-технологии». Анапа. 2022. С. 6-16.

12. Тарара С.А. Анализ необходимости и возможности портирования Си-кода на архитектуру E2K в за-щищённом режиме исполнения // Информационная безопасность - актуальная проблема современности. Совершенствование образовательных технологий подготовки специалистов в области информационной безопасности. 2021. № 1(14). С. 235-240.

13. Девянин П.Н., Тележников В.Ю., Хорошилов А.В. Формирование методологии разработки безопасного системного программного обеспечения на примере операционных систем // Труды ИСП РАН. 2021. №5. С. 25-40.

14. Качанов А.Ю., Кузнецов И.В., Хиков С.П., Ведров Е.А Анализ возможности использования системных вызовов ядра Linux в рамках переноса программного обеспечения в защищённый режим исполнения процессоров семейства «Эльбрус» // Сборник статей III Всероссийской научно-технической конференции. Анапа. 2021. С. 6170.

15. Киржаев Д.А., Струков М.С. Перевод программы для вычисления контрольной суммы файлов SHA в защищенный режим исполнения архитектуры Е2К с целью повышения защищенности системы // Сборник трудов II Всероссийской научно-технической конференции. Анапа. 2023. С. 60-67.

16. Крысов А.Г. Основные ошибки и способы их устранения в процессе портирования программ в защищенный режим исполнения архитектуры Е2К // Сборник трудов II Всероссийской научно-технической конференции. Анапа. 2023. С. 279-286.

17. Поддубный М.И., Качанов А.Ю., Кузнецов И.В., Лобанов А.Г., Хиков С.П. Отладка исходного Си-кода в рамках защищенного режима исполнения архитектуры E2K // Сборник статей III Всероссийской научно-технической конференции. Анапа. 2021. С. 388-394.

18. Поддубный М.И., Качанов А.Ю., Фролов К.В., Хиков С.П., Лобанов А.Г. Повышение защищенности по посредством его перевода в защищенный режим исполнения на примере приложения 7-zip // Сборник статей III Всероссийской научно-технической конференции. Анапа, 2021. С. 395-407.

Панамарев Геннадий Евгеньевич, д-р техн. наук, доцент, старший научный сотрудник научно-исследовательского отдела, [email protected], Россия, Анапа, Военный инновационный технополис «ЭРА»,

Ефремов Александр Васильевич, канд. техн. наук, научный сотрудник научно-исследовательского отдела, [email protected]., Россия, Анапа, Военный инновационный технополис «ЭРА»

APPLYING OF THE HARDWARE-SOFTWARE PLATFORM «ELBRUS» TO QUICKLY DETECT HIDDEN ERRORS

G.E. Panamarev, A.V. Efremov

This paper presents prospects of an E2K architecture software-hardware platform "Elbrus". It analyzes such key features of E2K architecture as compiler explicit parallelism control and protected execution mode. Research results on development of a dynamic testing system (testbed) utilizing unique "Elbrus" protected execution mode features for detection of hidden software errors are presented.

Key words: architecture, protected execution mode, "Elbrus" CPU, software porting, software verification and debugging, dynamic testing

Panamarev Gennady Evgenievich, doctor of technical sciences, docent, senior researcher of the research department, Russia, Anapa, Military Innovativ Technopolis «ERA»,

Efremov Aleksandr Vasilievich, candidate of technical sciences, docent, research department, Russia, Anapa, Military Innovativ Technopolis «ERA»

УДК 004.94

DOI: 10.24412/2071-6168-2023-11-37-38

ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ТРЕХАНТЕННОГО ФАЗОВОГО ПЕЛЕНГАТОРА

В.В. Пинчуков, А.А. Парамонов

В статье представлено имитационное моделирование трехантенного фазового пеленгатора, в основе которого используется цифровой фазометр. Для реализации модели использовалась среда МАТТАБ Simulink. Разработанная модель имеет блочную структуру, соответствующую реально используемым элементам и устройствам в радиотехнических системах. Приведено подробное описание модели и ее составных частей, в том числе и цифрового фазометра, чем объясняются результаты моделирования. Представлены зависимости погрешности цифрового фазометра от величины разности фаз сигналов и распределение погрешностей пеленга на цель углов азимута и возвышения в диапазоне однозначности. Объяснены причины роста погрешности в областях, близких к плоскости и перпендикулярно антенной решетке.

Ключевые слова: фазовый пеленгатор, имитационное моделирование, Simulink, цифровой фазометр.

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

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

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

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

Для анализа существующих алгоритмов расчета пеленга цели проведено систематизированное обобщение работ в части повышения точности оценки углового положения объектов. В работе [1] предложена коррекция расчетных соотношений для дисперсии результатов пеленгации при коническом сканировании в задаче автосопровож-

37

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