Культ Мертвой Коровы, или Темная Сторона Интернет
Украсть или поломать...
Угроза локальной сети или даже одному компьютеру, подключённому к Интернет, может быть двух типов: злоумышленник может совершить деструктивные действия против компьютера жерты (например, просто "уронить" машину) или может украсть информацию. Однако потенциальные опасности для различных операционных систем различны.
Несмотря на колоссальное давление со стороны Windows NT операционные системы Unix до сих пор являются стандартом в Интернет. Вероятно, это связано с тем, что Unix изначально рассчитан на работу с сетью и в сети. Невозможно представить Linux без сетевых демонов (программ предоставляющих некий сервис в сеть) ftpd, httpd, named, telnetd и т.д. Наличие демонов стандартных сервисов глобальной сети является нормой для приличного TCP/IP стека. Поэтому не приходится удивляться, читая в новостях о том, что злобные хакеры украли данные с юникс-сервера. Однако причиной взломов является не уязвимость системы как таковой, а, как правило, халатность администраторов. Отличительной особенностью Linux является доступность множества бесплатных утилит проверяющих наличие возможных дыр в безопасности и дающих абсолютно конкретные советы типа "Обнаружена старая версия sendmail. Во избежание проблем необходимо заменить её более свежей". В качестве примера такой программы можно привести, например, знаменитую SATAN (Security Administrator's Tool for Analyzing Networks). Кроме того, информация об обнаруженных дырах в защите появляется практически одновременно с исправлениями, поэтому только лень или собственная дремучесть могут помешать администратору Linux-сервера обезопасить себя от вторжения. За обновлением коммерческих версий UNIX, как правило, внимательно следят их изготовители.
Гораздо меньше повезло армии пользователей продуктов M$. С одной стороны украсть информацию из Windows затруднительно, за исключением возможности использования великолепного продукта BackOrifice. С другой, пользователям грозят постоянные "зависания" компьютера, а это тоже не слишком приятно, к тому же чревато потерей данных или, даже, нарушением работоспособности операционной системы. Впрочем, какой здравомыслящий человек доверит ответственные данные операционной системе, которая в принципе не способна на большее, чем быть платформой для игрушек, печатной машинкой и калькулятором :)? Сложность похищения информации вызвана, конечно, не безупречностью TCP/IP стека Windows, а его убогостью и, как следствие, принципиальной неспособности операционных систем этого клана нормально предоставлять информационные ресурсы в сеть. Под убогостью стека подразумевается отсутствие в стандартной поставке сетевых демонов и крайне ограниченный набор клиентских утилит (host, nslookup, talk и т.д.) Зато существует огромное множество программок под самые разные платформы использующих ошибки в стеке протоколов изготовления MicroSoft и способных "уронить" Windows... Ситуация усугубляется безумной популярностью всяческих Windows и не слишком порядочным поведением изготовителя этих операционных систем (см. ниже о реакции MS на появление BackOrifice). Поэтому, любителям "форточек", желающим обезопасить себя от агрессоров из Интернет или от шутников из локальной сети, рекомендуется следить за патчами появляющимися периодически на www.microsoft.com, а в случае локальной сети, подключенной к Интернет лучше раскошелиться на какой-нибудь серьёзный продукт третьего производителя, например, Firewall-1 компании CheckPoint. В противном случае, работа будет возможна только до тех пор, пока ваш IP не попадёт в руки какому-нибудь рассерженному любителю поиздеваться над майкрософтскими багами.
Таким образом, если проблема безопасности в Unix - это проблема конфиденциальности информации, то проблема безопасности в Windows - это проблема работоспособности этой операционной системы.
Не могу не сказать несколько слов о защищённости любимой мною OS/2. Мне не приходилось встречать в печати информацию о взломе OS/2, несмотря на наличие в её TCP/IP-стеке достаточно полного набор сетевых демонов. Не удалось мне также подвесить её различными утилитками. Скорее всего, причину следует искать в том, что OS/2, в отличие от Linux, коммерческая система, но, в то же время, IBM значительно более ответственно, чем, например, MicroSoft относится к качеству продаваемых ею продуктов. С появлением платного обновления стека TCP/IP 4.1 ситуация с безопасностью только улучшилась - появился встроенный в стек firewall, telnetd стал многопользовательским и т.д. Своеобразной гарантией безопасности работы OS/2 в Интернет является её небольшая распространенность и малоизученность её стека злоумышленниками.
Перед тем как рассмотреть некоторые виды атак, вспомним основные термины, тем или иным образом связанные с безопасностью в IP-сетях:
Теперь об атаках:
Спуфингом называется подмена адреса отправителя
в заголовке IP-пакета с целью пробить аутентификацию, основанную на определении
IP-адреса источника пакета. Несмотря на то, что ответный пакет никогда не
вернётся к атакующему, спуфинг является лучшим другом хакера-злоумышленника
и применяется в качестве составляющей множества других атак.
Является разновидностью атак типа denial-of-service
(отказ от обслуживания). Осуществляется она с помощью создания полуоткрытых
или недооткрытых (half-open) соединений. Ей подвержен стек любой операционной
системы или даже стек маршрутизатора, если он ещё и предоставляет какой-либо
TCP-сервис, например, "echo". Рассмотрим нормальный процесс установления
соединения клиента (ftp, http, telnet) с сервером:
Таким образом, соединение открыто, и сервер
может обмениваться с клиентом специфичными для конкретного приложения данными.
Если сервер не получил сообщение ACK, то будет ожидать его в течение некоторого
времени (timeout) прежде, чем закроет полуоткрытое соединение. До закрытия,
сервер сохраняет в памяти структуру данных описывающих ожидающие установления
соединения. Эта структура со временем переполняется, и сервер, в лучшем
случае, лишается возможности открывать новые соединения до тех пор, пока
список полуоткрытых соединений не очистится. В худшем случае сервер может
выйти из строя.
Также относится к атакам типа denial-of-service и работает на базе Internet Control Message Protocol (ICMP). Возможно, не каждый пользователь знаком с названием этого протокола, однако подавляющее большинство работающих с Сетью сталкивалось с программой реализующей одну из его функций - командой "PING". Эта безобидная программа предназначена для определения доступности какого-либо хоста (удалённого устройства имеющего IP-адрес) посылкой пакета эхо-запроса ICMP. Если получен пакет с эхо-ответом, то хост считается доступным. Однако пакет может быть отправлен не по адресу конкретного хоста, а по широковещательному (broadcast) адресу сети. [Широковещательный адрес представляет собой адрес, в котором разряды отведённые под адрес хоста равны единице. Например, 10.255.255.255 - это широковещательный адрес для сети 10.0.0.0. Если такая сеть класса A разбита на 256 подсетей, то широковещательный адрес для подсети 10.50.0.0 будет 10.50.255.255. Впрочем, сетевой адрес, в котором разряды, отведённые под адрес хоста, равны нулю, тоже может обеспечить широковещательный отклик.] В этом случае пакет будет доставлен всем машинам в этой сети. Очевидно, что если на широковещательный пакет ответят (могут и не ответить - см.ниже) несколько сотен или тысяч машин, то компьютер-инициатор эхо-запроса может не справиться с обработкой эхо-ответов.
Впрочем, вернёмся к недобрым помыслам злоумышленников. Схема их действий проста - они посылают ICMP пакет, в котором адрес отправителя является адресом жертвы (спуфинг), а в качестве получателя указывается широковещательный адрес некоего посредника. Компьютеры посредника отвечают на полученный эхо-запрос посылкой пакетов по адресу отправителя, т.е. выбранной злоумышленником жертве. Дальнейшее предсказать трудно: компьютер может временно оказаться неспособным работать в сети, может "зависнуть", но возможно и нарушение функционирования самой сети из-за чрезмерного трафика.
Сделать невозможной атаку SMURF могут маршрутизаторы в сети потенциального посредника. Если они фильтруют широковещательный трафик, то совесть настроившего их сетевого администратора может быть чиста - компьютеры во вверенной ему сети не будут посредниками в деструктивных действиях внешнего злоумышленника против неизвестной жертвы. Впрочем, инициатор атаки может находиться и внутри сети. В этом случае маршрутизаторы не помогут, и ответственность за атаку возлагается на хосты, которые также не должны отвечать на broadcast ICMP пакеты.
От описанных атак можно защититься, пожалуй,
только приличным брандмауэром. Теперь рассмотрим некоторые виды атак рассчитанных
исключительно на "кривой" стек.
Вероятно наибольшее количество реализаций имеет именно эта парочка. При желании, в Сети можно найти множество программ использующих именно эти два вида атак.
Принцип работы первой достаточно прост - жертве отправляется пакет, например, SYN с запросом на соединение, в котором адрес получателя, т.е. адрес жертвы, идентичен адресу отправителя (снова спуфинг). Если TCP/IP-стек операционной системы жертвы имеет соответствующий баг, и не сможет разобраться с искусственно созданной злоумышленником ситуацией, то последствия могут быть самые печальные - вплоть до дампа памяти...
Воздействие Teardrop также основано на использовании
возможных ошибок в TCP/IP-стеке жертвы. Злоумышленник формирует последовательность
фрагментированных пакетов, фрагменты которых перекрываются. Если при их
сборке происходит ошибка, то пользователя может "порадовать" дамп
памяти, или машина может просто намертво зависнуть. Windows NT 4.0 не подвержен
этой атаке только с Service Pack 3 и postSP3fix, Windows 95 также нуждается
в соответствующих фиксах.
Эта скромная программулька размером всего
в 120k(!) является "троянским конём". Может она не слишком многое
- она "всего лишь" предоставляет анонимному удалённому пользователю
полный контроль над Windows9x подключенному к Интернет. Судите сами:
Приведенный список возможностей не полон, так что Back Orifice почти серьёзно можно рекомендовать сетевым администраторам в качестве бесплатной альтернативы таким недешёвым продуктам как Landesk Management Suite или Managewise, точнее, входящим в эти пакеты средствам доступа к дэсктопам юзеров. Загрузить BO и найти полную информацию можно по адресу http://www.cultdeadcow.com (можно также и у нас - http://insecure.nm.ru/bo2k).
Весьма примечательной была реакция MicroSoft на Back Orifice: "Мы не придаем большого значения появлению этой программы, и не думаем, что на неё следует обращать внимание нашим клиентам". С этой цитатой можно также познакомиться по адресу выше. В самом деле - ну "через Интернет", ну "анонимный", ну "полный контроль", но BackOffice-то лучше! А если пользователя вдруг взволновало, что некий anonymous будет втихаря чужой реестр редактировать, так это проблемы пользователя...
Как и все средства удалённого администрирования, BO состоит из двух частей - сервера и клиента. Сервер запускается один раз на машине жертвы, он быстро отрабатывает и удаляет себя, но до удаления он успевает спрятаться в недрах Win95 так, что найти его следы нелегко. Распространяется BO очень просто - некоторые мои знакомые уже получили (не от меня, конечно :)) "ускорители IRC", "патчи к ICQ", причем одного и того же размера 120k... Клиенты Back Orifice существуют под Unix, OS/2 и Win32. Кроме того, сервер запросто предоставит любому удалённому броузеру жесткий диск, на котором окопалась Win9x. Он же позволит из броузера сделать download или upload... Клиент представляет собой текстовую оболочку со встроенной помощью, достаточно удобную в использовании. Под win32 есть GUI-клиент, однако, его функциональность вызывает сомнения (как и всё win32 :))). Интересен ещё один факт: Win95 с установленным сервером BO напрочь отказался падать под воздействием атак. Может быть, BO все баги исправил?!
Не стоит уповать на амбициозные продукты, наподобие системы безопасности доступной по адресу http://lockdown2000.com, ранее известному как www.hackerfree98.com. Один пользователь клиента BO сообщил, что обнаружил указанную программку на удалённом компьютере, уверенную, что доверенный ей компьютер находится в полной безопасности.
ИТОГО
Если вы - пользователь Linux, то сам Линус Торвальдс велел вам разбираться в вопросах работы IP-сетей. Так что, вовремя набирайте "make" и не обвешивайте свою машину всеми известными и, зачастую, не нужными вам сервисами.
Если вы - пользователь Windows, то это тоже не фатально :). У вас есть надёжнейший способ обеспечить безопасность ваших данных - не подключайтесь к Интернет. Впрочем, это шутка. Не стоит думать, что Сеть перенасыщена страшными хакерами, которые только и заняты тем, что строят козни против пользователей Windows, коих пока подавляющее большинство. Однако, пользуясь IRC или ICQ, т.е. службами, с помощью которых, можно узнать IP-адрес, лучше обезопасить себя от возможных диверсий ваших собеседников и поставить соответствующие фиксы и патчи, если, конечно, вас не защищает брандмауэр.
Пользователи OS/2 могли бы эту статью и не читать - IBM почти не заботится о своём детище, но то, что она делает, она делает надёжно и качественно.