Информационная безопасность

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 11.04.2012
Размер файла 735,4 K

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

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

Размещено на http://www.allbest.ru/

Введение

В современном мире происходит стремительное развитие компьютерной техники и компьютерных технологий. Важное место среди них занимают технологии вычислительных и информационных сетей. Создание и развитие Internet и World Wide Web привело к новому этапу развития информационного общества. Но, с другой стороны, развитие современных сетевых информационных технологий привело к росту числа компьютерных преступлений и связанных с ними хищений информации, а также материальных потерь.

Интернет и World Wide Web совместно открыли новую дверь, через которую хакеры могут удалённо атаковать домашние компьютеры и корпоративные сети и исследовать, копировать или уничтожать находящиеся в них данные. По оценкам экспертов, до 85% сетей, подключённых к Интернету, уязвимы для таких атак.

По результатам одного исследования, посвященного вопросам компьютерных преступлений, около 58% опрошенных пострадали от компьютерных взломов за последний год. Примерно 18% опрошенных из этого числа заявляют, что потеряли более миллиона долларов в ходе нападений, более 66% потерпели убытки в размере 50 тыс. долларов. Свыше 22% атак были нацелены на промышленные секреты или документы, представляющие интерес прежде всего для конкурентов.

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

Информационная безопасность обеспечивается комплексом социально-правовых, морально-этических норм, а также техническими средствами. На техническом уровне для обеспечения защиты сетевых систем, безопасности удалённого доступа и создания надёжных политик безопасности применяются такие средства защиты локальных и корпоративных сетей, как межсетевые экраны (брандмауэры, файерволы, прокси-сервера) (МСЭ), а также более современные средства - системы обнаружения атак (СОА).

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

Рассматривая техническую проблему безопасности и защиты локальных и корпоративных сетей от атак извне, необходимо рассмотреть проблему сетевой защиты и методы её решения.

1. Задача сетевой защиты и методы её решения

1.1 Брандмауэр

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

Как правило, брандмауэры функционируют на какой-либо UNIX платформе - чаще всего это BSDI, SunOS, AIX, IRIX и т.д., реже - DOS, VMS, WNT, Windows NT. Из аппаратных платформ встречаются INTEL, Sun SPARC, RS6000, Alpha, HP PA-RISC, семейство RISC процессоров R4400-R5000. Помимо Ethernet, многие брандмауэры поддерживают FDDI, Token Ring, 100Base-T, 100VG-AnyLan, различные серийные устройства. Требования к оперативной памяти и объему жесткого диска зависят от количества машин в защищаемом сегменте сети.

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

Все брандмауэры можно разделить на три типа:

1. Фильтры пакетов (packet filter) - простые и кумулятивные;

2. Прокси-брандмауэры и сервера уровня соединения (circuit gateways)

3. Шлюзы приложений и сервера прикладного уровня (application gateways).

Все три категории могут одновременно встретиться в одном брандмауэре.

1.2 Фильтры пакетов - простые и кумулятивные

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

Фильтры пакетов принимают решение о том, пропускать пакет или отбросить, просматривая IP-адреса, флаги или номера TCP портов в заголовке этого пакета. IP-адрес и номер порта - это информация сетевого и транспортного уровней соответственно, но пакетные фильтры используют и информацию прикладного уровня, т.к. все стандартные сервисы в TCP/IP ассоциируются с определенным номером порта.

Для описания правил прохождения пакетов составляются таблицы типа:

Действие

тип пакета

адрес источн.

порт источн.

адрес назнач.

порт назнач.

флаги

Поле «действие» может принимать значения пропустить или отбросить.

Тип пакета - TCP, UDP или ICMP. Флаги - флаги из заголовка IP-пакета.

Поля «порт источника» и «порт назначения» имеют смысл только для TCP и UDP пакетов.

В первую очередь, фильтры отбрасывают пакеты ICMP, UDP и входящие пакеты SYN/ACK, которые инициируют внутренний сеанс связи. Простые фильтры могут только фильтровать пакеты от узла-отправителя, узла-получателя и от порта-получателя. Более интеллектуальная разновидность фильтров может работать, основываясь на информации о входящем интерфейсе, порте-отправителе и даже анализировать состояния флагов заголовков. В качестве примера фильтров такого типа можно привести простые маршрутизаторы, такие как маршрутизаторы доступа любой серии фирмы Cisco или даже UNIX-станции с установленным демоном-брандмауэром. Если маршрутизатор сконфигурирован для работы с конкретным протоколом, внешние узлы могут использовать данный протокол для установления прямого соединения с внутренними узлами. Большинство маршрутизаторов могут формировать журнал аудита и генерировать сигналы тревоги при обнаружении враждебных действий.

Главным недостатком пакетных фильтров является сложность управления: когда правила становятся достаточно сложными, можно ненароком породить конфликтующие политики безопасности или пропустить нежелательные пакеты. Хакеры прекрасно осведомлены о многочисленных дырах в защите при использовании фильтров. Тем не менее применять фильтры пакетов имеет смысл, главным образом, на передней линии обороны перед брандмауэрами. В настоящее время многие брандмауэры содержат фильтры пакетов, тесно интегрированные в их ядро или в сетевую операционную систему (Internetworking Operating System, IOS).

Кумулятивные фильтры являются усовершенствованными версиями фильтров пакетов, исполняют те же самые функции, что и их предшественники, дополнительно отслеживая информацию о состоянии пакетов (такую, как номер последовательности в протоколе TCP). По существу, кумулятивные фильтры отслеживают информацию о сеансах связи. В качестве примера можно привести брандмауэры PIX фирмы Cisco, Fire Wall-1 фирмы Check Point Software и брандмауэр фирмы Watchguard.

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

1.3 Прокси-брандмауэры и сервера уровня соединения

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

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

Сервер уровня соединения представляет из себя транслятор TCP соединения. Пользователь образует соединение с определенным портом на брандмауэре, после чего последний производит соединение с местом назначения по другую сторону от брандмауэра. Во время сеанса этот транслятор копирует байты в обоих направлениях, действуя как провод.

Как правило, пункт назначения задается заранее, в то время как источников может быть много (соединение типа один - много). Используя различные порты, можно создавать различные конфигурации.

Такой тип сервера позволяет создавать транслятор для любого определенного пользователем сервиса, базирующегося на TCP, осуществлять контроль доступа к этому сервису, сбор статистики по его использованию.

1.4 Шлюзы приложений и сервера прикладного уровня

Шлюзы приложений являются усиленной версией прокси-брандмауэров и, как и в случае прокси-брандмауэров, каждое приложение должно быть специально инсталлировано для работы через них. Разница заключается в том, что шлюзы приложений содержат встроенные модули, которые проверяют каждый запрос и ответ. Например, только загружаемые данные могут быть исходящим потоком по протоколу FTP. Шлюзы приложений просматривают все данные на уровне приложения стека протоколов и являются посредниками для внешних пользователей, перехватывая пакеты и пересылая их приложению. Таким образом, внешние пользователи не смогут установить связь напрямую в защищенной зоне. То, что брандмауэр фактически просматривает всю информацию приложения, означает, что он различает такие приложения, как FTP и SMTP. Вследствие этого шлюзы приложений обеспечивают защиту любого приложения, которое они поддерживают.

Брандмауэры с серверами прикладного уровня используют сервера конкретных сервисов (proxy server) - TELNET, FTP и т.д., запускаемые на брандмауэре и пропускающие через себя весь трафик, относящийся к данному сервису. Таким образом, между клиентом и сервером образуются два соединения: от клиента до брандмауэра и от брандмауэра до места назначения. Полный набор поддерживаемых серверов различается для каждого конкретного брандмауэра.

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

При описании правил доступа используются такие параметры, как

· название сервиса,

· имя пользователя,

· допустимый временной диапазон использования сервиса,

· компьютеры, с которых можно пользоваться сервисом,

· схемы аутентификации.

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

1.5 Системы обнаружения компьютерных атак (СОА)

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

Технология обнаружения атак должна решать следующие задачи:

· Распознавание известных атак и предупреждение о них соответствующего персонала.

· «Понимание» зачастую непонятных источников информации об атаках.

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

· Возможность управления средствами защиты не-экспертами в области безопасности.

· Контроль всех действий субъектов корпоративной сети (пользователей, программ, процессов и т.д.).

Очень часто системы обнаружения атак могут выполнять функции, существенно расширяющие спектр их применения. Например:

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

· Контроль узлов сети с неустановленными обновлениями или узлов с устаревшим программным обеспечением.

· Блокирование и контроль доступа к определенным узлам Internet. Хотя системам обнаружения атак далеко до межсетевых экранов и систем контроля доступа к различным URL, например, WEBsweeper, они могут выполнять частичный контроль и блокирование доступа некоторых пользователей корпоративной сети к отдельным ресурсам Internet, например, к Web-серверам порнографического содержания. Это бывает необходимо тогда, когда в организации нет денег на приобретение и межсетевого экрана и системы обнаружение атак, и функции МСЭ разносятся между системой обнаружения атак, маршрутизатором и proxy-сервером. Кроме того, системы обнаружения атак могут контролировать доступ сотрудников к серверам на основе ключевых слов. Например, sex, job, crack и т.д.

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

1.6 Классификация систем обнаружения атак (СОА)

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

1. host-based, то есть обнаруживающие атаки, направленные на конкретный узел сети,

2. network-based, то есть обнаруживающие атаки, направленные на всю сеть или сегмент сети.

Системы обнаружения атак, контролирующие отдельный компьютер, как правило, собирают и анализируют информацию из журналов регистрации операционной системы и различных приложений (Web-сервер, СУБД и т.д.). По такому принципу функционирует RealSecure OS Sensor. Однако в последнее время стали получать распространение системы, тесно интегрированные с ядром ОС, тем самым, предоставляя более эффективный способ обнаружения нарушений политики безопасности. Причем такая интеграция может быть реализовано двояко. Во-первых, могут контролироваться все системные вызовы ОС (так работает Entercept) или весь входящий / исходящий сетевой трафик (так работает RealSecure Server Sensor). В последнем случае система обнаружения атак захватывает весь сетевой трафик напрямую с сетевой карты, минуя операционную систему, что позволяет уменьшить зависимость от нее и тем самым повысить защищенность системы обнаружения атак.

Системы обнаружения атак уровня сети собирают информацию из самой сети, то есть из сетевого трафика. Выполняться эти системы могут на обычных компьютерах (например, RealSecure Network Sensor), на специализированных компьютерах (например, RealSecure for Nokia или Cisco Secure IDS 4210 и 4230) или интегрированы в маршрутизаторы или коммутаторы (например, CiscoSecure IOS Integrated Software или Cisco Catalyst 6000 IDS Module). В первых двух случаях анализируемая информация собирается посредством захвата и анализа пакетов, используя сетевые интерфейсы в беспорядочном (promiscuous) режиме. В последнем случае захват трафика осуществляется с шины сетевого оборудования.

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

Практически все системы обнаружения атак основаны на сигнатурном подходе.

1.7 Варианты реакций на обнаруженную атаку

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

· Уведомление на консоль (включая резервную) системы обнаружения атак или на консоль интегрированной системы (например, межсетевого экрана).

· Звуковое оповещение об атаке.

· Генерация управляющих последовательностей SNMP для систем сетевого управления.

· Генерация сообщения об атаке по электронной почте.

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

· Обязательная регистрация обнаруживаемых событий. В качестве журнала регистрации могут выступать:

o текстовый файл,

o системный журнал (например, в системе Cisco Secure Integrated Software),

o текстовый файл специального формата (например, в системе Snort),

o локальная база данных MS Access,

o SQL-база данных (например, в системе RealSecure).

Надо только учитывать, что объемы регистрируемой информации требуют, как правило, SQL-базу - MS SQL или Oracle.

· Трассировка событий (event trace), т.е. запись их в той последовательности и с той скоростью, с которыми их реализовывал злоумышленник. Затем администратор в любое заданное время может прокрутить (replay или playback) необходимую последовательность событий с заданной скоростью (в реальном режиме времени, с ускорением или замедлением), чтобы проанализировать деятельность злоумышленника. Это позволит понять его квалификацию, используемые средства атаки и т.д.

· Прерывание действий атакующего, т.е. завершение соединения. Это можно сделать, как:

o перехват соединения (session hijacking) и посылка пакета с установленным флагом RST обоим участникам сетевого соединения от имени каждого из них (в системе обнаружения атак, функционирующей на уровне сети);

o блокировка учетной записи пользователя, осуществляющего атаку (в системе обнаружения атак на уровне узла). Такая блокировка может быть осуществлена либо на заданный промежуток времени, либо до тех пор, пока учетная запись не будет разблокирована администратором. В зависимости от привилегий, с которыми запущена система обнаружения атак, блокировка может действовать как в пределах самого компьютера, на который направлена атака, так и в пределах всего домена сети.

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

· Блокирование сетевого трафика так, как это реализовано в межсетевых экранах. Этот вариант позволяет ограничить трафик, а также адресатов, которые могут получить доступ к ресурсам защищаемого компьютера, позволяя выполнять функции доступные в персональных межсетевых экранах.

1.8 Характеристики средств сетевой защиты

Ряд брандмауэров позволяет также организовывать виртуальные корпоративные сети (Virtual Private Network), т.е. объединить несколько локальных сетей, включенных в INTERNET в одну виртуальную сеть. VPN позволяют организовать прозрачное для пользователей соединение локальных сетей, сохраняя секретность и целостность передаваемой информации с помощью шифрования. При этом при передаче по INTERNET шифруются не только данные пользователя, но и сетевая информация - сетевые адреса, номера портов и т.д.

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

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

Перечислим некоторые достоинства и недостатки рассмотренных средств сетевой защиты.

Достоинства пакетных фильтров:
· относительно невысокая стоимость;
· гибкость в определении правил фильтрации;
· небольшая задержка при прохождении пакетов.
Недостатки пакетных фильтров:
· локальная сеть видна (маршрутизируется) из INTERNET;
· правила фильтрации пакетов трудны в описании, требуются очень хорошие знания технологий TCP и UDP;
· при нарушении работоспособности брандмауэра все компьютеры за ним становятся полностью незащищенными либо недоступными;
· аутентификацию с использованием IP-адреса можно обмануть использованием IP-спуфинга (атакующая система выдает себя за другую, используя ее IP-адрес);
· отсутствует аутентификация на пользовательском уровне.
Достоинства серверов прикладного уровня:
· локальная сеть невидима из INTERNET;
· при нарушении работоспособности брандмауэра пакеты перестают проходить через брандмауэр, тем самым не возникает угрозы для защищаемых им машин;
· защита на уровне приложений позволяет осуществлять большое количество дополнительных проверок, снижая тем самым вероятность взлома с использованием дыр в программном обеспечении;
· аутентификация на пользовательском уровне;
· может быть реализована система немедленного предупреждения о попытке взлома.
Недостатки серверов прикладного уровня
· более высокая, чем для пакетных фильтров стоимость;
· невозможность использовании протоколов RPC и UDP;
· производительность ниже, чем для пакетных фильтров.
Достоинства систем обнаружения атак:
Коммутация позволяет управлять крупномасштабными сетями, как несколькими небольшими сетевыми сегментами. В результате бывает трудно определить наилучшее место для установки системы, обнаруживающей атаки в сетевом трафике. Иногда могут помочь специальные порты (span ports) на коммутаторах, но не всегда. Обнаружение атак на уровне конкретного узла обеспечивает более эффективную работу в коммутируемых сетях, так как позволяет разместить системы обнаружения только на тех узлах, на которых это необходимо.
Системы сетевого уровня не требуют, чтобы на каждом хосте устанавливалось программное обеспечение системы обнаружения атак. Поскольку для контроля всей сети число мест, в которых установлены IDS невелико, то стоимость их эксплуатации в сети предприятия ниже, чем стоимость эксплуатации систем обнаружения атак на системном уровне. Кроме того, для контроля сетевого сегмента, необходим только один сенсор, независимо от числа узлов в данном сегменте.
Сетевой пакет, будучи ушедшим с компьютера злоумышленника, уже не может быть возвращен назад. Системы, функционирующие на сетевом уровне, используют «живой» трафик при обнаружении атак в реальном масштабе времени. Таким образом, злоумышленник не может удалить следы своей несанкционированной деятельности. Анализируемые данные включают не только информацию о методе атаки, но и информацию, которая может помочь при идентификации злоумышленника и доказательстве в суде. Поскольку многие хакеры хорошо знакомы с механизмами системной регистрации, они знают, как манипулировать этими файлами для скрытия следов своей деятельности, снижая эффективность систем системного уровня, которым требуется эта информация для того, чтобы обнаружить атаку.
Системы, функционирующие на уровне сети, обнаруживают подозрительные события и атаки по мере того, как они происходят, и поэтому обеспечивают гораздо более быстрое уведомление и реагирование, чем системы, анализирующие журналы регистрации. Например, хакер, инициирующий сетевую атаку типа «отказ в обслуживании» на основе протокола TCP, может быть остановлен системой обнаружения атак сетевого уровня, посылающей TCP-пакет с установленным флагом Reset в заголовке для завершения соединения с атакующим узлом, прежде чем атака вызовет разрушения или повреждения атакуемого узла. Системы анализа журналов регистрации не распознают атаки до момента соответствующей записи в журнал и предпринимают ответные действия уже после того, как была сделана запись. К этому моменту наиболее важные системы или ресурсы уже могут быть скомпрометированы или нарушена работоспособность системы, запускающей систему обнаружения атак на уровне узла. Уведомление в реальном масштабе времени позволяет быстро среагировать в соответствии с предварительно определенными параметрами. Диапазон этих реакций изменяется от разрешения проникновения в режиме наблюдения для того, чтобы собрать информацию об атаке и атакующем, до немедленного завершения атаки.
И, наконец, системы обнаружения атак, функционирующие на сетевом уровне, не зависят от операционных систем, установленных в корпоративной сети, так как они оперируют сетевым трафиком, которым обмениваются все узлы в корпоративной сети. Системе обнаружения атак все равно, какая ОС сгенерировала тот или иной пакет, если он в соответствие со стандартами, поддерживаемыми системой обнаружения. Например, в сети могут работать ОС Windows 98, Windows NT, Windows 2000 и XP, Netware, Linux, MacOS, Solaris и т.д., но если они общаются между собой по протоколу IP, то любая из систем обнаружения атак, поддерживающая этот протокол, сможет обнаруживать атаки, направленные на эти ОС.
Совместное применение систем обнаружения атак на уровне сети и уровне узла повысит защищенность вашей сети.
Рассмотрев основные виды сетевых атак и способов защиты от них, можно сделать определённые выводы:
1. Несмотря на усилия разработчиков, практический любое программное средство защиты от сетевых атак обладает набором уязвимостей, воспользовавшись которыми, злоумышленник может атаковать защищаемую компьютерную сеть.
2. Значительное влияние на проблему обеспечения сетевой безопасности оказывает человеческий фактор.
3. Среди рассмотренных средств сетевой защиты наиболее совершенным и современным типом подобного средства является система обнаружения атак (СОА), которая является более лучшим выбором, чем межсетевой экран (МСЭ).

2. Постановка задачи

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

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

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

2.1 Концепция программного средства

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

Системы обнаружения атак (СОА) определяются в англоязычной документации как NIDS - Network Intrusion Detection System. Большинство СОА создано для работы в ОС UNIX, потому что эта ОС обладает более развитым набором сетевых программных средств. Как правило, СОА представляют из себя анализаторы сетевых пакетов (чаще всего IP-пакетов), совмещённые с базой данных сигнатур атак. К таким системам относятся программы Shadow, Snort [9]. Существуют специальные организации, отслеживающие появление новых типов атак и описывающие их. СОА расширяемы за счёт пополнения встроенных баз данных сигнатур атак. Так, программа Snort обладает специализированным встроенным высокоуровневым языком написания правил [10], по которым оцениваются входящие пакеты и принимаются решения о наличии / отсутствии атаки. Программа Snort бесплатна и имеет открытые исходные коды. Однако она довольно сложна в применении и, кроме того, её настройка и настройка любой иной аналогичной программы на рынке СОА затруднена из-за того, что они требуют дополнительного приобретения специализированных отладочных генераторов сетевых атак (например, таких как TigerTools).

Таким образом, задача создания собственной системы обнаружения атак включает в себя следующие аспекты:

1. Создание анализатора сетевых пакетов на третьем уровне модели OSI.

2. Создание базы данных правил регистрации атак.

3. Создание отладочной системы генерации атак.

4. Создание системы управления и регистрации.

2.2 Сетевое программирование под OC Windows

Поскольку наиболее распространённой в мире ОС является ОС Windows, то рассмотрим ключевой аспект создания СОА - создание генератора (анализатора) сетевых пакетов средствами ОС Windows.

Для этого существуют по крайней мере 2 варианта библиотек низкоуровневого сетевого программирования:

1. Библиотека Windows Sockets v2.0 (Microsoft Corporation) [7].

2. Библиотека Windows Packet Capture Library (Torino Netgroup) [4].

На базе этих двух вариантов реализовано множество низкоуровневых сетевых приложений для ОС Windows [5] - анализаторы, снифферы, СОА, и т.д. Наиболее ярко такая двойственная возможность реализации проявилась в программном продукте daSniff [8], который реализован обоими способами.

Оба подхода в реализации низкоуровневых сетевых приложений имеют свои достоинства и недостатки. Так, библиотека Windows Sockets v2.0 требует для низкоуровневых сетевых приложений права Администратора при работе под Windows 2000 и не способна в большинстве случаев перехватывать исходящие пакеты. Библиотека Windows Packet Capture Library не поддерживает Loopback Adapter.

Общим недостатком обоих вариантов реализации явлется то обстоятельство, что для отладки полноценного анализатора пакетов необходимо иметь как минимум два (а не один) компьютера, объединённых в локальную сеть. В случае отсутствия второго компьютера совершенно невозможно организовать отладочную атаку на проектируемую СОА для практически всех протоколов. Единственным (известным) исключением является протокол ICMP, реализованный с помощью библиотеки Windows Sockets v2.0. В этом случае возможно на одном и том же компьютере как генерировать отладочную атаку средствами протокола ICMP, так и перехватывать её. Все остальные протоколы (в случае использования только одного компьютера) на низком уровне позволяют (при использовании библиотеки Windows Sockets v2.0) лишь генерировать атаки, а перехватывать - только на высоком уровне (что практически не имеет смысла). И только применив второй компьютер (с библиотекой Windows Sockets v2.0), подключённый к первому по локальной сети, можно перехватывать атакующие пакеты на низком (а не на высоком) уровне.

Библиотека Windows Packet Capture Library [4] вообще не предполагает никаких вариантов одновременной работы на одном компьютере отладочного генератора атак вместе с системой обнаружения атак.

Теоретически можно попробовать обойти это принципиальное ограничение (требование наличия двух компьютеров, объединённых в локальную сеть) при помощи такого специализированного ПО, как Virtual PC (или VMWare для Linux) - программы, которая эмулирует несколько виртуальных компьютеров на одном. Однако подобная задача выходит за рамки данного дипломного проекта.

Другой аспект создания собственной СОА - это разработка и применение сигнатур атак. После создания низкоуровневого сетевого анализатора пакетов задача регистрации атак сводится к анализу полей входящих пакетов (IP) и их последовательности.

Для любой дипломной работы наибольший практический интерес представляет такой программный продукт, который может полноценно работать на одном компьютере (не требуя наличия нескольких компьютеров). Из этого краткого обзора средств реализации низкоуровневого сетевого программирования под ОС Windows видно, что единственным подходящим вариантом является клиент-серверная реализация системы «отладочный генератор атак - система обнаружения атак» на основе протокола ICMP, реализованного низкоуровневыми средствами библиотеки Windows Sockets v2.0. Только этот вариант из всех рассмотренных позволяет создать полноценную систему обнаружения атак, основанную на использовании протокола IP и ICMP. Ценность такой системы состоит в том, что впоследствии она может быть легко переделана под протоколы TCP и UDP (с подключением второго компьютера по локальной сети) из-за концептуального сходства формата полей протокола ICMP и протоколов TCP и UDP.

Библиотека Windows Sockets v2.0 [7] - это стандартное средство для программирования сетевых приложений для ОС MS Windows. Помимо стандартных и общеизвестных функций эта библиотека содержит также некоторые малоизвестные низкоуровневые возможности. Существуют некоторые удачные их описания [3] и примеры (см. программу «Ping» в [7]).

Для создания низкоуровнего сетевого ICMP-приложения необходимо ознакомиться в общих чертах с работой протокола IP [14], затем подробно изучить протокол IP [12] и протокол ICMP [13], а также изучить сетевые атаки на базе протокола ICMP [6].

Протокол ICMP - это служебный протокол, применяемый в основном для сообщений об ошибках и для настройки протоколов TCP и UDP. Он также применяется в известных утилитах Ping и Traceroute. Протокол ICMP - это протокол сетевого (третьего) уровня, также, как и протокол IP. Это проявляется тем, что для протокола ICMP не существует понятия «порт» и «вложенное сообщение» (в отличие от протоколов транспортного (четвёртого) уровня - TCP и UDP). Однако формат полей пакета концептуально тот же, что и для протоколов TCP и UDP - в пакете сначала идёт заголовок IP, затем - заголовок ICMP. ICMP-пакет не может нести полезное сообщение (в отличие от протоколов TCP и UDP), но зато он предусматривает поля «тип» и «код», каждое из которых может принимать значения от 0 до 127. Многие комбинации полей «тип» и «код» имеют предопределённое значение [3]. Все ICMP-сообщения делятся на 2 группы - ошибки и запросы [3]. Библиотека Windows Sockets v2.0 не может регистрировать ICMP-пакеты типа «ошибка», сгенерированные на том же компьютере, а только ICMP-пакеты типа «запрос» (также за некоторыми исключениями).

2.3 Атакующие воздействия для программного средства

Разрабатываемое в рамках данной дипломной работы программное средство будет работать исключительно с протоколом ICMP, т.к. только этот протокол допускает полноценную работу с ним на одном компьютере. Поэтому мы рассмотрим сетевые атаки на базе протокола ICMP [6] и разработаем способы их обнаружения. К таким атакам относятся: лавинное затопление ICMP-пакетами, атака «Smurf», подмена IP-адреса и другие.

2.3.1 Атака Smurf

Атака Smurf (рис. 1) основана на использовании возможности протокола ICMP рассылать дейтаграммы по нескольким адресам. Ответить на один широковещательный эхо-запрос ICMP может большое количество хостов. Эта возможность используется для проведения атаки отказа в обслуживании на избранный хост или сеть.

Сначала злоумышленник должен сформировать широковещательный эхо-запрос ICMP к хостам атакуемой сети, подменив при этом действительный IP-адрес своего компьютера.

Рис. 1. Схема атаки Smurf

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

· нарушитель отправляет большое количество широковещательных эхо-запросов;

· внешний узел (маршрутизатор) позволяет прохождение входящего трафика с указанием широковещательного адреса;

· маршрутизатор работает в крупной сети, хосты которой одновременно отправляют большое количество эхо-ответов (с другой стороны, того же результата можно добиться, использовав несколько маршрутизаторов более мелких сетей);

· канал, с помощью которого атакуемый узел соединен с Internet, имеет низкую пропускную способность. Точнее, количество одновременно отправленных пакетов должно превысить максимальную пропускную способность этого канала. Хотя можно «затопить» пакетами любое Internet-соединение при наличии достаточного трафика, но для соединений с меньшей пропускной способностью сделать это будет проще.

Вот еще одна причина, по которой следует запретить вхождение извне пакетов с широковещательным адресом - это не позволит использовать вашу сеть для распространения атаки Smurf.

2.3.2 Атака Tribe Flood Network

Атака Tribe Flood Network (TFN) является еще одной атакой отказа в обслуживании, в которой используются ICMP-сообщения (рис. 2). В отличие от атаки Smurf, организуемой с одного компьютера с применением одной сети для ее распространения, атака TFN использует большое количество распределенных хостов. Эти хосты часто называют хостами-демонами. Поэтому термин распределенная атака отказа в обслуживании (DDoS) наиболее точно определяет использование нескольких рассредоточенных в Internet хостов для совместного осуществления атаки.

Рис. 2. Схема атаки Tribe Flood Network

Для проведения этой атаки требуется установка программы на ведущем компьютере - «мастере» TFN и на нескольких агентах - хостах-демонах TFN. Как правило, в качестве хостов-демонов используются скомпрометированные компьютеры. Мастер TFN дает хостам-демонам команду на атаку (часто одновременную) избранной цели. Взаимодействие между мастером и хостами-демонами осуществляется с помощью эхо-ответов ICMP. Демоны TFN могут организовать UDP-наводнение, SYN-наводнение, наводнение эхо-запросами ICMP или атаку Smurf.

Мастер информирует хосты-демоны о начале атаки с помощью эхо-ответов ICMP. При этом тип атаки определяется по значению поля идентификации в ICMP-заголовке эхо-ответа. В области данных такого эхо-ответа передаются необходимые аргументы.

Почему для организации атаки вместо эхо-запросов применяются эхо-ответы? Дело в том, что на многих узлах в целях обеспечения безопасности блокируются внешние эхо-запросы ICMP. В то же время, прохождение эхо-ответов часто разрешается. Это дает возможность локальным пользователям узнать о доступности внешних хостов, но весьма опасно с точки зрения рассылки неконтролируемых эхо-запросов ICMP.

Одновременное использование нескольких распределенных хостов для наводнения пакетами избранной цели позволит провести успешную атаку отказа в обслуживании против хоста или сети. Чтобы получить более подробную информацию об атаке TFN, зайдите на сайт www.cert.org и обратитесь к отчету об инциденте IN-99-07.

2.3.3 Атака WinFreeze

Атака WinFreeze, по существу, заставляет избранный компьютер атаковать самого себя.

router > victim.com: icmp: redirect 243.148.16.61 to host victim.com

router > victim.com: icmp: redirect 110.161.152.156 to host victim.com

router > victim.com: icmp: redirect 245.211.87.115 to host victim.com

router > victim.com: icmp: redirect 49.130.233.15 to host victim.com

router > victim.com: icmp: redirect 149.161.236.104 to host victim.com

router > victim.com: icmp: redirect 48.35.126.189 to host victim.com

router > victim.com: icmp: redirect 207.172.122.197 to host victim.com

router > victim.com: icmp: redirect 113.27.175.38 to host victim.com

router > victim.com: icmp: redirect 114.102.175.168 to host victim.com

С помощью ICMP-сообщения redirect хост-отправитель уведомляется о выборе для доставки сообщения неоптимального маршрутизатора и о необходимости добавить адрес оптимального маршрутизатора в таблицу маршрутизации. При наводнении этими ICMP-сообщениями о перенаправлении атака WinFreeze может вызвать отказ в обслуживании уязвимого хоста, работающего под управлением Windows NT. Атака выполняется в сети атакуемого компьютера, а ICMP-сообщения приходят от имени маршрутизатора этой сети. При получении массы сообщений redirect атакованный хост пытается внести изменения в таблицу маршрутизации, и ресурсы центрального процессора в основном тратятся на обработку поступающих пакетов.

В этом примере маршрутизатор router заставляет хост victim.com перенаправить отправляемые им (хостом) пакеты на самого себя. В результате при попытке внести многочисленные изменения в таблицу маршрутизации хост victim. com может не справиться с другими возложенными на него задачами.

2.3.4 Атака ICMP Flood

Атака ICMP Flood представляет из себя лавинное затопление ICMP-пакетами. Как правило, обычные ICMP-пакеты поступают в локальную сеть извне не быстрее, чем один пакет в минуту. Непрерывное же поступление большого количества пакетов будет означать, скорее всего, атаку лавинным затоплением.

3. Модель системы

Система обнаружения атак (СОА) представляет из себя клиент-серверную пару приложений - отладочный генератор атак (клиент) и, собственно, система обнаружения атак (сервер). Обе программы являются консольными Win32-приложениями на базе библиотеки Windows Sockets v2.0. Кроме того, предусмотрена система удалённого управления и администрирования клиентом на базе протокола HTTP и многопоточной структуры клиента. Это значит, что клиент запускает дополнительную нить (тред), в которой работает соответствующий HTTP-сервер, который и даёт возможность удалённо и динамически администрировать и управлять им.

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

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

Рис. 3. Диаграмма задач, решаемых системой

Рис. 4. Диаграмма классов и их взаимодействия

3.1 Схема взаимодействия модулей системы

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

Основные модули поделены между клиентом и сервером: и клиент, и сервер имеют по 2 основных модуля. И сервер, и клиент являются многопоточными приложениями, точнее, они содержат по 2 нити, при этом в каждой нити функционирует один основной модуль. Главная нить клиента (та, которая образуется при запуске) содержит HTTP-сервер, который порождает вспомогательную нить при начале каждого HTTP-подключения и закрывает её при его окончании - это стандартный приём для одновременной работы с множеством клиентов. Вспомогательная нить получает от пользователя параметры нужных последовательностей ICMP-пакетов и отправляет эти последовательности на сервер.

Главная нить сервера содержит модуль обнаружения атак, который и является ядром всей системы и сутью дипломной работы. Атаки - это в данном случае просто определённые последовательности ICMP-пакетов с определёнными значениями полей пакетов IP и ICMP. Едва ли существует какой-либо принципиально иной способ обнаружения атак. Вся сложность состоит в том, чтобы наиболее точно сформулировать правила, по которым будет выноситься решение о том, атака это или нет.

Вспомогательная нить сервера содержит POP3-сервер электронной почты, который стартует в начале работы сервера и даёт возможность получить сообщения об атаке при помощи программы MS Outlook Express. Когда главная нить сервера обнаруживает атаку, она формирует в почтовом ящике сервера соответствующее сообщение, откуда его забирает вспомогательная нить при взаимодействии с программой MS Outlook Express.

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

Вспомогательные модули инкапсулируют отдельные логические части основных модулей.

3.2 Описание модулей

Клиент - raw_send.exe:

Модули:

1. raw_send.cpp - содержит методы: сборки «вручную» ICMP-пакетов, отправки пакетов, подсчёта контрольной суммы.

2. packet.cpp - содержит методы: вывода на экран содержимого пакета, создания «сырого» сокета, «привязки» сырого сокета.

3. http_plugin.cpp - всё остальное: полное описание HTTP-сервера (инициализация, приём подключений, создание вспомогательной нити и её закрытие, закрытие), полное описание работы вспомогательной нити (приём, передача), расшифровка команд и вызов функций из других модулей.

4. HTM-файлы: удалённая консоль управления.

Сервер - raw_recv.exe:

Модули:

1. raw_recv.cpp - описание главной нити, запуск вспомогательной, создание «сырого» сокета, «привязка» его, получение пакетов, обнаружение атак, формирование сообщения электронной почты.

2. pop3_main.cpp - вспомогательная нить - POP3-сервер: создание, приём-передача, закрытие.

3. pop3_module.cpp - pop3-протокольная реализация сервера.

4. server.cpp - базовые функции pop3-сервера.

5. packet.cpp - печать пакета, создание «сырого» сокета, «привязка» его.

3.3 Описание программных элементов

Сетевое взаимодействие клиента и сервера осуществляется на базе т.н. «сырых» сокетов. «Сырые» сокеты (raw sockets) - это просто специальный режим обычных сокетов. Обычные сокеты работают между пятым и шестым уровнем модели OSI, скрывая от пользователя низкоуровневые операции. «Сырые» сокеты работают на третьем уровне модели OSI - на сетевом уровне (это протокол IP), позволяя «вручную» формировать (или читать при приёме) всё содержимое IP-пакета - сам IP-заголовок и всё, что вложено в IP-пакет (в данном случае - ICMP-пакет).

«Сырой» сокет создаётся вызовом функции

SOCKET s;

s = WSASocket (AF_INET, SOCK_RAW, IPPROTO_RAW, NULL, 0,0);

В Windows 2000 «cырые» сокеты относятся к вопросам безопасности, так как могут быть использованы во вред, и поэтому для их создания необходимы права Администратора.

Кроме создания, необходимо также установить режим включения заголовка IP_HDRINCL:

BOOL bOpt;

bOpt = TRUE; // If TRUE (while setting IP_HDRINCL), IP header is


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.