You are on page 1of 37

Segurana em BD

IFPA Gesto e Segurana de BD Facilitador: Marcos Sadala

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 t t t t tambm vulnerveis a ataques b l i t maliciosos Portanto, Portanto os SGBDs trazem uma camada de segurana que visa compor toda o a se a arsenal de segurana da informao segu a a o ao numa corporao

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

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

Introduo
O subsistema de segurana b i t d responsvel por proteger o BD contra o acesso no autorizado. t t i d Formas de acesso no autorizado:
leitura no autorizada modificao no autorizada destruio no autorizada

Introduo
O subsistema de segurana b i t d responsvel por proteger o BD contra o acesso no autorizado. t t i d 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 p p g p g podem modificar preos dos DVDs Clientes usando o sistema de consulta, no devem ter acesso a outras funcionalidades (vendas, contabilidade, contabilidade folha de pagamento pagamento, etc) Apenas o pessoal da gerncia deve ter acesso s informaes dos p g (por exemplo: p empregados (p 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
C t l Controles de segurana no d computacionais
Poltica de segurana e plano de contingncia P i i Posicionamento seguro de t d equipamentos Controle de acesso fsico Manuteno

Introduo
D Duas abordagens para segurana de b d d dados:
Controle de acesso discreto:
Um dado usurio tem direitos de acessos diferentes (privilgios) em objetos diferentes Fl l mas limitado a quais direitos usurios Flexvel, li it d i di it i 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 temos:

Introduo
Privilgio
SELECT

Proteao
Ver

Aplica se Aplica-se a
Tabelas, colunas, mtods invocados i d Tabelas, colunas Tabelas, colunas T b l l Tabelas Tabelas, colunas U UDT Tabelas Stored d procedures

Criar Modificar M difi Remover Referenciar Usa Usar Ativar Executar

INSERT UPDATE DELETE REFERENCES U G USAGE TRIGGER EXECUTE

Introduo
O que se espera do SGBD o q e espe a mesmo tratamento dada tentativa de acesso a uma tabela inexistente (no such table). Portanto se um usurio tentar Portanto, acessar uma tabela que ele no tem privilgios para tal o erro ser: Either Either no such table or you have no privilege on the table Razo: Segurana

Introduo
O usurio tem um auth_ID que o identifica auth ID 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 ) privilgios. g todos) destes p A opo with grant option, permite ao usurio que recebeu um privilgio repassar para quem qu se quiser.

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

Usurios e Papis
Id tifi d Identificador d usurio de i
Alguns SGBDs permitem que o usurio use o mesmo login e senha do SO

Papis (Roles)
um identificador ao qual p q 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 cadastrados. Ex. PapelVendedor, PapelVendedorSapatos, PapelVendedoFrutas. p

Usurios e Papis
Pilha de autorizaes

AuthID Jos (null) Carlos

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

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

Papis - ROLES
E i t Existem papis padres na i d maioria dos SGBD:
DBA: permite desempenhar o papel de administrados do banco de dados Resource: permite criar seus prprios objetos bj Connect: permite apenas se conectar ao banco de dados, mas d b d d d deve receber b 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 di i i d d d 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 M[i,j] j t d d t i 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 di i diversas t b l / i tabelas/vises, e estes podem t d repass-los caso receba autorizao para tal.

Regras de Autorizao
O comando GRANT d GRANT lista-privilgios ON objeto TO lista-usurios [WITH GRANT OPTION] [GRANTED BY {CURRENT_USER|CURRENT_ROLE}] {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 [authID ...] ] | PUBLIC OBS.: authID pode ser login ou role A opo GRANTED BY indica se os privilgios p p g concedidos so autorizados pelo o usurio corrente ou pelo role.

Regras de Autorizao
A to i ndo papis Autorizando p pi 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 p g

Exemplos
/*Permite q em tenh /*Pe mite a quem tenha o papel p pel Gerente_Loja apenas ver a tabela empregados*/ GRANT SELECT ON EMPREGADOS TO GERENTE_Loja 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 Gerente Loja / /* Privilgios de insero */ / GRANT INSERT ON Produtos TO Ca a, Maria, Marta O Carla, a a, a ta /* Insero s em algumas colunas */ g GRANT INSERT (id, preco, descricao, tipo) ON Produtos TO Assistente

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

Exemplos
Um privilgio TRIGGER numa tabela p i ilgio n m t bel 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 i l i t d os privilgios i il i inclui todos i il i 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
R Revoga autorizao de privilgios t i d i il i Se o usurio A tiver concedido o privilgio P para o usurio B ento A poder, B, 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 p j , REVOKE update ON Empregado FROM Ana REVOKE DBA FROM Bruno

BD Estatsticos
Um banco de dados que permite q e pe mite queries que derivam informao agregadas(e.g. somas, 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 = e.g. Programador) AS X : COUNT(X) WITH (STATS WHERE SEXO = M AND FUNCAO = Programador AS X : SUM(X,SALARIO)

Auditoria

Auditoria A dito ia

Passwords e quotas de q usurios modificados sem autorizao?

Tuplas suspeitas p p inseridas na tabela emp?

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

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

Auditoria A dito ia
Ativa auditoria de banco de dados Executa comando

DBA
Analisa informaes de auditoria

Arq. de parmetros Especifica opes de dit i d 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 Di et i es de Auditoria A dito ia


Defina as finalidades da auditoria - Atividade de banco de dados suspeita - R i f Rena informaes histricas hi i Defina o que voc deseja auditar - Auditar usurios, instrues ou objetos usurios - Por sesso - Com ou sem sucesso Gerencie a trilha de auditoria - Monitorar o crescimento da trilha de auditoria di i - Proteger a trilha de auditoria de acesso no-autorizado

Diretrizes Di et i es de Auditoria A dito ia


Avaliar o propsito de auditoria, evitando auditoria desnecessria desnecessria.
Que tipo de atividade do BD voc suspeita? Quem so os suspeitos?

Auditar, inicialmente, de forma genrica e ir di i i i l d f i i especializando. Apesar do custo baixo deve-se limitar o n de eventos auditados o mximo possvel para minimizar: O impacto de p p performance na execuo de comandos auditados O tamanho do audit trail

Audit T ail A dit Trail


Audit trail: componente de todo p SGBD que armazena histrico de informaes de auditoria
Oracle: tabela SYS.AUD$ DB2: log DB2AUDIT.LOG g

O SO tambm pode ter um audit trail. Podendo ser usado em conjunto com o do BD.

Audit T ail A dit Trail


Algumas informaes do audit trail: g
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; p ; Cdigo de concluso da operao; Data e hora.