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