Введение
Атака на компьютерную систему - это действие, предпринимаемое злоумышленником, которое заключается в поиске и использовании той или иной уязвимости. Таким образом, атака - это реализация угрозы. Заметим, что такое толкование атаки (с участием человека, имеющего злой умысел), исключает присутствующий в определении угрозы элемент случайности, но, как показывает опыт, часто бывает невозможно различить преднамеренные и случайные действия, и хорошая система защиты должна адекватно реагировать на любое из них.
Далее, исследователи обычно выделяют три основных вида угроз безопасности - это угрозы раскрытия, целостности и отказа в обслуживании.
Угроза раскрытия заключается том, что информация становится известной тому, кому не следовало бы ее знать. В терминах компьютерной безопасности угроза раскрытия имеет место всякий раз, когда получен доступ к некоторой конфиденциальной информации, хранящейся в вычислительной системе или передаваемой от одной системы к другой. Иногда вместо слова "раскрытие" используются термины "кража" или "утечка".
Угроза целостности включает в себя любое умышленное изменение (модификацию или даже удаление) данных, хранящихся в вычислительной системе или передаваемых из одной системы в другую. Обычно считается, что угрозе раскрытия подвержены в большей степени государственные структуры, а угрозе целостности - деловые или коммерческие.
Угроза отказа в обслуживании возникает всякий раз, когда в результате некоторых действий блокируется доступ к некоторому ресурсу вычислительной системы. Реально блокирование может быть постоянным, так чтобы запрашиваемый ресурс никогда не был получен, или оно может вызвать только задержку запрашиваемого ресурса, достаточно долгую для того, чтобы он стал бесполезным. В таких случаях говорят, что ресурс исчерпан.
Типичными угрозами в среде Интернета являются:
· Сбой в работе одной из компонент сети. Сбой из-за ошибок при проектировании или ошибок оборудования или программ может привести к отказу в обслуживании или компрометации безопасности из-за неправильного функционирования одной из компонент сети. Выход из строя брандмауэра или ложные отказы в авторизации серверами аутентификации являются примерами сбоев, которые оказывают влияние на безопасность.
· Сканирование информации. Неавторизованный просмотр критической информации злоумышленниками или авторизованными пользователями может происходить, с использованием различных механизмов - электронное письмо с неверным адресатом, распечатка принтера, неправильно сконфигурированные списки управления доступом, совместное использование несколькими людьми одного идентификатора и т.д.
· Использование информации не по назначению - использование информации для целей, отличных от авторизованных, может привести к отказу в обслуживании, излишним затратам, потере репутации. Виновниками этого могут быть как внутренние, так и внешние пользователи.
· Неавторизованное удаление, модификация или раскрытие информации - специальное искажение информационных ценностей, которое может привести к потере целостности или конфиденциальности информации.
· Проникновение - атака неавторизованных людей или систем, которая может привести к отказу в обслуживании или значительным затратам на восстановление после инцидента.
· Маскарад - попытки замаскироваться под авторизованного пользователя для кражи сервисов или информации, или для инициации финансовых транзакций, которые приведут к финансовым потерям или проблемам для организации.
1. Обнаружение атак
Исторически так сложилось, что технологии, по которым строятся системы обнаружения атак, принято условно делить на две категории: обнаружение аномального поведения (anomaly detection) и обнаружение злоупотреблений (misuse detection). Однако в практической деятельности применяется другая классификация, учитывающая принципы практической реализации таких систем: обнаружение атак на уровне сети (network-based) и на уровне хоста (host-based). Первые системы анализируют сетевой трафик, в то время как вторые — регистрационные журналы операционной системы или приложения. Каждый из классов имеет свои достоинства и недостатки, но об этом чуть позже. Необходимо заметить, что лишь некоторые системы обнаружения атак могут быть однозначно отнесены к одному из названных классов. Как правило, они включают в себя возможности нескольких категорий. Тем не менее эта классификация отражает ключевые возможности, отличающие одну систему обнаружения атак от другой.
В настоящий момент технология обнаружения аномалий не получила широкого распространения, и ни в одной коммерчески распространяемой системе она не используется. Связано это с тем, что данная технология красиво выглядит в теории, но очень трудно реализуется на практике. Сейчас, однако, наметился постепенный возврат к ней (особенно в России), и можно надеяться, что в скором времени пользователи смогут увидеть первые коммерческие системы обнаружения атак, работающие по этой технологии.
Другой подход к обнаружению атак — обнаружение злоупотреблений, которое заключается в описании атаки в виде шаблона (pattern) или сигнатуры (signature) и поиска данного шаблона в контролируемом пространстве (сетевом трафике или журнале регистрации). Антивирусные системы являются ярким примером системы обнаружения атак, работающей по этой технологии.
Как уже было отмечено выше, существует два класса систем, обнаруживающих атаки на сетевом и операционном уровне. Принципиальное преимущество сетевых (network-based) систем обнаружения атак состоит в том, что они идентифицируют нападения прежде, чем те достигнут атакуемого узла. Эти системы более просты для развертывания в крупных сетях, потому что не требуют установки на различные платформы, используемые в организации. В России наибольшее распространение получили операционные системы MS-DOS, Windows 95, NetWare и Windows NT. Различные диалекты UNIX у нас пока не столь широко распространены, как на Западе. Кроме того, системы обнаружения атак на уровне сети практически не снижают производительности сети.
Системы обнаружения атак на уровне хоста создаются для работы под управлением конкретной операционной системы, что накладывает на них определенные ограничения. Например, мне не известна ни одна система этого класса, функционирующая под управлением MS-DOS или Windows for Workgroups (а ведь эти операционные системы еще достаточно распространены в России). Используя знание того, как должна «вести» себя операционная система, средства, построенные с учетом этого подхода, иногда могут обнаружить вторжения, пропускаемые сетевыми средствами обнаружения атак. Однако зачастую это достигается дорогой ценой, потому что постоянная регистрация, необходимая для выполнения подобного рода обнаружения, существенно снижает производительность защищаемого хоста. Такие системы сильно загружают процессор и требуют больших объемов дискового пространства для хранения журналов регистрации и, в принципе, не применимы для высококритичных систем, работающих в режиме реального времени (например, система «Операционный день банка» или система диспетчерского управления). Однако, несмотря ни на что, оба эти подхода могут быть применены для защиты вашей организации. Если вы хотите защитить один или несколько узлов, то системы обнаружения атак на уровне хоста могут стать неплохим выбором. Но если вы хотите защитить большую часть сетевых узлов организации, то системы обнаружения атак на уровне сети, вероятно, будут наилучшим выбором, поскольку увеличение количества узлов в сети никак не скажется на уровне защищенности, достигаемом при помощи системы обнаружения атак. Она сможет без дополнительной настройки защищать дополнительные узлы, в то время как в случае применения системы, функционирующей на уровне хостов, понадобится ее установка и настройка на каждый защищаемый хост. Идеальным решением стала бы система обнаружения атак, объединяющая в себе оба эти подхода.[1]
Существующие сегодня на рынке коммерческие системы обнаружения атак (Intrusion Detection Systems, IDS) используют для распознавания и отражения атак либо сетевой, либо системный подход. В любом случае эти продукты ищут сигнатуры атак, специфические шаблоны, которые обычно указывают на враждебные или подозрительные действия. В случае поиска этих шаблонов в сетевом трафике, IDS работает на сетевом уровне. Если IDS ищет сигнатуры атак в журналах регистрации операционной системы или приложения, то это системный уровень. Каждый подход имеет свои достоинства и недостатки, но они оба дополняют друг друга. Наиболее эффективной является система обнаружения атак, которая использует в своей работе обе технологии. В данном материале обсуждаются различия в методах обнаружения атак на сетевом и системном уровнях с целью демонстрации их слабых и сильных сторон. Также описываются варианты применения каждого из способов для наиболее эффективного обнаружения атак.
1.1. Обнаружение атак на сетевом уровне
Системы обнаружения атак сетевого уровня используют в качестве источника данных для анализа необработанные (raw) сетевые пакеты. Как правило, IDS сетевого уровня используют сетевой адаптер, функционирующий в режиме "прослушивания " (promiscuous), и анализируют трафик в реальном масштабе времени по мере его прохождения через сегмент сети. Модуль распознавания атак использует четыре широко известных метода для распознавания сигнатуры атаки: