
Милославская сетевые атаки на открытые системы на примере 2012
.pdfКлассической стала программа, появившаяся в 1998 г. и обеспечивающая злоумышленнику возможность управлять удаленным компьютером — это BackOrifice, или просто bo. При запуске она подменяет некоторые системные библиотеки, «садится» на определенный порт и слушает его, ожидая запросы от программы boклиента. При поступлении вызова от клиента происходит его авторизация и в случае успеха устанавливается соединение, передающее полное управление системой клиенту. BO2k — одна из немногих программ, обеспечивающих доступ через "черный ход", которые могут работать поверх TCP- и UDP-протоколов. Также BO2k предоставляет возможность шифрования канала связи между клиентом и сервером, предлагая XOR- и 3DESшифрование. BO2k позволяет выполнять множество «системных действий». Сюда входит возможность перезагрузить атакованную машину, заблокировать машину или запросить системную информацию. Атакующий может все — от перехвата ввода с клавиатуры до форматирования дискеты и проигрывания музыкальных файлов. Также можно проверять и менять статус процессов на атакованной машине, запускать или уничтожать их, просматривать отображаемое на мониторе машины жертвы и инспектировать содержимое файловой системы.
До выхода bo использовались различные аналогичные утилиты (rootkit), но они писались в основном под ОС Unix. После появления bo началось повальное увлечение разработкой аналогичных программ, к числу которых можно отнести NetBus, Y3K, Phase, SubSeven, Virtual Network Computing (VNC) и другие.
Надо также отметить, что по аналогичной технологии строятся специальные утилиты, облегчающие дистанционный контроль и управление удаленными узлами дминистраторам сетей. Примером такой утилиты является Remote Administrator.
Главной чертой рассматриваемой ТУА является прежде всего то, что в случае удачной ее реализации атакующий получает полный контроль над системой: он может полностью управлять работой программ, графического интерфейса, мультимедиа устройствами, даже периферией и внешними устройствами. Другими словами, взломщик получает полный контроль над атакованной ма-
31
шиной. Универсальной защиты от таких атак пока нет, так как программ удаленного управления существует много, а в работе используют они хотя и похожие, но разные алгоритмы. Поэтому для каждой конкретной атаки надо искать конкретное средство защиты, либо использовать средства для проверки системы на «зараженность» серверной частью таких программ. Очень часто они реализованы в виде «троянских коней», поэтому иногда антивирусы могут выявлять их.
Защитой от описанных программ являются три принципиально важных мероприятия: выявление разрушающих воздействий в BIOS (ПЗУ); построение систем контроля целостности; построение изолированной операционной среды.
32
2. Типичные сценарии и уровни атак
Очевидно, что первая цель злоумышленника при взломе интранет или компьютера – получить доступ к системе (без осуществления этого этапа НСД к информации или запуск разрушающего ПО невозможны). Наиболее типичный сценарий развития событий при осуществлении взлома сети может быть таким. Сначала происходит взлом веб-сервера из-за ошибки в его ПО. Далее одним из известных злоумышленнику способов он получается доступ к файловой системе компьютера. Осуществляется загрузка «троянского коня». Расшифровывается файл с паролями. После этого задача сводится к получению административного доступа к системе. А если взломанная система является контроллером домена, образующего демилитаризованную зону (ДМЗ) веб-серверов, его ОС — Windows, а сам домен предназначен и для контактов с поставщиками компании? И там же находятся почтовый и FTP-серверы? Контроллеру домена под управлением, например, Windows 2000 делегируются права сервера (Server) или расширенного сервера (Advanced Server). На нем автоматически устанавливаются служба активного каталога, служба DNS и сервер DHCP, а также открываются соответствующие порты. Контроллеры доменов — это важнейшие компоненты сети, поэтому они требуют особого обращения. Последствия будут самыми печальными. Причина же кроется в одной очень серьезной ошибке — все компьютеры и сетевые службы ДМЗ входили в один Windows-домен.
Рассмотрим возможный ход развития событий при осуществлении самой обычной атаки.
2.1. Этапы реализации атак
Укажем основные этапы реализации нескольких типичных сценариев развития атак.
Стадия 1: внешняя разведка (outside reconnaissance). Перед реализацией целей атаки на интранет типичный нарушитель обычно осуществит ряд проб на внешние хосты сети, что не требует тесного контакта с жертвой. Злоумышленник стремится получить
33
как можно больше информации об атакуемой системе, ничем себя не выдавая. Он делает это, собирая доступную информацию, или маскируясь под обычного пользователя. На этой стадии его действительно нельзя обнаружить. Нарушитель будет высматривать «кто есть кто». Для изучения DNS-зоны и установления имен компьютеров он, возможно, пройдется по DNS-таблицам (используя nslookup, dig или другие утилиты). Нарушитель разыскивает и другую информацию для открытого использования, такую как публичные веб- и FTP-серверы с анонимным входом. Он попытается собрать внешние и внутренние имена хостов на основе применения следующих методик: команда nslookup для реализации запросов вида «ls <домен или сеть>»; просмотр гипертекстовых страниц на вебсерверах для определения любых других хостов, которые там упоминаются или на которые есть ссылки; просмотр документов на FTPсерверах; соединение с почтовыми серверами и выполнение запросов «expn <пользователь>»; применение команды finger к пользователям внешних хостов.
Сначала осуществляется попытка сбора информации о самой интранет, а затем злоумышленник пытается узнать все о ее уязвимостях на основе изучения слабых мест конкретной конфигурации и используемых для ее поддержки аппаратных и программных средств.
Глядя на результаты вышеперечисленных запросов, атакующему довольно легко составить список хостов и начать понимать отношения, которые существуют между ними (в смысле отношений доверия). Иногда для проверки версий ОС и определения других мелких деталей, устанавливая соединения с портами компьютеров, он может использовать свой собственный IP-адрес. Но часто атакующий скрывает свой реальный адрес, например, используя предыдущие взломанные хосты или хосты с неправильно сконфигурированными прокси-серверами.
После первого этапа злоумышленник знает: кто администратор; компьютеры в сети и, возможно их функции, ОС, дыры, серверы доменных имен; переписку администратора по электронной почте о топологии, управлении, политиках, проблемах администрирования сети.
34
Стадия 2: внутренняя разведка (inside reconnaisance). Нару-
шитель использует более сильные методы для получения информации, но по-прежнему не делает ничего вредного. Он может пройти через все веб-страницы и посмотреть CGI-скрипты, которые очень часто подвергаются атакам; запустить утилиту ping (или средства типа ping sweeps) и посмотреть, какие компьютеры активны в интранет; провести сканирование UDP/TCP-портов на намеченных для атаки компьютерах и определить доступные сервисы; запустить утилиты типа rpcinfo, showmount, snmpwalk и т.п. и определить, какие служ-
бы являются доступными. Исследуя реализацию стека TCP/IP (stack fingerprinting), он с высокой степенью вероятности быстро определяет тип и версию ОС узла-жертвы (зная о существующих различиях и проверив реакцию служб изучаемой системы на различные ситуации, можно практически однозначно определить тип и версию соответствующей ОС).
Если в сети есть маршрутизаторы, поддерживающие протокол SNMP, то наиболее искушенные атакующие попробуют агрессивные методики SNMP-сканирования и применительно к этим последовательно расположенным устройствам, находящимся в ведении общественных и частных организаций, а также применят метод "грубой силы" для подбора паролей.
Первые две стадии атаки обычно заканчиваются составлением
схемы возможных уязвимостей (vulnerability mapping) — некой схемы соответствия между определенными атрибутами безопасности системы (например, находящиеся в состоянии ожидания службы, определенные версии запущенных серверов, архитектура системы, информация о пользовательских именах и т.д.) и соответствующими явными или потенциальными уязвимостями и дефектами системы защиты. Взломщик может определить, как соотносятся собранные сведения с информацией о выявленных недостатках, опубликованных в общедоступных источниках типа бюллетеня Bugtraq или на веб-узле CERT и непосредственными разработчиками тех или иных продуктов.
После этих стадий атаки злоумышленник располагает достаточными сведениями для ее продолжения (табл. 1).
35
Таблица 1 . |
Идентифицирующие сведения о сети-жертве |
Объекты |
Идентифицирующие сведения |
|
|
Интернет |
Имена доменов; адреса подсетей; точные IP-адреса компь- |
|
ютеров, подключенных к Интернет; TCP- и UDP-службы, |
|
работающие на каждом из обнаруженных компьютеров; |
|
архитектура системы; механизмы управления доступом и |
|
соответствующие списки управления доступом; СОВ; ре- |
|
гистрационная информация |
|
|
Интранет |
Используемые сетевые протоколы; имена внутренних до- |
|
менов; адреса подсетей; IP-адреса компьютеров, подклю- |
|
ченных к Интернет; TCP- и UDP-службы, работающие на |
|
обнаруженных компьютерах; архитектура системы; меха- |
|
низмы управления доступом и соответствующие списки |
|
управления доступом; СОВ; регистрационная информация |
|
|
Удаленный |
Телефонные номера, используемые для УД; тип АТС; тип |
доступ (УД) |
удаленной ОС; механизм аутентификации |
|
|
Экстранет |
Исходящая и входящая точки соединения; тип соединения; |
|
механизм управления доступом |
|
|
Стадия 3: использование скрытых возможностей и уязвимостей сетевого программного и аппаратного обеспечения (exploits).
Нарушитель пересекает границу и начинает использовать возможные уязвимости на выделенных компьютерах. Злоумышленник «ломает» внешний доверительный хост, который в дальнейшем может быть использован как место, с которого дальше будет осуществляться атака на интранет. Эта методика может работать, а может и нет — в зависимости от фильтрации между интранет и внешними корпоративными хостами.
Если атакующий взломает внешний почтовый сервер, который, в свою очередь, имеет полный доступ к сегменту внутренней интранет, то он может начать работать, глубоко проникнув внутрь сети.
Для взлома большинства сетевых компонентов используются программы удаленного исследования уязвимых версий серверного демона, работающего на внешних хостах. Например, это уязвимые версии sendmail, IMAP, POP3 и RPC-сервисов типа statd, mountd и pcnfsd. После выполнения такой программы удаленного исследо-
36
вания уязвимостей работающего на внешнем хосте серверного демона, атакующий обычно получает доступ пользователя root к хосту, который далее, в свою очередь, может быть использован для расширения доступа к другим хостам интранет.
Нарушитель может попытаться скомпрометировать CGIскрипт, посылая команды shell в полях входных данных. Нарушитель может попытаться использовать хорошо известные уязвимости «переполнения буфера», посылая большое количество данных. Нарушитель может начать проверку бюджетов (учетных записей) с легко подбираемыми (или пустыми) паролями. Злоумышленник может пройти через несколько стадий атаки. Например, если он смог получить доступ к бюджету обычного пользователя, то затем он будет пытаться совершать дальнейшие «подвиги» и получить доступ к учетной записи супервизора root/admin.
Стадия 4: сокрытие следов (foot hold). Нарушитель уже ус-
пешно проник в интранет и теперь его основная цель — скрыть свидетельства атаки путем исправления журналов регистрации. Он может инсталлировать специальные утилиты, дающие удаленный доступ, возможность замены существующих сервисов своими собственными «троянскими конями» или создания своих собственных учетных записей и т.п. Системы контроля целостности часто обнаруживают нарушителя именно на этом этапе, отслеживая измененные системные файлы.
После исследования серверного демона для устранения выдающей его информации в log-файлах хоста и установки «люков» в системных утилитах атакующий запускает «операции очистки». Это позволит ему незаметно проникнуть на хост позднее. Он начинает с установки «люков», что упростит ему в дальнейшем получение доступа к хосту. Большинство таких лазеек заранее скомпилировано. Далее действия атакующего сводятся к замене даты и разрешений для системных утилит, для которых созданы «люки». В некоторых случаях даже размер файлов для новых системных утилит равен размеру их оригинала. Для копирования программ с лазейками на хост атакующие, знающие о log-файлах передачи для FTP, могут применить программу rcp.
37
Обычно злоумышленник и инсталлирует особо критичные к «люкам» и «троянцам» системные утилиты типа ps и netstat, скрывающие любые его соединения. Известно, что некоторые атакующие помещают файл .rhosts в директорию /usr/bin, что позволяет им в интерактивном режиме получать УД к хосту посредством rsh и csh.
Шаг, предпринимаемый нарушителями, заключается в проверке хоста на наличие системы идентификации соединений, которая может выявить его соединение с хостом. Тогда в соответствующих logфайлах на хосте он постарается отредактировать записи о своих соединениях.
Системные регистрационные журналы (system log files) являются объектами частых нападений [8]. Для злоумышленника модификация информации из журналов является более важной, чем разрушение файлов по анализу регистрационной информации. Это связано с тем, что большинство системных администраторов уделяют этим журналам гораздо больше внимания, чем файлам с регистрационной информацией. Чтобы устранить следы вторжения, нарушители должны найти местоположение журналов и изменить их, для чего существует ряд средств (с помощью etc/syslog.conf, используя утилиту lsof()и т.п.).
Но пока злоумышленник находит и корректирует локальные журналы, их копии могут быть записаны на скрытый регистрационный компьютер. Отсутствие идентичных вводных записей в его журналах можетсвидетельствовать о взломе.
Если вероятность атаки на компьютер велика, то можно посоветовать входить через сетевой принтер, что делает особенно затруднительным редактирование атакующим log-файлов.
Вместо изменения объектов ядра защиты злоумышленники могут применить другие методы нападений. Например, использовать при модемном доступе многие из Unix-подобных ОС, применяющих разделяемые библиотеки, для модификации кода функций (таких, как open()), вместо корректировки бинарных источников данных функций. Указанный тип нападений хотя и не является широко распространенным, заполняет высокоуровневые компоненты
38
ядра защиты некорректной информацией, в то же время поддерживая функциональность системы в целом. Подобные нападения могут быть осуществлены против таких библиотек, как стандартная библиотека Си, используемая компоновщиком при компиляции статически связанных программ. Единственная разница заключается в том, что в противоположность системам, использующим общие библиотеки, программы, скомпилированные перед тем, как были взломаны статические библиотеки, не будут подвержены изменению. Следовательно, любое ПО, используемое для контроля целостности ядра защиты, должно быть статически связано, чтобы ограничить способы атаки, которыми могут воспользоваться нарушители. Можно предположить, что взломщики тогда модифицируют само ядро защиты, но до сих пор такой тип нападений крайне редок из-за сложности осуществления.
Способы сокрытия своих следов, чаще всего применяемые злоумышленниками, таковы [5]: подмена адреса источника атаки; создание фальшивых пакетов; использование чужих компьютеров в качестве базы атаки; фрагментация атаки (через фрагментацию пакетов); шифрование атаки; отказ от значений по умолчанию (например, стандартные протоколы на нестандартных портах); изменение стандартного сценария развития атаки; замедление атаки; чистка журналов регистрации; сокрытие файлов и данных; сокрытие процессов (за счет изменения ядра ОС или применения специальных утилит).
Стадия 5: реализация непосредственных целей атаки (profit).
После того, как атакующий убедится, что его присутствие не было никак идентифицировано, он перейдет к захвату интранет и реализации непосредственных целей атаки: кражи конфиденциальных данных, злоупотребления с системными ресурсами (то есть организует атаки на другие узлы через взломанный сервер) или стиранию веб-страницы. Например, если целью атакующего является загрузка конфиденциальной информации с FTPили веб-серверов внутренней интранет, то он может осуществить это с внешнего хоста, работающего в качестве моста между открытыми сетями и интранет. Однако, если ему нужна конфиденциальная информация, хра-
39
нимая на внутренних хостах сети, то далее для получения доступа он попробует атаковать именно их, используя доверительные отношения с внешними хостами, к которым он уже имеет определенный доступ.
Если атакующий может взломать ключевые серверы, на которых запущены такие серверные приложения, как базы данных, сетевые ОС или любые другие особо важные процессы, для него не сложно на некоторое время «уронить» сеть. Грубая, но нетипичная методика, используемая злоумышленниками, пытающимися нарушить функционирование интранет, заключается в уничтожении всех файлов на ключевых серверах запуском на сервере команды «rm –rf / &». В зависимости от используемой системы резервного копирования интранет можно вывести из строя на время от нескольких часов до нескольких месяцев.
Теперь перечислим наиболее типичные шаги реализации конкретной атаки по распространенному сценарию нападения на интранет, что соответствует выше описанным третьей и четвертой стадиям [9]: "наводнить" интранет большим количеством пакетов, реализовав атаку SYN flooding, при этом скрывая настоящую атаку на основе подмены IP-адресов (IP spoofing); подменить IP-адреса, скрывая сессии Telnet и веб-spoofing; Hijaching (перехват сеансов) или веб-spoofing для получения открытых или зашифрованных паролей (которые далее с помощью программ типа CRACK будут раскрыты); после получения доступа непосредственно в саму систему, углубиться в нее за счет прослушивания трафика с помощью сниффера; спрятать флаг сниффера (PROMISC) для затруднения обнаружения факта запуска в сегменте сети этой программы; установить «троянского коня» (команда ifconfig) для сокрытия PROMISC; изменить дату и/или контрольную сумму файла для маскировки действий «троянского коня»; после входа в систему установить «люк» (backdoor) с помощью средства rootkit.
До сих пор в этом пункте рассматривалась типовая модель поведения внешнего злоумышленника. Внутренний нарушитель ведет себя очень похожим образом. Этапы его атаки таковы: изучение окружающей (внутренней) сетевой среды интранет и оценка воз-
40