Читаем Атака на Internet полностью

С новыми операционными системами ситуация в корне противоположная. Да, в них заложены концепции, согласующиеся с современным состоянием теории безопасности, – и мощные модели разграничения доступа, и надежная подсистема аутентификации, и аудит. Однако именно молодость делает ОС «темными лошадками», которые активно исследуются как хакерами, так и кракерами (а репутация фирм-производителей и агрессивная маркетинговая политика только активизируют их усилия). Похоже, что операционные системы, не совместимые с UNIX, несмотря на печальный опыт своей предшественницы, начинают проходить тот же самый путь и совершать те же самые ошибки в обеспечении безопасности (на другом витке спирали, естественно). И до окончательного вывода о качествах этих ОС еще далеко. Сравните – червь Морриса появился спустя 15 лет после выпуска UNIX и спустя 5 лет после включения в нее поддержки TCP/IP. А выход Windows NT 4.0 состоялся в 1996 году.

Описанию подсистемы безопасности, уязвимых мест, механизмов атак и защиты от них в двух самых популярных на сегодняшний день ОС – UNIX (различные версии) и Windows NT (версия 4.0) – и посвящена эта глава.

Классификация пользователей и типовых сценариев атак в UNIX

Рассмотрим основные пути получения взломщиком несанкционированного доступа на UNIX-компьютере.

Как известно, в UNIX различают два вида пользователей – обычный пользователь, имеющий права на доступ в рамках своего идентификатора ( UID, user id) и членства в группе (GID, group ID), и так называемый суперпользователь (root), имеющий неограниченные права (UID и GID у него равны специальному значению 0).

...

Каждый пользователь UNIX в текущий момент может быть членом только одной группы, поэтому он имеет один UID и один GID.

По мере развития ОС среди обычных пользователей выделились так называемые специальные пользователи. Они, как правило, имеют зарезервированные имена (например, guest, bin, uucp и т. п.) и номера UID и GID (например, меньше 100). Хотя в защите UNIX нет никакого особого механизма, отличающего специального пользователя от обычного, можно сказать, что первый имеет еще меньше прав, чем второй. В частности, специальным пользователям обычно нельзя зайти в систему нормальным образом. Самым интересным для нас примером специального пользователя является анонимный пользователь ftp, который так и называется – anonymous, или ftp.

Наконец, условно к категории пользователей можно отнести человека, удаленно подключившегося (обычно по протоколу TELNET) к вашей машине и взаимодействующего с одной из программ-демонов (в современной терминологии такие программы называются серверами). Эти программы обычно стартуют при загрузке машины, чаще всего от имени суперпользователя, и постоянно активны как процессы, что позволяет пользователю в любой момент удаленно подключаться к ним, но при этом он не имеет никаких прав на чтение/запись информации на вашем компьютере и вообще не идентифицируется системой UNIX (команда who). Однако он может исполнять некоторые команды – не программы UNIX, а команды-запросы к тому демону, к которому он подключен. Так, подключившись по протоколу TELNET на 25-й порт, можно вводить команды SMTP-сервера, например mail или expn. Последний тип пользователя (назовем его псевдопользователь) оказывается чуть ли не самым важным для нашего рассмотрения, так как, не обладая никакими правами и обязанностями (кстати, от него не требуется аутентификации, учет по нему тоже не ведется), он взаимодействует с демонами, которые практически всегда имеют полномочия суперпользователя.

Итак, условно иерархию пользователей на UNIX-машине можно представить следующим образом:

0. Суперпользователь – неограниченные права.

1. Обычный пользователь – права с ограничениями, установленными для него суперпользователем.

2. Специальный пользователь – права с ограничениями, установленными ему суперпользователем для работы с конкретным приложением.

3. Псевдопользователь – нет никаких прав, он вообще не идентифицируется системой.

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

Таким образом, задачей хакера является несанкционированное получение привилегий более высокого уровня. (Заметим, что необязательно конечной целью хакера является получение именно привилегий суперпользователя – вирус Морриса, например, даже и не пытался сделать этого.) Эту задачу он, очевидно, может попытаться решить различными путями: либо получить сразу требуемые привилегии, либо постепенно наращивать их. Рассмотрим далее типовые сценарии получения привилегий и средства UNIX, делающие их возможными.

Перейти на страницу:

Похожие книги