Sie sind auf Seite 1von 41

UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO CENTRO DE CINCIAS EXATAS E TECNOLOGIA

Relatrios Tcnicos do Departamento de Informtica Aplicada da UNIRIO n 0016/2010

Estudos do Oracle Database Vault

Sergio Puntar Leonardo Guerreiro Azevedo

Departamento de Informtica Aplicada


UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO Av. Pasteur, 458, Urca - CEP 22290-240 RIO DE JANEIRO BRASIL

Projeto de Pesquisa
Grupo de Pesquisa Participante

Patrocnio

ii

Relatrios Tcnicos do DIA/UNIRIO, No. 0016/2010


Editor: Prof. Sean W. M. Siqueira Novembro, 2010

Estudos do Oracle Database Vault *


Sergio Puntar, Leonardo Guerreiro Azevedo
Ncleo de Pesquisa e Prtica em Tecnologia (NP2Tec) Departamento de Informtica Aplicada (DIA) Universidade Federal do Estado do Rio de Janeiro (UNIRIO) sergio.puntar@uniriotec.br, azevedo@uniriotec.br

Abstract. Information security is an essential subject for commercial and governmental organizations, and its deployment requires implementations that guarantee only authorized users access data under security control. Besides, it is common that database administrators have direct access to sensitive data, even though these data are restricted to business users. This work studies the tool Database Vault from Oracle DBMS whose concern is to prevent internal threats, using responsibility separation between privileged database users, protecting sensitive data, but still enabling database administration. Keywords: Access control, Oracle Database Vault, Separation of responsibilities, internal threats. Resumo. Segurana da informao um tema essencial em organizaes comerciais e governamentais, e sua operacionalizao requer a existncia de funcionalidades que permitam garantir que apenas as pessoas devidamente autorizadas acessem os dados. Alm disso, muito comum que os administradores de banco de dados tenham acesso direto aos dados sensveis, mesmo que haja controle de acesso para os usurios de negcio. Este trabalho apresenta um estudo da ferramenta Database Vault do SGBD Oracle, que se preocupa em impedir ameaas internas, atravs da separao de responsabilidades entre os usurios privilegiados do banco, protegendo os dados sensveis, mas ainda permitindo a manuteno do banco pelos mesmos usurios. Palavras-chave: Controle de acesso, Oracle Database Vault, Separao de responsabilidades, Ameaas internas.

___________________
* Trabalho patrocinado pela Petrobras.

iii

Sumrio

1 2

Introduo Oracle Database Vault 2.1 Componentes de controle de acesso 2.2 Oracle Database Vault Administrator e Configuration Assistant 2.3 Esquemas DVSYS, DVF, interfaces e pacotes PL/SQL 2.4 APIs PL/SQL do Oracle Label Security 2.5 Ferramentas de monitorao e relatrio 2.6 Como o Database Vault protege os dados do acesso de um DBA 2.7 Administrao do Oracle Database Vault

7 7 7 8 8 8 9 9 9

Exemplo de uso do Oracle Database Vault 10 3.1 Restringindo o acesso do DBA a dados sensveis 10 3.2 Refinando privilgios do DBA em um Realm atravs de conjunto de regras 18 3.3 Controlando aes do DBA no banco com regras para comandos 26 Integrando o Database Vault com o Virtual Private Database Concluses Referncias Bibliogrficas 33 40 41

4 5 6

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 4

ndice de figuras Figura 1 - Funcionamento de autorizaes para Realms e donos de Realms [HUEY et al., 2008] 9 Figura 2 - Consulta sem controle de acesso realizada pelo usurio privilegiado SYSTEM 11 Figura 3 - Database Vault Administrator acessado via browser 11 Figura 4 Opo Realms no menu principal do Database Vault Administrator 12 Figura 5 - rea de listagem de Realms 12 Figura 6 - Criao do Realm HR Realm 13 Figura 7 - Listagem dos Realms com o Realm recm criado 13 Figura 8 - Listagem de objetos pertencentes ao Realm 14 Figura 9 - rea de incluso de objeto no Realm 14 Figura 10 - rea de listagem de objetos do Realm com o esquema HR recm includo 14 Figura 11 - Consulta com controle de acesso realizada pelo usurio privilegiado SYSTEM 15 Figura 12 - Consulta com controle de acesso realizada pelo usurio dono do esquema HR 15 Figura 13 - Erro na execuo de comando com o usurio SYSTEM sobre o Realm HR 16 Figura 14 - Erro na execuo de comando com o usurio HR sobre o Realm HR 17 Figura 15 - Listagem de autorizaes do Realm 17 Figura 16 - rea de incluso de autorizao no Realm 17 Figura 17 - rea de listagem de autorizaes do Realm com a autorizao recm includa 18 Figura 18 - Execuo de comando no Realm HR com autorizao de usurio 18 Figura 19 Opo Conjuntos de Regras no menu principal do Database Vault Administrator 19 Figura 20 - rea de listagem de conjuntos de regras 19 Figura 21 - 1 parte da criao do conjunto de regras Acesso Local 20 Figura 22 - 2 parte da criao do conjunto de regras Acesso Local 21 Figura 23 - Procedure Handler 21 Figura 24 - Listagem dos conjuntos de regras com o conjunto recm criado 22 Figura 25 - Listagem de regras pertencentes ao conjunto de regras 22 Figura 26 - rea de incluso de regra no conjunto 23 Figura 27 - rea de listagem de regras do conjunto com a regra recm includa 23 Figura 28 - Incluso de Autorizao de Realm para o usurio SYSTEM 24 Figura 29 - rea de listagem de autorizaes do Realm com a autorizao para o usurio SYSTEM 24 Figura 30 - Consulta na tabela EMPLOYEES realizada localmente pelo usurio SYSTEM 25 Figura 31 - Consulta na tabela EMPLOYEES realizada remotamente pelo usurio SYSTEM 25 Figura 32 Opo Fatores no menu principal do Database Vault Administrator 27 Figura 33 - rea de listagem de fatores 27 Figura 34 - 1 parte da criao do fator Hora_do_sistema 29 Figura 35 - 2 parte da criao do fator Hora_do_sistema 30 Figura 36 - rea de listagem de fatores com o fator recm criado 30 Figura 37 - Regra de horrio de expediente 31 Figura 38 Opo Regras de Comandos no menu principal do Database Vault Administrator 31
______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 5

Figura 39 - rea de listagem de regras de comando 32 Figura 40 - criao da regra de comando sobre o comando ALTER SYSTEM 32 Figura 41 - Execuo do comando ALTER SYSTEM realizada em horrio de expediente pelo usurio SYSTEM 33 Figura 42 - Execuo do comando ALTER SYSTEM realizada fora do horrio de expediente pelo usurio SYSTEM 33 Figura 43 - Regra de comando padro do Database Vault para o comando GRANT sobre o pacote DBMS_RLS 34 Figura 44 - Concesso de privilgio de execuo sobre o pacote DBMS_RLS para o usurio HR 35 Figura 45 - Mtodo de definio de valor do fator Departamento Gerenciado 35 Figura 46 - Criao do fator Departamento Gerenciado 36 Figura 47 - Funo da poltica VPD para restrio de acesso aos dados dos funcionrios 37 Figura 48 - Consulta sobre a tabela EMPLOYEES realizada sem controle de acesso pelo usurio JCHEN 38 Figura 49 - Consulta sobre a tabela EMPLOYEES realizada sem controle de acesso pelo usurio NGREENBE 38 Figura 50 - Comando de aplicao da poltica sobre a tabela EMPLOYEES 39 Figura 51 - Consulta sobre a tabela EMPLOYEES realizada com controle de acesso pelo usurio JCHEN 39 Figura 52 - Consulta sobre a tabela EMPLOYEES realizada com controle de acesso pelo usurio NGREENBE 39

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 6

1 Introduo
Esse relatrio tem como objetivo caracterizar a ferramenta de controle de acesso Database Vault, presente no Oracle Database verso 10.2.0.4, bem como avaliar o uso dessa ferramenta para autorizao de acesso a banco de dados. Este relatrio foi produzido pelo Projeto de Pesquisa em Autorizao de Informao como parte das iniciativas dentro do contexto do Projeto de Pesquisa do Termo de Cooperao entre UNIRIO/NP2Tec e a PETROBRAS/TIC-E&P/GDIEP. Esse relatrio est organizado em 5 captulos, sendo o captulo 1 a presente introduo. No captulo 2, caracterizada a ferramenta Database Vault do Oracle. No captulo 3, so apresentados exemplos de uso da ferramenta. No captulo 4, apresentado um exemplo de integrao do DBVault com o Virtual Private Database. Nos captulos 5 e 6, so apresentadas as concluses e referncias do trabalho realizado, respectivamente.

2 Oracle Database Vault


Esta seo analisa as funcionalidades do Oracle Database Vault, no que se refere ao seu potencial de uso na definio de uma estratgia de controle de acesso de aplicativos aos dados existentes na BDIEP. Com o Oracle Database Vault possvel restringir o acesso em reas especficas do banco de dados a qualquer usurio, incluindo usurios com acesso de administrao, permitindo um controle de acesso refinado [HUEY et al., 2008]. O DB Vault preocupase com ameaas internas, portanto sugere uma separao de responsabilidades entre os usurios privilegiados, protegendo dados sensveis desses usurios, mas ainda permitindo a manuteno do banco pelos mesmos usurios. O Oracle Database Vault divide-se na srie de componentes detalhados a seguir.

2.1

Componentes de controle de acesso

O Database Vault possui os seguintes componentes de controle de acesso: Realms. Um realm (domnio) um grupo de esquemas, objetos e papis que precisam de segurana. Por exemplo, possvel agrupar um conjunto de esquemas, objetos e papis e relacion-los com uma rea da companhia, como, por exemplo, rea de vendas ou RH. Em seguida, esse realm pode ser utilizado para controlar privilgios de sistema para determinadas contas e papis. Command rules. Uma command rule (regra de comando) uma regra especial que permite controlar como os usurios podem executar um comando SQL, incluindo SELECT, ALTER SYSTEM e comandos DDL (database definition language) e DML (data manipulation language). As command rules em conjunto com os rule sets determinam se um comando permitido ou no. Factors. Um factor (fator) uma varivel ou atributo como, por exemplo, a localizao do usurio, o endereo IP do banco de dados ou o usurio de sesso, que o Database Vault pode reconhecer e proteger. Os factors podem ser utilizados em aes como, por exemplo, autorizar a conexo de contas especficas
______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 7

com o banco de dados, ou criar filtros que restrinjam a visibilidade e gerenciamento dos dados. Cada factor pode possuir uma ou mais identidades, que so os valores reais de um factor. Rule Sets. Um rule set (conjunto de regras) uma coleo de uma ou mais regras que pode ser associada com um realm, command rule, factor ou secure application role. O conjunto de regras avaliado como verdadeiro ou falso baseado na avaliao de cada regra do conjunto e no tipo de avaliao (todas verdadeiras ou alguma verdadeira). Cada regra uma expresso PL/SQL que pode ser avaliada como verdadeira ou falsa, alm disso, uma mesma regra pode aparecer em vrios conjuntos de regra. Secure application roles. Um secure application role (atribuio de aplicao segura) um papel especial do Oracle que pode ser habilitado baseado na avaliao de um rule set.

2.2

Oracle Database Vault Administrator e Configuration Assistant

O Oracle Database Vault Administrator (DVA) uma aplicao Java que utiliza as APIs PL/SQL do DB Vault para que gestores de segurana que no tenham conhecimento de PL/SQL possam configurar polticas de controle de acesso atravs de uma interface amigvel. O DVA disponibiliza uma coleo de relatrios de segurana que ajudam na configurao de segurana. J o Oracle Database Vault Configuration Assistant (DVCA) um utilitrio de linha de comando utilizado para manuteno da instalao do DB Vault.

2.3

Esquemas DVSYS, DVF, interfaces e pacotes PL/SQL

O Database Vault utiliza dois esquemas para armazenamento e recuperao de dados: o esquema DVSYS e o esquema DVF. O esquema DVSYS contm os papis, vises, contas, funes e outros objetos necessrios para processar os dados do Oracle para o DB Vault. O esquema DVF contm funes pblicas utilizadas para recuperar (em tempo de execuo) os valores dos factors definidos nas configuraes do DB Vault. Alm destes esquemas, o Database Vault fornece uma coleo de interfaces e pacotes PL/SQL que permitem que gestores de segurana ou desenvolvedores configurem o controle de acesso necessrio. As funes e procedures permitem que contas gerais do banco de dados operem dentro dos limites das polticas de controle de acesso, no contexto de uma sesso do banco de dados.

2.4

APIs PL/SQL do Oracle Label Security

O Oracle Database Vault possui capacidades de controle de acesso que podem ser integradas com o Oracle Label Security. No Oracle existe a aplicao Policy Manager a qual permite a definio e aplicao de polticas Label Security em objetos do banco de dados. O Oracle Label Security fornece ainda uma coleo de APIs PL/SQL que podem ser utilizadas pelos desenvolvedores para definir polticas Label Security. A funcionalidade Label Security um framework a parte do Oracle, que utiliza a tecnologia VPD para aplicar controle de acesso conhecido como MAC (Mandatory Access Control). O tipo de controle de acesso MAC foi proposto por DoD [1983]. Azevedo et al. [2010] apresentam estudos e avaliaes do Label Security.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 8

2.5

Ferramentas de monitorao e relatrio

possvel gerar relatrios sobre as vrias atividades que o DB Vault monitora. Alm disso, possvel monitorar a mudana de polticas, tentativas de violao de segurana, configurao do banco de dados e mudanas estruturais.

2.6

Como o Database Vault protege os dados do acesso de um DBA

A Figura 1 ilustra como o Database Vault protege dados sensveis do acesso de um DBA atravs de Realms. Nesse cenrio, dois usurios, cada um responsvel por um Realm diferente, possuem os mesmos privilgios de sistema. O dono de um Realm pode ser um usurio ou uma role do banco de dados. Dessa forma, cada uma das roles, OE_ADMIN e HR_ADMIN, pode ser protegida por um Realm como um objeto seguro e ainda ser configurada como dona de um Realm. Alm disso, somente um dono de Realm, como o OE_ADMIN, pode conceder e revogar roles do banco que so protegidas pelo Realm. Os donos de Realm no podem gerenciar roles protegidas por outros Realms, como a role DBA, criada pelo usurio SYS no Realm "Oracle Data Dictionary" durante a instalao do Database Vault. Qualquer tentativa no autorizada de usar um privilgio de sistema para acessar um objeto protegido por um Realm criar uma violao de Realm, que pode ser auditada. Os poderes de cada dono de Realm so limitados ao seu prprio Realm. Por exemplo, o OE_ADMIN no tem acesso ao Realm Human Resources, e o HR_ADMIN no tem acesso ao Realm Order Entry, como ilustrado na Figura 1.

Figura 1 - Funcionamento de autorizaes para Realms e donos de Realms [HUEY et al., 2008]

2.7

Administrao do Oracle Database Vault

Antes de apresentar os exemplos de uso do Database Vault, importante caracterizar como feita a sua administrao. A administrao do Oracle Database Vault feita basicamente atravs de dois papis: Database Vault Owner, identificado no sistema pela

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 9

atribuio DV_OWNER, e Database Vault Account Manager, identificado no sistema pela atribuio DV_ACCTMGR. O Database Vault Owner responsvel pela criao de realms, regras de comando, fatores e conjuntos de regra, alm da gerao de relatrios e monitoramento do sistema. O Database Vault Account Manager responsvel por todo o gerenciamento de papis e contas de usurio do sistema. Aps a instalao do Database Vault, o papel de Account Manager passa a ser necessrio, pois os usurios privilegiados que j existem perdem os privilgios de criao, alterao e remoo de usurios e papis. Essa perda de privilgios se d pelo fato de que uma das principais intenes do Database Vault limitar o poder de usurios privilegiados, portanto a centralizao de uma funo importante como o gerenciamento de contas essencial para a aplicao dessa segurana. Durante a instalao do Oracle Database Vault criada uma conta de usurio que receber a atribuio de Database Vault Owner, e opcionalmente uma conta de usurio que receber a atribuio de Account Manager. Se somente uma conta for criada, ela receber as duas atribuies. Alm desses dois papis, o Oracle Database Vault fornece ainda um conjunto de atribuies menos poderosas que possuem certo poder de administrao [HUEY et al., 2008]. Porm, essencialmente, toda a administrao pode ser feita atravs dos papis Database Vault Owner e Database Vault Account Manager. No mbito desse relatrio o papel Database Vault Owner foi atribudo ao usurio DBVOWNER e o papel Database Vault Account Manager foi atribudo ao usurio DBVMANAGER.

3 Exemplo de uso do Oracle Database Vault


Para ilustrar o funcionamento do Oracle Database Vault, foram elaborados exemplos de uso baseados nos tutoriais disponibilizados na OBE (Oracle By Example) [ORACLE, 2010a, 2010b]. Os exemplos apresentados a seguir utilizam as tabelas do esquema HR disponibilizado na instalao padro do Oracle Enterprise 10.2.0.4.

3.1

Restringindo o acesso do DBA a dados sensveis

Esta seo apresenta um exemplo de restrio de acesso aos dados do esquema HR por parte dos DBAs. Ela contempla os seguintes passos: 1. Criar um Realm para proteger os dados 2. Incluir os objetos sensveis no Realm 3. Criar uma autorizao de Realm para o dono dos dados Considere um cenrio muito comum onde a segurana aplicada no nvel de aplicao. Geralmente nesses casos, apesar dos usurios comuns estarem sujeitos a um controle de acesso, os DBAs tm total acesso s informaes cadastradas na base de dados, o que aumenta consideravelmente o risco de ataques internos. Para contornar esse problema, o Database Vault permite bloquear o acesso a dados sensveis por parte dos DBAs, sem que com isso eles percam o poder de administrao do banco.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 10

Para exemplificar esse conceito, foi feita uma conexo com o banco atravs do usurio privilegiado SYSTEM e realizada uma consulta sobre a tabela EMPLOYEES do esquema HR. Esses passos so apresentados na Figura 2.

Figura 2 - Consulta sem controle de acesso realizada pelo usurio privilegiado SYSTEM

Observe que, por enquanto, o usurio SYSTEM pode visualizar sem problemas os dados da tabela EMPLOYEES, pois possui o privilgio SELECT ANY TABLE. Para bloquear o acesso desse usurio preciso criar um Realm (veja a sesso 2.1 ) para os dados sensveis. Isso pode ser feito atravs do Database Vault Administrator, que acessado pela URL http://<servidor>:<porta>/dva, como mostra a Figura 3.

Figura 3 - Database Vault Administrator acessado via browser

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 11

Aps entrar no DVA com o usurio DBVOWNER, foi criado o Realm atravs da opo Realms no menu principal da ferramenta, como mostra a Figura 4.

Figura 4 Opo Realms no menu principal do Database Vault Administrator

Para criar o Realm, selecione a opo criar acima da tabela que apresenta os Realms j existentes, como mostra a Figura 5.

Figura 5 - rea de listagem de Realms

No prximo passo, foram inseridas as informaes do Realm, tais como: nome, descrio, status e opes de auditoria, como mostra a Figura 6. As opes de auditoria
______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 12

definem quando as informaes de auditoria devem ser registradas: nunca, quando ocorrer alguma falha ou sempre. Neste caso, a segunda opo foi selecionada.

Figura 6 - Criao do Realm HR Realm

Clicando em OK, o Realm criado, porm ainda no possui nenhum objeto. Para incluir os objetos voltamos rea de listagem de Realms, apresentada na Figura 5, foi selecionado o Realm recm criado e, em seguida ele foi editado (opo editar), como apresenta a Figura 7.

Figura 7 - Listagem dos Realms com o Realm recm criado

Na rea de edio de Realms pode-se alterar os dados definidos quando o Realm foi criado e incluir objetos e autorizaes para ao Realm. Por enquanto, foi includo o esquema HR como objeto do Realm. Para isso, na rea Objetos Protegidos por Realm, que lista os objetos pertencentes ao Realm, necessrio clicar no boto criar, como mostra a Figura 8. Segue-se, ento, para a tela apresentada na Figura 9.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 13

Figura 8 - Listagem de objetos pertencentes ao Realm

Na opo Proprietrio do Objeto (Figura 9), o nome do esquema que deve ser protegido foi inserido, nesse caso HR. Na opo Tipo de Objeto, o valor % foi selecionado, indicando que devem ser protegidos todos os tipos de objetos. Finalmente, na opo Nome do Objeto, o valor % foi colocado, pois deseja-se proteger todos os objetos do esquema.

Figura 9 - rea de incluso de objeto no Realm

Aps clicar em OK, o esquema HR inteiro includo como um objeto do Realm. Podemos ver isso na listagem de objetos do Realm como mostra a Figura 10.

Figura 10 - rea de listagem de objetos do Realm com o esquema HR recm includo

A partir desse momento, os dados do esquema HR esto bloqueados para todos os usurios do banco, menos para o usurio dono do esquema e para os usurios que
______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 14

haviam recebido privilgios para algum objeto do esquema explicitamente (atravs do comando GRANT). Para verificar o funcionamento da segurana, a consulta sobre a tabela EMPLOYEES foi repetida com o usurio SYSTEM. O resultado da consulta pode ser visto na Figura 11. Observe que dessa vez um erro de privilgios insuficientes foi disparado impedindo a visualizao dos dados. O mesmo vale para qualquer usurio poderoso que tinha acesso aos dados atravs do privilgio SELECT ANY TABLE. A consulta foi ento repetida com o usurio HR (Figura 12). Como este usurio dono do esquema, ele tem acesso a todos os dados. Logo, a consulta ocorreu normalmente. Com essa configurao o usurio privilegiado SYSTEM perde o acesso sobre os dados do esquema HR, mas mantm seus privilgios de gerenciamento no restante do banco. Contudo, isso tambm fez com que nenhum usurio do banco seja capaz de manipular objetos do esquema HR. Em outras palavras, mesmo o usurio HR, que dono do esquema, no consegue mais executar operaes de DDL sobre os objetos do esquema.

Figura 11 - Consulta com controle de acesso realizada pelo usurio privilegiado SYSTEM

Figura 12 - Consulta com controle de acesso realizada pelo usurio dono do esquema HR

Considere ento que, aps a definio do Realm, seja necessrio criar uma nova tabela ou conceder o privilgio de SELECT na tabela EMPLOYEES para algum usurio. Nesse momento, no existe nenhum usurio capaz de realizar essa tarefa. A Figura 13
______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 15

mostra a resposta do sistema para esses comandos quando executados pelo usurio SYSTEM, enquanto a Figura 14 mostra a resposta quando os comandos so executados pelo usurio HR. Em ambos os casos ocorreram erros na execuo dos comandos.

Figura 13 - Erro na execuo de comando com o usurio SYSTEM sobre o Realm HR

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 16

Figura 14 - Erro na execuo de comando com o usurio HR sobre o Realm HR

Para contornar esse problema devemos definir um usurio responsvel pela manipulao de objetos do Realm HR. Esse usurio deve ter os privilgios para realizar as tarefas desejadas como, por exemplo, o prprio usurio HR. Essa definio deve ser feita criando uma autorizao de Realm. Isso pode ser feito acessando a rea de edio do Realm HR, indo rea Autorizaes de Realms, que lista as autorizaes do Realm, e clicando no boto criar, como mostra a Figura 15.

Figura 15 - Listagem de autorizaes do Realm

Na opo Favorecido, foi definido que o usurio que ter seus privilgios de sistema liberados para serem usados no Realm. Na opo Tipo de Autorizao, foi definido se esse usurio dono do Realm ou participante do Realm. A nica diferena entre o dono e participante que o dono pode definir outros participantes. Por fim, na opo Conjunto de Regras de Autorizao, pode-se definir o conjunto de regras que deve ser validado para liberar a autorizao. Neste exemplo, nenhum conjunto de regras foi selecionado, pois a autorizao deve valer sempre, mas nos prximos exemplos este caso ser tratado. A Figura 16 apresenta esta configurao.

Figura 16 - rea de incluso de autorizao no Realm

Aps clicar em OK, a autorizao para o usurio HR criada. Isso pode ser visto na listagem de autorizaes do Realm, como mostra a Figura 17.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 17

Figura 17 - rea de listagem de autorizaes do Realm com a autorizao recm includa

Os comandos de concesso de privilgio e criao de tabela com o usurio HR foram repetidos e, desta vez, o resultado esperado foi obtido (Figura 18).

Figura 18 - Execuo de comando no Realm HR com autorizao de usurio

Nesse exemplo, foi definido um Realm sobre os objetos do esquema HR, bloqueando o acesso dos usurios poderosos a esses objetos, ignorando os privilgios de sistema desses usurios como, por exemplo, SELECT ANY TABLE. Alm disso, os usurios que j possuam privilgios definidos explicitamente sobre os objetos do Realm (atravs do comando GRANT) mantiveram seu acesso. Em seguida, foi definida uma autorizao de Realm para o usurio HR, liberando que seus privilgios de sistema fossem usados sobre o Realm. Ao concluir este exemplo, somente o usurio HR tem permisso para manipular os objetos do seu esquema e somente ele pode definir quais usurios podem acessar os dados, atravs de comandos GRANT.

3.2

Refinando privilgios do DBA em um Realm atravs de conjunto de regras

Esta seo apresenta um exemplo de refinamento de privilgios do DBA em Realm atravs de conjunto de regras. Neste caso, o acesso ao esquema HR liberado para o usurio SYSTEM quando esse acesso for feito localmente. O exemplo contempla os seguintes passos: 1. Criar um conjunto de regras 2. Incluir regra de acesso local 3. Criar uma autorizao de Realm baseada nesse conjunto de regras

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 18

Continuando no cenrio do exemplo anterior, considere que agora deseja-se que o usurio SYSTEM manipule os objetos do Realm HR se o acesso for feito localmente no servidor. Para este caso, necessrio definir um conjunto de regras (veja a sesso 2.1 ) onde essa regra ser includa. Isso pode ser feito atravs da opo Conjuntos de Regras, no menu principal do DVA, como mostra a Figura 19.

Figura 19 Opo Conjuntos de Regras no menu principal do Database Vault Administrator

Para criar o conjunto de regras, selecione a opo criar acima da tabela que apresenta os conjuntos de regras j existentes, como mostra a Figura 20.

Figura 20 - rea de listagem de conjuntos de regras

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 19

Em seguida, so inseridas as informaes do conjunto de regras, tais como: nome, descrio, status, opes de avaliao e opes de auditoria (Figura 21). As opes de avaliao definem como as regras so avaliadas: todas devem ser verdadeiras ou pelo menos uma deve ser verdadeira. Neste caso, foi selecionada a primeira opo. As opes de auditoria definem quando as informaes de auditoria devem ser registradas: nunca, quando ocorrer alguma falha ou sempre. Nesse caso foi selecionada a segunda opo.

Figura 21 - 1 parte da criao do conjunto de regras Acesso Local

Pode-se ainda definir opes de tratamento de erro para o conjunto de regras. Atravs dessas opes, possvel estipular um cdigo e uma mensagem de erro para serem exibidos quando houver um erro na avaliao do conjunto de regras. Alm disso, pode-se definir um handler para ser executado quando houver uma falha na avaliao ou sempre que as regras forem avaliadas. A Figura 22 apresenta essas configuraes. A procedure handler pode ser utilizada, por exemplo, para notificar via e-mail, atravs do pacote UTL_MAIL, as violaes ocorridas. A infra-estrutura disponvel para os testes realizados nesse relatrio no contava com um servidor SMTP; portanto, a procedure handler implementada para simular a notificao, apresentada na Figura 23, cadastra as informaes em uma tabela. Apesar do DVA gerar relatrios de auditoria, o handler tem a vantagem de disponibilizar essas informaes em tempo real.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 20

Figura 22 - 2 parte da criao do conjunto de regras Acesso Local

Figura 23 - Procedure Handler

Clicando em OK, o conjunto de regras criado, porm ainda no possui nenhuma regra. Para incluir regras, deve-se voltar rea de listagem de conjuntos de regras apresentada na Figura 20, selecionar o conjunto de regras recm criado e clicar na opo editar, como mostra a Figura 24.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 21

Figura 24 - Listagem dos conjuntos de regras com o conjunto recm criado

Na rea de edio de conjunto de regras, pode-se alterar os dados definidos quando o conjunto foi criado bem como incluir regras ao conjunto. Para incluir a regra definida no incio do exemplo, siga para a rea Regras Associadas ao Conjunto de Regras, que lista as regras pertencentes ao conjunto, e clique no boto criar, como mostra a Figura 25.

Figura 25 - Listagem de regras pertencentes ao conjunto de regras

A seguir, defina um nome e uma expresso para a regra. A expresso da regra deve retornar obrigatoriamente o valor Falso ou Verdadeiro. A expresso definida no exemplo utiliza a funo do Oracle SYS_CONTEXT, acessando o contexto USERENV, que armazena diversas informaes sobre a sesso do usurio. Neste caso, est sendo considerado o acesso pelo atributo IP_ADRESS, que armazena o IP de origem da conexo, e comparando com o IP do servidor (10.10.10.10). Dessa forma, a regra s avaliada como verdadeira se a conexo partir do prprio servidor. A Figura 26 apresenta a criao da regra.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 22

Figura 26 - rea de incluso de regra no conjunto

Aps clicar em OK, a regra includa no conjunto. Isto visualizado na listagem de regras do conjunto, como exemplificado na Figura 27.

Figura 27 - rea de listagem de regras do conjunto com a regra recm includa

O prximo passo consiste em incluir uma autorizao no Realm HR para o usurio SYSTEM, da mesma forma que foi feito no exemplo anterior (Figura 15) para o usurio HR. Desta vez, preenchido como Favorecido o usurio SYSTEM, como Tipo de Autorizao foi selecionadoParticipante e como Conjunto de Regras de Autorizao foi selecionado o conjunto Acesso Local recm criado. Isto significa que o SYSTEM s ter acesso ao Realm se o conjunto de regras for avaliado como verdadeiro.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 23

Figura 28 - Incluso de Autorizao de Realm para o usurio SYSTEM

A criao da autorizao pode ser visualizada na listagem de autorizaes do Realm, como mostra a Figura 29.

Figura 29 - rea de listagem de autorizaes do Realm com a autorizao para o usurio SYSTEM

O prximo passo deste exemplo consiste em testar as configuraes realizadas. Logo, uma consulta na tabela EMPLOYEES com o usurio SYSTEM localmente e remotamente foram executadas. O resultado da primeira consulta apresentado na Figura 30, enquanto o resultado da segunda consulta apresentado na Figura 31.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 24

Figura 30 - Consulta na tabela EMPLOYEES realizada localmente pelo usurio SYSTEM

Figura 31 - Consulta na tabela EMPLOYEES realizada remotamente pelo usurio


______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 25

SYSTEM

Assim como esperado, a consulta retornou os dados da tabela quando realizada localmente, e um erro de privilgios insuficientes quando executada remotamente. Observe tambm que no primeiro caso nenhuma notificao foi cadastrada na tabela alert_table, enquanto no segundo caso a notificao da violao foi cadastrada normalmente. Neste exemplo, o cenrio do exemplo anterior foi evoludo para refinar os privilgios do usurio SYSTEM no Realm HR atravs de criao de uma autorizao de Realm baseada em um conjunto de regras. Ao concluir este exemplo, o usurio SYSTEM obteve acesso aos objetos do Realm HR somente quando acessava o banco localmente, a partir do IP 10.10.10.10.

3.3

Controlando aes do DBA no banco com regras para comandos

Esta seo apresenta um exemplo de controle das aes do DBA no banco com regras para comandos. O exemplo contempla os seguintes passos: 1. Criar um fator que indica a hora do sistema 2. Criar um conjunto de regras e incluir a regra delimitando o horrio de expediente utilizando o fator criado 3. Criar uma regra de comando para o comando ALTER SYSTEM baseada no conjunto de regras criado Nos exemplos anteriores foi demonstrado que, atravs do Database Vault, possvel controlarmos as aes do DBA em reas especficas do banco de dados. Contudo, tambm pode haver a necessidade de controlar alguma ao do DBA globalmente no sistema. Para isto o Database Vault permite a criao de regras para comandos (veja a seo 2.1 para explicao sobre regras para comandos). Assim pode-se aplicar uma regra que deve ser validada para que o usurio possa executar um comando especfico. Este exemplo mostra como isto pode ser feito atravs da criao de uma regra sobre o comando ALTER SYSTEM para impedir que este comando seja realizado fora do horrio de expediente (8:00 as 17:00). Para tratar este intervalo de tempo, ser criado um fator (veja a sesso 2.1 para explicao sobre fatores) que represente a hora do sistema. Isto pode ser feito atravs da opo Fatores no menu principal do DVA, como mostra a Figura 32.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 26

Figura 32 Opo Fatores no menu principal do Database Vault Administrator

Para criar o fator selecione a opo criar acima da tabela que apresenta os fatores j existentes, como mostra a Figura 33.

Figura 33 - rea de listagem de fatores

Em seguida, as informaes do fator so inseridas, tais como: nome, descrio, tipo, identificao, avaliao, label e mtodo de recuperao. Neste exemplo, foi realizada a configurao apresentada na Figura 34 e descrita a seguir. O nome no deve possuir espaos, pois o Database Vault ir gerar um identificador para o fator que ser exatamente o nome que for dado. Neste caso, o nome escolhido

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 27

foi Hora_do_sistema e o Database Vault gerou o DVF.F$HORA_DO_SISTEMA, que ser usado na definio da regra.

identificador

O tipo deve ser selecionado de uma lista de tipos pr-existentes. O tipo funciona apenas para categorizar os fatores, neste caso foi selecionado o tipo Hora. A identificao do fator define se recuperado atravs de um mtodo, se uma constante ou se definido por outros fatores, permitindo assim um relacionamento de pai e filho entre os fatores. Neste caso, a identificao selecionada foi por mtodo, pois ser utilizado um mtodo do sistema para recuperar o fator. A avaliao indica se o fator deve ser atualizado apenas quando uma sesso iniciada ou toda vez que ele for referenciado. Nesse caso, como a hora do sistema muda constantemente, a avaliao por acesso foi selecionada. A opo de label s usada para integrao com o Label Security. Esta integrao no ser tratada nesse relatrio; portanto, foi selecionada a opo padro. Em mtodo de avaliao, foi definida a expresso PL/SQL que recupera o fator, se ele foi definido como recuperado por mtodo, ou o valor do fator, se ele foi definido como constante. Neste caso, foi especificada a expresso TO_CHAR(SYSDATE, 'hh24miss'). O comando SYSDATE retorna a hora atual do sistema, enquanto o mtodo TO_CHAR permite formatar o valor de retornado. Neste caso, a formatao adotada foi horas seguidas imediatamente pelos minutos, seguidos imediatamente pelos segundos.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 28

Figura 34 - 1 parte da criao do fator Hora_do_sistema

Pode-se ainda definir para o fator um mtodo de avaliao, um conjunto de regras de designao, opes de auditoria e opes de erro. O mtodo de avaliao uma expresso PL/SQL que deve retornar Verdadeiro ou Falso, e que ser avaliada sempre que o valor do fator for definido. Essa expresso avalia o valor do fator e, se retornar Falso, redefine esse valor como NULL, seno mantm o valor inalterado. Em contra partida, o conjunto de regras de designao ser avaliado antes da definio do valor do fator. Se esse conjunto for avaliado como verdadeiro a definio do valor prossegue, seno impedida. Neste exemplo nenhuma dessas opes foi utilizada, pois esse fator deve ser definido sempre. Nas opes de auditoria, pode-se definir se a auditoria no ser feita nunca, sempre, ou selecionar em uma lista os casos especficos onde ela ser realizada. Nas opes de erro, define-se se um erro deve ser lanado quando o fator no puder ser definido. Em ambas as opes, foram especificado os valores padres. A Figura 35 mostra toda a configurao realizada.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 29

Figura 35 - 2 parte da criao do fator Hora_do_sistema

Clicando em OK, o fator criado. Isto ilustrado na listagem de fatores, como exemplificado na Figura 36.

Figura 36 - rea de listagem de fatores com o fator recm criado

Em seguida, foi criado um novo conjunto de regras onde a regra definida no incio do exemplo foi includa. O passo-a-passo para a criao de conjuntos de regra e regras apresentado no exemplo anterior (seo 3.2 ). Foi definido ento o conjunto de regras Horrio de expediente e includa a regra apresentada na Figura 37. A expresso da regra referencia o fator recm criado atravs do identificador DVF.F$HORA_DO_SISTEMA e define que ele deve estar entre os valores 80000 (8:00:00) e 170000 (17:00:00).

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 30

Figura 37 - Regra de horrio de expediente

Em seguida, foi definida a regra de comando. Isto pode ser feito atravs da opo Regras de Comandos no menu principal do DVA, como mostra a Figura 38.

Figura 38 Opo Regras de Comandos no menu principal do Database Vault Administrator

Para criar regra de comando, selecione a opo criar acima da tabela que apresenta as regras de comando j existentes, como mostra a Figura 39.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 31

Figura 39 - rea de listagem de regras de comando

Em seguida, foram inseridas as informaes da regra de comando, como comando, status, aplicabilidade e conjunto de regras. Em comando selecionamos o comando sobre o qual a regra ser aplicada, nesse caso ALTER SYSTEM. Em status, foi definida a regra como ativada, e, em aplicabilidade, foram definidos os objetos sobre os quais esta regra valer. Neste caso, foram selecionados todos os objetos do banco. Por fim, em conjunto de regras, foi definido o conjunto de regras que ser aplicado sobre o comando. Neste caso, foi selecionado o conjunto Horrio de expediente recm criado. A Figura 40 mostra toda essa configurao.

Figura 40 - criao da regra de comando sobre o comando ALTER SYSTEM

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 32

Observe que a configurao padro do Database Vault j possui uma regra para o comando ALTER SYSTEM que utiliza o conjunto de regras Permitir sesses. Por este motivo pode ocorrer um erro durante a criao dessa nova regra. Para contornar esse problema, pode-se incluir a regra de horrio de expediente no conjunto de regras Permitir sesses, ou alterar a regra do comando existente substituindo esse conjunto pelo conjunto Horrio de expediente. Neste momento, a regra de horrio de expediente j est ativa sobre o comando ALTER SYSTEM. Para verificar o funcionamento da regra, foi executado, com o usurio SYSTEM, um comando de alterao de arquivo de log durante o horrio de expediente e fora do horrio de expediente. O resultado da primeira execuo apresentado na Figura 41, enquanto o resultado da segunda execuo apresentado na Figura 42. Como esperado, o comando foi executando com sucesso durante o horrio de expediente, e um erro foi lanando quando o comando foi executado fora do horrio de expediente.

Figura 41 - Execuo do comando ALTER SYSTEM realizada em horrio de expediente pelo usurio SYSTEM

Figura 42 - Execuo do comando ALTER SYSTEM realizada fora do horrio de expediente pelo usurio SYSTEM

Neste exemplo, o controle sobre as aes do DBA foi aumentado, incluindo uma regra sobre o comando ALTER SYSTEM que impede que esse comando seja executado fora do horrio de expediente.

4 Integrando o Database Vault com o Virtual Private Database


Apesar de apresentar um conjunto de funcionalidades de segurana bastante teis, a granularidade do controle de acesso a dados do Database Vault muito baixa, permi______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 33

tindo apenas o controle de acesso sobre objetos inteiros do banco. Contudo, esta granularidade pode ser aumentada atravs da integrao do Database Vault com outras funcionalidades de controle e acesso do Oracle, como o Label Security e o Virtual Private Database. No estudo sobre o Label Security e sobre o VPD apresentado em Azevedo et al. [2010], concluiu-se que o Label Security apresentava uma srie de desvantagens em relao ao VPD, alm de no possibilitar a aplicao de todas as regras definidas. Por esta razo, neste exemplo, o foco foi dado integrao do Database Vault com o VPD. O gerenciamento de polticas VPD feito atravs de funes do sistema pertencentes ao pacote DBMS_RLS. Portanto, o usurio que aplicar as polticas deve ter privilgio de execuo sobre esse pacote. A instalao padro do Database Vault cria uma regra de comando sobre o comando GRANT para o pacote DBMS_RLS cujo conjunto de regras (chamado Pode Conceder Administrao VPD) define que esse comando s pode ser executado pelo usurio dono do Database Vault, nesse caso o DBVOWNER. A Figura 43 apresenta essa regra de comando. A regra ento restringe a execuo do comando GRANT EXECUTE no package SYS_DBMS_RLS para ser executada apenas pelo DBVOWNER.

Figura 43 - Regra de comando padro do Database Vault para o comando GRANT sobre o pacote DBMS_RLS

Observe que, alm de possuir privilgio de execuo sobre o pacote DBMS_RLS, o usurio tambm deve possuir o privilgio de alterar o objeto no qual a poltica ser
______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 34

aplicada. Neste caso, foi definido que o usurio responsvel por aplicar as polticas seria o usurio HR, pois ele o dono dos objetos do esquema. Como esse usurio j possui privilgio de alterao dos objetos, foi preciso apenas conceder o privilgio de execuo sobre o pacote DBMS_RLS, como mostra a Figura 44.

Figura 44 - Concesso de privilgio de execuo sobre o pacote DBMS_RLS para o usurio HR

A integrao do Dabatase Vault com o VPD se d atravs dos fatores, de modo que uma funo de poltica VPD pode utilizar um fator do Database Vault para criar o predicado da poltica. Definimos ento a poltica onde um usurio comum pode acessar apenas as suas prprias informaes na tabela EMPLOYEES, enquanto um usurio que gerente de departamento pode visualizar as informaes de todos os empregados do seu departamento. Para exemplificar esta integrao, foi criado um fator que define o departamento gerenciado por um usurio. O mtodo utilizado para definir o valor do fator (veja sesso 3.3 ) apresentado na Figura 45.

Figura 45 - Mtodo de definio de valor do fator Departamento Gerenciado

O mtodo recebe o nome do usurio logado no banco e retorna o nome do departamento gerenciado por esse usurio. Para este exemplo, por simplificao, foi considerado que o login do usurio no banco o mesmo e-mail cadastrado na tabela EMPLOYEES. Se o usurio no gerencia nenhum departamento, ento a consulta no retorna nenhum valor e, conseqentemente, o mtodo retorna o valor NULL. O mtodo foi criado pelo usurio HR que concedeu privilgio de execuo do mtodo para o usurio DVSYS, que por sua vez o responsvel por recuperar os valores dos fatores para cada usurio que se conecta ao banco. O formulrio de criao do fator apresentado na Figura 46.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 35

Figura 46 - Criao do fator Departamento Gerenciado

Observe que o usurio logado foi passado para o mtodo de recuperao atravs da funo SYS_CONTEXT, dessa forma garante-se que o retorno do mtodo F_GET_MANAGED_DEPARTMENTS estar sempre de acordo com o usurio logado. A partir desse momento o valor do fator pode ser recuperado atravs do comando DVF.F$DEPARTAMENTO_GERENCIADO. Em seguida, foi criada a funo da poltica VPD para ser aplicada tabela EMPLOYEES. A funo criada apresentada na Figura 47.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 36

Figura 47 - Funo da poltica VPD para restrio de acesso aos dados dos funcionrios

O primeiro passo executado na funo da poltica verificar o valor do fator Departamento Gerenciado. Se o valor do fator for nulo, ento o usurio no gerente de departamento, portando o predicado definido como EMAIL = LOGIN_DO_USUARIO, liberando o acesso somente aos seus prprios dados. Se o valor do fator no for nulo significa que o usurio gerente de departamento, portanto realizada uma consulta para recuperar o ID do departamento e o predicado definido como DEPARTMENT_ID = ID_DEPARTAMENTO_GERENCIADO, liberando o acesso somente aos dados dos usurios do seu departamento. Como a funo aplicada sobre a tabela EMPLOYEES, ela invocada sempre que uma consulta realizada sobre a tabela. Contudo, observe que o mtodo que define o fator Departamento Gerenciado realiza uma consulta na tabela EMPLOYEES. Conseqentemente esta consulta sempre feita com o valor do fator ainda indefinido (NULL). Neste caso, a poltica sempre vai retornar o predicado de usurio comum, mesmo que o usurio seja gerente de departamento. Contudo, isso no afeta a definio do valor do fator, para isso s preciso justamente a informao sobre o prprio usurio. Antes de aplicar a poltica sobre a tabela EMPLOYEES, uma consulta foi realizada com dois usurios: JCHEN que um funcionrio comum do departamento financeiro e NGREENBE que a gerente desse mesmo departamento. A Figura 48 apresenta o resultado da consulta realizada pelo usurio JCHEN, enquanto a Figura 49 apresenta o resultado da consulta realizada pelo usurio NGREENBE.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 37

Figura 48 - Consulta sobre a tabela EMPLOYEES realizada sem controle de acesso pelo usurio JCHEN

Figura 49 - Consulta sobre a tabela EMPLOYEES realizada sem controle de acesso pelo usurio NGREENBE

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 38

Ambos os usurio obtiveram acesso a todos os registros da tabela EMPLOYEE. Em seguida, a poltica foi aplicada sobre a tabela atravs do comando apresentado na Figura 50.

Figura 50 - Comando de aplicao da poltica sobre a tabela EMPLOYEES

A consulta foi ento repetida por ambos os usurios. A Figura 51 apresenta o resultado da consulta realizada com controle de acesso pelo usurio JCHEN. Neste caso, foram retornadas apenas as informaes do prprio JCHEN, pois ele no gerente do departamento. A Figura 52 apresenta o resultado da consulta realizada com controle de acesso pelo usurio NGREENBE. Como este usurio gerente, foram retornadas para ele as informaes de todos os empregados do departamento.

Figura 51 - Consulta sobre a tabela EMPLOYEES realizada com controle de acesso pelo usurio JCHEN

Figura 52 - Consulta sobre a tabela EMPLOYEES realizada com controle de acesso pelo usurio NGREENBE

Neste exemplo, foi apresentado um exemplo de integrao das funcionalidades Database Vault e Virtual Private Database. Foi criado um fator do Database Vault, e ele foi utilizado para aplicar uma poltica definida atravs do VPD.

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 39

5 Concluses
Este relatrio apresentou um estudo da ferramenta Database Vault da Oracle. A ferramenta foi caracterizada, apresentando os conceitos relacionados aos componentes de controle de acesso, ferramentas para configurao e administrao, esquemas utilizado, APIs, ferramentas de monitorao de relatrio, forma como os dados so protegidos. Exemplos prticos e com passo-a-passo detalhados de uso do DBVault em circunstncias comuns de necessidade de controle de acesso nas organizaes foram apresentadas, tais como: Restrio do acesso de DBAs a dados sensveis atravs da criao de Realms utilizando a ferramenta Database Vault Administrator: Neste exemplo, o esquema HR foi considerado sensvel e foi includo em um Realm. A partir desse momento, o acesso aos dados do esquema HR ficaram bloqueados para todos os usurios do banco, menos para o usurio dono do esquema e para os usurios que haviam recebido privilgios para algum objeto do esquema explicitamente (atravs do comando GRANT). Em seguida, uma autorizao de Realm foi criada para o usurio HR a fim de que ele pudesse executar comandos DDL (Data Definition Language). Uso de conjunto de regras para refinar privilgios de DBA: Neste exemplo, foi habilitado, via conjunto de regras, a manipulao de dados pelo usurio SYSTEM, desde que ele acesse o banco de dados atravs do IP 10.10.10.10, que o IP local (do computador onde o banco de dados est instalado). Foi apresentada tambm a definio de mensagens de erro, caso ocorra falha quando da avaliao do conjunto de regras. O IP do computador logando ao banco foi obtido atravs do uso de SYS_CONTEXT. Definio de regras para comando: Neste caso, foi criada um conjunto de regras para ser avaliado quando o usurio tenta executar um comando no banco de dados. Se o conjunto de regra retornar falso, o usurio no pode executar o comando. Neste caso, foi criada regra sobre o comando ALTER SYSTEM para impedir que este comando seja realizado fora do horrio de expediente (8:00 as 17:00). Um fator foi criado para retornar a hora do sistema. Por fim, foi apresentado um exemplo de integrao do Database Vault com Virtual Private Database. A integrao apresentada considerou o uso de fatores para auxiliar na criao da poltica. Foi criado um fator para retornar o departamento do usurio logado e este fator foi utilizado na criao da poltica. A partir dos exemplos apresentados, o Database Vault demonstrou-se como uma ferramenta fcil de usar e que requer conhecimento de PL/SQL apenas para criar expresses e invocar procedures, alm do conhecimento do negcio e das necessidades de segurana para criar regras. No entanto, observou-se tambm que a ferramenta muito mais apropriada para definir controle de acesso a usurios privilegiados do banco de dados do que para os usurios comuns. Isto porque o Database Vault tem uma granularidade de controle de acesso baixa (grossa), dado que aplicado a objetos inteiros, comandos de DDL etc. Para definir autorizao de acesso para usurios do negcio, a granularidade deve ser alta (fina) a fim de definir acesso a conjunto de tuplas e at mesmo a conjunto de colunas de determinadas tuplas. O VPD tem esta granularidade de controle de acesso. No exemplo de integrao entre Database Vault e VPD, foi utilizada a funcionalidade para criao de fatores, e o fator criado foi utilizado dentro da procedure do VPD. Uma vantagem no uso do fator que o fator pode ser reutilizado em diferentes
______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 40

procedures e, se for necessrio realizar alguma alterao, sua definio ser alterada em todas as procedures de autorizao que o utilizam. Por outro lado, isto no justifica o uso do Database Vault, pois um uso ainda limitado. Neste caso, poderia ser criada uma viso para retornar o valor do fator, surtindo o mesmo efeito. Alm disso, o exemplo elaborado inclui uma recurso da procedure de autorizao na mesma tabela que no algo simples de lidar, mas que tem que ser considerado quando fatores forem criados considerando informao da prpria tabela onde a poltica VPD est sendo aplicada. Como trabalhos futuros, sugere-se uma investigao mais aprofundada, inclusive considerando exemplos reais, a fim de verificar outros usos do Database Vault para controle de acesso fino.

6 Referncias Bibliogrficas
AZEVEDO, L.; PUNTAR, S.; MELO, R.; BAIAO, F.; CAPPELLI, C. Avaliao Prtica de Funcionalidades para Autorizao de Informaes (Label Security e Virtual Private Database). Relatrios Tcnicos do DIA/UNIRIO (RelaTe-DIA), RT-0002/2010, 2010. Disponvel em: http://seer.unirio.br/index.php/monografiasppgi. DoD. Trusted Computer Security Evaluation Criteria. Department of Defense. DoD 5200.28-STD, 1983. HUEY, P.; BADNAR, P.; BEDNAR, T. et al. Oracle Database Vault Administrators Guide 10g Release 2. Oracle, 2009 ORACLE. Restricting Privileged Users from Accessing Private Application Data Using Oracle Database Vault. Disponvel em: http://www.oracle.com/technology/obe/10gr2_db_single/security/dv/datavault_ot n.htm Acesso em: 15 jul. 2010a ORACLE. Restricting Command Execution Using Oracle Database Vault. Disponvel em: http://www.oracle.com/technology/obe/10gr2_db_single/security/dv/datavault2_ otn.htm Acesso em: 15 jul. 2010b

______________________________________________________________________________________________ RelaTe-DIA: Estudos do Oracle Database Vault 41

Das könnte Ihnen auch gefallen