34
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/

Segurança no Armazenamento 7. Segurança em Banco de Dados

  • Upload
    abia

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Segurança no Armazenamento 7. Segurança em Banco de Dados

Especializaçãoem Segurançada Informação

Segurança no Armazenamento7. Segurança em Banco de Dados

Márcio Aurélio Ribeiro [email protected]://si.lopesgazzani.com.br/docentes/marcio/

Page 2: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 2 Segurança no Armazenamento de Informações

Objetivos do capítulo

Apresentar a arquitetura padrão dos DBMSApresentar os principais conceitos de DBMSApresentar a arquitetura de processamento

e armazenamento de bancos de dadosMostrar os principais problemas de

segurança de armazenamento dos DBMSApresentar as recomendações para resolver

ou evitar os problemas apresentados

Page 3: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 3 Segurança no Armazenamento de Informações

Arquitetura padrão

Abaixo apresentamos a macro arquitetura padrão dos DBMS ou SGBD:DBMS = Database Management SystemSGBD = Sistema Gerenciador de Banco de

DadosNota: A arquitetura apresentada não tem nenhum foco

em segurança, apenas apresenta os nós envolvidos

Page 4: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 4 Segurança no Armazenamento de Informações

Níveis de segurança dos dadosHumano

Corrupção

Falta de cuidado

EngenhariaSocial

Interfaces

Usuário

Aplicação

Rede

Aplicação DBMS

Sistema Operacional

Físico

Page 5: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 5 Segurança no Armazenamento de Informações

Iterações com o DBMS

Usuário ou formulários:Consultas

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 retornoTambém em texto plano

Comandos

Dados

Processa-mento

Dados

Mensagens

Page 6: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 6 Segurança no Armazenamento de Informações

Principais conceitos dos DBMS

Data Model (Modelo de Dados):É uma coleção modelos que descrevem os dadosO modelo relacional é o mais utilizado atualmente

Schema (Esquema):É a descrição de uma coleção particular de dados

Modelo relacional:Relação: Equivalente a uma tabelaEsquema: Conjunto de colunasTuplas: LinhasAtributos: Colunas

Tabela X

Coluna A Coluna B

Linha 1: Dado1A Dado1B

Linha 2: Dado2A Dado2B

... ... ...

Linha N: DadoNA DadoNB

Page 7: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 7 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:Estrutura lógica dos dados

Esquema físico:Estrutura física dos arquivos

e índices utilizados Banco de Dados

Esquema Físico

Esquema Conceitual

Visão 1 Visão 2 Visão 3

Page 8: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 8 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: A transação é concluída totalmente ou não é feita.Consistência: Se estava consistente, continuará após a transação. Integridade: Todas as restrições de integridade são respeitadas.Durabilidade: Se a transação for concluída, não será perdida.

Controle de Concorrência: Isolamento: Cada usuário deve “imaginar” que está sozinho.

Page 9: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 9 Segurança no Armazenamento de Informações

Abrindo a arquitetura padrão

Browser Web Server

Aplicação

Driver DBMS

Files

Driver Manager

Transaction

Buffer

QueryProcessor

Page 10: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 10 Segurança no Armazenamento de Informações

Processador de consultas

Módulos responsáveis pelas iterações do DBMS:Query Parser:

Analisador de consultasQuery Rewriter:

Tradutor de consultasQuery Optimizer:

Otimizador de consultasQuery Executor:

Executor de consultas

Query Processor

Query Parser

Query Rewriter

Query Optimizer

Query Executor

Page 11: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 11 Segurança no Armazenamento de Informações

Buffer

Módulos do buffer:Buffer Manager:

Gerenciador de buffersBuffer Pool:

Buffer em memória de páginas do banco de dados no disco

Este sub-sistema é fundamental para o desempenho do gerenciador

Buffer

Buffer Manager

Buffer Pool

Page 12: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 12 Segurança no Armazenamento de Informações

TransactionSub-sistema de transações:

Transaction Manager:Gerenciador de transações:

Garante: Atomicidade, Consistência, Integridade e Durabilidade

Gerencia acessos concorrentes: Garante: Isolamento.

Lock Manager:Gerenciador de bloqueios

Lock Tables:Controle (em memória) de tabelas

bloqueadas

Transaction

Transaction Manager

Lock Manager

Lock Tables

Page 13: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 13 Segurança no Armazenamento de Informações

Files

Sub-sistema de arquivos:Storage Manager:

Gerenciador de armazenamentoFiles & Access Methods:

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

Files

StorageManager

Files & Access

Methods

Logging & Recovery

Page 14: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 14 Segurança no Armazenamento de Informações

Simplificação da arquitetura padrão

Processando uma consulta:

Browser Web Server

Buffer

QueryProcessor

Consulta

Files

Página 1...

Página 2...

Página 3...

Página n...

Página 4...

Consulta Consulta

Página 3...

Página 3...

RespostaRespostaResposta

Page 15: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 15 Segurança no Armazenamento de Informações

Perspectiva de segurança atual

Browser Web Server

Buffer

QueryProcessor

Consulta

Files

Página 1...

Página 2...

Página 3...

Página n...

Página 4...

Consulta Consulta

Página 3...

Página 3...

RespostaRespostaResposta

Área insegura:Texto Plano

Abrangência:Usuário

Área ≈ segura:Pode ser cifrada

Abrangência:Usuário(s)

Área ≈ segura:Pode ser cifrada

Abrangência:Todos as

Transações

Área insegura:Texto Plano

Abrangência:Todos os Dados

Page 16: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 16 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óriaPegar chaves usadas no armazenamento:

Compromete todos os dados

Produtos: Oracle, DB2, SQL Server, Sybase, Informix, etc.

Browser Web Server

Buffer

QueryProcessor

Files

Página 1...

Página 2...

Página 3...

Página n...

Página 4...

Página i...

Página j...

Armazenar

Páginas

Criptografadas

Processar

Consultas em

Texto Plano

Manter

Páginas em

Texto Plano

Page 17: Segurança no Armazenamento 7. Segurança em Banco de Dados

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édia

Riscos:Inspeção de memória:

Pegar dados das consultasPegar chaves usadas no

armazenamento: Compromete todos os dados

Browser Web Server

Buffer

QueryProcessor

Files

Página 1...

Página 2...

Página 3...

Página n...

Página 4...

Página i...

Página j...

Armazenar

Páginas

Criptografadas

Processar

Consultas em

Texto Plano

Manter

Páginas

Cifradas

Page 18: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 18 Segurança no Armazenamento de Informações

Estratégia de segurança máxima

Benefício:Ausência de exposição

Custo:Implementação complexaQueda de performance

Browser Web Server

Buffer

QueryProcessor

Files

Página 1...

Página 2...

Página 3...

Página n...

Página 4...

Página i...

Página j...

Armazenar

Páginas

Criptografadas

Processar

Consultas

Cifradas

Manter

Páginas

Cifradas

Page 19: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 19 Segurança no Armazenamento de Informações

Custo do processamento cifradoExecução de SELECT:

Seqüencial: Por índice:

Proposto em 2002 por Márcio, João e IlmérioPesa o processamento, mas está se viabilizando2006: Ainda era experimental

Fonte: Tingjian Ge and Stan Zdonik

Page 20: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 20 Segurança no Armazenamento de Informações

Pilares de segurança no DBMS Confidencialidade:

Alguns dados são acessíveis só por alguns usuáriosAtaques (roubos) podem revelar segredos, senhas, etc.

Privacidade:Dados pessoais não podem ser reveladosAtaques podem resultar em ações legais

Integridade:Os dados devem ser válidos e não corrompidosAtaques (fraudes) causam danos à organização

Disponibilidade:As informações devem estar acessíveis quando necessáriasAtaques ou problemas afetam os resultados do negócio

DBMS

Confidencialidade

Privacidade

Integridade

Disponibilidade

Page 21: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 21 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

Page 22: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 22 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

Page 23: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 23 Segurança no Armazenamento de Informações

Objetivos de segurança x AmeaçasAmeaças O.I&A.TOE O.ACCESS O.AUDIT O.RESOURCE O.ADM.TOE

T.ACCESS YES YES YES YES

T.DATA YES YES YES

T.RESOURCE YES YES YES YES

T.ATTACK YES YES YES YES

T.ABUSE.USER YES YES YES YES

P.ACCESS YES YES

P.ACCOUNT 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)

Page 24: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 24 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: Não possuem dados sensíveisPrivadas: Só possuem dados sensíveisMistas: 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

Page 25: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 25 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

Page 26: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 26 Segurança no Armazenamento de Informações

Segurança x Precisão

Compartilhamento de dados públicos:Segurança:

Aceitar consultas à dados públicos eRejeitar 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ãoInfelizmente, isto nem sempre é possível

Page 27: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 27 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

Page 28: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 28 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 archiveRAID: Performance e

disponibilidadeAuthorization: Concessão de privilégios

adequadosDevemos usar também a Autenticação de usuários

Views: Cada perfil deve ter suas visões

Encryption: Criptografe dados sensíveis

Page 29: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 29 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 atacantesUse a detecção de intrusos no DBMSRemova as scripts, procedimentos e utilitários

desnecessários (ex: setpwd.exe)

Page 30: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 30 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 DBMSNa administração do DBMS

Page 31: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 31 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.

Page 32: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 32 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. Chip-Secured 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.

Page 33: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 33 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.

Page 34: Segurança no Armazenamento 7. Segurança em Banco de Dados

Márcio Moreira 6. Segurança em Banco de Dados – Slide 34 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.