Страница 1 из 1

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

Добавлено: 2007-10-06 11:48:07
vindi4i
Привет всем. Я пишу диплом по FreeBSD серверу. Задача следующая: поставить шлюз на FreeBSD и что самое важное установить программу, которая при попытке атаки на сервер отправляла бы емейл системному администратору. Если кто-то сталкивался с подобными задачами - напишите плиз несколько вариантов такой программы(если есть возможность с сылками). Если у кого-нибудь есть информация о настройке шлюза под фряку скиньте плиз на мыло:vindi4i@gmail.com, а то в книгах описано далеко не всегда так точно, как бы хотелось. Всем спасибо.

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

Добавлено: 2007-10-06 14:50:33
kmb
Странная какая-то у тебя дипломная)) Ну атаки разные бывают, и нету такой универсальной программы которая все виды атаки распознавала и сообщала об этом)

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

Добавлено: 2007-10-06 15:31:15
reLax
Насколько я знаю в книгах написано ipfw add allow ip from any to any. Атаки ? Бред какой-то. Ну пару тысяч в день китайских ботов стукнется в SSH, да мне не жалко :) Apache ? Так PHP скрипты я сам писал, там preg_replace(); отметается любая "атака", более того он в клетке

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

Добавлено: 2007-10-06 15:36:04
-cat-
Вопрос на самом деле очень не простой. Что понимать под атакой- пожалуй ключевое определение. К примеру пингование хоста ещё не есть атака, так же как попытка подключится к какому нибудь открытому сервису, сканирование портов так же еще не есть атака, а вот попытка подбора пароля - это однозначно атака.
Соответственно однозначных решений нет.

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

Добавлено: 2007-10-06 16:07:43
dikens3
Попробую представить себя хакером:

Какова цель будущей атаки? Отказ в обслуживании? Похищение данных? И т.д.

Анализ атакуемой системы.
Определение типа ОС?
Пассивное:
Некогда писалось, что можно определить тип ОС на основании ответов и их изучения. (На тот же ПИНГ или просто зайдя на сайт как обычный пользователь).
Активное:
Различными анализаторами типа XSpider.
Nmap и т.д.

Определение открытых сервисов можно произвести как в активном, так и пассивном режимах.

После получения некоторой информации (возможно неверной :-) ) приступать к выяснению ПО и версий открытых сервисов. Поиск уязвимостей данного сервиса.
В случае WWW определение PHP и т.д.

Произвести атаку. (К примеру на форум автоматически писать сообщения, пока там место не закончится. :-) )
И т.д. Достаточно обширная область вобщем.

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

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

Добавлено: 2007-10-06 16:21:34
romzes
Это тебе поможет:
http://ipfw.ism.kiev.ua/bezop.html

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

Добавлено: 2007-10-06 16:24:30
dikens3
Из статьи:
Для защиты от хакерских атак необходимо знать и понимать методы, используемые хакерами.
Ай да молодец я. :-)

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

Добавлено: 2007-10-06 20:12:12
reLax
dikens3 писал(а):Попробую представить себя хакером:

Какова цель будущей атаки? Отказ в обслуживании? Похищение данных? И т.д.

Анализ атакуемой системы.
Определение типа ОС?
Пассивное:
Некогда писалось, что можно определить тип ОС на основании ответов и их изучения. (На тот же ПИНГ или просто зайдя на сайт как обычный пользователь).
Активное:
Различными анализаторами типа XSpider.
Nmap и т.д.

Определение открытых сервисов можно произвести как в активном, так и пассивном режимах.

После получения некоторой информации (возможно неверной :-) ) приступать к выяснению ПО и версий открытых сервисов. Поиск уязвимостей данного сервиса.
В случае WWW определение PHP и т.д.

Произвести атаку. (К примеру на форум автоматически писать сообщения, пока там место не закончится. :-) )
И т.д. Достаточно обширная область вобщем.

И самое важное, в случае цели - кража данных, наиболее выгодное - это заманить пользователя из внутренней сети (В которой хранятся данные) на спец. сайт и запустить ему троян. Или попросить установить что-нибудь. А потом уже дело в шляпе.
Троян как правило занимает незанятый порт. На шлюзе изнутри все банится, то что не разрешено. Что будешь делать ? nmap - детсад, ну просканирует пусть, так я и сам могу сказать какая у меня ОС и демоны запущены :)

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

Добавлено: 2007-10-06 20:25:09
reLax
Атаки говорите :) да это как 2 пальца извиняюсь обоссать. Четвертый сайт по счету, где я нашел MySQL Injection (перебирая именно по MI) за час (!). Это не зависит от платформы.http://www.forcom.ru/index.php?sub='36223 введите в браузере. А теперь напишите скрипт на bash том же, который отправит 100 запросов такого вида туда http:// http://www.forcom.ru /index.php?sub=BENCHMARK(10000000,BENCHMARK(10000000,md5(current_date)))

MySQL сервер хостинг провайдера умрет от DOS такой. А вы все про атаки какието...

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

Добавлено: 2007-10-06 22:25:10
Alex Keda
reLax писал(а):Атаки говорите :) да это как 2 пальца извиняюсь обоссать. Четвертый сайт по счету, где я нашел MySQL Injection (перебирая именно по MI) за час (!). Это не зависит от платформы.http://www.forcom.ru/index.php?sub='36223 введите в браузере. А теперь напишите скрипт на bash том же, который отправит 100 запросов такого вида туда http:// http://www.forcom.ru /index.php?sub=BENCHMARK(10000000,BENCHMARK(10000000,md5(current_date)))

MySQL сервер хостинг провайдера умрет от DOS такой. А вы все про атаки какието...
да... это как раз то, чего я больше всего боялся когда писал сайт...
кстати - универсального решения, кроме addslashes да не забывать просталять кавычки - нет?

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

Добавлено: 2007-10-07 8:15:18
reLax
lissyara писал(а):
reLax писал(а):Атаки говорите :) да это как 2 пальца извиняюсь обоссать. Четвертый сайт по счету, где я нашел MySQL Injection (перебирая именно по MI) за час (!). Это не зависит от платформы.http://www.forcom.ru/index.php?sub='36223 введите в браузере. А теперь напишите скрипт на bash том же, который отправит 100 запросов такого вида туда http:// http://www.forcom.ru /index.php?sub=BENCHMARK(10000000,BENCHMARK(10000000,md5(current_date)))

MySQL сервер хостинг провайдера умрет от DOS такой. А вы все про атаки какието...
да... это как раз то, чего я больше всего боялся когда писал сайт...
кстати - универсального решения, кроме addslashes да не забывать просталять кавычки - нет?
Ну почему же нет ? Вот смотри, у тебя же все переменные $_GET состоят из цифр. Так ? Заюзай функцию preg_replace(); например для удаления всех знаков, не отвечающих требованию ^[^0-9]$ в глобальном массиве $HTTP_GET_VARS перебором этого массива функцией foreach(); например. И сделай инклуд например в каждый файл. ХЗ, Лис, я давно на PHP ничего не писал, просто не помню уже всего этого чтобы рабочую функцию тут дать :)

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

Добавлено: 2007-10-07 8:38:58
Alex Keda
да не - это-то понятно - сам так пишу - даже в функцию отдельную вынес...
я про глобальность, а не разбирать индивидуальные случаи ...

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

Добавлено: 2007-10-07 9:04:35
reLax
lissyara писал(а):да не - это-то понятно - сам так пишу - даже в функцию отдельную вынес...
я про глобальность, а не разбирать индивидуальные случаи ...
Почему индивидуальные ? Разрешить Regex'ом только разрешенные символы в адресной строке и все :) Уж там явно кавычки быть не может ;)

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

Добавлено: 2007-10-07 9:51:22
dikens3
За пример сразу спасибо - очень интересен будет.
http://www.forcom.ru /index.php?sub=BENCHMARK(10000000,BENCHMARK(10000000,md5(current_date)))
Не, ну детсад ей богу.

При получении всегда проверяются переменные.
Аля: sub это:
- Число
- С количеством знаков не более 5.
- Может быть от 1 до 65535

И вводи что хочешь. :-) (Особенно если лочить IP-Адрес на сутки после таких приёмов)
На шлюзе изнутри все банится, то что не разрешено.
Уууу. Как всё запущено. Троян может работать по 80 порту? Лезть на какой-нибудь сайт и получать команды. Трояну не нужно, чтобы к нему подключались. Он сам это делает.

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

Добавлено: 2007-10-07 10:20:38
reLax
dikens3 писал(а):За пример сразу спасибо - очень интересен будет.
http://www.forcom.ru /index.php?sub=BENCHMARK(10000000,BENCHMARK(10000000,md5(current_date)))
Не, ну детсад ей богу.

При получении всегда проверяются переменные.
Аля: sub это:
- Число
- С количеством знаков не более 5.
- Может быть от 1 до 65535

И вводи что хочешь. :-) (Особенно если лочить IP-Адрес на сутки после таких приёмов)
На шлюзе изнутри все банится, то что не разрешено.
Уууу. Как всё запущено. Троян может работать по 80 порту? Лезть на какой-нибудь сайт и получать команды. Трояну не нужно, чтобы к нему подключались. Он сам это делает.
=O Чем проверяются, неужели самим препроцессором PHP ?:) не знаешь PHP не говори. Проверь-$_GET[$a]=""; в теперь в браузере набери http://www.domain.com/index.php?a=<script>alert ('хехе');</script> при условии register_globals=ON. проверяет непосредственно вэбмастер !
про знаки я уж промолчу твои, бред интерпретировать количество портов системы в GET запросы браузера (любые между прочим, необязательно цифры).
Да, троян может работать на 80-м порту локальной машины при условии что он не _занят_

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

Добавлено: 2007-10-07 10:56:25
dikens3
Да, троян может работать на 80-м порту локальной машины при условии что он не _занят_
Причём тут занят. Попал в сеть троян (Занял любой порт на клиентском компе). Периодически лезет на http://www.xxx.ru/troyan/index.php и качает инфу о своих действиях. Закроешь всем 80 порт наружу?

По остальному не понял что хочешь мне сказать.

Код: Выделить всё

http://www.forcom.ru /index.php?sub=BENCHMARK(10000000,BENCHMARK(10000000,md5(current_date)))
Теперь обработаем sub ограничением в 5 знаков
В переменной $_GET['sub'] будет BENCH

И что это тебе даст?
Далее смотрим, только цифры? Нет. Блок на сутки IP-Адреса.

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

Добавлено: 2007-10-07 15:35:48
reLax
dikens3 писал(а):
Да, троян может работать на 80-м порту локальной машины при условии что он не _занят_
Причём тут занят. Попал в сеть троян (Занял любой порт на клиентском компе). Периодически лезет на http://www.xxx.ru/troyan/index.php и качает инфу о своих действиях. Закроешь всем 80 порт наружу?

По остальному не понял что хочешь мне сказать.

Код: Выделить всё

http://www.forcom.ru /index.php?sub=BENCHMARK(10000000,BENCHMARK(10000000,md5(current_date)))
Теперь обработаем sub ограничением в 5 знаков
В переменной $_GET['sub'] будет BENCH

И что это тебе даст?
Далее смотрим, только цифры? Нет. Блок на сутки IP-Адреса.
Подожди, я ваще не понимаю о чем ты речь ведешь.При чем здесь трояны вообще ? Ну лезет на 80, так же и на 25-й может лезть, да куда угодно. При чем тут они ?
Ограничение в 5 знаков ? Ну и зачем ? Бан ? А если у тебя $_GET генерится из БД по id к примеру (возьмем случай только с цифрами), _например_ когда id - уникальный номер сообщения на форуме, тут сам понимаешь - номер может быть и 333 и 3333333 - id тут добавляется автоматом. И что, ты отправишь в бан за то, что человек захотел просмотреть сообщение под номером 3333333 от Марь Иванны ?

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

Добавлено: 2007-10-07 15:56:21
dikens3
Про трояны ты начал:
Троян как правило занимает незанятый порт. На шлюзе изнутри все банится, то что не разрешено. Что будешь делать ?
А я пояснил работу троянов.
Попал в сеть троян (Занял любой порт на клиентском компе). Периодически лезет на http://www.xxx.ru/troyan/index.php и качает инфу о своих действиях. Закроешь всем 80 порт наружу?
Ограничение в 5 знаков ? Ну и зачем ? Бан ? А если у тебя $_GET генерится из БД по id к примеру (возьмем случай только с цифрами), _например_ когда id - уникальный номер сообщения на форуме, тут сам понимаешь - номер может быть и 333 и 3333333 - id тут добавляется автоматом. И что, ты отправишь в бан за то, что человек захотел просмотреть сообщение под номером 3333333 от Марь Иванны ?
Если только цифры, тогда ничего. А вот откуда там возьмутся буквы? Как появятся аномалии - блок. Что-то ещё нужно рассказать?

И кстати, можно генерировать по OID (В postgresql - это уникальный идентификатор каждой строки), тогда можно действовать по усмотрению, блочить, прикалываться. :-)
Сам понимаешь, если ссылка идёт на OID, то генерируется только по реально существующему на данный момент.

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

Добавлено: 2007-10-07 16:39:23
reLax
dikens3 писал(а):Про трояны ты начал:
Троян как правило занимает незанятый порт. На шлюзе изнутри все банится, то что не разрешено. Что будешь делать ?
А я пояснил работу троянов.
Попал в сеть троян (Занял любой порт на клиентском компе). Периодически лезет на http://www.xxx.ru/troyan/index.php и качает инфу о своих действиях. Закроешь всем 80 порт наружу?
Ограничение в 5 знаков ? Ну и зачем ? Бан ? А если у тебя $_GET генерится из БД по id к примеру (возьмем случай только с цифрами), _например_ когда id - уникальный номер сообщения на форуме, тут сам понимаешь - номер может быть и 333 и 3333333 - id тут добавляется автоматом. И что, ты отправишь в бан за то, что человек захотел просмотреть сообщение под номером 3333333 от Марь Иванны ?
Если только цифры, тогда ничего. А вот откуда там возьмутся буквы? Как появятся аномалии - блок. Что-то ещё нужно рассказать?

И кстати, можно генерировать по OID (В postgresql - это уникальный идентификатор каждой строки), тогда можно действовать по усмотрению, блочить, прикалываться. :-)
Сам понимаешь, если ссылка идёт на OID, то генерируется только по реально существующему на данный момент.

Про трояны ты начал - "Уууу. Как всё запущено. Троян может работать по 80 порту? Лезть на какой-нибудь сайт и получать команды. Трояну не нужно, чтобы к нему подключались. Он сам это делает." :)
И кстати в MySQL есть тоже свой уникальный идентификатор. Строка GET запроса может состоять и не только из цифр. Считаю достаточным ограничить разрешенные символы в GET массиве регулярными выражениями, о чем тут и речь была

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

Добавлено: 2007-10-07 16:48:17
-cat-
Ребят вы тему топика не забыли?
Автору рекомендую посмотреть журнал "Системный администратор" №01-2003. Статья так и назвается: "Общий обзор наиболее часто применяемых техник компьютерных атак и методы защиты от них". Также можно посмотреть №10-2003.
По поводу настройки в принципе на сайте все что нужно, в сжатом виде можешь посмотреть статью "Настраиваем безопасный роутер на базе FreeBSD" опять же Системный администратор №06-2006.

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

Добавлено: 2007-10-07 16:55:53
dikens3
И кстати в MySQL есть тоже свой уникальный идентификатор. Строка GET запроса может состоять и не только из цифр. Считаю достаточным ограничить разрешенные символы в GET массиве регулярными выражениями, о чем тут и речь была
Заканчивая наше обсуждение приходим к выводу, необходимо проверять все входящие данные. (Пусть регулярными выражениями)
О чём мной и было сказано выше:
При получении всегда проверяются переменные.
И наполедок реальный пример из жизни:
Есть база c полями:
OID | ip | text |
777 | 192.168.1.4 | Привет |
888 | 192.168.2.4 | Привет |
999 | 192.168.3.4 | Привет |

Предположим:
В переменной sub у нас OID (Уникальный идентификатор) и допустим sub=777
Не помню переменную, но можно взять IP-Адрес подключившегося клиента. (ip)

Запрос:

Код: Выделить всё

select text from table where oid=sub and ip=ip;
Выбрать поле text из строки, где OID (тот самый sub) равен 777 (полученный из sub)

Поступающая переменная только одна (sub).
Вот как сломать такое?

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

Добавлено: 2007-10-07 16:58:40
reLax
dikens3 писал(а):
И кстати в MySQL есть тоже свой уникальный идентификатор. Строка GET запроса может состоять и не только из цифр. Считаю достаточным ограничить разрешенные символы в GET массиве регулярными выражениями, о чем тут и речь была
Заканчивая наше обсуждение приходим к выводу, необходимо проверять все входящие данные. (Пусть регулярными выражениями)
О чём мной и было сказано выше:
При получении всегда проверяются переменные.
Да да, только проверяет их человек, непосредственно пишущий код. Больше добавить нечего про "взлом" через GET :)

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

Добавлено: 2007-10-07 17:06:55
reLax
-cat- писал(а):Ребят вы тему топика не забыли?
Автору рекомендую посмотреть журнал "Системный администратор" №01-2003. Статья так и назвается: "Общий обзор наиболее часто применяемых техник компьютерных атак и методы защиты от них". Также можно посмотреть №10-2003.
По поводу настройки в принципе на сайте все что нужно, в сжатом виде можешь посмотреть статью "Настраиваем безопасный роутер на базе FreeBSD" опять же Системный администратор №06-2006.
Почитал :) pf. Трудно конечно назвать безопасным с "10-ю" правилами пакетного фильтра роутером, но нормально...