На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Применение шаблонов атак

ВЗЛОМ системы — это, схематично выражаясь, процесс поиска и использования того, что было найдено. Злоумышленник поэтапно изучает цель перед тем, как обна­ружит и использует уязвимое место. Ниже будет приведен весьма поверхностный обзор стандартных действий хакера. Позже мы вернемся к этим идеям, когда перей­дем к техническому исследованию программ атаки.
Успешная атака включает в себя несколько последовательных действий. Во пер­вых, нужно оценить атакуемую систему, т.е. узнать, какие есть точки доступа. Затем нужно узнать, какие транзакции разрешено выполнять через эти точки доступа. Ка­ждый тип транзакций должен быть проверен с целью оценить возможность атаки. Затем хакер может использовать шаблон атаки для создания некорректных, но "разрешенных" транзакций для манипуляций программным обеспечением. Для это­го требуется внимательное изучение результатов каждой проведенной транзакции, чтобы узнать, было ли выявлено возможное уязвимое место. После обнаружения уязвимого места можно проверить программу атаки и таким образом получить дос­туп к системе.
В этом разделе мы расскажем о нескольких обширных классах шаблонов атак. Опытный хакер обладает работающими шаблонами атак из каждой из этих катего­рий. Набор шаблонов атак составляет рабочий инструмент злоумышленника.
Сканирование сети
Уже создано достаточно специализированных средств для проведения сканиро­вания сети. Вместо того чтобы рассматривать конкретные наборы средств или ха-керских сценариев, мы призываем читателей самостоятельно изучить сетевые протоколы и узнать, как эти протоколы могут использоваться для доступа к цели и оп­ределения структуры сети. Начните, например, с книги Скембрей Д., Шема М. Сек­реты хакеров: безопасность Web-приложений — готовые решения. "Вильяме", 2003. Анализируя протоколы, которым уже более 20 лет, вполне можно открыть новые шаблоны атак (вспомним хотя бы сканирование с помощью ICMP-запросов, SYN-пакетов, UDP-сканирование и др.). Новые протоколы предоставляют даже более простые возможности. Например, предлагаем читателям ознакомиться с работой Офира Аркина (Ofir Arkin) по сканированию с помощью ICMP-пакетов11.
Сканирование сети можно расценивать и как нечто очень простое (что можно ос­тавить для автоматизированных программ), и как нечто сложное, требующее науч­ного подхода и действий вручную. Операции сканирования сетей практически все­гда могут выявляться на удаленных сайтах, которыми управляют крайне мнитель­ные системные администраторы, которые хватаются за телефонную трубку, как только видят один запрос к своему порту rlogin. Будьте к этому готовы. С другой стороны, подключенный к Internet стандартный компьютер сегодня подвергается от 10 до 20 сканированиям за день без обнаружения этих сканирований. Средства для выполнения стандартных сканирований портов — это стандартные средства из арсенала хакеров-любителей. Но даже профессиональные (и дорогостоящие) при­ложения наподобие FoundScan от компании Foundstone и CyberCop от NAI, очень близки по основным принципам к свободно доступным технологиям сканирования.
Иногда сканирования портов выполняются очень хитро и незаметно, при одно­временном сканировании тысяч сетей. Атакуемый узел может получать только один-два пакета в час, но в конце недели проверяемые системы пройдут полное ска­нирование! Брандмауэры могут немного усложнить проведение сканирования, но в программах сканирования могут использоваться широковещательные или многоад­ресные адреса отправителей и разумные комбинации флагов и портов получателя для преодоления стандартных фильтров брандмауэра.
Определение операционной системы
После обнаружения атакуемого компьютера применяются дополнительные хит­рости (опять на основе стандартных протоколов) для определения версии операци­онной системы. Среди используемых методов можно назвать использование флагов TCP-пакетов, фрагментации и сборки IP-пакетов, а также использование свойств протокола ICMP. Существует огромное количество запросов, которые можно ис­пользовать для определения версии операционной системы удаленного компьютера. В большинстве случаев можно получить только часть ответа, но совместно они пре­доставляют достаточно сведений для достоверного вывода о версии операционной системы.
При таком огромном количестве доступных методов проверки практически не­возможно заблокировать определение своей операционной системы. Любая попытка подменить ответ на запрос подложной информацией будет приводить к непонятным результатам для хакера, но при достаточно квалифицированных попытках в конеч­ном результате чужую операционную систему практически всегда можно опреде­лить. Более того, определению поддаются установленные параметры для сетевого интерфейса или стека. В качестве примера можно назвать анализаторы сетевых па­кетов. Во многих случаях характеристики компьютера, на котором запущен анализа­тор сетевых пакетов, являются специфическими, и операционную систему такого хоста можно легко определить удаленно (более подробную информацию можно по­лучить по адресу http://packetstormsecurity.nl/sniffers/antisniff). Машины, сетевые адаптеры которых работают в неразборчивом режиме, более от­крыты для атак сетевого уровня, поскольку они обрабатывают все пакеты, посту­пающие из сети, даже те, которые предназначены для других хостов.
Сканирование портов
Сканирование портов выполняется по отношению к атакуемому компьютеру с целью определить, какие службы на нем запущены. При сканировании проверяются как TCP-, так и UDP-порты. После обнаружения открытого порта, путем отправки пакетов на этот порт можно определить, какая служба запущена на этом порту и на основе какого протокола она работает. Над созданием средств для сканирования портов трудится очень много хакеров. На сегодня доступны тысячи программ для сканирования портов, но большинство из них низкого качества. Наиболее популяр­ная программа сканирования портов настолько хорошо известна, что ее не стоит об­суждать. Она называется nmap (более подробную информацию можно получить по адресу http: //www. insecure. org. nmap). Тем, кто никогда не пробовал свои си­лы в ремесле сканирования портов, nmap представляется хорошим выбором, по­скольку поддерживает множество вариантов сканирования. Сделайте немного больше, чем обычно, и используйте программу сканирования сети для анализа ре­зультатов сканирования, сделанных nmap.
Отслеживание маршрута и перенос зоны
Пакеты для отслеживания маршрута передачи сообщения (с помощью програм­мы traceroute) отлично подходят для определения физической структуры сете­вых устройств. DNS-серверы предоставляют значительный объем информации об IP-адресах и подключенных к ним компьютерах. При наличии сведений о версии операционной системы и результатов сканирования портов, хакер получает в свое распоряжение довольно точную "карту" для атаки на избранную сеть. На этой карте определены точки входа, через которые могут быть доставлены вредоносные данные, принимаемые программным обеспечением на уровне приложений. На этой стадии хакер может переходить к проверке программного обеспечения на уровне приложе­ний. Не забывайте, что файлы зон могут быть очень объемными. Несколько лет на­зад одному из авторов этой книги (Хогланду) удалось получить файл зоны для всей Франции (поверьте, он был действительно большим).
Компоненты атакуемой системы
Если в атакуемой системе хранятся общедоступные файлы или установлены Web-службы, то они должны быть обязательно проверены в качестве легкой цели. Особенно легко использовать компоненты программного обеспечения, например CGI-программы, сценарии, обслуживающие программы и компоненты EJB. Каждый компонент может принимать пакеты, то есть является интересной для хакера точкой входа. Чтобы узнать больше о цели атаки, можно отправить запросы или даже специально подготовленные пакеты или запустить анализатор сетевых пакетов, кото­рый сохранит сведения о пакетах, передаваемых интересующему хосту. Пакеты до­пустимых типов могут использоваться позже в качестве базового средства для про­ведения описанных в этой книге полномасштабных атак.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика