Разработка вычислительных систем и программного обеспечения
Технические средства реализации информационных процессов. Модели решения функциональных, вычислительных задач. Защита информации, сведений, составляющих государственную тайну. Административные меры борьбы с вирусами, принципы работы антивирусных программ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курс лекций |
Язык | русский |
Дата добавления | 10.05.2018 |
Размер файла | 943,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
ЗАПРОСЫ
Запрос - это требование на отбор данных, хранящихся в таблицах, или требование на выполнение определенных действий с данными. Запросы используются для просмотра, изменения и анализа данных различными способами.
В базе данных Microsoft Access пользователь имеет возможность создавать запросы, которые сохраняются как отдельные объекты и отображаются в окне базы данных.
Упрощенное создание запросов, которые будут выполняться независимо или использоваться как базовые для нескольких форм или отчетов, можно воспользоваться Мастером запросов. Для настройки такого запроса можно в дальнейшем переключиться в режим конструктора.
Типы запросов
Запросы на выборку и их использование. Запросы этого типа возвращают данные из одной или нескольких таблиц и отображают их в виде таблицы в нужном порядке. Запросы на выборку можно также использовать для группировки записей и вычисления сумм, средних значений, подсчета записей и нахождения других типов итоговых значений.
Запросы с параметрами и их использование. Запрос с параметрами - это запрос, при выполнении отображающий в собственном диалоговом окне приглашение ввести данные, например, значение, которое требуется вставить в поле. Или программа может вернуть все записи, приходящиеся на интервал времени между введенными датами.
Перекрестные запросы и их использование. В перекрестном запросе отображаются результаты статистических расчетов (суммы, количество записей и средние значения), выполненных по данным из одного поля таблицы.
Запросы на изменение (запросы на создание таблицы, удаление, обновление, добавление записей) и их использование. Запросом на изменение называют запрос, который за одну операцию вносит изменения в несколько записей. Существует четыре типа запросов на изменение: на удаление, на обновление и добавление записей, а также на создание таблицы.
В частности, Запросы на объединение комбинируют поля (столбцы) из одной или нескольких таблиц или запросов в одно поле в результатах запроса.
Использование подстановочных символов
Если Вы точно знаете, какую информацию Вам необходимо запросить из базы данных, то при составлении запросов вводятся точные формулировки или числа. Для выбора записей по условию неточного совпадения значений используется оператор Like с подстановочными символами, заменяющими собой группу знаков. Так, символ
# заменяет собой одну цифру;
? заменяет один любой символ;
* заменяет любое число любых символов;
[ ] предлагают возможность выбора из перечисленных данных;
! представляет собой операцию отрицания.
Если внутри квадратных скобок запись начинается со знака «!», это означает выбор любого символа, КРОМЕ записанных в этих скобках.
Если между буквами, записанными в квадратных скобках, стоит знак дефис «-», это означает возможность выбора любой буквы, лежащей между указанными.
Примеры.
1. Для поля «Название поставщика»: *[а,е,и,о,у,ы,э,ю,я]» - выбор всех поставщиков, чье название оканчивается на гласную букву (плюс закрывающая кавычка), а все остальное включено в символ (*).
2. Для поля «Телефон»: ###### - выбор шестизначных телефонов.
3. Выражение: LIKE [Введите первый символ для поиска: ]&"*" - выполняет поиск слов, начинающихся с указанного символа.
ФОРМЫ
Режим формы - это окно, которое обычно используется для вывода одной или нескольких целых записей. Режим формы является очень удобным режимом, в котором выполняется просмотр, ввод или изменение табличных данных.
Создание формы в режиме Мастера
Существует режим собственно мастера, позволяющий создавать обычные формы, подчиненные и связанные. Существуют также режимы создания простых форм (автоформ): ленточной, в столбец и табличной.
Команда Создание формы мастером имеет более широкие возможности. В отличие от автоформ, которые выводят данные только одной таблицы или запроса, Мастер позволяет выводить в форме поля всех связанных таблиц.
Способы настройки формы (изменения в режиме Конструктора)
В форму можно добавить заголовок и/или примечание, перетащить поля и надписи, уменьшить размеры полей, удалить ненужные надписи, изменить атрибуты надписей и полей.
Подчиненные формы: что это такое и как они работают
Подчиненная форма - это форма, содержащаяся внутри другой формы. Первичная форма называется главной формой, а форма внутри формы называется подчиненной формой.
Подчиненные формы особенно удобны для вывода данных из таблиц или запросов, связанных с отношением «один-ко-многим».
Главная форма и подчиненная форма в этом типе форм связаны таким образом, что в подчиненной форме выводятся только те записи, которые связаны с текущей записью в главной форме. Например, когда главная форма отображает поставщика Х, подчиненная форма отображает только те товары, которые были им поставлены на склад.
Подчиненная форма может отображаться в виде таблицы, в виде простой или ленточной формы. Главная форма может отображаться только как простая форма.
Связанные формы
Такие формы создаются Мастером из таблиц, связанных отношением «один-ко-многим», их отличием от подчиненных форм является вид вывода: в главной форме при открытии не отображаются связанные данные, а выводится кнопка (управляющий элемент). Нажатие на эту кнопку открывает связанную форму.
Добавление вычисляемого значения в форму.
Для расчета следует добавить Поле в нужное место области данных, а затем в окне Свойства в строке Данные ввести нужную формулу. Лучше использовать Построитель выражений. В вычисляемом элементе управления перед каждым выражением помещайте знак равенства (=). Если при вводе выражения в ячейку Данные потребуется больше места, нажмите сочетание клавиш SHIFT+F2 для открытия окна Область ввода.
Создание кнопочной формы.
При создании кнопочной формы с помощью диспетчера кнопочных форм Microsoft Access создает таблицу «Switchboard Items», которая описывает текст и действия кнопок формы. Если затем изменить кнопочную форму в режиме конструктора формы, приложение может перестать работать. Если потребуется значительно изменить кнопочную форму, лучше всего создать ее заново и назначить стартовой.
ОТЧЕТЫ
Отчет представляет собой эффективный способ представления данных в печатном формате.
Большая часть сведений в отчете поступает из базовой таблицы, запроса или инструкции SQL, являющейся источником данных для отчета. Остальные сведения отчета хранятся в его структуре.
Верхний колонтитул. Используется для вывода данных, таких как заголовки столбцов, даты или номера страниц, печатающихся сверху на каждой странице отчета.
Нижний колонтитул. Используется для вывода данных, таких как итоговые значения, даты или номера страницы, печатающихся снизу на каждой странице отчета.
Область данных группы. Содержит основной текст отчета. Для размещения в области данных элементов управления используют список полей и панель элементов.
ЗАПОМНИТЕ, ЧТО ОТЧЕТ НЕ БУДЕТ СОЗДАН, ЕСЛИ У ВАС НЕ УСТАНОВЛЕН ПРИНТЕР.
Создание отчета с помощью автоотчета
Автоотчет служит для создания отчета, в котором выводятся все поля и записи базовой таблицы или запроса. После выбора источника записей выбирается макет (в столбец, ленточный или табличный).
Создание отчета с помощью мастера.
Мастер задает подробные вопросы об источниках записей, полях, макете, требуемых форматах и создает отчет на основании полученных ответов.
Подчиненные отчеты: что это такое и как они работают
Подчиненным отчетом называют отчет, вставленный в другой отчет. При комбинировании отчетов один из отчетов является главным. Главный отчет может быть как присоединенным, так и свободным, т.е. не основанным на таблице, запросе или инструкции SQL.
Свободный главный отчет может служить контейнером нескольких не связанных между собой отчетов, которые требуется объединить.
В главном отчете могут также содержаться данные, являющиеся общими для двух или нескольких подчиненных отчетов. В этом случае области данных выводятся в подчиненных отчетах.
Модуль № 4 - Основы программирования.
Цель и задачи модуля
Познакомить студентов с начальными понятиями программирования, сформировать первичные навыки по алгоритмизации. Познакомить с языками высокого уровня и последовательностью действий при составлении программы.
Введение к модулю
Модуль содержит основные понятия по алгоритмизации и программированию, классификацию языков программирования. Приведены основные структуры алгоритмов и их обозначения. Рассмотрены общие вопросы отладки и тестирования программ.
Лекция 9. «Алгоритмизация и программирование»
Алгоритм. Основные свойства алгоритмов. Формы записи алгоритма. Блок-схема. Базовые алгоритмические структуры. Итерационные циклы. Вложенные циклы. Запись арифметических выражений. Запись логических выражений. Этапы решения задач с помощью компьютера.
Алгоритм.
Алгоритмом решения задачи численным методом называют последовательность арифметических и логических операций, которые надо произвести над исходными данными и промежуточными результатами для получения решения задачи. Алгоритм - заранее заданное понятное и точное предписание возможному исполнителю совершить определенную последовательность действий для получения решения задачи за конечное число шагов.
Описание алгоритма в форме, воспринимаемой ЭВМ, называется программой. Программа представляет собой совокупность команд, записанных в определенной последовательности, обеспечивающей решение задачи на ЭВМ. Каждая команда предписывает определенное действие и указывает, над какими словами (операндами) это действие производится.
В информатике универсальным исполнителем алгоритмов является компьютер.
Формы записи алгоритма
На практике наиболее распространены следующие формы представления алгоритмов:
· словесная (запись на естественном языке);
· графическая (изображения из графических символов);
· псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
· программная (тексты на языках программирования).
Словесный способ не имеет широкого распространения, так как такие описания строго не формализуемы, страдают многословностью и допускают неоднозначность толкования отдельных предписаний.
Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.
Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, проверке условий и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. В таблице приведены наиболее часто употребляемые символы.
Название символа |
Обозначение и пример заполнения |
Пояснение |
|
Процесс |
Вычислительное действие или последовательность действий |
||
Решение |
Проверка условий |
||
Модификация |
Начало цикла |
||
Предопределенный процесс |
Вычисления по подпрограмме, стандартной подпрограмме |
||
Ввод-вывод |
Ввод-вывод в общем виде |
||
Пуск-останов |
Начало, конец алгоритма, вход и выход в подпрограмму |
||
Документ |
Вывод результатов на печать |
Структурно-стилизованный способ описания алгоритмов, так называемый псевдокод, основан на формализованном представлении предписаний, задаваемых путем использования ограниченного набора типовых синтаксических конструкций. Псевдокод не может непосредственно выполняться ЭВМ и применяется только на начальных этапах работы с алгоритмом.
Единого или формального определения псевдокода не существует. Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ).
Базовые алгоритмические структуры
Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых (т.е. основных) элементов. Естественно, что при таком подходе к алгоритмам изучение основных принципов их конструирования должно начинаться с изучения этих базовых элементов. Для их описания будем использовать язык схем алгоритмов и школьный алгоритмический язык.
Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование, ветвление, цикл.
Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.
1. Базовая структура "следование" (линейный алгоритм). Образуется последовательностью действий, следующих одно за другим.
2. Базовая структура "ветвление" (разветвляющийся алгоритм). Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах:
1. если-то
2. если-то-иначе
3. выбор
4. выбор-иначе
3. Базовая структура "цикл" (циклический алгоритм). Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Основные разновидности циклов представлены в таблице:
Цикл типа пока. Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока. |
Цикл типа для. Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне. |
Итерационные циклы
Особенностью итерационного цикла является то, что число повторений операторов тела цикла заранее неизвестно. Для его организации используется цикл типа пока. Выход из итерационного цикла осуществляется в случае выполнения заданного условия.
В итерационных алгоритмах необходимо обеспечить обязательное достижение условия выхода из цикла (сходимость итерационного процесса). В противном случае произойдет "зацикливание" алгоритма, т.е. не будет выполняться основное свойство алгоритма - результативность.
Вложенные циклы
Возможны случаи, когда внутри тела цикла необходимо повторять некоторую последовательность операторов, т. е. организовать внутренний цикл. Такая структура получила название цикла в цикле или вложенных циклов. Глубина вложения циклов (то есть количество вложенных друг в друга циклов) может быть различной.
Запись арифметических выражений
Арифметические выражения записываются по следующим правилам:
· Нельзя опускать знак умножения между сомножителями и ставить рядом два знака операций.
· Индексы элементов массивов записываются в квадратных (Рascal) или круглых (Basic) скобках.
· Для обозначения переменных используются буквы латинского алфавита.
· Операции выполняются в порядке старшинства: сначала вычисление функций, затем возведение в степень, потом умножение и деление и в последнюю очередь - сложение и вычитание.
· Операции одного старшинства выполняются слева направо. В языке QBasic выражение 2^3^2 вычисляется как (2^3)^2 = 64. А в языке Рascal вообще не предусмотрена операция возведения в степень, в Рascal x^y записывается как exр(y*ln(x)), а x^y^z как exр(exр(z*ln(y))*ln(x)).
Запись логических выражений
В записи логических выражений помимо арифметических операций сложения, вычитания, умножения, деления и возведения в степень используются операции отношения < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), = (равно), <> (не равно), а также логические операции и, или, не.
Этапы решения задач с помощью компьютера
Решение задач с помощью компьютера включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера.
1. Постановка задачи:
· сбор информации о задаче;
· формулировка условия задачи;
· определение конечных целей решения задачи;
· определение формы выдачи результатов;
· описание данных (их типов, диапазонов величин, структуры и т.п.).
2. Анализ и исследование задачи, модели:
· анализ существующих аналогов;
· анализ технических и программных средств;
· разработка математической модели;
· разработка структур данных.
3. Разработка алгоритма:
· выбор метода проектирования алгоритма;
· выбор формы записи алгоритма (блок-схемы, псевдокод и др.);
· выбор тестов и метода тестирования;
· проектирование алгоритма.
4. Программирование:
· выбор языка программирования;
· уточнение способов организации данных;
· запись алгоритма на выбранном языке программирования.
5. Тестирование и отладка:
· синтаксическая отладка;
· отладка семантики и логической структуры;
· тестовые расчеты и анализ результатов тестирования;
· совершенствование программы.
6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2 - 5.
7. Сопровождение программы:
· доработка программы для решения конкретных задач;
· составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.
Математическая модель - это система математических соотношений - формул, уравнений, неравенств и т.д., отражающих существенные свойства объекта или явления.
Чтобы описать явление, необходимо выявить самые существенные его свойства, закономерности, внутренние связи, роль отдельных характеристик явления. Выделив наиболее важные факторы, можно пренебречь менее существенными.
Создавая математическую модель для решения задачи, нужно:
1. выделить предположения, на которых будет основываться математическая модель;
2. определить, что считать исходными данными и результатами;
3. записать математические соотношения, связывающие результаты с исходными данными.
При построении математических моделей далеко не всегда удается найти формулы, явно выражающие искомые величины через данные. В таких случаях используются математические методы, позволяющие дать ответы той или иной степени точности.
Существует не только математическое моделирование какого-либо явления, но и визуально-натурное моделирование, которое обеспечивается за счет отображения этих явлений средствами машинной графики, т.е. перед исследователем демонстрируется своеобразный "компьютерный мультфильм", снимаемый в реальном масштабе времени. Наглядность здесь очень высока.
Лекция 10. «Уровни языков программирования»
Стили языков программирования. Классификация языков высокого уровня. Составляющие алгоритмического языка. Основные понятия алгоритмического языка. Стандартные функции. Основные этапы процесса разработки программы. Отладка программы. Тестирование программы. Какие ошибки не обнаруживаются транслятором? Сопровождение программы. Библиотеки стандартных подпрограмм.
Уровни языков программирования
Не существует языка программирования, идеально подходящего для всех случаев. В настоящее время в мире существует несколько сотен реально используемых языков программирования. Выбор конкретного языка определяется характером решаемых задач.
Все языки программирования можно условно разделить на
- поддерживающие декларативный (функциональный) стиль программирования и
- следующие директивному (процедурному) стилю.
В директивной программе действия задаются явными командами, подготовленными ее составителем. Исполнитель же просто им следует. К директивным языкам традиционно относят такие классические языки программирования, как Fortran, Basic, Рascal и C.
Декларативные программы не предписывают выполнять определенную последовательность действий, в них лишь дается разрешение совершать их. Исполнитель должен сам найти способ достижения поставленной перед ним составителем программы цели. Наиболее существенными классами декларативных языков являются функциональные и логические языки (например, Lisр, Haskell и Рrolog), а также широко распространенные электронные таблицы.
В зависимости от степени детализации предписаний алгоритма обычно определяется уровень языка программирования - чем меньше детализация, тем выше уровень языка.
По этому критерию можно выделить следующие уровни языков программирования:
· машинные;
· машинно-ориентированные (ассемблеры);
· машинно-независимые (языки высокого уровня).
Машинные языки и машинно-ориентированные языки - это языки низкого уровня, требующие указания мелких деталей процесса обработки данных. Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.
При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций.
Языки высокого уровня делятся на
· процедурные (алгоритмические) (Basic, Рascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения;
· логические (Рrolog, Lisр и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания;
· объектно-ориентированные (Object Рascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами.
Составляющие алгоритмического языка:
1. Алфавит - это фиксированный для данного языка набор основных символов, т.е. "букв алфавита", из которых должен состоять любой текст на этом языке.
2. Синтаксис - это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза.
3. Семантика определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций, семантика устанавливает, какие последовательности действий описываются теми или иными фразами языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.
Стандартные функции
При решении различных задач с помощью компьютера бывает необходимо вычислить логарифм или модуль числа, синус угла и т.д. Вычисления часто употребляемых функций осуществляются посредством подпрограмм, называемых стандартными функциями, которые заранее запрограммированы и встроены в транслятор языка.
Каждый язык программирования имеет свой набор стандартных функций.
Транслятор, компилятор, интерпретатор
Транслятор (translator - переводчик) - это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд. Трансляторы реализуются в виде компиляторов или интерпретаторов.
Компилятор (compiler - составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Интерпретатор (англ. interpreter - истолкователь) переводит и выполняет программу строка за строкой.
После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы.
Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.
Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию -- в зависимости от того, для каких целей он создавался. Например, Паскаль обычно реализуется с помощью компилятора.
С другой стороны, Бейсик создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоспоримые преимущества.
Отладка и тестирование программы
Полученный вариант программы подвергается систематическому тестированию - ведь наличие ошибок в только что разработанной программе это вполне нормальное закономерное явление. Нельзя делать вывод, что программа правильна, лишь на том основании, что она не отвергнута машиной и выдала результаты. В программе может оставаться большое количество логических ошибок. Ответственные участки программы проверяются с использованием методов доказательства правильности программ.
Отладка программы - это процесс поиска и устранения ошибок в программе, производимый по результатам её прогона на компьютере.
Тестирование - это испытание, проверка правильности работы программы в целом, либо её составных частей.
Отладка и тестирование - это два четко различимых и непохожих друг на друга этапа:
· при отладке происходит локализация и устранение синтаксических ошибок и явных ошибок кодирования;
· в процессе же тестирования проверяется работоспособность программы, не содержащей явных ошибок.
Тестирование устанавливает факт наличия ошибок, а отладка выясняет ее причину.
Но, как справедливо указывал известный теоретик программирования Э. Дейкстра, тестирование может показать лишь наличие ошибок, но не их отсутствие. Нередки случаи, когда новые входные данные вызывают "отказ" или получение неверных результатов работы программы, которая считалась полностью отлаженной.
Для реализации метода тестов должны быть изготовлены или заранее известны эталонные результаты.
Процесс тестирования можно разделить на три этапа.
1. Проверка в нормальных условиях. Предполагает тестирование на основе данных, которые характерны для реальных условий функционирования программы.
2. Проверка в экстремальных условиях. Тестовые данные включают граничные значения области изменения входных переменных, которые должны восприниматься программой как правильные данные.
3. Проверка в исключительных ситуациях. Проводится с использованием данных, значения которых лежат за пределами допустимой области изменений. Известно, что все программы разрабатываются в расчете на обработку какого-то ограниченного набора данных.
Библиотеки стандартных подпрограмм
Библиотека стандартных подпрограмм - это совокупность подпрограмм, составленных на одном из языков программирования и удовлетворяющих определенным единым требованиям к структуре, организации их входов и выходов, описаниям подпрограмм и т.п.
В качестве примера можно привести библиотеку стандартных подпрограмм по численным математическим методам решения уравнений, вычисления интегралов, нахождения экстремумов и т.п.
Модуль № 6 - Основы защиты информации
Цель и задачи модуля
Познакомить студентов с основами безопасной работы на компьютере, классификацией угроз и средствами защиты информации. Объяснить принцип шифрования данных. Дать информацию о вирусах и антивирусных программах.
Введение к модулю
После усвоения информации данного модуля студент сможет защитить свою информацию, будь то текстовый документ или сообщение, передаваемое другу через Интернет. Сможет классифицировать вирус, случайно попавший на компьютер и подключить антивирусную программу, задав ей нужный алгоритм действий.
Лекция 11. «Основы защиты информации и сведений, составляющих государственную тайну»
Информационная безопасность. Доступность, целостность и конфиденциальность информационных ресурсов. Основные определения и классификация угроз. Значимость различных проблем ИТ-безопасности. Программные средства контроля доступа. Аппаратные средства контроля доступа. Защита передаваемой информации. Криптография. Асимметричное шифрование. Цифровые сертификаты. Классы сертификатов. Экранирование. Аппаратный и программный брандмауэр. Персональные брандмауэры.
Словосочетание "информационная безопасность" в разных контекстах может иметь различный смысл. В Доктрине информационной безопасности Российской Федерации термин "информационная безопасность" используется в широком смысле. Имеется в виду состояние защищенности национальных интересов в информационной сфере, определяемых совокупностью сбалансированных интересов личности, общества и государства.
В Законе РФ "Об участии в международном информационном обмене" информационная безопасность определяется аналогичным образом - как состояние защищенности информационной среды общества, обеспечивающее ее формирование, использование и развитие в интересах граждан, организаций, государства.
Под информационной безопасностью мы будем понимать защищенность информации и поддерживающей инфраструктуры от случайных или преднамеренных воздействий естественного или искусственного характера, которые могут нанести неприемлемый ущерб субъектам информационных отношений, в том числе владельцам и пользователям информации и поддерживающей инфраструктуры.
Защита информации - это комплекс мероприятий, направленных на обеспечение информационной безопасности.
Спектр интересов субъектов, связанных с использованием информационных систем, можно разделить на следующие категории: обеспечение доступности, целостности и конфиденциальности информационных ресурсов и поддерживающей инфраструктуры.
Основные определения и критерии классификации угроз
Угроза - это потенциальная возможность определенным образом нарушить информационную безопасность.
Попытка реализации угрозы называется атакой, а тот, кто предпринимает такую попытку, - злоумышленником. Потенциальные злоумышленники называются источниками угрозы.
Угрозы можно классифицировать по нескольким критериям:
- по аспекту информационной безопасности (доступность, целостность, конфиденциальность), против которого угрозы направлены в первую очередь;
- по компонентам информационных систем, на которые угрозы нацелены (данные, программы, аппаратура, поддерживающая инфраструктура);
- по способу осуществления (случайные/преднамеренные действия природного/техногенного характера);
- по расположению источника угроз (внутри/вне рассматриваемой ИС).
Корпоративная информация имеет конфиденциальную составляющую, и утечка этой информации, а тем более попадание ее к конкурентам - это потери в бизнесе. Конкуренты всегда будут стараться получать и накапливать информацию о других предприятиях. В силу необходимости авторизации стали создаваться системы мониторинга действий сотрудников, партнеров и клиентов.
Конфликт между работодателем и сотрудником может привести к проблеме так называемых "обиженных сотрудников", которые готовы уйти к конкуренту, что, в свою очередь, может обернуться существенной утечкой информации.
Значимость различных проблем ИТ-безопасности
Как показывает статистика (по данным Computer Security), именно ошибки и неграмотные действия персонала становятся причиной наибольших потерь предприятий. Чтобы снизить количество ошибок персонала, необходимо иметь общие представления о безопасных коммуникациях.
Программные средства контроля доступа
Средства контроля доступа к документам в MS Office
Пакет Microsoft Office имеет встроенные средства защиты. Пользователи могут управлять доступом к документам, применяя функцию защиты доступа к файлам. Автор документа может задать пароль, позволяющий открывать документ или вносить в него изменения.
При установке парольной защиты на открытие файла запрашивается пароль и при сохранении файла документ шифруется. При шифровании происходит полное изменение исходного текста. Если просмотреть содержимое такого файла, то увидеть можно будет только несвязную мешанину символов. При открытии такого документа программа запрашивает пароль, и если он верен, то документ расшифровывается.
Контроль доступа к Web-ресурсу
Если вы размещали в Сети свои Web-странички, то, вероятно, сталкивались с тем, что для внесения каких-либо изменений в страничку система требовала ввести логин и пароль. Для чего это нужно? Очевидно, для того чтобы любой желающий не имел возможности испортить ваш ресурс, изменить на нем информацию.
Рассмотрим описанную выше процедуру контроля доступа к информации более подробно. На первом этапе происходит аутентификация пользователя - проверка подлинности входящего в систему пользователя.
Термины "аутентификация" и "идентификация" часто считают синонимами, однако это не совсем верно. Идентификация - это установление тождества объектов на основе совпадения их признаков. Аутентификация - это процедура проверки подлинности данных и субъектов информационного взаимодействия.
Следующий после аутентификации шаг - авторизация (authorization) пользователя для выполнения определенных задач. Авторизация - это процесс определения набора полномочий, которыми обладает пользователь - т.е. к каким типам действий, ресурсов и служб он допускается. После того как система произвела аутентификацию пользователя и он зарегистрирован в системе (logged in a system), определяется набор его прав доступа к ресурсам и действиям в системе. Уровень прав доступа (привилегий) определяется администратором системы на основе корпоративных требований безопасности.
Аппаратные средства контроля доступа
Существует целый ряд систем с усиленной или двухфакторной аутентификацией, при которой пользователь должен иметь дополнительные аппаратные средства - смарт-карту или так называемый идентификационный токен (компактные аппаратные устройства-ключи) и знать определенный персональный идентификационный номер (PIN-код).
Токены используют двухфакторный механизм аутентификации: пользователь знает свой PIN, с помощью которого система опознает определенного владельца токена; в свою очередь токен, получая сигнал от системы, выдает код, который позволяет провести авторизацию.
Биометрические средства контроля доступа
Биометрическая идентификация Идентификация, при которой в качестве контролируемых параметров используются уникальные биологические параметры человека (например, отпечаток пальца). позволяет эффективно решать целый ряд проблем:
· предотвратить проникновение злоумышленников в защищенные системы в результате подделки или кражи документов, карт, паролей; ограничить доступ к информации и обеспечить персональную ответственность за ее сохранность и проч.;
· исключить неудобства, связанные с утерей или порчей ключей, карт, паролей; организовать учет доступа и посещаемости сотрудников.
В качестве уникального биологического кода человека используется целый ряд параметров. Как показано в табл. 1, их можно разделить на физиологические (основанные на анатомической уникальности каждого человека) и поведенческие, основанные на специфике действий человека. Каждый из параметров имеет свои достоинства и недостатки с точки зрения его использования в качестве критерия идентификации.
Таблица 1. Биометрические параметры человека, используемые в системах контроля допуска |
||
Физиологические |
Поведенческие |
|
Отпечатки пальцев или отпечаток ладони |
Подпись |
|
Геометрия кисти руки или геометрия лица |
Тембр голоса |
|
Радужная оболочка глаза или сетчатка глаза |
Клавиатурный почерк |
|
Структура ДНК |
Защита передаваемой информации.
Рассмотрим конкретный пример. Пусть сотрудник А отправляет своему коллеге В важный документ по электронной почте.
Получая письмо, В задает себе следующие вопросы. Действительно ли данный документ был отправлен А, а не другим лицом, которое выдает себя за "А"? Не был ли документ перехвачен и изменен в процессе доставки? Не был ли документ прочитан кем-либо, кроме него? Иными словами, его волнуют вопросы проверки аутентификации отправителя и послания и обеспечения конфиденциальности сообщения. Как будет показано ниже, все перечисленные проблемы решает современная криптография.
Криптография (от греч. cryptos - "тайный") - это наука и технология шифрования важной информации для защиты ее от изменений и неавторизованного доступа.
Криптография служит не только для перевода текстов в нечитаемую зашифрованную форму, но и позволяет решать задачи аутентификации и идентификации пользователей при работе в Сети.
Шифрование с помощью ключа
Для того чтобы пояснить суть процесса шифрования с ключом, приведем простой пример. Выпишем буквы текста и под ними запишем их номера в алфавите. Третьей строчкой запишем буквы ключа, повторяя это слово на всю строку. Под буквами ключа запишем их номера в алфавите, а в четвертой строчке запишем сумму, которая и будет зашифрованным сообщением: 20 19 29 36 и т.д.
Зная ключ и алгоритм, легко расшифровать сообщение: 20 - 3 = 17, а 17-я буква алфавита - это "П" и т.д. Даже если злоумышленнику известен алгоритм, но неизвестен ключ, прочитать сообщение без длительной процедуры подбора ключа невозможно. Таким образом, один алгоритм можно использовать со многими ключами для разных каналов связи, закрепив за каждым корреспондентом отдельный ключ.
Шифрование с симметричным ключом
Рассмотрим конкретный пример: пусть корреспонденты А и В пишут друг другу письмо. Каждый имеет свой определенный секретный ключ, который можно использовать для шифрования данных перед отправкой в Сеть.
Пользователь А зашифровывает сообщение своим секретным ключом, отсылает сообщение по Сети, а получатель В (пользуясь таким же секретным ключом) расшифровывает сообщение. Прежде всего, симметричное шифрование не позволяет решить проблему аутентификации. Кроме того, симметричный ключ должен быть установлен на компьютер отправителя и получателя до обмена секретными сообщениями. Проблема возникает при передаче секретного ключа. Действительно, если А передаст В секретный ключ в незашифрованном виде, его могут перехватить. Если ключ послать в зашифрованном виде, то В не сможет его получить.
Асимметричное шифрование
Асимметричное шифрование, или шифрование с помощью публичного ключа, основано на использовании пары ключей: закрытого (частного) и открытого (публичного).
Послание, зашифрованное частным ключом, можно расшифровать только публичным, и наоборот. Частный ключ известен только владельцу и его нельзя никому передавать, в то время как публичный ключ распространяется открыто и известен всем корреспондентам.
Пару ключей - частный и публичный - можно использовать как для решения задач аутентификации, так и для обеспечения секретности (конфиденциальности).
Согласно первой схеме , пользователь А заранее отсылает публичный ключ своим корреспондентам В и С, а затем отправляет им сообщение, зашифрованное своим частным ключом. Чтобы прочитать такое послание, В и С могут воспользоваться публичным ключом, принадлежащим А (он хранится в общедоступном месте в Сети).
Когда кто-то получает от вас сообщение, зашифрованное вашим частным ключом, он уверен в аутентичности послания. То есть в данном случае шифрование эквивалентно поставленной подписи.
Таким образом, цифровая подпись или электронная подпись - это метод аутентификации отправителя или автора подписи, подтверждающий, что содержание документа не было изменено. Цифровая подпись может быть поставлена как в зашифрованном, так и в открытом послании.
Цифровые сертификаты
Центры сертификации CA (Certification Authority) выдают сертификаты - цифровые данные, подписанные цифровой подписью поручителя, подтверждающие соответствие открытого ключа и информации, идентифицирующей его владельца. Сертификат содержит публичный ключ, информацию о владельце ключа, название сертификационного центра, время, в течение которого сертификат действителен, и т.д. Сертификат является аналогом удостоверения личности.
Классы сертификатов
Личные сертификаты могут быть разных классов. Для получения сертификата низшего уровня требуется минимальный уровень проверки владельца публичного ключа. При выдаче сертификата высшего уровня проверяются не только личные данные владельца, но и уровень его кредитоспособности. В этом случае сертификат может выступать аналогом "кредитной карты", подтверждающей кредитоспособность при сделках в Web.
Экранирование
Формальная постановка задачи экранирования состоит в следующем. Пусть имеется два множества информационных систем. Экран - это средство разграничения доступа клиентов из одного множества к серверам из другого множества. Экран осуществляет свои функции, контролируя все информационные потоки между двумя множествами систем:
Контроль потоков состоит в их фильтрации, возможно, с выполнением некоторых преобразований. Каждый из фильтров, проанализировав данные, может задержать (не пропустить) их, а может и сразу "перебросить" за экран. Помимо функций разграничения доступа, экраны осуществляют протоколирование обмена информацией.
Межсетевые экраны называют также брандмауэрами или файерволами (от англ. firewall). Сегодня брандмауэры выступают в роли защитников границ между локальными сетями и Интернетом. Персональные брандмауэры выполняют те же функции, но на границе между домашним компьютером и Интернетом.
Аппаратный брандмауэр - это устройство, которое подключается к сети физически, фильтрует входящий и исходящий трафик и защищает от нежелательных проникновений во внутреннюю сеть или на персональный компьютер.
Программный брандмауэр выполняет те же функции, но является не внешним аппаратным устройством, а программой, установленной на компьютере.
Брандмауэры, предназначенные для защиты корпоративной сети, часто имеют встроенные proxy-сервер и систему обнаружения вторжений.
Работа системы обнаружения вторжений строится на законах математической статистики. Каждое действие, происходящее в системе, подвергается анализу на соответствие сценарию сетевой атаки.
Лекция 12. «Вирусы и антивирусные программы»
Вредоносные программы: компьютерные вирусы, сетевые черви и троянские программы. Шпионское и рекламное ПО, программы дозвона. Административные меры борьбы с вирусами. Принципы работы антивирусных программ. Эвристический анализ. Программа AVP (AntiViral Toolkit Pro) Лаборатории Касперского. Программа Dr.Web лаборатории Данилова. Контент секьюрити.
КОМПЬЮТЕРНЫЕ ВИРУСЫ
У пользования Всемирной сетью есть и обратная сторона. Вирусы и другие компьютерные паразиты, нежелательная и рекламная информация, программы-шпионы и сетевые атаки - все это угрожает компьютеру, подсоединенному к Интернету.
Прежде всего, необходимо рассмотреть вредоносные программы (или коды). По способу распространения их можно условно разделить на компьютерные вирусы, сетевые черви и троянские программы.
Компьютерные вирусы - это программы, способные размножаться самостоятельно, дописывая свой код к другим файлам или в служебные области диска. Каждый вирус способен выполнять деструктивные или нежелательные действия на зараженном компьютере. Он может демонстрировать видеоэффекты, замедлять работу системы, похищать и уничтожать личную информацию пользователя, а также многое другое.
Существует множество разновидностей вирусов. Самыми старыми являются файловые вирусы. Они размножаются, используя файловую систему. Почти столь же древними являются загрузочные вирусы. Они так названы потому, что заражают загрузочный сектор (boot sector) жесткого диска. Загрузочные вирусы замещают код программы, получающей управление при запуске системы. Таким образом, после перезагрузки системы управление передается вирусу. Следует отметить, что сегодня загрузочные вирусы встречаются очень редко. С середины 90-х годов получили распространение макровирусы. Эти вредители представляют собой программу на макроязыке. Для размножения макровирусы используют встроенные возможности, например, текстового или табличного редактора. Таким способом эти вредители переносят себя из одного зараженного файла в другой. информационный вирус вычислительный защита
Сетевые черви
"Червей" часто называют вирусами, хотя, строго говоря, это не совсем верно. Сетевые черви - это программы, которые не изменяют файлы на дисках, а распространяются в компьютерной сети, проникают в операционную систему компьютера, находят адреса других компьютеров или пользователей и рассылают по этим адресам свои копии. Сетевые черви могут вообще не обращаться к ресурсам компьютера (за исключением оперативной памяти). По среде распространения червей можно условно разделить на следующие типы: Интернет-черви (распространяются по Интернету), LAN-черви (распространяются по локальной сети), IRC-черви (распространяются через чаты Internet Relay Chat).
Есть еще одна крайне опасная разновидность червей - бестелесные. Эти паразиты не используют для своего размножения ни временных, ни постоянных файлов. Бестелесные черви вне компьютера существуют в виде сетевых пакетов, а внутри зараженного компьютера - в виде программного кода прямо в оперативной памяти. Бестелесные черви распространяются очень быстро.
Троянские программы
Троянские программы, "троянские кони" и просто "троянцы" - это вредоносные программы, которые сами не размножаются. Подобно знаменитому Троянскому коню из "Илиады" Гомера, программа-троянец выдает себя за что-то полезное. Чаще всего троянский конь маскируется под новую версию бесплатной утилиты, какую-то популярную прикладную программу или игру.
По выполняемым вредоносным действиям троянские программы можно условно разделить на следующие виды:
· утилиты несанкционированного удаленного администрирования (позволяют злоумышленнику удаленно управлять зараженным компьютером);
· утилиты для проведения DDoS-атак (Distributed Denial of Service - распределенные атаки типа отказ в обслуживании);
· шпионские и рекламные программы, а также программы дозвона;
· серверы рассылки спама;
· многокомпонентные "троянцы"-загрузчики (переписывают из Интернета и внедряют в систему другие вредоносные коды или вредоносные дополнительные компоненты).
Следует отметить, что на практике часто встречаются программы-"троянцы", относящиеся сразу к нескольким перечисленным выше видам.
Утилиты несанкционированного удаленного администрирования
Управление зараженным компьютером обычно осуществляется через Интернет. Вот лишь небольшая часть того, что может сделать злоумышленник на инфицированном ПК: выкрасть любую информацию с компьютера-жертвы (файлы, пароли, реквизиты и т.д.), провести любую файловую операцию (отформатировать жесткий диск, стереть или переименовать какие-то файлы и т.д.), перезагрузить компьютер, подключиться к сетевым ресурсам, использовать зараженный компьютер для атаки на какой-то третий компьютер или сервер в Интернете.
Утилиты для проведения DDoS-атак
Чаще всего объектом атаки типа отказ в обслуживании является web-сервер, например Интернет-магазин.
Шпионское и рекламное ПО, программы дозвона
Шпионские программы втайне наблюдают за действиями пользователя и записывают в свой журнал интересующие злоумышленника события. Существует класс программ - клавиатурные шпионы. Эти вредители следят за пользователем и записывают каждое нажатие клавиши. По команде хакера или через определенное время клавиатурный шпион отсылает собранные сведения на компьютер злоумышленника.
Суть рекламных программ вытекает из их названия: эти компьютерные паразиты любым способом пытаются рекламировать продукты или услуги каких-то третьих компаний. Чтобы добиться своего, рекламные программы могут встроить рекламные объявления в какое-нибудь наиболее часто используемое приложение, например в web-браузер.
Программы дозвона - это компьютерные паразиты, которые пытаются с помощью модема и телефонной линии дозвониться до платного сервера, находящегося чаще всего в другой стране.
Многокомпонентные "троянцы"-загрузчики
Различают компоненты разного уровня. Например, если "троянец" перепишет из сети другой вредоносный код, то это уже будет компонент второго уровня. Иногда бывает, что компонент второго уровня сам скачивает и внедряет еще одного паразита. Это уже компонент третьего уровня.
Административные меры борьбы с вирусами
Говоря о степени ответственности антивирусной защиты, требуется разделять корпоративные и частные системы. Если речь идет об информационной безопасности организации, то необходимо позаботиться не только о технических (программных и аппаратных) средствах, но и об административных.
Например, если кому-то из сотрудников необходимо считать что-либо с CD, он должен обратиться к администратору, который имеет право установить CD и считать данные. При этом за проникновение вирусов с этого CD уже несет ответственность администратор.
Большинство случаев проникновения вирусов в корпоративную сеть связано с выходом в Интернет с рабочей станции. Существуют режимные организации, где доступ к Интернету имеют только неподключенные к корпоративной сети станции. Во многих организациях разрабатывается политика, при которой пользователи имеют доступ лишь к тем ресурсам Интернета, которые нужны им для работы.
Принципы работы антивирусных программ
В России первые вирусы появились в 1988 году, но до середины 90-х годов они не получили широкого распространения. В то время персональных компьютеров, имеющих доступ в Интернет, было очень мало. Пользователи обменивались друг с другом данными и программами с помощью дискет. Объемы информации были невелики, и емкости обычных дискет вполне хватало.
Поворотной точкой стал 2000 год, когда появились эпидемии сетевых червей. Число домашних пользователей и компаний, подключенных к Интернету, к 2000 году сильно возросло. Люди обменивались между собой электронными почтовыми сообщениями и еще не подозревали, какую это таит опасность. Первый современный сетевой червь был создан в самом начале 1999 года (это был Happy99), а первый сетевой червь, вызвавший небывалую по тем временам эпидемию, появился в мае 2000 года. Это был червь, известный под двумя названиями: I love you и LoveLetter.
Электронная почта и Интернет оказались идеальной средой для передачи вредоносных кодов. Сегодня 98% всех вредителей попадает на компьютер именно через электронную почту. Через электронную почту распространяются не только сетевые черви, но также "троянцы" и файловые вирусы.
Как эволюционируют антивирусные программы
Антивирусные программы развивались параллельно с вредоносными кодами.
Первые антивирусные алгоритмы строились на основе сравнения с эталоном (часто эти алгоритмы называют сигнатурным поиском). Каждому вирусу ставилась в соответствие некоторая сигнатура или маска. С одной стороны, маска должна была быть небольшого размера, чтобы база данных всех таких масок не приняла угрожающих размеров. С другой стороны, чем больше размер сигнатуры, тем ниже вероятность ложного срабатывания (когда достоверно незараженный файл определяется антивирусом как инфицированный).
Подобные документы
Общий обзор технических средств информатизации. Пакеты прикладных программ общего назначения. Основы защиты информации и сведений, составляющих государственную тайну. Таблица в Excel по ассортименту швейных ниток. Текстовый документ: разрывная нагрузка.
контрольная работа [91,5 K], добавлен 12.10.2011Защита выделенного помещения. Структурирование защищаемой информации. Перечень сведений, составляющих государственную или коммерческую тайну. Моделирование угроз безопасности информации. Каналы утечки информации. Скорость распространения носителя.
курсовая работа [66,4 K], добавлен 22.02.2011Методология структурного анализа и проектирования информационных систем. Базовый стандарт процессов жизненного цикла программного обеспечения. Цели и принципы формирования профилей информационных систем. Разработка идеальной модели бизнес-процессов.
презентация [152,1 K], добавлен 07.12.2013Разработка программного обеспечения для реализации криптографической защиты информации. Обоснование выбора аппаратно-программных средств. Проектирование модели информационных потоков данных, алгоритмического обеспечения, структурной схемы программы.
дипломная работа [2,0 M], добавлен 10.11.2014Появление компьютерных вирусов, их классификация. Проблема борьбы антивирусных программ с компьютерными вирусами. Проведение сравнительного анализа современных антивирусных средств: Касперского, Panda Antivirus, Nod 32, Dr. Web. Методы поиска вирусов.
курсовая работа [73,2 K], добавлен 27.11.2010Назначение компьютерной сети - объединение нескольких ЭВМ для общего решения информационных, вычислительных, учебных и других задач. Операционные системы - машиннозависимый вид программного обеспечения, ориентированный на конкретные модели компьютеров.
контрольная работа [37,5 K], добавлен 17.12.2009Классификации архитектур вычислительных систем. Организация компьютерных систем. Устройство центрального процессора. Принципы разработки современных компьютеров. Эволюция микропроцессорных систем. Увеличение числа и состава функциональных устройств.
дипломная работа [1,4 M], добавлен 29.01.2009Категории доступа для информации, содержащей государственную тайну, их отражение в законодательстве Российской Федерации. Два вида защиты информации, оценка их эффективности. Аппаратные и программные средства шифрования. Виды утилит по функциям.
контрольная работа [26,0 K], добавлен 19.10.2014Методика исследования и анализа средств аудита системы Windows с целью обнаружения несанкционированного доступа программного обеспечения к ресурсам вычислительных машин. Анализ угрозы информационной безопасности. Алгоритм работы программного средства.
дипломная работа [2,9 M], добавлен 28.06.2011Разработка стратегии и выбор способа автоматизации задачи снабжения для предприятия. Построение функциональной модели бизнес-процессов предметной области. Создание программного средства "1С: Конфигурация ОМТС" для оптимального решения задач снабжения.
дипломная работа [7,2 M], добавлен 12.04.2012