Exploração de bases de dados: segurança

Propaganda
Sumário



Exploração de bases de dados
Segurança
Integridade
Gabriel David
FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL
Tel. 351-222041842 - Fax: 351-222000808
Email: [email protected]
URL: http://www.fe.up.pt
1
Segurança e integridade

Protecção dos dados




Segurança



direito à privacidade
direito de propriedade
direito à informação
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 - 2
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 - 3
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 - 4
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 - 5
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 - 6
Privilégios de objectos

Exemplo

GRANT UPDATE (telefone, salario) ON intranet.tabEmpregados
TO chefePessoal WITH GRANT OPTION
Privilégio de
objecto
ALTER
DELETE
EXECUTE
INDEX
INSERT
READ
REFERENCES
SELECT
UPDATE
Tabela Vista
X
X
X
Funções,
Sequência Pacotes
X
X
X
X
X
X
X
X
X
X
Tipos de
utilizador
X
X
Exploração - 7
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 - 8
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 - 9
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 - 10
BD estatísticas

Pretende-se obter informações de síntese sobre
grandes subconjuntos de dentidades, sem ter
acesso a dados individuais



Exemplos



recenseamentos
BD clínicas
“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 - 11
Exemplo

Pergunta
select salario from emp
where nome=‘Antão’
 resultado vetado, dimensão(resultado) < n

Pergunta k
select avg(salario) Mx, count(*) Nx from emp
where dept=‘Manutenção’
-- Nx > mínimo

Pergunta k+1
select avg(salario) My, count(*) Ny from emp
where 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 - 12
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
4 6 1 6 5
IRS
sexo
carro
distrito
localidade profissão



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)
Exploração - 13
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 - 14
Integridade


Protecção quanto a operações inválidas
restrições de integridade são extensões à LDD




validação




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
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
Exploração - 15
Recomendações


Bom projecto
procedimentos específicos para cada operação

restrições, triggers

rotinas de detecção de erros

Bom senso!
Exploração - 16
Download