Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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
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
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
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.:
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
SGBD
Tuplas da tabela folhaPag removidas indevidamente? Deadlock por bloqueio exclusivo de tabelas?
Auditoria
Ativa auditoria de banco de dados Executa comando
DBA
Analisa informaes de auditoria
Usurio
Processo de servidor Gera trilha de auditoria
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.