Upload
arthur-marques-de-oliveira
View
332
Download
1
Embed Size (px)
Citation preview
Segurança em Banco de Dados
Autores:Arthur M. de Oliveira, Crísthel L. Hanauer,
Vanessa Christ e Vanessa C. Conceição.Professor:
Tulio Lima Basegio
Por que proteger um Banco de Dados?==============================================
2
• Informação é poder/diferencial/vantagem.Exemplos:
Por que proteger um Banco de Dados?==============================================
3
• Informação é poder/diferencial/vantagem.Exemplos:
Tipo de ameaça - Injeção de SQL
• Manipulação de SQL;
• Exemplo 1: durante o login de um usuário.• Nome de usuário Pedro• Senha10 or 1 =1 • query SELECT * usuarios WHERE nome=“Pedro” and senha= “10 or 1 = 1”
• Exemplo 2: • Id do usuário 10; DROP TABLE mantimentos• query SELECT * FROM usuarios WHERE idUsuario = 10; DROP TABLE
mantimentos
==============================================
4
Princípios de segurança de um SGBD• Confidencialidade;
Garantia de acesso à informação apenas para pessoas autorizadas.
• Integridade;A informação só pode ser alterada pelas pessoas autorizadas.
• Disponibilidade;Garantia que as pessoas autorizadas tenham acesso à informação sempre que necessário.
==============================================
5
Garantir a segurança dos dados é fazer com que as informações permaneçam confidenciais, íntegras e disponíveis para o usuário
certo no tempo certo.
Medidas de controle• Controle de acesso.
• Controle de inferência.
• Criptografia de dados.
==============================================
6
Administrador de Banco de Dados
Controle de Acesso• Criação de conta;
• concessão de privilégio;
• revogação de privilégio;
• atribuição de nível de segurança.
==============================================
7
Controle de Inferência
• Mecanismo de segurança para banco de dados estatísticos;
• a segurança nestes BDs deve assegurar que informações individuais não possam ser acessadas;
• recuperação de informações estatísticas gerais.
==============================================
8
Criptografia de Dados• Conversão de um texto limpo para o formato de texto cifrado;
• consiste em aplicar um algoritmo de criptografia aos dados, usando alguma chave de criptografia pré-especificada;
• algoritmos de chave simétrica:• Mesma chave para criptografia e decriptografia;• desvantagem: compartilhamento da chave;• exemplos: Máquina Enigma, DES (Data Encryption Standard).
• criptografia de chave pública (assimétrica):• Chave pública - criptografia;• chave privada - decriptografia.
==============================================
9
Autoridades• As autoridades fornecem um método de agrupar privilégios e
controlar o nível de acesso dos administradores e operadores da base de dados com relação à manutenção e operações permitidas.
• As especificações da base de dados estão armazenadas em catálogos da própria base de dados.
• As autoridades do sistema estão associadas a membros de grupos e armazenadas no arquivo de configuração administrativa do banco de dados. Este arquivo define as concessões de acesso e o que poderá ser executado de acordo com cada grupo.
==============================================
10
Controle de acesso utilizando Triggers• Utilizando as Triggers é possível criar mecanismos de segurança
mais complexos que podem ser disparados cada vez que um evento é chamado.
• O comando INSERT na tabela é exemplo de um evento que pode ser usado para disparar uma Triggers. No momento que um usuário tenta inserir dados em uma tabela e os mesmos não são validados pela função contida na trigger, um erro é sinalizado pela própria trigger e o usuário não consegue inserir os dados. Ou seja, com as triggers também é possível realizar um controle de segurança.
==============================================
11
Controle de acesso usando Views • As VIEWS são uma forma de controle de acesso.
• Utilizadas para restringir o acesso direto aos dados.
• Permite acesso de usuário concedendo privilégios, ocultar linhas e colunas de informações confidenciais/restritas na tabela original das do banco.
• Privilégios e concessões definidos somente na VIEW não afetam a tabela base sendo o acesso dos usuários delimitado pela VIEW, a qual é gerada criando um subconjunto de dados na tabela referenciada.
==============================================
12
Controle de acesso discricionário baseado na concessão e revogação de privilégios
• Utiliza-se a concessão e revogação de privilégios. Os SGBDs relacionais que são mais atuais usam algumas variações dessa técnica e assim o DBA (Administrador do Sistema) e os demais usuários podem usar-se dessas ações dos privilégios
• Tipos de privilégios discricionários:
• identificador de autorização, significa uma conta de usuário (ou grupo de usuários) e para se descomplicar, usa-se nomes como: usuário ou conta no lugar de identificador de autorização. O SGBD precisa fornecer acesso seletivo a cada relação no banco de dados com base em contas específicas.
==============================================
13
Controle de acesso discricionário baseado na concessão e revogação de privilégios
• Há duas possibilidades para atribuição de privilégios na utilização do sistema de banco de dados:
• Nível de Conta:• O DBA(Administrador do Banco de Dados) especifica os privilégios em particular que cada conta mantém
independentemente das relações no banco de dados
• Nível de Relação (ou tabela): • Nesse nível, o DBA pode controlar o privilégio para acessar cada relação ou visão individual no banco de
dados.
• Os comandos existentes no nível de conta para ter estes “privilégios” são os seguintes:• CREATESCHEMA ou CREATE TABLE: cria um esquema ou relação da base; • CREATE VIEW e ALTER: aplica mudanças de esquema como a inclusão ou remoção de atributos das
relações;• DROP exclui: relações ou visões; • MODIFY: inseri, exclui ou atualiza tuplas; • SELECT recupera informações do bando de dados usando uma consulta SELECT.
==============================================
14
Controle de acesso discricionário baseado na concessão e revogação de privilégios
• No nível de relação, pode se aplicar a relações da base ou relações virtuais (visões)
• Os privilégios que estão aí compreendidos, descrevem para cada usuário as relações individuais sobre as quais cada tipo de comando pode ser aplicado. Alguns privilégios também se referem a colunas (atributos) individuais das relações.
• Em SQL, os seguintes tipos de privilégios podem ser concedidos em cada relação individual R:
• SELECT (recuperação ou leitura): dá o privilégio de recuperação à conta.
• Privilégios de modificação em R:
• Isso dá à conta a capacidade de modificar as tuplas de R. Em SQL, isso inclui três privilégios: UPDATE, DELETE e INSERT.
==============================================
15
Controle de acesso discricionário baseado na concessão e revogação de privilégios
• Especificando privilégios por meio do uso de visões.
• O mecanismo de visões (views) é um importante mecanismo de autorização discricionário por si só.
• Revogação de privilégios:
• Em SQL, um comando REVOKE está abrangido ali com o objetivo de cancelar privilégios.
• Propagação de privilégios usando a GRANT OPTION
• Concede permissões em um protegível a uma entidade.
• Especificando limites na propagação de privilégios:
• Propagação horizontal significa que limitando-a para um número inteiro i que uma conta B que recebe a GRANT OPTION pode dar privilégio a, no máximo, i outras contas.
• A propagação vertical limita a profundidade da concessão de privilégios, ou seja, sem GRANT OPTION.
==============================================
16
Controle de acesso discricionário baseado na concessão e revogação de privilégios
• Comparando os controles de acesso discricionário e obrigatório:
• As políticas do controle de acesso discricionário (DAC) possuem um alto grau de flexibilidade, que as torna adequadas para uma grande variedade de domínios de aplicação.
• Desvantagem: vulnerabilidade a ataques maliciosos, como cavalos de Troia embutidos nos programas de aplicação.
• Qual o motivo?
• Os modelos de autorização discricionários não impõem qualquer controle sobre como a informação é propagada e utilizada depois de ter sido acessada pelos usuários autorizados a fazer isso.
==============================================
17
Controle de acesso discricionário baseado na concessão e revogação de privilégios
• Controle de acesso baseado em papeis:
• Basicamente organizacionais, ou seja, não é só para usuários individuais.
• São criados a partir dos seguintes comandos:
• CREATE ROLE e DESTROY ROLE.
• Atribuição e revogação dos privilégios dos papeis, também para usuários individuais somente quando é bem necessário:
• GRANT e REVOKE
==============================================
18
Controle de acesso discricionário baseado na concessão e revogação de privilégios
• Controle de acesso por XML:
• Existem assinatura digitais e padrões de criptografia no XML;
• Assinatura digital: é diferente de outros em seu aspecto de suporte pois pode assinar partes específicas da árvore em XML
• Ainda essa assinatura se utiliza de uma técnica chamada canonização para assegurar que duas instâncias de um texto produzam um resumo igual para assinatura, ainda que a ideia delas sejam um pouco diferentes.
• O padrão XML Encryption é usado para dar segurança a comunicações entre serviços na web por muitas empresas, incluindo IBM, Microsoft e Red Hat
• Dentre vários aspectos na área do suporte , encontra-se o segundo: controle de acesso baseado em conteúdo:
• Há a possibilidade de permitir que alguém expresse políticas de controle de acesso que levem em consideração o conteúdo do objeto de proteção.
==============================================
19
Controle de acesso discricionário baseado na concessão e revogação de privilégios
• O último quesito está na originalidade dos sujeitos:
• O que é necessário se fazer presente políticas de controle de acesso baseadas nas características e qualificações do usuário, em vez de nas características específicas e individuais (por exemplo, Ids de usuário).
• A linguagem de marcação do serviço de diretórios (DSML) basicamente se constitui de uma representação da informação de serviço de diretório na sintaxe XML.
• Baseado em que?
• Em um firmamento para um padrão de comunicação com serviços de diretório que serão responsáveis por oferecer e autenticar credenciais do usuário.
==============================================
20
Referênciashttp://www.diegomacedo.com.br/conceitos-sobre-seguranca-em-banco-de-dados/
http://pt.slideshare.net/artinfo/segurana-em-banco-de-dados
http://www.devmedia.com.br/artigo-sql-magazine-27-seguranca-em-banco-de-dados-conceitos-fundamentais/6903
http://www.lyfreitas.com.br/ant/artigos_mba/artbancodedados.pdf
http://g1.globo.com/bom-dia-brasil/noticia/2014/08/cada-14-segundos-uma-tentativa-de-golpe-com-dados-roubados-e-registrada-no-brasil.html
MACÊDO, D. Conceitos sobre Segurança em Banco de Dados. Disponível em: <http://www.diegomacedo.com.br/conceitos-sobre-seguranca-em-banco-de-dados/>. Acesso em: 03 nov. 2014. MACÊDO, D. Chaves Simétricas e Assimétricas. Disponível em: <http://www.diegomacedo.com.br/chaves-simetricas-assimetricas/>. Acesso em: 03 nov. 2014.ELMASRI, R.; NAVATHE, S. Sistema de banco de dados. São Paulo, Editora Pearson Addison Wesley, 2011. p. 562 - 588
==============================================
21