Диплом: Современные методы статического и динамического анализа программ для автоматизации процессов повышения качества программного обеспечения ОАО «Аурат»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
42
- обслуживание каналов передачи данных, сетевых компонентов,
установленных в корпоративной сети;
- организация высокопроизводительного обмена данных;
- проведение оценки качества и разработка методов, позволяющих
обеспечить защиту программного обеспечения от несанкционированного
доступа.
В ИТ-инфраструктуре ОАО «Аурат» применяются различные виды
программного обеспечения, позволяющие обеспечить автоматизацию бизнеса.
В состав прикладного программного обеспечения входят:
- автоматизированная информационная система «1С: Предприятие»,
включающая в свой состав модули для автоматизации бухгалтерского учета
«1С: Бухгалтерия», складского учета «1С: Склад» и управления электронным
документооборотом «1С:Документооборот»;
- информационно-справочная система Гарант и Консультант Плюс для
оперативного поиска обновлений законодательной базы для ведения
деятельности;
- офисные программные продукты для архивации файлов: 7zip, rar,
ABBYY Fine Reader, Open Office, Microsoft Visio и Microsoft Project;
- антивирусное программное обеспечение для защиты от вредоносного
программного обеспечения, фишинга и спама Kaspersky Endpoint Security 10 for
Windows;
- программы для удаленного доступа к ресурсам компьютерной сети
Team Viewer;
- почтовый сервер Exchange Server 2013, Интернет сервер IIS Server 7;
- браузеры для работы в сети Интернет: Mozilla Firefox и Internet Explorer;
- средства для обеспечения защиты от несанкционированного доступа
КриптоПро и Контр Экспресс.
Специализированное и прикладное программное обеспечение работают
под управлением серверной операционной системы Windows Server 2012 R, а
также клиентской операционной системы Windows 10.
43
Компьютерная сеть ОАО «Аурат» в настоящее время включает
автоматизированные рабочие места 100 пользователей и различное сетевое
оборудование, позволяющее обеспечить защиту данных информационных
ресурсов при подключении к сети Интернет.
Архитектура компьютерной сети ОАО «Аурат» приведена на рисунке 7.
Рисунок 7 – Архитектура компьютерной сети ОАО «Аурат»
Как видно из рисунка 7, компьютерная сеть ОАО «Аурат» основана на
двухуровневой архитектуре Flex Campus, позволяющей выполнять
масштабирование данных, организовать совместную работу с
информационными ресурсами по высокоскоростным каналам передачи данных.
Для формирования надежного хранилища данных, обеспечения
производительности в ОАО «Аурат» на сервере установлен RAID-контроллер,
3 диска SAS для архивации данных и хранение информационных ресурсов,
диск SATA для хранения резервных копий операционной системы и
программного обеспечения.
44
Для работы в сети Интернет в компьютерной сети установлены
межсетевые экраны, имеющие высокий уровень пропускной способности (до 40
Гбит/с) и производительность по протоколу IPSec (до 2 Мбит/с).
Для защиты компьютерной сети в ОАО «Аурат» установлена система
Tipping Point S7 100NX, к техническим характеристикам которой относятся:
- система интеллектуальной блокировки попыток получения
несанкционированного доступа к сети;
- средства для анализа трафика по протоколу IPv6v4 с метками MPLS;
- возможность кластеризации ресурсов со скоростью 1000 Гбит/с.
Для соединения сегментов компьютерной сети ОАО «Аурат»
применяются шоссейные коммутаторы.
Также в компьютерной сети организована работа беспроводных
сегментов с применением точек беспроводного доступа HP MSM 45 и
контроллеров HP MM 7. Точки беспроводного доступа HP MSM 45 работают
по радиоканалу с поддержка технологий IEEE 802 p, IEEE 811 e, IEEE 801 Q.
Также в компьютерной сети ОАО «Аурат» установлены IP-телефоны
4110 и 4120, поддерживающие стандарты передачи данных G 77, G711.
Для управления ИТ-инфраструктурой ООО применяется панель для
мониторинга Windows Server Essentials, которая позволяет конфигурировать
работу сети, управлять доступом пользователей, определять дисковые
пространства для хранения различной информации.
Панель мониторинга позволяет получить быстрый доступ по ключевым
ресурсам производственного предприятия в режиме реального времени. Она
позволяет выполнять конфигурирование и организовать удаленную работу с
информационными ресурсами.
Для управления деятельностью ОАО «Аурат» использует
автоматизированную информационную систему 1С: Предприятие 8.3, в
которую входит модуль для ведения бухгалтерского и налогового учета 1С:
Бухгалтерия, складского учета 1С: Склад.
45
ERP-система 1С: Предприятие 8.3 ОАО «Аурат» основана на двухзвенной
архитектуре «клиент-сервер», поддерживающей работу с СУБД Oracle.
Применение ERP-системы 1С: Предприятие 8.3 позволяет вести полный
учет доходов и расходов денежных средств, повысить эффективность
деятельности за счет комплексной автоматизации бизнес-процессов, а также
улучшить качество обработки данных при взаимодействии с деловыми
партнерами и посредниками.
2.2. Анализ методов для работы с программным обеспечением
При работе с программным обеспечением специалисты ОАО «Аурат»
применяют обфускаторы, позволяющие реализовать принципы лексической
обфускации, обфускации потока управления.
Обфускаторы применяются в ОАО «Аурат» с целью защиты
программного обеспечения и позволяют внести изменения в названия
переменных и классов, изменить недостижимые участки кода при исполнении
программы, добавлять функции, операции, циклы, выполнение которых не
влияет на результаты работы программного обеспечения.
При сертификации программных продуктов специалисты ОАО «Аурат»
применяют модели ISO/IEC или CMM/CMMI в основе которых находятся
различные метрики для оценки процессов разработки программного
обеспечения.
Количественные метрики позволяют специалистам ОАО «Аурат»
определить количество строк в программном коде (SLOC-метрика), среднее
количество строк функций, оценить сложность программного обеспечения на
основании присваивания переменным вызовов функций и логических проверок
(ABC-метрика). Также метрики позволяют специалистам программного
обеспечения ОАО «Аурат» определить качество программного обеспечения и
понять информационное содержание программы (метрики Холстеда).
При работе с программным обеспечением они также используют метрики
сложности потока управления, основанные на анализе графов потока
46
управления. Примерами таких метрик выступают метрика Мак-Кейба, метрика
Хансена, метрика циклической сложности, метрика Маерса
55
.
Достаточно важной задачей в ОАО «Аурат» является задача управления
качеством исходного кода, которая предусматривает оценку изменения свойств
программного кода и интерпретацию результатов оценки.
Пример произведения оценки изменения свойств кода программного
обеспечения, приведен на рисунке 8.
Рисунок 8 – Пример произведения изменения свойств кода программного
обеспечения
Как видно из рисунка 8, в h-мерном векторном пространстве оценок
(
p
h
dR ,
) выделяются свойства программного кода, выступающие опорной
точкой
 
00
1
0
,...
h
yyy 
, а множество оценок свойств обфусцированного кода
представлены в виде признаков обфускации
  
xfxfxf
h
),...,()(
1
.
В свою очередь, оценка изменения свойств кода программного
обеспечения является некоторой мерой близости
 
 
0
, yxfd
. Наиболее часто
метрику близости задают с помощью метрика h-мерного пространства или
55
Долина О. Н. Системный подход к управлению качеством программного обеспечения
систем принятия решений // Статья в сборнике Информационно-коммуникационные
технологии в науке, производстве и образовании, 2017. – С.179-183
47
взвешенной метрики Чебышева, а также Метрики Хэмминга и взвешенной
Метрики Эвклида.
Модификация взвешенной метрики Чебышева имеет следующий вид
56
:
 
 
0
1
0
)(,
jjjjhj
yxfkwextryxfd 

, (14)
где
 
 
0
,yxfd
- это мера близости обфусцированного и исходного кода,
h
- количество применяемых метрик для программного кода,
j
w
- коэффициент важности для каждой метрики,
j
k
- нормирующий коэффициент,
)(xf
i
- показатель каждой метрики,
0
j
y
- показатель каждой метрики программного кода.
В зависимости от используемой функции в качестве экстремума можно
исследовать свойства исходного кода.
Модификация взвешенной метрики Хемминга имеет следующий вид:
 
 
,)(,
0
1
0
1 jjj
h
j
j
yxfkwyxfd 
(15)
где
 
 
0
1
, yxfd
- это мера близости обфусцированного и исходного
программного кода,
h
- количество применяемых метрик программного кода,
j
w
- коэффициент важности для каждой метрики программного кода,
j
k
- значение нормирующего коэффициента для каждой метрики
исследуемого кода,
)(xf
j
- показатель каждой метрики обфусцированного кода,
- показатель каждой метрики программного кода.
56
Мухаметзянова А. А. Оценка качества программного обеспечения // Статья в сборнике
Научные преобразования в эпоху глобализации, 2017. – С.77-79
48
Мера близости определяется на основании взвешенной метрики
Хемминга и отображает влияние обфускации на качество исходного кода. Для
отображения модификации взвешенной метрики Евклида применяется
следующая функция
57
:
 
 
 
 
,,
2/1
1
2
00
2

h
j
jjjj
yxfkwyxfd
(16)
где
 
 
0
2
, yxfd
- это мера близости обфусцированного и исходного
программного кода;
h
- количество применяемых в метрике кодов;
j
w
- коэффициент важности для каждой метрики программного кода;
j
k
- значение нормирующего коэффициента для каждой метрики;
 
xf
j
- показатель каждой метрики обфусцированного кода;
0
j
y
- показатель каждой метрики исходного кода.
Приведем пример использования перечисленных метрик, используя
количество символов, число строк программного кода и процент комментариев.
Также будем использовать модифицированные метрики Джилба, Чепина,
Хансена и цикломатическое число.
В отношении программного кода, который исчисляет метрики, будем
использовать обфускаторы, которые применяются специалистами ОАО
«Аурат» Orange Heap, Skater. NET, Eazfuskator 4, Inquartos Obfuskator, Smart
Assembly 6.
Полученные метрики для всех обфускаторов и программного кода
приведены в таблице 2.
57
Морозевич А. В. Сертификация как основа обеспечения безопасности и качества
программных средств // Статья в сборнике Повышение эффективности форм и методов
распространения среди населения знаний по вопросам экономической и финансовой
безопасности России, 2017. – С.232-234
49
Таблица 2 – Полученные метрики для всех обфускаторов и программного
кода
Метрики
Исходный
код
Smart
Assembly
6
Skater.
NET
Orange
Heap
Inquartos
obfuskator
eazfuskator
Количество
символов
10580
11407
9876
57872
8245
25238
Количество строк
522
1276
530
1572
635
1727
Процент
комментариев
8,4
5,3
8,1
22,6
9,1
9,8
Цикломатическое
число
36
144
36
142
53
137
Метрика Джилба
44,4
65,3
44,4
69
50,9
58,4
Метрика Чепина
137
188
137
326
134
492
Метрика Хансена
141,7
236,8
141,7
355,6
144,1
510,7
Как видно из таблицы 2, наибольшую защиту программному
обеспечению позволяет обеспечить обфускатор eazfuskator, показавший
наибольшие результаты по метрикам Джилба, Чепина и Хансена. Поэтому
рекомендуем специалистам ОАО «Аурат» использовать его в большей степени
для защиты программного обеспечения.
Для анализа программного обеспечения специалистами ОАО «Аурат»
применяется эмулятор процессов и целых вычислительных систем QEMU. Он
поддерживает работу с различными процессорами и устройствами и может
осуществлять работу в режимах эмуляции систем и приложений.
Вначале осуществляется эмуляция процессора и внешних устройств.
Динамический анализ производится на основе программного кода входящих в
операционную систему библиотек. В случае эмуляции приложений
производится трансляция только программного кода и нужных библиотек.
В среде QEMU специалистами ОАО «Аурат» также производится
обработка системных вызовов операционной системы. Единицей двоичной
трансляции в среде QEMU является базовый блок, представленный в виде
ациклического участка программного кода, имеющего один выход. Процесс
трансляции осуществляется при первом обращении к определенному коду,
50
полученные транслирование блоки кэшируется, а затем повторно включаются в
программный код.
С использованием программы QEMU специалисты ОАО «Аурат»
реализуют методы оптимизации поиска в кэше оттранслированных блоков,
представленных в виде хэш-таблиц. На первом уровне хэш может производить
обработку не более одного, а в случае блока возникновения коллизий этот блок
вытесняет другой. Если отсутствует необходимый блок на первом уровне, то
осуществляется его поиск на следующем уровне.
На втором уровне хэшем применяется физический адрес блока
трансляции, а также список блоков, позволяющий осуществлять линейный
поиск нужного блока. Если нужный блок не был найден, то осуществляется
вызов процедуры, позволяющей выполнить двоичную трансляцию. После того
как блок был найден, хэш обновляется.
Применение счетчика команд для хеширования на первом уровне
позволяет быстро преобразовать виртуальные адреса в физические адреса. В
свою очередь, применение физических процессов на втором уровне позволяет
нескольким приложениям использовать одну и ту же разделяемую библиотеку.
Также с помощью программы QEMU ОАО «Аурат» реализует методы
распределения регистров.
В среде QEMU реализуется алгоритм распределения регистров.
Допустимость регистров зависит от ограничений самой инструкции, а также
условий несовпадения выбранного регистра зарезервированным значением.
В процессах оптимизации по внутренним представлениям специалистами
ОАО «Аурат» среда QEMU используется для проведения машинно-
независимой оптимизации по продвижению констант и копий. Несмотря на то
что программный код гостевой программы компилятором оптимизирован,
программный код полученный в результате двоичной трансляции улучшается
за счет осуществления машинно-независимой оптимизации. Это связано с тем,
что гостевая программа может компилировать процедуры для одной
архитектуры и в тоже время выполняться после динамической трансляции.
51
Рассмотрим особенности внутреннего представления QEMU. Код,
размещенный в блоке трансляции, представлен в виде двух массивов для
хранения операций и аргументов. Коды операций всегда 16-битные числа, а
аргументы – 16-битные и 32-битные числа.
В таблице 3 приведён пример внутреннего представления кода в среде
QEMU, который работает с регистрами R11 и R12.
Таблица 3 – Пример представления данных в среде QEMU
Оптимизированный код
mov_i32
movi_i32
add_i32
Аргументы
tmp8
r11
tmp9
L2
tmp8
tmp8
tmp9
30
12
31
12
30
30
31
Как видно из таблицы 3, аргументы выровнены так, чтобы существовала
возможность анализа программного кода. Недостатком такого внутреннего
представления является сложность внесения локальных изменений, поскольку
они будут приводить к сдвигу обоих массивов.
Недостатком внутреннего представления данных программного кода
является сложность входящих в его состав локальных переменных, которые
приводят к сдвигу массивов
58
.
В процессе оптимизации специалисты ОАО «Аурат» в каждой точке
программного кода выбирают представителя, позволяющего всем остальным
переменным быть копиями. Если в классе эквивалентности используются
внутренние переменные, которые не соответствуют регистрам эмулированной
системы, то представителем класса выступает одна из переменных. Каждая
переменная внутреннего представления хранит свое текущее состояние и может
принимать одно из трех значений: константу, не константу и копию.
Переменные, выполняющие роль констант хранят постоянные значения, а
в копиях хранятся идентификатора переменной. Если в классе эквивалентности
58
Семенова Е. Г. Интегральная оценка и обеспечение качества процессов разработки
программных комплексов // Известия Тульского государственного университета, 2017. - №7.
– С.259-267

Смотрите также:

Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран
Work-life balance подход в управлении рабочим временем молодых сотрудников (на примере ООО «МГТ-сервис»)
Актуализация контента, отражающего концепцию «диалога культур», при освоении английского языка взрослыми обучающимися
Актуализация приемов инсценирования и драматизации в рамках интерактивной модели обучения английскому языку в старших классах
Актуальные подходы в построении внутреннего pr строительной компании (на примере ООО "Ренессанспроект")
Анализ деловой активности и экономической эффективности деятельности организации (на примере АО «СГ-Транс»)
Анализ деловой активности организации как инструмент повышения эффективности ее деятельности (на примере Косинского районного потребительского общества)