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 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 Dados Processa-mento 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 Tabela X Coluna A Coluna B Linha 1: Dado1A Dado1B Linha 2: Dado2A Dado2B ... Linha N: DadoNA DadoNB
Níveis de abstração View (visão): Esquema conceitual: Esquema físico: 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: Transações: 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 Driver Manager Transaction Buffer Query Processor Files Browser Web Server Aplicação Driver DBMS
Processador de consultas Query Processor 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 Parser Query Rewriter Query Optimizer Query Executor
Buffer Módulos do buffer: Buffer Manager: Buffer Pool: 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 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 Storage Manager Files & Access Methods Logging & Recovery
Simplificação da arquitetura padrão Processando uma consulta: Buffer Query Processor Files Página 1 ... Página 2 Página 3 Página n Página 4 Página 3 ... Resposta Página 3 ... Resposta Resposta Consulta Consulta Consulta Browser Web Server
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 Área insegura: Texto Plano Abrangência: Todos os Dados Buffer Query Processor Files Página 1 ... Página 2 Página 3 Página n Página 4 Página 3 ... Resposta Página 3 ... Resposta Resposta Consulta Consulta Consulta Browser Web Server
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 Produtos: Oracle, DB2, SQL Server, Sybase, Informix, etc. Manter Páginas em Texto Plano Armazenar Páginas Criptografadas Buffer Query Processor Files Página 1 ... Página 2 Página 3 Página n Página 4 Página i ... Página j ... Processar Consultas em Texto Plano Browser Web Server
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 Manter Páginas Cifradas Armazenar Páginas Criptografadas Buffer Query Processor Files Página 1 ... Página 2 Página 3 Página n Página 4 Página i ... Página j ... Processar Consultas em Texto Plano Browser Web Server
Estratégia de segurança máxima Benefício: Ausência de exposição Custo: Implementação complexa Queda de performance Manter Páginas Cifradas Armazenar Páginas Criptografadas Buffer Query Processor Files Página 1 ... Página 2 Página 3 Página n Página 4 Página i ... Página j ... Processar Consultas Cifradas Browser Web Server
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 O.I&A.TOE O.ACCESS O.AUDIT O.RESOURCE O.ADM.TOE T.ACCESS YES T.DATA T.RESOURCE T.ATTACK T.ABUSE.USER P.ACCESS P.ACCOUNT 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: Ideal: 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.