d9e5a92d

Надежность, человеческий фактор в надежности

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

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

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

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

При тестовом диагнозе используются специально подготовленные исходные данные и эталонные результаты, которые позволяют проверять работоспособность определенных компонентов системы. Функциональный диагноз организуется на базе реальных исходных данных, поступающих в систему при ее использовании по прямому назначению. Основные задачи технической диагностики включают в себя:
- контроль за исправностью системы и полным соответствием ее состояния и функций технической документации;
- проверку работоспособности системы и возможности выполнения всех функций в заданном режиме работы в любой момент времени с характеристиками, указанными в технической документации;
- поиск, выявление и локализацию источников и результатов сбоев, отказов и неисправностей в системе.
Формализации показателей качества программных средств посвящена группа нормативных документов. В международном стандарте ISO 9126:1991 при отборе минимума стандартизируемых показателей выдвигались и учитывались следующие принципы: ясность и измеряемость значений, отсутствие перекрытия между используемыми показателями, соответствие установившимся понятиям и терминологии, возможность последующего уточнения и детализации.

Выделены характеристики, которые позволяют оценивать ПС с позиции пользователя, разработчика и управляющего проектом. Рекомендуется шесть основных характеристик качества ПО, каждая из которых детализируется несколькими (всего 21) субхарактеристиками:
функциональная пригодность детализируется пригодностью для применения, точностью, защищенностью, способностью к взаимодействию и согласованностью со стандартами и правилами проектирования;
надежность рекомендуется характеризовать уровнем завершенности (отсутствия ошибок), устойчивостью к ошибкам и перезапускаемостью;
применимость предлагается описывать понятностью, обучаемостью и простотой использования;
эффективность рекомендуется характеризовать ресурсной и временной экономичностью;
сопровождаемость - удобством для анализа, изменяемостью, стабильностью и тестируемостью;


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

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

Надежность передачи данных - мера достоверности сообщения, т.е. соответствия принятого сообщения переданному.
Помехоустойчивость - способность системы передачи данных противостоять вредному действию помех. Чтобы повысить помехоустойчивость передачи данных, приходится вводить в сообщение избыточность.

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

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

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

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

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

Это кодирование позволяет не только обнаруживать ошибки, но и указывать на их местоположение, т.е. исправлять их, что дает возможность отказаться от обратной связи. Однако степень избыточности при этом весьма высока: объем дополнительной информации сравним с объемом "полезной". Для исправления только одиночной ошибки необходимы по крайней мере три дополнительных бита на байт.

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

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

Результат решения этого вопроса приемник сообщает передатчику посредством некой "квитанции". Отсюда другое название этого метода: метод автоматического повтора запроса (ARQ, Automatic Repeat reQuest).
Основная ответственность за надежность обнаружения ошибок при этом методе лежит на алгоритме вычисления контрольной последовательности кадра. Здесь используется аппарат циклического избыточного контроля (CRC, Cyclic Redundancy Check). Циклическое кодирование базируется на математической теории групп, алгебре многочленов и теории колец.

Оставив для другого раза теоретические основы циклического кодирования, стоит отметить его свойства, обусловившие выбор циклических кодов.
Главное - это то, что циклические коды обладают высокой надежностью коррекции ошибок при весьма невысокой избыточности. Особенно они эффективны при обнаружении пакетов ошибок. Например, для кадра размером в 256 байт и контрольной последовательности в 16 бит (CRC-16) минимальное кодовое расстояние - 3, т.е. одна разрешенная кодовая комбинация отличается от другой, разрешенной же, минимум 3 битами, причем не любыми, а расположенными на вполне определенных местах во всей 2064-битовой последовательности.

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

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

Пользователи не должны приходить в отчаяние, пытаясь получить доступ к собственным файлам.
Несмотря на то, что сети обрабатывают и весьма деликатную, и ценную деловую информацию, о ее защите часто думают в последнюю очередь. Наибольшую угрозу для безопасности сети представляют несанкционированный доступ, электронное подслушивание; кража; преднамеренное или неумышленное повреждение.
Задача администратора - гарантировать, что сеть будет надежным и безопасным инструментом.
Уровень защиты сети зависит от ее назначения. Например, сеть, которая хранит данные крупного банка, требует более мощной защиты, чем локальная сеть, соединяющая компьютеры небольшой общественной организации.
Для защиты сети необходимо проводить определенную политику, т.е. следовать набору правил и предписаний, - ничто нельзя отдавать на волю случая.
Выработка политики безопасности (security policy) - первый шаг, который должна сделать любая организация, обеспечивая защиту своих данных. Политика устанавливает "генеральную линию", опираясь на которую и администратор, и пользователи будут вносить изменения, находить выход из нештатных ситуаций при развитии сети.

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

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

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

А вот закрыть серверы хотя бы в кабинете или в большом шкафу смогут все.
Медный кабель, например коаксиальный, подобен радиостанции: он излучает электромагнитные сигналы, которые содержат информацию о передаваемых по кабелю данных. Эту информацию с помощью специального оборудования легко перехватить.
Кроме того, к медному кабелю можно подключиться и похитить информацию непосредственно из сетевого кабеля. Поэтому доступ к кабельным трассам, по которым передаются важные данные, должен быть ограничен либо узким кругом уполномоченных на работу с кабелем лиц, либо прокладкой его внутри строительных конструкций (в перекрытиях и стенах).
Защитив физические компоненты сети, администратор должен гарантировать, что сетевые ресурсы находятся в безопасности от несанкционированного доступа и от случайного или преднамеренного уничтожения. Политика назначения привилегий и прав на доступ к сетевым ресурсам - основа для превращения сети в инструмент успешного ведения бизнеса.
Сейчас широко применяются две модели, которые обеспечивают бе-
зопасность информационных и аппаратных ресурсов: защита через пароль; защита через права доступа.
Эти модели называют также защитой на уровне совместно используемых ресурсов (resource level - защита через пароль) и защитой на уровне пользователя (user level - защита через права доступа).
Один из методов защиты совместно используемых ресурсов - присвоить пароль каждому общедоступному ресурсу. Таким образом, доступ к ресурсу осуществляется только в том случае, когда пользователь вводит правильный пароль.
Во многих системах ресурсы могут быть предоставлены в совместное использование с разными типами прав доступа. В Windows 95, например, к каталогам может быть доступ только для чтения, полный доступ и доступ в зависимости от пароля.
Если совместно используемый каталог предоставлен только для чтения, сотрудники, знающие пароль, будут читать в нем все файлы. Они могут просматривать документы, копировать их на свою машину, печатать, но не смогут изменить исходный документ.
В случае полного доступа к файлам в совместно используемом каталоге сотрудники, знающие пароль, могут просматривать, модифицировать и удалять в нем любые файлы.
Доступ в зависимости от пароля заключается в следующем. Совместно используемому каталогу присваивается пароль двух уровней: доступ только для чтения и полный доступ. Сотрудники, знающие пароль доступа для чтения, могут лишь читать данные, а те, кто знает пароль полного доступа, имеют соответственно полный доступ.

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

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

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

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

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

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

Windows NT Server для установки групповых прав доступа к каталогам и файлам использует File Manager.
Сначала администратор оценивает, какие права необходимы каждому пользователю, а затем включает пользователей в соответствующие группы. Этот метод назначения прав намного удобнее, чем присвоение отдельных прав каждому пользователю.
Рассмотрим другой пример. В университете все студенты имеют собственные файлы. Как организовать доступ к ним?

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

Другая группа, называемая Faculty (преподаватели), могла бы иметь доступ к файлам студентов только для чтения. Преподаватели, входящие в состав группы Faculty, будут только читать файлы студентов, но не изменять их.
Аудит (auditing) - это запись определенных событий в журнал безопасности (security log) сервера. Этот процесс отслеживает действия пользователей в сети.

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

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

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

Лучшие системы шифрования основаны на специальной аппаратуре, их стоимость очень высока.
Традиционный стандарт шифрования - Data Encryption Standard (DES). Он описывает спецификации ключа и способ шифрования. В настоящее время стандарт DES используется правительством США. Как отправителю, так и получателю информации необходим доступ к ключу.

Существует только один способ передать ключ из одного места в другое - сообщить его.



Содержание раздела