Разработка программы для фиксации попыток атаки на защищаемый объект
Поглядим теперь, как же это все работает. Данная часть кода и выполняет основное назначение программы — фиксацию попыток атаки на защищаемый объект. Так как атакой на систему при проектировании системы, была признана каждая 3-я попытка неудачной авторизации, выполненная подряд (как при переборе по словарю), то здесь и будет применяться данная аксиома. Сначала выполняем приращение счетчика попыток… Читать ещё >
Разработка программы для фиксации попыток атаки на защищаемый объект (реферат, курсовая, диплом, контрольная)
КОСТАНАЙСКИЙ СОЦИАЛЬНО-ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ АКАДЕМИКА З. АЛДАМЖАР ТЕХНИЧЕСКИЙ ФАКУЛЬТЕТ КАФЕДРА ФИЗИКИ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ основы информационной безопасности ТЕМА: разработка программы для фиксации попыток атаки на защищаемый объект Выполнил: Комаров Сергей Борисович
3 курса специальности ВТ и ПО Научный руководитель Рак О.В.
Костанай
СОДЕРЖАНИЕ Введение
1. Разработка программы
1.1 Задание на курсовой проект
1.2 Выбор используемых инструментов
1.3 Описание структуры приложения
1.4 Описание таблиц СУБД MySQL
1.5 Описание алгоритма работы программы Руководство пользователя Заключение Приложение А. Листинги файлов программы Приложение В. Список использованной литературы Приложение С. Блок-схема работы приложения
ВВЕДЕНИЕ
Информационная безопасность — защита конфиденциальности, целостности и доступности информации. [1]
Конфиденциальностьсвойство информационных ресурсов, связанное с тем, что они не станут доступными и не будут раскрыты для неуполномоченных лиц. 1]
Целостность-неизменность информации в процессе ее передачи или хранения. 1]
Доступность-свойство информационных ресурсов, определяющее возможность их получения и использования по требованию уполномоченных лиц. 1]
Обеспечение безопасности информационных систем (ИС) и собственно информации, как их части, является одним из самых важных мероприятий в организации работы любых компьютерных систем. В наше время риск потерять или предать огласке конфиденциальную или просто важную информацию очень велик, благодаря влиянию множества трудно учитываемых факторов. Среди этих причин и постоянная высокая активность вредоносных программ (троянских программ, сетевых червей и т. п.) и действия злоумышленников (т. н. хакеров). Вредоносные программы проникая в ИС могут «открывать дверки» для хакеров или передавать на удаленный компьютер злоумышленника конфиденциальные данные или же закачивать в ИС вирусы, которые в свою очередь могут повреждать как операционные системы, так и сами данные. Для некоторых категорий информационных ресурсов очень важно быть постоянно доступными, т. к. их актуальность может изменяться в кратчайшее время, т. е. здесь уже опасность представляет даже не утеря важной информации, а всего лишь временная недоступность. На такие ресурсы для нападения используются атаки на отказ или временную недоступность (т. н. DOS/DDOS-атаки).И таких аспектов можно обнаружить огромное количество и все они будут требовать к себе отдельного внимания для обеспечения информационной безопасности. А это означает, что обеспечение безопасности ИС вопрос комплексный, включающий в себя организационные и технические мероприятия, которые в свою очередь будут разделяться еще на несколько подкатегорий. Так технические мероприятия можно разделить на применение в работе аппаратного обеспечения, способного обеспечить повышенный уровень защищенности ИС, применение грамотно настроенных программных средств обеспечения безопасности и грамотно продуманная схема организации защищаемого объекта (например создание демилитаризованных зон — DMZ, в случае защиты корпоративной сети и публичных серверов и т. п.). Организационные мероприятия можно разделить на создание режима ограниченного доступа к оборудованию содержащему или оберегающему важные данные и на работу с пользователями ИС, которых нужно научить работать с ИС так, чтобы своими действиями не нарушить безопасность системы (при «помощи» слабых паролей и т. п.) и непременно контролировать их «сознательность» в данном вопросе, т. к. человеческий фактородна из самых слабых частей безопасности ИС. 2]
Как видно из вышеперечисленного, чтобы обеспечить безопасность ИС нужно тщательно прорабатывать все нюансы. Работа в данной области не прекращается ни на минуту. Программное обеспечение обеспечивающее безопасность ИС становится все более совершенным и включают в себя любую функциональность, которая является необходимой в соответствии с веяниями времени. Развиваются ресурсы помогающие специалистам решать проблемы безопасности — например базы данных по вирусам, содержащие ссылки на средства борьбы с ними. Это означает, что актуальность любых разработок связанных с информационной безопасностью весьма высока.
1. РАЗРАБОТКА ПРОГРАММЫ
1.1 Задание на курсовой проект Тема: Разработка программы для фиксации попыток атаки на защищаемый объект.
Необходимо разработать программу, которая будет выполнять записи в log-файл действий идентифицированных как попытки атаки на защищаемый объект.
Итак, необходимо определиться с защищаемым объектом. Так как одним из популярных методов атаки на ИС является атака «грубой силой» или атака перебором паролей по словарным базам, я решил выбрать в качестве защищаемого объекта страницу авторизации пользователей условного ресурса. Разрабатываемое приложение будет заносить в базу данных необходимые сведения о каждом подключающемся пользователе. В случае успешной авторизации, пользователь будет попадать на свою приватную страницу, а данные об этом соединении будут удалены из БД, т. к. авторизация, успешная с первой попытки почти наверняка будет легитимна, в случае неудачи — возврат на страницу входа с выводом сообщения о неверном логине или пароле. Вторая попытка авторизации, так же будет фиксироваться в БД, в случае успеха авторизации — переадресация пользователя в приватную зону, в случае неудачи — возврат на страницу входа с уведомлением. И лишь в случае неуспешной авторизации в третий раз, выполняется запись в базу т. н. «опасных соединений», которая содержит дату, время попытки подключения и ip-адрес хоста с которого пытались подключиться. Для администратора ресурсов на его странице будет предусмотрена кнопка для просмотра БД опасных коннектов.
1.2 Выбор используемых инструментов Реализация приложения будет выполняться на языке программирования PHP. Выбор этого языка программирования не случаен — он является практически стандартным выбором в случае программирования для Веб и имеет развитую систему библиотек кода, позволяющую подключаться к любым СУБД. На этом языке удобно писать любые приложения для Веб, благодаря огромному количеству обучающей литературы на любом языке. Кроме того С-подобный синтаксис языка делает его удобным и даже привычным в применении. Ему легко обучиться и на нем легко создавать программное обеспечение. В качестве среды разработки будет использована IDE NetBeans 6.9, имеющая систему подсказок по функциям языка PHP и подсветку синтаксиса, что делает написание программ более комфортным. Кроме этих программ, нужен веб-сервер, на котором будет проходить тестирование проект. Можно для этих целей использовать эмуляторы типа «Денвера» или бесплатный хостинг, но гораздо проще и удобней на мой взгляд использовать связку именуемую LAMP, что означает Linux + Apache + MySQL + PHP. Эта связка используется практически на любом хостинге, установка и настройка ее под Linux не составляет особых трудностей — системы управления пакетами ПО помогут установить все приложения, а изменение пары строк в конфигурационных файлах — дело пяти минут. Версия веб-сервера Apache — 2, т. к. она стабильна и имеет преимущества по сравнению с популярной ранее версией 1.3 в безопасности. Исходя из выбранного набора инструментов будет использоваться СУБД MySQL 5.1. Эта СУБД разработана в Sun Microsystem поглощенной в 2010 году корпорацией Oracle. Для этой СУБД в языке PHP существуют удобные в применении библиотеки функций имитирующие «живое» общение с СУБД на языке SQL, и в тоже время скрывающие от программиста особенности реализации SQL, что делает программирование намного более удобным. На мой взгляд также важно, что все используемое программное обеспечение является бесплатным для персонального (а некоторое и для коммерческого) использования.
1.3 Описание структуры приложения Программа из пяти файлов имеющих расширение .php:
index.php являющийся страницей авторизации, содержащей минимальный объем php-кода и в основном реализованной на языке разметки HTML, в соответствии с Рисунком 1.
logger.php файл выполняющий основную работу по вычислению потенциально-опасных соединений и ведении записей о них.
config.php маленький конфигурационный файл содержащий информацию необходимую для подключения к СУБД MySQL и используемый другими файлами сценариев.
admin.php имитация страницы администратора ресурса, имеющая в своем наборе кнопку для просмотра записей об опасных соединениях. Сама страничка имитирует личную страницу в какой-либо социальной сети, со стандартными (в данном случае — бездействующими) ссылками и аватаром пользователя. Кроме того она имеет особую по сравнению со страницами обычных пользователей функциональность — возможность просмотра из БД записей о потенциально опасных соединениях. Эта функциональность реализована в виде кнопки «See» по нажатию на которую срабатывает php-скрипт вложенный в тело данной страницы и выводящий в середине страницы список зафиксированных ip-адресов, в соответствии с Рисунком 2.
Рисунок 1. Внешний вид страницы авторизации index.php.
Рисунок 2. Внешний вид страницы администратора admin.php.
authorized.php это имитация страницы пользователя информационного ресурса, из элементов управления представлены только типичные для личных страниц пользователей ссылки. Более подробно создавать страницу пользователя не имеет особого смысла в разрезе целей данного проекта, согласно Рисунка 3.
Рисунок 3. Внешний вид страницы пользователя authorized.php.
1.4 Описание таблиц СУБД MySQL
В СУБД MySQL будет создана база данных с тремя таблицами, каждая из которых будет нести индивидуальное предназначение. Имена таблиц БД:
«users» — как следует из названия, она содержит регистрационные данные пользователей ресурса.
«log_control» — таблица содержащая временные записи о неудачных попытках авторизоваться и счетчик попыток.
«danger_connect» — таблица в которую помещаются записи о потенциально-опасных соединениях, они не удаляются и в любой момент могут быть проверены администратором ресурса.
Команды для создания таблиц в БД выполнялись в консоли клиента mysql-client в виде стандартных SQL-запросов к базе данных в соответствии с Рисунком 4.
Рисунок 4. SQL-запросы на создание таблиц в БД.
Каждая из таблиц содержит несколько полей (столбцов), у каждого из которых индивидуальное предназначение.
Поля таблицы «users»:
«id» — поле содержащее уникальный идентификатор пользователя, тип поля целочисленный INT (4) (в скобках указано число байт выделенных для хранения значения), приращивается самой СУБД при добавлении нового пользователя, благодаря указанию спецификатора AUTO_INCREMENT при создании таблицы.
«user» — естественно содержит имя пользователя, имеет символьный тип CHAR (10).
«pass» — содержит как нетрудно догадаться пароль пользователя, также имеет символьный тип CHAR (15).
Поля таблицы «log_control»:
«time» — поле, хранящее запись о дате и времени попытки подключения, имеет специальный тип для хранения даты и времени DATETIME.
«ip» — поле, хранящее ip-адрес хоста пытавшегося подключиться к защищаемому ресурсу, тип поля символьный CHAR (15).
«num_logon» — поле, хранящее номер текущей попытки соединения для данного ip-адреса, имеет целочисленный тип INT (11).
Поля таблицы «danger_connect»:
«time» — содержит время попытки подключения, которая согласно логике программы является потенциально-опасной, имеет тип DATETIME.
«ip» — ip-адрес хоста совершившего данную попытку, имеет тип INT (15).
Просмотреть список полей таблиц можно SQL-запросами в соответствии с Рисунком 5.
Рисунок 5. SQL-запросы к БД, отображающие структуры полей таблиц.
Кроме вышеперечисленных операций с БД нужно произвести еще одну, без которой работать система не будет — ввести пользователей и пароли для возможности авторизации. Так как данная функциональность не имеет отношения к сущности реализуемого проекта я выбрал самый простой способ создания пользователей ресурса — из консоли управления СУБД посредством SQL-запросов. В соответствии с Рисунком 6 были выполнены запросы к базе данных на создание учетных записей администратора и пользователя информационного ресурса. Затем был выполнен SQL-запрос на выборку всех данных из таблицы «users», с целью продемонстрировать созданные учетные записи. Имя пользователей и пароли для учетных записей были выбраны наугад, а идентификатор каждой учетной записи назначался автоматически.
Рисунок 6. SQL-запросы к БД для создания учетных записей.
1.5 Описание алгоритма работы программы Рассмотрим алгоритм работы программы. Как было выше указано, программа состоит из 5 файлов. Первым вступает в работу файл index. php, который предлагает пользователю ввести логин и пароль. Далее введенные пользователем данные передаются файлу logger. php, который не имеет пользовательского интерфейса, зато выполняет основные функции программы — сверяет логин и пароль с имеющимися в БД и в случае успеха переадресует пользователя или администратора на его страничку (для администратора это admin. php, а для пользователя autorized. php). Данные для соединения с БД эти файлы берут из конфигурационного файла config.php.
Теперь рассмотрим работу каждого файла. Начнем по порядку.
Файл index.php. Это обычный HTML-документ, со вставкой PHP-кода. Структуру HTML подробно рассматривать не будем, так как она вторична, кроме тега
«. Здесь при помощи тега