Определение спуфинга

We use cookies. Read the Privacy and Cookie Policy

Определение спуфинга

Мирике Keao (Merike Keao) в своей книге «Проектирование систем безопасности» определяет атаки спуфинга (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, и обладая возможностью и желанием сделать это.

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

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

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

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

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

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

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

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

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

Данный текст является ознакомительным фрагментом.