21
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

Segurança banco de dados

Embed Size (px)

Citation preview

Page 1: Segurança banco de dados

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

Page 2: Segurança banco de dados

Por que proteger um Banco de Dados?==============================================

2

• Informação é poder/diferencial/vantagem.Exemplos:

Page 3: Segurança banco de dados

Por que proteger um Banco de Dados?==============================================

3

• Informação é poder/diferencial/vantagem.Exemplos:

Page 4: Segurança banco de dados

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

Page 5: Segurança banco de dados

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.

Page 6: Segurança banco de dados

Medidas de controle• Controle de acesso.

• Controle de inferência.

• Criptografia de dados.

==============================================

6

Administrador de Banco de Dados

Page 7: Segurança 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

Page 8: Segurança banco de dados

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

Page 9: Segurança banco de dados

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

Page 10: Segurança banco de dados

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

Page 11: Segurança banco de dados

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

Page 12: Segurança banco de dados

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

Page 13: Segurança banco de dados

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

Page 14: Segurança banco de dados

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

Page 15: Segurança banco de dados

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

Page 16: Segurança banco de dados

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

Page 17: Segurança banco de dados

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

Page 18: Segurança banco de dados

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

Page 19: Segurança banco de dados

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

Page 20: Segurança banco de dados

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

Page 21: Segurança banco de dados

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