Использование Firebird под управлением ОС Linux. Безопасность и Firebird Александр Пешков (Firebird Foundation) peshkoff a...
Использование Firebird под управлением ОС Linux <ul><li>Исторический аспект - предшественники Firebird в течение долгого в...
Изначально присущая Firebird масштабируемость
Единый API, независимый от ОС
Единый сетевой протокол </li></ul>
Использование Firebird под управлением ОС Linux <ul><li>Причины использования ОС Linux: </li><ul><li>Использование возможн...
Достоинства, общие для всех программных продуктов с открытым кодом
Лучшее сочетание с окружающей информационной структурой
Надёжность
Высокая скорость работы
Финансовые соображения </li></ul></ul>
Использование Firebird под управлением ОС Linux <ul><li>Расходы по использованию операционной системы: </li><ul><li>Приобр...
Установка и настройка
Дальнейшее сопровождение </li></ul></ul>
Использование Firebird под управлением ОС Linux <ul><li>Установка Firebird под Linux </li><ul><li>Выбор архитектуры: Class...
Использование пакетов, имеющихся в установленной версии Linux
Использование бинарных пакетов на Sourceforge.net
Использование исходных текстов и самостоятельная сборка бинарных файлов </li></ul></ul>
Использование Firebird под управлением ОС Linux <ul><li>Особенности конфигурации </li><ul><li>Русские имена файлов
Чувствительность файлов конфигурации к регистру
Связанные настройки inetd / xinetd для классик-сервера
Ограничение несанкционированного доступа к Firebird </li></ul></ul>
Использование Firebird под управлением ОС Linux <ul><li>Параметры файла конфигурации, специфические для Linux </li><ul><li...
LockMemSize, EventMemSize – требуют более тщательной настройки для классик-сервера
RemoteFileOpenAbility – возможность доступа к файлам на серверах NFS </li></ul></ul>
Использование Firebird под управлением ОС Linux <ul><li>Параметры файла конфигурации, специфические для Linux (для версий ...
LockSignal – номер UNIX-сигнала, используемого для взаимодействия процессов между собой </li></ul></ul>
Безопасность и Firebird <ul><li>Любая ошибка – нарушает нормальную работу, тем самым – вредит безопасности продукта
Upcoming SlideShare
Loading in …5
×

Firebird Security (in Russian) at Ansoft'2008 conference

2,469 views

Published on

Firebird Security (in Russian). Alex Peshkoff presentation at Ansoft conference in 2008.
Covered history of security in Firebird and plans for 2.5 and 3.0 versions

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,469
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Firebird Security (in Russian) at Ansoft'2008 conference

  1. 1. Использование Firebird под управлением ОС Linux. Безопасность и Firebird Александр Пешков (Firebird Foundation) peshkoff at mail.ru
  2. 2. Использование Firebird под управлением ОС Linux <ul><li>Исторический аспект - предшественники Firebird в течение долгого времени работали на Unix-подобных системах
  3. 3. Изначально присущая Firebird масштабируемость
  4. 4. Единый API, независимый от ОС
  5. 5. Единый сетевой протокол </li></ul>
  6. 6. Использование Firebird под управлением ОС Linux <ul><li>Причины использования ОС Linux: </li><ul><li>Использование возможностей Firebird, доступных только в Unix-системах (SHADOW в сети NFS)
  7. 7. Достоинства, общие для всех программных продуктов с открытым кодом
  8. 8. Лучшее сочетание с окружающей информационной структурой
  9. 9. Надёжность
  10. 10. Высокая скорость работы
  11. 11. Финансовые соображения </li></ul></ul>
  12. 12. Использование Firebird под управлением ОС Linux <ul><li>Расходы по использованию операционной системы: </li><ul><li>Приобретение лицензионно чистой версии
  13. 13. Установка и настройка
  14. 14. Дальнейшее сопровождение </li></ul></ul>
  15. 15. Использование Firebird под управлением ОС Linux <ul><li>Установка Firebird под Linux </li><ul><li>Выбор архитектуры: Classic или SuperServer
  16. 16. Использование пакетов, имеющихся в установленной версии Linux
  17. 17. Использование бинарных пакетов на Sourceforge.net
  18. 18. Использование исходных текстов и самостоятельная сборка бинарных файлов </li></ul></ul>
  19. 19. Использование Firebird под управлением ОС Linux <ul><li>Особенности конфигурации </li><ul><li>Русские имена файлов
  20. 20. Чувствительность файлов конфигурации к регистру
  21. 21. Связанные настройки inetd / xinetd для классик-сервера
  22. 22. Ограничение несанкционированного доступа к Firebird </li></ul></ul>
  23. 23. Использование Firebird под управлением ОС Linux <ul><li>Параметры файла конфигурации, специфические для Linux </li><ul><li>BugcheckAbort – в том числе включает формирование дампов
  24. 24. LockMemSize, EventMemSize – требуют более тщательной настройки для классик-сервера
  25. 25. RemoteFileOpenAbility – возможность доступа к файлам на серверах NFS </li></ul></ul>
  26. 26. Использование Firebird под управлением ОС Linux <ul><li>Параметры файла конфигурации, специфические для Linux (для версий ранее 2.5) </li><ul><li>LockSemCount – количество семафоров для взаимодействия процессов между собой
  27. 27. LockSignal – номер UNIX-сигнала, используемого для взаимодействия процессов между собой </li></ul></ul>
  28. 28. Безопасность и Firebird <ul><li>Любая ошибка – нарушает нормальную работу, тем самым – вредит безопасности продукта
  29. 29. Особенность ошибок, понимаемых под ошибками в безопасности вычислительной системы – допускают преднамеренное использование программного-аппаратного комплекса непредусмотренным образом </li></ul>
  30. 30. Безопасность и Firebird <ul><li>Начальные этапы развития InterBase – отсутствие современных требований к компьютерной безопасности (нет интернет, недостаточность аппаратных средств и другие причины)
  31. 31. Порт для Windows 3.X
  32. 32. Порт для Windows NT, сохранивший решения 3.X
  33. 33. Нарушена архитектура OSRI </li></ul>
  34. 34. OSRI (Open System Relational Interface) Провайдеры Yvalve Network listener Польз/программа (isql) Engine8_12 Engine13 Network redirector
  35. 35. Развитие системы безопасности Firebird <ul><li>1.0 – 2002 год, исправлена уязвимость </li><ul><li>“ politically correct” </li></ul><li>1.5 – 2004 год, исправлены уязвимости </li><ul><li>Выполнение с правами root в linux (с рядом ограничений и в windows)
  36. 36. Исполнение произвольного кода стандартными средствами SQL-сервера (External Table + UDF)
  37. 37. Доступ к любой БД как к “сырому” файлу
  38. 38. Ряд переполнений буферов </li></ul></ul>
  39. 39. Развитие системы безопасности Firebird <ul><li>2.0 – 2006 год, исправлены уязвимости </li><ul><li>Возможность чтения хешей всех паролей из базы данных под любым логином
  40. 40. Начата переработка кода с целью полностью устранить переполнения в строковых буферах </li></ul><li>Новая возможность - изменение пользователем собственного пароля </li></ul>
  41. 41. Развитие системы безопасности Firebird <ul><li>2.1 - в основном завершена борьба с переполнением буферов
  42. 42. Новая возможность </li><ul><li>Использование системы идентификации Windows для подключения к серверу Firebird (Trusted Authentication) </li></ul></ul>
  43. 43. Новое в системе безопас-ности в Firebird 2.5 <ul><li>Исправлены уязвимости </li><ul><li>Атака на сервер с помощью больших пакетов со случайными данными снижала производительность сервера
  44. 44. Использование длинного (более 32 символов) имени пользователя вызывало переполнение буфера </li></ul></ul>
  45. 45. Новое в системе безопас-ности в Firebird 2.5 <ul><li>Новые возможности </li><ul><li>Возможность управления пользователями из языка SQL
  46. 46. Новые возможности в операторах GRANT и REVOKE
  47. 47. Системная роль RDB$ADMIN
  48. 48. Управление отображением администраторов домена (windows) на роль RDB$ADMIN </li></ul></ul>
  49. 49. Новое в системе безопас-ности в Firebird 2.5 <ul><li>Возможность управления пользователями из языка SQL </li></ul><ul><li>CREATE USER name PASSWORD 'pw' FIRSTNAME 'first' MIDDLENAME 'middle' LASTNAME 'last'
  50. 50. ALTER USER name PASSWORD 'pw' FIRSTNAME 'first' MIDDLENAME 'middle' LASTNAME 'last'
  51. 51. DROP USER name </li></ul>
  52. 52. Новое в системе безопас-ности в Firebird 2.5 <ul><li>Возможность управления пользователями из языка SQL </li></ul><ul><li>В версии 2.5 эти операторы всегда управляют пользователями в security2.fdb
  53. 53. Alter User <Current_user> - доступно всем пользователям, остальные варианты – только SYSDBA </li></ul>
  54. 54. <ul><li>Новая возможность указывать GRANTED BY в операторах GRANT и REVOKE </li><ul><li>Позволяет SYSDBA отменить права, данные другим пользователем
  55. 55. Позволяет более точно отобразить права пользователей в SQL-скриптах
  56. 56. Соотвествует стандартам языка SQL </li></ul></ul>Новое в системе безопас-ности в Firebird 2.5
  57. 57. <ul><li>Пример использования GRANTED BY: </li></ul>sysdba: CREATE ROLE role1; GRANT role1 TO user1 WITH ADMIN OPTION; user1: GRANT role1 TO PUBLIC; sysdba: REVOKE role1 FROM PUBLIC GRANTED BY user1; Новое в системе безопас-ности в Firebird 2.5
  58. 58. <ul><li>Новая форма оператора REVOKE </li></ul>REVOKE ALL ON ALL FROM <user/role list> <ul><ul><li>Позволяет отменить все права, данные пользователю или роли
  59. 59. Особенно удобно после удаления пользователя </li></ul></ul># gsec -del GUEST1 # isql employee SQL> REVOKE ALL ON ALL FROM GUEST1; Новое в системе безопас-ности в Firebird 2.5
  60. 60. Новое в системе безопас-ности в Firebird 2.5 <ul><li>Системная роль RDB$ADMIN </li></ul><ul><li>GRANT “RDB$ADMIN” TO GUEST1 </li><ul><li>При подключении к этой базе данных с ролью RDB$ADMIN пользователь GUEST1 получает полные права администратора базы данных (SYSDBA) </li></ul><li>REVOKE “RDB$ADMIN” FROM GUEST1 </li></ul>
  61. 61. Новое в системе безопас-ности в Firebird 2.5 <ul><li>Управление отображением администраторов домена на роль RDB$ADMIN </li></ul><ul><li>ALTER ROLE RDB$ADMIN SET / DROP AUTO ADMIN MAPPING </li><ul><li>Это усеченная версия планируемой в Firebird 3 команды по настройке отображения объектов операционной системы (пользователи, группы) на объекты базы данных (пользователи, роли) </li></ul></ul>
  62. 62. Архитектура безопасности в Firebird 3.Х (план) <ul><li>Настройка используемой для иденти-фикации базы данных (или самой себя)
  63. 63. Использование плагинов для иденти-фикации пользователей
  64. 64. Настройка отображения любых объектов ОС на роли и пользователей базы данных </li></ul>
  65. 65. Архитектура безопасности в Firebird 3.Х (план) <ul><li>Настройка используемой для идентификации базы данных в файле конфигурации </li></ul><database alias1> FileName = $(root)/db/data1.fdb Security = $(root)/db/secure.fdb </database> <database inside> FileName = /raid/data.fdb Security = self </database> <database *> FileName = $(arg0) Security = $(root)/security2.fdb </database>
  66. 66. Архитектура безопасности в Firebird 3.Х (план) <ul><li>Использование плагинов для иденти-фикации пользователей </li></ul><ul><li>Trusted authentication из 2.1
  67. 67. Trusted на основе совпадения пары ключей: public – в базе данных, private – у клиента или другого сервера
  68. 68. Проверка пароля в LDAP, PAM и т.п.
  69. 69. Неограниченная длина пароля
  70. 70. Использование CHAP </li></ul>
  71. 71. Архитектура безопасности в Firebird 3.Х (план) <ul><li>Настройка отображения любых объектов ОС на роли и пользователей базы данных </li></ul><ul><li>Настройка из SQL </li><ul><li>ALTER ROLE name ADD OS_NAME 'os_name'
  72. 72. ALTER USER name ADD OS_NAME 'os_name'
  73. 73. ALTER ROLE name DROP OS_NAME 'os_name'
  74. 74. ALTER USER name DROP OS_NAME 'os_name' </li></ul></ul>
  75. 75. Спасибо за внимание! <ul>www.firebirdsql.org </ul>

×