42
Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informação Pós-Graduação Software Livre Aplicado Pós-Graduação Analista de Sistemas Pós-Graduação Metodologia do Ensino Superior Mestrado Engenharia de Software (Andamento) Certificado ITIL Certificado COBIT Certificado CWSP

Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Embed Size (px)

Citation preview

Page 1: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

1

Prof: Thiago Moraes Martins

Bacharel em Sistemas de InformaçãoPós-Graduação Software Livre AplicadoPós-Graduação Analista de SistemasPós-Graduação Metodologia do Ensino SuperiorMestrado Engenharia de Software (Andamento)

Certificado ITILCertificado COBITCertificado CWSP

Page 2: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

2

DBA

Page 3: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

3

O Administrador de Banco de Dados (DBA) é o profissional responsável pela instalação, administração e suporte dos SGBDs, sempre assegurando segurança, disponibilidade e eficiência à base de dados. Para que todas essas tarefas sejam corretamente cumpridas, se faz necessário um ótimo conhecimento da arquitetura da base de dados, experiência e uma formação sólida.

Conhecendo o papel e tarefas de um DBA

Page 4: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

4

O DBA precisa manter um banco de dados corporativo “no ar” por todo o tempo que o sistema necessita, sem erros, com rapidez e confiabilidade. Ele precisa conhecer o banco e suas peculiaridades, pois ele é o responsável pela criação, manutenção e segurança do banco de dados da empresa. Isto inclui instalar o SGBD e o ajuste da infra-estrutura para permitir que as aplicações alcancem as bases de dados.

O papel do DBA

Page 5: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

5

As tarefas de um administrador de banco de dados variam dependendo do tipo de trabalho, da empresa, das políticas de Tecnologia da Informação (TI) e das características técnicas e potencialidades dos SGBDs que estão sendo administrados. A seguir estão relacionadas algumas tarefas que o DBA deve desempenhar:

Tarefas do DBA

Page 6: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

6

· Projeto e criação do banco de dados;· Ajuste e monitoramento de desempenho;· Backup e Recuperação;· Segurança do banco de dados;· Integridade de dados;· Suporte· Migração e atualização do SGBD;

Page 7: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

7

Mesmo não sendo diretamente um dos deveres do DBA, a infra-estrutura e as modelagens lógica e física do banco de dados, às vezes, acabam fazendo parte do trabalho. Estas funções são tradicionalmente de responsabilidade do administrador de sistema (AS) e administrador de dados (AD) ou projetista (ver Figura 1).

Page 8: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

8

Figura 1. Responsabilidades do DBA, AS e AD.

Page 9: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

9

Projeto e criação do banco de dados

Uma tarefa do DBA é projetar o banco de dados com o intuito de obter o máximo de performance, escalabilidade, flexibilidade e confiabilidade. Na fase inicial do projeto é definida a estrutura do banco de dados, levando em consideração o levantamento de requisitos. O esquema desenvolvido nessa etapa é chamado projeto conceitual e proporciona uma visão detalhada da organização.Na fase de projeto lógico, o esquema conceitual de

alto nível é mapeado para o modelo de implementação de dados do SGBD que será usado.

Page 10: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

10

No projeto físico é necessário, além das técnicas supracitadas, um conhecimento mais aprofundado sobre o SGBD que será utilizado para criar o banco. O DBA deve estabelecer regras para o ciclo de vida dos dados armazenados, a fim de evitar o crescimento exagerado do banco, que compromete seu desempenho, além de ocupar desnecessariamente espaço em disco.

Page 11: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

11

Ajuste e monitoramento de desempenho

O DBA deve certificar-se que o banco de dados é rápido e que a performance do servidor não afetará negativamente sua disponibilidade e usabilidade. O ajuste do banco de dados é um trabalho que exige bom senso e experiência. Existem algumas regras gerais, mas muitas são aprendidas com o uso, na base da tentativa e erro.

O ajuste de um de banco de dados pode ser dividido em quatro partes (ver Figura 2):

Page 12: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

12

Projeto: O projeto lógico de um banco de dados mal elaborado resulta, obviamente, em um projeto físico mal elaborado, o que geralmente degrada o desempenho. Não espere sua aplicação entrar em produção para ajustar o modelo. Nenhum dinheiro gasto com máquinas pode reparar um desempenho ruim causado por um projeto lógico mal elaborado.

Page 13: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

13

Sistema Operacional: O sistema operacional deve ser ajustado de acordo com a documentação do fabricante. Para plataformas Windows, os ajustes default são geralmente suficientes. Já plataformas Solaris e Linux necessitam de uma atenção especial.

Page 14: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

14

Banco de Dados: O ajuste do banco de dados abrange a memória alocada, o uso do disco, CPU, E/S e os processos do banco de dados. Envolve também a gerência e a manipulação da estrutura, tal como o design e o layout das tabelas e dos índices. Além disso, tuning de banco de dados envolve quase sempre a modificação da arquitetura a fim de otimizar o uso dos recursos de hardware disponíveis.

Page 15: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

15

Aplicação: O ajuste da aplicação está diretamente relacionado aos códigos SQL armazenados nos sistemas. O objetivo desses ajustes é fazer com que os comandos SQLs acessem de maneira eficiente o banco de dados.

Page 16: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

16

Figura 2. Gráfico de Impacto que cada área resulta na performance do banco de dados.

Page 17: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

17

Backup e recuperação

Para muitos profissionais de TI, a tarefa mais importante do DBA é manter a disponibilidade do banco: Do que adianta ter uma base de dados grande e funcional se a metade do tempo ela estiver inacessível?Uma boa arquitetura de backup e recuperação

deve incluir um plano de prevenção de desastres, procedimentos e ferramentas que auxiliem na recuperação, além de procedimentos e padrões para realizá-la.

Page 18: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

18

Há dois tipos de backup:

Os backups físicos e os backups lógicos. Backup físico é a operação em que os arquivos físicos do banco de dados são copiados para uma mídia qualquer, geralmente nas chamadas fitas de backup que possuam uma grande capacidade de armazenamento e que “fisicamente” poderão ser repostos a qualquer tempo. Já o backup Lógico é feito através de um utilitário do próprio banco de dados, responsável por ler as tabelas/tablespaces indicadas e gravá-las em outro lugar.

Page 19: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

19

É importante notar que o backup deve estar armazenado distante dos servidores para não ser atingido em caso de uma calamidade (incêndio, desabamento, entre outras). O recovery deve estar acessível e próximo de onde desejamos efetuá-lo. Armazenamento de dados

Muitas formas de maximizar a segurança foram criadas com base em novas tecnologias, hardwares e métodos de apoio aos processos de backup e recuperação, tais como:

Page 20: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

20

Clustering: Também conhecido como Cluster, pode ser definido como um sistema onde dois ou mais computadores trabalham de maneira conjunta para realizar processamento pesado, como visto na Figura 3. Os computadores dividem as tarefas de processamento e trabalham como se fossem um único computador. Ele é desenhado de tal forma que uma falha em um dos componentes seja transparente aos usuários.

Page 21: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

21

Figura 3. Armazenamento de Dados utilizando a técnica de Cluster

Page 22: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

22

Mirrored (espelhamento): Os discos são espelhados, ou seja, é feita uma cópia exata de cada um em servidores diferentes. Em caso de falhas ou perda de um disco, o outro assume inteiramente o papel até a substituição do disco com problemas. Tem como vantagem não gastar tempo para a cópia, pois ocorre em tempo real, mas necessita de backup em caso de falha nos dados do servidor principal. É necessário pelo menos dois servidores, como mostra a Figura 4. 

Page 23: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

23

Figura 4. Armazenamento de Dados utilizando a técnica de Espelhamento onde temos uma cópia exata dos discos em Servidores diferentes.

 

Page 24: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

24

Device Parity Protection: A proteção de paridade tem a tecnologia similar ao do RAID-5 (redundant array of independent disks). Ela permite a manutenção concorrente quando houver falha em um dos discos, pois divide toda a informação que chega e distribuí de um modo idêntico para todos os discos, como pode ser visto na Figura 5. Vale a pena lembrar que essa tecnologia não substitui a estratégia de backup e recovery.

Page 25: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

25

A proteção de paridade pode impedir que seu sistema pare quando determinados tipos de falhas ocorrem. Pode diminuir o tempo de recuperação para determinados tipos de falhas, porém não protege de muitos tipos, tais como um desastre local ou um erro do operador ou do programador.

Page 26: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

26

Figura 5. Técnica Device Parity Protection, permite manutenção concorrente em caso de falha.

Page 27: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

27

Dual System: Dois sistemas, onde um deles (primário) atualiza constantemente o outro (secundário), permitindo assim a existência de uma base de dados duplicada e atualizada. Quando o sistema primário falha, o sistema secundário assume o seu papel. Técnica semelhante ao espelhamento;

Page 28: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

28

Contingência: Modelo de processos que visa implementar medidas para garantir a disponibilidade dos principais serviços e a continuidade dos negócios vitais da companhia em situações de desastre ou contingência. Em caso de necessidade, todo o sistema pode ser transferido para uma instalação contratada junto a um provedor de serviços de contingência (data center). Essa mudança envolve o chaveamento dos links de comunicação entre o site de contingência e todas as filiais do cliente (ver Figura 6);

Page 29: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

29

Figura 6. Técnica de Contingência.

Page 30: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

30

Tipos de Backups

Cópia simples: o backup é chamado de simples quando não envolve compressão de dados;

Normal: consiste em armazenar tudo que foi solicitado, podendo ainda ser feita a compressão dos dados ou não. Este método também é chamado de backup completo quando são gravadas todas as informações existentes no banco. A desvantagem desse método é que se gasta muito tempo e espaço em mídia;

Page 31: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

31

Diário: a cópia é feita checando-se a data. Armazenam-se todos os arquivos que foram criados ou alterados na mesma data em que se faz o backup. Gasta-se menos tempo e espaço em mídia, mas são armazenados apenas os arquivos criados ou alterados no dia;

Diferencial: só é realizado após um backup normal. Gravam-se as diferenças entre os dados gravados no último backup normal e a data de gravação do backup diferencial. Apresenta como vantagem menos tempo e espaço em mídia, mas necessita do backup normal inicial;

Page 32: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

32

Incremental: necessita do backup normal, e visa o incremento da informação após a criação do backup normal. Ao contrário do diferencial, se for feito um backup incremental após outro incremental, o segundo backup não irá conter os dados do primeiro.

Page 33: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

33

Caso seja preciso restaurar o backup, será necessário restaurar o backup normal e todos os incrementais na ordem em que foram gravados, isto é, uma vez feito o backup normal, o incremental só irá gravar os dados alterados ou criados após o backup anterior, seja ele normal ou incremental. Tem-se como vantagem menor gasto de tempo e espaço em mídia, mas necessita do backup normal inicial e de todos os backups incrementais feitos após o normal.

Page 34: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

34

Segurança do banco de dados

Neste item, o trabalho do DBA deve ser aterrado nos fundamentos da segurança de TI. A segurança deve ser projetada no banco de dados e nas aplicações. Isto envolve criar usuários no banco e determinar o nível apropriado de segurança para cada um.

Integridade de dados

Para assegurar a integridade dos dados, o DBA executa regras de integridade usando características do SGBD. Há três tipos principais de integridade: física, semântica e interna.

Page 35: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

35

Integridade Física

A integridade física pode ser assegurada usando características do SGBD, como, domínios e tipos de dados. O DBA pode também utilizar constraints para delimitar o tipo de dado que pode ser armazenado em determinadas colunas. 

Page 36: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

36

 Integridade Semântica

Um exemplo de integridade semântica é a qualidade dos dados na base de dados. O resultado desse armazenamento incorreto é o dado armazenado de forma incoerente e redundante. As procedures ajudam a manter a integridade dos dados.

Page 37: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

37

Integridade Interna

Neste caso, o SGBD utiliza-se de estruturas e código internos para manter os links, ponteiros e identificadores. Na maioria dos casos, o SGBD manterá estas estruturas sem precisar do auxílio do DBA, porém este necessita estar ciente de sua existência e como lidar quando o SGBD falha. A integridade interna do SGBD é essencial nas seguintes áreas:       

Page 38: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

38

Consistência do índice. Um índice não passa de uma lista ordenada com ponteiros direcionados aos dados das tabelas no banco de dados. Se por alguma razão o índice perder o sincronismo com os dados, o acesso indexado pode não retornar os dados apropriados. O DBA possui ferramentas para verificar e remediar estes tipos de erros.

Page 39: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

39

Consistência do ponteiro. Às vezes, objetos grandes de multimídia não são armazenados nos mesmos arquivos físicos que outros dados. Conseqüentemente, o SGBD requer estruturas de ponteiro que mantenham o sincronismo desses dados.

Consistência do backup. Alguns produtos do SGBD ocasionalmente fazem backup errado ou inapropriado. É essencial identificar estes cenários e tomar ações corretivas.

Page 40: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

40

Suporte

Os DBAs precisam trabalhar próximo aos membros da equipe técnica para assegurar um alto desempenho de todo o banco de dados. Além disso, em conjunto com as tarefas de Administração de Sistema Operacional, o DBA dará suporte e resolverá problemas associados com o SGBD, como alocação de recurso e o número de instâncias que serão criadas. 

Page 41: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

41

Migração e atualização do SGBD

O DBA também é responsável por controlar a migração das releases do SGBD. Após compreender as características oferecidas e a estabilidade da release, deve-ser decidir o melhor momento para a instalação.

Page 42: Segurança em Banco de Dados 1 Prof: Thiago Moraes Martins Bacharel em Sistemas de Informa ç ão P ó s-Gradua ç ão Software Livre Aplicado P ó s-Gradua ç

Segurança em Banco de Dados

42

FIM