|
|
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
Доброго дня, предистория - создание скриптов, для автоматического применения "законов" для "CIS oracle database benchmark 11g" (#4.X.XX) задача - как вычислить дефолтных пользователей в 11g? в 12с есть колонка DBA_USERS.ORACLE_MAINTAINED, но в 11 ее еще нема. Исследуя инет написал следущее: select * from dba_users where username not in (select SCHEMA as username from dba_registry union select regexp_substr(OTHER_SCHEMAS,'[^,]+', 1, level) username from dba_registry where OTHER_SCHEMAS is not null connect by regexp_substr(OTHER_SCHEMAS, '[^,]+', 1, level) is not null); но результат удивил(запускал на 11.2.0.4): MDDATA MGMT_VIEW APEX_PUBLIC_USER OWBSYS_AUDIT SPATIAL_WFS_ADMIN_USR SPATIAL_CSW_ADMIN_USR нашлись системные пользователи, не включенные в dba_registry.... есть идеи? п.с. можно вписать hardcoded весь список системных пользователей, но тогда есть риск, что (допустим) была создана база без модуля SPATIAL, "злоумышленник" это узнал и создал пользователя SPATIAL_WFS_ADMIN_USR, и в там случае я об этом никогда не узнаю....(разве что искать только тех пользователей у которых статус "EXPIRED & LOCKED"?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2018, 14:38 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
Еще можно заглянуть в dba_users_with_defpwd и sys.default_pwd$ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 02:09 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
mblshaп.с. можно вписать hardcoded весь список системных пользователей, но тогда есть риск, что (допустим) была создана база без модуля SPATIAL, "злоумышленник" это узнал и создал пользователя SPATIAL_WFS_ADMIN_USR, и в там случае я об этом никогда не узнаю....(разве что искать только тех пользователей у которых статус "EXPIRED & LOCKED"?)Если у злоумышленника есть права на создание юзера, то он может его и не создавать, а просто сменить пароль уже существующего и работать под ним. Тем более после этого поменять его обратно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 03:55 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
Relic HunterЕсли у злоумышленника есть права на создание юзера, то он может его и не создавать, а просто сменить пароль уже существующего и работать под ним. Тем более после этого поменять его обратно. согласен, но случаи то всякие бывают... Вячеслав ЛюбомудровЕще можно заглянуть в dba_users_with_defpwd и sys.default_pwd$ Одно основа другого, но это действенно в том случае, если пароль не менялся, в большенстве так оно и есть, НО часть из требований CIS(№1.2) - select * from dba_users_with_defpwd не должен возращать результатов, тоесть все дефолтные пароли надо поменять... исходя из того что это можно сделать и потом, попробовал на той же БД: Код: plsql 1. 2. 3. 4. 5. 6. 7. Результат какраз те 5 юзеров. Спасибо, буду пробовать на других базах... п.с. коллега посоветовал как вариант такую логику: установлен модуль(SPATIAL)? > Да (select * from dba_registry) > пользователи (SPATIAL_WFS_ADMIN_USR/SPATIAL_CSW_ADMIN_USR/MDDATA/MDSYS) системные. И так описать для всех остальных модулей.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 09:54 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
забыл добавить - как варинт рассматриваю предложение из Doc ID 247093.1 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. дополнить весь список системных "опасных" пакетов, дать всем кто этими пакетами пользуется доступ и забрать у PUBLIC, и не мучаться с системными пользователями, или сделать и то и другое - дать доступ и всем кто их использует и всем системным пользователям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 10:05 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
mblshaВячеслав ЛюбомудровЕще можно заглянуть в dba_users_with_defpwd и sys.default_pwd$ Одно основа другого, но это действенно в том случае, если пароль не менялся, в большенстве так оно и есть, НО часть из требований CIS(№1.2) - select * from dba_users_with_defpwd не должен возращать результатов, тоесть все дефолтные пароли надо поменять... исходя из того что это можно сделать и потом, попробовал на той же БД:Э-ээ, вообще-то фишка именно в sys.default_pwd$ -- если юзера там нет, то это неоракловый юзер -- отсюда уже можно немного плясать Насчет пустого dba_users_with_defpwd -- это не всегда возможно Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. И прямое объяснение от OracleCannot Alter User XS$NULL (Doc ID 1325766.1)If you try to do this because of some security auditing requirements (which for example demand that all users should be in a certain profile) explain to the auditors that this is impossible. mblshaп.с. коллега посоветовал как вариант такую логику: установлен модуль(SPATIAL)? > Да (select * from dba_registry) > пользователи (SPATIAL_WFS_ADMIN_USR/SPATIAL_CSW_ADMIN_USR/MDDATA/MDSYS) системные. И так описать для всех остальных модулей....Еще можно проверять дату создания юзера и дату установки опции (например, создание пакета/процедуры валидации, поскольку до 10g registry$log не было), но при апгрейдах все может поменяться -- пересоздана процедура валидации, добавлены юзера в OTHER_SCHEMAS по мотивам твоего запроса Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2018, 08:46 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровНасчет пустого dba_users_with_defpwd -- это не всегда возможно Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. как не странно, но именно этот момент они учли: Код: plsql 1. 2. 3. Источник решил попробовать пойти сначала через dba_dependencies(доступ то у всех уже и так был, но не учитывается если был использован динамический скл), потом dba_users_with_defpwd и на закуску ваше предложение с датой создания юзера и датой установки опции. Благодарю за участие в обсуждении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 09:49 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
mblshaдополнить весь список системных "опасных" пакетов, дать всем кто этими пакетами пользуется доступ и забрать у PUBLIC, и не мучаться с системными пользователями, или сделать и то и другое - дать доступ и всем кто их использует и всем системным пользователям? Да зачем мне допуск к системным "опасным" пакетaм, дай мне доступ к одному oracle directory object и база будет существовать до рестарта. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 14:58 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
Эти рекомендации немного перебарщивают Не знаю, чем не угодил DBMS_RANDOM, но всякие network-accessed пакеты с 11g рулятся через XDB ACL, а UTL_FILE через DIRECTORY уже давно (кроме особо упоротых -- я из таких ) Так же не очень понятны ограничения на DBMS_LOB (чтение-запись в файловую систему все равно происходит через DIRECTORY) Но, как говорится "дура лекс" -- тут главное сначала раздать права всем страждущим по-схемно, а затем только отобрать от PUBLIC Иначе возможны неприятности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 15:20 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровЭти рекомендации немного перебарщивают ... Но, как говорится "дура лекс" -- тут главное сначала раздать права всем страждущим по-схемно, а затем только отобрать от PUBLIC Иначе возможны неприятности именно этого и пытаемся избежать... SYДа зачем мне допуск к системным "опасным" пакетaм, дай мне доступ к одному oracle directory object и база будет существовать до рестарта. а вот с этого места, пожалуйста по подробней, заинтриговал! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 15:26 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
Если у меня есть право CREATE DIRECTORY, то ничто мне не помешает перезаписать, например, выполняемый файл oracle, или датафайлы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 15:31 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, спс, понял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 15:40 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровЕсли у меня есть право CREATE DIRECTORY, то ничто мне не помешает перезаписать, например, выполняемый файл oracle, или датафайлы Хуже, просто дай мне READ/WRITE/EXECUTE например на DATA_PUMP_DIR и CREATE TABLE (в моей схeме). SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 15:44 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
Естественно, если у меня есть при этом доступ к UTL_FILE, DBMS_LOB, DBMS_FILE_TRANSFER, DBMS_DATA_PUMP, DBMS_BACKUP_RECOVERY и кучи других всяких INT[ERNAL] В этом случае я согласен, что доступ PUBLIC к этим пакетам надо бы ограничить, хотя опять же без CREATE DIRECTORY они не выстрелят Но вот почему мешает абсолютно безопасный DBMS_JOB, и не интересен DBMS_SCHEDULER, который позволяет запускать OS-задачи, тоже интересно. Наверное потому, что у него есть свои СИСТЕМНЫЕ права, но ведь для пользователя, владеющем правами на запуск DBMS_SCHEDULER для своих заданий никаких дополнительных прав не нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 15:52 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
SYВячеслав ЛюбомудровЕсли у меня есть право CREATE DIRECTORY, то ничто мне не помешает перезаписать, например, выполняемый файл oracle, или датафайлы Хуже, просто дай мне READ/WRITE/EXECUTE например на DATA_PUMP_DIR и CREATE TABLE (в моей схeме). SY.Ну, подскажи на пару минут, потом можешь стереть Это новая дыра? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 15:53 |
|
||
|
how to identify system related users in 11g
|
|||
|---|---|---|---|
|
#18+
external table + preprocessor SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 15:56 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39639130&tid=1884035]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
424ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 733ms |

| 0 / 0 |
