Sumário Exploração de bases de dados Segurança Integridade
description
Transcript of Sumário Exploração de bases de dados Segurança Integridade
1
Gabriel DavidFEUP - Rua dos Bragas, 4050-123 Porto - PORTUGALTel. 351-222041842 - Fax: 351-222000808
Email: [email protected]: http://www.fe.up.pt
Sumário Exploração de bases de dados Segurança Integridade
Exploração - 2
Segurança e integridade
Protecção dos dados direito à privacidade direito de propriedade direito à informação
Segurança protecção da BD contra a consulta, alteração ou destruição não
autorizadas ilegalidade
Integridade manutenção da correcção dos dados, quer sob o aspecto da
validade quer da consistência coerência
Exploração - 3
Segurança - sobre o utilizador
Normas de acesso ao centro de computação, arquivos de dados e terminais
Código de identificação e password
Num grande SGBD o processo das autorizações deve ser mais selectivo e flexível
Exploração - 4
Exemplo de acesso
Dados na BD de uma empresa EMPREGADO( nr, nome, morada, dept, salário, avaliação)
Tipos de acesso desejáveis acesso livre a toda a relação, para todas as operações acesso apenas à própria informação, sendo permitida a alteração
de apenas alguns valores acesso interdito acesso aos atributos nr, nome e salário, podendo alterar
salário, mas apenas entre as 9H e as 17H, num terminal do Serviço de Pessoal
possibilidade de aplicação de operadores estatísticos ao atributo salário, mas com interdição de consulta de registos individuais
autorização de consulta a toda a relação, mas com possibilidade de alteração apenas do atributo avaliação dos empregados que pertençam ao departamento de que o utilizador é director
Exploração - 5
Perfis
Excesso de restrições de acesso implica sobrecarga no SGBD verificação de autorização afecta todos os acessos
Habitualmente definem-se perfis de utilização aos quais se associam os utilizadores fundamental o recurso a vistas que funcionam como tabelas
virtuais e fornecem um nível de independência dos dados possibilidade de definição de procedimentos de autorização ou
de restrições específicos para um utilizador que se combinem com os genéricos e permitam controlo fino sobre o acesso
para além da segurança, criar um ambiente agradável ao utilizador, filtrando o irrelevante
uso de sinónimos (CREATE SYNONYM x FOR user.tabela)
Exploração - 6
Instrução SQL GRANT
Esta instrução define o tipo de acesso dos utilizadores aos objectos da BD que não criaram o criador de um objecto tem habitualmente todos os direitos
sobre ele
Exploração - 7
Privilégios de objectos
Exemplo GRANT UPDATE (telefone, salario) ON intranet.tabEmpregados
TO chefePessoal WITH GRANT OPTION
Privilégio de objecto Tabela Vista Sequência
Funções, Pacotes
Tipos de utilizador
ALTER X X DELETE X X EXECUTE X X INDEX X INSERT X X READ REFERENCES X SELECT X X X UPDATE X X
Exploração - 8
Papéis
Os papéis funcionam como conjuntos de privilégios de objectos ou de sistema que se podem conceder em bloco a um utilizador estruturam a definição dos perfis podem conceder-se (sub)papéis a papéis
Exploração - 9
Privilégios de sistema Exemplos de privilégios
CREATE SESSION - ligar à BD ALTER SESSION - mudar parâmetros da sessão CREATE ANY TABLE - criar tabelas DELETE ANY TABLE DROP ANY TABLE CREATE USER CREATE VIEW
privilégio pode ser dado a um utilizador directamente ou através de um papel
Exploração - 10
Segurança - sobre os dados
Senhas para acesso a ficheiros ou atributos, dependendo da operação a efectuar
estabelecimento de combinações sensíveis de características dos dados, associadas a condições a satisfazer pelo utilizador
programa de arbitragem de alta prioridade e bem protegido para autorizar cada acesso
Exploração - 11
BD estatísticas
Pretende-se obter informações de síntese sobre grandes subconjuntos de dentidades, sem ter acesso a dados individuais recenseamentos BD clínicas
Exemplos “percentagem de doentes cancerígenos fumadores?” SIM “o senhor Silva tem um cancro?” NÃO
Regra impedir impressão de resultados derivados de pequenos
conjuntos de dados
Exploração - 12
Exemplo Pergunta
select salario from empwhere nome=‘Antão’ resultado vetado, dimensão(resultado) < n
Pergunta kselect avg(salario) Mx, count(*) Nx from empwhere dept=‘Manutenção’ -- Nx > mínimo
Pergunta k+1select avg(salario) My, count(*) Ny from empwhere dept=‘Manutenção’ or nome=‘Antão’ -- Ny > mínimo salário(Antão) = Ny My - Nx Mx
Regra refinada impedir respostas com intersecções muito grandes com
perguntas anteriores (memorizar k perguntas)
Exploração - 13
Identificação parcial
Compromisso grau de segurança/sobrecarga
Respostas deliberadamente erradas a perguntas inválidas
Outra abordagem - pesquisa por identificação parcial registos com a média dos rendimentos de um pequeno grupo de
cidadãos com características semelhantes chave composta
pergunta só pode especificar 12 bits (menor relação: 222-212 = 1024) IRS dos homens de Gaia, Porto SIM (11 bits) IRS dos médicos de Aveiro com Rover NÃO (15 bits)
4 6 6 51distrito sexo
localidade profissãocarro
IRS
Exploração - 14
Segurança - sobre infiltradores
Vão para além do uso “normal” do sistema curto-circuito da aplicação e/ou do SGBD intercepção de mensagens nas linhas de comunicação roubo de um disco
Contra-medidas encriptação das mensagens encriptação das partes críticas da BD
• criptografia pode ser implementada em HW ou SW
Princípio dos sistemas de segurança situar o “custo” da violação dos dados ao mesmo nível do
benefício obtido confidencialidade + integridade + disponibilidade
Exploração - 15
Integridade
Protecção quanto a operações inválidas restrições de integridade são extensões à LDD
fazem parte do modelo de dados associadas a conjuntos de dados e certas operações de manipulação escritas na LMD ou numa linguagem hospedeira
validação gamas de valores (restrições CHECK) integridade das entidades (chave primária sem valores nulos) integridade referencial (inserção/apagamento)
consistência dependências funcionais (3NF + chave) valores calculados