From bigblue.oit.unc.edu!solaris.cc.vt.edu!news.bluesky.net!news.sprintlink.net!EU.net!news.eunet.fi!news.spb.su!kiae!relcom!newsserv Sun Mar 19 11:37:27 1995
Path: bigblue.oit.unc.edu!solaris.cc.vt.edu!news.bluesky.net!news.sprintlink.net!EU.net!news.eunet.fi!news.spb.su!kiae!relcom!newsserv
From: none <infor@relpress.msk.su>
Newsgroups: relcom.netnews
Subject: INTERNET и "взломщики"( ДМ )
Date: Sat, 18 Mar 95 22:28:42 +0300
Distribution: su
Organization: Relpress Inc.
Message-ID: <AAgHpQl8w7@relpress.msk.su>
Sender: news-service@kiae.su
Reply-To: infor@relpress.msk.su
X-Return-Path: kiae!relpress!relpress.msk.su!infor
Lines: 344


                                    Опыт
                       InterNet: предотвращение взлома
                           Тим Паркер (Tym Parker)

     Быстрый рост  и распространение  InterNet, особенно в совокупности с
общедоступными сетями,  такими как  America Online, Compuserve и Prodigy,
заново приковывают  внимание к  проблеме, которая  известна пользователям
SCO Unix  (далее SCO) уже более десятка лет, но к которой не относились с
должным почтением: несанкционированный доступ через модемы или сети.
     Неофициальный опрос, проведенный в 1990 году среди участников форума
Unix в  сети Compuserve,  показал, что  большинство администраторов сетей
осознают потенциальную  возможность проникновения  в сеть  извне,  однако
такое же большинство считало вероятность взлома очень небольшой. Такой же
опрос в  этом  году  показал  значительное  изменение  отношения  к  этой
проблеме. Более  половины респондентов ответили, что их беспокоят бреши в
системе  безопасности.   Заново  открытая  проблема  уже  породила  новое
жаргонное  словечко.   Теперь  администраторы   сетей  и  администраторы,
отвечающие за  безопасность, обсуждают  "брандмауэры" -  термин,  ставший
популярным  благодаря   книге  "Брандмауэры   и  безопасность   InterNet"
(Firewalls and  Intenet Secutirty.  Addison-Wessley  Publishing  Co.,  by
William Cheswick  and Steven  Bellovin). В  автомобильной  промышленности
брандмауэром называют устройство, предотвращающее распространение пламени
в пассажирский салон в случае пожара в моторном отсеке.
     Брандмауэры в  сетях служат  для предотвращения несанкционированного
доступа извне.  Администраторы-ветераны  с  тревогой  наблюдают  развитие
проблемы.  Хотя   во  многих  системах  устанавливаются  брандмауэры  для
ограничения доступа  через  InterNet,  остается  множество  корпоративных
сетей, широко  открытых для  проникновения с  помощью модемов  и  шлюзов.
Хорошая система  безопасности должна  учитывать все  возможные  источники
неприятностей и  находить адекватные меры противодействия каждому из них.
В сети  InterNet можно  найти много  полезных  советов  по  безопасности,
однако, большинство  из них  относятся к  системам, работающим с InterNet
напрямую -  через шлюзы  или маршрутизаторы.  Большая часть SCO систем не
имеет прямого  выхода в  Internet, а  работает опосредованно через другие
службы, поэтому  брандмауэры InterNet,  описание которых  можно найти  на
сети или  в книгах,  подобных "Firewalls  and Intenet  Secutirty", нельзя
непосредственно применить при администрировании SCO.
     Пользователям SCO  следует обратить  внимание на  стандартные методы
защиты в Unix для UUCP и доступа через модем. В этой статье мы рассмотрим
методы защиты,  на которые  вы должны обратить внимание в первую очередь,
чтобы предотвратить  несанкционированный доступ  через  модем  или  сеть.
Вместо того чтобы обсуждать сложные комплексные решения, которые возможно
обеспечивают более высокий уровень защиты, но гораздо более трудоемки для
администратора, мы поговорим о простых способах.
     Многие администраторы  либо не  знают, как защитить систему, либо не
берут в расчет возможность взлома. Есть один универсальный совет для них:
не испытывайте  судьбу!  Займитесь  защитой  немедленно!  Слабые  пароли!
Простейший способ  проникнуть в  чужую систему - отгадать пароль, получив
тем самым  все права законного пользователя. Слабые пароли, которые можно
разгадать,  сильно  распространены.  Недавняя  проверка  четырех  больших
корпораций (причем все они проводили политику против использования слабых
паролей) выявила, что 96% паролей - слабые и могут быть вскрыты перебором
специального словаря. Самые лучшие брандмауэры и системы защиты бессильны
против законного  входа. Иногда  одной политики  против применения слабых
паролей недостаточно.  Поддерживаемый в  SCO уровень  защиты C2 позволяет
ограничить время  применения каждого пароля, по истечению которого пароль
должен быть  изменен. Даже  если ваша система не поддерживает C2, полезно
заставлять всех  пользователей регулярно  менять пароли.  Специалисты  по
безопасности считают,  что оптимальный  интервал смены паролей - примерно
восемь недель.  Многие программы  защиты не  позволяют повторно применять
однажды использованный  пароль. Хорошая практика - запрещать использовать
в качестве  паролей распространенные английские слова (с помощью проверки
по словарю)  или  всевозможные  сокращения  идентификатора  пользователя.
Кстати, пароли  на основе  идентификатора пользователя  вскрываются проще
всего.
     Существует несколько  общедоступных (public  domain) и  коммерческих
программ "усиления  паролей". Одна из часто используемых - Password Coach
фирмы  BaseLine  Software.  Эта  программа  сначала  проверяет  введенный
пользователем пароль  по словарю  слов, фраз  и известных слабых паролей,
затем проверяется  - не  является ли  пароль комбинацией  слабых паролей.
Коммерческая версия  Password  Coach  доступна  для  многих  операционных
систем, в  том числе  для SCO Unix и XENIX. Если ваша система открыта для
доступа через модемы, обязательно приобретите Password Coach.
     Однако усилия  системных администраторов  могут оказаться  тщетными,
если сами  пользователи не  меняют или  не держат  в секрете свои пароли.
Часто пользователи просто обмениваются своими паролями вместо того, чтобы
надлежащим образом  устанавливать или  передавать  права  на  свои  файлы
другим. Иногда  забывчивые  пользователи  записывают  пароль  на  клочках
бумаги (особенно,  если им  приходится его  менять). В таком случае лучше
выдумать какую-нибудь  процедуру обеспечения  безопасности, причем  лучше
правила использования и смены паролей записать на бумаге и согласовать со
всеми пользователями.  Нарушение  этой  процедуры  подвергает  риску  всю
систему, поэтому должно повлечь дисциплинарное наказание.
     Модемы. С  помощью модема  вы можете  добраться практически до любой
машины с SCO Unix, независимо от того, работает ли она в составе закрытой
сети или  в одиночестве.  Модемы часто  используются для  опосредованного
доступа в  InterNet через  фирмы, предоставляющие такой сервис, например,
NetCom или  UUNET Technologies,  либо с  помощью обычных  Unix  программ,
таких,  как   uucp  или   cu.  Защищая  модем,  вы  просто  и  эффективно
предотвращаете  случайный   доступ  в  вашу  систему.  Один  из  наиболее
безопасных способов  защиты модемных  линий  -  использование  модемов  с
обратным вызовом.  Сейчас такие  модемы довольно дороги, но с расширением
сбыта  цены   неминуемо  упадут.   Модем  с  обратным  вызовом  позволяет
устанавливать соединение как обычно, получая имя абонента и пароль. Затем
модем "вешает  трубку" и  проверяет список  пользователей и их телефонных
номеров.  В   случае  успеха   модем  сам   вызывает  номер   абонента  и
устанавливает  соединение.   Конечно,  это   вряд  ли   сработает,   если
пользователь часто  меняет местоположение.  Тем не  менее  для  тех  кому
приходится связываться  с офисом из дома, модемы с обратным вызовом могут
быть первым шагом в обеспечении защиты.
     Механизм обратного  вызова в Unix поддерживается более десятка лет и
обеспечивается использованием  программы ct  для запуска процесса getty и
вызова удаленной телефонной линии. К сожалению, модемы с обратным вызовом
уязвимы,  если   используется  механизм   перенаправления  вызовов.  Если
взломщик получил  доступ к механизму перенаправления вызовов пользователя
и  ему   известен  обычный  номер  для  обратного  вызова,  то  он  может
перенаправить обратный  вызов модема  на другой номер. (Незаконность этих
действий вряд ли остановит настоящего взломщика.) Модем сам по себе может
быть источником  неприятностей, если он неправильно "вешает трубку" после
завершения сеанса  связи с  абонентом. Обычно  это  связано  с  распайкой
контактов. В  разъеме DB-25  три контакта  управляют  состоянием  модема:
контакт 6 - Data Set Ready, контакт 8 - Data Carrier Detect, контакт 20 -
Data Terminal Ready. Дуплексные модемы используют контакт 6 для индикации
наличия напряжения  питания. Полудуплексные (часто применяемые в SCO Unix
и XENIX  системах), используют  этот же  контакт для  индикации того, что
соединение установлено  и идет  сеанс связи.  Если контакт  6 не соединен
через модем  с соответствующим  контактом  на  разъеме  последовательного
порта, то  модем может  оставаться "со снятой трубкой" без связи с другим
модемом. Если  кто-либо сможет  в этот  момент к  нему  подключиться,  то
немедленно получит доступ к системе.
     Контакт 8  в разъеме  DB-25 в  дуплексных  модемах  показывает,  что
удаленный модем  пересылает данные. Полудуплексные модемы используют этот
контакт так  же, как  контакт 6  - соединение  установлено и  идет  сеанс
связи.  Соответственно,   та  же  проблема  может  возникнуть  и  с  этим
контактом.  Наконец,   если  неверно   функционирует   контакт   20,   то
операционная система  не сможет контролировать состояние телефонной линии
("снята трубка"  или нет  и пр.).  Возможно, проблемы  распайки  выглядят
тривиально, однако  на многих  системах разъемы  и соединительные  кабели
модема распаяны  вручную, и при этом задействованы не все контакты. Тогда
может случиться,  что процесс  завершения сеанса будет не закончен, и кто
угодно, подключившийся в этот момент к модему, сможет работать под именем
"висевшего" на этой линии пользователя. Проверяйте соединительные провода
и разъемы  и не  используйте собранных  вручную.  Покупая  соединительный
провод для  модема, убедитесь,  что задействованы  все 25 контактов, т.к.
случается, что  из 25  работают только  7. Доступ  к системе  через модем
всегда  осуществляется   посредством  процесса  getty,  порождаемого  при
начальной инициализации  последовательной линии  связи.  Программа  getty
выясняет имя  пользователя, устанавливает  параметры соединения (скорость
передачи, тип  терминала и  т.д.)  и  следит  за  задержками  (time-out).
Поскольку  чаще   всего  нежелательные   попытки  доступа  происходят  во
внерабочее время,  то с  помощью утилиты  cron вы  можете изменять статус
линий или непосредственно отключать порты в это время.
     Ночные шалости
     Если вы хотите разрешить каким-либо легальным пользователям доступ в
вашу систему  по ночам,  то можно  оставить  действующими  одну  или  две
телефонные линии.  Это, конечно,  оставит систему "приоткрытой", но резко
ограничит возможности  взломщика. В  некоторых системах телефонные номера
"ночных" линий отличаются от номеров, работающих в дневное время (которые
часто идут  подряд), что  затрудняет взломщикам поиск телефонных номеров,
подключенных к  модемам путем последовательного перебора (см. врезку "Как
же они туда проникают?").
     Некоторые системные  администраторы предпочитают  отключать на  ночь
многопользовательский  режим,   оставляя  системы   работать   в   режиме
администратора, а  утром запускают  систему обычным  образом. Этого можно
добиться, используя  файл crontab, в котором для разного астрономического
времени  можно   установить   различные   режимы   запуска:   1   -   для
администратора, 2  - для  многопользовательского режима.  Кроме того, для
корректной работы  этого механизма  может потребоваться  изменение  файла
/etc/rc2.
     В системе  SCO XENIX  параметры портов  задаются в  файле /etc/ttys.
Можно, например,  создать две  версии этого файла: в одной модемные порты
будут выключены,  в другой - включены. SCO XENIX регулярно считывает файл
/etc/ttys, и  тем самым  вы можете  гибко управлять  модемами, по очереди
подставляя  одну   или  другую  версию  файла.  Однако  могут  возникнуть
проблемы, если система "повиснет" в момент записи версии файла /etc/ttys:
например, такой  файл вообще  будет не  найден, тогда  нормальный  запуск
системы   просто    невозможен.   Если   это   случилось,   то   придется
воспользоваться дискетой  "холодного" запуска,  которая даст  возможность
восстановить нужную версию файла /etc/ttys.
     Запрет входа в систему нежелательным пользователям через модем можно
осуществить с  помощью модемных паролей, которые поддерживаются в SCO и в
других системах,  совместимых с  UNIX System V. Для входа в систему через
модем пользователю придется тогда задавать дополнительный пароль. В файле
/etc/dialups задается  список портов,  закрытых  дополнительным  паролем.
Другой файл  - /etc/d_passwd  - содержит  пароли для модемов и для разных
типов интерпретатора  shell. Дополнительные пароли можно установить и для
доступа в  систему через UUCP. Оба файла должны принадлежать пользователю
root и никаким другим, тогда взломщик не увидит эти файлы.
     Обычно файл /etc/d_passwd выглядит так:
     /bin/sh::
     /bin/lib/uucp/uucico::
     Как бороться с UUCP
     Если происходит  вызов через модем, в этом файле система ищет строку
соответствующую используемому  интерпретатору shell.  В примере не задано
никаких паролей.  Пароль для  доступа  через  определенный  интерпретатор
задается в  конце строки  между двоеточиями. Если вместо пароля поставить
NO  LOGIN,   то  доступ  вообще  будет  запрещен.  Файлы  /etc/dialups  и
/etc/d_passwd почти  недокументированы, хотя  используются в системе UNIX
уже много лет.
     Сетевая утилита  UUCP (Unix-to-Unix  copy -  копирование с Unix'а на
Unix) уже  очень долго живет вместе с Unix. При ее разработке учитывались
проблемы сетевой  безопасности, однако без должного понимания, поэтому со
временем стали  возникать проблемы.  Хотя в  UUCP были внесены изменения,
тем не менее ее использование требует внимания администратора. Надлежащая
установка параметров  UUCP - первый шаг к ее безопасному использованию. В
документации на SCO этот процесс хорошо описан.
     Большинство системных  администраторов даже не знают, что UUCP имеет
свой собственный пароль. Файл /etc/passwd содержит пароли для имен UUCP и
NUUCP, причем  последнее поле  в этих строках содержит имя программы uucp
или процесса  (демона) uucico.  Для работы  через UUCP  удаленная система
входит на  локальную систему как обычный пользователь, но с именем uucp и
соответсвующим паролем.
     Имя nuucp  поддерживается на  всех SCO  системах. Система nuucp была
придумана специально  для доступа  незарегистрированных систем  и поэтому
представляет собой  наибольшую брешь  в системе  безопасности.  Программа
uucp требует вполне определенного имени удаленной системы, а nuucp - нет.
Самый простой способ зашить эту дыру - совсем удалить пользователя nuucp.
Если же  это по  каким-то причинам  нежелательно, снабдите  его "сильным"
паролем.
     Наибольшая проблема  в том, что обычно для uucp либо вообще не задан
пароль, либо  установлен пароль  "по-умолчанию". Если пароль не задан, то
кто  угодно   может  сначала   получить  доступ   через  uucp,  а  затем,
модифицировав файлы,  получить доступ  как обычный пользователь. Имя uucp
относится к  административному классу,  т.к.  некоторые  системные  файлы
должны быть  доступны для  правильного функционирования в сети. Хотя uucp
не имеет прав администратора или root, лучше снабдить ее сильным паролем.
     Ограничьте,   насколько    возможно,   доступ   к   каталогам   UUCP
(/etc/lib/uucp, /usr/spool/uucp,  /usr/spool/uucppublic). Чаще  всего эти
каталоги остаются общедоступными. Пусть только UUCP имеет право доступа к
этим каталогам.  Также полезно  запретить UUCP  доступ к другим системным
каталогам.
     Доступ  через   uucppublic  может   оказаться  серьезной   брешью  в
безопасности, т.к.  подразумевает права  записи и чтения для всех систем,
пользующихся им.  Хорошим решением  может быть  создание двух  каталогов:
одного  для  посылки  файлов,  другого  для  приема  файлов.  Такие  пары
каталогов можно организовать и для каждой удаленной системы, пользующейся
uucppublic. В  этом случае  типичная проблема:  изменение прав  доступа к
файлам самими пользователями во время копирования.
     В некоторых системах администраторы изменяют входное имя для доступа
через uucp,  что может  предотвратить случайный  доступ. Новое  имя может
быть любым. Поскольку файлы конфигурации uucp должны быть согласованы для
всех удаленных  систем, имеющих  право  доступа,  то  новое  входное  имя
необходимо сообщить администраторам. Простое изменение имени, например, с
"uucp" на  "new_uucp"  предотвратит  большинство  автоматических  методов
взлома.
     Программа UUCP  хранит список "допущенных" систем и их прав в файлах
/usr/lib/uucp/Systems и  /usr/lib/uucp/Permissions. Доступ  к этим файлам
может быть  разрешен только под именем uucp, тогда их не удастся изменить
взломщику, вошедшему  под другим  именем. В качестве имени пользователя и
группы  для   этих  файлов   лучше  задать   uucp  (или  другое,  которое
соответствует программе  UUCP). Проверяйте регулярно права доступа к этим
файлам. Легко  изменяемые файлы  администратора  могут  служить  огромной
дырой в вашу систему для знающего взломщика.

     Локальные сети
     Может быть,  локальные сети  и не  главная  проблема  в  обеспечении
безопасности, но это один из наиболее простых способов доступа к системе.
Представьте себе  локальную сеть,  в которой  сосуществуют несколько SCO-
машин, а  также PC  и Mac'и.  Если хотя бы одна из SCO-машин имеет слабую
защиту, то  через нее можно осуществить доступ ко всем остальным машинам.
Не говоря уже о PC и Mac'ах, которые, как правило, имеют слабую защиту от
взлома и могут быть использованы в тех же целях.
     Запомните один принцип: машина не может считаться безопасной, если в
ту же самую сеть включена машина со слабой защитой. Все меры безопасности
для одной  сетевой машины  должны быть  обязательно распространены на все
другие машины в сети.
     Идеальная  локальная  сеть  должна  проверять  "законность"  каждого
соединения, включая  имя машины  и имя  пользователя.  Однако  это  редко
встречается.  Некоторые   программные  сетевые  механизмы  еще  добавляют
трудностей. Например, механизм "trusted hosts", реализованный в SCO Unix,
позволяет машине  подключаться к  хосту, если  ее имя содержится в особом
файле. Причем  в большинстве случаев пароль не требуется. Все, что должен
сделать взломщик,  - узнать  одно  из  допустимых  имен  и  подключиться.
Проверяйте регулярно  собержимое файлов  /etc/hosts.equiv,  /etc/hosts  и
.rhosts.
     В NFS  (сетевая файловая  система) тоже  есть свои  проблемы. Если в
системе не  проверяется допустимость  монтирования  файловых  систем,  то
пользователь может  вольно или невольно получить полный доступ к системе.
В файле  /etc/exports содержится  список файловых систем и машин, которые
могут использовать  NFS. Этот файл тоже необходимо регулярно проверять, с
тем чтобы  все монтируемые каталоги создавались в контролируемой области,
например в каталоге /usr.
     Сейчас  получила   распространение  система   Kerberos,  проверяющая
допустимость каждого  соединения. В  ней реализуется  проверочный сервер,
который хранит  базу данных  с именами  пользователей и  их паролей.  Все
сообщения передаются  в закодированном  виде, и  при этом  каждый  запрос
пользователя проверяется  на допустимость.  Kerberos легко реализуется на
SCO, хотя многие администраторы считают (до первого взлома), что Kerberos
слишком  усложняет   систему.   SCO   поставляет   Kerberos   в   составе
распределенного окружения  DCE - Security Services Module (распределенная
служба безопасности).  Вы можете  купить  только  модули,  отвечающие  за
безопасность, и отказаться от всех остальных.
     Все  Unix  системы,  вследствие  особенностей  сетевой  архитектуры,
включая TCP/IP,  по природе  своей уязвимы для знающего взломщика. Хорошо
известные номера  портов протокола  TCP/IP, зарезервированные  за  такими
службами, как  telnet или  ftp,  могут  послужить  окном  в  систему  без
необходимости менять права доступа к файлам и пр. Известны сотни проблем,
связанных с  использованием утилит  из семейства  TCP/IP  (включая  ping,
finger, sendmail,  tftp и  др.). Поэтому одним из первых шагов может быть
отключение всех  сетевых служб,  которыми вы  не пользуетесь.  Для  этого
проверьте файл  /etc/inet.conf и  удалите все  процессы (демоны), которые
вам не  требуются. И  не пренебрегайте дополнительными знаниями обо всем,
что связано с TCP/IP.

     Связывая все вместе
     Не так  уж трудно  защитить систему от нежелательных посещений. Хотя
для этого требуются согласованные меры. Прежде всего нужно заделать самые
очевидные прорехи,  о  которых  известно  всем.  Однако  сделать  систему
полностью безопасной все равно не удастся.
     Взломы систем  через Internet все учащаются. Выше говорилось, что во
многом это  не касается  SCO Unix  и XENIX,  т.к. в  основном системы SCO
используют Internet  не напрямую. Если же вы все-таки включены в Internet
непосредственно, то  вам предстоит заняться защитой вплотную. Вопрос этот
слишком сложен, чтобы обсуждать его в одной статье.
     Не  рискуйте.  Постарайтесь  защитить  пользователей  и  их  данные.
Преодоление последствий  единственного взлома  может растянуться на годы,
тогда как всего несколько часов требуется на осуществление не дорогой, но
эффективной политики безопасности.
     Как же они туда проникают?
     На удивление,  несложно взломать  типичную  систему  на  базе  Unix.
Знание основных  способов взлома даст вам шанс им противостоять. Помните,
что большинство  взломов делаются  не "на  удачу", а  с помощью различных
методов, и  часто этот  процесс автоматизирован. Большинство систем имеют
слабое место,  и главное  - найти его. Многие администраторы не осознают,
что взломщик  целенаправленно будет  искать любые  слабости вашей системы
безопасности.
     Чаще всего  несанкционированный  доступ  осуществляется  при  помощи
модема. Найти номер модемной линии иногда также просто, как найти номер в
телефонной книге.  Если  это  не  удалось  сразу,  то  применяется  метод
"каскадного  поиска".   Для  этого   модем,  подключенный   к   домашнему
компьютеру, перебирает  последовательно несколько  телефонных  номеров  и
запоминает те  из них,  которые отвечают  как модемы.  Также запоминаются
некоторые характеристики этих линий (скорость передачи, идентификационный
код и пр.).
     После  того,   как  вся  необходимая  информация  собрана,  делается
"прогон" каждого  номера: домашний  компьютер при  помощи модема пытается
соединиться с  другой системой,  используя предопределенный список имен и
паролей и  анализируя степень  успеха. Например,  исследование реакции на
неверное имя  или пароль  может рассказать  о системе очень много. Особое
внимание обращается на системы с предопределенными именами (root, sysadm,
backup).
     Иногда допутимое  имя  и  пароль  добывают,  подслушивая  телефонную
линию. Против этого очень сложно бороться, если, конечно, не использовать
технику шифрования сообщений.
     Для проникновения  в большие  системы используется  метод "перехвата
пакетов". Взломщик  перехватывает и  исследует все  передаваемые по  сети
пакеты. Во  многих случаях в сетях TCP/IP во время установки соединения в
пакетах передается  имя и  пароль пользователя  в  незашифрованном  виде.
Против этого могут помочь системы шифрования пакетов, например Kerberos.

                                  **  **  **



