Especialização
em Segurança
da Informação
Segurança no Armazenamento
7. Segurança em Banco de Dados
Márcio Aurélio Ribeiro Moreira
[email protected]
http://si.lopesgazzani.com.br/docentes/marcio/
Objetivos do capítulo
Apresentar a arquitetura padrão dos DBMS
Apresentar os principais conceitos de DBMS
Apresentar a arquitetura de processamento
e armazenamento de bancos de dados
Mostrar os principais problemas de
segurança de armazenamento dos DBMS
Apresentar as recomendações para resolver
ou evitar os problemas apresentados
Márcio Moreira
6. Segurança em Banco de Dados – Slide 2
Segurança no Armazenamento de Informações
Arquitetura padrão
Abaixo apresentamos a macro arquitetura
padrão dos DBMS ou SGBD:
DBMS = Database Management System
SGBD = Sistema Gerenciador de Banco de Dados
Nota: A arquitetura apresentada não tem nenhum foco
em segurança, apenas apresenta os nós envolvidos
Márcio Moreira
6. Segurança em Banco de Dados – Slide 3
Segurança no Armazenamento de Informações
Níveis de segurança dos dados
Humano
Interfaces
Corrupção
Usuário
Falta de
cuidado
Aplicação
Engenharia
Social
Rede
Aplicação
DBMS
Físico
Sistema Operacional
Márcio Moreira
6. Segurança em Banco de Dados – Slide 4
Segurança no Armazenamento de Informações
Iterações com o DBMS
Usuário ou formulários:
Consultas
Comandos
Processamento
Dados
Dados
Mensagens
Comandos SQL (consultas) em texto plano
Aplicações ou DBA (Database Administrator):
Transações
Comandos SQL (procedimentos) em texto plano
Resultados:
Result sets: conjuntos resultantes
Normalmente tabelas ou mensagens de retorno
Também em texto plano
Márcio Moreira
6. Segurança em Banco de Dados – Slide 5
Segurança no Armazenamento de Informações
Principais conceitos dos DBMS
 Data Model (Modelo de Dados):
 É uma coleção modelos que descrevem os dados
 O modelo relacional é o mais utilizado atualmente
 Schema (Esquema):
 É a descrição de uma coleção particular de dados
 Modelo relacional:
 Relação:
 Esquema:
 Tuplas:
 Atributos:
Tabela X
Equivalente a uma tabela
Conjunto de colunas Linha 1:
Linha 2:
Linhas
...
Colunas
Linha N:
Márcio Moreira
6. Segurança em Banco de Dados – Slide 6
Coluna A
Coluna B
Dado1A
Dado1B
Dado2A
Dado2B
...
...
DadoNA
DadoNB
Segurança no Armazenamento de Informações
Níveis de abstração
View (visão):
Como cada usuário vê os
dados que ele tem direito de
acesso
Esquema conceitual:
Visão 1
Visão 2
Visão 3
Esquema Conceitual
Estrutura lógica dos dados
Esquema físico:
Estrutura física dos arquivos
e índices utilizados
Márcio Moreira
6. Segurança em Banco de Dados – Slide 7
Esquema Físico
Banco de Dados
Segurança no Armazenamento de Informações
Propriedades dos DBMS
 Independência dos dados:
 Independência lógica:
 Protege os dados de mudanças na estrutura lógica
 Independência física:
 Protege os dados de mudanças na estrutura física
 Transações:




Atomicidade:
Consistência:
Integridade:
Durabilidade:
A transação é concluída totalmente ou não é feita.
Se estava consistente, continuará após a transação.
Todas as restrições de integridade são respeitadas.
Se a transação for concluída, não será perdida.
 Controle de Concorrência:
 Isolamento:
Márcio Moreira
Cada usuário deve “imaginar” que está sozinho.
6. Segurança em Banco de Dados – Slide 8
Segurança no Armazenamento de Informações
Abrindo a arquitetura padrão
Buffer
Browser
Web
Server
Query
Processor
Files
Márcio Moreira
Aplicação
Transaction
Driver
DBMS
Driver
Manager
6. Segurança em Banco de Dados – Slide 9
Segurança no Armazenamento de Informações
Processador de consultas
Query Processor
Query Parser
Query
Rewriter
Módulos responsáveis pelas
iterações do DBMS:
Query Parser:
Analisador de consultas
Query Rewriter:
Tradutor de consultas
Query
Optimizer
Query Optimizer:
Otimizador de consultas
Query
Executor
Márcio Moreira
Query Executor:
Executor de consultas
6. Segurança em Banco de Dados – Slide 10
Segurança no Armazenamento de Informações
Buffer
Buffer
Buffer
Manager
Módulos do buffer:
Buffer Manager:
Gerenciador de buffers
Buffer Pool:
Buffer em memória de páginas do
banco de dados no disco
Buffer Pool
Márcio Moreira
Este sub-sistema é fundamental
para o desempenho do
gerenciador
6. Segurança em Banco de Dados – Slide 11
Segurança no Armazenamento de Informações
Transaction
Transaction
Sub-sistema de transações:
Transaction Manager:
Transaction
Manager
Gerenciador de transações:
 Garante: Atomicidade, Consistência,
Integridade e Durabilidade
Gerencia acessos concorrentes:
Lock Manager
 Garante: Isolamento.
Lock Manager:
Gerenciador de bloqueios
Lock Tables
Lock Tables:
Controle (em memória) de tabelas
bloqueadas
Márcio Moreira
6. Segurança em Banco de Dados – Slide 12
Segurança no Armazenamento de Informações
Files
Files
Storage
Manager
Sub-sistema de arquivos:
Storage Manager:
Gerenciador de armazenamento
Files & Access Methods:
Files &
Access
Methods
Logging &
Recovery
Márcio Moreira
Gestão dos métodos de acesso e
arquivos do DBMS
Logging & Recovery:
Gestão dos arquivos de logs e
recuperação em caso de falhas
6. Segurança em Banco de Dados – Slide 13
Segurança no Armazenamento de Informações
Simplificação da arquitetura padrão
Processando uma consulta:
Buffer
Files
Página 3
...
Página 1
...
Página 2
...
Página 3
...
Márcio Moreira
Resposta
Resposta
Resposta
Consulta
Consulta
Consulta
Browser
Web
Server
Query
6. Segurança em Banco de Dados – Slide 14
Processor
Página 4
...
Página n
...
Segurança no Armazenamento de Informações
Perspectiva de segurança atual
Área ≈ segura:
Pode ser cifrada
Área insegura:
Texto Plano
Área ≈ segura:
Buffer
Pode ser
cifrada
Página 3
...
Abrangência:
Usuário
Márcio Moreira
Abrangência:
Usuário(s)
Abrangência:
Todos as
Transações
Página 1
...
Abrangência:
Página 2
...
Todos os Dados
Página 3
...
Resposta
Resposta
Resposta
Consulta
Consulta
Consulta
Browser
Web
Server
Query
6. Segurança em Banco de Dados – Slide 15
Área insegura:
Files
Texto Plano
Processor
Página 4
...
Página n
...
Segurança no Armazenamento de Informações
Estratégia de segurança no servidor
 Riscos:
 Inspeção de memória:
 Pegar páginas na memória
 Pegar chaves usadas no armazenamento:
 Compromete todos os dados
Buffer
Files
Manter
Página i
Página 1
...
...
Páginas em
Página j
...
Texto Plano
 Produtos:
Página 2
Armazenar
...
Página 3
Páginas
...
Página 4
Criptografadas
 Oracle, DB2, SQL Server, Sybase, Informix, etc.
...
Processar
Browser
Web
Server
Query em
Consultas
Processor
Página n
...
Texto Plano
Márcio Moreira
6. Segurança em Banco de Dados – Slide 16
Segurança no Armazenamento de Informações
Estratégia de segurança média
Riscos:
Inspeção de memória:
Pegar dados das consultas
Pegar chaves usadas no
armazenamento:
 Compromete todos os dados
Browser
Web
Server
Buffer
Files
Manter
Página i
Página 1
...
...
Páginas
Página j
...
Cifradas
Página 2
Armazenar
...
Página 3
Páginas
...
Página 4
Criptografadas
...
Processar
Query em
Consultas
Processor
Página n
...
Texto Plano
Márcio Moreira
6. Segurança em Banco de Dados – Slide 17
Segurança no Armazenamento de Informações
Estratégia de segurança máxima
Benefício:
Ausência de exposição
Buffer
Files
Manter
Página i
Página 1
...
...
Páginas
Página j
...
Custo:
Cifradas
Implementação complexa
Queda de performance
Browser
Web
Server
Página 2
Armazenar
...
Página 3
Páginas
...
Página 4
Criptografadas
...
Processar
Query
Consultas
Processor
Página n
...
Cifradas
Márcio Moreira
6. Segurança em Banco de Dados – Slide 18
Segurança no Armazenamento de Informações
Custo do processamento cifrado
Execução de SELECT:
Seqüencial:
Por índice:
Proposto em 2002 por Márcio, João e Ilmério
Pesa o processamento, mas está se viabilizando
2006: Ainda era experimental Fonte: Tingjian Ge and Stan Zdonik
Márcio Moreira
6. Segurança em Banco de Dados – Slide 19
Segurança no Armazenamento de Informações
Pilares de segurança no DBMS
 Confidencialidade:
 Alguns dados são acessíveis só por alguns usuários
 Ataques (roubos) podem revelar segredos, senhas, etc.
 Privacidade:
DBMS
Disponibilidade
 Disponibilidade:
Integridade
 Os dados devem ser válidos e não corrompidos
 Ataques (fraudes) causam danos à organização
Privacidade
 Integridade:
Confidencialidade
 Dados pessoais não podem ser revelados
 Ataques podem resultar em ações legais
 As informações devem estar acessíveis quando necessárias
 Ataques ou problemas afetam os resultados do negócio
Márcio Moreira
6. Segurança em Banco de Dados – Slide 20
Segurança no Armazenamento de Informações
Ameaças à segurança do DBMS
 T.ACCESS:
 Acesso não autorizado à base de dados
 T.DATA:
 Acesso não autorizado à informações
 T.RESOURCE:
 Consumo excessivo de recursos
 T.ATTACK:
 Ataque não detectado
 T.ABUSE.USER:
 Abuso no uso de privilégios dos usuários
Márcio Moreira
6. Segurança em Banco de Dados – Slide 21
Segurança no Armazenamento de Informações
Objetivos de segurança
 O.I&A.TOE:
 Toda operação no DB deve ser Identificada e Autenticada
 O.ACCESS:
 O DBA e os usuários têm direito de acesso a seus objetos
 O.AUDIT:
 O DBMS deve registrar eventos de segurança relevantes
 O.RESOURCE:
 O DBMS deve controlar o uso dos recursos do DB
 O.ADMIN.TOE:
 O DBMS deve prover recursos de administração ao DBA
Márcio Moreira
6. Segurança em Banco de Dados – Slide 22
Segurança no Armazenamento de Informações
Objetivos de segurança x Ameaças
Ameaças
O.I&A.TOE
O.ACCESS
T.ACCESS
YES
YES
T.DATA
YES
YES
T.RESOURCE
YES
YES
T.ATTACK
YES
YES
YES
YES
T.ABUSE.USER
YES
YES
YES
YES
P.ACCESS
YES
P.ACCOUNT
YES
O.AUDIT
O.RESOURCE
O.ADM.TOE
YES
YES
YES
YES
YES
YES
YES
Fonte: Database Management System Protection Profile (DBMS PP)
 P.ACESS:
 Política de Acesso ao banco de dados
 P.ACCOUNT:
 Política de gestão (Administração: DBA e Objetos: Proprietário)
Márcio Moreira
6. Segurança em Banco de Dados – Slide 23
Segurança no Armazenamento de Informações
Ataques internos ao DBMS
Dados sensíveis:
São dados privados (não são de acesso público)
Levam a classificar as bases em 3 grupos:
Públicas:
Privadas:
Mistas:
Não possuem dados sensíveis
Só possuem dados sensíveis
Contem alguns dados sensíveis
Controle de acesso:
Tem a missão de limitar o usuário a ter acesso
somente aos dados que eles podem acessar
Márcio Moreira
6. Segurança em Banco de Dados – Slide 24
Segurança no Armazenamento de Informações
Formas de obtenção de dados
 Direta:
 Obtenção do dado diretamente
 Limites:
 Conhecendo os limites podemos inferir os dados
 Resultado negativo:
 Consulta a um valor negativo revela o dado
 Existência:
 Saber que o dado existe já é um problema
 Probabilidade:
 Determinar a probabilidade de um dado ter um valor
Márcio Moreira
6. Segurança em Banco de Dados – Slide 25
Segurança no Armazenamento de Informações
Segurança x Precisão
Compartilhamento de dados públicos:
Segurança:
Aceitar consultas à dados públicos e
Rejeitar as de dados privados
Precisão:
Proteger os dados privados revelando o máximo
possível dos públicos
Ideal:
Máximo de segurança com o máximo de precisão
Infelizmente, isto nem sempre é possível
Márcio Moreira
6. Segurança em Banco de Dados – Slide 26
Segurança no Armazenamento de Informações
Problema da inferência
 Suponha que o Salário seja um dado privado
 Portanto, não pode ser retornado. Será?
 Observe as consultas:
 SELECT COUNT(*)
FROM T WHERE Salario > 30000
 Retorna a quantidade de pessoas que ganham acima de 30000
 SELECT SUM(Salario) FROM T WHERE Salario > 30000
 Retorna a soma dos Salários de quem ganha acima de 30000
 SELECT Nome
FROM T WHERE Salario > 30000
 Retorna o nome de quem ganha mais de 30000
 SELECT *
FROM T WHERE 1/(Salario – 30000) > 0
 Se alguém ganhar 30000 dará uma mensagem de erro de divisão por zero
 A política de segurança dos dados deve ser muito
bem especificada para os elementos do DBMS
Márcio Moreira
6. Segurança em Banco de Dados – Slide 27
Segurança no Armazenamento de Informações
Recomendações de segurança
Todas as mencionadas em Segurança em
Aplicações continuam válidas
Adicionais – “BRAVE”:
Backup and recovery:
Além do backup, devemos fazer journal (log) e archive
RAID:
Performance e disponibilidade
Authorization: Concessão de privilégios adequados
Devemos usar também a Autenticação de usuários
Views:
Encryption:
Márcio Moreira
Cada perfil deve ter suas visões
Criptografe dados sensíveis
6. Segurança em Banco de Dados – Slide 28
Segurança no Armazenamento de Informações
Recomendações gerais 1
Ligue a auditoria para dados sensíveis:
Audite e verifique os acessos
Use pelo menos 2 níveis de logs e archives:
Salve estes arquivos em storages separados
Crie honey tokens para atrair os atacantes
Use a detecção de intrusos no DBMS
Remova as scripts, procedimentos e utilitários
desnecessários (ex: setpwd.exe)
Márcio Moreira
6. Segurança em Banco de Dados – Slide 29
Segurança no Armazenamento de Informações
Recomendações gerais 2
Use controle de acesso mandatório ou
RBAC (Role Based Access Control)
Mantenha a segurança da infra-estrutura:
SO, rede, firewalls, storages, backups, etc.
Use checklists:
Na seleção e compra do DBMS
Na administração do DBMS
Márcio Moreira
6. Segurança em Banco de Dados – Slide 30
Segurança no Armazenamento de Informações
Referências
 Cenys, et al. Implementation of HoneyToke Module
in DBMS Oracle 9iR2EE For Internal Malicius
Activity Detection. IEEE. DIMVA. Jul-2005.
 Christopher Clack. Selected Database Issues.
Security. Lecture 1. Lecture 2. Lecture 3. UCL CSD. Mar-2008.
 ChengXiang Zhai. DBMS Architecture. University
of Illinois. Sep-2006.
 Common Criteria. Database Management System
Protection Profile (DBMS PP). CC Portal. 2000.
Márcio Moreira
6. Segurança em Banco de Dados – Slide 31
Segurança no Armazenamento de Informações
Referências
 Jerry Keesee and Jonathan Leffler. IBM Informix
Dynamic Server 10.00 Security and Column-Level
Encryption. IBM. Mar-2005.
 Luc Bouganim and Philippe Pucheral. ChipSecured Data Access: Confidential Data on
Untrusted Servers. VLDB. 2002.
 Márcio Moreira, João Nunes and Ilmério Silva. A
Multi-User Key and Data Exchange Protocol to
Manage a Secure Database. SBBD. 2002.
 Michael McGrattan. Data Security - Encryption
Strategies for Data at Rest. Blue Oasis. 2005.
Márcio Moreira
6. Segurança em Banco de Dados – Slide 32
Segurança no Armazenamento de Informações
Referências
 Raghu Ramakrishnan and Johannes Gehrke.
Database Management Systems. 3rd Edition.
McGraw-Hill. 2002.
 SUN. Best Practices in Information Lifecycle
Management Security. SUN. Feb-2006.
 Susan Davidson. Physical Storage. University of
Pennsylvania. Nov-2007.
 Tingjian Ge and Stan Zdonik. Fast, Secure
Encryption for Indexing in a Column-Oriented
DBMS. Brown University. 2006.
Márcio Moreira
6. Segurança em Banco de Dados – Slide 33
Segurança no Armazenamento de Informações
Referências
 UNIRAS. Current Advice - Mitigating the risk of
Malicious Software. NISCC. 2004.
 UNIRAS. NISCC Technical Note 01/03:
Understanding Database Security. NISCC. 2004.
 Zheng-Fei, Jing, Wei and Bai-le. Fast Query Over
Encrypted Character Data in Database. CIS. 2004.
Márcio Moreira
6. Segurança em Banco de Dados – Slide 34
Segurança no Armazenamento de Informações
Download

7. Segurança em Banco de Dados