Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Компьютерные системы как среда проведения вторжений и атак.doc
Скачиваний:
25
Добавлен:
30.04.2022
Размер:
2.47 Mб
Скачать

1.2.4. Атаки на основе внедрения ложного

доверенного объекта

Угроза внедрения ложного доверенного объекта в КС является активным воздействием, совершаемым с целью нарушения конфиденциальности и целостности информации.

Рассмотрим два известных способа реализации угрозы внедрения ложного доверенного объекта в КС (применительно к Internet):

1. внедрение ложного объекта путем использования недостатков алгоритмов удаленного поиска:

- ARP spoofing – подмена таблицы преобразования адресов при использовании широковещательного ARP-запроса

- DNS spoofing – подмена сервера доменной системы имён

2. IP-spoofing – внедрение ложного объекта путем навязывания ложного маршрута.

1) Подмена адреса источника (IP Spoofing)

Целью данной атаки является узурпировать IP-адрес определенной машины. Это позволяет злоумышленнику либо скрыть источник атаки (используется в атаках типа "отказ в обслуживании"), либо извлечь какую-либо пользу из доверительных связей двух машин. Здесь мы рассмотрим второй вариант использования атаки IP Spoofing. Для злоумышленника, базовый принцип атаки заключается в фальсификации собственных IP-пакетов (например, с помощью таких программ, как hping2 или nemesis) в которых изменяется, среди прочего, IP-адрес источника. Атака IP Spoofing часто называется "слепой подменой" (Blind Spoofing). Это связано с тем, что ответы на фальсифицированные пакеты не могут прийти машине атакующего, ведь был изменен исходящий адрес [92]. Следовательно, они отправляются машине, адрес которой атакующий использовал для подмены. Однако, все-таки, существуют два метода получения ответов:

1. Маршрутизация от источника (Source Routing): в протоколе IP существует возможность маршрутизации от источника, которая позволяет задавать маршрут для ответных пакетов. Этот маршрут представляет собой набор IP-адресов маршрутизаторов, через которые должен проследовать пакет. Для злоумышленника достаточно предоставить маршрут для пакетов до маршрутизатора, им контролируемого. В наше время, большинство реализаций стека TCP/IP отбраковывают пакеты с маршрутизацией от источника.

2. Перемаршрутизация (Re-routing): если маршрутизатор использует протокол RIP, то его таблицы можно изменить присылая ему RIP-пакеты с новой информацией о маршрутах. С помощью этого, атакующий добивается направления пакетов на подконтрольный ему маршрутизатор.

Эти технологии трудно применимы, поэтому чаще атака выполняется без получения ответных пакетов целевого сервера. Слепая подмена используется против таких сервисов, как rlogin и rsh. Их механизмы аутентификации основаны лишь на исходных IP-адресах клиентских машин. Это широко известная атака (Кевин Митник применил ее против машины Цутому Шимомуры в 1994 году). Атака требует некоторых шагов:

- обнаружение IP-адреса доверенной машины, например, при помощи команды showmount -e, которая выводит список хостов, для которых экспортируются файловые системы, или команды rpcinfo, выдающей больше информации;

- выполнение атаки "отказ в обслуживании" против доверенной машины, используя, например, SYN-наводнение (SYN Flooding, детальнее об атаках такого типа смотрите ниже). Это необходимо для предотвращения возможности ответа доверенной машины на пакеты от целевого сервера. В противном случае, машина пошлет серверу пакеты TCP RST, которые оборвут попытку соединения;

- предугадывание последовательного номера TCP: каждому TCP-пакету присваивается начальный номер последовательности. Стек TCP/IP операционной системы генерирует его линейно, в зависимости от времени, случайным или псевдослучайным методом. Злоумышленник может атаковать только те системы, которые пользуются прогнозируемыми методами (линейным или основанном на времени) для вычисления номера последовательности [92];

- атака заключается в открытии TCP-соединения с желаемым портом (например rsh). Он происходит в три шага (механизм тройного квитирования):

1. клиент шлет серверу пакет с выставленным флагом TCP SYN и номером последовательности x;

2. сервер отвечает пакетом с выставленными флагами TCP SYN и ACK (с номером подтверждения x+1). Номер последовательности данного пакеты равен y;

3. клиент шлет пакет с флагом TCP ACK (и номером подтверждения y+1) серверу.

Во время атаки злоумышленник не получает от сервера пакет с выставленными флагами SYN-ACK. Для того, чтобы установить соединение, он прогнозирует номер последовательности y и посылает пакет с предполагаемым номером подтверждения (y+1). После этого соединение установлено. Теперь атакующий может послать команду сервису rsh, такую, как echo ++ >> /.rhosts и получить дополнительные права доступа. Чтобы сделать это, он шлет пакет с выставленным флагом TCP PSH (Push): полученные данные немедленно передаются протоколу более высокого уровня (в нашем случае сервису rsh). После чего, кракер может подключаться к серверу по rlogin или rsh без подмены адреса источника [92]. Рис. 1.7 демонстрирует шаги по реализации атаки IP Spoofing:

Рис. 1.7. Атака IP Spoofing направленная на сервис rsh

Атакующий использует машину A, машина C -- это доверенная система. Обозначение A(C) символизирует пакет, отправленный машиной А с адресом машины C в качестве адреса источника.

2) Подмена ARP-информации (ARP Spoofing)

Эта атака, известная также под именем ARP Redirect, перенаправляет сетевой трафик от одной или более машин к машине злоумышленника. Выполняется в физической сети жертвы. Давайте вспомним, что представляет собой протокол ARP и как он работает. ARP (протокол разрешения адресов, Address Resolution Protocol) реализует механизм разрешения IP-адресов в MAC-адреса Ethernet. Сетевое оборудование общается между собой путем обмена Ethernet-фреймами (если речь идет об Ethernet-сети) на канальном уровне. Для обеспечения возможности передачи этой информации необходимо, чтобы каждый сетевой интерфейс имел свой уникальный адрес в сети Ethernet. Он называется MAC-адресом (MAC=Media Access Control) [92].

При посылке IP-пакета, отправляющая машина должна знать MAC-адрес получателя. Чтобы его узнать, в локальную сеть посылается широковещательный ARP-запрос. В нем спрашивается "Какой MAC-адрес соответствует такому-то IP-адресу?". Машина с соответствующим IP-адресом отвечает ARP-пакетом, содержащим запрошенный MAC-адрес. С этого момента, отправляющая машина знает MAC-адрес, соответствующий IP-адресу назначения. Это соответствие сохраняется некоторое время в кэше (чтобы не выполнять запрос каждый раз при посылке IP-пакета).

Рассматриваемая атака изменяет кэш целевой машины. Злоумышленник шлет ARP-ответы целевой машине с информацией о новом MAC-адресе, соответствующем (например) IP-адресу шлюза. На самом деле, этот MAC-адрес соответствует интерфейсу машины злоумышленника. Следовательно, весь трафик к шлюзу будет теперь получать машина злоумышленника. Теперь можно прослушивать трафик (и/или изменять его). После этого, трафик будет направляться к реальному целевому адресу и таким образом никто не заметит изменений. Атака ARP Spoofing используется в локальной сети, построенной на коммутаторах. С ее помощью можно перенаправить поток Ethernet-фреймов на другие порты, в соответствии с MAC-адресом. После чего злоумышленник может перехватывать все пакеты на своем порту. Таким образом, атака ARP Spoofing позволяет перехватывать трафик машин, расположенных на разных портах коммутатора.Для реализации атаки ARP Spoofing, злоумышленник может воспользоваться генераторами ARP-пакетов, например ARPSpoof или nemesis. Пример: машина-жертва с адресом 10.0.0.171, ее шлюз -- 10.0.0.1, машина злоумышленника имеет адрес 10.0.0.227. Результат выполнения команды traceroute перед атакой представлен на рис. 1.8:

Рис. 1.8. Запуск программы ARP spoof

Посылаемые пакеты - это ARP-ответы, изменяющие кэш машины 10.0.0.171. Они несут информацию, что с адресом 10.0.0.1 теперь ассоциирован MAC-адрес 00:00:86:35:c9:3f. Теперь ARP-кэш машины 10.0.0.171 выглядит так:

root@cible -> ~$ arp

Address HWtype HWAddress Flags Mask Iface

10.0.0.1 ether 00:00:86:35:c9:3f C eth0

10.0.0.227 ether 00:00:86:35:c9:3f C eth0

Чтобы убедится, что весь трафик теперь проходит через машину 10.0.0.227, достаточно еще раз запустить traceroute к шлюзу10.0.0.1:

root@cible -> ~$ traceroute 10.0.0.1

traceroute to 10.0.0.1 (10.0.0.1), 30 hops max, 40 byte packets

1 10.0.0.227 (10.0.0.227) 1.712 ms 1.465 ms 1.501 ms

2 10.0.0.1 (10.0.0.1) 2.238 ms 2.121 ms 2.169 ms

Теперь злоумышленник может прослушивать трафик между машинами 10.0.0.171 и 10.0.0.1. Он должен не забыть активировать маршрутизацию на своей машине 10.0.0.227.

3) Подмена DNS ID (DNS ID Spoofing)

Заголовок пакета DNS-протокола содержит идентификационное поле для соответствия запросов и ответов. Целью подмены DNS ID является посылка своего ответа на DNS-запрос до того, как ответит настоящий DNS-сервер. Для выполнения этого, нужно спрогнозировать идентификатор запроса. Локально это реализуется простым прослушиванием сетевого трафика. Однако, удаленно выполнить эту задачу гораздо сложнее. Существуют различные методы: - проверка всех доступных значений идентификационного поля. Не очень практично, поскольку общее количество возможных значений составляет 65535 (размер поля 16 бит);

- посылка нескольких сотен DNS-запросов в правильном порядке. Очевидно, что этот метод не очень надежен;

- нахождение сервера, генерирующего прогнозируемые идентификаторы (например, увеличивающиеся на 1). Этот тип уязвимости присущ некоторым версиям Bind и системам Windows 9x. В любом случае, необходимо ответить до настоящего DNS-сервера. Этого можно достичь, например, выполнив против сервера атаку типа "отказ в обслуживании" [92].

Для проведения успешной атаки, злоумышленник должен контролировать DNS-сервер (ns.attaquant.com), авторитетный для зоны attaquant.com. Целевой DNS-сервер (ns.cible.com) предположительно генерирует прогнозируемые идентификационные номера (увеличивающиеся на 1 при каждом запросе). Атака требует выполнения четырех шагов:

  • атакующий шлет DNS-запрос от имени www.attaquant.com к DNS-серверу домена cible.com, как показано на рис. 1.9;

  • целевой DNS-сервер перенаправляет запрос к серверу домена attaquant.com;

  • злоумышленник прослушивает запросы на предмет получения идентификаторов (в нашем примере ID равен 100);

  • злоумышленник фальсифицирует IP-адрес соответствующий имени.

Рис. 1.9. DNS-запрос посланный к ns.cible.com

В примере машина-жертва это www.spoofed.com, адрес которой должен быть 192.168.0.1. Злоумышленник посылает DNS-запрос на разрешение имени www.spoofed.com серверу ns.cible.com. И сразу же шлет группу фальсифицированных DNS-ответов (передавая в качестве IP-адреса один из адресов злоумышленника -- 10.0.0.1) на свой же запрос с подмененным IP-адресом источника на адрес одного из DNS-серверов домена spoofed.com. В каждом ответе ID увеличивается на 1 по сравнению с идентификатором, полученным во время второго этапа атаки (ID = 100) для увеличения вероятности нахождения правильного номера ID. Сервер ns.cible.com мог ответить на запросы других клиентов и, соответственно, увеличить свой DNS ID. На рис. 1.10 показано, как выполняются два последних этапа атаки.

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

Рис. 1.10. Подмена DNS ID