Часть IV Информационное обеспечение системного анализа, систем управления и принятия решений. Информационная безопасность. Использование мировых информационных систем

Глава 10 Общие понятия информационных систем

10.4. Понятие базы данных н информационного хранилища

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

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

Обратимся теперь к базам данных. База данных (БД) в общем смысле – структурированный источник информации, объект КС, обладающий определенными свойствами. В рамках теории БД взаимосвязанные данные, содержащие сведения о хозяйственной или иной деятельности любого предприятия, называются информационной системой (ИС). Таким образом, ИС есть объектная компонента КС, содержащая информацию и знания. Совокупность нескольких баз данных образует информационное хранилище.

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

• непротиворечивости;

• неизбыточности;

• целостности;

• полноты.

В теории БД объектом называется элемент ИС, информация о котором сохраняется в ИС, удовлетворяющей только что перечисленным свойствам. В теории БД объект также может называться сущностью. Сведения, содержащиеся в ИС, могут относиться к людям, населенным пунктам, реальным предметам, а также к событиям, финансовым счетам и т.д. При построении БД, относящейся, например, к деятельности организации, необходимы сведения о персонале, заработной плате, товарах, накладных, счетах, отчетах по сбыту. При продаже автомобилей ИС будет содержать такие объекты как модель автомобиля (например, «ВАЗ»), клиент (например, «Сидоров»), номер счета. На товарном складе это будут: поставщик, товар, отгрузка товара и т.д. Каждый объект обладает набором свойств, которые зафиксированы в БД, образующие подсистему ИС. При обработке данных часто встречаются однородные объекты с одинаковыми свойствами, которые необходимо классифицировать.

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

Атрибут, записанный на каком-либо носителе информации, называют элементом данных, полем данных или, для краткости, просто полем. Значения данных представляют собой действительные (реальные) данные, содержащиеся в каждом поле. Например, поле «Наименование модели» для автомобильной продукции может принимать значения «Volvo», «ВАЗ», «ГАЗ» и т.д. Совокупность характеристик объекта называется записью базы данных. Теория БД оперирует также понятием таблицы. Таблица – это некоторая структурированная информация, содержащая характеристики объекта или класса объектов. Каждая строка таблицы является записью, а каждый столбец – полем.

Данные характеризуются различным типом. Различают символьные, числовые, двоичные данные, данные специальных форматов – дата и время. Говорят, что какое-либо поле имеет числовой тип. Иногда в символьном типе данных, который представляет собой просто строки читаемых символов, выделяют Интернет-адреса или ссылки на страницы в сети. Уточнением понятия типа является формат – описание структуры. Формат даты и времени может быть последовательностью из трех чисел, разделенных точками, а расположение дня, месяца и года (часов, минут и секунд) может меняться в зависимости от принятых в стране правил.

Таблица 17

Таб. 17 характеризует класс объектов «Сотрудник» и содержит 5 полей и 4 записи. Поля «Фамилия» и «Пол» -это символьные поля, «Дата рождения» относится к типу дат, «Зарплата» и «Аванс» – относятся к числовому типу (суммы).

Доменом называют набор допустимых значений поля. Для приведенного примера:

Домен поля «Фамилия» – в самом простом случае допустимы любые русские буквы, поле не должно содержать латинских букв, цифр, знаков препинания или каких-либо других символов (естественно, критерии выбора можно усложнить, например, не допускать фамилии, начинающиеся с мягкого или твердого знака);

Домен поля «Пол» – допустимы значения “М”, V, “Ж” “-яг”- ./IV , 2IS. ,

Домен поля «Дата рождения» – задается определенным набором цифр, обозначающих год, месяц и день рождения;

«Зарплата» и «Аванс» – могут принимать только положительные значения.

Введенные понятия дают некоторый простой инструмент для оценки достоверности информации, почерпнутой аналитиком из используемых им БД.

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

Система управления базами данных (СУБД) – это совокупность языковых и программных средств, предназначенных для создания, ведения и использования баз данных. По характеру применения СУБД разделяют на следующие классы:

• персональные – обеспечивают возможность созда ния локальных баз данных, т.е. преимущественно рабо тающих на одном компьютере (к таким относятся Access,

FoxPro, dBase, Paradox);

• многопользовательские – это СУБД, позволяющие создавать информационные системы, функционирую щие в архитектуре «Клиент-Сервер», например: SyBase, Oracle, MS SQL Server, InterBase, Informix.

Ряд современных СУБД (Access, Paradox, FoxPro) также обеспечивают и многопользовательскую обработку данных, но используют архитектуру «Файл-Сервер».

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

Первичный ключ – это поле или группа полей, которые однозначно идентифицируют каждую строку в таблице. Таблица может иметь только один первичный ключ. Альтернативный ключ – это поле или группа полей, не совпадающих с первичным ключом и также однозначно идентифицирующих каждую строку в таблице. Таблица может содержать несколько альтернативных (вторичных) ключей. Смысл понятий первичного и альтернативного ключа состоит в однозначной идентификации поля для поиска. Поле «Личный номер сотрудника» можно использовать в качестве первичного ключа. Поскольку значение поля «Серия и номер паспорта» также не повторяется и может однозначно идентифицировать каждую запись в таблице, это поле является альтернативным ключом. Поиск по личному номеру или паспортным данным всегда однозначно приведет к результату (если, конечно, искомое значение содержится в БД). Поле «Фамилия» ни первичным, ни альтернативным ключом быть не может, поскольку фамилии могут повторяться.

Таблица 18

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

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

Итак, база данных – это совокупность нескольких таблиц со связями (отношениями) между ними. Отношения между таблицами строятся через совпадающие поля. Между таблицами возможны 4 типа отношений:

• «один к одному»;

• «один ко многим»;

• «многие к одному»;

• «многие ко многим».

Эти формулировки нуждаются в некоторых пояснениях, помогающих системному аналитику использовать имеющиеся в его распоряжении БД и ИС или «заказать» специалисту по созданию БД, какие таблицы должны быть построены, какие они должны содержать индексы и ключи. «Один к одному» — каждая запись одной таблицы соответствует одной записи в другой таблице, а связь между таблицами осуществляется по совпадающему полю, например, «Личный №». Отношение «один к одному» целесообразно использовать, если часть данных используется нечасто. Использование данного отношения позволит увеличить скорость работы с БД. «Один ко многим» – каждой записи в одной таблице соответствует несколько записей в другой таблице. Например, одному сотруднику может соответствовать несколько выполненных работ. Отношение «один ко многим» используется очень часто и поддерживается всеми СУБД. «Многие к одному» – нескольким записям в одной таблице соответствует одна запись в другой таблице. Отношение «многие к одному» аналогично отношению «один ко многим». Тип отношения зависит от вашей точки зрения. Например, если вы будете рассматривать отношение между выполненной работой и сотрудниками, то получите отношение «многие к одному». «Многие ко многими – нескольким записям в одной таблице соответствует несколько записей в другой таблице. Например, между таблицами «Поставки товаров» и «Заказанные товары» существует отношение «многие ко многим», т.к. на каждый товар может быть более одного заказа или каждый поставляемый товар может производиться более чем одним производителем.

Системный аналитик, хорошо ориентирующийся в различных БД и СУБД, должен знать и уметь пользоваться различными моделями данных. В настоящее время распространены 3 модели данных:

• иерархическая;

• сетевая;

• реляционная.

Иерархическая модель данных строится по принципу иерархии типов объектов, т.е. один тип объекта является главным, а остальные – подчиненными. Между главными и подчиненными объектами устанавливается отношение «один ко многим». Для каждого подчиненного типа объекта может быть только один вышестоящий (исходный) тип объекта. Для сетевой модели данных понятие главного (исходного) и подчиненного объекта несколько расширено. Любой объект может быть главным и подчиненным. Каждый объект может участвовать в любом числе взаимодействий. В реляционной модели объекты и взаимодействия между ними представляются с помощью рассмотренных выше таблиц. Каждая таблица должна иметь первичный ключ – поле или комбинацию полей, который однозначно идентифицирует каждую строку таблицы. Реляционная модель данных является наиболее простой и популярной. На ее идеологии построены практически все современные СУБД. Исторически она появилась самой первой.10.5. Понятие распределенной компьютерной системы. Информационно-телекоммуникационные системы

Обратимся теперь к понятию распределенной компьютерной системы. Заметим, что в качестве синонима часто употребляют термин информационно-телекоммуникационная система. Чтобы понять, что это такое, введем понятия локального и внешнего сегмента КС.

Локальный сегмент КС (АС КС) – подмножество субъектов и объектов компьютерной системы, выделяемое по одному из следующих критериев:

• критерию группирования в одно множество всех субъектов с возможностью непосредственного управления субъектами;

• критерию локализации некоторого подмножества объектов и субъектов в рамках некоторой технической компоненты КС (одного компьютера или одной локальной сети);

• критерию присвоения объектам и субъектам КС некоторой информации, однозначно характеризующей субъект или объект (которая, как правило, называется адресом или сетевым адресом ЛС КС).

Поясним введенные критерии выделения локальных сегментов. В первом случае (все субъекты управляются одним или несколькими пользователями) речь идет о персональном рабочем месте аналитика. Во втором – о корпоративной локальной сети, содержащей несколько (возможно, что и достаточно большое число) рабочих мест. В третьем – о «скрытии» некоторой структуры за сетевым именем или адресом (например, mail.ru -огромное количество серверов, управляющих компьютеров и каналов связи, расположенных в нескольких странах, но решающих одну задачу по хранению и доставке электронной почты).

Внешний сегмент КС – дополнение множества субъектов и объектов локального сегмента до всего множества объектов КС. Очевидно, что во внешнем сегменте может быть выделено несколько локальных сегментов. В дальнейшем для простоты будем рассматривать один произвольно выделенный ЛС КС. Речь идет о том, что, выделив ЛС КС по одному из предложенных критериев, мы весь остальной «мир» компьютерных систем считаем уже «внешним».

Удаленным субъектом будем называть субъект, принадлежащий множеству субъектов внешнего сегмента КС. Очевидно, что множества субъектов локального и внешнего сегмента КС не пересекаются.

Доступ удаленного субъекта к локальному объекту подразумевает организацию потока информации (формальное определение потока мы дадим ниже) от удаленного субъекта к объектам локального субъекта.

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

Потоком информации между объектом От и объектом О называется произвольная операция над объектом О. реализуемая в субъекте St и зависящая от От. Обозначения: Stream(Si, OJ —» О – поток информации от объекта От к объекту О. Для практической исследовательской работы полезно и следует выделять источник (OJ и получателя (приемника) потока (О). Значения индексов принимают целые положительные значения и означают тот простой факт, что все субъекты и объекты могут быть перенумерованы. Приведенные только что определения и разъяснения важны еще и потому, что они позволяют понять, как конструируются узко локальные КС и КС, соединяющие несколько локальных систем, и притом, конструируются так, чтобы сохранить конфиденциальность компьютерной информации и предотвратить доступ к ней злоумышленников, например, аналитиков или программистов конкурирующей организации.

Во внешнем сегменте КС логично предположить существование субъекта, который управляется внешним злоумышленником (мы помним, что доступ к данным ЛС КС возможно получить только через программы).

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

1. Потоки между локальными субъектами и локальными объектами.

2. Потоки между локальными субъектами и удаленными объектами.

3 Потоки между удаленными субъектами и локальными объектами.

4. Потоки между удаленными субъектами и удаленными объектами.

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

Потоки между локальными субъектами и локальными объектами (первая конструкция) описывают работу аналитика внутри своего рабочего места или внутри корпоративной сети. Аналитик запускает программы и обрабатывает данные из своего ЛС КС Потоки между локальными субъектами и удаленными объектами означают работу аналитика с внешним ресурсом при помощи своих собственных программ, размещенных на ЛС КС. Потоки между удаленными субъектами и локальными объектами означают, что удаленные субъекты пользуются вашими внутренними ресурсами. Это может быть санкционированное действие, а может быть

и злоумышленное. Еще одно вероятное событие в этом случае – что в ваш ЛС КС внедряют постороннее программное обеспечение, которое будет «красть» информацию по некоторому событию или сигналу извне. Потоки между удаленными субъектами и удаленными объектами описывают «работу сторонних организаций». Эти потоки тоже могут представлять интерес для аналитика. Например, по активности обращений к ресурсам можно делать прогнозы, о чем подробно написано во второй части книги.

Введем еще одно понятие порождения субъекта Create(S ,O)—>Sk – из объекта <Э порожден субъект Sfc при активизирующем воздействии субъекта S. Create назовем операцией порождения субъектов (см. также рис. 21).

Операция порождения субъектов описывает запуск программ в рамках локального или внешнего сегмента КС. Если мы вспомним, как пользуемся различными программами (например, в операционной среде Windows мы «щелкаем мышкой» по изображению программы на рабочем столе), то обратим внимание на то, что первично программа существует в виде объекта, который называется исполняемым модулем. Этот объект мы подвергаем «запуску», при этом находящиеся в нем инструкции для процессора начинают исполняться, и объект становится субъектом. Но важно понимать еще, что новый субъект в КС не может образоваться сам, его запускает другой, уже активный субъект. В примере с Windows это управляющая программа Explorer. У субъекта-программы обязательно есть связанные с ним объекты, которые называются ассоциированными с ним. Это некоторые переменные и поля программы, содержание окон на экране и, наконец, сама последовательность действий программы, которая размещена в памяти компьютера. Ассоциированные объекты отражают состояние субъекта.

В терминах потоков рассмотрим межсубъектное взаимодействие между удаленным субъектом Хи локальным субъектом S. В данном случае i-й субъект – просто одна из программ нашего компьютера, взаимодействующая с сетью. Целью данного взаимодействия является реализация потока между локальным объектом О и ассоциированным объектом Ох субъекта X, причем данный поток проходит через ассоциированные объекты локального субъекта S. На практике это означает, что мы обращаемся во внешний сегмент КС через свою программу S, которая связывается с внешней программой X, причем это взаимодействие происходит всегда – и в случае «добросовестного» сетевого общения, и в случае атак злоумышленника. Хорошо знакомый всем пример, это Internet Explorer, который чаще называю браузером. С другой стороны, мы видим внешний сегмент КС, внешнюю сеть только тогда, когда нам «отвечает» на наши запросы со стороны внешнего мира некоторый субъект X. Кроме того, вполне существует возможность того, что из сети нам будет передан внешний объект Ov, который может быть запущен в рамках нашего ЛС КС и породит новый субъект в нашем «локальном мире». Порождение нового субъекта может произойти из объекта, находящегося как в локальном, так и во внешнем сегменте КС.

На рис. 20 схематически представим рассматриваемое взаимодействие субъектов St и X. Введем следующие обозначения: X – субъект внешнего сегмента КС, который инициирует поток через St – субъект, принадлежащий подмножеству субъектов локального сегмента КС, О – объект локального сегмента КС, S* – субъект локального сегмента, порожденный субъектом S. Ок – ассоциированный объект субъекта S. Объекты Ои Окна рис. 20 входят в множество объектов ЛС КС.

Рассмотрим следующую упрощенную модель работы «распределенной» компьютерной системы, которая состоит из двух компьютеров. На рассматриваемых компьютерах обязательно будет установлено телекоммуникационное программное обеспечение, обеспечивающее совместную работу прикладных программ и аппаратуры передачи данных для обмена информацией по каналу связи. Отметим, что передаваемая и принимаемая информация представляется в различных частях КС на различных уровнях (файлы, части файлов, пакеты). Злоумышленника полагаем в данном случае лицом, которое имеет доступ к каналу связи и располагает идентичным по отношению к нашему компьютеру комплексом программных и аппаратных средств. Работу как злоумышленника, так и легального пользователя можно представить как работу передающего либо принимающего компьютера или как посылку (или прием) на наш компьютер некоторой информации. Если речь идет о злоумышленнике, то на нашем атакуемом компьютере работает некий субъект, который традиционно называется телекоммуникационным субъектом и либо входит в состав телекоммуникационного программного обеспечения на нашем компьютере, либо был прислан нам извне. Злоумышленные действия в рассматриваемом случае возможны двух основных видов:

• пассивное воздействие, связанное с чтением дан ных с атакуемого компьютера и их транспортировкой на компьютер злоумышленника;

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

Обобщим сказанное и сформулируем его на языке потоков. Обозначим потоки от ассоциированного объекта Ох субъекта X к ассоциированному объекту Ок субъекта S и наоборот: Stream(X,Ox)-*Ok и Stream(X,Ok)—*Ox. Предположим также, что свойства субъекта Sr таковы, что возможно существование потоков вида Stream(Si,O)-*Ok и Stream(Si,Ok)-^Oj.

Существует весьма важное отношение транзитивности, которое является основой для передачи информации и контроля информационных потоков. В общем виде оно звучит так: «Если А относится к В, а В относится к С, то и А относится к С». Например, если «10 больше 5, а 5 больше 1, то и 10 больше 1». На языке потоков отношение транзитивности выражается так: «Если существует поток от А к В и поток от В к С, то существует и поток от А к С». Поток, проходящий через несколько объектов, называется составным потоком, в приведенном примере составным будет поток от А к С. Верно также и то, что если на каком-то участке поток прерван, то и общий составной поток не существует, т.е., «если существует поток от А к В, но не существует потока от В к С, то не существует потока от А к С». Свойство транзитивности потоков является основой для построения систем безопасности.

По свойству транзитивности потоков имеет место доступ субъекта X к объекту О} через субъект S. В локальном сегменте КС возможны также две основные ситуации, связанные с упомянутой выше возможностью порождения нового субъекта:

• доступ к объекту <Э со стороны субъекта St при управляющем воздействии субъекта X;

• дорождение субъектом Sf из локального объек та нового субъекта S*, для которого существует поток Stream(X,S*).

Первая ситуация связана с тем, что субъект X может получить доступ к объектам нашего локального сегмен-

та непосредственно через наш телекоммуникационный субъект, через который мы «видим» внешний сегмент КС. Вторая – с порождением нового субъекта и доступом через него.

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

Подводя итоги, можно сформулировать несколько принципов работы КС, важных для аналитика. Первый – аналитик является пользователем компьютерной системы, он взаимодействует с активными компонентами КС – субъектами (программами), а информацию черпает из пассивного компонента – объектов. Второй принцип состоит в том, что аналитик работает во внутреннем сегменте КС, общаясь с различными субъектами и пользователями внешнего сегмента КС и получая информацию также от объектов внешнего субъекта КС. Третий принцип – получение информации есть реализация различных потоков, многие из которых имеют сложную структуру, практически все потоки являются составными. Четвертый принцип – внешний сегмент КС не управляем и потенциально враждебен аналитику, он содержит массу источников информации с различными свойствами, которые (в первую очередь достоверность) необходимо тщательно проверять. Из внешнего сегмента могут прийти угрозы для данных, размещенных в локальном сегменте КС. Угрозы возможны и при передаче информации от одного локального сегмента к другому. Пятый принцип – для результативной работы аналитика его компьютерная система должна быть наполнена субъектами, реализующими все необходимые ему функции, иными словами, перечень используемых программ должен быть функционально полным, но не избыточным, поскольку через «лишние» субъекты возможна утечка информации, появление в системе «вирусов» и посторонних программ.

Поделиться в социальных сетях

Добавить комментарий

Авторизация
*
*
Регистрация
*
*
*
Генерация пароля