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

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

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

Рисунок 5 - Электропневматическая схема в режиме моделирования

ЗАКЛЮЧЕНИЕ

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

Применение в учебном процессе данных компьютерных технологий обеспечивает повышение уровня бакалаврской подготовки выпускников по направлениям 220400.62 и 220700.62.

Список использованных источников

1 URL: http://www.festo-didactic.com/

УДК 004.4.056

Д.И. Дик, В.М. Солодовников

Курганский государственный университет

ОЦЕНКА УРОВНЯ БЕЗОПАСНОСТИ ИНФОРМАЦИОННОЙ СИСТЕМЫ НА ОСНОВЕ АНАЛИЗА КОЛИЧЕСТВА ОШИБОК В ПРОГРАММНОМ КОДЕ

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

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

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

D.I. Dik, V.M. Solodovnikov Kurgan State University

ASSESSMENT OF THE INFORMATION SYSTEM RELIABILITY LEVEL BASED ON THE NUMBER OF MISTAKES IN THE PROGRAMMING CODE ANALYSIS

Abstract. The paper proposes a method for quantitative assessment of an information system software security level and describes a method for calculating the assessment. The method is based on the use of software reliability models to estimate the number of vulnerabilities that remain in the information system code. The paper а^ proposes a new model for evaluating the reliability of the software which allows to carry out assessment in a continuous modification of code.

Keywords: information system security; security level assessment model; mistakes in the programming code; software reliability.

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

Если не рассматривать ситуацию умышленного внедрения в код программ закладок, то проблема безопасности программного обеспечения связана с присутствием в нем ошибок.

Все программное обеспечение имеет некоторое количество ошибок. Средний для отрасли показатель примерно 1-25 ошибок на 1000 строк кода в готовом программном обеспечении, разрабатывавшемся с использованием разных методик [1], причем от 10 до 20% ошибок в программном коде являются серьезными [2].

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

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

Модели надежности программных средств можно разделить на аналитические и эмпирические [3]. Аналитические модели (модели роста надежности/software reliability growth models [4]) рассчитывают количественные показатели надежности, основываясь на данных о поведении программного обеспечения в процессе тестирования. Эмпирические модели (defect density models

[4]) основаны на анализе структурных особенностей программного обеспечения.

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

Аналитические модели представлены двумя группами: динамическими и статическими. В динамических моделях рассматривается появление отказов во времени. Если фиксируются интервалы каждого отказа, то получается непрерывная картина появления отказов во времени (модели с непрерывным временем [5; 6; 7]). Может фиксироваться только число отказов за произвольный интервал времени. В этом случае появление отказов может быть представлено только в дискретных точках (модели с дискретным временем [8]).

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

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

Рисунок 1 - Количество дефектов в программной системе

Аналитических модели надежности программных средств могут быть разбиты на два класса - вогнутые (рисунок 2) и S-образные (рисунок 3) [4]. Важно, что оба типа моделей имеют одинаковое асимптотическое поведение: с увеличением количества обнаруженных и исправленных дефектов уменьшается скорость обнаружения дефектов. Это объясняется следующими соображениями:

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

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

Рисунок 2 - Вогнутая модель

Рисунок 3 - S-образная модель

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

->

Т время тестирования

Рисунок 4 - Модель изменения количества дефектов при увеличении объема кода

Поскольку процесс разработки безопасного программного обеспечения включает тестирование безопасности [9; 10; 11], существует возможность напрямую использовать модели надежности для оценки количества уязвимостей в программном обеспечении информационной системы, используя в качестве входных параметров моделей количество и время выявления дефектов защиты в процессе тестирования.

При отсутствии целенаправленного тестирования безопасности напрямую воспользоваться моделями

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

Однако если принять следующие предположения:

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

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

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

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

Необходимо отметить, что не все современные методологии разработки программного обеспечения предполагают наличие цикла интенсивного тестирования в конце этапа разработки. При разработке Open Source проектов, а также небольших и средних проектов в последние годы становится популярным использование гибких методологий разработки [12; 13], многие из которых предполагают использование метода непрерывной интеграции [14] и разработки на основе тестирования [15].

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

Ниже перечисляются предположения, сделанные при построении модели:

- процесс обнаружения дефектов описывается негомогенным процессом Пуассона;

- усилия по обнаружению дефектов равномерно распределены во времени;

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

- программный код информационной системы непрерывно совершенствуется;

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

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

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

Основываясь на данных предположениях, мы получаем следующее дифференциальное уравнение:

m

где m(t) - количество дефектов, обнаруженных в момент времени t;

b - интенсивность обнаружения дефектов за единицу времени;

a(t) - количество дефектов, внесенных в информационную систему на момент времени t.

Количество внесенных дефектов можно представить следующим образом:

a(t) = (PVH + Pvu - v e(m

где vн - количество новых строк кода, добавляемых в систему за единицу времени;

рн - вероятность внесения дефекта при добавлении

строки кода;

vu - количество строк кода, изменяемых в системе за единицу времени;

pu - вероятность внесения дефекта при изменении строки кода;

vu - количество строк кода, удаляемых за единицу времени;

e(t) - количество ошибок на строку кода на момент времени t.

Количество ошибок на строку кода можно определить следующим образом: e(t) = (a(t) - m(t))/n(t),

где n(t) - количество строк кода в системе на момент времени t:

n(t) = (v„ - vy)t.

Выполним подстановку e(t) и n(t) в формулу (2): a(t) = (PHvH + puvu)t - a(t)vyt/n(t) + m(t)vyt/n(t), a(t)(1 + vyt/n(t)) = (pHvH + puvu)t + m(t)vyt/n(t), a(t)(n(t) + vt) = (pvH + puvu)n(t)t + m(t)vt, a(t)v t = (p v + p v )(v - v )t2 + m(t)v t,

V'H V~HH r u u/v H y' v/y'

a(t) = (phvh + puvu)(vH - vy)/vH t + vy/vH m(t).

Выполним подстановку полученного выражения в формулу (1):

m'(t) = b((pvH + puvu)(vH - vy)/vHt + vy/vH m(t) - m(t)), mm = b((pHvH + puvu)(vH - vyYvHt - (1 - v/v) m(t)). Введя обозначения: c = (p v + p v )(v - v )/v ,

H H u u H y H

d = (1 - v/v )/v .

y H H

Получаем следующее дифференциальное уравнение: m'(t) = b(ct - dm(t)).

Решая полученное уравнение при условии m(0) = 0, получаем:

m(t) = - c (- bdt - exp(- bdt) + 1) / (b d 2). Требуемые для модели оценки параметров vH, vu, vy могут быть получены на основе данных, содержащихся в репозитории (системе контроля версий) проекта информационной системы. Оценки параметров b, pH, pu получаются путем решения задачи оптимизации. В качестве входных данных для оптимизации модели могут быть использованы данные о количестве дефектов, выявленных к определенным моментам времени. Указанные данные могут быть получены из системы контроля ошибок.

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

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

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

1 Макконнелл С. Совершенный код. Мастер-класс / пер. с англ. М. :

Издательско-торговый dou «Русски Редакция»; СПб.: Питер, 2005. 896 с.

2 Capers Jones Software Engineering Best Practices: Lessons from

Successful Projects in the Top Companies / The McGraw-Hill Companies, 2010. p 688.

3 Благодатских В. А., Волнин В. А., Поскакалов К. Ф. Стандартизация

разработки прoграuuных средств: учебное пособие / под ред. О. С. Разyuoва. М. : Финансы и статистика, 2003. 284 с.

4 Wood Alan Software Reliability Growth Models. Technical Report 96.1.

Part Number 130056 / Tandem Computers, 1996. p 38.

5 Zhang Nan, Cui Gang, Liu Hongwei Considering Detection Eort and

Correction Eort for Software Reliability Analysis // Journal of Computational Information Systems 8: 19, 2012. 7991-8000 pp.

6 Li Tao, Wu Kaigui A NHPP Software Reliability Growth Model Considering

Learning Process and Number of Residual Faults // Journal of Convergence Information Technology. Jul 2012, Vol. 7, Issue 13, p 127.

7 Quadri S.M.K., Ahmad N. Software Reliability Growth Modeling with New

Modified Weibull Testing-effort and Optimal Release Policy// International Journal of Computer Applications (0975 - 8887) Volume 6- No.12, September 2010.

8 Shatnawi Omar Discrete Time NHPP Models for Software Reliability

Growth Phenomenon // The International Arab Journal of Information Technology, Vol. 6, No. 2, April 2009

9 Общие сведения о реализации процесса Microsoft SDL / Корпорация

Microsoft (Microsoft Corporation), 2010.

10 Microsoft Security Development Lifecycle Version 5.0 Updated

сентябрь 28, 2015 / Microsoft Corporation, 2010.

11 Ховард М., Лебланк Д. Защищенный код / пер. с англ. 2-е изд., испр.

М. : Изд-во «Русская Редакция», 2005. 704 с.

12 Амблер С. Гибкие технологии: экстремальное программирование и

унифицированный процесс разработки. Библиотека программиста. СПб. : Питер, 2005. 412 с.

13 Ауэр К., Миллер Р. Экстремальное программирование. Постановка

процесса с первых шагов до победного конца. Библиотека программиста. СПб. : Питер, 2005. 412 с.

14 Дюваль Поль М., Матиас III Стивен М., Гловер Эндрю

Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска. М. : Вильямс, 2008. 240 с.

15 Бек К. Экстремальное программирование: разработка через

тестирование. Библиотека программиста. СПб. : Питер, 2003. 224 с.

УДК 631.362.322

И.П. Попов, В.Г. Чумаков, С.С. Родионов, И.В. Шевцов, А.Д. Терентьев, С.С. Низавитин Курганская государственная сельскохозяйственная академия им. Т.С. Мальцева

ДИССИПАТИВНАЯ МОЩНОСТЬ ПРИ НАКЛОНЕ РЕШЕТ

ЗЕРНООЧИСТИТЕЛЬНОЙ МАШИНЫ

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

Ключевые слова: решетный стан, колебания, дис-сипативная мощность, привод.

I.P. Popov, V.G. Chumakov, S.S. Rodionov, I.V. Shevtsov,

A.D. Terentiev, S.S. Nizavitin

Maltsev Kurgan State Agricultural Academy

DISSIPATION POWER OF A GRAIN CLEANER WITH SIEVES IN A SLOPE POSITION

Abstract. The study shows that the slope of the lattice has almost no effect on dissipation power of grain cleaning machines in the grain pile, but distorts the graphics of the friction force and power.

Keywords: sieve pan, vibrations, dissipation power,

drive.

ВВЕДЕНИЕ

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

решать вопросы повышения энергоэффективности.

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

1 Расчет силы давления зернового вороха на решета

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

ax - ускорение решетного стана, ay - вертикальное ускорение опоры, mz - масса вороха, na - инерционная составляющая силы давления, ng - гравитационная составляющая силы давления Рисунок 1 - Сила давления на решето

Координата, скорость и ускорение решета равны х = l sin rat ,

v = х = lra cos raí,

ax = х = -l ra2 sin rat,

где l - амплитуда колебаний, м; ra - циклическая частота колебаний, рад/с [1-12].

Вертикальное ускорение опоры (рисунок 1) равно

ay = ax tga = -/ra2 sin raítga.

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

nz = ng —na =(1 — kv )mzg cos a —(1—kv )mz (—ay )cos a = (1 — kv )mg cos a — (1 — kv )mjra2 sin ra ttga cos a =

Nzmax/mm =

Пример 1. Пусть a = 7O, l = 7,5 -10 м, частота