Решение... Советы... Windows 10

Что такое спуфинг атака. Определение спуфинга. Неправильные представления об IP-спуфинге

Защита от хакеров корпоративных сетей Автор неизвестен Определение спуфинга

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

Мирике 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, используется лишь часть идентификационных данных без знания всего, к чему допущен легитимный пользователь. Информированный спуфинг гораздо эффективнее. Он успешно преодолевает системы защиты, которые проверяют двухсторонние связи между клиентом и сервером. Обычно проверка двухсторонних связей между клиентом и сервером основана на предположении о существовании соединения, если после посылки сервером запроса клиенту клиент в качестве ответа возвращает эхо-ответ.

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

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

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

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

Из книги AutoCAD 2009 автора Орлов Андрей Александрович

Определение диаметра Диаметр можно проставить с помощью команды DIMDIAMETER. Эту команду можно вызвать, нажав на стрелку справа от кнопки Linear (Линейный) на вкладке Annotate (Аннотация) в группе Dimensions (Размеры), а затем выбрав способ задания размеров Diameter (Диаметр).Рассмотрим вставку

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

3.6.1. Определение ограничений Для определения (задания) ограничений используется команда edquota. Ограничение дискового пространства пользователя производится командой edquota с параметром –u (см. рис. 3.7), а определение квот для группы - с параметром –g. После выполнения этой

Из книги Интернет. Новые возможности. Трюки и эффекты автора Баловсяк Надежда Васильевна

Определение IP по ICQ Чтобы определить IP того, кто общается с вами посредством ICQ, достаточно воспользоваться программой UIN2IP (http://neptunix.narod.ru/uin.htm).Вот список некоторых функций UIN2IP:– автоматическое обновление листа;– автоматическое копирование IP-адреса в буфер при двойном

Из книги Практика и проблематика моделирования бизнес-процессов автора Всяких Е И Из книги Сетевые средства Linux автора Смит Родерик В.

Определение правил Для создания правил используется опция --append (или -А) программы iptables. После этой опции задается один или несколько критериев, затем указывается опция --jump (или -j), за которой следует действие ACCEPT, DROP или REJECT. Вызов iptables, предназначенный для создания

Из книги Технология XSLT автора Валиков Алексей Николаевич Из книги OrCAD PSpice. Анализ электрических цепей автора Кеоун Дж. Из книги Программирование КПК и смартфонов на.NET Compact Framework автора Климов Александр П.

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

Из книги Интернет-маркетинг на 100% автора Коллектив авторов

Определение y-параметров Базовые уравнения для определения параметров проводимости четырехполюсника:I1 = y11V1 + y12V2;I2 = y21V1 + y22V2. Рис. 12.1. Четырехполюсник На рис. 12.1 представлен четырехполюсник с условными направлениями токов и напряжений. Проводимости в сомножителях,

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

Определение платформы Если нужно определить, на какой платформе запущено ваше приложение, то здесь вам не обойтись без вызова функции Windows API SystemParametersInfo.Для начала нужно создать новый класс PlatformDetector, в котором следует объявить функцию SystemParametersInfo и методы определения

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.

Теоретические основы спуфинга

Из книги автора

Малоизвестные подробности: разработка систем спуфинга Ранее уже были обсуждены средства антиспуфинга, начиная от простых и заканчивая сложными, но по-прежнему не был получен ответ на вопрос «Как на самом деле создаются системы спуфинга?». Часто ответ на этот вопрос

Из книги автора

29.1. Определение Web–страницы Web–страница (или Web–документ) состоит из тегов HTML. Когда броузер загружает Web–страницу, тега определяют способ отображения этой страницы на экране. Web–страница может состоять из многих элементов, включая ссылки (которые позволяют связывать

Из книги автора

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

Энциклопедичный YouTube

    1 / 3

    Teknik IP Spoofing dalam Membajak Website

    2. Беспроводные сети.Ядро стека tcp/ip.

    Субтитры
Описание

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

  • Маршрутизация от источника (): в протоколе IP существует возможность маршрутизации от источника, которая позволяет задавать маршрут для ответных пакетов. Этот маршрут представляет собой набор IP-адресов маршрутизаторов, через которые должен проследовать пакет. Для крэкера достаточно предоставить маршрут для пакетов до маршрутизатора, им контролируемого. В наше время большинство реализаций стека TCP/IP отбраковывают пакеты с маршрутизацией от источника;
  • Перемаршрутизация (Re-routing): если маршрутизатор использует протокол RIP , то его таблицы можно изменить, присылая ему RIP-пакеты с новой информацией о маршрутах. С помощью этого крэкер добивается направления пакетов на подконтрольный ему маршрутизатор.
  • Применение атаки
  • клиент отправляет TCP-пакет с установленным флагом SYN , также он выбирает ISNc (Initial Sequence Number клиента, Sequence Number).
  • сервер увеличивает на единицу ISNc и отправляет его обратно вместе со своим ISNs (Initial Sequence Number сервера, Acknowledgement Number), а так же флагами SYN+ACK .
  • клиент отвечает пакетом ACK , содержащим ISNs, увеличенный на единицу.
  • Применяя IP-spoofing, крэкер не сможет увидеть ISNs, так как ответ от сервера ему не придет. ISNs ему нужен на третьем шаге, когда он должен будет увеличить его на 1 и отправить. Чтобы установить соединение от имени чужого IP, атакующий должен угадать ISNs. В старых операционных системах (ОС) было очень легко угадать ISN - он увеличивался на единицу с каждым соединением. Современные ОС используют механизм, который предотвращает угадывание ISN. Современные сервисы используют для аутентификации имя пользователя и пароль и передают данные в зашифрованном виде.

    SYN-флуд

    Разновидность DoS-атаки . Злоумышленник посылает SYN-запросы на удаленный сервер, подменяя адрес отправителя. Ответный SYN+ACK отправляется на несуществующий адрес, в результате в очереди подключений появляются так называемые полуоткрытые соединения (англ. half-open connection), ожидающие подтверждения от клиента. По истечении определенного тайм-аута эти подключения отбрасываются. Атака основывается на уязвимости ограничения ресурсов операционной системы для полуоткрытых соединений, описанной в 1996 году группой CERT , согласно которой очередь для таких подключений была очень короткой (например, в Solaris допускалось не более восьми подключений), а тайм-аут подключений - достаточно продолжительным (по RFC 1122 - 3 минуты).

    DNS усиление

    Другая разновидность DoS-атаки. Атакующий компьютер посылает запросы на DNS-сервер , указывая в качестве адреса отправителя - IP атакуемого компьютера. Ответ DNS-сервера превышает объем запроса в несколько десятков раз, что усиливает вероятность успешной DoS-атаки.

    TCP hijacking

    Единственными идентификаторами, по которым конечный хост может различать TCP-абонентов и TCP-соединения, являются поля Sequence Number и Acknowledge Number. Зная эти поля и используя подмену IP адреса источника пакета на IP-адрес одного из абонентов, атакующий может вставить любые данные, которые приведут к разрыву соединения, к состоянию ошибки, либо же будут выполнять какую-либо функцию во благо атакующего. Жертва может даже не заметить этих манипуляций.

    Аутентификация на основе IP-адреса

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

    IP-спуфинг происходит в том случае, когда хакер, находящийся внутри корпорации или вне ее, выдает себя за санкционированного пользователя. Это можно сделать двумя способами: хакер может воспользоваться или IP-адресом, находящимся в пределах диапазона санкционированных IP-адресов, или авторизованным внешним адресом, которому разрешается доступ к определенным сетевым ресурсам. Атаки IP-спуфинга часто являются отправной точкой для прочих атак. Классический пример -- атака DoS, которая начинается с чужого адреса, скрывающего истинную личность хакера.

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

    Если же хакеру удается поменять таблицы маршрутизации и направить трафик на ложный IP-адрес, он получит все пакеты и сможет отвечать на них так, как будто является санкционированным пользователем.

    Угрозу спуфинга можно ослабить (но не устранить) с помощью перечисленных ниже мер.

    • * Контроль доступа. Самый простой способ предотвращения IP-спуфинга состоит в правильной настройке управления доступом. Чтобы снизить эффективность IP-спуфинга, настройте контроль доступа на отсечение любого трафика, поступающего из внешней сети с исходным адресом, который должен располагаться внутри вашей сети. Правда, это помогает бороться с IP-спуфингом, когда санкционированными являются только внутренние адреса; если же санкционированными являются и некоторые адреса внешней сети, данный метод становится неэффективным.
    • * Фильтрация RFC 2827. Вы можете пресечь попытки спуфинга чужих сетей пользователями вашей сети (и стать добропорядочным сетевым гражданином). Для этого необходимо отбраковывать любой исходящий трафик, исходный адрес которого не является одним из IP-адресов вашей организации. Данный тип фильтрации, известный под названием RFC 2827, может выполнять и ваш провайдер (ISP). В результате отбраковывается весь трафик, который не имеет исходного адреса, ожидаемого на определенном интерфейсе. К примеру, если ISP предоставляет соединение с IP-адресом 15.1.1.0/24, он может настроить фильтр таким образом, чтобы с данного интерфейса на маршрутизатор ISP допускался только трафик, поступающий с адреса 15.1.1.0/24. Отметим, что до тех пор, пока все провайдеры не внедрят этот тип фильтрации, его эффективность будет намного ниже возможной. Кроме того, чем дальше от фильтруемых устройств, тем труднее проводить точную фильтрацию. Например, фильтрация RFC 2827 на уровне маршрутизатора доступа требует пропуска всего трафика с главного сетевого адреса (10.0.0.0/8), тогда как на уровне распределения (в данной архитектуре) можно ограничить трафик более точно (адрес -- 10.1.5.0/24).

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

    Спуфинг довольно интересный метод атак, которым многие профессионалы в области ИБ пренебрегают. А зря, очень даже зря. Из данной статьи ты поймешь, насколько обманчив может быть этот многообразный мир. Не верь своим глазам!

    WARNING

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

    Intro

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

    Прошлое и настоящее спуфинга

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

    Первые IDN-клоны

    Атаку с использованием IDN-омографов впервые описали в 2001 году Евгений Габрилович и Алекс Гонтмахер из израильского технологического института Технион. Первый известный случай успешной атаки, использующий данный метод, был предан огласке в 2005 году на хакерской конференции ShmooCon. Хакерам удалось зарегистрировать подставной домен pаypal.com (xn--pypal-4ve.com в Punycode), где первая буква а - кириллическая. Благодаря публикации на Slashdot.org к проблеме было привлечено внимание общественности, после чего как браузеры, так и администраторы многих доменов верхнего уровня выработали и реализовали контрмеры.

    Итак, когда Сеть только зарождалась, большинство усилий программистов и разработчиков были направлены в основном на оптимизацию алгоритмов работы сетевых протоколов. Безопасность не была настолько критичной задачей, как сегодня, и ей, как часто это бывает, уделяли очень мало внимания. Как результат, получаем банальные и фундаментальные ошибки в сетевых протоколах, которые продолжают существовать и сегодня, несмотря на различного рода заплатки (ибо никакой заплатой не залатать логическую ошибку протокола). Здесь необходимы тотальные изменения, которые Сеть в существующем представлении просто не переживет. Например, в статье «Атаки на DNS: вчера, сегодня, завтра» (][#5 2012) я рассказывал о приводящих к катастрофическим последствиям фундаментальных уязвимостях в DNS-системах - использовании протокола UDP (который, в отличие от TCP/IP, является небезопасным, так как в нем отсутствует встроенный механизм для предотвращения спуфинга) и локального кеша.

    Векторы

    В зависимости от целей и задач векторы спуфинга можно разделить по направлениям на локальные (local) и сетевые (net). Именно их мы и рассмотрим в этой статье. В качестве объекта атак при локальном векторе чаще всего рассматривается непосредственно сама ОС, установленная на компьютере жертвы, а также определенного рода приложения, которые зачастую требуют дополнительного анализа в зависимости от ситуации. Объекты атак при сетевом векторе, напротив, более абстрагированны. Основными из них являются компоненты информационных систем, представленных как локальными, так и глобальными сетями. Рассмотрим основные виды спуфинга.

  • Spoofing TCP/IP & UDP - атаки на уровне транспорта. Из-за фундаментальных ошибок реализации транспорта протоколов TCP и UDP возможны следующие типы атак:
    • IP spoofing - идея состоит в подмене IP-адреса через изменение значения поля source в теле IP-пакета. Применяется с целью подмены адреса атакующего, к примеру, для того, чтобы вызвать ответный пакет на нужный адрес;
    • ARP spoofing - техника атаки в Ethernet-сетях, позволяющая перехватывать трафик между хостами. Основана на использовании протокола ARP;
    • DNS Cache Poisoning - отравление DNS-кеша сервера;
    • NetBIOS/NBNS spoofing - основана на особенностях резолва имен локальных машин внутри сетей Microsoft.
  • Referrer spoofing - подмена реферера.
  • Poisoning of file-sharing networks - фишинг в файлообменных сетях.
  • Caller ID spoofing - подмена номера звонящего телефона в VoIP-сетях
  • E-mail address spoofing - подмена адреса e-mail отправителя.
  • GPS Spoofing - подмена пакетов со спутника с целью сбить с толку GPS-устройство.
  • Voice Mail spoofing - подмена номеров голосовой почты с целью фишинга паролей жертвы.
  • SMS spoofing - метод спуфинга, основанный на подмене номеров отправителя SMS-сообщения.
  • Новейшие наработки в области спуфинга

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

    Flamer и скандальный спуфинг сертификатов Microsoft

    Microsoft Security Advisory (2718704) - Unauthorized Digital Certificates Could Allow Spoofing. Довольно интересная вещь была найдена в экземплярах нашумевшего шпионского бота Flamer: по результатам реверс-инжиниринга компонентов этого зловреда был обнаружен участок кода, отвечающий за проведение спуфинг-атак типа фишинг. Имитируя предоставление оригинальных сертификатов крупных компаний, бот проводил MITM-атаку, целью которой был перехват персональных данных пользователей корпоративной сети с последующей отправкой на сервер разработчиков. Этот спуфинг-инцидент получил Security Advisory #2718704 с рангом опасности High.

    Спуфинг в ОС 1. Extension Spoofing - спуфинг расширения файла

    Техника, увидевшая свет благодаря наработкам китайского исследователя в области информационной безопасности Zhitao Zhou. Суть данной техники заключается в использовании управляющего символа 0x202E (RLO) в имени файла, что позволяет изменить порядок символов при отображении названия файла в проводнике Windows (explorer.exe). Приведу пример использования этой простой техники:

    Super music uploaded by 3pm.SCR

    Файл 3pm.SCR представляет собой не что иное, как исполняемый файл, реализующий определенные функции (троянская программа. - Прим. редактора). Если в начале имени файла «3pm.SRC» вставить управляющий символ 0x202E (см. рис. 1), то порядок символов меняется на обратный и имя файла отображается в проводнике Windows уже иначе:

    Super music uploaded by RCS.mp3

    Для изменения иконки файла следует использовать любой редактор ресурсов (Restorator, Resource Hacker). Данная техника рассчитана на неосторожного пользователя, который может принять этот файл за песню и открыть двойным щелчком, тем самым запустив зловредную программу. К сожалению, данная техника не будет работать в программах - аналогах проводника, поддерживающих Юникод. Ниже приведен код на C#, который выполняет изменение имени файла, добавляя в начало управляющий символ 0x202E:

    Public Sub U_202E(file As String, extension As String) Dim d As Integer = file.Length - 4 Dim u As Char = ChrW(823) Dim t As Char() = extension.ToCharArray() Array.Reverse(t) Dim dest As String = file.Substring(0, d) & u & New String(t) & file.Substring(d) System.IO.File.Move(file, dest) End Sub

    2. File Name Spoofing - клонирование имени файла

    Данная техника была представлена японским исследователем Yosuke Hasegawa на конференции Security-Momiji. Она основана на использовании символов нулевой длины (ZERO WIDTH Characters), которые никак не влияют на отображение названия файла (см. рис. 2). Ниже приведены все символы из этой категории:

    U+200B (ZERO WIDTH SPACE) - U+200C (ZERO WIDTH NON-JOINER) - U+200D (ZERO WIDTH JOINER) - U+FEFF (ZERO WIDTH NO-BREAK SPACE) - U+202A (LEFT-TO-RIGHT EMBEDDING)

    Помимо этого возможно использовать кодировку UTF для фальсификации имен существующих файлов. Данную технику часто применяет современная малварь. В поле моего зрения попадались образцы вредоносов, которые проводили такого рода атаки. К примеру, зловред TrojanDropper:Win32/Vundo.L (использовался для фишинга сайтов vk.com, vkontakte.ru, *odnoklassniki.ru) задействует именно эту технику.


    Файл %SystemRoot%\system32\drivers\etc\hosts копировался в файл-«клон» hosts с UTF-символом «о» (0х043E), после чего оригинальному файлу hosts придавался атрибут скрытого файла и его содержимое перезаписывалось с добавлением следующих записей:

    92.38.66.111 odnoklassniki.ru 92.38.66.111 vk.com 92.38.66.111 vkontakte.ru


    Спуфинг веб-браузеров 1. Status bar / Link spoof

    Принцип данной атаки заключается в динамической подмене адреса гипертекстовой ссылки (). К примеру, жертва наводит курсор мыши на ссылку, после чего в статусбаре браузера отображается адрес, по которому ведет данная ссылка. После клика на ссылку хитрый JavaScript-код подменяет в динамике адрес перехода. Мой знакомый исследователь, известный под ником iamjuza, занимался изучением и разработкой PoC для эксплуатации данной техники на практике, но его разработки не были универсальны и действовали только на конкретных браузерах. Проведя аналогичное исследование, я получил более удачные результаты, сумев добиться универсальности эксплуатации этой техники спуфера для всех браузерных движков. Proof-of-Concept опубликован на ресурсе 1337day.com . Техническая реализация выглядит следующим образом:

    Method this.href=" :