Segurança do banco de dados

Download Report

Transcript Segurança do banco de dados

Segurança em Banco de Dados
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
1
Segurança em Banco de Dados
DBA
2
Segurança em Banco de Dados
Conhecendo o papel e tarefas de um DBA
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.
3
Segurança em Banco de Dados
O papel do DBA
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.
4
Segurança em Banco de Dados
Tarefas do DBA
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:
5
Segurança em Banco de Dados
·
·
·
·
·
·
·
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;
6
Segurança em Banco de Dados
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).
7
Segurança em Banco de Dados
Figura 1. Responsabilidades do DBA, AS e AD.
8
Segurança em Banco de Dados
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.
9
Segurança em Banco de Dados
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.
10
Segurança em Banco de Dados
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):
11
Segurança em Banco de Dados
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.
12
Segurança em Banco de Dados
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.
13
Segurança em Banco de Dados
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.
14
Segurança em Banco de Dados
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.
15
Segurança em Banco de Dados
Figura 2. Gráfico de Impacto que cada área resulta na performance do banco de dados.
16
Segurança em Banco de Dados
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.
17
Segurança em Banco de Dados
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.
18
Segurança em Banco de Dados
É 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:
19
Segurança em Banco de Dados
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.
20
Segurança em Banco de Dados
Figura 3. Armazenamento de Dados utilizando a técnica de Cluster
21
Segurança em Banco de Dados
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.
22
Segurança em Banco de Dados
Figura 4. Armazenamento de Dados utilizando a técnica de Espelhamento onde temos
uma cópia exata dos discos em Servidores diferentes.
23
Segurança em Banco de Dados
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.
24
Segurança em Banco de Dados
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.
25
Segurança em Banco de Dados
Figura 5. Técnica Device Parity Protection, permite manutenção concorrente em caso de falha.
26
Segurança em Banco de Dados
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;
27
Segurança em Banco de Dados
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);
28
Segurança em Banco de Dados
Figura 6. Técnica de Contingência.
29
Segurança em Banco de Dados
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;
30
Segurança em Banco de Dados
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;
31
Segurança em Banco de Dados
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.
32
Segurança em Banco de Dados
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.
33
Segurança em Banco de Dados
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.
34
Segurança em Banco de Dados
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.
35
Segurança em Banco de Dados
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.
36
Segurança em Banco de Dados
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:
37
Segurança em Banco de Dados
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.
38
Segurança em Banco de Dados
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.
39
Segurança em Banco de Dados
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.
40
Segurança em Banco de Dados
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.
41
Segurança em Banco de Dados
FIM
42