360 likes | 475 Views
Segurança no Armazenamento 7. Segurança em Banco de Dados. Márcio Aurélio Ribeiro Moreira marcio.moreira@pitagoras.com.br http://si.lopesgazzani.com.br/docentes/marcio /. Objetivos do capítulo. Apresentar a arquitetura padrão dos DBMS Apresentar os principais conceitos de DBMS
E N D
Segurança no Armazenamento7. Segurança em Banco de Dados Márcio Aurélio Ribeiro Moreira marcio.moreira@pitagoras.com.br 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
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
Níveis de segurança dos dados Humano Corrupção Falta de cuidado Engenharia Social Interfaces Usuário Aplicação Rede Aplicação DBMS Físico Sistema Operacional
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 retorno • Também em texto plano Comandos Processa-mento Dados Dados Mensagens
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: Equivalente a uma tabela • Esquema: Conjunto de colunas • Tuplas: Linhas • Atributos: Colunas
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 Visão 1 Visão 2 Visão 3 Esquema Conceitual Esquema Físico Banco de Dados
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.
Abrindo a arquitetura padrão Buffer Files Web Server Query Processor Browser Aplicação Transaction Driver DBMS Driver Manager
Processador de consultas • Módulos responsáveis pelas iterações do DBMS: • Query Parser: • Analisador de consultas • Query Rewriter: • Tradutor de consultas • Query Optimizer: • Otimizador de consultas • Query Executor: • Executor de consultas Query Processor Query Parser Query Rewriter Query Optimizer Query Executor
Buffer • Módulos do buffer: • Buffer Manager: • Gerenciador de buffers • Buffer 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
Transaction • Sub-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
Files • Sub-sistema de arquivos: • Storage Manager: • Gerenciador de armazenamento • Files & 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 Storage Manager Files & Access Methods Logging & Recovery
Simplificação da arquitetura padrão Buffer Files • Processando uma consulta: Página 1 ... Página 3 ... Página 2 ... Página 3 ... Página 3 ... Página 4 ... Resposta Resposta Resposta Consulta Consulta Consulta Página n ... Query Processor Web Server Browser
Perspectiva de segurança atual Á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 Buffer Área insegura: Texto Plano Abrangência: Todos os Dados Files Página 1 ... Página 3 ... Página 2 ... Página 3 ... Página 3 ... Página 4 ... Resposta Resposta Resposta Consulta Consulta Consulta Página n ... Query Processor Web Server Browser
Estratégia de segurança no servidor Manter Páginas em Texto Plano Buffer Armazenar Páginas Criptografadas Files • Riscos: • Inspeção de memória: • Pegar páginas na memória • Pegar chaves usadas no armazenamento: • Compromete todos os dados • Produtos: • Oracle, DB2, SQL Server, Sybase, Informix, etc. Página 1 ... Página i ... Página 2 ... Página j ... Página 3 ... Página 4 ... Processar Consultas em Texto Plano Página n ... Query Processor Web Server Browser
Estratégia de segurança média Manter Páginas Cifradas Buffer Armazenar Páginas Criptografadas Files • Riscos: • Inspeção de memória: • Pegar dados das consultas • Pegar chaves usadas no armazenamento: • Compromete todos os dados Página 1 ... Página i ... Página 2 ... Página j ... Página 3 ... Página 4 ... Processar Consultas em Texto Plano Página n ... Query Processor Web Server Browser
Estratégia de segurança máxima Manter Páginas Cifradas Buffer Armazenar Páginas Criptografadas Files • Benefício: • Ausência de exposição • Custo: • Implementação complexa • Queda de performance Página 1 ... Página i ... Página 2 ... Página j ... Página 3 ... Página 4 ... Processar Consultas Cifradas Página n ... Query Processor Web Server Browser
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
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: • Dados pessoais não podem ser revelados • Ataques podem resultar em ações legais • Integridade: • Os dados devem ser válidos e não corrompidos • Ataques (fraudes) causam danos à organização • Disponibilidade: • As informações devem estar acessíveis quando necessárias • Ataques ou problemas afetam os resultados do negócio DBMS Confidencialidade Privacidade Integridade Disponibilidade
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
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
Objetivos de segurança x Ameaças 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)
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íveis • Privadas: Só possuem dados sensíveis • Mistas: 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
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
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
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
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: Cada perfil deve ter suas visões • Encryption: Criptografe dados sensíveis
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)
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
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.
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.
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.
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.