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

Slides:



Advertisements
Apresentações semelhantes
Banco de Dados I Aula 20.
Advertisements

Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Operadores e Funções do LINGO
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
SISTEMAS DE INFORMAÇÃO
© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Gerenciamento de transações Msc, Marcelo Bezerra de Alcântara.
1. 2 Tecnologias de Informação e Risco O que esperamos das tecnologias de informação? Como atingir os objectivos das tecnologias de informação? Segurança.
Maurício Edgar Stivanello
Motor de Armazenamento
SGBD.
Sistema Gerenciador de Banco de Dados SGBD
Introdução aos Sistemas Gerenciadores de Banco de Dados
Sumário 1 SQL Embutida 2 Processamento de Consultas
Professora: Aline Vasconcelos
Componentes Arquitetônicos de um Banco de Dados Oracle
Introdução à Engenharia da Computação
Estudo de Caso 1: UNIX e LINUX
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
Material III-Bimestre Wagner Santos C. de Jesus
Daniel Paulo Introdução O tempo de resposta de um sistema é determinado pelo tempo que ele leva para retornar aos usuários às.
Estruturas de Controle
7.1 © 2004 by Pearson Education 7 7 ADMINISTRAÇÃO DOS RECURSOS DE DADOS Capítulo.
Prof. Alexander Roberto Valdameri
Prof. Alexander Roberto Valdameri
Fundamentos de Banco de Dados Prof. Alexander Roberto Valdameri
Professor Victor Sotero
Segurança em Aplicações 5. Melhores Práticas de Programação
Segurança em Aplicações 1. Introdução
Gerenciamento do Escopo
Classes e objetos P. O. O. Prof. Grace.
Administração de Sistemas de Informação Banco de Dados
Monitoramento de logs e registros de sistemas
Educação Profissional Técnica de Nível Médio em Informática
Python Persistência de Dados
Especialização em Segurança da Informação Segurança em Aplicações 5. Melhores Práticas de Programação Márcio Aurélio Ribeiro Moreira
Gerenciamento de Transações - Introdução
Universidade São Marcos Curso: Gestão de Negócios Internacionais
Banco de Dados II Prof. Antônio Cordeiro.
Capítulo 24 Segurança de banco de dados
TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula /08/2011 Professor Leomir J. Borba- –
Prof. Alessandro Gonçalves
Especialização em Segurança da Informação Segurança no Armazenamento de Informações Márcio Aurélio Ribeiro Moreira
Fevereiro/ Resultado dos Projetos de Software Pesquisa Motivação.
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
1.
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
1-1 Copyright © Oracle Corporation, All rights reserved. Administrando Objetos de Esquema Este capítulo abordará os seguintes tópicos: Visão geral.
Exercícios SGBD - CESPE
FaculdadePitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Sistemas Gerenciadores de Banco de Dados Prof.: Fernando Hadad Zaidan.
Treinamento sobre SQL.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Contexto da disciplina
Comandos SQL.
Objetivos do Capítulo Explicar a importância da implementação de processos e tecnologias de gerenciamento de dados numa organização. Explicar as vantagens.
Segurança em Banco de Dados e Aplicações Márcio Moreira
Bancos de Dados Estrutura e Funcionamento de um SGBD
Bancos de Dados.
Márcio Aurélio Ribeiro Moreira
Sistema de Gestão de Segurança da Informação
Mestrado em Engenharia de Computação área de concentração Geomática
Banco de Dados Representa o arquivo físico de dados, armazenado em dispositivos periféricos, para consulta e atualização pelo usuário. Possui uma série.
Daniel Paulo Banco de dados: é uma coleção/conjunto de registros relacionados.  Exemplo: O banco de dados de uma Universidade.
UCSal – Bacharelado em Informática
Plano de Ensino Conceitos e Características Tipos de Banco de Dados
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Banco de Dados Parte 1 Profa. Ana Karina Barbosa Fevereiro/2008.
Transcrição da apresentação:

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.