Защита от хакеров корпоративных сетей
Шрифт:
В какой момент обмена пакетами злоумышленник захочет вмешаться? Очевидно, он захочет сделать это до окончания соединения, или в противном случае ему будет нечего захватывать. Чаще всего злоумышленник перехватывает сессию где-нибудь посередине между ее началом и завершением после свершения определенного события. Под событием в данном случае понимается шаг процедуры аутентификации? Что произойдет, если злоумышленник перехватит соединение в начальный период установки соединения или до завершения аутентификации. Что тогда он сможет контролировать? Сервер не будет готов к приему команд до окончания аутентификации. Напав на соединение до завершения процедуры аутентификации, злоумышленник вдруг выяснит, что соединение ждет от него ввода какого-либо пароля. Другими словами, он окажется в точно такой же ситуации, как если бы он только что подсоединился как обычный клиент.
Как уже упоминалось, перехватывают сеанс для кражи важной информации при обмене данными в сети,
Перехват TCP-сессий при помощи блокировки пакетов
Если злоумышленник в результате перехвата TCP-сессии способен полностью контролировать передачу пакетов между двумя машинами, то из этого он может извлечь для себя большую пользу. Этот сценарий – прямая противоположность сценарию предыдущего раздела, где злоумышленник как бы сидит на совместно используемом с одним из хостов канале передачи данных в сети и может только вставлять пакеты, но не удалять их. Несомненно, существует ряд аномалий в работе сети, которые при соответствующей настройке могут быть обнаружены либо хостом, либо системой обнаружения вторжений IDS. (Intrusion Detection System (IDS) – система обнаружения вторжений, которая просматривает сетевой трафик и отслеживает несанкционированные действия.)
Тем не менее если злоумышленник может при желании уничтожать (блокировать) пакеты, то он может прекрасно справиться с эмуляцией другого конца канала связи для любого хоста. (Теоретически он может прекрасно эмулировать любую из двух сторон, участвующих в соединении. Это зависит от качества программного обеспечения эмуляции TCP-хоста, имеющего в распоряжении злоумышленника. Были проведены исследования в области пассивной идентификации операционной системы. Если эмуляция злоумышленником характерных для операционной системы признаков несовершенна, то при использовании хостом средств пассивного обнаружения операционной системы у него есть шансы выявить изменения в TCP-соединении и сообщить об аномалии.) Имея возможность удалять пакеты, можно устранить перегрузку сети пакетами уведомления об успешном приеме данных ACK (ACK storm), дублирование пакетов и т. д.
В действительности системы, способные осуществлять прием-передачу сетевых данных описанным способом, уже существуют. Их называют прозрачными брандмауэрами ((transparent firewalls). Брандмауэр – аппаратно-программные средства межсетевой защиты. В данном случае прозрачность означает, что клиент не нуждается в специализированных настройках.) Некоторые из подобных средств межсетевой защиты могут осуществлять кэширование файлов, перенаправление портов, дополнительные возможности аутентификации, а также ряд других уловок из арсенала злоумышленника.
Модификация таблиц маршрутизации
Обычно злоумышленник может создать такую ситуацию, в которой он сможет блокировать пакеты. Блокировать пакеты он может тремя способами. Во-первых, модифицируя таблицы маршрутизации таким образом, чтобы поток пакетов проходил через контролируемую им систему (перенаправление на сетевом уровне Layer 3). (Layer 3 – сетевой уровень (network layer) в модели OSI. Сетевой уровень отвечает за адресацию и маршрутизацию при межсетевом обмене.) Во-вторых, изменяя таблицы мостов путем работы с кадрами связующего дерева сети (перенаправление на уровне канала передачи данных Layer 2). И наконец, в-третьих – перекоммутируя физические кабели таким образом, чтобы кадры проходили через систему злоумышленника (перенаправление на физическом уровне Layer 1). (Layer 1 – первый (физический) уровень в модели OSI. Он определяет связь на уровне аппаратуры.) В последнем случае подразумевается физический доступ к системе кабелей жертвы. Возможно, что в этом случае придется столкнуться с гораздо более серьезными проблемами, нежели в случае с перехватом TCP-сеанса.
В
Более скромная по своим масштабам, но вполне реальная атака может привести к сбоям в работе протокола управляющих сообщений в сети Интернет ICMP (ICMP – Internet Control Message Protocol, протокол управляющих сообщений в сети Internet. Один из четырех протоколов межсетевого уровня семейства TCP/IP, обеспечивающий восстановление связи при сбойных ситуациях в передаче пользовательских пакетов) и перенаправить пакеты по новому маршруту, заставляя некоторые хосты поверить, что наилучший маршрут проходит через IP-адрес злоумышленника. Многие операционные системы при настройке по умолчанию допускают перенаправление ICMP-сообщений. У автора было несколько компьютеров SPARC 2.5.1, настройка которых позволяла им подбирать новые маршруты передачи данных по результатам перенаправления ICMP-сообщений. После подбора маршрута отказаться от него можно было только после перезагрузки. (Некоторые виды ошибок в ядре операционной системы приводили к нестандартным ситуациям, при которых машина отказывалась принимать сообщения об обновлении маршрутов.) Если пользователь не хочет окончательно разорвать соединение (или чтобы это сделала его программа-посредник каким-то образом), ему потребуется позаботиться о перенаправлении пакетов истинному маршрутизатору. Только так они смогут достичь конечной цели. Когда это случится, истинный маршрутизатор, вероятно, пошлет перенаправленные ICMP-пакеты исходному маршрутизатору, информируя его о существовании более подходящего маршрута. Поэтому, если прибегнуть к подобной атаке, то, скорее всего, придется поддерживать поток перенаправленных ICMP-сообщений.
Если злоумышленнику удалось заставить пакеты проходить через свою систему, изменив таблицы маршрутизации, то некоторые из промежуточных маршрутизаторов будут осведомлены об изменении маршрута в результате внесения изменений в таблицы маршрутизации или, возможно, в таблицу протокола разрешения адресов ARP. (Address Resolution Protocol (ARP) – протокол разрешения адресов. Протокол из семейства TCP/IP, обеспечивающий преобразование IP-адреса в MAC-адрес для пакетов IP.) Но если между двумя узлами расположены, по крайней мере, несколько маршрутизаторов, то конечные узлы, как правило, остаются в неведении относительно этой информации. Возможно, узлы смогли бы узнать об изменениях с помощью утилиты отслеживания маршрута, подобной traceroute, если бы злоумышленник не предусмотрел этого, запрограммировав соответствующим образом свой маршрутизатор не посылать сообщения ICMP о недостижимости адресата (получателя) и не уменьшать счетчик предписанного времени жизни IP-пакета (TTL counter).
Фактически, если злоумышленник смог вклиниться в маршрут передачи данных между двумя хостами, то его дальнейшая работа значительно упрощается. В качестве примера предположим, что злоумышленник хочет перехватить HTTP– или FTP-соединение, с помощью которого клиент ищет исполняемый файл с расширением. exe операционной системы Windows. Вполне возможно, хотя это и непросто, написать или скомпоновать все фрагменты кода, необходимые для эмуляции стека IP-протокола и внедрения нового файла внутрь TCP-соединения. Но злоумышленник в этом не нуждается до тех пор, пока не почувствует необходимости принятия экстраординарных мер для предотвращения своего обнаружения. Модификация исходных текстов открытой операционной системы типа UNIX для того, чтобы она не уменьшала счетчик времени жизни пакета TTL и не посылала ICMP-сообщения о недостижимости адресата (ICMP unreachables), потребовала бы проделать большую работу для того, чтобы уклониться от обнаружения средствами трассировки маршрута, подобными утилите traceroute. Но после того, как это будет сделано, станет гораздо легче сконфигурировать кэширование программы-посредника так, как это реализовано в Squid для прозрачного представительства (действия по доверенности от имени доверителя).