Especialização
em Segurança
da Informação
Segurança em Banco de Dados e Aplicações
1. 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
1. Segurança em Banco de Dados – Slide 2
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 3
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 4
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 5
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 6
Coluna A
Coluna B
Dado1A
Dado1B
Dado2A
Dado2B
...
...
DadoNA
DadoNB
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 7
Esquema Físico
Banco de Dados
Segurança em Banco de Dados e Aplicaçõ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.
1. Segurança em Banco de Dados – Slide 8
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 9
Segurança em Banco de Dados e Aplicações
Segurança em Banco de Dados
 Objetivos:
 Evitar leitura (select), inserção (insert), atualização (update) ou
remoção (delete) não autorizadas
 Mecanismos:
 Definição de um DBA (DataBase Administrator) para:
 Criação de contas, concessão ou revogação de direitos e definição do
nível de segurança
 Autenticação:
 Um usuário ou grupo de usuários (papéis = roles) precisam de uma
identificação (identidade) única (conta), que deve ser verificada, para
acessar o DBMS
 Autorização:
 O DBA pode conceder ou revogar direitos de acesso aos objetos do
DBMS para usuários, grupos de usuários ou papéis (roles)
Márcio Moreira
1. Segurança em Banco de Dados – Slide 10
Segurança em Banco de Dados e Aplicações
Tipos de Controle de Acesso
 Discricionário (DAC: Discretionary Access Control):
 O acesso aos objetos do DBMS são baseadas na identidade dos usuários
 Exemplos:
 A tabela X pode ser lida pelos: A, B e C
 Mandatório (MAC: Mandatory Access Control):
 Cada objeto do DBMS recebe uma classe de segurança (ultra secreto,
secreto, confidencial ou não classificado)
 Cada usuário ou grupo recebe um nível de acesso às classes de segurança
 Baseado em Papéis (RBAC: Role-Based Access Control):
 Os direitos de acesso aos objetos do DBMS são concedidos a papeis
(roles)
 Os usuários ou grupos são associados aos papéis
 Exemplos:
 Todas as tabelas podem ser escritas por db_writer
 Os usuários A, B e C são db_writer
Márcio Moreira
1. Segurança em Banco de Dados – Slide 11
Segurança em Banco de Dados e Aplicações
Comandos de concessão/revogação
 Concessão:
 GRANT operação ON objeto TO identidade [WITH GRANT OPTION]
 Revogação:
 REVOKE operação ON objeto FROM identidade
 Operações:
 SELECT, INSERT, DELETE ou UPDATE [( lista_de_colunas )]
 CREATE ou EXECUTE [função ou procedimento armazenado]
 ALTER {TABLE | VIEW | FUNCTION | STORED PROCEDURE}
 Objetos:
 Função (function), Gatilho (trigger), Procedimento (stored procedure),
Tabela (table), Visão (view), etc.
 Identidades:
 Usuário, grupo de usuários ou papel
 GRANT OPTION:
 Concede à identidade o direito de conceder direitos
Márcio Moreira
1. Segurança em Banco de Dados – Slide 12
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 13
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 14
Segurança em Banco de Dados e Aplicações
SQL Injection
 Idéia: injetar código para ganhar acesso
 Exemplo de autenticação:
 SELECT *
 FROM
usuarios
 WHERE usuario = '$usuario' AND senha = '$senha'
 Sintaxe SQL:
 ' (apóstrofo) Terminador de strings
 -- (2 menos) Comentários (ignora o restante)
 O que acontece se digitarmos no campo usuário?
 x' OR 1=1 -Márcio Moreira
1. Segurança em Banco de Dados – Slide 15
Segurança em Banco de Dados e Aplicações
SQL Injection - Exemplos
 No SQL Server:
 '; EXEC xp_cmdshell 'net stop sqlserver', no_output - No lugar do comando (net stop ...), podemos colocar:
Net user admin2 /add && net localgroup administrators admin2 /add
&& net localgroup ORA_DBA admin2 /add
 ' UNION SELECT id, name, '', 0,'' FROM sysobjects WHERE
xtype='U' --
 Injeção no get (passagem de parâmetros) em url:
 http://windefense/index.asp?id=10 UNION SELECT TOP 1
TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%25login%25'—
 Referências:
 www.owasp.org/images/7/74/Advanced_SQL_Injection.ppt
Márcio Moreira
1. Segurança em Banco de Dados – Slide 16
Segurança em Banco de Dados e Aplicações
Ataque de 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
1. Segurança em Banco de Dados – Slide 17
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 18
Segurança em Banco de Dados e Aplicações
Abrindo a arquitetura padrão
Buffer
Browser
Web
Server
Query
Processor
Files
Márcio Moreira
Aplicação
Transaction
Driver
DBMS
Driver
Manager
1. Segurança em Banco de Dados – Slide 19
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 20
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 21
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 22
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 23
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 24
Processor
Página 4
...
Página n
...
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 25
Área insegura:
Files
Texto Plano
Processor
Página 4
...
Página n
...
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 26
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 27
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 28
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 29
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 30
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 31
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 32
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 33
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 34
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 35
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 36
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 37
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 38
Segurança em Banco de Dados e Aplicaçõ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
1. Segurança em Banco de Dados – Slide 39
Segurança em Banco de Dados e Aplicações
Download

1. Segurança em Banco de Dados