На главную

Библиотека Интернет Индустрии I2R.ru

Rambler's Top100

Малобюджетные сайты...

Продвижение веб-сайта...

Контент и авторское право...

Забобрить эту страницу! Забобрить! Блог Библиотека Сайтостроительства на toodoo
  Поиск:   
Рассылки для занятых...»
I2R » Хакеры и безопасность » Хакеры

Об атаках на компьютерные сети

Об атаках на компьютерные сети Алексей Лукацкий В этой статье подробно разобраны типы возможных атак на компьютерные сети, описаны этапы этих атак и варианты защиты от них.

В ноябре 2000 г. некоторые информационные агентства, в частности Lenta.ru, сообщили о том, что злоумышленники осуществили несанкционированный доступ к компьютерной сети "Газпрома" и временно получили полный контроль над газовыми потоками. В компьютерные сети "Газпрома" были внедрены 24 программы, называемые "троянскими конями", посредством которых и были получены соответствующие данные для успешной хакерской атаки. В итоге центральный пункт управления газовыми потоками стал временно подконтролен внешним пользователям. Был ли нанесен какой-либо реальный ущерб, в официальном сообщении не говорится, однако можно предположить, что без такового вряд ли обошлось. Ведь центральный пункт управления -- это главный информационный центр, с которого можно не только управлять газовыми потоками, но и копаться в массивных банках и базах данных; и изменять данные -- тоже можно.

До сих пор нет точного определения понятия "атака" (вторжение, нападение). Каждый специалист в области безопасности трактует его по-своему. Например, "вторжение - это любое действие, переводящее систему из безопасного состояния в опасное". Данный термин может объясняться и так: "вторжение -- это любое нарушение политики безопасности" или "любое действие, приводящее к нарушению целостности, конфиденциальности и доступности системы и информации, в ней обрабатываемой". Однако более правильной представляется нижеприведенная трактовка, тесно увязанная с термином "уязвимость", использованным в статье, посвященной системам анализа защищенности и опубликованной в прошлом номере "Сетевого журнала". Атакой (attack, intrusion) на информационную систему называется действие или последовательность связанных между собой действий нарушителя, которые приводят к реализации угрозы путем использования уязвимостей этой информационной системы. Другими словами, если бы можно было устранить уязвимости информационных систем, то тем самым была бы устранена и возможность реализации атак.

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

Модели атак

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

Распределенные атаки - новый бич интернета.
В модели распределенной или скоординированной (distributed или coordinated attack) атаки используются иные принципы. В отличие от традиционной модели "один к одному" и "один ко многим", в распределенной модели используются принципы "многие к одному" и "много ко многим" (рис. 3 и 4 соответственно).

Распределенные атаки основаны на "классических" атаках типа "отказ в обслуживании", которые будут рассмотрены ниже, а точнее, на их подмножестве, известном как Flood- или Storm-атаки (указанные термины можно перевести как "шторм", "наводнение" или "лавина"). Смысл данных атак заключается в посылке большого количества пакетов на заданный узел или сегмент сети (цель атаки), что может привести к выведению этого узла или сегмента из строя, поскольку он захлебнется в лавине посылаемых пакетов и не сможет обрабатывать запросы авторизованных пользователей. По такому принципу работают атаки SYN-Flood, Smurf, UDP Flood, Targa3 и т. д. Однако в том случае, если пропускная способность канала до цели атаки превышает пропускную способность атакующего или целевой узел некорректно сконфигурирован, то "успеха" такая атака не достигнет. Скажем, с помощью этих атак бесполезно пытаться нарушить работоспособность своего провайдера. В случае же распределенной атаки ситуация коренным образом меняется. Атака происходит уже не из одной точки интернета, а сразу из нескольких, что приводит к резкому возрастанию трафика и выведению атакуемого узла из строя. Например, по данным "России-Онлайн", в течение двух суток, начиная с 9 часов утра 28 декабря 2000 г. крупнейший интернет-провайдер Армении "Арминко" подвергался распределенной атаке. В данном случае к атаке подключилось более 50 машин из разных стран, которые посылали по адресу "Арминко" бессмысленные сообщения. Кто организовал эту атаку и в какой стране находился хакер, установить было невозможно. Хотя атаке подвергся в основном "Арминко", перегруженной оказалась вся магистраль, соединяющая Армению с Всемирной Паутиной. 30 декабря благодаря сотрудничеству "Арминко" и другого провайдера -- "АрменТел" связь была полностью восстановлена. Компьютерная атака, правда, продолжалась, но с меньшей интенсивностью.

Этапы реализации атак

Можно выделить следующие этапы реализации атаки: предварительные действия, или сбор информации (information gathering), реализация атаки (exploitation) и завершение атаки. Обычно когда говорят об атаке, то подразумевают именно второй этап, забывая о первом и последнем. Сбор информации и завершение атаки ("заметание следов") в свою очередь также могут являться атакой и могут быть разделены на три этапа (рис. 5).

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

Межсетевые экраны неэффективны против множества атак.

На первом этапе злоумышленник пытается выявить все каналы взаимодействия цели атаки с другими узлами. Это позволит выбрать не только тип реализуемой атаки, но и источник ее реализации. Например, атакуемый узел взаимодействует с двумя серверами под управлением ОС Unix и Windows NT. С одним сервером атакуемый узел имеет "доверительные" отношения, а с другим -- нет. От того, через какой сервер злоумышленник будет реализовывать нападение, зависит, какая атака будет задействована, какое средство реализации будет выбрано, и т. д. Затем, в зависимости от полученной информации и преследуемых целей, выбирается атака, дающая наибольший эффект. Например, для нарушения функционирования узла можно использовать SYN Flood, Teardrop, UDP Bomb и т. д., а для проникновения на узел и кражи информации - CGI-скрипт PHF для кражи файла паролей, удаленный подбор пароля и т. п. Затем наступает второй этап -- реализация выбранной атаки.

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

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

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

Сбор информации

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

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

Идентификация топологии сети. Можно назвать два метода определения топологии сети (network topology detection), применяемых злоумышленниками: изменение TTL (TTL modulation) и запись маршрута (record route). Программы traceroute для Unix и tracert для Windows используют первый способ определения топологии сети. Они используют для этого поле Time to Live ("время жизни") в заголовке IP-пакета, которое изменяется в зависимости от числа пройденных сетевым пакетом маршрутизаторов. Утилита ping подходит для записи маршрута ICMP-пакета. Зачастую сетевую топологию можно выяснить при помощи протокола SNMP, установленного на многих сетевых устройствах, защита которых неверно сконфигурирована. При помощи протокола RIP можно попытаться получить информацию о таблице маршрутизации в сети и т. д.

 Множество атак безгранично.

Многие из этих методов используются современными системами управления (например, HP OpenView, Cabletron SPECTRUM, MS Visio и др.) для построения карт сети. И эти же методы могут быть с успехом применены злоумышленниками для построения карты атакуемой сети.

Идентификация узлов. Идентификация узла (host detection), как правило, осуществляется путем посылки при помощи утилиты ping команды ECHO_REQUEST протокола ICMP. Ответное сообщение ECHO_REPLY говорит о том, что узел доступен. Существуют свободно распространяемые программы, которые автоматизируют и ускоряют процесс параллельной идентификации большого числа узлов, например, fping или nmap. Опасность данного метода в том, что стандартными средствами узла запросы ECHO_REQUEST не фиксируются. Для этого необходимы средства анализа трафика, межсетевые экраны или системы обнаружения атак.

Это самый простой метод идентификации узлов, но он имеет ряд недостатков. Во-первых, многие сетевые устройства и программы блокируют ICMP-пакеты и не пропускают их во внутреннюю сеть (или, наоборот, не пропускают их наружу). Например, MS Proxy Server 2.0 не разрешает прохождение пакетов по протоколу ICMP. В результате не получается полной картины. С другой стороны, блокировка ICMP-пакета говорит злоумышленнику о наличии "первой линии обороны" -- маршрутизаторов, межсетевых экранов и т. д. Во-вторых, использование ICMP-запросов позволяет с легкостью обнаружить их источник, в чем, разумеется, злоумышленник вовсе не заинтересован.

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

Идентификация сервисов и сканирование портов. Идентификация сервисов (service detection), как правило, осуществляется путем обнаружения открытых портов (port scanning). Такие порты очень часто связаны с сервисами, основанными на протоколах TCP или UDP. Например, открытый 80-й порт подразумевает наличие Web-сервера, 25-й порт -- почтового SMTP-сервера, 31 337-й -- серверной части "троянского коня" BackOrifice, 12 345-й или 12 346-й - серверной части "троянского коня" NetBus и т. д. Для идентификации сервисов и сканирования портов могут быть использованы различные программы, в том числе и свободно распространяемые, например nmap или netcat.

Идентификация операционной системы. Основной механизм удаленного определения ОС (OS detection) -- анализ ответов на запросы, учитывающие различные реализации TCP/IP-стека в различных операционных системах. Стек протоколов TCP/IP в каждой ОС реализован по-своему, что позволяет при помощи специальных запросов и ответов на них определить, какая ОС установлена на удаленном узле.

Другой, менее эффективный и крайне ограниченный, способ идентификации ОС узлов -- анализ сетевых сервисов, обнаруженных на предыдущем этапе. Например, открытый 139-й порт позволяет сделать вывод, что удаленный узел, вероятнее всего, работает под управлением ОС семейства Windows. Для определения ОС могут быть использованы различные программы, например nmap или queso.

Определение роли узла. Предпоследним шагом на этапе сбора информации об атакующем узле является определение его роли, скажем, в выполнении функций межсетевого экрана или Web-сервера. Делается этот шаг на основе уже собранной информации об активных сервисах, именах узлов, топологии сети и т. п. Допустим, открытый 80-й порт может указывать на наличие Web-сервера, блокировка ICMP-пакета -- на потенциальное наличие межсетевого экрана, а DNS-имя узла proxy.domain.ru или fw.domain.ru говорит само за себя.

Определение уязвимостей узла. Последний шаг -- поиск уязвимостей (searching vulnerabilities). Злоумышленник при помощи различных автоматизированных средств или вручную определяет уязвимости, которые могут быть использованы для реализации атаки. В качестве таких автоматизированных средств могут быть использованы ShadowSecurityScanner, nmap, Retina и т. д.

Реализация атаки

После всего вышеперечисленного предпринимается попытка получить доступ к атакуемому узлу, причем как непосредственный (проникновение на узел), так и опосредованный, например, при реализации атаки типа "отказ в обслуживании". Реализация атаки в случае непосредственного доступа также может быть разделена на два этапа: проникновение и установление контроля.

Проникновение подразумевает преодоление средств защиты периметра (межсетевого экрана) различными путями -- использованием уязвимости сервиса компьютера, "смотрящего" наружу, или передачей враждебной информации по электронной почте (макровирусы) или через апплеты Java. Такая информация может быть передана через так называемые туннели в межсетевом экране (не путать с туннелями VPN), через которые затем и проникает злоумышленник. К этому же этапу можно отнести подбор пароля администратора или иного пользователя при помощи специализированной утилиты (L0phtCrack или Crack).

Установление контроля. После проникновения злоумышленник устанавливает контроль над атакуемым узлом. Это возможно путем внедрения программы типа "троянский конь" (NetBus или BackOrifice). После установки контроля над нужным узлом и "заметания следов" злоумышленник может осуществлять все необходимые несанкционированные действия дистанционно без ведома владельца атакованного компьютера. При этом установление контроля над узлом корпоративной сети должно сохраняться и после перезагрузки операционной системы - с помощью замены одного из загрузочных файлов или вставки ссылки на враждебный код в файлы автозагрузки или системный реестр. Известен случай, когда злоумышленник сумел перепрограммировать EEPROM сетевой карты и даже после переустановки ОС повторно реализовал несанкционированные действия. Более простой модификацией этого примера является внедрение необходимого кода или фрагмента в сценарий сетевой загрузки (скажем, для ОС Novell NetWare).

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

Завершение атаки

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

Классификация атак

Существуют различные типа классификации атак. Например, деление на пассивные и активные, внешние и внутренние атаки, умышленные и неумышленные. Однако, дабы не запутать читателя большим разнообразием классификаций, мало применимыми на практике, хотелось бы предложить более "жизненную" классификацию: Удаленное проникновение (remote penetration). Атаки, которые позволяют реализовать удаленное управление компьютером через сеть. Примером такой программы является NetBus или BackOrifice. Локальное проникновение (local penetration). Атака, приводящая к получению несанкционированного доступа к узлу, на котором она запущена, например программа GetAdmin. Удаленный отказ в обслуживании (remote denial of service). Атаки, позволяющие нарушить функционирование или перегрузить компьютер через интернет (Teardrop или trin00). Локальный отказ в обслуживании (local denial of service). Атаки, которые позволяют нарушить функционирование или перегрузить атакуемый компьютер. Примером такой атаки является "враждебный" апплет, загружающий центральный процессор бесконечным циклом, что приводит к невозможности обработки запросов других приложений. Сетевые сканеры (network scanners). Программы, которые анализируют топологию сети и обнаруживают сервисы, доступные для атаки, например система nmap. Сканеры уязвимостей (vulnerability scanners). Программы, которые ищут уязвимости на узлах сети и могут быть использованы для реализации атак. К таким сканерам можно отнести систему SATAN или ShadowSecurityScanner. Взломщики паролей (password crackers). Программы, которые "подбирают" пароли пользователей. Пример взломщика паролей -- L0phtCrack для Windows или Crack для Unix. Анализаторы протоколов (sniffers). Программы, которые "прослушивают" сетевой трафик. С их помощью можно автоматически искать такую информацию, как идентификаторы и пароли пользователей, информацию о кредитных картах и т. д. Из таких анализаторов протоколов стоит упомянуть Microsoft Network Monitor, NetXRay компании Network Associates или LanExplorer.

Интернет-компания Security Systems сократила число возможных категорий до пяти:

  • сбор информации (Information gathering);
  • попытки несанкционированного доступа (Unauthorized access attempts);
  • отказ в обслуживании (Denial of service);
  • подозрительная активность (Suspicious activity);
  • системные атаки (System attack).

    Первые четыре категории относятся к удаленным атакам, а последняя - к локальным, реализуемом на атакуемом узле. Можно заметить, что в данную классификацию не попал целый класс так называемых "пассивных" атак. Помимо "прослушивания" трафика, в эту категорию также попадают такие атаки, как "ложный DNS-сервер", "подмена ARP-сервера" и т. п.

    Классификация атак, реализованная во многих системах обнаружения атак, не может быть категоричной. Например, атака, реализация которой для ОС Unix (например, переполнение буфера statd) чревата самыми плачевными последствиями (самый высокий приоритет), для ОС Windows NT может оказаться вообще неприменимой или иметь очень низкую степень риска..

    Заключение

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

    Базы данных по атакам

    В 1999 году компания MITRE Corporation (http://cve.mitre.org/) предложила подход к классификации атак, который впоследствии был реализован в базе данных Common Vulnerabilities and Exposures(CVE). Несмотря на столь привлекательную инициативу, база данных CVE в момент создания не получила широкого распространения среди производителей коммерческих продуктов. Однако в начале 2000 года свою базу данных уязвимостей, используемую в системах анализа защищенности интернет Scanner и System Scanner, в соответствие с CVE привела компания Internet Security Systems (ISS). Она первой начала ссылаться на унифицированные коды CVE. Это дало толчок и всем остальным производителям. В июне 2000 года о своей поддержке CVE заявили компании Cisco, Axent, BindView, IBM и др.

    Компания ISS, которая является лидером в области разработки средств анализа защищенности и обнаружения атак, основана в 1994 году одним из организаторов CERT Кристофером Клаусом. В ISS существует научно-исследовательская группа X-Force, объединяющая экспертов в области обеспечения информационной безопасности. Эта группа не только постоянно отслеживает все публикуемые другими группами реагирования сообщения об обнаруженных уязвимостях, но и сама проводит тестирование программных и аппаратных средств. Результаты этих исследований помещаются в базу данных уязвимостей и угроз (ISS X-Force Threat and Vulnerability Database).

    База данных X-Force (http://xforce.iss.net/) - одна из лучших баз уязвимостей и атак. Доступ к ней может осуществляться как по подписке на свободно распространяемый список рассылки X-Force Alert, так и путем интерактивного поиска в базе данных на Web-сервере компании ISS. Поиск уязвимостей в базе данных возможен по нескольким параметрам: по операционной системе или платформе, подверженной уязвимости; по имени уязвимости; по дате обнаружения; по степени риска (высокая, средняя, низкая).

    Существует также возможность вывода всех уязвимостей за последний, предпоследний или все предыдущие месяцы. Все обнаруженные уязвимости сразу же заносятся в базу данных уязвимостей системы анализа защищенности на уровне сети Internet Scanner, систем анализа защищенности серверов и рабочих станций System Scanner и Desktop Scanner, системы анализа защищенности баз данных Database Scanner и системы обнаружения атак RealSecure.

Алексей Лукацкий
Dago.Org

Другие разделы
Прочие опасности
Вирусы
Хакеры
Киберпреступность
Уязвимость ПО
Новое в разделе
Защита данных
I2R-Журналы
I2R Business
I2R Web Creation
I2R Computer
рассылки библиотеки +
И2Р Программы
Всё о Windows
Программирование
Софт
Мир Linux
Галерея Попова
Каталог I2R
Партнеры
Amicus Studio
NunDesign
Горящие путевки, идеи путешествийMegaTIS.Ru

2000-2008 г.   
Все авторские права соблюдены.
Rambler's Top100