Системный анализ. 2009_Ракитов АИ и др_Системный анализ и аналитические исследован. Руководство для профессиональных аналитиков москва 2009 rv удк 001. 51 Ббк72 с 40
Скачать 2.27 Mb.
|
Глава 10 ОБШИЕ ПОНЯТИЯ ИНФОРМАЦИОННЫХ СИСТЕМ 10.1. Компьютерная система и системный аналитик Излагаемый ниже материал очень хотелось бы начать с фразы «важность современных информационно-телекоммуникационных систем для аналитической работы, систем управления и принятия решений трудно переоценить». Это действительно так, но наша задача не «пере» и «недо» оценивать, а понять реальные возможности современных информационных систем и технологий для системного анализа. Итак, переоценить их нельзя -они дают мощный источник как «сырой» информации из глобальных сетей, из поисковых систем и справочников, так и «дистиллированной» информации из корпоративных баз данных, снабжают пользователя инструментами для статистических исследований и визуализации полученных результатов, позволяют ускорить передачу информации экспертам и руководителям. Информационная система - инструмент, не имеющий собственного разума, она не принимает решений, а только поддерживает их принятие. Человек- пользователь всегда остается внешним по отношению к ней. Он общается с компьютером через посредников, которыми являются программы - активные компоненты компьютерных систем. И именно через них человек видит пассивные компоненты компьютерного мира - данные. 322 323 Достоверность информации, а значит и принятых на ее основе решений и сделанных выводов, напрямую зависит от свойств компьютерной системы, а она не всегда подконтрольна и дружественна пользователю, а может быть даже враждебна ему. Отсюда возникает проблема обеспечения информационной безопасности. Взаимодействие компьютерных систем частично подчинено социальным законам: в их деятельность вмешивается конкуренция и противостояние различных сил - от отдельных индивидуумов до специальных служб. Таким образом, «компьютерный помощник системного аналитика», точно так же как «наблюдатель-частица» в квантовой механике, начинает существенно влиять на ход эксперимента. Аналитик видит «мир данных» глазами компьютерной системы, и в первую очередь необходимо, чтобы этот «йзгляд» оставлял информацию достоверной, не искажал получаемые данные. Это первая задача обеспечения информационной безопасности системных исследований, предназначенных для принятия адекватных управленческих решений. Результаты анализа, прогнозирования и принятия решений становятся ценным нематериальным ресурсом, который представляет значительный интерес для конкурентов. Отсюда вторая задача - защитить результаты проделанной работы, надежно сохранить их, своевременно передать заинтересованным лицами и руководителям, принимающим решения, в защищенном виде, который предусматривает защиту подлинности, авторства и обеспечение конфиденциальности данных. Для анализа поставленных проблем ниже рассмотрим модели компьютерных систем, их свойства, принципы обеспечения надежности и безопасности и типовые архитектуры защищенных систем, предназначенных для поддержки системно-структурных исследований. Здесь и далее под архитектурой будем понимать структуру компьютерной системы с выделением ее компонентов, элементов и связей между ними. Связи между элементами являются системообразующими, а сама архитектура часто представляется в виде изображения или схемы. 324 10.2. Модель компьютерной системы В современной информатике модель компьютерной системы (КС) чаще всего рассматривается в виде совокупности элементов, которые можно разделить на два подмножества: множество объектов и множество субъектов. Выше мы говорили, что в системе выделяются существенные для ее качественной определенности части, подсистемы или компоненты. В данном случае компонентами КС будут субъекты и объекты. Данное разделение основано на свойстве элемента компьютерной системы «быть активным» или «получать управление» (в компьютерной литературе применяются также термины «использовать ресурсы» или «пользоваться вычислительной мощностью»). Оно исторически сложилось на основе модели вычислительной системы, принадлежащей ФОН Н ЕЙМАНУ 87 , согласно которой последовательность исполняемых инструкций для вычисляющего процессора (программа, рассматриваемая как «субъект» компьютерной системы) находится в единой среде с данными (выступающими в качестве «объекта»). Здесь необходимо сделать важное уточнение. Если в первой части книги под субъектами имелись в виду люди (аналитики или менеджеры), а под объектами - организации, технологические процессы, материальные продукты и услуги, то в данном случае мы понимаем под субъектом программу, управляемую человеком- аналитиком или менеждером, а под объектом - данные, обрабатываемые или порождаемые этой программой. Сформулируем важнейшие свойства субъектов, которые также относятся к числу системообразующих компонентов компьютерной системы. Самое главное из них состоит в том, что пользователь-аналитик воспринимает объекты и получает информацию только через субъекты, которыми он управляет и которые отображают информацию, относящуюся к окружающему миру. 87 Б ИКТИМИРОВ М Р , Щ ЕРБАКОВ А Ю Избранные главы компьютерной безопасности - Казань Изд-во казанского матем общества, 2004 - 372 с 325 На практике пользователь (под которым мы в первую очередь понимаем системного аналитика) сообщает компьютерной системе свои запросы, используя такие инструменты управления, как клавиатура, «мышь», джойстик, сенсорный экран, электронное стило, которые являются внешним оборудованием компьютера и передают информацию субъектам нижнего уровня, обслуживающим эти устройства и также передающим информацию далее, субъектам или программным модулям операционной системы, обеспечивающим функционирование компьютера в целом. Отличие терминов «программа» и «программный модуль» состоит в том, что программа является системной целостностью более высокого порядка, чем программный модуль, а программный модуль является подсистемой, обладающей в рамках программы особой целостностью. * Из этого следует, что программа состоит из взаимосвязанной совокупности программных модулей. Программа, как системная целостность, предназначена для решения законченной задачи, которая сформулирована ее разработчиком. Модули же решают отдельные подзадачи. Например, программа текстового редактора Microsoft Word, предназначенного для полнофункциональной работы с текстами и электронными документами, состоит из нескольких десятков программных модулей, часть которых относится к операционной среде Windows. Выделение программного модуля оправдано при решении задач управления доступом, о которых будет сказано ниже, а также при разработке программ для решения частных задач системных аналитиков. Субъекты бывают разного уровня. Нижнего: драйверы, обслуживающие внешние устройства компьютера. Среднего: программы-субъекты операционной системы, обеспечивающие работу компьютера и пользователя независимо от решаемых ими задач. Верхнего: прикладные программы, обеспечивающие выполнение целевых функций, в нашем случае работу системного аналитика: поиск, анализ, визуализация информации, составление отчетов и т.д. I Передача информации от субъектов верхнего уровня также происходит иерархически, только направление передачи информации меняется. Прикладные программы передают результаты своей деятельности операционной среде. Она в свою очередь передает информацию драйверам средств отображения, выводящим информацию на экран или другие средства визуального или графического отображения. Например, команда пользователя в меню программы текстового редактора «Сохранить файл» приводит к тому, что набранный в редакторе текст передается модулям операционной системы, последовательно передающим его модулям, управляющим работой жестких дисков или флеш-носителей. И только после этого на диске возникает файл, содержащий набранный текст. Передача информации от одного объекта к другому происходит по инициативе субъекта, а сама такая передача называется «потоком» или «потоком данных». Изменение и порождение новых объектов компьютерной системы производится субъектом, как активной компонентой, опосредованно управляемой пользователем. Именно субъекты порождают потоки информации и изменяют состояние объектов. Субъекты также могут влиять друг на друга через изменяемые ими объекты. Будем считать разделение компьютерной системы на субъекты и объекты априорным. Будем считать также, что существует безошибочный критерий различения субъектов и объектов (по свойству их активности). Кроме того, считаем, что декомпозиция (разложение) КС на субъекты и объекты фиксирована. На практике это означает стационарно протекающий этап работы, когда используемые субъекты не обновляются и не уничтожаются. На языке же администраторов это означает работу «с установленным и зафиксированным и неизменяемым софтом». В терминах системных целостностей это соответствует тому, что КС относится к стабильной или функционирующей системе. Подчеркнем отличие понятия «субъекта компьютерной системы» от «человека-пользователя» следующим 326 327 определением. Пользователь — лицо (физическое лицо), аутентифицируемое некоторой информацией и управляющее субъектом компьютерной системы через органы управления компьютером.. Пользователь КС является, таким образом, внешним фактором, управляющим состоянием субъектов. Аутентифицируемость пользователя означает, что он должен некоторым образом «представить себя» управляемой им КС, в противном случае компьютерная система не различит одного пользователя от другого. Представление пользователя компьютерной системе протекает обычно в два этапа: первый этап - идентификация - пользователь указывает свое имя, второй - собственно аутентификация - пользователь подтверждает свою индивидуальность некоторой никому не известной информацией, обычно паролем. Процедуры идентификации и аутентификации есть своего рода «основа» защищенной компьютерной системы, поскольку без точного определения пользователей, без фильтра «свой-чужой» невозможно определение прав и функций пользователя в системе. Кратко опишем основные подходы, используемые при идентификации и аутентификации пользователей КС. Эта информация важна как для использования защищенной аналитической КС, так и для ее разработки. Обозначим ID, - имя i-ro пользователя КС, a К, - пароль i-ro пользователя КС. Для идентификации и аутентификации в КС выделяется эталон для идентификации и аутентификации (предположим, что в системе может быть п пользователей), Таблица 16 Информация для идентификации Информация для аутентификации 1 ID, *i 2 ш 2 п Ю„ где £ = FflD^JCj); F- функция, для которой можно качественно описать свойство «невосстановимости» K t по £ и ID_. Мы более подробно поговорим о таких функциях в параграфе, посвященном критпографической защите. «Невосстановимость» К г описывается некоторой пороговой трудоемкостью Т о решения задачи восстановления аутентифицирующей информации по £ и ГО_, ниже которой не должна опускаться ни одна оценка трудоемкости нахождения K t для всех известных алгоритмов решения данной задачи. Кроме того, для пары К х и К возможно совпадение соответствующих значений Е. В связи с этим вводится вероятность ложной аутентификации пользователя Р ш , которая вычисляется как условная вероятность события «совпадение £ и £ при условии нетождественности if и К». Эта вероятность не должна превосходить некоторой предельной величины Р о . Для используемых на практике аналитических КС задают Г 0 =10 20 -10 30 , Р 0 =10 7 -10 9 Алгоритм идентификации и аутентификации пользователя выглядит следующим образом: 1. Пользователь предъявляет свой идентификатор (имя) ID. 2. Если ID не совпадает ни с одним ГО_, зарегистри рованным в КС, то идентификация отвергается - поль зователь не допущен к работе с КС, иначе (существует ID x =ID) устанавливается факт «пользователь, назвавший ся пользователем i, прошел идентификацию». 3. У пользователя запрашивается аутентификатор К. 4. Вычисляется 7=F(ID i , К). 5. Производится сравнение £ и У. При совпадении фиксируется событие «пользователь успешно аутенти- фицирован в КС», в противном случае - аутентификация отвергается (пользователь не допущен к работе в ком пьютерной системе). После того как пользователь прошел идентификацию и аутентификацию в КС, будем считать его управляющее воздействие таким, что свойства субъектов, сфор- 328 329 мулированные ниже, не зависят от него (т.е. свойства субъектов неизменяемы внешним управлением). Смысл данного условия состоит в предположении, что пользователь, управляющий программой, не может через органы управления (клавиатуру, «мышь») изменить ее свойства (условие, конечно, будет неверно для систем типа компиляторов, средств разработки, отладчиков и др., но для практической работы системного аналитика оно вполне выполнимо). Это условие совершенно определенно приводит к требованию того, что нельзя допускать одновременной работы практических аналитиков и программистов-разработчиков в рамках одной КС, поскольку программисты работают с нестационарными субъектами и создают новые субъекты. Также все программное обеспечение, функционально прямо не связанное с аналитической КС, должно быть вынесено за ее рамки. 10.3. Основные понятия компьютерной системы. Источники информации и их свойства Источник информации в современном понимании - это данные КС, локализованные в одном или нескольких объектах. Источник информации может обладать следующими свойствами: Авторство - источник информации может иметь автора (реального или вымышленного), а также быть анонимным, не имеющим автора. Автор информации может быть установлен по прямым или косвенным признакам. Стабильность или нестабильность - источник информации может не изменяться во времени или быть подверженным изменениям. Свойство стабильности весьма важно для работы аналитика. Для нестабильных источников необходимо постоянное обращение к ним, если они содержат необходимую аналитику информацию. Кроме того, при поиске в компьютерных сетях часто приходится иметь дело с информацией, хранящейся во временной памяти (так называемом кеше) поисковых систем (об этом более подробно ниже). Дополняемость - это свойство относится к нестабильным источникам информации и означает, что ис- 330 точник информации пополнятся новыми сведениями с течением времени. Если найденный аналитиком источник является дополняемым, то следует осуществлять его постоянный мониторинг с целью обнаружение необходимых новых сведений. Структурированность - это свойство означает, что источник имеет некоторую формализованную внутреннюю структуру - делится на элементы, обладающие тождественной конструкцией или организацией. Наиболее ярким примером структурированного источника являются базы данных, про которые мы поговорим ниже. Структурированные источники позволяют аналитику сравнительно легко автоматизировать поиск, анализ и сортировку необходимой информации. Целостность (внутренняя или системная) - означает, что некоторая часть объекта, являющегося источником информации, либо весь объект неизменен, и этот факт может быть проверен путем выполнения некоторых детерминированных процедур, называемых контролем целостности или процедурами контроля целостности. Обычно целостность фиксируется и проверяется с использованием механизмов электронной цифровой подписи. О ней мы поговорим в главе, посвященной вопросам безопасности. Достоверность - источник может содержать достоверную или недостоверную информацию. Свойство «достоверности» является внешним по отношению к источнику, поскольку критерий различения достоверного и недостоверного задается экспертом. Субъектами компьютерной системы достоверность информации может быть проверена опять же с помощью внешнего критерия достоверности, использующего другие свойства источника, например, структурированности. Доступность - источник может быть доступен для субъекта, управляемого аналитиком, либо быть доступным для пользователя при соблюдении некоторых условий (например, если аналитик использует коммерческие информационные ресурсы, доступ к которым требует оплаты). Недоступность источника может быть вызвана 331 действиями естественных или искусственных враждебных сил, например, необходимый для работы сайт или ресурс может быть заблокирован конкурентами или засекречен создателями сайта, и доступ к нему требует знания специального пароля. Изменение свойств источника информации вопреки намерениям его авторов называется атакой или злоумышленным воздействием. Как мы выяснили, любое воздействие на компьютерные системы может быть выполнено субъектом, действующим автономно (вирус) или управляемым человеком. Такой субъект (или управляющий им человек) называется злоумышленником или нарушителем. Выше говорилось об источниках информации, являющихся объектами компьютерных систем, в то время как чаще всего в Практической работе используется понятие «документ» или «электронный документ». В настоящее время категории «электронный документ» и «электронный документооборот» не имеют единого понимания среди специалистов. Такая ситуация объективно объясняется тем, что документ существует в различных формах не обособленно, а является подсистемой некоторой технологии, называемой документооборотом. Таким образом, документ отражает в себе появление, движение, преобразование и исчезновение некоторых сведений, облеченных в ту или иную форму (для простоты их может быть две - бумажная и электронная). Документ - это источник информации, облеченный в некоторую форму, имеющий признаки структурированности и пригодный для использования в аналитических исследованиях. Попробуем пояснить рассмотренные нами понятия на простом примере. Будем использовать в качестве источника информации область объектов, представленных ресурсами российского Интернета, и попытаемся найти сведения о малоизвестном средневековом композиторе Антонио В ИРАЛЬДИНИ Для поиска используем программный субъект прикладного уровня Internet Explorer и вызываемую им поисковую машину Yandex. Введя в строке 332 поиска «Виральдини», мы получим около двух тысяч ссылок на объекты, относящиеся к различным серверам (их около 200) с информацией об этом композиторе. Некоторые из объектов являются структурированными (например, сайт с биографиями, написанными в одинаковом формате), некоторые содержат информацию и комментарии в свободной форме. Если же мы введем в строке поиска«Antonio Viraldini», то получим всего около трехсот ссылок на объекты, относящиеся примерно к 40 серверам. Этот факт вполне может насторожить аналитика, поскольку для иностранного композитора логично существование большего числа зарубежных ресурсов. Лишь внимательное изучение достаточно большого объема ссылок позволяет убедиться, что прекрасно представленный в Сети «итальянский композитор, музыкант и педагог-просветитель» является полностью вымышленным лицом, а вся представленная в сети информация о нем - абсолютно недостоверная. Более тонкий анализ позволяет выявить и авторов мистификации, но это читатель может проделать уже самостоятельно. Может показаться, что приведенный пример совершенно неуместен в книге, предназначенной для практических аналитиков, исследующих социальные, экономические и общественно-политические процессы. Современное сетевое общество сложно и противоречиво. В нем, наряду с честными людьми, действуют мошенники и обманщики, а также опытные аналитики, запускающие в глобальную информационно- сетевую систему санкционированную дезинформацию (см. часть I). Нетрудно понять, что приведенный только что пример - просто нейтральная и забавная иллюстрация того, что простого знакомства с приведенными в этом параграфе определениями совершенно недостаточно для качественного системного анализа. Эффективное использование компьютерных сетей и содержащихся в них данных должно опираться на более глубокие и профессиональные знания, на методологию, позволяющую отличать фальсификацию и намеренную ложь от истины. 333 10.4. Понятие базы данных н информационного хранилища Профессиональным аналитикам часто приходится изучать крайне сложные процессы и события, которые сами выступают в виде сложных иерархических полиструктурных систем. Естественно, что без помощи современных компьютерных технологий и информационных систем в современном сетевом мире высококачественное аналитическое исследование выполнить просто невозможно. При этом нужно учесть, что далеко не все системные аналитики свободно владеют основными понятиями, с помощью которых формулируются задачи, решаемые на основе использования компьютерных систем. Кроме того, системные аналитики иногда сталкиваются с задачами, решение которых требует участия профессиональных разработчиков и программистов, перед которыми тоже нужно уметь правильно ставить задачу. Предлагаемый ниже перечень необходимых понятий может показаться излишне сухим и похожим на справочник или словарь по информационным технологиям. Но в действительности этот перечень крайне полезен для любого практического аналитика, позволяя ему систематизировать и ускорять проводимые исследования. Обратимся теперь к базам данных. База данных (БД) в общем смысле - структурированный источник информации, объект КС, обладающий определенными свойствами. В рамках теории БД взаимосвязанные данные, содержащие сведения о хозяйственной или иной деятельности любого предприятия, называются информационной системой (ИС). Таким образом, ИС есть объектная компонента КС, содержащая информацию и знания. Совокупность нескольких баз данных образует информационное хранилище. Содержащиеся в ИС данные должны быть доступны, чтобы предоставлять достоверную информацию в определенное время конкретному лицу в определенном месте и с минимальными затратами. Информация, хранящаяся в БД, должна удовлетворять следующим требованиям: 334 • непротиворечивости; • неизбыточности; • целостности; • полноты. В теории БД объектом называется элемент ИС, информация о котором сохраняется в ИС, удовлетворяющей только что перечисленным свойствам. В теории БД объект также может называться сущностью. Сведения, содержащиеся в ИС, могут относиться к людям, населенным пунктам, реальным предметам, а также к событиям, финансовым счетам и т.д. При построении БД, относящейся, например, к деятельности организации, необходимы сведения о персонале, заработной плате, товарах, накладных, счетах, отчетах по сбыту. При продаже автомобилей ИС будет содержать такие объекты как модель автомобиля (например, «ВАЗ»), клиент (например, «Сидоров»), номер счета. На товарном складе это будут: поставщик, товар, отгрузка товара и т.д. Каждый объект обладает набором свойств, которые зафиксированы в БД, образующие подсистему ИС. При обработке данных часто встречаются однородные объекты с одинаковыми свойствами, которые необходимо классифицировать. Классом объектов называется совокупность объектов, обладающих одинаковым набором свойств. Например, класс объектов «модель автомобиля» будет иметь одинаковый набор свойств, описывающих характеристики автомобиля, и каждая модель будет иметь различные значения этих характеристик. Свойства, характеризующие объект, называются атрибутами объекта. Например, модель автомобиля характеризуется типом кузова, рабочим объемом двигателя, количеством цилиндров, мощностью двигателя, габаритами и т.д. Каждый атрибут имеет свое имя, которое также называют идентификатором, или идентификатором атрибута. Атрибут, записанный на каком-либо носителе информации, называют элементом данных, полем данных или, для краткости, просто полем. Значения данных представляют собой действительные (реальные) данные, 335 содержащиеся в каждом поле. Например, поле «Наименование модели» для автомобильной продукции может принимать значения «Volvo», «ВАЗ», «ГАЗ» и т.д. Совокупность характеристик объекта называется записью базы данных. Теория БД оперирует также понятием таблицы. Таблица - это некоторая структурированная информация, содержащая характеристики объекта или класса объектов. Каждая строка таблицы является записью, а каждый столбец - полем. Данные характеризуются различным типом. Различают символьные, числовые, двоичные данные, данные специальных форматов - дата и время. Говорят, что какое-либо поле имеет числовой тип. Иногда в символьном типе данных, который представляет собой просто строки читаемых символов, выделяют Интернет- адреса или ссылки на страницы в сети. Уточнением понятия типа является формат - описание структуры. Формат даты и времени может быть последовательностью из трех чисел, разделенных точками, а расположение дня, месяца и года (часов, минут и секунд) может меняться в зависимости от принятых в стране правил. Таблица 17 Фамилия Пол Дата рождения Должностной оклад Аванс Хоботов М 10.10.1960 10900 3000 Орлович М 01.01.1958 14700 4000 Сидорова Ж 18.03.1975 13200 3500 Рязанова Ж 25.06.1984 11500 3500 Таб. 17 характеризует класс объектов «Сотрудник» и содержит 5 полей и 4 записи. Поля «Фамилия» и «Пол» - это символьные поля, «Дата рождения» относится к типу дат, «Зарплата» и «Аванс» - относятся к числовому типу (суммы). Доменом называют набор допустимых значений поля. Для приведенного примера: Домен поля «Фамилия» - в самом простом случае допустимы любые русские буквы, поле не должно содержать латинских букв, цифр, знаков препинания или каких-либо других символов (естественно, критерии выбора можно усложнить, например, не допускать фамилии, начинающиеся с мягкого или твердого знака); Домен поля «Пол» - допустимы значения "М", V, "Ж" "-яг"- ./IV , 2IS. , Домен поля «Дата рождения» - задается определенным набором цифр, обозначающих год, месяц и день рождения; «Зарплата» и «Аванс» - могут принимать только положительные значения. Введенные понятия дают некоторый простой инструмент для оценки достоверности информации, почерпнутой аналитиком из используемых им БД. Итак, база данных - это совокупность таблиц, объединенных вместе по какому-либо признаку. База данных характеризует класс объектов или информационную систему. В качестве примера можно рассмотреть БД отдела кадров, расписание движения поездов, записную книжку, конспект по какой-либо учебной дисциплине и т.д. Система управления базами данных (СУБД) - это совокупность языковых и программных средств, предназначенных для создания, ведения и использования баз данных. По характеру применения СУБД разделяют на следующие классы: • персональные - обеспечивают возможность созда ния локальных баз данных, т.е. преимущественно рабо тающих на одном компьютере (к таким относятся Access, FoxPro, dBase, Paradox); • многопользовательские - это СУБД, позволяющие создавать информационные системы, функционирую щие в архитектуре «Клиент-Сервер», например: SyBase, Oracle, MS SQL Server, InterBase, Informix. Ряд современных СУБД (Access, Paradox, FoxPro) также обеспечивают и многопользовательскую обработку данных, но используют архитектуру «Файл- Сервер». 336 337 Ключевым элементом данных (ключевым полем или просто ключом) называется такой уникальный элемент, по которому можно определить значения других полей. Подобно тому, как номерной знак однозначно определяет автомобиль, ключ однозначно определяет запись в соответствующих регистрационных документах. В предыдущем примере таким полем можно считать «Фамилию». Ключи строятся по одному или нескольким полям. Ключевые поля используются для создания межтабличных связей (отношений). Различают первичный и альтернативный ключи. Первичный ключ - это поле или группа полей, которые однозначно идентифицируют каждую строку в таблице. Таблица может иметь только один первичный ключ. Альтернативный ключ - это поле или группа полей, не совпадающих с первичным ключом и также однозначно идентифицирующих каждую строку в таблице. Таблица может содержать несколько альтернативных (вторичных) ключей. Смысл понятий первичного и альтернативного ключа состоит в однозначной идентификации поля для поиска. Поле «Личный номер сотрудника» можно использовать в качестве первичного ключа. Поскольку значение поля «Серия и номер паспорта» также не повторяется и может однозначно идентифицировать каждую запись в таблице, это поле является альтернативным ключом. Поиск по личному номеру или паспортным данным всегда однозначно приведет к результату (если, конечно, искомое значение содержится в БД). Поле «Фамилия» ни первичным, ни альтернативным ключом быть не может, поскольку фамилии могут повторяться. Таблица 18 Личный № Фамилия Паспорт Категория Должность 14 Аксененко 46 05 123456 2 Бухгалтер 75 Сидорова 44 01 234561 1 Продавец 27 Тарасов 33 00 345679 1 Продавец 102 Савельев 45 04 325476 3 Товаровед 338 Одна из главных операций с таблицами - поиск информации. Можно выполнить поиск нужной информации, последовательно просматривая записи одну за другой, начиная с первой. Но этот способ хорош для таблиц небольшого размера. Для таблиц с большим числом записей требуется более быстрый способ. В этом случае используется индексация. Индексация - это упорядочение по полю или арифметико-логическому выражению, зависящему от нескольких полей. Например, можно проиндексировать таб. 18 по первой букве фамилии. Тогда таблица индексов будет содержать четыре элемента (А, С, Т, С). При поиске фамилий в базе не будет необходимости прочитывать все поля, достаточно обратиться к файлу индексов и проверить в нем первую букву фамилии. При совпадении первой буквы уже есть смысл просмотреть соответствующее поле. Очевидно, что процедуры поиска будут существенно ускорены по сравнению с последовательным перебором всех полей с фамилиями. В данном примере при поиске фамилий на «С» нужно будет проверить два поля, но легко улучшить индексацию, введя таблицу вида «АК», «СИ», «ТА», «СА». В этом случае каждое поле будет выбираться однозначно. Также легко отсеять не содержащиеся в базе фамилии. Таким образом, индексы используются для упорядочения записей, ускорения поиска информации и создания отношений между таблицами. Индекс может быть построен по любому полю или выражению от нескольких полей. Значения индексов могут повторяться. Применение индексов, как мы видели в примере, позволяет значительно ускорить поиск информации. Индексация существует в виде объекта и используется СУБД вместе с таблицей. Итак, база данных - это совокупность нескольких таблиц со связями (отношениями) между ними. Отношения между таблицами строятся через совпадающие поля. Между таблицами возможны 4 типа отношений: • «один к одному»; • «один ко многим»; • «многие к одному»; 339 ш • «многие ко многим». Эти формулировки нуждаются в некоторых пояснениях, помогающих системному аналитику использовать имеющиеся в его распоряжении БД и ИС или «заказать» специалисту по созданию БД, какие таблицы должны быть построены, какие они должны содержать индексы и ключи. «Один к одному» — каждая запись одной таблицы соответствует одной записи в другой таблице, а связь между таблицами осуществляется по совпадающему полю, например, «Личный №». Отношение «один к одному» целесообразно использовать, если часть данных используется нечасто. Использование данного отношения позволит увеличить скорость работы с БД. «Один ко многим» - каждой записи в одной таблице соответствует несколько записей в другой таблице. Например, одному сотруднику может соответствовать несколько выполненных работ. Отношение «один ко многим» используется очень часто и поддерживается всеми СУБД. «Многие к одному» - нескольким записям в одной таблице соответствует одна запись в другой таблице. Отношение «многие к одному» аналогично отношению «один ко многим». Тип отношения зависит от вашей точки зрения. Например, если вы будете рассматривать отношение между выполненной работой и сотрудниками, то получите отношение «многие к одному». «Многие ко многими - нескольким записям в одной таблице соответствует несколько записей в другой таблице. Например, между таблицами «Поставки товаров» и «Заказанные товары» существует отношение «многие ко многим», т.к. на каждый товар может быть более одного заказа или каждый поставляемый товар может производиться более чем одним производителем. Системный аналитик, хорошо ориентирующийся в различных БД и СУБД, должен знать и уметь пользоваться различными моделями данных. В настоящее время распространены 3 модели данных: • иерархическая; • сетевая; • реляционная. Иерархическая модель данных строится по принципу иерархии типов объектов, т.е. один тип объекта является главным, а остальные - подчиненными. Между главными и подчиненными объектами устанавливается отношение «один ко многим». Для каждого подчиненного типа объекта может быть только один вышестоящий (исходный) тип объекта. Для сетевой модели данных понятие главного (исходного) и подчиненного объекта несколько расширено. Любой объект может быть главным и подчиненным. Каждый объект может участвовать в любом числе взаимодействий. В реляционной модели объекты и взаимодействия между ними представляются с помощью рассмотренных выше таблиц. Каждая таблица должна иметь первичный ключ - поле или комбинацию полей, который однозначно идентифицирует каждую строку таблицы. Реляционная модель данных является наиболее простой и популярной. На ее идеологии построены практически все современные СУБД. Исторически она появилась самой первой. 10.5. Понятие распределенной компьютерной системы. Информационно-телекоммуникационные системы Обратимся теперь к понятию распределенной компьютерной системы. Заметим, что в качестве синонима часто употребляют термин информационно-телекоммуникационная система. Чтобы понять, что это такое, введем понятия локального и внешнего сегмента КС. Локальный сегмент КС (АС КС) - подмножество субъектов и объектов компьютерной системы, выделяемое по одному из следующих критериев: • критерию группирования в одно множество всех субъектов с возможностью непосредственного управле ния субъектами; • критерию локализации некоторого подмноже ства объектов и субъектов в рамках некоторой техни ческой компоненты КС (одного компьютера или одной локальной сети); 340 341 • критерию присвоения объектам и субъектам КС некоторой информации, однозначно характеризующей субъект или объект (которая, как правило, называется адресом или сетевым адресом ЛС КС). Поясним введенные критерии выделения локальных сегментов. В первом случае (все субъекты управляются одним или несколькими пользователями) речь идет о персональном рабочем месте аналитика. Во втором - о корпоративной локальной сети, содержащей несколько (возможно, что и достаточно большое число) рабочих мест. В третьем - о «скрытии» некоторой структуры за сетевым именем или адресом (например, mail.ru -огромное количество серверов, управляющих компьютеров и каналов связи, расположенных в нескольких странах, но решающих одну задачу по хранению и доставке электронной почты). Внешний сегмент КС - дополнение множества субъектов и объектов локального сегмента до всего множества объектов КС. Очевидно, что во внешнем сегменте может быть выделено несколько локальных сегментов. В дальнейшем для простоты будем рассматривать один произвольно выделенный ЛС КС. Речь идет о том, что, выделив ЛС КС по одному из предложенных критериев, мы весь остальной «мир» компьютерных систем считаем уже «внешним». Удаленным субъектом будем называть субъект, принадлежащий множеству субъектов внешнего сегмента КС. Очевидно, что множества субъектов локального и внешнего сегмента КС не пересекаются. Доступ удаленного субъекта к локальному объекту подразумевает организацию потока информации (формальное определение потока мы дадим ниже) от удаленного субъекта к объектам локального субъекта. Понятие потока описывает реальную работу компьютерной системы под управлением аналитика. Потоки во «внешний мир» соответствуют запросам аналитиков во внешние информационные хранилища и базы данных, обратные потоки - ответы на эти запросы. Потоки от одного ЛС КС к другому через внешний сегмент 342 КС означают информационный обмен между аналитиками. Не всегда эти потоки могут быть «дружественны». Например, регулярный внешний поток от вашей локальной сети к неизвестному локальному сегменту, скорее всего, означает, что у вас крадут корпоративную информацию или, что еще более печально, в корпоративной сети имеется внутренний злоумышленник («крот»), который передает конфиденциальную информацию вовне. Не всегда это человек, чаще - программа, но подробнее об этом - ниже. Потоком информации между объектом О т и объектом О называется произвольная операция над объектом О. реализуемая в субъекте S t и зависящая от О т . Обозначения: Stream(S i , OJ —» О - поток информации от объекта О т к объекту О. Для практической исследовательской работы полезно и следует выделять источник (OJ и получателя (приемника) потока (О). Значения индексов принимают целые положительные значения и означают тот простой факт, что все субъекты и объекты могут быть перенумерованы. Приведенные только что определения и разъяснения важны еще и потому, что они позволяют понять, как конструируются узко локальные КС и КС, соединяющие несколько локальных систем, и притом, конструируются так, чтобы сохранить конфиденциальность компьютерной информации и предотвратить доступ к ней злоумышленников, например, аналитиков или программистов конкурирующей организации. Во внешнем сегменте КС логично предположить существование субъекта, который управляется внешним злоумышленником (мы помним, что доступ к данным ЛС КС возможно получить только через программы). Целью удаленного злоумышленника является организация потоков от данных локальных объектов в своих интересах. В случае разделения КС на локальный и внешний сегменты множество всех потоков можно разделить на четыре группы конструкций: 1. Потоки между локальными субъектами и локальными объектами. 343 2. Потоки между локальными субъектами и удаленными объектами. 3 Потоки между удаленными субъектами и локальными объектами. 4. Потоки между удаленными субъектами и удаленными объектами. Понимание, как сконструированы и как работают эти группы КС, очень важно, для того чтобы точно знать, как аналитик может получать информацию из «чужих» отдаленных компьютерных систем, как он может обмениваться данными внутри своей замкнутой локальной системы, не имеющей выхода во внешние КС, как к его (может быть, абсолютно секретным) данным может получить доступ удаленный субъект, в том числе злоумышленник, как можно обмениваться (и в каком масштабе) данными с дружественными локальными системами или с внешними КС. Скажем, для аналитика, работающего на фондовой бирже, компьютер которого подключен к внешним КС, очень важно непрерывно получать и обрабатывать информацию о состоянии котировок ценных бумаг на других фондовых биржах в том случае, конечно, если они открыты для доступа. Но в то же время ему важно, чтобы данные, находящиеся в его личных файлах, не стали известны третьим лицам Это поясняет, почему так важна только что приведенная классификация. Потоки между локальными субъектами и локальными объектами (первая конструкция) описывают работу аналитика внутри своего рабочего места или внутри корпоративной сети. Аналитик запускает программы и обрабатывает данные из своего ЛС КС Потоки между локальными субъектами и удаленными объектами означают работу аналитика с внешним ресурсом при помощи своих собственных программ, размещенных на ЛС КС. Потоки между удаленными субъектами и локальными объектами означают, что удаленные субъекты пользуются вашими внутренними ресурсами. Это может быть санкционированное действие, а может быть и злоумышленное. Еще одно вероятное событие в этом случае - что в ваш ЛС КС внедряют постороннее программное обеспечение, которое будет «красть» информацию по некоторому событию или сигналу извне. Потоки между удаленными субъектами и удаленными объектами описывают «работу сторонних организаций». Эти потоки тоже могут представлять интерес для аналитика. Например, по активности обращений к ресурсам можно делать прогнозы, о чем подробно написано во второй части книги. Введем еще одно понятие порождения субъекта Create(S ,O)—>S k - из объекта <Э порожден субъект S fc при активизирующем воздействии субъекта S. Create назовем операцией порождения субъектов (см. также рис. 21). Операция порождения субъектов описывает запуск программ в рамках локального или внешнего сегмента КС. Если мы вспомним, как пользуемся различными программами (например, в операционной среде Windows мы «щелкаем мышкой» по изображению программы на рабочем столе), то обратим внимание на то, что первично программа существует в виде объекта, который называется исполняемым модулем. Этот объект мы подвергаем «запуску», при этом находящиеся в нем инструкции для процессора начинают исполняться, и объект становится субъектом. Но важно понимать еще, что новый субъект в КС не может образоваться сам, его запускает другой, уже активный субъект. В примере с Windows это управляющая программа Explorer. У субъекта-программы обязательно есть связанные с ним объекты, которые называются ассоциированными с ним. Это некоторые переменные и поля программы, содержание окон на экране и, наконец, сама последовательность действий программы, которая размещена в памяти компьютера. Ассоциированные объекты отражают состояние субъекта. В терминах потоков рассмотрим межсубъектное взаимодействие между удаленным субъектом Хи локальным субъектом S. В данном случае i-й субъект - просто одна из программ нашего компьютера, взаимодействующая 344 345 u I с сетью. Целью данного взаимодействия является реализация потока между локальным объектом О и ассоциированным объектом О х субъекта X, причем данный поток проходит через ассоциированные объекты локального субъекта S. На практике это означает, что мы обращаемся во внешний сегмент КС через свою программу S, которая связывается с внешней программой X, причем это взаимодействие происходит всегда - и в случае «добросовестного» сетевого общения, и в случае атак злоумышленника. Хорошо знакомый всем пример, это Internet Explorer, который чаще называю браузером. С другой стороны, мы видим внешний сегмент КС, внешнюю сеть только тогда, когда нам «отвечает» на наши запросы со стороны внешнего мира некоторый субъект X. Кроме того, вполне существует возможность того, что из сети нам будет передан внешний объект Ov, который может быть запущен в рамках нашего ЛС КС и породит новый субъект в нашем «локальном мире». Порождение нового субъекта может произойти из объекта, находящегося как в локальном, так и во внешнем сегменте КС. Рис. 20. К понятию внешнего сегмента КС 346 На рис. 20 схематически представим рассматриваемое взаимодействие субъектов S t и X. Введем следующие обозначения: X - субъект внешнего сегмента КС, который инициирует поток через S t - субъект, принадлежащий подмножеству субъектов локального сегмента КС, О - объект локального сегмента КС, S* - субъект локального сегмента, порожденный субъектом S. О к - ассоциированный объект субъекта S. Объекты ОиО к на рис. 20 входят в множество объектов ЛС КС. Рассмотрим следующую упрощенную модель работы «распределенной» компьютерной системы, которая состоит из двух компьютеров. На рассматриваемых компьютерах обязательно будет установлено телекоммуникационное программное обеспечение, обеспечивающее совместную работу прикладных программ и аппаратуры передачи данных для обмена информацией по каналу связи. Отметим, что передаваемая и принимаемая информация представляется в различных частях КС на различных уровнях (файлы, части файлов, пакеты). Злоумышленника полагаем в данном случае лицом, которое имеет доступ к каналу связи и располагает идентичным по отношению к нашему компьютеру комплексом программных и аппаратных средств. Работу как злоумышленника, так и легального пользователя можно представить как работу передающего либо принимающего компьютера или как посылку (или прием) на наш компьютер некоторой информации. Если речь идет о злоумышленнике, то на нашем атакуемом компьютере работает некий субъект, который традиционно называется телекоммуникационным субъектом и либо входит в состав телекоммуникационного программного обеспечения на нашем компьютере, либо был прислан нам извне. Злоумышленные действия в рассматриваемом случае возможны двух основных видов: • пассивное воздействие, связанное с чтением дан ных с атакуемого компьютера и их транспортировкой на компьютер злоумышленника; • активное воздействие, связанное с присылкой на наш компьютер новых данных (например, новых фай- 347 лов) и модификацией уже существующих файлов, в том числе и исполняемых. Обобщим сказанное и сформулируем его на языке потоков. Обозначим потоки от ассоциированного объекта О х субъекта X к ассоциированному объекту О к субъекта S и наоборот: Stream(X,O x )-*O k и Stream(X,O k )— *O x . Пред положим также, что свойства субъекта S r таковы, что возможно существование потоков вида Stream(S i ,O)-*O k и Stream(S i ,O k )-^O j . Существует весьма важное отношение транзитивности, которое является основой для передачи информации и контроля информационных потоков. В общем виде оно звучит так: «Если А относится к В, а В относится к С, то и А относится к С». Например, если «10 больше 5, а 5 больше 1, то и 10 больше 1». На языке потоков отношение транзитивности выражается так: «Если существует поток от А к В и поток от В к С, то существует и поток от А к С». Поток, проходящий через несколько объектов, называется составным потоком, в приведенном примере составным будет поток от А к С. Верно также и то, что если на каком-то участке поток прерван, то и общий составной поток не существует, т.е., «если существует поток от А к В, но не существует потока от В к С, то не существует потока от А к С». Свойство транзитивности потоков является основой для построения систем безопасности. По свойству транзитивности потоков имеет место доступ субъекта X к объекту О } через субъект S ( . В локальном сегменте КС возможны также две основные ситуации, связанные с упомянутой выше возможностью порождения нового субъекта: • доступ к объекту <Э со стороны субъекта S t при управляющем воздействии субъекта X; • дорождение субъектом S f из локального объек та нового субъекта S*, для которого существует поток Stream(X,S*). Первая ситуация связана с тем, что субъект X может получить доступ к объектам нашего локального сегмен- та непосредственно через наш телекоммуникационный субъект, через который мы «видим» внешний сегмент КС. Вторая - с порождением нового субъекта и доступом через него. Наличие канала связи между удаленным субъектом и локальными объектами позволяют говорить о задаче семантической защиты передаваемых данных, которую изучает криптография. Подводя итоги, можно сформулировать несколько принципов работы КС, важных для аналитика. Первый - аналитик является пользователем компьютерной системы, он взаимодействует с активными компонентами КС - субъектами (программами), а информацию черпает из пассивного компонента - объектов. Второй принцип состоит в том, что аналитик работает во внутреннем сегменте КС, общаясь с различными субъектами и пользователями внешнего сегмента КС и получая информацию также от объектов внешнего субъекта КС. Третий принцип - получение информации есть реализация различных потоков, многие из которых имеют сложную структуру, практически все потоки являются составными. Четвертый принцип - внешний сегмент КС не управляем и потенциально враждебен аналитику, он содержит массу источников информации с различными свойствами которые (в первую очередь достоверность) необходимо тщательно проверять. Из внешнего сегмента могут прийти угрозы для данных, размещенных в локальном сегменте КС. Угрозы возможны и при передаче информации от одного локального сегмента к другому. Пятый принцип - для результативной работы аналитика его компьютерная система должна быть наполнена субъектами, реализующими все необходимые ему функции, иными словами, перечень используемых программ должен быть функционально полным, но не избыточным, поскольку через «лишние» субъекты возможна утечка информации, появление в системе «вирусов» и посторонних программ. 348 349 |