Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Дырки в ftp- и HTTP-серверах и CGI скриптах




Несметное количество HTTP-серверов по всему миру сделали Internet столь

популярной средой проживания. Их устанавливают всюду, все и на всех системах.

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

от имени супер-пользователя и имеющая все свойства демона. Она умеет читать

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

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

Неточности в написании CGI-скриптов позволяют взломщикам получать неожиданные

привилегии.

 

 

За пару дней существования моего HTTP-сервера к нему несколько раз обратились

с просьбой прислать файл /etc/passwd (старые версии Apache содержали CGI-скрипт

"phf", который позволял прочитать любой файл в системе). По случайности,

у меня оказалась свежая версия демона и фокус не сработал.

 

 

Несколько советов Web-администраторам:

 Используйте свежую версию HTTP демона

 Не запускайте его от имени root

 Ограничте зону действия сервера

 Внимательно читайте документацию по серверу и его конфигурации

 Не используйте CGI, если можете без него обойтись.

 Проверяйте CGI программы и очень аккуратно пишите свои.

 

Если вы передаете данные пользователя внешним программам, проверяйте

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

программ (например, командные интерпретаторы хорошо переваривают символы

`<>;").

Аналогичные проблемы возникают и с FTP-серверами. Неправильно настроенный,

или содержащий ошибку FTP-сервер позволяет читать и/или писать произвольный

файл в системе. А если этот сервер работает на системе DOS, OS/2 или Windows"95,

подключенной к локальной сети или на машине, использующей NFS, то взломщик

может получить доступ ко всей вашей сети. Постарайтесь использовать максимально

простой FTP демон, в котором отключены все "бантики" и который

позволяет только анонимным пользователям забирать (но не класть) файлы.

 

Общий принцип безопасности, на мой взгляд, состоит в том, что нельзя

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

Активности внешних пользователей - HTTP, FTP или терминальный сервер. Такие

Сервисы следует выносить за пределы вашей локальной сети и особенно хорошо

Администрировать. В особенности опасен HTTP или FTP сервер на вашем брандмауэре.

 

 

Проблемы с NFS/NIS

Сетевая файловая система NFS весьма удобна. Так удобна, что ее часто

используют для объединения сотен и тысяч компьютеров в единое файловое

пространство. Это самый настоящий Intranet, хотя никто не использовал этот

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

маркетиговых терминов. Но, по старому правилу большое удобство ведет к

слабой защищенности. NFS позволяет опытному взломщику получить доступ к

любому файлу на экспортированной файловой системе, а NIS предоставляет

в ваши руки зашифрованные пароли даже если ваш Unix использует механизм

"теневых паролей". Поэтому, не выпускайте пакеты NFS (они обычно

используют TCP и UDP порты 111 и 2049) за пределы вашей сети и отфильтровывайте

их при попытке зайти к вам внутрь.

 

 

Программы с переполняющимися буферами

Программисты и их программы несовершенны. Многие программы, (особенно

старые) использующие функции gets() и puts(), которые не проверяют длину

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

стек. Именно эта ошибка была ислользована самым знаменитым вирусом в истории

(это был вирус Морриса, поразившим в 1988 году большинство систем Unix,

подключенных к Internet. Интересно, что отец Морриса работал в National

Security Agency и занимался там проблемами компьютерной безопасности (NSA

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

всем мире. Она столь засекречена, что часто аббревиатура NSA расшифровывается

как "No Such Agency").

 

 

Неправильная синхронизация событий

Один популярный брандмауэр предоставлял взломщику возможность поработать

в промежутке времени от загрузки системы до запуска самой системы защиты.

Многие методы взлома используют временные файлы, ненадолго создаваемые

программами. При запуске SUID-скриптов сначала запускается командный интерпретатор

с полномочиями суперпользователя, а затем он считывает сам скрипт - за

это время можно успеть подменить скрипт и выполниться совсем другой.

 

 

Ошибки в SUID программах

 

Довольно часто CERT (Computer Emergency Respond Team) публикует сведения

об ошибках в SUID-программах. Такие ошибки часто позволяют произвольному

пользоватею системы стать суперпользователем.

 

 

Самая безопасная система

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

что Unix - не очень защищенная система (это не мешает, впрочем, конкретной

системе правильно настроенной и хорошо администрируемой быть очень хорошо

защищенной). Ну а что же с другими системами? Естественно, что компьютерная

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

(например, MULTICS, Windows NT) имеет шансы быть более защищенной чем система,

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

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

что не обольщайтесь биркой "C2 certified", приклеенной к вашему

боевому серверу (как, впрочем и другими бирками. Например, меня в последнее

время очень радуют бирки "Windows"95 Compatible" на компьютерных.

 

 

Выбираем пожарные стенки

Итак, вы поняли, что обеспечить надежную защиту отдельных компьютеров

сети достаточно сложно и решили защитить всю сеть в целом с помощью модной

штуки под названием "Firewall" - брандмауэр, как его сейчас переводят

(мне не очень нравится этот перевод, но лучше придумать не могу. К сожалению,

слово "фиревал" не звучит). Как выбрать то, что вам нужно?

 

 

Если вы опытный Unix-хакер, то смело собирайте свой собственный бастион

на базе бесплатного FreeBSD или коммерческой BSDI/OS и свободных программ

(tcp_wrappers, TIS Firewall Toolkit, tripwire, COPS, и т.д.). Набьете руку,

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

будьте готовы получить по заслугам.

 

 

Проще купить готовый продукт - с ним меньше ответственности и хлопот.

Купил, распаковал, включил - и безопасно вкушай прелести Internet! Однако

продуктов много и это затрудняет жизнь. Как выбрать из них наилучший?

 

 

На выставке Windows Expo"96 меня и представителя Micrisoft застал в

коридоре посетитель и стал спрашивать - какой продукт лучше - DEC Firewall

для NT или Microsoft Proxy - объявленный, но пока не существующий продукт.

Мне лично кажется, что существующий продукт всегда лучше объявленного,

но недоступного.

 

 

Для того, чтобы сравнивать, необходимо выработать критерии - что значит

"лучше и хуже". В противном случае развяжется очередная религиозная

война, похожая на бушевавшие когда-то горячие войны о том, какая ОС и какой

редактор лучше.

 

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

меньше взламывали. Хорошая идея, но брандмауэр, который один раз взломали,

является дорогой игрушкой. Это похоже на математическую теорему - одного

контрпримера достаточно для опровержения и не поможет самое красивое доказательство.

Самый лучший пользовательский интерфейс не перекроет одной маленькой дырки

в защите. Самое главное требование к системе защиты - она должна надежно

и безопасно защищать при любых условиях.

 

 

Если защитное устройство выходит из строя, оно должно закрывать весь

доступ в вашу сеть, а не открывать его. Маркус Ранум сравнивает Firewall

с воротами и опускаемым мостом замка. Когда перетирается веревка, мост

опускается, открывая проход. А входные ворота, оставшиеся без крепежа,

проседают и никого не впускают. Поэтому смотрите, как ведет себя продукт

в трудных ситуациях.

 

 

Большинство систем защиты делятся на два класса. Пакетные фильтры, которые

проверяют заголовки IP/TCP/UDP пакетов и принимают решение, исходя из адресов

и протоколов. Proxy-серверы становятся между клиентом и серверам и пропускают

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

непросто, потому что они работают на разных уровнях. Обычно бастионы с

proxy-серверами надежнее, но менее удобны. Лучше всего использовать сочетание

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

пропускайте через proxy-серверы.

 

 

Большинство обзоров по брандмауэрам посвящают основную часть описания

пользовательскому интерфейсу. В большинстве случаев брандмауэр - черный

ящик, который, будучи настроенным стоит в хорошо закрытом месте и к нему

не подходит никто, кроме специально обученных администраторов. Хорошо,

если интерфейс красивый и удобный, но удобство внесения изменений в конфигурацию

может спровоцировать пользователей на ослабление защиты. Поэтому, удобный

интерфейс может быть и недостатком.

 

АТАКИ И УГРОЗЫ

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...