Оценить:
 Рейтинг: 0

Защита от хакеров корпоративных сетей

Год написания книги
2005
<< 1 ... 9 10 11 12 13 14 15 16 17 ... 24 >>
На страницу:
13 из 24
Настройки чтения
Размер шрифта
Высота строк
Поля

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

Источник уязвимостей был обнаружен в широко распространенной программе разрешения имен в Интернете BIND. Служба доменных имен в сети Интернет или BIND (Berkley Internet Name Domain – программа для поддержки сервера имен доменов, первоначально написанная для UNIX, в настоящее время является наиболее популярной реализацией DNS и перенесена практически на все платформы. BIND задает структуру баз данных, функции DNS и конфигурационные файлы, требующиеся для установки и функционирования сервера имен) ранее имела ряд уязвимостей, которые позволяли злоумышленнику получать удаленный административный доступ. Также известна уязвимость в старших версиях программы, при помощи которой можно подменять содержимое кэш DNS, дурача клиентов. Подмена состояла в изменении занесенного в кэш соответствия между доменом и его адресом. В результате пользователь вместо желаемого сайта мог попасть куда угодно. Далее рассмотрим методы определения уязвимостей, возникающие при работе DNS.

Утилита dig

dig – легкодоступный инструментарий, тесно связанный с программой BIND. В утилите предусмотрен как интерактивный режима запуска, так и удобный режим командной строки, позволяющий собирать сведения о DNS-сервере. Утилита dig выполняется под управлением многих свободно распространяемых операционных систем и может поставляться консорциумом программного обеспечения Интернет (Internet Software Consortium) совместно с BIND.

Утилита dig может быть использована для определения IP-адресов по их именам (прямое преобразование) и, наоборот, определения доменного имени хоста по его адресу (обратное преобразование). Это может оказаться очень полезным из-за того, что много приложений не смогут определить IP-адрес по имени, а для нормального функционирования им нужно указать явный адрес хоста.

Также утилита dig может использоваться для определения версии серверов DNS. Поступив таким образом, злоумышленник может собрать необходимые для начала атаки сведения о хосте. Но, самостоятельно определив версию сервера имен, специалист по безопасности сможет сам найти потенциально уязвимый сервер и повысить безопасность охраняемой системы (вспомните метод определения версий).

Проанализируйте следующий пример использования утилиты dig:

Из отчета можно определить версию BIND, установленную на pi в домене cipherpunks.com. А также то, что на pi запущена версия BIND, уязвимая для многих атак, одна из которых – переполнение NXT-буфера, известная с 1999 года и позволяющая злоумышленнику получить удаленный доступ к системе с правами программы BIND (обычно выполняющейся с правами привилегированного пользователя root).

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

nslookup

nslookup (Name Service Lookup – служба поиска имен) – полезная утилита, которая свободно распространяется консорциумом программного обеспечения Интернет.

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

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

Анализируя приведенный пример, можно найти обработчик почты для домена cipherpunks.com. Хост parabola.cipherpunks.com может быть использован для сбора информации. Например, если в системе используется версия программы sendmail, которая позволит злоумышленнику расширить учетные записи пользователя, то он сможет найти адреса электронной почты системного администратора. Из этого можно будет узнать тип транспортного агента, установленного в системе, как это показано в следующем примере:

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

Nmap

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

Сбор сведений о доступных сервисах системы сильно упрощается при использовании такого инструментария, как Network Mapper или Nmap. Как ранее уже упоминалось, Nmap в случае его применения для достижения злонамеренных целей использует многочисленные изощренные методы определения характеристик хоста. К этим возможностям относится переменный режим сканирования TCP-трафика и анализ IP-ответов для определения операционных систем и идентификации прослушиваемых сервисов на хосте.

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

Давайте одновременно проанализируем эту небольшую часть отчета о сканировании. Во-первых, Nmap был запущен с флагами sS и O. Эти флаги указывают Nmap на необходимость сканирования символов синхронизации SYN на хосте и идентификации операционной системы на основе полученных IP-ответов. Во-вторых, в отчете видны три колонки данных. В крайней слева колонке расположен номер порта и протокол, используемый прослушиваемым сервисом. В средней – состояние порта: подвергнулся ли порт фильтрации, как у порта службы telnet, являющейся оболочкой TCP-трафика, или открыт для общедоступного использования, как остальные.

Индексация Web

Индексация Web (или, как ее еще обычно называют, спайдеринг (spidering) – движение паука по паутине) – следующий тип сбора информации. С начала 90-х годов компании типа Yahoo! WebCrawler и другие начали использовать автоматизированные программы для посещения Web-сайтов и индексации размещенных на них данных, чтобы впоследствии проиндексированные данные можно было найти с помощью поискового запроса. Это было началом бизнеса Web-порталов.

Индексация сайтов обычно выполняется различными по форме и названию программами. Их называют роботами, пауками или червяками. Хотя все они выполняют одну и ту же функцию, их безо всякой видимой причины называют по-разному. Эти программы просматривают все связи анализируемого Web-сайта и индексируют находящиеся на них данные. Индексы просмотренных данных помещаются в реляционную базу данных и связываются с поисковой машиной (машина поиска – в сети Internet инструментальные средства, предназначенные для отсеивания информации, не относящейся к теме запроса). Если пользователь во время посещения портала сформулирует поисковый запрос по ключевым словам, то ему будут предъявлены ссылки на проиндексированные Web-страницы, соответствующие его запросу.

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

Эта проблема не ограничена порталами. Инструментарий типа wget может быть использован для рекурсивного извлечения всех страниц сайта. Для этого достаточно запустить программу с нужными параметрами. Посмотрите на следующий пример:

В примере вывод команды wget завершен символами […] из-за большого количества файлов (44 файла), загружаемых с Web-сайта www.mrhal.com (http://www.mrhal.com/), которые были бы напечатаны в конце отчета. Команда wget была запущена с переключателями m и x. Переключатель m (переключатель зеркального сохранения информации) включает режим загрузки копии всех файлов сайта www.mrhal.com (http://www.mrhal.com/) в соответствии с их ссылками. Переключатель x используется для сохранения структуры директорий сайта при его загрузке на компьютер пользователя.

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

Резюме

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

Об атаках, приводящих к отказу в обслуживании (DOS-атаках), говорят в том случае, когда в результате действий злоумышленника ресурс преднамеренно заблокирован или деградирован. Локальные DOS-атаки нацелены на достижение локального отказа в обслуживании и приводят к деградации процесса, исчерпанию дисковой памяти или истощению индексных узлов. DOS-атаки из сети могут начинаться как с сервера, так и с клиентской части (как в одном из вариантов DOS-атаки из сети на Web-браузеры – бомбы JavaScript). DOS-атаки из сети на сервисы используют многочисленные подключения для предотвращения использования сервисов. DOS-атаки на систему похожи на локальные DOS-атаки и основаны на создании потока символов синхронизации SYN для переполнения очереди или использовании атак типа smurf для достижения отказа в обслуживании в результате перенасыщения сетевого трафика. Распределенные DOS-атаки (DDoS-атаки) относятся к классу сетевых атак, нацеленных на систему в целом. Распределенные программы перенасыщения трафика, как, например, tfn и shaft, могут быть использованы для достижения отказа в обслуживании.

Утечка информации – результат злоупотребления ресурсами. Обычно нападению на систему предшествует утечка информации. В главе рассмотрены пути утечки информации через баннеры оболочки безопасности SSH. Была показана принципиальная возможность «снятия отпечатков пальцев» у ряда служб, например у служб, обеспечивающих работу по протоколам HTTP или FTP. Протокол SNMP – пример протокола, в котором недопустимо мало внимания уделено вопросам безопасности, и поэтому сравнительно легко получить доступ к важной информации в системах, построенных на его основе. Web-сервер легко предоставляет сведения, интересующие злоумышленников, если на него совершено нападение атакой типа точка-точка – слэш (../). Уже упоминалось об инциденте, когда один Интернет-провайдер воспользовался файлами паролей другого провайдера, для того чтобы переманить к себе его клиентов. Тем самым были рассеяны любые мифы о допустимости утечки информации в хорошо сделанной системе, даже если она может маскировать или скрывать свои «отпечатки пальцев».

При помощи изменения прав доступа к файлу злоумышленник может получить доступ к важной информации, например к именам пользователей и их паролям. Поэтому непонятно, почему зачастую специалисты в области безопасности пренебрегают такой мерой предосторожности, как изменение разрешений доступа к файлу или владельцев файлов, в которых записаны эти разрешения. При рассмотрении подобных вопросов важно различать однопользовательские системы, в которых не предусмотрено управление доступом к файлу, и многопользовательские системы с одним или несколькими уровнями доступа, примерами которых служат списки контроля ACL системы Solaris и ролевой механизм управления доступом (Role-Based Access Control-RBAC). В главе также обсуждались атаки символических связей для перезаписи файлов других пользователей.

Дезинформация определяется как предоставление противоположной стороне фальшивых данных, провоцирующих противоположную сторону на неадекватное поведение. Стандартные методы дезинформации предусматривают редактирование журналов, использование программных инструментальных средств с правами привилегированного пользователя (rootkits) и модулей ядра. Редактирование журналов – элементарное средство скрытия вторжения. Инструментальные средства типа rootkits позволяют подменять системные программы. Наиболее изощренные методы дезинформации заключаются в подмене модулей ядра, осуществляющих компрометацию системы на нижнем уровне операционной системы: на уровне ее ядра.

Доступ к специальным файлам / базам данных – еще одно средство получения доступа к системным ресурсам. Ранее обсуждалась возможность использования специальных файлов для получения важной информации, например паролей. База данных – хранилище важной информации о ресурсах системы. Доступ к базе данных может быть получен в результате использования ошибок в обслуживающем их программном обеспечении, например ошибок в Web-интерфейсе или программных ошибок типа переполнения буфера. Ну и конечно, от злоумышленника потребуются определенные усилия, чтобы разобраться с разграничением доступа в базах данных.

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

О расширении прав говорят в случае, когда неавторизованный пользователь получил доступ к ресурсу, хотя ранее он им не обладал. Были рассмотрены варианты удаленного получения доступа на правах как привилегированного, так и непривилегированного пользователя. В первом случае при помощи демонов HTTP на UNIX-системах, во втором – при помощи таких служб, как демоны SSH. В главе также обсуждались вопросы применения Троянских коней и методов социотехники для получения привилегированного пользовательского доступа к хосту. Отмечалось сходство методов удаленного и локального расширения прав.

Тестирование уязвимостей – необходимая и обязательная обязанность всякого, кто занимается администрированием систем или обеспечением их безопасности. Доказательство возможности нападения (proof of concept) – один из методов тестирования, который используется для доказательства существования уязвимостей. Другие методы заключаются в применении демонстрирующих проблему программ, автоматизированного инструментария безопасности и контроля версий (versioning) для обнаружения уязвимых версий программного обеспечения.

Опытный злоумышленник применяет различные методы подготовки атак. Базы данных Whois могут использоваться для сбора разносторонней информации о системе, доменах и сетях. Такие средства DNS, как утилита dig, могут использоваться для сбора информации о хостах и используемом ими программном обеспечении, а nslookup – для идентификации почтовых серверов доменов. В главе кратко освещены вопросы сканирования сети при помощи Nmap. Сканирование сети позволяет выудить сведения о сервисах операционных систем хостов. Наконец, обсуждался спайдеринг для сбора сведений о сайте: его расположении и наличии на нем потенциально важной информации.

Конспект

Обзор классов атак

· По своему результату атаки разбиты на семь классов: отказ в обслуживании, утечка информации, нарушение прав доступа к файлу, дезинформация, получение доступа к специальным файлам / базам данных, удаленное выполнение программ и расширение прав.

· Отказ в обслуживании хоста может быть достигнут в результате локальной или DOS-атаки из сети.

· Атаке почти всегда предшествует анализ сведений, полученных в результате утечки информации.

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

· Скомпрометированной системе нельзя доверять ни при каких обстоятельствах до тех пор, пока она не будет восстановлена с безопасного носителя (например, дистрибутива производителя).

· Атаки на базы данных могут использовать либо бреши программного интерфейса, например Web-интерфейса, либо ошибки программного обеспечения баз данных, например переполнение буфера.

· Большинство уязвимостей, используемых для удаленного выполнения программ, могут быть в значительной мере обезврежены при помощи ограничения прав доступа, замены корневой директории (change rooting) и недопущения помещения в стек программ (non-executable stack protection).

· При расширении прав доступа злоумышленник может получить удаленный непривилегированный и привилегированный доступы или локальный привилегированный доступ.

Методы тестирования уязвимостей

· Тестирование уязвимостей – необходимая часть обеспечения безопасности систем.
<< 1 ... 9 10 11 12 13 14 15 16 17 ... 24 >>
На страницу:
13 из 24