Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];

Вниз

Политика безопасности в Firebird   Найти похожие ветки 

 
Mr. D.   (2007-03-06 01:18) [0]

Получается, что любой пользователь сервера FB по-умолчанию может создать собственные БД. Вот мне интересно - не является ли это уязвимостью, недоработкой? Ведь нелогично, обычно FB запущен как сервис с достаточно большими привелегиями, он может создавать файлы где угодно...

Мне казалось логичным бы, если БД мог создавать только SYSDBA, а остальные пользователи только по специальному разрешению...

Я что-то не понимаю, это все фигня или недоработка FB?

Плюс к тому любой пользователь может в любых БД создавать таблицы свои... Вот только уже сил не хватило проверить для триггеров. Если еще и триггеры может создавать любой пользователь, блокируя тем самым вставку данных, например (а то и меняя данные)...

P.S. Ну и такой побочный вопрос (решил не создавать новую тему). Почему при создании БД у создателя автоматически выдается доступ к таблице: RDB$ROLES - какой это несет смысл?


 
Sergey13 ©   (2007-03-06 08:09) [1]

ИМХО, не стоит ждать (а тем более требовать) одинакового уровня комфорта и безопасности при поездке в атобусе по льготному талону и при поездке в личном лимузине.


 
atruhin ©   (2007-03-06 08:13) [2]

Один из главных недостатков FB, низкая безопасность!
Причем в перую очередь, не получение доступа к данным, а возможность вывести из
строя БД, возможна и атака на отказ в обслуживании сервера.
Серьезно повысить безопасность обещают в 3 версии.
Пока запретить создание таблиц можно полухакерскими методами, в частности
раздачей прав на системные таблицы. Запретить создание БД можно, запретом на создание
файлов в каталоге и установкой параметра DatabaseAccess = Restrict.
PS/ Сам сильно не эксперементировал, но согласно докуметации, вроде так.


 
atruhin ©   (2007-03-06 08:14) [3]

> Почему при создании БД у создателя автоматически выдается
> доступ к таблице: RDB$ROLES

Потому что создатель (владелец) БД, имеет право создавать роли и раздавать права.


 
Desdechado ©   (2007-03-06 10:44) [4]

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


 
Mr. D.   (2007-03-07 00:10) [5]

Desdechado ©   (06.03.07 10:44) [4]
Вот только пользователь, желающий создать БД, должен как минимум знать пути, где чего можно создать


да думаю только ОС... Система обычно стоит в папке по-умолчанию...

В любом случае, даже самому бесправному пользователю по-умолчанию разрешается нафлудить, насоздовав кучу немерянную БД по всей ФС, да и таблиц напихать в любую БД.


 
G_M_S ©   (2007-03-07 10:30) [6]


> Ведь нелогично, обычно FB запущен как сервис с достаточно
> большими привелегиями, он может создавать файлы где угодно.
> ..

1) Юзай альясы. НИ ОДНОГО ПУТИ на клиентской части!
2) Не ставь FireBird в папку по умолчанию - в его каталоге хранится security.fdb, я пару серваков ломанул как раз благодаря инфе о месторасположении сервера и, как следствие, базы паролей.
3) Лезь в конфиг - надо задать DatabaseAccess = restrict "диск:\путь" - тогда сервер будет иметь доступ лишь к одному каталогу, куда, собсно, и надо сваливать базы.

Вообще сервер достаточно надежный, надо просто с ним правильно обращаться.


 
G_M_S ©   (2007-03-07 10:32) [7]


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

раздача прав на системные таблицы - это не хакерский метод. Это инструмент для администрирования.


 
Виталий Панасенко ©   (2007-03-07 10:47) [8]


> 3) Лезь в конфиг - надо задать DatabaseAccess = restrict
> "диск:\путь" - тогда сервер будет иметь доступ лишь к одному
> каталогу, куда, собсно, и надо сваливать базы.

Их может быть несколько, указанных чер ;. Также (насколько я понял) можно использовать различный регистр в указании Restrict - это тоже будет иметь значение..типа ReStRiCt=c:\DiReCtOrY


 
G_M_S ©   (2007-03-07 10:56) [9]


> Их может быть несколько, указанных чер ;

Да, может. Но зачем? Одного каталога на сервере достаточно, ты ж не будешь (в здравом уме) плодить сотни баз! 2-3 базы на сервер и хватит: каждая база выделяет отдельно пространство для кэша в памяти и для системных данных по базе (лоченые таблиы и пр.). Чем меньше баз - тем больше каждой можно выделить памяти и, как следствие, ускорить работу.


> ReStRiCt=c:\DiReCtOrY
Во-первых немного не так пишется (см. выше или пример в конфиге), а во-вторых регистр будет иметь значение только под Unix-системами. Под FreeBSD проверено :))) Ну там это вообще системное ограничение со стороны ОС.


 
Mr. D.   (2007-03-07 16:00) [10]

G_M_S ©   (07.03.07 10:30) [6]
1) Юзай альясы. НИ ОДНОГО ПУТИ на клиентской части!


а причем здесь это? Чтобы наплодить новых БД - паразитному юзеру не нужны алиасы, может только знание ОС нужно, чтобы ориентироваться в БД

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

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

тык там пароль в защифрованном виде... И разве к секьюрити БД кто хочет доступ имеет?!


 
Val ©   (2007-03-07 16:02) [11]

не мешай, пусть кулхацкер глаголит..


 
Виталий Панасенко ©   (2007-03-07 17:00) [12]


> Mr. D.   (07.03.07 16:00) [10]
>
> G_M_S ©   (07.03.07 10:30) [6]
> 1) Юзай альясы. НИ ОДНОГО ПУТИ на клиентской части!
>
> а причем здесь это? Чтобы наплодить новых БД - паразитному
> юзеру не нужны алиасы, может только знание ОС нужно, чтобы
> ориентироваться в БД

DatabaseAccess=Restrict DRIVE:\PATH1[;DRIVE1:\PATH1] поможет. тут нужно знать конкретное имя папки/папок (каталога(ов))
А если DatabaseAccess=None - то подключаться(создавать) БД можно только к тем, которые указаны в ALIAS.CONF
Т.е., нужно изучить машину, где установлен сервер Жар-Птицы...


 
Mr. D.   (2007-03-07 17:46) [13]

Виталий Панасенко, ясно! Уже лучше :)

А вот что делать, что каждый может в любой БД наплодить сколько угодно таблиц?

И еще непонятная ситуация с триггерами. Допустим, доступа у меня к таблице нету, но я могу нафигачить триггер, который будет изменять все данные при INSERT, UPDATE и прочеее...


 
Правильный Вася   (2007-03-07 18:31) [14]

неужели?


 
Виталий Панасенко ©   (2007-03-07 22:53) [15]


> Mr. D.   (07.03.07 17:46) [13]
>
> Виталий Панасенко, ясно! Уже лучше :)
>
> А вот что делать, что каждый может в любой БД наплодить
> сколько угодно таблиц?
>

Ну, каждый, это когда grant for public...
SQL> create trigger config1 for config active after insert as begin end;
Statement failed, SQLCODE = -607
unsuccessful metadata update
-DEFINE TRIGGER failed
-no permission for control access to TABLE CONFIG
SQL>


 
Виталий Панасенко ©   (2007-03-07 23:13) [16]


> Виталий Панасенко ©   (07.03.07 22:53) [15]
>
>

это для юзера, которому не дан доступ к таблице


 
atruhin ©   (2007-03-09 15:49) [17]

> [13] Mr. D.   (07.03.07 17:46)
> Виталий Панасенко, ясно! Уже лучше :)

Автор, извини, но ты вообще читать и маленько думать умеешь?
Про создание БД тебе ответили 3 раза. Прежде чем стало Уже лучше :)
Про запрет создания таблиц, тебе ответили в 2] atruhin ©   (06.03.07 08:13), [7] G_M_S ©   (07.03.07 10:32),
Если хоть немного задуматься, понятно, что тригерами можно управлять также как и таблицами.

Чего тебе еще нужно, золотая рыбка?


 
Правильный Вася   (2007-03-09 18:32) [18]

мазгов лопатку добавить


 
Mr. D.   (2007-03-10 23:49) [19]

atruhin ©   (09.03.07 15:49) [17]
Чего тебе еще нужно, золотая рыбка?


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

А значит сколько еще таких подводных камней у FB? Конечно, чтобы грамотно настроть - нужно уметь настраивать, но и по-умолчанию система должна быть достаточно безопасности, имхо.

Например, очень логично было бы, если создавать БД мог только SYSDBA по-умолчанию.. и прочее, прочее.

Видимо, FB имеет очень много косяков насчет безопасности? Что в общем тоже было подтверждено в посте [2]


 
atruhin ©   (2007-03-11 06:58) [20]

> FB имеет очень много косяков насчет безопасности?

Ну есть они. FB бесплатный сервер, быстро развивается. Надеемся доделают. :)

> Например, очень логично было бы, если создавать БД мог только
> SYSDBA по-умолчанию..

А вот это не очень логично, т.к. создатель БД становится ее владельцем, с полными правами,
это один из ключевых элементов системы безопасности. Тем более, что запретить создание баз, можно,
ну а то что по умолчанию разрешены....) Видать что бы на форумах меньше вопросов было: не могу создать БД.
В отличии от MSSQL, Oracle с FB многие начинают.


 
G_M_S ©   (2007-03-12 10:03) [21]


>  Чтобы наплодить новых БД

Что бы наплодить новых БД паразиту надо знать, ГДЕ их плодить. Альясы скрывают реальные пути на сервере.


> А чтобы похакерить с существующими БД

А что бы ее изменить/удалить надо похакерить сначала юзера, ее создавшего. А это уже не проблема админа сервера, это проблема самого юзера. Просто так перезаписать БД нельзя - только овнер или SYSDBA может.


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


> И разве к секьюрити БД кто хочет доступ имеет?!
Вообще имеет тот, кому разрешено. В Firebird 1.5 судя по всему это действительно "кто хочет" :)))


> не мешай, пусть кулхацкер глаголит..
Я не кулхацкер, я под Interbase пишу уже почти 5 лет. С Firebird познакомился около 2-х лет назад. В силу того, что помимо написания клиентского ПО мне приходилось так же админить серваки с этой замечательной СУБД я методом чтения доков/форумов/научным тыком довольно неплохо ее изучил.

Если ты такой умный - лучше расскажи, как заcтавить rfunc под FreeBSD работать. Это единственное, чего мне сделать так и не удалось.


> А если DatabaseAccess=None - то подключаться(создавать)
> БД можно только к тем

Попробуй указать путь securty.fdb - в 1.5 можно получить к нему доступ. Собсно, к каталогу Firebird можно получить доступ. Кажись даже с None, не говоря уже про дефолтное значение.


> А значит сколько еще таких подводных камней у FB?
Много. И глюков дохрена.


> Конечно, чтобы грамотно настроть - нужно уметь настраивать,
>  но и по-умолчанию система должна быть достаточно безопасности,
>  имхо.
По дефолту СУБД настроена так, что бы любой идиот мог к ней подключиться, не зная как там раздавать права, куда кидать БД и т.п.... А если ты грамотный юзер - изволь конфиг пошерстить и настроить.


> Например, очень логично было бы, если создавать БД мог только
> SYSDBA по-умолчанию.. и прочее, прочее.

Ну-у-у... Было бы неплохо, но раз сервер халявный, а возможность пофиксить траблу ручками имеется - то что поделать, остается ждать милости авторов.


 
atruhin ©   (2007-03-12 13:59) [22]

> > А чтобы похакерить с существующими БД
>
> А что бы ее изменить/удалить надо похакерить сначала юзера, ее создавшего. А это уже не проблема админа сервера, это
> проблема самого юзера. Просто так перезаписать БД нельзя - только овнер или SYSDBA может.

К сожалению нет. Есть дастаточно способов испортить БД для простого пользователя.

> Зато слив саму базу можно локально перебрать пароли, что значительно ускоряет процесс.

Их не нужно локально перебирать, пароли хранятся на сервере, а не в БД.

> > И разве к секьюрити БД кто хочет доступ имеет?!
> В Firebird 1.5 судя по всему это действительно "кто хочет" :)))

Доступ то имеет, но не везде и только на чтение.

> И глюков дохрена.

А можно привести хоть один для примера? Найденный лично тобой и мешающий тебе.
А то слова, слова...

> > Например, очень логично было бы, если создавать БД мог
> только
> > SYSDBA по-умолчанию.. и прочее, прочее.
> Ну-у-у... Было бы неплохо

И что каждому кому нужно сделать бэкап, давать пароль SYSDBA? Вначале думать нужно...


 
Val ©   (2007-03-12 15:07) [23]

>Я не кулхацкер, я под Interbase пишу уже почти 5 лет..
>Зато слив саму базу можно локально перебрать пароли..
да, да.
>..как заcтавить rfunc под FreeBSD работать. Это единственное, чего мне сделать так и не удалось.
без понятия, что у тебя не работает. почему поисковик не знает об этой проблеме - или она только у тебя?


 
G_M_S ©   (2007-03-12 16:31) [24]

Удалено модератором
Примечание: попробуй еще раз без мата, если "копипастиш" то смотри что...


 
atruhin ©   (2007-03-13 14:31) [25]

> Если ты такой умный - лучше расскажи, как заcтавить rfunc
> под FreeBSD работать.

А в чем конкретно проблемма? Так и говорит: не заставиш!!!
PS/ Надеюсь ты библиотеку под FreeBSD пересобрал?


 
G_M_S ©   (2007-03-13 15:03) [26]


> Примечание: попробуй еще раз без мата, если "копипастиш"
> то смотри что...

Еще раз не выйдет - ломает меня снова столько текста долбить... И что-то я там мата не припомню в цитатах.


> PS/ Надеюсь ты библиотеку под FreeBSD пересобрал?

Я пытался и из сырцов компилить по новой, и бинарники готоые юзать (совместимость с линкусом включена). И насколько понял так никто и не смог ее заставить работать :(((


 
Val ©   (2007-03-13 15:15) [27]

>И насколько понял так никто и не смог ее заставить работать :(((
в том, что вернул мне яндекс по запросу "rfunc FreeBSD" было пару веток из форумов с вопросами, но эти же люди сами свои вопросы и сняли - может стоит спросить тогда совета у них(пересобирали, кстати, насколько я помню)? я, к сожалению, тут ничем не помогу - не работаю с .nix


 
G_M_S ©   (2007-03-13 15:21) [28]


>  но эти же люди сами свои вопросы и сняли

Я тоже вобщем-то свой вопрос снял - переписал нужные мне функции на FreePascal и все дела... К счастью, весь функционал этой либы редко используется.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.263 c
2-1178729528
Виктор007
2007-05-09 20:52
2007.05.27
Список последних открытых файлов


2-1178534632
Kostafey
2007-05-07 14:43
2007.05.27
Использование результата запроса Select в Update


9-1151171895
delphiman2006
2006-06-24 21:58
2007.05.27
Боты для игр


3-1173509582
databaser
2007-03-10 09:53
2007.05.27
Зачем очистка параметров?...


2-1178521366
RomanLN
2007-05-07 11:02
2007.05.27
настройка всплывающих подсказок в DBNavigator1





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский