You are on page 1of 8

17/12/2012

1
Banco de Dados II
Segurana em Banco de Dados
Lianna Duarte - UESPI - 2012.2
Introduo
Uma das maiores preocupaes bos dias
atuais em computao tem sido segurana da
informao

Com o uso da Internet os sistemas tornam-se
onipresentes e vulnerveis a ataques
maliciosos

SGBDs trazem uma camada de segurana
que visa compor todo o arsenal de segurana
da informao numa corporao
Lianna Duarte - UESPI - 2012.2
Introduo
Definio:
Segurana em Banco de dados diz respeito
proteo do banco de dados contra ataques
intensionais ou no intensionais utilizando-se
ou no de meios computacionais
reas envolvidas:
roubo e fraude
perda de confidencialidade e privacidade
perda de integridade
perda de disponibilidade

Lianna Duarte - UESPI - 2012.2
Introduo
Ameaas s bases de dados
Perda da integridade
Perda de disponibilidade
Perda de confidencialidade
Para proteger bancos de dados contra esses tipos de ameaas quatro
tipos de contramedidas podem ser implementadas:
Controle de acesso;
Controle de inferncia;
Controle de fluxo;
Criptografia.
O subsistema de segurana responsvel por proteger o BD contra o
acesso no autorizado.

Formas de acesso no autorizado:
leitura no autorizada
modificao no autorizada
destruio no autorizada

Lianna Duarte - UESPI - 2012.2
Introduo
O DBA tem plenos poderes para dar e
revogar privilgios a usurios.
Criao de contas
Concesso de privilgios
Revogao de privilgios
Atribuio do nvel de segurana
Lianna Duarte - UESPI - 2012.2
Introduo
Motivao: Exemplo Locadora
Apenas alguns empregados podem modificar
preos dos DVDs
Clientes usando o sistema de consulta, no
devem ter acesso a outras funcionalidades
(vendas, contabilidade, folha de pagamento, etc)
Apenas o pessoal da gerncia deve ter acesso s
informaes dos empregados (por exemplo:
empregados-a-demitir)
Clientes no devem ver o preo de compra de um
produto
Lianna Duarte - UESPI - 2012.2
17/12/2012
2
Introduo
Controles de segurana computacionais
Adiciona-se uma camada segurana provida pelo SO
Autorizao e autenticao
Views
Backup e recovery
Integridade
Stored procedures
Criptografia
Auditoria
Procedimentos associados
Exemplo: upgrading, virus checking, proxy, firewall, kerberos,
certificados digitais, SSL, SHTTP, etc.

Lianna Duarte - UESPI - 2012.2
Introduo
Controles de segurana no
computacionais
Poltica de segurana e plano de contigncia
Posicionamento seguro de equipamentos
Controle de acesso fsico
Manuteno

Lianna Duarte - UESPI - 2012.2
Introduo
Duas abordagens para segurana de dados:
Controle de acesso discreto (discricionrio):
Um dado usurio tem direitos de acessos
diferentes (privilgios) em objetos diferentes
Flexvel, mas limitado a quais direitos usurios
podem ter em um objeto
Controle de acesso mandatrio (obrigatrios):
cada dado rotulado com um certo nvel de
classificao
A cada usurio dado um certo nvel de acesso
rgido, hierrquico

Lianna Duarte - UESPI - 2012.2
Introduo
Em SQL:1999 temos:
Lianna Duarte - UESPI - 2012.2
Stored procedures EXECUTE Executar
Tabelas TRIGGER Ativar
UDT USAGE Usar
Tabelas, colunas REFERENCES Referenciar
Tabelas DELETE Remover
Tabelas, colunas UPDATE Modificar
Tabelas, colunas INSERT Criar
Tabelas, colunas,
mtodos
invocados
SELECT Ver
Aplica-se a Privilgio Proteao
Stored procedures EXECUTE Executar
Tabelas TRIGGER Ativar
UDT USAGE Usar
Tabelas, colunas REFERENCES Referenciar
Tabelas DELETE Remover
Tabelas, colunas UPDATE Modificar
Tabelas, colunas INSERT Criar
Tabelas, colunas,
mtodos
invocados
SELECT Ver
Aplica-se a Privilgio Proteao
Introduo
O que se espera do SGBD o mesmo
tratamento dada tentativa de acesso a
uma tabela inexistente (no such table).

Portanto, se um usurio tentar acessar uma
tabela que ele no tem privilgios para tal o
erro ser:
Either no such table or you have no
privilege on the table

Razo: Segurana
Lianna Duarte - UESPI - 2012.2
Introduo
O usurio tem um auth_ID que o identifica
Existe PUBLIC que representa todos usurios
Privilgios so atribudos/revogados:
Usurios
Papis (Roles)

O criador de um objeto o dono do objeto e assim tem
todos os privilgios sobre o objeto, podendo autorizar a
outros usurios alguns(ou todos) destes privilgios.
A opo with grant option, permite ao usurio que
recebeu um privilgio repassar para quem quiser.
Lianna Duarte - UESPI - 2012.2
17/12/2012
3
Introduo
Com respeito a DDL:
Um usurio pode executar qualquer comando
DDL no seu esquema que ele possui.

Um usurio NO pode executar nenhuma
operao DDL no esquema que ele no possui


Lianna Duarte - UESPI - 2012.2
Usurios e Papis
Identificador de usurio
Alguns SGBDs permitem que o usurio use o mesmo login e
senha do SO
Papis (Roles)
um identificador ao qual pode-se atribuir privilgios que no
existem a princpio. Ento pode-se atribuir a um usurio este
papel (conjunto de privilgios) com um nico comando
GRANT.
Pode-se inclusive ao criar um papel usar outros papis j
cadastrados.
Ex. PapelVendedor, PapelVendedorSapatos,
PapelVendedoFrutas.
Lianna Duarte - UESPI - 2012.2
Usurios e Papis
Pilha de autorizaes
Lianna Duarte - UESPI - 2012.2
Login no SO (null) Carlos
SQL Embutido Vendedor (null)
Stored procedure (null) Jos
- -
Role name AuthID
Papis - ROLES
Sintaxe SQL:1999
CREATE ROLE nome-papel
[WITH ADMIN {CURRENT_USER |
CURRENT_ROLE}]

Para remover um papel:
DROP ROLE nome-papel;
Lianna Duarte - UESPI - 2012.2
Papis - ROLES
Existem papis padres na maioria dos
SGBD:
DBA: permite desempenhar o papel de
administrados do banco de dados

Resource: permite criar seus prprios objetos

Connect: permite apenas se conectar ao
banco de dados, mas deve receber os
privilgios de algum para acessar objetos.
Lianna Duarte - UESPI - 2012.2
Regras de Autorizao
Expressam os mecanismos de autorizao em
relaes/vises/ stored procedures

So compiladas e armazenadas no dicionrio de
dados

So expressas em linguagem de alto nvel (Ex.
SQL)

Uma maneira do SGBD implementar estas regras
usar uma matriz de autorizao, onde cada linha
corresponde a um usurio a um usurio e cada
coluna corresponde a um objeto.

M[i,j] => conjunto de regras de autorizao que se
aplica ao usurio i com relao ao objeto j.
Lianna Duarte - UESPI - 2012.2
17/12/2012
4
Regras de Autorizao
Lianna Duarte - UESPI - 2012.2
Ex.:

All All All Ana
None None None Pedro
Select None None Maria
Select,
delete,
update
Update, select Select Joo
Projeto Departamento Empregado
O DBA fornece/revoga as autorizaes de leitura, insero, atualizao
e remoo aos usurios nas diversas tabelas/vises, e estes podem
repass-los caso receba autorizao para tal.
Autorizao em Banco de Dados
Um usurio que tem concedida alguma
forma de autoridade pode passar essa
autoridade para outros usurios.
Lianna Duarte - UESPI - 2012.2
DBA
U1
U2
U3
U4
U5
Revogao de Autorizao
Suponha que o administrador do banco de
dados decida revogar a autorizao do usurio
U1.





Uma vez que o usurio U4 tem a autorizao concedida
pelo usurio U1, a sua autorizao tambm ser
revogada.
No entanto, U5 mantm sua autorizao por ela ter sido
concedida tambm por U2.
Lianna Duarte - UESPI - 2012.2
DBA
U1
U2
U3
U4
U5
Revogao de Autorizao
Um par de usurio desonestos pode tentar
burlar as regras anteriores de revogao de
autorizao concedendo autorizao de um
para outro.
Lianna Duarte - UESPI - 2012.2
DBA
U1
U2
U3
Revogao de Autorizao
Se o administrador do banco de dados
revogar a autorizao de U2, este mantm
sua autorizao atravs de U3.
Lianna Duarte - UESPI - 2012.2
DBA
U1
U2
U3
Revogao de Autorizao
Se a autorizao revogada
subsequentemente de U3, U3 retm sua
autorizao atravs de U2.
Lianna Duarte - UESPI - 2012.2
DBA
U1
U2
U3
17/12/2012
5
Revogao de Autorizao
Para evitar problemas como esse, requeremos
que todas as arestas num grafo de autorizao
sejam parte de algum caminho originado no
administrador do banco de dados.
Lianna Duarte - UESPI - 2012.2
DBA
U1
U2
U3
Permisses de Acesso em SQL
Lianna Duarte - UESPI - 2012.2
Permisses de Acesso em SQL
O Comando grant usado para
conferir autorizao.
A forma bsica deste comando :
Lianna Duarte - UESPI - 2012.2

grant <lista de privilgios>
on <nome da relao ou viso>
to <lista de usurios>

Permisses de Acesso em SQL
Os privilgios a serem autorizados, em
SQL, com o comando grant so:

Select Autorizao leitura
Na linguagem SQL original era usado o
privilgio read
Insert Autorizao insero
Update Autorizao atualizao
Delete Autorizao eliminao
Lianna Duarte - UESPI - 2012.2
Permisses de Acesso em SQL
Index Autorizao ndice
References Autorizao recursos
Alter Autorizao alterao
Drop Autorizao remoo
Lianna Duarte - UESPI - 2012.2
Exemplos

grant select on agencia to U1, U2, U3

grant update on deposito to U1

grant references (nome-agencia)
on agencia to U1
Lianna Duarte - UESPI - 2012.2
17/12/2012
6
Permisses de Acesso em SQL
Em SQL, um usurio a quem garantido um
privilgio no est autorizado a conceder
aquele privilgio a outro usurio. A fim de
conceder um privilgio, e permitir ao
recebedor passar o privilgio a outros
usurios, a clusula with grant option
acrescentada ao comando grant apropriado.

grant select on agencia to U1 with grant
option
Lianna Duarte - UESPI - 2012.2
Associao de usurio a Role
GRANT role TO [user,] [role,]

Exemplo

Grant role_x TO user_x;
Lianna Duarte - UESPI - 2012.2
Permisses de Acesso em SQL
Para revogar a autorizao, o comando
revoke usado. Ele toma a forma
quase idntica quela do comando
grant:
Lianna Duarte - UESPI - 2012.2

revoke <lista de privilgios>
on <nome da relao ou viso>
from <lista de usurios>

Exemplos

revoke select on agencia from U1, U2,
U3

revoke update on deposito from U1

revoke references (nome-agencia) on
agencia from U1
Lianna Duarte - UESPI - 2012.2
Permisses de Acesso
Lianna Duarte - UESPI - 2012.2
Autorizao e Viso
Uma viso pode esconder dados que o
usurio no necessita, ou no deve, ver.

Esta propriedade serve tanto para simplificar
o uso do sistema como para aumentar a
segurana.
O uso do sistema simplificado porque o usurio
pode restringir sua ateno aos dados de
interesse.
A segurana fornecida se existir um mecanismo
para restringir o usurio a uma ou mais vises
pessoais.
Lianna Duarte - UESPI - 2012.2
17/12/2012
7
Autorizao e Viso
Os sistemas de banco de dados
relacionais tipicamente fornecem
segurana em dois nveis:

Relao: um usurio pode ter acesso a uma
relao permitido ou negado.
Viso: um usurio pode ter acesso aos dados
que aparecem em uma viso permitido ou
negado.

Lianna Duarte - UESPI - 2012.2
Auditoria
Lianna Duarte - UESPI - 2012.2
Auditoria
Lianna Duarte - UESPI - 2012.2
SGBD
Passwords e quotas de
usurios modificados
sem autorizao?
Tuplas suspeitas
inseridas na tabela
emp?
Tuplas da tabela
folhaPag removidas
indevidamente?
Deadlock por bloqueio
exclusivo de tabelas?
Soluo: Auditar, Investigar
??? Quem fez o qu e quando ???
Diretrizes de Auditoria
Lianna Duarte - UESPI - 2012.2
Defina as finalidades da auditoria
Atividade de banco de dados suspeita
Rena informaes histricas
Defina o que voc deseja auditar
Auditar usurios, instrues ou objetos
Por sesso
Com ou sem sucesso
Gerencie a trilha de auditoria
Monitorar o crescimento da trilha de auditoria
Proteger a trilha de auditoria de acesso no-autorizado
Diretrizes de Auditoria
Avaliar o propsito de auditoria, evitando auditoria
desnecessria.
Que tipo de atividade do BD voc suspeita?
Quem so os suspeitos?
Auditar, inicialmente, de forma genrica e ir
especializando.
Apesar do custo baixo deve-se limitar o n de
eventos auditados o mximo possvel para
minimizar:
O impacto de performance na execuo de
comandos auditados
O tamanho do audit trail
Lianna Duarte - UESPI - 2012.2
Audit Trail
Audit trail: componente de todo SGBD
que armazena histrico de informaes
de auditoria
Oracle: tabela SYS.AUD$
DB2: log DB2AUDIT.LOG
O SO tambm pode ter um audit trail.
Podendo ser usado em conjunto com o
do BD.
Lianna Duarte - UESPI - 2012.2
17/12/2012
8
Audit Trail
Algumas informaes do audit trail:
Nome do login do usurio no SO;
Nome do usurio no BD;
Identificador de sesso;Identificador do
terminal;
Nome do objeto do esquema acessado;
Operao executada ou tentada;
Cdigo de concluso da operao;
Data e hora.
Lianna Duarte - UESPI - 2012.2

You might also like