Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
405.doc
Скачиваний:
26
Добавлен:
30.04.2022
Размер:
4.03 Mб
Скачать

1.4.2.2 Описание процессов реализации удаленных атак

Основной особенностью ИТКС является то, что ее объекты распределены в пространстве и связь между ними физически осуществляется по сетевым соединениям и программно — при помощи механизма сообщений. При этом все управляющие сообщения и данные, пересылаемые между объектами ИТКС, передаются по сетевым соединениям в виде пакетов обмена. Эта особенность привела к появлению специфичного для ИТКС типового удаленного воздействия, заключающегося в прослушивании канала связи. Назовем данное удаленное воздействие анализом сетевого трафика [40].

1) Сетевой анализ

Анализ сетевого трафика позволяет, во-первых, изучить логику работы ИТКС, то есть получить взаимно однозначное соответствие событий, происходящих в системе, и команд, пересылаемых друг другу ее объектами, в момент появления этих событий. Это достигается путем перехвата и анализа пакетов обмена на канальном уровне. Знание логики работы ИТКС позволяет на практике моделировать и осуществлять типовые удаленные атаки, рассмотренные в следующих пунктах на примере конкретных ИТКС.

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

В сети Internet основными базовыми протоколами удаленного доступа являются telnet, протокол виртуального терминала, и FTP (File Transfer Protocol), протокол, предназначенный для передачи файлов между удаленными хостами. Для получения доступа к серверу по данным протоколам пользователю необходимо пройти на нем процедуру идентификации и аутентификации. В качестве информации, идентифицирующей пользователя, выступает его идентификатор (имя), а для аутентификации используется пароль. Особенностью протоколов FTP и telnet является то, что пароли и идентификаторы пользователей передаются по сети в открытом, незашифрованном виде [8].

Таким образом, анализ сетевого трафика является одним из способов получения паролей и идентификаторов пользователей в ИТКС. Он осуществляется с помощью специальной программ-анализаторов пакетов (снифферов), перехватывающих все пакеты, передаваемые по сегменту сети, и выделяющей среди них те, в которых передаются, например, идентификатор пользователя и его пароль. Сетевой анализ протоколов FTP и telnet показывает, что telnet разбивает пароль на символы и пересылает их по одному, помещая каждый символ из пароля в соответствующий пакет, а FTP, напротив, пересылает пароль целиком в одном пакете [31].

2) Отказ в обслуживании

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

Очевидно, что сетевая операционная система способна иметь только ограниченное число открытых виртуальных соединений и отвечать лишь на ограниченное число запросов. Эти ограничения зависят от различных параметров системы в целом, основными из которых являются быстродействие ЭВМ, объем оперативной памяти и пропускная способность канала связи (чем она выше, тем больше число возможных запросов в единицу времени).

Основная проблема состоит в том, что при отсутствии статической ключевой информации в ИТКС идентификация запроса возможна только по адресу его отправителя. Если в ИТКС не предусмотрено средств аутентификации адреса отправителя, то есть инфраструктура ИТКС позволяет с одного объекта системы передавать на другой атакуемый объект бесконечное число анонимных запросов на подключение от имени других объектов, то в этом случае будет иметь успех типовая удаленная атака «Отказ в обслуживании». Результат применения этой удаленной атаки — нарушение на атакованном объекте работоспособности соответствующей службы предоставления удаленного доступа, то есть невозможность получения удаленного доступа с других объектов ИТКС — отказ в обслуживании [29, 47].

Вторая разновидность этой удаленной атаки состоит в передаче с одного адреса такого количества запросов на атакуемый объект, какое позволит трафик (направленный шторм запросов). В этом случае, если в системе не предусмотрены правила, ограничивающие число принимаемых запросов с одного объекта (адреса) в единицу времени, то результатом этой атаки может являться как переполнение очереди запросов и отказа одной из телекоммуникационных служб, так и полная остановка компьютера из-за невозможности системы заниматься ничем другим, кроме обработки запросов. Примерами атак данного типа могут служить шторм широковещательных ICMP-эхо-запросов (Smurf), направленный шторм (SYN-flooding), шторм сообщений почтовому серверу (Spam);

Третьей разновидностью атаки «Отказ в обслуживании» является передача на атакуемый объект некорректного, специально подобранного запроса (атаки типа "Land", "TearDrop", "Bonk", "Nuke", "UDP-bomb") либо имеющих длину, превышающую максимально допустимый размер (атака типа "Ping Death", атака демона ftpd UNIX-хоста). В этом случае при наличии ошибок в удаленной системе возможно зацикливание процедуры обработки запроса, переполнение буфера с последующим зависанием [2].

3) Внедрение ложного объекта на основе навязывания ложного маршрута

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

Современные глобальные сети представляют собой совокупность сегментов сети, связанных между собой через сетевые узлы. При этом маршрутом называется последовательность узлов сети, по которой данные передаются от источника к приемнику. Каждый маршрутизатор имеет специальную таблицу, называемую таблицей маршрутизации, в которой для каждого адресата указывается оптимальный маршрут. Отметим, что таблицы маршрутизации существуют не только у маршрутизаторов, но и у любых хостов в глобальной сети. Для обеспечения эффективной и оптимальной маршрутизации в ИТКС применяются специальные управляющие протоколы, позволяющие маршрутизаторам обмениваться информацией друг с другом (RIP (Routing Internet Protocol), OSPF (Open Shortest Path First)), уведомлять хосты о новом маршруте — ICMP (Internet Control Message Protocol), удаленно управлять маршрутизаторами (SNMP (Simple Network Management Protocol)). Важно отметить, что все описанные выше протоколы позволяют удаленно изменять маршрутизацию в сети Internet, то есть являются протоколами управления сетью.

Очевидно, что маршрутизация в глобальных сетях играет важнейшую роль и, вследствие этого, может подвергаться атаке. Основная цель атаки, связанной с навязыванием ложного маршрута, состоит в том, чтобы изменить исходную маршрутизацию на объекте ИТКС так, чтобы новый маршрут проходил через ложный объект — хост атакующего [31, 40, 48].

Реализация данной удаленной атаки состоит в несанкционированном использовании протоколов управления сетью для изменения исходных таблиц маршрутизации.

Для изменения маршрутизации атакующему необходимо послать по сети определенные данными протоколами управления сетью специальные служебные сообщения от имени сетевых управляющих устройств (например, маршрутизаторов). В результате успешного изменения маршрута атакующий получит полный контроль над потоком информации, которой обмениваются два объекта ИТКС, и атака перейдет во вторую стадию, связанную с приемом, анализом и передачей сообщений, получаемых от дезинформированных объектов ИТКС [28].

Рассмотрим этапы реализации такой атаки, основанной на посылке злоумышленником ложных ICMP-сообщений.

1 Злоумышленник передает на атакуемый хост ложное ICMP Redirect Host сообщение.

2 Происходит изменение таблицы маршрутизации атакуемого хоста;

3 В случае если пришел ARP-запpос от атакуемого хоста, злоумышленник отправляет ему ARP-ответ;

4 Хост злоумышленника перенаправляет пакеты от атакуемого хоста на настоящий маршрутизатор, а также пакеты от маршрутизатора на атакуемый хост;

4) Внедрение ложного объекта на основе использования недостатков алгоритмов удаленного поиска

В ИТКС часто оказывается, что ее удаленные объекты изначально не имеют достаточно информации, необходимой для адресации сообщений. Обычно такой информацией являются аппаратные (адрес сетевого адаптера) и логические (IP-адрес, например) адреса объектов ИТКС. Для получения подобной информации в ИТКС используются различные алгоритмы удаленного поиска, заключающиеся в передаче по сети специального вида поисковых запросов, и в ожидании ответов на запрос с искомой информацией. После получения ответа на запрос, запросивший субъект ИТКС обладает всеми необходимыми данными для адресации. Руководствуясь полученными из ответа сведениями об искомом объекте, запросивший субъект ИТКС начинает адресоваться к нему. Примером подобных запросов, на которых базируются алгоритмы удаленного поиска, могут служить SAP-запрос в ОС Novell NetWare [34], ARP- и DNS-запрос в сети Internet.

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

Для адресации IP-пакетов в сетях, основанных на технологии Ethernet, кроме IP-адреса хоста необходим еще либо Ethernet-адрес его сетевого адаптера (в случае адресации внутри одной подсети), либо Ethernet-адрес маршрутизатора (в случае межсетевой адресации). Первоначально хост может не иметь информации о Ethernet-адресах других хостов, находящихся с ним в одном сегменте, в том числе и о Ethernet-адресе маршрутизатора. Следовательно, перед хостом встает стандартная проблема, решаемая с помощью алгоритма удаленного поиска. В сети Internet для решения этой проблемы используется протокол ARP (Address Resolution Protocol). Протокол ARP позволяет получить взаимно однозначное соответствие IP- и Ethernet-адресов для хостов, находящихся внутри одного сегмента. Это достигается следующим образом: при первом обращении к сетевым ресурсам хост отправляет широковещательный ARP-запрос на Ethernet-адрес FFFFFFFFFFFFh, в котором указывает IP-адрес маршрутизатора и просит сообщить его Ethernet-адрес (IP-адрес маршрутизатора является обязательным параметром, который всегда устанавливается вручную при настройке любой сетевой ОС в сети Internet). Этот широковещательный запрос получат все станции в данном сегменте сети, в том числе и маршрутизатор. Получив данный запрос, маршрутизатор внесет запись о запросившем хосте в свою ARP-таблицу, а затем отправит на запросивший хост ARP-ответ, в котором сообщит свой Ethernet-адрес. Полученный в ARP-ответе Ethernet-адрес будет занесен в ARP-таблицу, находящуюся в памяти операционной системы на запросившем хосте и содержащую записи соответствия IP- и Ethernet-адресов для хостов внутри одного сегмента. Отметим, что в случае адресации к хосту, расположенному в той же подсети, также используется ARP-протокол и рассмотренная выше схема полностью повторяется [40].

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

Рассмотрим обобщенную функциональную схему ложного ARP-сервера [2, 30, 40]:

1 Злоумышленник ожидает ARP-запрос от атакуемого хоста;

2 При получении ARP-запроса злоумышленник передает по сети на запросивший хост ложный ARP-ответа, в котором указывается адрес сетевого адаптера атакующей станции (ложного ARP-сервера) или тот Ethernet-адрес, на котором будет принимать пакеты ложный ARP-сервер (совершенно необязательно указывать в ложном ARP-ответе свой настоящий Ethernet-адрес, так как при работе непосредственно с сетевым адаптером его можно запрограммировать на прием пакетов на любой Ethernet-адрес);

3 В случае принятия атакуемым хостом ложного ARP-ответа вместо ответа от настоящего маршрутизатора, происходит желаемое для злоумышленника изменение ARP-таблицы хоста;

4 Прием, анализ, воздействие и передача пакетов обмена между взаимодействующими хостами.

Получив контроль над проходящим потоком информации в сети, ложный объект может

а) перехватить информацию, передаваемую по сети,

б) модифицировать передаваемые данные или коды (в том числе программным путем),

в) внедрить вредоносные программы (вирусы, черви, программы-шпионы),

г) изменить логику работы исполняемых файлов (например, при запуске на сервере программы идентификации пользователей распределенной базы данных ложный объект может так модифицировать код этой программы, что появится возможность беспарольного входа с наивысшими привилегиями в базу данных),

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

Другой вариант внедрения в ИТКС ложного объекта состоит в периодической передаче на атакуемый объект заранее подготовленного ложного ответа без приема поискового запроса [34]. В самом деле, атакующему для того, чтобы послать ложный ответ, не всегда обязательно дожидаться приема запроса (он может, в принципе, не иметь подобной возможности перехвата запроса). При этом атакующий может спровоцировать атакуемый объект на передачу поискового запроса, и тогда его ложный ответ будет немедленно иметь успех. Данная удаленная атака чрезвычайно характерна для глобальных сетей, когда у атакующего из-за нахождения его в другом сегменте относительно цели атаки просто нет возможности перехватить поисковый запрос.

5) Подмена доверенного объекта

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

— атака при установленном виртуальном канале,

— атака без установленного виртуального канала.

В случае установленного виртуального соединения атака будет заключаться в присвоении прав доверенного субъекта взаимодействия, легально подключившегося к объекту системы, что позволит атакующему вести сеанс работы с объектом распределенной системы от имени доверенного субъекта. Реализация удаленных атак данного типа обычно состоит в передаче пакетов обмена с атакующего объекта на цель атаки от имени доверенного субъекта взаимодействия (при этом переданные сообщения будут восприняты системой как корректные). Для осуществления атаки данного типа необходимо преодолеть систему идентификации и аутентификации сообщений, которая, в принципе, может использовать контрольную сумму, вычисляемую с помощью открытого ключа, динамически выработанного при установлении канала, случайные многобитные счетчики пакетов и сетевые адреса станций. Однако на практике, например, в ОС Novell NetWare 3.12-4.1 для идентификации пакетов обмена используются два 8-битных счетчика - номер канала и номер пакета; в протоколе TCP для идентификации используются два 32-битных счетчика [33].

Создание TCP-соединения происходит в несколько этапов [28].

1 Соединение на стороне клиента находится в закрытом состоянии, а на стороне сервера — в состоянии ожидания.

2 Клиент посылает серверу TCP-пакет, в котором указывает свой начальный порядковый номер C-SYN и устанавливает бит SYN.

3 Получив этот пакет, сервер отвечает сообщением, в котором указывает свой номер S-SYN и подтверждает полученный номер клиента C-ACK = C-SYN+1.

4 Получив этот пакет, клиент подтверждает порядковый номер сервера, так же прибавляя к нему некоторое число S-ACK = C-ACK + 1, переходя в состояние установленного соединения.

5 По получении этого пакета на стороне сервера соединение также приходит в состояние «установлено».

После установления соединения пакет принимается сервером или клиентом, если его порядковый номер укладывается в интервал [C-ACK (S-ACK), C-ACK + S-W (S-ACK + C-W)], где C-W и S-W — некоторые параметры, называемые окнами приема. Соединение прерывается после выставления флагов RST (получатель обрывает соединение немедленно) или FIN (получатель приступает к процедуре его постепенного закрытия).

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

Рассмотрим этапы подмены доверенного объекта ИТКС без обратной связи (IP-спуфинг) [31, 40].

1 Злоумышленник вводит атакуемый хост в состояние, находясь в котором, он не сможет отвечать на сетевые запросы. Это может быть сделано несколькими способами, в простейшем случае нужно просто дождаться перезагрузки системы. Нескольких минут, в течение которых она будет неработоспособна, должно хватить для реализации атаки. После этого злоумышленник может попробовать выдать себя за систему B, для того, что бы получить доступ к серверу (хотя бы кратковременный).

2 Злоумышленник высылает несколько IP-пакетов, инициирующих соединение, серверу для выяснения текущего состояния sequence number сервера.

3 Злоумышленник высылает IP-пакет, в котором в качестве обратного адреса указан уже адрес атакуемого хоста.

4 Сервер отвечает пакетом с sequence number, который направляется атакуемому хосту. Однако он не получит его, как и злоумышленник. Но на основе предыдущего анализа он догадывается, какой sequence number был выслан системе B.

5 Злоумышленник подтверждает "получение" пакета от сервера, выслав от имени клиента пакет с предполагаемым S-ACK (если системы располагаются в одном сегменте, злоумышленнику для выяснения sequence number достаточно перехватить пакет, посланный сервером).

6 После этого, если злоумышленнику повезло и sequence number сервера был угадан верно, соединение считается установленным.

7 Злоумышленник может выслать очередной фальшивый IP-пакет, который будет уже содержать данные. Например, если атака была направлена на rsh, он может содержать команды создания файла .rhosts или отправки /etc/passwd злоумышленнику по электронной почте.

6) Подмена доверенного объекта ИТКС с обратной связью (IP-hijacking)

Эта атака основывается на приведении обоих концов соединения в десинхронизированное состояние и создании пакетов, мимикрирующих под оригинальные, таких, которые удовлетворяют текущему состоянию на соответствующем конце соединения.

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

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

1 Взломщик ожидает пакет, идущий от сервера к клиенту на втором этапе установления соединения.

2 Обнаружив этот пакет, он посылает серверу пакет с флагом RST (закрытие соединения), затем пакет-запрос соединения (этап 2), аналогичный перехваченному по параметрам (порт TCP), но с другим номером последовательности.

3 Получив RST-пакет, сервер прерывает первое соединение. Получив следом от атакующего пакет-запрос, он, используя тот же самый порт, открывает новое соединение с измененным номером последовательности и пошлет клиенту пакет-подтверждение (этап 3).

4 Определив это, атакующий посылает серверу свой пакет-подтверждение (этап 4) и тем самым переводит сервер в состояние установленного соединения.

5 Настоящий клиент, получив пакет от сервера, также переходит в состояние установленного соединения.

Очевидно, что основные равенства не выполняются, и соединение оказывается изначально десинхронизированным. Это означает, что атакующему достаточно, подобрав соответствующие текущие значения идентификаторов TCP-пакета для данного TCP-соединения (например, данное соединение может представлять собой FTP- или TELNET-подключение), начать работу с FTP- или telnet-сервером со своего IP-адреса, но с правами легально подключившегося пользователя, который, в свою очередь, потеряет связь с сервером из-за рассогласования счетчиков.

Для осуществления описанной выше атаки необходимым и достаточным условием является знание двух текущих 32-битных параметров C-ACK и S-ACK, идентифицирующих TCP-соединение. Рассмотрим возможные способы их получения.

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

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

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

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

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

Посылка ложных управляющих сообщений может привести к серьезным нарушениям работы ИТКС (например, к изменению ее конфигурации).0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

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

Знание содержания возможных атак является существенным фактором при проектировании систем защиты информации в ИТКС и особенно их подсистем, предназначенных для обнаружения таких атак.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]