Мирике Кеао (Merike Кеао) в своей книге «Проектирование систем безопасности» определяет атаки спуфинга (spoofing) как «предъявление ложной информации во время процедур идентификации с целью получения несанкционированного доступа к системе и ее сервисам». (К настоящему времени под спуфингом понимается следующее. Во-первых, отуфинг - это имитация соединения, при которой маршрутизатор может реагировать на некоторые сетевые запросы локально, без установления соединения с удаленным хостом. Во-вторых, отуфинг - это получение доступа путем обмана, то есть это ситуация, когда пользователь пытается соединиться с сервером Интернет, прокси-сервером или межсетевым экраном, используя ложный IP-адрес. Другим словами, спуфинг - это подмена сетевых объектов.) Далее она приводит пример атаки спуфинга, в результате которой не пользующийся доверием пользователь смог получить доверенный доступ, воспользовавшись несовершенством протокола аутентификации для реконструкции прослушиваемых пакетов. Данное Мирике определение правильное, но для того, чтобы лучше подчеркнуть разницу между спуфингом и другими сетевыми атаками, его следует уточнить.

Спуфинг - подлог идентификационных данных

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

Спуфинг - активная атака против процедур идентификации

По своей сути спуфинг является посылкой по сети ложного сообщения, то есть сообщения, которое на самом деле не является тем, за что или за кого оно себя выдает. Разберем пример передачи по сети ложного пакета IP с фальсифицированным IP-адресом отправителя. Такой пакет может быть воспринят как сообщение от хоста с более высоким уровнем доверия или как сообщение от несуществующего в сети хоста, обеспечивая в этом случае анонимность злоумышленника. В приведенных случаях при отправке сообщения содержание пакета не было изменено (хотя кто-то будет утверждать, что создатели стека протоколов TCP/IP приняли меры для того, чтобы не принимать пакет, полученный от недоступного хоста). Что касается отправителей пакетов во время атаки Ping of Death, скрывающихся за подложными IP-адресами отправителя, то они были идентифицированы как ошибочные. Поэтому этот тип атаки также относится к спуфингу.

Спуфинг возможен на любом уровне

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

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

Однако верно то, что фальсификацию на уровне содержимого пакета (content-level spoof) труднее обнаружить, поскольку при этом основное внимание должно обращаться на цели кодирования и внутреннее содержимое кода, а не на механизм достижения отказа в работе. Проблема понимания смысла кода настолько серьезна и критична, что заслуживает специального рассмотрения и выработки правил анализа кода. Достаточно сказать, что пакеты, комплекты программного обеспечения и даже целые системы могут стать источником спуфинга, если они располагают скрытыми идентификационными данными, отличающимися от данных, поддерживаемых во время эксплуатации.

Спуфинг никогда не бывает случайным

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

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

И если пользователь умело попросит компьютер солгать по поводу того, кем является пользователь на самом деле, компьютер представит общественности искаженные сведения о пользователе. Компьютер сделает это с согласия пользователя и по его желанию.

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

Это особенно важно, потому что проведенный Кеао анализ случайных изменений маршрутизации, главным образом рабочих станций Sun с многочисленными сетевыми портами, свидетельствует о том, что рабочие станции информируют о передаче данных идентификации, используя протоколы маршрутизации первых версий, например RIPvl (RIPvl, Routing Information Protocol версии 1 - протокол маршрутной информации, стандарт IGP. В сетях IP - внутренний протокол маршрутизации, используемый также для обмена информацией между сетями. В сетях IPX - это динамический протокол, используемый для сбора информации о сети и управления ею). Все, что необходимо выполнить для обновления общедоступных маршрутов по протоколу RIPvl, - это выдать широковещательное объявление о своей доступности. При этом вся сеть переводится в нестабильное состояние.

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

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

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

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

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

В-третьих, не помогайте (вольно или невольно) злоумышленнику нанести ущерб сети.

Спуфинг вслепую и информированный спуфинг

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

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

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

Спуфинг и предательство - разные вещи

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

Спуфинг не обязательно злонамерен

Говоря о спуфинге, важно понимать, что он не обязательно является следствием атаки. Избыточные системы, как, например, протокол «горячей» (оперативной) замены маршрутизатора HSRP (Hot Swappable Router Protocol) или проект Fake Линукса (www.au.vergenet.net/linux/fake), максимизируют период работоспособного состояния системы при помощи исключения получаемых от группы серверов символов точки, вставляемых вместо ошибочных символов. Проблема заключается в том, что при разработке протоколов IP и Ethernet в них было предусмотрено выделение каждому хосту только одного адреса. И если хост отказывает, то адрес становится недоступным. Без фальсификации адресов подключения были бы утеряны, а необходимую надежность можно обеспечить только переключением серверов. В случае фальсификации адресов время простоя можно сделать настолько малым, что для пользователя оно станет практически невидимым.

Предложенная компанией IBM системная сетевая архитектура SNA (системная сетевая архитектура SNA (Systems Network Architecture) содержит общее описание структуры, форматов, протоколов, используемых для передачи информации между программами ЮМ и оборудованием) является примером извлечения пользы из фальсификации передаваемых по сети данных. В архитектуре предусмотрен повторяющийся каждую секунду запрос дежурных пакетов (keepalive packets) по выделенной линии. Если один из таких пакетов будет пропущен, то связь разорвется. Предложенная архитектура приемлема для выделенных линий связи, чью пропускную способность можно прогнозировать, а туннелирование SNA через Интернет со свойственными ему непредсказуемыми задержками передаваемых данных часто приводит к приостановке передачи дежурных пакетов. В результате истекает короткий период времени тайм-аутов. В этом случае подключение должно быть разорвано и восстановлено заново, что требует значительных накладных расходов при туннелировании архитектуры SNA через Интернет. Для разрешения описанной ситуации в многочисленных системах были реализованы средства фальсификации либо дежурных пакетов, либо работы универсальных ЭВМ в локальной архитектуре SNA.

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

Иногда спуфинг на одном из уровней сводится к простой ссылке на другой уровень. Например, многие Web-сервера с независимыми различными именами на самом деле могут являться виртуальными машинами, обслуживаемыми одной инсталляцией Apache. Даже несмотря на то что каждое доменное имя службы имен доменов DNS (механизм, используемый в сети Интернет, при помощи которого устанавливается соответствие между числовыми IP-адресами и текстовыми именами) каждой виртуальной машины разрешается к одному и тому же IP-адресу, при поступлении запроса Apache знает, какой сервер ему обслуживать. Знает, потому что протокол уровня приложений HTTP сохраняет ожидаемое пользователем имя DNS. Протоколы нижнего уровня также ожидают эту информацию, хотя она и была утеряна при разрешении адресов. Поскольку протокол HTTP восстанавливает ее, то тем самым он предоставляет серверу возможность фальсифицировать виртуальные хосты, представляя их одним и тем же доверенным сервером по заданному 1Р-адресу.

В спуфинге нет ничего нового

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

Подмена сетевых объектов: атаки на доверенную идентичность | Защита от хакеров корпоративных сетей | Теоретические основы спуфинга


Защита от хакеров корпоративных сетей



Новости за месяц

  • Август
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс