ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Администрирование > *nix системы
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Безопасность сервера FreeBSD
  #1  
Старый 07.07.2008, 21:33
Аватар для Solide Snake
Solide Snake
Moderator - Level 7
Регистрация: 28.04.2007
Сообщений: 547
Провел на форуме:
5516499

Репутация: 3702


Отправить сообщение для Solide Snake с помощью ICQ
Post Безопасность сервера FreeBSD

Безопасность сервера FreeBSD


Каждый компьютер, подключенный к Интернет, является потенциальным объектом хакерских атак. Если компьютер подключается к сети через модем, да и то на 10 минут в день, то единственным достоянием хакера может стать только Ваш пароль на вход в Интернет (и, естественно, деньги, лежащие на счету у провайдера). Так как Ваш сервер, очевидно, имеет постоянное высокоскоростное соединение с Интернет, он является очень лакомым куском для хакера, и в том, что рано или поздно (скорее - рано) он подвергнется атаке - можно не сомневаться. Поэтому, прежде чем описвать дальнейшую настройку таких служб, как DHCP, DNS, VPN и др., необходимо защитить сервер от возможных непрятностей. В этой главе будут даны только начальные сведения по защите, и предложена настройка, способная отбить большинство непрофессиональных атак, и некоторые общие правила работы. Данная глава не предендует на статус полного руководства по защите, но на первое время хватит и этих данных. В дальнейшем Вам будет необходимо изучить вопросы безопасности более плотно, причем не откладывая этого дела в долгий ящик (практически на каждой из доступных мне машин, имеющих постоянное подключение к Интернет периодически (не реже раза в месяц) обнаруживаются следы попыток незконного проникновения...)

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

Вот тут то и самая большая сложность, которая возникла у меня при написании этой главы: каждый, кто пишет книги, статьи и руководства по защите, придумывает свою классификацию, основываясь на разных признаках атак. Поэтому я пойду другим путем, и не буду говорить что все атаки разделяются на 3 (5,7,19 или 244) класса, а опишу, по каким характеристикам их можно классифицировать.

Итак, у каждой хакерской атаки есть:
  • Цель. Целью хакера может быть получение какой-то секретной информации, изменение информации (например, 10 баксов к себе на счет) или ее уничтожение, использование мощностей атакуемого объекта в личных целях (рассылка спама, экономия на "российском" и "зарубежном" трафике, использование "захваченной" машины в качестве плацдарма для атаки на другие машины), вывод объекта из строя (например, "подвесить" веб-сервер конкурента), для тренировки, самоудовлетворения и т.д.
  • Используемые "дыры". Для атаки на компьютер хакер может использовать ошибки в программном обеспечении, ошибки администрирования (например, случайно доступная простому пользователю возможность изменения конфигурационных файлов операционной системы), незащищенность среды и протоколов передачи данных (например, "подслушивание" паролей пользователей, находящихся в одной сети с хакером), социальный инжениринг (например, подбор пароля администратора последовательным перебором имен всех его бывших любовниц и их номеров телефонов), метод "грубой силы" (подбор пароля простым перебором всех возможных комбинаций или по словарю), человеческие ошибки. Хакер, так-же, может использовать несколько "дыр" для одной атаки (например, используя сетевой снифер получить зашифрованный пароль администратора, и расшифровать его методом грубой силы).
  • Направаление. Атака может быть как активно инициирована хакером (например, прямой перебор паролей или прослушивание сети), так и произведена с помощью какой-либо ловушки (например, "хитрый" JavaScript на веб-странице, зайдя на которую пользователь "поделится" с хакером какой-нибудь нужной информацией).
  • Характер воздействия. Атака может быть активной (хакер непосредственно обращается к атакуемому компьютеру или тесно связвнным с ним системами) или пассивной (например, прослушивание сетевого трафика атакуемой системы). Пассивные атаки почти невозможно обнаружить.
  • Количество атакующих. Атаковать систему может один хакер, группа хакеров, или один хакер с использованием нескольких компьютеров в сети. Групповые атаки обычно направлены на выведение системы из строя (DDoS).
  • Местонахождение атакующего. Хакер может атаковать систему, находясь к по отношению к ней в разных зонах доверия. В нашем случае (сервер доступа для домашней сети) это следующие зоны: интернет, обслуживаемая домашняя сеть, доверенная зона (компьютер администратора, дополнительные сервера (файловый, баз данных), при общении с которыми защизаемый сервер использует более "мягкие" правила безопасности), внутри самой системы (например, хакер имеет права доступа обычного пользователя, и атакует учетную записть сисадмина).

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

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

Атака "переполнение буфера"


Атаки данного типа эксплуатируют "неявные" ошибки в прграммном обеспечении, обычно не влияющие на нормальную работу программы, но способные привести к взлому системы, или выведению ее из строя.

Предположим, существует некоторая программа, выпоняющаяся на атакуемой машине, и принимающая некоторые данные от пользователей (не важно, что она с ними потом делает). Пусть это будет, к примеру... web-сервер. Итак, Web-сервер позволяет пользователю подключиться к определенному порту, передать свой запрос, состоящий из нескольких полей, и передающий некоторые данные в ответ на запрос. Формат запроса к Web-серверу:

Код:
GET /название/страницы.html HTTP/1.1
Параметр: значение
Параметр: значение
...и так далее. В "параметрах" броузер может передать, например, желаемую им кодировку текста, содержимое Cookie и т.д. Пусть сервер обрабатывает запрос следующим участком программы на языке C:

Код:
int ReadParam()
{
static char* s;
static int c;

char namebuf[256]; // область памяти для записи имени параметра
char namevalue[1024]; // область пямяти для записи значение параметра

s=namebuf; 

while( (c=NetReadChar()) != ':' && !NetworkError() ) *s++=c;
.... далее что-то с этим делаем ...
Что делает этот участок кода: выделяет в стеке некоторый объем памяти для сохранения названия параметра и его значения, читает из пользовательского запроса символы до первого появления символа двоеточия и последовательно записывает их в предназначенную для этого область памяти. Здесь уже есть ошибка! Программист при написании программы точно знал, что наименование параметра никогда не будет длинее, чем 30-40 символов, и отвел 256 байт с запасом, чтобы не мучаться с дополнительной обработкой ошибок - "влезет" строка в память или нет, и что потом делать дальше. При этом количество реально записанных в память символов он уже не проверяет.

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

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

Бороться с такими атаками практически невозможно. Большинство специалистов по безопасности предлагают отключить все ненужные сервисы (ну зачем, скажите, на вашем сервере доступа, например, NIS?) и устанавливать все свежие патчи. От себя могу посоветовать затруднить хакеру возможность правильного определения версии вашего программного обеспечения: большинство сетевых программ вставляют в свои ответы еще и подпись - "Ответ сгенерирован программой такой-то, версия такая-то". Например, сервер www.hub.ru (очевидно, вы читаете этот текст именно с этого сайта) в свой ответ вставляет следующую информацию:

Код:
Server: Apache/1.3.26 (Unix) PHP/4.2.2 mod_deflate/1.0.12 rus/PL30.14
Исходя из этой информации хакер может начать поиск либо готовых экспоитов для данной версии, либо самостоятельно начать анализировать исходные коды Apache. Чтобы помешать хакеру определить версию программного обеспечения, нужно заставить сервер выдавать вместо своего "паспорта" что-либо другое. С системой FreeBSD поставляются исходные коды практически всех используемых в ней программ, а многие программы вообще позволяют настраивать свой "паспорт", только этим никто не пользуется. Хакер же, увидев вместо вышеприведенной строки что-нибудь вроде "Server: SmartW3Daemon/0.3.12beta" будет вынужден сначала поискать этот SmartW3Daemon, а потом, когда поймет, что его надули, ему придется долго определять настоящую версию сервера по косвенным признакам.
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Семь возможностей повышения безопасности сервера SharePoint Solide Snake Чужие Статьи 1 06.07.2008 02:53
Абузоустойчивые сервера + обычные сервера под любые задачи с гарантией на месяц 0.p.т.i.ђ Хостинг, Dedicated, VDS, Сервера - Покупка, продажа 0 31.03.2008 13:32
Новые сравнения производительности FreeBSD и Linux zythar Мировые новости 5 08.03.2008 23:27



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ