Чому автентифікацію ОС вважають поганою безпекою баз даних Oracle?


29

Oracle припиняє автентифікацію ОС відповідно до Посібника з безпеки бази даних Oracle , в якому йдеться

Майте на увазі, що параметр REMOTE_OS_AUTHENT був застарілий у Oracle Database 11g, випуск 1 (11.1), і зберігається лише для зворотної сумісності.

Крім того, більшість інформації та інструментів безпеки вважають проблемою безпеки зовнішню аутентифікацію ОС (зовнішньою) . Я намагаюся зрозуміти, чому це так. Ось деякі переваги, які я бачу щодо аутентифікації ОС:

  1. Без програм аутентифікації ОС потрібно зберігати паролі в різних програмах, кожен з яких має власну модель безпеки та вразливості.
  2. Аутентифікація домену вже має бути захищеною, оскільки якщо її немає, то безпека бази даних просто уповільнює доступ до бази даних, але не може її запобігти.
  3. Користувачі, які мають пам'ятати лише один пароль домену, можуть створювати більш захищені паролі домену легше, ніж їх можна створити ще менш захищені паролі баз даних, оскільки кількість різних баз даних, до яких потрібно підключитися, збільшується.

Де ви бачили, що Oracle знецінює зовнішню автентифікацію?
Джастін Печера

1
@Justin Cave Я оновлю питання з цією інформацією.
Лей Ріффер

2
Дякуємо за оновлення. Однак для ясності, Oracle не знищує зовнішню автентифікацію, а знецінює віддалену зовнішню автентифікацію, яка, як правило, набагато менш безпечна (про що Гай розповідає нижче)
Джастін Кейв

Відповіді:


16

Розглянемо наступний сценарій:

  1. На gaiusсервері Oracle є ім'я користувача Unix із зовнішньою автентифікацією, тому в Oracle є відповідний користувач, який називається ops$gaius. Після входу в оболонку я також можу входити прямо в мою схему Oracle, і для моїх робочих записів cron також не потрібен пароль, вбудований у скрипт.
  2. Віддалену автентифікацію ОС дозволено за умови, що локальна мережа на 100% захищена, а клієнтам можна довіряти (те саме, що rlogin/ rshзазвичай використовувались)
  3. Зловмисник будь-яким способом потрапляє на свій ноутбук в локальну мережу, знає, що я там працюю, і створює локального користувача на своєму ноутбуку, який називається gaiusта працює SQL * Plus як цей користувач
  4. Oracle бачить (тобто OSUSERв V$SESSION) є gaiusта реєструє цього віддаленого користувача у якops$gaius

Це не тільки смішно легко підробляти, але, надягаючи шапку мого циніку, Oracle не може більше заробляти гроші, продаючи вам свій вигадливий продукт для єдиного входу ... Що, до речі , виконує всі бали, які ви набираєте як переваги ОС -рівень авт. Два паролі, які краще, ніж один, є абсолютно помилковими; більшість людей так чи інакше встановлять їх однаковими (в Oracle немає механізму, який би запобігав цьому).

Загальний принцип полягає в тому, що захищати в програмному забезпеченні надзвичайно важко, коли зловмисник має фізичний доступ. І ніколи не довіряйте клієнту.


2
Це навіть гірше. Див. Розділ orafaq "Чому OPS $ акаунти є ризиком безпеки в середовищі клієнт / сервер?" (вони звинувачують вікна, але ви маєте рацію, це все, що в мережі)
Джо

3
Як сервер перебуває на факторі домену Windows для цього? тобто чи повинен зловмисник приєднати свій комп'ютер до домену, щоб мати обліковий запис, що включає домен, чи міг би зловмисник імітувати присутність домену, не маючи фактично приєднуватися до свого комп'ютера?
Лі Риффел

Я здогадуюсь, що це було написано спочатку в той час, коли всі сервери були Unix, а всі настільні комп'ютери - Windows
Gaius

3
@Leigh - Ви можете зробити автентифікацію віддаленої ОС більш захищеною від клієнтів Windows, встановивши OS_AUTHENT_PREFIX як довірчий домен Windows. Для цього потрібно, щоб віддалений клієнт знаходився (або, здається, є) на цьому довіреному домені. Це суттєво піднімає планку над тривіальним «підключенням комп’ютера до запасного порту, додає місцевого користувача, і ви в атаці, але це все ще досить зручно.
Джастін Печера

1
порівняйте та порівняйте, якщо він робив фактичну автентифікацію AD / Kerberos, а також взяв квиток у користувача та підтвердив його за допомогою KDC, що, напевно, те, що робить SqlServer, коли встановлено для використання автентифікації Windows?
аракнід

8

Це збільшує окремі точки відмови та збільшує поверхню ризику ваших даних.

Зловмисник, який отримає доступ до системи, матиме автентифікацію ОС, мати доступ до бази даних. Вимагаючи більш безпечного доступу до бази даних, потенційний зловмисник повинен ескалірувати свої привілеї на компрометованій системі, щоб отримати root або oracle доступ, а не будь-який користувач.

Ця проблема є функцією зовнішнього доступу до бази даних. Якщо немає зовнішнього доступу і машина повністю захищена, то питання дозволів суперечить. Однак якщо розробники мають доступ, дозволи користувачів на рівні ОС збільшують сферу можливих катастроф безпеки.

Подумайте про використання мультієр-доступу для обмеження обсягу порушень безпеки та надання будь-якому користувачеві, додатку чи клієнту необхідного їм доступу без необхідності створювати облікові записи на рівні ОС для кожного примірника.


Я бачу, тому для спрощення - два вимоги користувача / пароля безпечніші, ніж одне -. Ваші бали звучать розумно.
Лі Ріффель

Це тонко неправильна відповідь - питання полягає не в зовнішній аутентифікації, а в віддаленій зовнішній аутентифікації. Я поясню нижче.
Гай

@Gaius Чи не зовнішня автентифікація ОС була б надзвичайно обмежена майже до того, що вона не була б марною, якби вона не була віддаленою? Ви говорите, що Oracle не знищує автентифікацію за допомогою ОС, а лише знецінює автентифікацію ОС на віддаленому комп'ютері?
Лей Ріффель

@Leigh - Найважливішим випадком використання автентифікації ОС для локальних облікових записів є завдання типу DBA, де на сервері баз даних працює безліч скриптів оболонок, яким потрібно отримати доступ до дуже потужних облікових записів на сервері баз даних. Перевірка автентичності ОС дозволяє уникати незашифрованих паролів рівня DBA у цих скриптах оболонки.
Джастін Печера

@Justin пакетні завдання взагалі, реалізовані як сценарії оболонки чи що завгодно, в окремих кронах
Гай

4

Гайус уже вказував, чому автентифікація віддаленої операційної системи (на відміну від автентифікації ванільної операційної системи, коли ви дозволяєте місцевим користувачам машини отримувати доступ до бази даних, не вказуючи окремий пароль) є відносно небезпечною.

Я б очікував, що Oracle рухається в цьому напрямку, оскільки хоче заохотити людей використовувати корпоративних користувачів (або повноцінний набір управління ідентифікацією), а не віддалених користувачів, що підтверджують автентичність віддаленої операційної системи. Корпоративні користувачі мають ті самі переваги, що й аутентифіковані користувачі віддаленої операційної системи, але Oracle насправді виходить і натискає ваш сервер Active Directory для автентифікації користувача. Ви отримуєте однаковий знак про переваги, не залишаючи перевірку безпеки на клієнтській машині.


Аутентифікація LDAP може відкрити ще одну банку глистів ... Я піду довгу відповідь.
Джо

+1 Дякуємо, що вказали на безпеку корпоративних користувачів. Ми вже розглядали розширену безпеку, і це робить її ще більш привабливою.
Лі Ріффель

4

Ви конкретно вказуєте на автентифікацію в стилі ідентичності, але я також хотів би зазначити, що інші способи прив’язки бази даних чи будь-яких інших входів до входів ОС настільки ж погані. (будь то локальні файли паролів, LDAP або будь-яке інше для фактичного зберігання облікових даних)

Якщо ви дозволите віддалене підключення до бази даних (або веб-сервер, або все, що робить аутентифікацію), деякі ОС ігноруватимуть правила, які можуть бути встановлені для утруднення жорстокого обліку облікових записів (наприклад, блокування IP-адрес, звідки надходять невдалі спроби; блокування користувачів протягом періоду після встановленої кількості несправностей тощо). Зазвичай ці правила пов'язані sshd, а не система автентифікації в цілому.

Отже, якщо хтось зможе підключитися до бази даних / веб-сервера / що завгодно віддалено, вони можуть жорстоко примусити пароль, оскільки бази даних, як правило, не мають однакових механізмів для уповільнення спроб, а потім схуднути, як тільки знайдуть необхідні облікові дані.


2
Я не впевнений, що я дотримуюся міркувань тут. Якщо ви маєте автентифікацію Oracle проти LDAP, вам доведеться зламати LDAP, щоб отримати пароль - не було б локальної копії хеша пароля на грубу силу, як це було б для звичайного користувача Oracle. Якщо ви стурбовані тим, що зловмисники б'ють вашу автентифікацію LDAP, у вас, ймовірно, є більші проблеми, ніж у тому, як ви автентифікуєте користувачів Oracle. І досить просто налаштувати Oracle для блокування облікових записів після ряду невдалих спроб, обмеження дозволених IP-адрес тощо. Багато чого, насправді, є поведінкою за замовчуванням у 11g.
Джастін Печера

@Justin: проблема лише в тому випадку, якщо ви зв'язали її, щоб облікові дані для входу в ОС були такими ж, як і облікові дані для входу в базу даних (або веб-сервер тощо). І це здається, що Oracle став кращим щодо аутентифікації, ніж коли я востаннє використовував його, але більшість інших баз даних не мають. (і Apache не має, тому користувачі серверів MacOS X повинні міняти місцями mod_auth_appleі mod_auth_digest_appleдля версій за замовчуванням, хоча я не перевіряв, чи проблема все ще існує в 10.6)
Джо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.