Especializao em Segurana da Informao Segurana no Armazenamento
- Slides: 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 marcio. moreira@pitagoras. com. br http: //www. teraits. com/pitagoras/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: l DBMS = Database Management System l SGBD = Sistema Gerenciador de Banco de Dados v. 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: l Consultas Comandos Processamento Dados Mensagens v. Comandos SQL (consultas) em texto plano Ø Aplicações ou DBA (Database Administrator): l Transações v. Comandos SQL (procedimentos) em texto plano Ø Resultados: l Result sets: conjuntos resultantes v. Normalmente tabelas ou mensagens de retorno v. 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): l É uma coleção modelos que descrevem os dados l O modelo relacional é o mais utilizado atualmente Ø Schema (Esquema): l É a descrição de uma coleção particular de dados Ø Modelo relacional: l Relação: l Esquema: l Tuplas: l Atributos: Márcio Moreira Tabela X Equivalente a uma tabela Conjunto de colunas Linha 1: Linha 2: Linhas. . . Colunas 6. Segurança em Banco de Dados – Slide 6 Linha N: Coluna A Coluna B Dado 1 A Dado 1 B Dado 2 A Dado 2 B . . . Dado. NA Dado. NB Segurança no Armazenamento de Informações
Níveis de abstração Ø View (visão): l 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 l Estrutura lógica dos dados Ø Esquema físico: l 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: l Independência lógica: v Protege os dados de mudanças na estrutura lógica l Independência física: v Protege os dados de mudanças na estrutura física Ø Transações: l l 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: l 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: l Query Parser: v. Analisador de consultas l Query Rewriter: v. Tradutor de consultas Query Optimizer l Query Optimizer: v. Otimizador de consultas Query Executor Márcio Moreira l Query Executor: v. Executor de consultas 6. Segurança em Banco de Dados – Slide 10 Segurança no Armazenamento de Informações
Buffer Ø Módulos do buffer: Buffer Manager l Buffer Manager: v. Gerenciador de buffers l Buffer Pool: v. Buffer em memória de páginas do banco de dados no disco Buffer Pool Márcio Moreira l 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 Ø Sub-sistema de transações: l Transaction Manager: Transaction Manager v. Gerenciador de transações: § Garante: Atomicidade, Consistência, Integridade e Durabilidade v. Gerencia acessos concorrentes: Lock Manager § Garante: Isolamento. l Lock Manager: v. Gerenciador de bloqueios Lock Tables l Lock Tables: v. 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 Storage Manager Ø Sub-sistema de arquivos: l Storage Manager: v. Gerenciador de armazenamento l Files & Access Methods: Files & Access Methods Logging & Recovery Márcio Moreira v. Gestão dos métodos de acesso e arquivos do DBMS l Logging & Recovery: v. 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 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 insegura: Texto Plano Área ≈ segura: Pode ser cifrada Á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 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: l Inspeção de memória: v Pegar páginas na memória v Pegar chaves usadas no armazenamento: Buffer Files Manter Página i Página 1. . . Páginas em Página j. . . Texto Plano § Compromete todos os dados Página 2 Armazenar. . . Página 3 Páginas. . . Ø Produtos: Página 4 Criptografadas l Oracle, DB 2, SQL Server, Sybase, Informix, etc. . Processar Browser Márcio Moreira Web Server 6. Segurança em Banco de Dados – Slide 16 Query em Consultas Processor Página n. . . Texto Plano Segurança no Armazenamento de Informações
Estratégia de segurança média Ø Riscos: l Inspeção de memória: v. Pegar dados das consultas v. Pegar chaves usadas no armazenamento: § Compromete todos os dados Browser Márcio Moreira Web Server 6. Segurança em Banco de Dados – Slide 17 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 Segurança no Armazenamento de Informações
Estratégia de segurança máxima Ø Benefício: l Ausência de exposição Files Manter Página i Página 1. . . Páginas Página j. . . Ø Custo: Cifradas l Implementação complexa l Queda de performance Browser Márcio Moreira Buffer Web Server 6. Segurança em Banco de Dados – Slide 18 Página 2 Armazenar. . . Página 3 Páginas. . . Página 4 Criptografadas. . . Processar Query Consultas Processor Página n. . . Cifradas Segurança no Armazenamento de Informações
Custo do processamento cifrado Ø Execução de SELECT: l Seqüencial: Por índice: l Proposto em 2002 por Márcio, João e Ilmério l Pesa o processamento, mas está se viabilizando l 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: l Alguns dados são acessíveis só por alguns usuários l Ataques (roubos) podem revelar segredos, senhas, etc. Ø Privacidade: DBMS Disponibilidade Ø Disponibilidade: Integridade l Os dados devem ser válidos e não corrompidos l Ataques (fraudes) causam danos à organização Privacidade Ø Integridade: Confidencialidade l Dados pessoais não podem ser revelados l Ataques podem resultar em ações legais l As informações devem estar acessíveis quando necessárias l 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: l Acesso não autorizado à base de dados Ø T. DATA: l Acesso não autorizado à informações Ø T. RESOURCE: l Consumo excessivo de recursos Ø T. ATTACK: l Ataque não detectado Ø T. ABUSE. USER: l 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: l Toda operação no DB deve ser Identificada e Autenticada Ø O. ACCESS: l O DBA e os usuários têm direito de acesso a seus objetos Ø O. AUDIT: l O DBMS deve registrar eventos de segurança relevantes Ø O. RESOURCE: l O DBMS deve controlar o uso dos recursos do DB Ø O. ADMIN. TOE: l 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 O. I&A. TOE O. ACCESS T. ACCESS YES T. DATA YES T. RESOURCE YES T. ATTACK YES YES T. ABUSE. USER YES YES P. ACCESS YES P. ACCOUNT YES O. AUDIT O. RESOURCE O. ADM. TOE 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: l São dados privados (não são de acesso público) Ø Levam a classificar as bases em 3 grupos: l Públicas: l Privadas: l Mistas: Não possuem dados sensíveis Só possuem dados sensíveis Contem alguns dados sensíveis Ø Controle de acesso: l 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: l Obtenção do dado diretamente Ø Limites: l Conhecendo os limites podemos inferir os dados Ø Resultado negativo: l Consulta a um valor negativo revela o dado Ø Existência: l Saber que o dado existe já é um problema Ø Probabilidade: l 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: l Segurança: v. Aceitar consultas à dados públicos e v. Rejeitar as de dados privados l Precisão: v. Proteger os dados privados revelando o máximo possível dos públicos Ø Ideal: l Máximo de segurança com o máximo de precisão l 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 l Portanto, não pode ser retornado. Será? Ø Observe as consultas: l SELECT COUNT(*) FROM T WHERE Salario > 30000 v Retorna a quantidade de pessoas que ganham acima de 30000 l SELECT SUM(Salario) FROM T WHERE Salario > 30000 v Retorna a soma dos Salários de quem ganha acima de 30000 l SELECT Nome FROM T WHERE Salario > 30000 v Retorna o nome de quem ganha mais de 30000 l SELECT * FROM T WHERE 1/(Salario – 30000) > 0 v 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”: l Backup and recovery: v. Além do backup, devemos fazer journal (log) e archive l RAID: Performance e disponibilidade l Authorization: Concessão de privilégios adequados v. Devemos usar também a Autenticação de usuários l Views: l 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: l Audite e verifique os acessos Ø Use pelo menos 2 níveis de logs e archives: l 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: l SO, rede, firewalls, storages, backups, etc. Ø Use checklists: l Na seleção e compra do DBMS l 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 Honey. Toke Module in DBMS Oracle 9 i. R 2 EE 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. Ø Cheng. Xiang 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. 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 Mc. Grattan. 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. 3 rd Edition. Mc. Graw-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