Você está na página 1de 37

Unidade 8: Segurana em BD

UFCG/CEEI/DSC Gesto e Segurana de BD Cludio Baptista

Introduo
Uma das maiores preocupaes em computao tem sido segurana da informao Nos dias atuais, com o uso da Internet os sistemas tornam-se onipresentes, entretanto tambm vulnerveis a ataques maliciosos Portanto, os SGBDs trazem uma camada de segurana que visa compor toda o arsenal de segurana da informao numa corporao

Introduo
Definio:
Segurana em Banco de dados diz respeito proteo do banco de dados contra ataques intencionais ou no intencionais, utilizando-se ou no de meios computacionais

reas envolvidas:
roubo e fraude perda de confidencialidade perda de privacidade perda de integridade perda de disponibilidade

Introduo
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

Introduo
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

O ABD tem plenos poderes para dar e revogar privilgios a usurios.

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

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
e.g. upgrading, virus checking, proxy, firewall, kerberos, certificados digitais, SSL, SHTTP, etc.

Introduo
Controles de segurana no computacionais
Poltica de segurana e plano de contingncia Posicionamento seguro de equipamentos Controle de acesso fsico Manuteno

Introduo
Duas abordagens para segurana de dados:
Controle de acesso discreto:
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:


cada dado rotulado com um certo nvel de classificao A cada usurio dado um certo nvel de acesso rgido, hierrquico

Em SQL:1999 temos:

Introduo
Privilgio
SELECT

Proteao
Ver

Aplica-se a
Tabelas, colunas, mtods invocados Tabelas, colunas Tabelas, colunas Tabelas Tabelas, colunas UDT Tabelas Stored procedures

Criar Modificar Remover Referenciar Usar Ativar Executar

INSERT UPDATE DELETE REFERENCES USAGE TRIGGER EXECUTE

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

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.

Introduo
Com respeito a DDL:
Um usurio pode executar qualquer comando DDL no esquema que ele dono. Um usurio NO pode executar nenhuma operao DDL no esquema que ele no o dono.

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.

Usurios e Papis
Pilha de autorizaes

AuthID Jos (null) Carlos

Role name (null) Vendedor (null) Stored procedure SQL Embutido Login no SO

Papis - ROLES
Sintaxe SQL:1999 CREATE ROLE nome-papel [WITH ADMIN {CURRENT_USER | CURRENT_ROLE}] Para remover um papel: DROP ROLE nome-papel;

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.

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.

Regras de Autorizao
Empregado Joo Select Departamento Update, select Projeto Select, delete, update Select None All

Maria Pedro Ana

None None All

None None All

O ABD 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.

Regras de Autorizao
O comando GRANT GRANT lista-privilgios ON objeto TO lista-usurios [WITH GRANT OPTION] [GRANTED BY {CURRENT_USER| CURRENT_ROLE}]

Regras de Autorizao
Continuao do comando GRANT Lista de privilgios: Privilgio1[, privilgio2 ...] |ALL PRIVILEGES Privilgios: SELECT [coluna,...] |SELECT (mtodo,...) |DELETE |INSERT [coluna,...] |UPDATE [coluna ...] |REFERENCES [(coluna ...)] |USAGE |TRIGGER |EXECUTE

Regras de Autorizao
Continuao do comando GRANT Lista de usurios: authID, [authID ...] | PUBLIC OBS.: authID pode ser login ou role A opo GRANTED BY indica se os privilgios concedidos so autorizados pelo o usurio corrente ou pelo role.

Regras de Autorizao
Autorizando papis GRANT role-name [, role-name ...] To lista-usurios [WITH ADMIN OPTION] [GRANTED BY {CURRENT_USER| CURRENT_ROLE} Um role-name pode ter um nmero ilimitado de privilgios ou outros roles

Exemplos
/*Permite a quem tenha o papel Gerente_Loja apenas ver a tabela empregados*/ GRANT SELECT ON EMPREGADOS TO GERENTE_Loja /*Privilgios de remoo com permisso de repassar o privilgio */ GRANT DELETE ON Empregados TO Carlos WITH GRANT OPTION

Exemplos
/* Update de uma coluna especfica */ GRANT UPDATE (preo) ON Produtos TO Gerente_Loja /* Privilgios de insero */ GRANT INSERT ON Produtos TO Carla, Maria, Marta /* Insero s em algumas colunas */ GRANT INSERT (id, preco, descricao, tipo) ON Produtos TO Assistente

Exemplos
/* Acesso pblico em views */ GRANT SELECT ON MinhaViso TO PUBLIC; /* referncias (foreign key) */ GRANT REFERENCES (titulo) ON FILMES TO Pedro;

Exemplos
Um privilgio TRIGGER numa tabela permite criar um trigger para aquela tabela O privilgio EXECUTE permite um usurio ou role executar uma determinada stored procedure. Exemplo: GRANT EXECUTE ON AumentaSalario TO isabel

Exemplos
ALL PRIVILEGES
Permite especificar uma lista de privilgios que inclui todos os privilgios de um objeto especfico no qual o usurio executando o GRANT tem o privilgio para dar o grant (recebeu WITH GRANT OPTION ou o dono) Ex.:

GRANT ALL PRIVILEGES ON Filmes to Patricia

Revoke
Revoga autorizao de privilgios Se o usurio A tiver concedido o privilgio P para o usurio B, ento A poder, posteriormente, revogar o privilgio P de B, atravs do comando REVOKE Sintaxe: REVOKE <privilgios> ON <relao/viso> FROM <usurios> Ex.: REVOKE delete ON projeto FROM Marta, Ana REVOKE update ON Empregado FROM Ana REVOKE DBA FROM Bruno

BD Estatsticos
Um banco de dados que permite queries que derivam informao agregadas(e.g. somas, mdias)
Mas no queries que derivam informao individual

Tracking
possvel fazer inferncias de queries legais para deduzir respostas ilegais
e.g. WITH (STATS WHERE SEXO=M AND FUNCAO = Programador) AS X : COUNT(X) WITH (STATS WHERE SEXO = M AND FUNCAO = Programador AS X : SUM(X,SALARIO)

Auditoria

Auditoria

Passwords e quotas de usurios modificados sem autorizao?

Tuplas suspeitas inseridas na tabela emp ?

SGBD
Tuplas da tabela folhaPag removidas indevidamente? Deadlock por bloqueio exclusivo de tabelas?

Soluo: Auditar, Investigar ??? Quem fez o qu e quando ???

Auditoria
Ativa auditoria de banco de dados Executa comando

DBA
Analisa informaes de auditoria

Arq. de parmetros Especifica opes de auditoria

Usurio
Processo de servidor Gera trilha de auditoria

Opes de auditoria Banco de dados Trilha de auditoria

Trilha de auditoria de S/O

Diretrizes de Auditoria
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

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.

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.