Хакеры

Вмешательство хакеров* в работу компьютеров стало обычным явлением на Западе. В последнее время этот вид преступлений получает распространение и в России.

В статье, подготовленной специалистами Врижского университета (г. Амстердам, Голландия), приводятся примеры реальных действий хакеров и рекомендации по их выявлению. Особое внимание уделяется методам, которые используются для взлома компьютерных систем, и тому, что предпринимают хакеры сразу после проникновения в систему.

 

Введение

 

В наше время взломы компьютерных сетей значительно более распространены, чем это было, скажем, 10 лет назад. Во многом это обусловлено технологическими изменениями, которые произошли за последнее десятилетие: компьютеры объединены в сети и даже многие компьютерные системы основаны на этом принципе. Например, сетевая операционная система SunOS, построенная на концепции клиент--сервер (когда клиент и сервер работают на различных компьютерах), во многом построена именно на сетевом взаимодействии. К сожалению, разработчики сетевых операционных систем часто моделируют локальную сеть как продолжение локальной шины данных. Они пренебрегают тем фактом, что в сеть гораздо легче подключиться извне, в то время как подключение к шине данных требует значительно больших усилий. Однако простота аппаратного подключения -- это только вершина айсберга.

Десятилетие назад, когда компьютеры еще не были объединены в сети, единственной возможностью несанкционированного доступа к информации было знание входного пароля, который можно было получить от небрежного пользователя или подобрать. В наши дни хакер может написать простенькую программу, которая выдает себя за клиента сетевой файловой системы (Network File System -- NFS), и, обходя обычные средства контроля доступа, получить прямой доступ к файлам пользователя. NFS не единственное сетевое средство, уязвимое для подобного рода вмешательств, практически все сетевые модули имеют этот недостаток.

Информация о методах внедрения хакеров в компьютерные системы, представленная в этой статье, собрана по следам вмешательств в работу компьютеров вычислительных центров Врижского университета. Каждый его факультет имеет свой собственный автономный вычислительный центр, обслуживающий соответствующие направления научной деятельности. Все центры объединены в общеуниверситетскую сеть, которая, в свою очередь, соединяется с сетью Internet. В то время, когда предпринимались описываемые попытки проникновения в сеть, не существовало единой службы, ответственной за обеспечение информационной безопасности. Каждый факультет должен был заниматься этим самостоятельно. Однако обеспечение секретности не рассматривалось как одна из основных задач: "Компьютер это что-то такое, что вы извлекаете из коробки, включаете и начинаете работать..." К сожалению, администраторы не знали, что установки, принимаемые по умолчанию, гораздо более дружественны, чем хотелось бы. И именно это позволило хакерам проникать в сеть.

 

_______________________

*От англ. crack -- ломаться, трескаться, но сами компьютерные пираты называют себя "хакерами" -- hacker.

 

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

 

Портрет хакера

 

Литература по компьютерной безопасности часто упускает описание "среднего" хакера, так как обычно о них ничего не известно, замечают только следы их деятельности. Однако в случаях, описанных в этой статье, известны конкретные люди. Все они студенты-программисты, оканчивающие высшие учебные заведения. Все имели доступ в сеть Internet и были достаточно хорошо знакомы с UNIX (UNIX -- зарегистрированная торговая марка AT&T Bell Laboratories). Все хакеры, за исключением одного, имели знания обычных программистов UNIX, однако с более глубоким пониманием программного обеспечения сети. Только один из них оказался настолько квалифицированным, чтобы использовать наиболее редкие "дыры" операционной системы.

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

 

Схема действий

 

Обычно хакер проникает в компьютерную систему по стандартной схеме.

Сначала он определяет потенциально доступные машины, затем пытается войти в систему и, если это удалось, старается закрепить свои позиции.

Зачастую найти потенциальную машину -- простейшая часть процесса. Сведения о них можно получить из файлов .rhosts и .netrc, содержащихся в уже взломанных системах, или с помощью DNS (Domain Name System -- доменная система имен).

Доменная система имен (DNS) -- это иерархическая распределенная база данных, которая обеспечивает преобразование имен компьютеров в их числовые адреса в сети Internet. Популярной среди хакеров особенностью DNS является так называемый запрос зонной информации (zone transfer). Когда сервер DNS получает подобный запрос, он передает всю имеющуюся информацию, относящуюся к зоне. Она включает в себя имена компьютеров, их сетевые адреса и служебные данные о типе компьютера.

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

Взлом системы

 

После того как хакер сделал свой выбор, перед ним встает задача входа в систему.

Большинство многопользовательских систем имеют средства идентификации пользователя. В системе UNIX идентификация состоит из традиционной пары: имени пользователя и пароля входа. Имена обычно известны, а пароли входа -- засекречены. Даже если имена пользователей неизвестны, их нетрудно получить, используя различные информационные утилиты (например, finder или ruser).

Что касается подбора пароля входа, то перебор хакером всех возможных вариантов, исходя из логических умозаключений, редко приводит к успеху: комбинаций слишком много, а программа login работает медленно и обычно разъединяет линию после трех неудачных попыток.

Для более эффективных результатов хакеры обращаются к сетевым средствам, которые предоставляются большинством систем. В этом аспекте интересны такие средства, как NIS, RLOGIN/RSH и NFS.

 

Сетевая информационная служба NIS (Network Information Service)

 

NIS, также известная под старым названием "Yellow pages", очень проста для получения необходимых сведений из баз данных достаточно широкого профиля, в том числе и паролевых файлов. Доступ к ней возможен только через доменное имя NIS.

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

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

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

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

В системе UNIX только привилегированный пользователь может осуществить подобного рода подключение к системе, но в других системах такого ограничения не существует. Например, любой персональный компьютер, имеющий TCP/IP-приложение, может осуществить сетевое подключение из привилегированного порта и, следовательно, получить теневой паролевый файл.

Исследования показали, что, используя описанный выше метод, один хакер смог войти в 250 компьютеров.

 

Средства удаленного входа (REMOTE LOGIN/SHELL SERVICE)

 

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

Существует система удаленного исполнения команд с аналогичными средствами идентификации и ограничения доступа. Гостевая система, с которой допускается беспарольный вход, -- это система, чье имя занесено в специальный файл с именем (/etc/hosts.equiv). Файл содержит имена компьютеров, пользователям которых не нужно вводить пароль для вхождения в сеть (используя средства дистанционного входа) или выполнять команды (используя средства дистанционного выполнения команд).

Характерной особенностью этого файла является наличие шаблонов (wildcard), где, например, знак "+" означает, что доступ имеет любая система. Большинство продаваемых вычислительных систем (особенно системы фирмы SUN*) по умолчанию имеют в файле описания гостевых машин знак "+", означающий, что любая удаленная система может входить без пароля.

Исследования показывают, что большинство подвергшихся проникновению вычислительных систем имели знак "+" в гостевых файлах. Единственная трудность для хакера -- это найти тот идентификатор пользователя, который был бы занесен как на его собственный компьютер, так и на интересующую его систему.

Кроме общесистемного гостевого файла каждый пользователь может иметь собственный файл .rhosts, который находится в его домашнем каталоге. Шаблоны в списке гостевых систем могут быть применены и в файлах .rhosts. Например, файл .rhosts, содержащий строку "+ +", позволяет любому пользователю из любой системы войти без пароля.

 

______________________________

* Sun OS (Network Operating System) -- сетевая операционная система, основанная на принципе клиент--сервер.

 

 

Пример сообщений, распространяемых хакерами по электронным сетям (получено по сети BBS)

 

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

Если вы хотите обратиться к компьютерам за границей или в США, которые не воспринимают такие вызовы, вам нужен идентификатор сети Telenet. Вы когда-нибудь замечали, что если набираете при входе в сеть Telenet ID-XXXX, у вас запрашивается пароль? Если у вас есть такой NUI (Network-User-ID -- идентификатор пользователя сети) вы можете послать запрос почти на любую центральную ЭВМ в мире.

Вот несколько примеров:

0311050500061 -- компьютерная сеть в Лос-Аламосе (центральная ЭВМ, соединенная с DNA (Defense Nuclear Agency -- Агентство по ядерной защите);

024050256 -- "S-E-Банк" в Стокгольме (регистрация GAMES);

02284681140541 -- CERN, Швейцария, Женева (один из центров ядерных исследований), регистрация GUEST;

0234212301161 -- стандартная система "Видеотекс". Набери OPTEL для входа и используй ID 999_ с паролем 9_;

0242211000001 -- Норвежский университет в Осло;

0425130000215 -- ITT Dialcom в Израиле. ID HELP с паролем "HELP" работает на уровне безопасности 3;

0310600584401 -- Служба новостей "Вашингтон пост" в сети Tymnet. ID и пароль "PETER".

 

Существуют следующие префиксы:

02624 Datex-P в Германии;

03110 Telenet в США;

03106 Tymnet в США;

02405 Telepak в Швеции;

04251 Isranet в Израиле;

02080 Transpac во Франции;

02284 Telepac в Швейцарии;

02724 Eirpac в Ирландии;

02704 Luxpac в Люксембурге;

05252 Telepac в Сингапуре;

04408 Venus-P в Японии".

 

 

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

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

 

Сетевая файловая система NFS (Network File System)

 

NFS позволяет системным администраторам подключать файловые системы на удаленных компьютерах так, как будто это локальные диски. Система использует архитектуру клиент-сервер, то есть отдельные компьютеры используются в качестве серверов (те из них, которые имеют большие диски), а другие функционируют в качестве клиентов.

Достоинства NFS:

-- нет необходимости в копировании файлов, что экономит дисковую память;

-- пользователи не привязаны к определенному терминалу, так как их рабочие каталоги могут быть доступны с любой машины;

-- все файлы централизованы, что упрощает режим работы.

Однако NFS, вероятно, наиболее уязвимый сетевой сервис, поскольку он обеспечивает полный доступ к файлам и каталогам. Основная проблема заключается в том, что система управления доступом в NFS крайне громоздка (за исключением последних реализаций NFS).

Для активизации механизма контроля доступа NFS разделена на две независимые подсистемы.

1. Система контроля доступа.

Она предназначена для подключения файлов и ее главной задачей является определение, открыт ли клиенту доступ. Если да, подсистема подключения возвращает указатель на корневой каталог. Используя этот указатель, клиент может обращатся к подсистеме NFS для получения доступа к файлам.

2. NFS-сервер выполняет обычные операции над файлами, представленными своими указателями (file handle).

Главный недостаток этого типа контроля доступа заключается в том, что, как только хакер получает хотя бы один файловый указатель, он получает полный доступ к файловой системе. И этот доступ не может быть заблокирован**.

Стратегия хакера такова:

-- он подключает к своему компьютеру файловую систему /usr;

-- помещает файл с именем .rhosts, дающий ему доступ в систему, в каталог /usr/bin;

-- с помощью средств удаленного входа входит как пользователь с идентификатором bin, имеющий доступ ко всем исполняемым файлам.

Поскольку /usr/bin (на самом деле /bin, но это символическая ссылка на каталог /usr/bin) является домашним каталогом для пользователя bin и содержит правильный файл .rhosts, удаленный вход должен завершиться успешно. Хакер, получив права пользователя bin на удаленной машине, получает полный доступ к большинству исполняемых файлов и важнейших файлов конфигурации системы. Ему остается только один шаг до получения прав привилегированного пользователя.

 

** Отсюда и далее видно, что в рассматриваемой системе каталог /usr/bin не был защищен от записи, что является серьезной ошибкой в построении системы защиты --Примеч. ред.

 

 

Хакер сумел записать файл .rhosts в каталог /usr/bin потому, что он смог точно указать идентификатор и группу пользователя. Это очень важный недостаток системы NFS. Каждая программа-клиент NFS может указать идентификатор и группу любого пользователя, за исключением привилегированного. После этого можно считывать или записывать файлы, принадлежащие этому пользователю. Программа-клиент NFS, выполняющая такую операцию, может быть легко уложена в 300 строк текста на языке Си.

Расширение системы NFS лишь частично устраняет этот недостаток. Основная сложность состоит в том, что лежащая в основе системы NFS схема шифрования вскрыта и существуют программы, способные раскрыть пароли.

 

Хакер в сети. "Заметание следов"

 

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

Другим распространенным способом является обход ограничений удаленного входа с использованием средств дистанционного выполнения команд (REXEC). Эти средства позволяют клиенту выполнять команды на удаленном компьютере. При этом не остается записей в файлах протоколов, что делает этот способ весьма популярным среди хакеров.

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

 

Развитие успеха

 

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

Заменяя двоичные файлы, хакер может заменить команды "su" и "newgrp" на специальные версии, которые предоставляют ему привилегированную операционную оболочку при указании специального пароля. Часто заменяются программы, запрашивающие пароли на вход (например, ftp и telnet). Программы продолжают работать, но записывают введенные пароли в специальный файл, известный только хакеру.

Как только хакеры становились привилегированными пользователями, они прежде всего интересовались электронными почтовыми ящиками пользователей, файлами .rhosts и .netrc. Системные администраторы определялись ими с помощью алиасов почтовых адресов или по принадлежности к специальной группе пользователей. Их каталоги тщательно просматривались на наличие сообщений о недостатках и особенностях систем, списков вновь заведенных пользователей системы.

 

Выявление вмешательства

 

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

Для выявления несанкционированного доступа необходимо:

-- регулярно проверять файлы протоколов, особенно протоколы входа в систему;

-- отслеживать подсоединение неизвестных пользователей в непривычное время (в этом отношении очень полезен пакет Wietze Venema's TCP);

-- обращать внимание на идентификаторы пользователей, которые оставались какое-то время неиспользованными и оказались снова задействованными.

Как правило, хакеры используют интервал времени с 18.00 до 8.00, а также выходные и праздники.

Одним из способов выявления присутствия хакера в сети является запуск каждые 10 минут обычной процедуры, написанной на языке shell, которая фиксирует все процессы и соединения по сети в отдельном файле.

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

 

Способы защиты

 

Способы защиты от проникновения в вычислительную систему приводятся в различных изданиях (например, S.Garfinkel и G.Spafford. Practical Unix Security. O'Reilly & Associates, Inc., 1991). На основании многочисленных исследований можно предложить общие рекомендации по обеспечению безопасности сетей.

 

1. Используя NIS, обязательно установите последние версии программ.

Например, дополнения к NIS, NFS и другое программное обеспечение по безопасности для компьютеров SUN можно найти по адресу: ftp://ftp.uu.net/systems/sun/sun-fixes.

Полезным инструментом, определяющим уязвимость системы защиты (возможно, вызванную хакерами), является программа COPS: ftp://cert.sei.cmu.edu/pub/tools/cops.

 

2. Удалите все шаблоны из списка гостевых систем (из файла /etc/hosts.equiv и файлов .rhosts).

 

3. Используйте файлы .rhosts правильно, позволяя входить в вашу систему только тем, кому вы действительно доверяете.

 

4. Так как файл .netrc содержит пароли в незашифрованном виде, нужно закрыть доступ для всех пользователей к этому файлу и его резервным копиям, создаваемым некоторыми редакторами.

 

5. Применяя NFS, обязательно инсталлируйте последние версии.

 

6. Открывая доступ удаленным машинам к пользовательской файловой системе (/usr), установите режим "только для чтения".

 

7. Запретите устанавливать идентификатор пользователя и подключаться как суперпользователь при любом экспорте файловой системы через NFS (конечно, за исключением суперпользователей бездисковых рабочих станций).

 

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

 

Пер. с английского Ю.Федорова

Технический редактор Д.Мостовой




Назад на страницу о хакерах.