Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРС_ИПОВС_МСЗИ.doc
Скачиваний:
41
Добавлен:
05.06.2015
Размер:
1.79 Mб
Скачать

Другие типы взлома

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

  • Удаленное переполнение буфера в BIND 8.2.

  • Взлом с помощью cookies.

  • Уязвимость SNMP.

  • Анализаторы пакетов и dsniff.

  • Взлом PGP ADK.

  • Слабые пароли в Cisco IOS.

  • Вклинивание при обмене ключами.

  • Взлом с использованием тунеллирования HTTP.

Переполнение буфера в bind 8.2

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

Протокол DNS (Domain Name Systemсистема имен доменов) является одним из наиболее активно используемых в Internet. Такая популярность обусловлена его основной функцией — сопоставлением имен доменов с IP-адресами. Процесс пересылки почты или работа с Web были бы в лучшем случае хаотическими, если бы не служба DNS. Система DNS основывается на архитектуре клиент-сервер и включает в себя серверы имен и серверы распознавания. Серверы имен обрабатывают рекурсивные запросы (в противоположность итеративным), и именно они интересуют нас, поскольку подвержены взлому с переполнением буфера при обращении к записи NXT.

Протокол DNS использует как протокол TCP, так и протокол UDP. Серверы имен в большинстве случаев передают запросы другим серверам DNS через порт UDP 53. Прото кол TCP используется для пересылки зон и для запросов, содержащих длинные имена (длиной более 512 байт). Для использования приведенного ниже эксплоита обмен должен происходить по протоколу TCP. Ранние версии DNS не имели системы безопасности, поскольку не существовало метода аутентификации серверов имен. Чтобы сделать данный протокол более безопасным и ввести в него возможность аутентификации, были разработаны расширения безопасности DNS. Одним из таких расширений является запись ресурса NXT. Запись NXT позволяет запретить проведение запроса к записи с определенный именем и типом. Как не смешно, именно эта возможность открыла брешь в системе безопасности, позволяя провести взлом с переполнением буфера. Эта ошибка отсутствовала в ранних версиях BIND.

Пакет BIND (Berkeley Internet Name Domain) является одной из наиболее популярных peaлизаций протокола DNS. Версия BIND 8.2, которая поддерживает использование записи NXT, содержит в себе ошибку, которая позволяет удаленным пользователям запускать любой код с полномочиями пользователя, от имени которого запущен сервер имен.

Взлом записи NXT для BIND 8.2 основан на переполнении буфера стека. Метод переполнения буфера может применяться как к записи NXT BIND 8.2, так и к другим программам, в которых допущены ошибки при программировании. Стек - это та часть памяти программ, которая используется для передачи параметров функциям и хранения локальных переменных. Кроме того, в стеке хранится адрес возврата, который является целью взлома с переполнением. Адрес возврата— это адрес, по которому переходит выполнение программы после выполнения функции.

Эксплоит ADM-NXT для взлома BIND срабатывает в тот момент, когда взламываемый сервер имен обрабатывает рекурсивный DNS-запрос от компьютера взломщика. В запросе передается некорректная запись NXT, которая содержит программу взлома стека сервера BIND. Данный эксплоит может применяться против первичных, вторичных и даже кэширующих серверов имен.

Симптомы атаки

Существует много признаков того, что против сервера с BIND 8.2 был проведен взлом с использованием записи NXT. Одним из таких признаков является наличие имени создателей программы взлома, программистов Horizon и Plaques. ASCII и шестнадцатеричные версии их имен легко засечь с помощью программ анализа пакетов, например TCPDump, Snort или Solaris Snoop. Всего существует семь однозначных признаков проведения этого взлома.

Признак 1

Первым признаком является рекурсивный запрос по имени домена, которое не обслуживает сервер. Это, однако, может быть объяснено ошибкой при введении имени домена при проведении запроса. Однако вероятность проведения таких запросов падает по экс­поненте, если сервер обслуживает домены четвертого и выше уровней.

Признак 2

В некоторых из систем после проведения взлома в соответствии с информацией с узла http://www.cert.org/advisories/CA-2000-03.html появлялись такие пустые каталоги:

/var/named/ADMRocks

/var/named/O

Признак 3

При использовании эксплоита под BSD создается пустой файл в соответствии со следующими инструкциями в массиве bsdcode[] исходной программы:

0x74, 0x6f, 0x75, 0x63, 0x68, 0x20, 0x2f, 0x74, 0x6d, 0x70, 0x2f, 0x59, 0x4f, 0x59, 0x4f, 0x59, 0x4f, 0x0;

Если расшифровать эту строку, то в ASCII-представлении она будет выглядеть так: touch /tmp/YOYOYO.

Признак 4

Во всех неисправленных версиях этой программы код взлома будет пытаться выполнить команду /adm/sh -с. Эта команда выполняется в соответствии со следующими инструкциями в исходном коде:

0x2f, 0x61, 0x64, 0x6d, 0x2f, 0x6b, 0x73, 0x68, 0x0, 0x2d, 0x63

Однако если применить к этой программе заплату, эта строка программы будет заменена на строку /bin/sh -с. Horizon сам оставил подсказку в комментариях к этой про. грамме.

Признак 5

Во всех версиях этого эксплоита явно присутствует строка ADMRocks. За ее наличие в коде отвечает следующая строка:

0x41, 0x44, 0x4d, 0x52, 0x4f, 0x43, 0x4b, 0x53

Признак 6

Фрагмент кода из строк linuxcode[] и bsdcode[] расшифровывается как ... plaquez [ADM].

Методы защиты

Во-первых, всем пользователям BIND настоятельно рекомендуется обновить эту программу до версии 8.2.2 с заплатой уровня 5 или выше. Это наиболее простой и надежный предотвратить взлом. Кроме того, нужно изменить UID и GID службы in.named на те, которые не являются идентификаторами пользователя root. Это аналогично тому, как запускаются Web-серверы. Более общим методом защиты от взлома с использованием полнения является использование корректных и безопасных методик программирования, а также надежных компиляторов. Кроме того, использование в функций fget (), istrncpy() и strncat() значительно снижает безопасность программы. Небходимо также постоянно отражать все изменения в настройках на общей схеме безопасности компании.