Санкт-Петербург



Download 10,56 Mb.
Pdf ko'rish
bet84/198
Sana24.02.2022
Hajmi10,56 Mb.
#209176
1   ...   80   81   82   83   84   85   86   87   ...   198
Bog'liq
1 almanakh 2018 tom1

Ключевые слова: Big Code, структурированные и неструктурированные данные, технологическая 
безопасность программных средств, надежность программного обеспечения, анализ исходных кодов. 
Современные стандарты по разработке промышленного программного обеспечения 
(ПО) подразумевают главенствование вопроса обеспечения надежности функционирования 
ПО над оценкой надежности. Парадокс заключается в том, что для должного обеспечения 
уровня надежности функционирования разработанного ПО, необходимо однозначно 
определять этот уровень. На сегодняшний день в отрасли не принят единый стандарт по 
оценке надежности. 
Проблема обеспечения надежности программных продуктов стала одним из 
важнейших приоритетов мирового экономического развития, эффективным средством 
решения социальных задач. В цивилизованных государствах сложилась развитая система 
технического законодательства, не просто устанавливающая конкретные обязательные 
требования к качеству ПО, но нацеленная на то, чтобы эти требования были финансово и 
экономически обоснованы [1]. 
Оценка надежности программных средств представляет собой совокупность операций, 
включающих выбор номенклатуры показателей надежности оцениваемого программного 
средства, определение значений этих показателей и сравнение их с базовыми значениями. 


Альманах научных работ молодых ученых 
XLVII научной и учебно-методической конференции Университета ИТМО. Том 1 
128 
Здесь и далее, под технологической безопасностью программных средств будет пониматься 
способность программных средств сохранять заданный уровень пригодности в заданных 
условиях в течение заданного интервала времени, где в качестве ограничения уровня 
пригодности рассматриваются дефекты безопасности и уязвимости [2]. В свою очередь, 
машинное обучение – это методы и алгоритмы, предназначенные для частичной или полной 
автоматизации решения сложных профессиональных задач в самых разных областях 
человеческой деятельности. 
По информации аналитической компании Gartner (сведения за июль 2017 года) 
машинное обучение находится на пике завышенных ожиданий (рис. 1). Это значит, что 
данную технологию пытаются применять практически в каждой области, начиная от 
приложений в офисной автоматизации и заканчивая приложениями в медицине и 
биоинформатике. 
Рис. 1. Исследовательский отчет фирмы Gartner 
На сегодняшний день некоторые специалисты уже проявляют скепсис относительно 
перспектив применения методов и алгоритмов машинного обучения. Данная работа 
описывает некоторые практические аспекты применения машинного обучения в контексте 
информационной безопасности, и, в частности, при анализе технологической безопасности 
программных средств. 
Можно выделить следующие основные типы задач, решаемые с помощью машинного 
обучения [3], для анализа технологической безопасности программных средств: 
1. задача обнаружения аномалий (outliers detection) – обнаружение в обучающей выборке 
небольшого числа нетипичных объектов. В некоторых приложениях их поиск является 
самоцелью (например, обнаружение мошенничества) (рис. 2, а); 
2. задача сокращения размерности заключается в том, чтобы по исходным признакам с 
помощью некоторых функций преобразования перейти к наименьшему числу новых 
признаков, не потеряв при этом никакой существенной информации об объектах выборки. 
В классе линейных преобразований наиболее известным примером является метод 
главных компонент (рис. 2, в); 
3. задача кластеризации (clustering) заключается в том, чтобы сгруппировать объекты в 
кластеры, используя данные о попарном сходстве объектов. Функционалы качества могут 


Альманах научных работ молодых ученых 
XLVII научной и учебно-методической конференции Университета ИТМО. Том 1 
129 
определяться по-разному, например, как отношение средних межкластерных и 
внутрикластерных расстояний (рис. 2, в). 
а 
б 
в 
Рис. 2. Обнаружение аномалий (а); сокращение размерности (б); кластеризация (в) 
Рассмотрим метод обнаружения уязвимостей с помощью выявления аномалий (рис. 3). 
На первом этапе происходит синтаксический анализ исходного кода, благодаря 
которому выделяются так называемые API symbols – типовые функции и типы данных. 
На втором этапе происходит построение векторного пространства, где каждой символу 
API соответствует свое измерение. 
Далее происходит определение основных паттернов API c помощью метода 
определения главных компонент (Principal Component Analysis, PCA). Данный метод 
аппроксимирует облако наблюдений до эллипсоида, сохраняя наибольшее количество 
информации. 
Наконец, каждая функция выражается через смесь доминирующих паттернов API. 
Такое представление позволяет идентифицировать похожие функции, использующие схожие 
паттерны API, и, соответственно, содержащие похожие уязвимости. 
Рис. 3. Метод обнаружения уязвимостей с помощью выявления аномалий 
Следующий метод обнаружения уязвимостей основан на сокращении размерности 
(рис. 4). 
Рассмотрим данный метод на примере проверки условий: 
1. определяются для исследуемой функции все входные и выходные параметры; 
2. происходит группировка схожих по содержанию функций; 
3. определяются основные условия, выполнение которых обязательно для корректной 
работы функций из выбранной группы; 
4. группы функций представляются в виде векторов, содержащих проверку этих условий; 
5. формируется эталонная модель функции для группы функций. Благодаря сформированной 
эталонной модели происходит выявление аномальных функций (например, функций, в 
которых отсутствует проверка какого-либо условия). 
Рис. 4. Метод обнаружения уязвимостей, основанный на сокращении размерности 


Альманах научных работ молодых ученых 
XLVII научной и учебно-методической конференции Университета ИТМО. Том 1 
130 
Еще одним примером практического применения методов машинного обучения 
является метод обнаружения уязвимостей при помощи решения задачи кластеризации 
(рис. 5). 
Рис. 5. Метод обнаружения уязвимостей при помощи решения задачи кластеризации 
Данный метод заключается в следующем. 
1. Определяются все вызовы выбранной функции, и строится соответствующий граф 
определения. Данный граф показывает, как входные данные инициализируются и 
экранируются в конкретной функции. 
2. Далее, графы определения раскладываются для перечисления отдельных вызовов 
функций. Затем вызовы функций группируются для определения наборов вызовов с 
аналогичными инициализируемыми аргументами. 
3. Для каждого сформированного кластера определяется некоторый предел для 
экранирования аргументов, т.е. определяются условия, проверка которых должна 
выполняться после инициализации и перед вызовом. 
4. В результате генерируются поисковые шаблоны, содержащие условия проверки, для 
обхода всех графов вызовов функций. 
Принимая во внимание все вышесказанное, можно усовершенствовать методику для 
расчета оценки технологической безопасности программных средств, предложенную в 
работе [4] следующим образом. 
– На первом этапе происходит вычисление расчетных метрик. Данный этап подразумевает 
определение таких метрик, как показатель устойчивости к искажающим воздействиям, 
вероятность безотказной работы, оценка по среднему времени восстановления, оценка по 
продолжительности преобразования входного набора данных в выходной. 
– На втором этапе дается оценка метрикам с помощью экспертного опроса. 
– Третий этап включает в себя использование технологии Big Code. В рамках данного этапа 
происходит следующее: строится вероятностная модель на основе большого объема 
исходных кодов. Затем данная модель используется для проверки метрик исследуемого 
исходного кода. 
– Четвертый этап – сравнение полученных метрик с соответствующими значениями аналога 
или программного средства, принимаемого за эталонный образец. В качестве аналогов 
выбираются реально существующие программные средства того же функционального 
назначения, что и сравниваемое программное обеспечение, с такими же основными 
параметрами, подобной структурой и применяемые в схожих условиях эксплуатации. 
Таким образом, в ходе исследования была предложена принципиально новая 
технология, позволяющая повысить качество оценки надежности программных средств. 
Предложенная методика сложна в применении, так как требует знаний таких 
характеристик ПО, которые можно вычислить только после длительной эксплуатации. 
Основываясь на данной работе, можно сделать вывод: отсутствует общее решение 
проблемы расчета оценки надежности ПО, и существуют множество частных решений, 
которые не учитывают такие факторы как интенсивность внесения и устранения ошибок в 
программе [5]. 


Альманах научных работ молодых ученых 
XLVII научной и учебно-методической конференции Университета ИТМО. Том 1 
131 
Важным вопросом практического применения методики является подготовка исходных 
данных. Эта задача особенно актуальна при оценке на ранних этапах жизненного цикла. 
Исходные данные (общее количество ошибок и временные характеристики процессов их 
поиска и устранения) могут быть получены с использованием объектно-ориентированных 
метрик сложности и статистики, собранной при разработке похожих программных проектов, 
в том числе с помощью использования технологии Big Code. 
Тем не менее, использование представленной методики позволит повысить уровень 
качества автоматизированных систем управления различного назначения, а также 
минимизировать риски, связанные с отказом программного обеспечения на ранних стадиях 
эксплуатации. Данная методика будет использована при разработке научных и программных 
решений для расчета надежности программных средств. 

Download 10,56 Mb.

Do'stlaringiz bilan baham:
1   ...   80   81   82   83   84   85   86   87   ...   198




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish