№>62006
Н. О. Андреев
Формирование и развитие угроз в информационных системах
В данной статье рассмотрены причины возникновения такого явления, как преступления в сфере информационных технологий. Первые случаи несанкционированного использования телефонных и компьютерных сетей. Появление сообществ, осуществляющих обмен специфической информацией для совершения преступлений в информационной сфере. Нашумевшие случаи проникновений в компьютерные сети. Самые известные взломщики. Современные проблемы компьютерной безопасности. Классификация субъектов, занимающихся поиском уязвимостей в программных продуктах. Отличие программных продуктов с открытым и закрытым программным кодом с точки зрения информационной безопасности. А также системы обнаружения вторжений.
Появление около 40 лет назад технологий, позволяющих машинам оперировать сравнительно большими объемами информации без непосредственного участия человека, ознаменовало новую эру в развитии человечества. Но, как и в любой другой области человеческой деятельности, в последующем проявилась и их негативная сторона: электронновычислительные машины, обычно принося огромную пользу, иногда могут использоваться не так, как было предусмотрено проектировщиками, а для получения закрытых в обычной обстановке данных заинтересованными лицами.
Если анализировать историю, прослеживается явное отставание защищающейся стороны от атакующей. Люди, ответственные за безопасность, упорно не хотят ставить себя на место преступника, отказываясь верить, что тот может иметь квалификацию, равную, или даже превосходящую их собственную. Никто не стремиться принимать меры до того, как это явление, хотя бы косвенно, не коснется лично его.
В 70-х годах прошедшего столетия группа людей в США получила возможность использовать в своих целях телефонную сеть дальней связи фирмы AT&T, применяя простейшие генераторы звука определенной
частоты, в том числе обыкновенный свисток. Именно эти события принято считать началом эры информационных преступлений. Но не потому, что были приложены особые интеллектуальные усилия, а потому что люди, занимавшиеся этим тогда, впоследствии были причастны ко множеству преступлений, совершенных с помощью ЭВМ.
В 80-е годы ХХ века многие из телефонных мошенников или, как их еще называли, фрикеров, объединились в некое сообщество, и стали активно общаться, используя электронные доски объявлений. Подключаться к ним можно было, применяя появившиеся тогда первые ЭВМ различных фирм и архитектур, а также модемы. Не было преградой и то, что многие участники находились друг от друга достаточно далеко, ведь, как говорилось ранее, за междугородние телефонные соединения они не платили. Помимо бесплатных звонков их интересовали номера кредитных карт и пароли на закрытые BBS (электронные доски объявлений). При этом сформировалась некая идеология, оправдывающая компьютерные преступления, и отделяющая их от всех остальных преступлений. В частности, человек, называющий себя Mentor, опубликовал «Манифест хакера», в котором обосновал действия сообщества тягой к знаниям и це-
Формирование и развитие угроз в информационных системах
№>62006
новой недоступностью услуг связи, что получило достаточно большой резонанс в прессе. Начали распространяться специализированные издания, пропагандирующие использование лазеек в системах и содержащие необходимую для этого информацию. В связи с этим конгресс США принял закон, признающий несанкционированное проникновение в компьютер преступлением. Однако общество продолжало скептически относиться к заявлениям об опасности хакеров вплоть до 1988 года.
Не совсем понятны мотивы студента Корнельского университета Роберта Морриса, написавшего тогда первую вредоносную программу, принесшую значительный ущерб, но факт остается фактом: она вывела из строя 6000 компьютеров по всем Соединенным Штатам, используя уязвимость, найденную Моррисом в операционной системе (ОС) Unix. Его вина была доказана, и он получил, помимо штрафа, условный срок. Система Unix — это далеко не самая дешевая ОС, и кому, если не ее создателям думать о безопасности, о причинах столь успешного распространения червя?
Но в 1989 году произошел еще один случай, хотя и несколько другой природы. Группа граждан ФРГ, связанная с хакерским сообществом, продала полученную из сети правительства США информацию лицам, якобы, из КГБ. Кем бы ни были покупатели, для продавцов сделка закончилась не слишком удачно: после ареста и судебного процесса, один из них покончил с собой. Подразумевается, что хакеры являлись единственными виновниками в ситуации, когда информация государственной важности оказалась в руках шпионов, и до момента продажи ничего нельзя было сделать. Это ярко характеризует отношение властей тех времен к данной проблеме. Хотя и превентивные меры иногда имели место: известно несколько случаев, когда попытки взломщиков найти брешь в безопасности информационных систем коммерческих структур заканчивались выездом сотрудников службы безопасности по месту жительства и на глазах
у горе-хакера приводили в негодность принадлежащую ему дорогостоящую технику.
В связи с выходом в 1994 году браузера Netscape Navigator доски объявлений как средство общения и обмена опытом потеряли актуальность, им на замену пришла всемирная паутина.
В 1995 году удалось поймать двух легендарных хакеров — Митника и Левина. Кевин Митник, обладая колоссальной квалификацией и богатым опытом проникновения в разнообразные компьютерные системы, имел некие проблемы с мотивацией и, помимо субъективного удовлетворения от взломов, мало что получил за все годы преступной деятельности в материальном плане, полностью вписываясь в пресловутую хакерскую идеологию. Выйдя на свободу, Митник принялся за ум, и попытался-таки извлечь хоть какую-то пользу из своей популярности. Имидж, сформированный хакерским сообществом, помог ему открыть собственное консалтинговое агентство в сфере информационной безопасности, однако в 2006 году компетентность Кевина была поставлена под сомнение взломом нескольких его сайтов.
В противоположность ему, наш соотечественник Владимир Левин, не обладая достаточными знаниями, приобрел у своего знакомого методику проникновения в закрытую сеть Ситибанка, и сразу же попытался извлечь из этого материальную выгоду: перевел на подставные счета 10 млн долл. Такие крупные транзакции не остались незамеченными, и Левина арестовали.
Последующие годы были гораздо более насыщены подобными событиями. Причина этого скрыта в отсутствии цензуры в Интернете, что привело к широкому распространению разнообразных хакерских утилит и инструкций по взлому (стали выходить сборники таких инструкций, например, журнал Phrack), поэтому хакеру необязательно иметь высокую квалификацию. Хакеров, не обладающих навыками самостоятельного поиска уязвимостей в системах, стали презрительно называть script kiddies, но это не остановило увеличение их числа. Часто такие люди
Ивб 2006
не понимают, что времена безнаказанности кончились, и что когда-то сходило с рук, теперь повсеместно преследуется. Например, и сегодня на форумах можно встретить наивные вопросы о том, как пользоваться генератором номеров кредитных карт, сделать deface и т.п. Но действия отдельных участников движения могут представлять реальную опасность. Например, взлом хаке-рами-пацифистами серверов ядерных центров Индии и Пакистана после проведения этими странами ядерных испытаний, DoS-атаки («отказ в обслуживании») на крупнейшие серверы новостей, Интернет-магазины. Говоря о DoS-атаках, а также об их логическом продолжении — DDoS-атаках (атака не с одной, а с многих станций), хотелось бы заметить, что в настоящее время они представляют серьезную угрозу функционированию Интернет-служб, в том числе из-за частой невозможности своевременного их обнаружения.
Для достижения большинства своих целей злоумышленники используют специальные утилиты, как правило, написанные далеко не ими. Именно неумение сделать что-то собственноручно лежит в основе понятия «script kiddies». Те инструменты, которые нельзя отнести ни к чему, кроме нападения, принято называть эксплоитами (англ. «exploit» — деяние). В открытом доступе можно найти огромное количество подобного программного обеспечения, но для системы, администратор которой внимательно следит за областью безопасности, они не представляют серьезной угрозы — ведь к тому времени, когда эксплоит выложен на публичные ресурсы, наверняка вышел патч, закрывающий уязвимость. Однако некоторое время, с момента обнаружения уязвимости и выхода эксплоита до выпуска патча, эксплоит может находиться в пользовании узкого круга людей, имея статус приватного и даже представляя некоторую материальную ценность. Рано или поздно он распространяется дальше, например на закрытые ресурсы 0day ftp. Большое количество хакерских групп, имея договоренность между
собой, пополняют данные ресурсы своими разработками и могут пользоваться содержимым ресурсов. Тем же, чей авторитет недостаточно высок для подобных соглашений, приходится покупать доступ за деньги или выполнять какую-либо «черную» (опасную, рутинную) работу. Понятно, что время, которое эксплоит проводит в статусе приватного или 0day, является достаточно напряженным для систем, на защиту которых он способен посягнуть, даже если их администратор владеет информацией по свежим уязвимостям и вовремя устанавливает исправления.
В итоге, на сегодняшний день проблема защиты информации в компьютерных сетях является достаточно актуальной. Например, в 2004 году только в Российской Федерации было зарегистрировано 13 723 компьютерных преступления, из них по ст. 272 УК РФ (неправомерный доступ к компьютерной информации) — 8002 преступления. Неизвестно, сколько подобных преступлений осталось нераскрытыми, и поэтому трудно оценить полный ущерб от компьютерных вирусов и червей. Каковы же причины такого состояния данной проблемы?
Основными причинами является специфика архитектуры x86 и ее потомков, а также распространенные компиляторы и интерпретаторы, при создании которых приоритет отдавался быстродействию и удобству использования, а не безопасности работы программы. Фирма IBM, которая положила начало распространению персональных компьютеров, параллельно с ними выпускала, и выпускает по сей день, сервера линейки AS, имеющие защищенную архитектуру, язык программирования RPG, который принципиально не допускает возможностей использовать программу не так, как ее создавал программист. Часть вины лежит на плечах программистов, которые стремились и стремятся создать функциональную программу, и лишь потом (причем это время может и не наступить) приводят код в соответствие стандартам безопасности. Далее с списке причин идет низкая
И.О. Андреев
Формирование и развитие угроз в информационных системах
№>62006
квалификация системных администраторов и пользователей, которые не используют в полном объеме механизмы защиты информационных систем, и зачастую сами неумышленно способствуют проникновению в них. Отсюда вытекает следующая причина: неудовлетворительные административные меры по обеспечению информационной безопасности, такие как инструктаж, обучение пользователей, строгое разграничение ответственности за возможные инциденты между обслуживающим персоналом, разработка четких регламентов пользования информационными системами, аудит (в том числе внешний) эффективности деятельности сотрудников по обеспечению информационной безопасности.
В плане безопасности, присутствует качественное различие между двумя способами распространения программного обеспечения: с открытым и закрытым исходным кодом.
Распространение программного обеспечения с закрытым исходным кодом является способом защиты от использования этого кода кем-либо, кроме разработчика. Программный продукт, таким образом, представляет собой некий черный ящик, внутри которого выполняются какие-то функции, скрытые от постороннего взгляда. При этом есть вероятность, что среди функций найдется и та, которая выполнит некие вредоносные действия, например позволит удаленно контролировать работу станции, на которой запущен программный продукт. Специфика архитектуры x86 (и более поздних), а также устройство компиляторов допускают неумышленное оставление уязвимостей в программном продукте, которые затем могут быть использованы (не говоря уже о направленном внедрении специальных программных закладок). Возможно, это может сделать сам разработчик, или еще кто-либо, получивший доступ к исходным кодам, но есть и третий вариант. Даже не имея исходных кодов, можно декомпилировать программу и найти соответствующие участки кода самостоятельно, хотя понять логику кода,
полученного таким образом, намного труднее, чем логику кода на языке высокого уровня, имея также и комментарии разработчика. Однако это вопрос квалификации, времени и желания.
Рассмотрим программное обеспечение с открытым исходным кодом, в основном оно создается под ОС семейства Unix. Люди, занимающиеся поиском уязвимостей в таких системах, делятся на три группы (традиционно их дифференцируют по цвету «головного убора»).
1. White hats — это те, кто, обнаружив уязвимость, сообщает о ней разработчику, что не вредит репутации разработчика и является для него наилучшим вариантом. Эти люди, как правило, получают вознаграждение за свою работу.
2. Gray hats — те, кто придерживается традиционной хакерской идеологии. С одной стороны, они заблаговременно уведомляют разработчиков о найденной уязвимости, с другой же, публикуют эту информацию позже и в открытых источниках, иногда даже приложив код эксплоита. Это в какой-то мере наносит урон репутации автора программного обеспечения, но также и вовремя защищает его обновленную версию от потенциальной угрозы со стороны Black hats.
3. Black hats — самая опасная группа людей, имеющих отношение к компьютерной безопасности. Они, в первую очередь, стремятся извлечь выгоду из обладания информацией об уязвимостях. Именно по их вине приватные эксплоиты получают люди, готовые их использовать, до того, как автор программного продукта успеет выпустить заплатку или вообще узнает об уязвимости. Так же Black hats могут принимать заказы на кражу или уничтожение закрытой информации, нарушение работы серверов.
Так как исходные коды открыты, анализировать их достаточно просто, и большая часть ошибок может быть обнаружена на стадии бета-тестирования, если продукт имеет некоторую популярность и находятся лю-
Нвб 2006
ди, готовые заниматься поиском ошибок. Это могут быть люди из любого уголка мира, говорящие на разных языках, численность которых зачастую очень высока. После такой жесткой проверки, официальный релиз имеет достаточную степень защиты, и если ошибки до этого не были найдены, значит, чтобы их обнаружить в дальнейшем, потребуется довольно высокая квалификация исследователя. В общем, сообщество энтузиастов осуществляет независимый аудит безопасности кода, и оценивает работу собственных экспертов команды разработчика. Кстати, это защищает ее от давления со стороны спецслужб, которые могут потребовать вставить в программное обеспечение несколько закладок (backdoor's), например для последующего использования в целях государственного шпионажа.
График количества найденных в программном продукте с открытым исходным кодом уязвимостей представлен на рис. 1.
Всплеск в начале графика обычно приходится на период тестирования продукта, когда не может быть нанесен большой ущерб от использования уязвимостей злоумышленниками.
Теперь посмотрим какова же ситуация у тех, кто придерживается концепции закрытого программного кода. В первую очередь, конечно, здесь идет речь о компании Microsoft и о ее семействе ОС Windows. Ситуация, надо сказать, прямо противоположная, так как дизассемблирование является
нарушением лицензионного соглашения, да и копаться в нечитабельном ассемблерном коде мало кому доставляет удовольствие, проконтролировать работу собственных экспертов по безопасности по-большому счету некому. В закрытом коде ошибки ищут только в расчете на личную выгоду. Поэтому динамика выявления ошибок иная, нежели у проектов с открытым кодом. Если посмотреть на ситуацию с системой Windows, уязвимостей находят, конечно, не так уж и много, но зато регулярно. Далее, за счет того что на станциях с этой ОС, как правило, установлено типовое программное обеспечение (некоторые сервисы включены по умолчанию), очень большое значение приобретают самораспространяющие-ся вредоносные программы — черви. Так как не все пользователи своевременно ставят обновления, червь даже с исправленной ошибкой может в считанные часы заразить достаточно большое количество станций. Современные черви далеко шагнули от образца Морриса, и помимо механизма са-мопереноса себя на другие системы, обычно наносят ущерб. В частности, червь MS Blast вызывает перезагрузку компьютера, и по этому признаку можно было понять, что машина заражена, в то время как другие, не имея внешних признаков, используя сетевые возможности станции, проводят в определенные моменты атаки на другие сетевые ресурсы, пытаясь вызвать отказ в обслуживании.
Рис. 1. Зависимость числа обнаруженных уязвимостей от времени для программного обеспечения с открытым кодом
Н.О. Андреев
Формирование и развитие угроз в информационных системах
№>62006
Рис. 2. Зависимость числа обнаруженных уязвимостей от времени для программного обеспечения с закрытым кодом
Все это большой минус закрытого программного кода. Периодически (хотя и не слишком часто) происходит утечка исходных кодов программных продуктов. Когда такая ситуация сложилась с одной из ОС семейства Windows, количество находимых уязвимостей резко подскочило, и организации, использующие эту ОС, потерпели большие убытки по вине разработчика программного обеспечения.
Г рафик уязвимостей в данном случае будет иметь вид рис. 2.
Для закрытого программного кода характерны долгие периоды, когда не обнаруживают никаких ошибок. Но когда программное обеспечение становится массовым, и его изучают все больше людей, то кто-то может и найти их. Это достаточно тяжело спрогнозировать, поэтому администраторы должны постоянно следить за новостями безопасности, читать специализированные рассылки. При этом использование старого программного обеспечения не дает никакого преимущества в плане безопасности, в отличие от Open Source. Если старое программное обеспечение снимают с поддержки, а производитель все-таки не открывает пользователям исходные коды, то многие серверы и простые рабочие станции, не перешедшие на новые версии по каким-то причинам, попадут под угрозу (так было с Windows NT).
В качестве относительной оценки защищенности систем можно использовать статистику дефейсов, т. е. случаев замены глав-
ных страниц web-сайтов, что подразумевает успешный взлом. По этой статистике более половины взломанных серверов работает под управлением Windows. Далее идет Linux (различные дистрибутивы), что можно объяснить нынешней разрозненностью разработчиков этой системы, количество наименований дистрибутивов которой больше десятка. Затем идет Solaris и BSD-системы.
Классификация атак вычислительных систем
В книге «Атака из ^єгпєЬ авторы предлагают довольно подробную классификацию угроз безопасности распределенных вычислительных систем:
«1. По характеру воздействия: пассивное (класс 1.1); активное (класс 1.2).
Пассивным воздействием на распределенную вычислительную систему (ВС) можно назвать воздействие, которое не оказывает непосредственного влияния на работу системы, но способно нарушать ее политику безопасности. Именно отсутствие непосредственного влияния на работу распределенной ВС приводит к тому, что пассивное удаленное воздействие практически невозможно обнаружить. Примером типового пассивного удаленного воздействия в распределенной ВС служит прослушивание канала связи в сети. При пассивном воздействии, в отличие от активного, не остается никаких следов (оттого,
Нвб 2006
что атакующий просмотрит чужое сообщение в системе, ничего не изменится).
Под активным воздействием на распределенную ВС понимается воздействие, оказывающее непосредственное влияние на работу системы (изменение конфигурации распределенной ВС, нарушение работоспособности и т.д.) и нарушающее принятую в ней политику безопасности. Практически все типы удаленных атак являются активными воздействиями. Это связано с тем, что в самой природе разрушающего воздействия заложено активное начало. Очевидным отличием активного воздействия от пассивного является принципиальная возможность его обнаружения (естественно, с большими или меньшими усилиями), так как в результате его осуществления в системе происходят определенные изменения.»
На сегодняшний день это не совсем так. При желании можно обнаружить упомянутое «пассивное прослушивание канала связи в сети», так как у него есть некоторые косвенные признаки. Дело в том, что на прослушивание, анализ и сохранение трафика на информационном носителе, машина тратит ресурсы центрального процессора. При этом, даже если сетевой адаптер просто находится в активном режиме, объем операций довольно значителен. Поэтому эффективна следующая методика обнаружения «наблюдателя»: замеряются промежутки времени ответа на тестовый пакет (ping) всех машин в сети, затем эмулируется передача большого объема информации (на одну из реальных станций, либо на несуществующий адрес), а время ответа замеряется повторно. Если оно резко возросло у какой-либо из станций, можно с определенной долей вероятности говорить о том, что она анализирует не предназначенную для нее информацию. При повторении эксперимента уверенность возрастает.
«2. По цели воздействия:
нарушение конфиденциальности информации либо ресурсов системы (класс 2.1);
нарушение целостности информации (класс 2.2);
нарушение работоспособности (доступности) системы (класс 2.3).
Этот классификационный признак является прямой проекцией трех основных типов угроз: раскрытия, целостности и отказа в обслуживании.
Цель большинства атак — получить несанкционированный доступ к информации. Существуют две принципиальные возможности такого доступа: перехват и искажение.
Перехват — это получение информации без возможности ее искажения. Примером перехвата может служить прослушивание канала в сети. Такая атака является пассивным воздействием и ведет к нарушению конфиденциальности информации.
Искажение информации означает полный контроль над информационным потоком между объектами системы или возможность передачи сообщений от имени другого объекта. Очевидно, что искажение информации ведет к нарушению ее целостности, т. е. представляет собой активное воздействие. Примером удаленной атаки, цель которой — нарушение целостности информации, может служить типовая удаленная атака (УА) “ложный объект распределенной ВС”.
Принципиально иной целью атаки является нарушение работоспособности системы. В этом случае основная цель взломщика — добиться, чтобы операционная система на атакованном объекте вышла из строя
и, следовательно, для всех остальных объектов системы доступ к ресурсам данного объекта был бы невозможен. Примером удаленной атаки, целью которой является нарушение работоспособности системы, может служить типовая атака “отказ в обслуживании”.»
Во многих случаях так классифицировать атаку невозможно, потому что перечисленные классы — звенья одной цепи. Например, субъект, перехвативший фрагмент сетевого трафика, может прочесть переписку сотрудников некой компании, т.е.
И.О. Андреев
Формирование и развитие угроз в информационных системах
№>62006
он получил частичный контроль над этим информационным потоком. Это — в явном виде «нарушение конфиденциальности информации». Через месяц он отправил письмо от имени кого-то из сотрудников. Получается, что та же самая угроза уже попадает в класс «нарушение целостности информации», хотя потенциально он мог отправить его на неделю раньше, а мог и вообще никогда не отправить. Потом он прочитал письмо, в котором содержался пароль доступа к серверу новостей компании, и с какой-нибудь целью заменил одну из главных новостей на свою, поддельную. Формально — это все еще «нарушение целостности информации», но получается, что система в некоторой степени утратила способность выполнять свою главную функцию — предоставлять посетителям актуальную и достоверную информацию, т.е. констатируем «нарушение работоспособности». Получается, что грань размытая, более того, класс может постоянно меняться, в зависимости от намерений атакующего, поэтому, говорить о цели возникновения можно только применительно к отдельным этапам атаки.
«3. По условию начала осуществления воздействия.
Удаленное воздействие, как и любое другое, может начать осуществляться только при определенных условиях. В распределенных ВС существует три вида таких условий:
атака после запроса от атакуемого объекта (класс 3.1);
атака после наступления ожидаемого события на атакуемом объекте (класс 3.2);
безусловная атака (класс 3.3).
В первом случае взломщик ожидает передачи от потенциальной цели атаки запроса определенного типа, который и будет условием начала осуществления воздействия. Примером подобных сообщений в ОС Novell NetWare может служить запрос SAP, а в Internet — запросы DNS и ARP. Следует отметить, что такой тип удаленных атак наиболее характерен для распределенных ВС.
При осуществлении атаки класса 3.2 атакующий осуществляет постоянное наблюдение за состоянием операционной системы объекта атаки и при возникновении определенного события в этой системе начинает воздействие. Как и в предыдущем случае, инициатором начала атаки выступает сам атакуемый объект. Примером такого события может быть прерывание сеанса работы пользователя с сервером в ОС Novell NetWare без выдачи команды LOGOUT.
При безусловной атаке ее начало не зависит от состояния системы атакуемого объекта, т. е. воздействие осуществляется немедленно. Следовательно, в этом случае его инициатором является атакующий.»
Такое разделение кажется довольно логичным, но лучше объединить первые 2 класса вместе, так как «атака после запроса от атакуемого объекта» является атакой при достижении объектом состояний «ожидание ответа на DNS-запрос» или «ожидание ответа на ARP-запрос». То есть «атака после наступления ожидаемого события на атакуемом объекте» также попадает и во второй класс.
«4. По наличию обратной связи с атакуемым объектом:
с обратной связью (класс 4.1); без обратной связи, или однонаправленная атака (класс 4.2).
Если взломщику требуется получить ответ на некоторые запросы, переданные на объект воздействия, т. е. между атакующим и целью атаки существует обратная связь, которая позволяет ему адекватно реагировать при изменении ситуации, то такое воздействие можно отнести к классу 4.1. Подобные удаленные атаки наиболее характерны для распределенных ВС.
Инициатор удаленной атаки без обратной связи, напротив, не реагирует ни на какие изменения, происходящие на атакуемом объекте. Воздействие данного вида обычно осуществляется передачей на атакуемый объект одиночных запросов, ответы
Нвб 2006
на которые атакующему не нужны. Примером подобных атак (их можно назвать однонаправленными) является типовая атака “отказ в обслуживании”...»
Если говорить о транспортном уровне, действительно, субъекту, практикующему «отказ в обслуживании» не нужно устанавливать виртуальное соединение (сеансовый уровень), а достаточно в одностороннем порядке отправлять пакеты — вроде бы нет обратной связи. Но, рассуждая логически, и ставя себя на место атакующего, можно понять, что бесцельно он не будет проводить подобные атаки, рискуя быть в любой момент раскрытым. После, или во время ее проведения он должен знать, достигает ли атака цели, в частности, если цель — www-сервер, он должен не отвечать на обычные запросы, если атака проводится с целью подмены доверенного объекта локальной вычислительной сети, нужно убедиться, что подмена прошла успешно. Почему бы не называть это «обратной связью»? Другой пример классической атаки: допустим, имеется уязвимость в неком «демоне» или сервисе, если использовать терминологию Windows. Эта уязвимость позволяет удаленно переполнить буфер, и выполнить переданный злоумышленником код. Субъект, который хочет получить контроль над сервером, может использовать один из стандартных вариантов кода, в частности, запуск интерпретатора командного языка и привязку его к одному из портов. Но во многих случаях переполнение приводит к нарушению работы сервиса, и сеанс связи разрывается. В самый важный момент атаки, обратная связь в сеансе исчезла, а чтобы определить достигнут ли успех надо, например, попытаться подсоединиться к определенному порту станции (либо, в случае соппей-Ьаск кода, соединение вновь устанавливает атакуемая станция). Ситуация, таким образом, идентична описанной в предыдущем примере. Выходит, наличие или отсутствие обратной связи, не является существенным фактором.
«5. По расположению субъекта атаки относительно атакуемого объекта:
внутрисегментное (класс 5.1);
межсегментное (класс 5.2).
Рассмотрим ряд определений.
Субъект атаки, или источник атаки — это атакующая программа или оператор, непосредственно осуществляющие воздействие.
Хост (host) — сетевой компьютер.
Маршрутизатор, или роутер (router) — устройство, обеспечивающее маршрутизацию пакетов обмена в глобальной сети.
Подсеть (subnetwork в терминологии Internet) — логическое объединение, совокупность хостов, являющихся частью глобальной сети, для которых маршрутизатором выделен одинаковый номер. Хосты внутри одной подсети могут взаимодействовать непосредственно, минуя маршрутизатор.
Сегмент сети (segment) — физическое объединение хостов. Например, сегменты сети образуются совокупностью хостов, подключенных к серверу по схеме “общая шина”. При такой схеме подключения каждый хост имеет возможность подвергать анализу любой пакет в своем сегменте.
Для осуществления удаленного воздействия чрезвычайно важно, как по отношению друг к другу располагаются субъект и объект атаки, т.е. в одном или в разных сегментах они находятся. В случае внутрисегментной атаки, как следует из названия, субъект и объект атаки находятся в одном сегменте, а при межсегментной — в разных.
Данный классификационный признак позволяет судить о так называемой степени удаленности атаки... На практике межсегментное воздействие осуществить значительно труднее, чем внутрисегментное, но и опасность оно представляет гораздо большую. В таком случае объект и субъект атаки могут находиться на расстоянии многих тысяч километров друг от друга, что существенно усложняет возможность непосредственного обнаружения атакующего и адекватной реакции на атаку.»
И.О. Андреев
Формирование и развитие угроз в информационных системах
№>62006
Данная проблема также теряет актуальность по следующим причинам. В настоящее время, с усложнением сетевого оборудования, сети больше не строятся по топологии «кольцо», «общая шина». Наиболее распространена сейчас топология «звезда» причем пассивные повторители повсеместно заменяются на коммутаторы, а это означает, что простое прослушивание на сетевом уровне больше не представляет угрозы. Зато появляется возможность включить машины из совершенно другой подсети в адресное пространство данного сегмента по технологии VPN. То есть тот, кто находится в том же сегменте, получает довольно сомнительные преимущества перед удаленным пользователем в организации сетевых атак, причем это скорее вопрос настроек доступа и безопасности. Хотя, для системы обнаружения атак (IDS), гораздо легче анализировать малый объем трафика, идущего через шлюз, чем весь трафик сегмента локальной сети. Если же говорить о «непосредственном обнаружении атакующего и адекватной реакции на атаку», то не надо забывать о возможности взятия под контроль как станции в сегменте локальной сети, так и удаленной станции где-нибудь за пределами государства, поэтому даже если атака исходит из того же сегмента, всегда есть вероятность, что атакующая станция — не истинный ее виновник.
Добавим к вышеизложенному следующее. Так как стали нередки случаи проникновения в сети организаций с целью извлечения коммерческой выгоды, злоумышленники тщательно продумывают предстоящую атаку, стараясь успеть завершить ее до того, как на признаки будет обращено внимание. В связи с тем что на рабочих станциях установлены, как правило, одинаковые версии операционных систем с настройками «по умолчанию», процесс взлома конкретной станции можно автоматизировать, запустив внутри подсети автономную сетевую вредоносную программу — «червя». В случае с MS Blast, время заражения сегмента из сотни машин не превышало нескольких минут.
Учитывая, что автор не ставил себе цель извлечь выгоды из эпидемии, ущерб можно считать незначительным. Но в конце 2005 года появились образцы червей, которые максимально скрывают свое присутствие в системе, и в случае наличия на рабочей станции программ вида «клиент-банк», переводят куда-либо средства, используя эти программы. Само собой, разработчики подобного программного обеспечения уделяют должное внимание безопасности: канал максимально защищен шифрованием, присутствуют аппаратные компоненты защиты, которые невозможно подделать. Но, в случае зомбиро-вания рабочей станции, такое программное обеспечение не определит разницы между действиями червя и пользователя, сидящего у экрана, так как оно все-таки не является антивирусным. Все это очень сильно подрывает позиции ОС семейства Windows (на которые в основном ориентируются авторы червей), хотя проблемы и не являются принципиальными. В данном случае, выход видится в ужесточении политики безопасности корпоративных сетей, а также перенос критичных к уровню безопасности функций на серверные (более защищенные) ОС, предоставляя пользователям только терминальный доступ к ним. По крайней мере, чтобы сделать что-либо в таких условиях, вредоносная программа должна быть настолько насыщенной функционалом под любые комбинации программной среды, что нужно будет потратить годы на ее разработку.
Так как архитектура процессоров х86 и современные реализации операционных систем не могут обеспечить приемлемую защиту от быстрого «зомбирования», будучи сильно зависимы от политики безопасности, навыков администрирования у персонала, а также от субъективных факторов (что самое прискорбное), необходимо разворачивать в вычислительных сетях комплексы обнаружения вторжений.
«6. По уровню эталонной модели ISO/OSI, на котором осуществляется воздействие:
физический (класс 6.1);
Нвб 2006
канальный (класс 6.2); сетевой (класс 6.3); транспортный (класс 6.4); сеансовый (класс 6.5); представительный (класс 6.6); прикладной (класс 6.7).
Международная организация по стандартизации (ISO) приняла стандарт ISO 7498, описывающий взаимодействие открытых систем (OSI), к которым относятся и распределенные ВС. Любой сетевой протокол обмена, как и любую сетевую программу, можно с той или иной степенью точности спроецировать на эталонную многоуровневую модель OSI. Такая проекция позволит описать в терминах модели OSI функции, заложенные в сетевой протокол или программу. Поскольку удаленная атака также является сетевой программой, представляется логичным рассматривать такие воздействия на распределенные ВС, проецируя их на эталонную модель ISO/OSI.»
Классификация по такому признаку является достаточно обоснованной, хотя понятно, что современные протоколы передачи данных обеспечивают определенную защиту начиная с транспортного уровня. В зависимости от реализации протокола TCP/IP здесь вероятны/маловероятны попытки подмены IP адреса, атаки типа «отказ в обслуживании». Например, в ОС Windows 95, 98 до выхода заплатки очень просто выполнить переполнение стека TCP/IP, вызвав «отказ в обслуживании». Также здесь достаточно реальна атака, при которой злоумышленник «вклинивается» в сеанс TCP/IP, подобрав значение контрольного параметра, генерирующегося протоколом и затем пошагово увеличивающегося на единицу. Это стало возможным из-за пренебрежения программистов к стандартам безопасности, руководство которых долгое время закрывало глаза на возможный реверс-инжениринг их программного обеспечения в будущем.
На всех уровнях, вплоть до прикладного (а в случае получения атакующим особых
привилегий, даже на прикладном), возможен перехват и дешифровка данных. Именно поэтому самым надежным является шифрование на прикладном, иногда на представительном, уровне (например, можно шифровать электронные письма прямо перед отправкой, по какому-либо протоколу шифрования, установив соответствующие утилиты). Может оказаться, что для работы с открытыми ключами, в частности для их генерации при частой смене, не будет хватать ресурсов рабочей станции, при большом объеме трафика. В качестве компромисса защищают только часть маршрута прохождения информации, используя канальное шифрование.
Тем не менее, можно говорить о том, что самые опасные атаки, связанные с причинением значительного ущерба, происходят именно на прикладном уровне. В их отношении и можно ввести дополнительный признак классификации — глубина вторжения на прикладном уровне. Выделим несколько случаев.
1. Использование уязвимостей в программах, которые выполняются системными программами-интерпретаторами ( Perl, PHP, Java-script, Visual Basic и т. д.), а так же СУБД. Например, очень часто встречаются уязвимости, связанные с возможностью выполнить запрос к базе данных на языке SQL (SQL-инъекции), запустить командный интерпретатор с правами web-сервера, прочитать какой-либо файл, не предназначенный для этого.
2. Использование уязвимостей в программах-сервисах. Это всевозможные переполнения, направленные на выполнение кода внутри таких программ, либо приводящие к «отказу в обслуживании». Выполнение кода внутри сервиса, связано со значительными ограничениями, и обычно сводится, опять-таки к запуску командного интерпретатора с правами теперь уже программы сервиса.
3. Использование уязвимостей в ядре ОС. Получив некоторую свободу действий,
Н.О. Андреев
Формирование и развитие угроз в информационных системах
№>62006
в виде возможности выполнять команды от имени непривилегированного пользователя, субъект, неудовлетворенный этим, будет пытаться повысить свои права, что можно сделать при нахождении ошибок в конфигурировании станции, либо, при наличии прав на запуск программ, через уязвимости ядра. Технология такой атаки схожа с п. 2.
4. Использование ошибок администрирования системы. Иногда возникает ситуация, когда для получения доступа не требуется использовать особые технологии атаки, так как администратор неправильно сконфигурировал систему, и абсолютные права можно получить, например, загрузив и расшифровав hesh-файл паролей. Сюда же можно отнести и социальную инженерию, так как она также подразумевает использование человеческого фактора.
Защита от вторжений посредством программ класса firewall не может обеспечить полной безопасности из-за необходимости открывать доступ к сервисам для внешнего пользования, а также из-за возможности заражения внутренних рабочих станций посредством уязвимостей в клиентском программном обеспечении (в частности, в популярном браузере Microsoft Internet Explorer). Даже в случае полного отсутствия доступа извне, на сегодняшний день актуален вопрос о повсеместном развертывании систем класса IDS (Intrusion Detection Systems) в информационных сетях, целью которых по определению является обнаружение атак.
Существует следующие типы IDS.
1. Сетевые IDS (Network-based IDS).
Эти системы функционируют посредством анализа проходящего через сегмент трафика по таким методикам, как соответствие шаблону, частотная методика и выявление аномалий.
2. Локальные (Host-based IDS).
2.1. Анализирующие журналы событий станции, с целью обнаружения соответствия шаблону атаки.
2.2. Анализирующие трафик, идущий через данную станцию (так же, как в случае с сетевой IDS).
2.3. Интегрированные в сетевой стек ОС (stack-based IDS). Аналогичны п. 2.2, но работают на более высоком уровне, не загружая станцию работой по дешифровке. Сенсор такой системы представляет прослойку между транспортным и более высокими уровнями OSI.
Каждый тип имеет свои недостатки. Сетевая IDS не может контролировать процессы на рабочих станциях сети, в локальной могут удалить все следы взлома, а также модифицировать ее код.
В настоящее время большинство промышленных IDS используют сигнатурные методы обнаружения вторжений. Развитие началось с метода поиска по полной базе шаблонов, представляющего собой простое сравнение с имеющимися в базе сигнатурами. Этот метод не имеет особых достоинств, зато позволяет использовать аппаратное ускорение, в связи с простотой задачи. Компании-интеграторы на сегодняшний день предлагают ассортимент многофункциональных устройств, помимо всего прочего имеющих в своем составе IDS, построенную на этом методе, например, решение Cisco Secure IDS (до 1999 года NetRanger).
Метод поиска по базе шаблонов с обратной связью является потомком предыдущего метода. Смысл его в том, чтобы на лету добавлять в базу шаблонов новые, уменьшая тем самым время на обработку данных и разгружая вычислительные мощности. Программа Snort использует этот метод.
Перспективой сигнатурных методов является сопоставление с шаблонами графа переходов, соответствующего атаке. Речь идет об общем, недетализированном описании технологий атак с помощью графа, поэтому анализ требует наличия в системе некоторой интеллектуальности, элементов экспертной системы. Система BRO IDS, по-
Нвб 2006
строенная на данном методе, совместима с базами сигнатур Snort, демонстрирует высокую эффективность в обнаружении типовых атак.
Существуют и другие методы обнаружения атак, возможности использования которых представляются эффективными: инвариантные и корреляционные.
Корреляционные методы основаны на сборе необходимого для анализа объема статистики и его обработки. Самый простой метод — статистические профили, однако ему свойственен высокий уровень ложных срабатываний системы. Если изменять профиль динамически, система подстраивается под реальную среду, и уровень ложных срабатываний снижается, но это оставляет возможность целенаправленного постепенного изменения того или иного параметра среды, с целью установки в системе нужного атакующему субъекту значения порога срабатывания. Примеры таких систем: NIDES (Next Generation Intrusion Detection Expert System), EMERALD (Event Monitoring Enabling Responses to Anomalous Live Disturbances).
Для каждого типа атаки можно построить свою нейросетевую модель обнаружения, т. е. профиля на основе нейросетей. Однако этот метод также будет давать большое количество ложных срабатываний, и его использование перспективно только в составе единой экспертной системы, наряду с сигнатурными методами. То есть экспертная система должна устанавливать какой нейросетевой модели обрабатывать тот или иной фрагмент данных с сенсоров. Тем не менее, существуют промышленные образцы таких систем: NNID (Neural Network Intrusion Detector), AUBAD (Automated User Behavior Anomaly Detection system).
Инвариантные методы обнаружения представляют собой баланс между сигнатурными и корреляционными методами: они более достоверны чем первые, и менее трудоемки чем вторые. Их смысл заключается во введении некоторых правил семантической
корректности межсетевого взаимодействия, и чтобы обнаружить атаку, необходимо лишь установить факт нарушения этих правил. Проблема инвариантных методов состоит в том, что такие типы атак, которые очень трудно, а часто просто невозможно описать универсальными правилами, не вызовут срабатывания системы, поэтому самостоятельное использование не является полной защитой.
Рассмотрим еще несколько терминов, характеризующих IDS.
GrIDS (Graph-Based Intrusion Detection System) — распределенные системы, которые позволяют анализировать данные с нескольких сенсоров — в случае если, например, проводится распределенный сбор информации о сетевой структуре. Так как такие системы позволяют собирать фрагменты информации и анализировать целостную картину, их использование должно быть более эффективным, но на каждой из станций должна быть установлена компонента системы.
OIDS (Operational Intrusion Detection Systems). Системы этого класса анализируют не аномалии трафика, а поведение подключившихся к системе пользователей и программ. Если оно кажется подозрительным и необычным, делают вывод, что проникновение все-таки произошло.
Что касается действий в случае обнаружения атаки, они могут быть самыми разными — от банального вывода предупреждающего сообщения в первую консоль станции до автоматического занесения адреса атакующего в блок-список firewall.
Приведем обзор популярных IDS, а также программ, косвенно относящихся к этому семейству.
Snort — многофункциональная IDS, имеет много возможностей, начиная с обнаружения скрытого сканирования портов и заканчивая поиском shell-кодов, детектированием DoS-атак, попыток подобрать пароль
Н.О. Андреев
Формирование и развитие угроз в информационных системах
№>62006
к какому-либо сервису. Результаты работы могут сохраняться в SQL-базу, что очень удобно для извлечения.
Bro IDS — система более высокого уровня абстракции, нежели Snort, но может пользоваться накопленной информацией из своей базы сигнатур.
PortSentry — программа представляет широкие возможности по борьбе со сканированием портов, но и только.
Openports — программа для постоянного контроля открытых портов.
Shadow — система имеет компоненты-сенсоры и анализаторы, которые могут территориально располагаться на разных машинах. Имеет адаптивную систему блокировки ложных срабатываний.
Network Flight Recorder — осуществляет поиск по сигнатурам, имеет собственный язык программирования для анализа пакетов.
Tripwire — OIDS, которая контролирует операции с критическими системными файлами.
^krootkit — программа, по сути, занимается тем же самым, но заточена под поиск признаков установки так называемых рут-китов (rootkit's) или бэкдоров (backdoor's), программ для беспрепятственного подключения к взломанной машине впоследствии без использования «тяжелой артиллерии» — эксплоитов.
LIDS — система контроля локальной безопасности (попадает под определение OIDS), которая позволяет ограничить в правах суперпользователя — root c идентификатором пользователя равным 0. Минусом является то, что система предназначена для установки только на Linux, что следует из названия Linux IDS, а в качестве серверных ОС широко используются дистрибутивы семейства BSD.
CMDS — распознавание атак по сигнатурам, также присутствует статистический анализ действий пользователя.
Centrax (до 1999 года Entrax) — изначально ориентирована на защиту отдельных серверов, содержит компоненты-сенсоры и компоненты-анализаторы.
NetRanger — система также имеет компонентную структуру, осуществляет поиск по сигнатурам (трех категорий), а также позволяет при обнаружении атаки выполнять спектр действий по ее пресечению.
RealSecure — возможности аналогичны предыдущей системе, также присутствуют элементы OIDS.
NetProwler — программа осуществляет быстрый поиск по базе сигнатур, до этого производится соединение фрагментов трафика для анализа, что исключает обход через умышленное фрагментирование.
CIDDS (Common Intrusion Detection Director System, также известная как CID Director) — мощная система, разработанная для информационной защиты ВВС США. Имеет модульную структуру, аппаратные компоненты. Содержит массу функций и является более продвинутым инструментом по сравнению с любым коммерческим решением.
Перспективы развития IDS заключаются в следующем. Во-первых, необходимо максимально приблизить действия по обнаружению атак к действиям человека, который ищет аномалии в сегменте сети. Для этого в экспертной системе использовать все возможности сбора информации, для удобства при записи в базу данных можно динамически менять степень детализации, что позволит системе всегда работать в реальном времени. Во-вторых, экспертная система должна комплексно анализировать разнородную информацию, стало быть, в ней должна быть использована технология слияния данных (data fusion). И наконец, анализ не должен быть односторонним, т.е. нужно наряду с сигнатурными методами использовать корреляционные, а возможно и инвариантные одновременно. Таким образом, используя сильные стороны каждой функционирующей системы, можно добиться большей эффективности, чем дает любая из существующих систем на сегодняшний день.