UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO CURSO DE SISTEMAS DE INFORMAÇÃO — BACHARELADO TRABALHO DE CONCLUSÃO DE CURSO I (TCC-I) PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO - Aplicado Versão: 2 Título: SISTEMA PARA AUDITORIA DE SEGURANÇA DE BANCO DE DADOS ORACLE Palavras-chave: Segurança. Auditoria. Oracle. 1 IDENTIFICAÇÃO Nome: Alan Filipe Mattiollo Código/matrícula: 46746 Endereço residencial: Rua: Mariana Bronnemann Bairro: Velha CEP: 89036-080 Telefone fixo: (47) 3035-5189 Complemento: Ap. 02 n: 384 Cidade: Blumenau UF: SC Celular: (47) 9176-1261 Endereço comercial: Empresa: Teclógica Rua: XV de Novembro CEP: 89010-902 n·: 759 Cidade: Blumenau E-Mail FURB: [email protected] Bairro: Centro UF: SC Telefone: 3036-7700 E-Mail alternativo: [email protected] 1.1 ORIENTADOR Nome: Cláudio Ratke E-Mail FURB: [email protected] E-Mail alternativo: 1.2 SUPERVISOR/ESPECIALISTA DA APLICAÇÃO Nome: Eduardo Ehlert Função/Cargo: Gerente de Projetos Telefone contato: (47) 9176-1280 2 2 DECLARAÇÕES 2.1 DECLARAÇÃO DO ALUNO Declaro que estou ciente do Regulamento do Trabalho de Conclusão de Curso de Sistemas de Informação e que a proposta, a qual concordo, foi revisada e está dentro dos padrões metodológicos da disciplina. Ainda me comprometo pela obtenção de quaisquer recursos necessários para o desenvolvimento do trabalho, caso esses recursos não sejam disponibilizados pela Universidade Regional de Blumenau (FURB). Assinatura: Local/Data: 2.2 DECLARAÇÃO DO ORIENTADOR Declaro que estou ciente do Regulamento do Trabalho de Conclusão do Curso de Sistemas de Informação e que a proposta, a qual concordo, foi por mim revisada em todas as páginas. Ainda me comprometo a orientar o aluno da melhor forma possível de acordo com o plano de trabalho explícito nessa proposta. Assinatura: Local/Data: 2.3 DECLARAÇÃO DO SUPERVISOR/ESPECIALISTA DA APLICAÇÃO Declaro que estou ciente do Regulamento do Trabalho de Conclusão do Curso de Sistemas de Informação e que minha participação no referido trabalho não implica em nenhuma relação de ordem trabalhista e de remuneração bem como, manifesto ciência de que, por tratar-se de trabalho acadêmico, não tenho qualquer direito relacionada à sua autoria. Outrossim, autorizo a publicação do referido trabalho como também de informações técnicas de outros sistemas a ele relacionados. Assinatura: Local/Data: 3 TCC-I- APLICADO - AVALIAÇÃO DO ESPECIALISTA-1 Acadêmico(a): ASPECTOS AVALIADOS 1. INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado / delimitado? 1.2. O problema está claramente formulado? 1.3. A justificativa/relevância apresentada está coerente com o problema apresentado? 2. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado? 2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? (Caso não sejam apresentados objetivos específicos, deixe esse item em branco.) 3. FUNDAMENTAÇÃO TEÓRICA 3.1. A revisão bibliográfica está de acordo com o tema abordado e é suficiente sobre o assunto? 3.2. São apresentados trabalhos correlatos, bem como é realizada a correlação dos mesmos com a proposta? 4. DESENVOLVIMENTO / ESPECIFICAÇÃO / MODELAGEM 4.1. A descrição do sistema proposto está clara, adequadamente fundamentada e abrange solução para todos os problemas apresentados? 4.2. Os requisitos funcionais e não funcionais do software a ser desenvolvido foram claramente descritos e estão coerentes com os objetivos da proposta? 4.3. Os requisitos a serem implementados são suficientes para o software? 4.4. O diagrama de casos de uso apresentado está correto e coerente com os requisitos? (Verificar a descrição dos principais casos e uso no apêndice) 5. AVALIAÇÃO GERAL (Organização e apresentação gráfica / linguagem usada) 5.1. A exposição do assunto é ordenada, isto é, as idéias estão bem encadeadas e a linguagem utilizada é clara? 5.2. As informações retiradas de outros autores estão devidamente referenciadas e constam nas referências bibliográficas? 5.3. As referências bibliográficas citadas contemplam adequadamente os assuntos abordados na proposta (São utilizadas obras atualizadas e/ou as mais importantes da área)? A Proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: qualquer um dos itens tiver avaliação “NÃO ATENDE”; se 4 (quatro) ou mais itens tiverem avaliações “ATENDE PARCIALMENTE”. PARECER: ( ) APROVADA Assinatura do(a) Avaliador(a): ( ) NECESSITA DE COMPLEMENTAÇÃO Local/Data: Atende Parcialmente Não Atende Atende Avaliador(a): TCC-I- APLICADO - AVALIAÇÃO DO ESPECIALISTA-2 Acadêmico(a): ASPECTOS AVALIADOS 1. INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado / delimitado? 1.2. O problema está claramente formulado? 1.3. A justificativa/relevância apresentada está coerente com o problema apresentado? 2. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado? 2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? 2.2.1. (Caso não sejam apresentados objetivos específicos, deixe esse item em branco.) 3. FUNDAMENTAÇÃO TEÓRICA 3.1. A revisão bibliográfica está de acordo com o tema abordado e é suficiente sobre o assunto? 3.2. São apresentados trabalhos correlatos, bem como é realizada a correlação dos mesmos com a proposta? 4. DESENVOLVIMENTO / ESPECIFICAÇÃO / MODELAGEM 4.1. A descrição do sistema proposto está clara, adequadamente fundamentada e abrange solução para todos os problemas apresentados? 4.2. Os requisitos funcionais e não funcionais do software a ser desenvolvido foram claramente descritos e estão coerentes com os objetivos da proposta? 4.3. Os requisitos a serem implementados são suficientes para o software? 4.4. O diagrama de casos de uso apresentado está correto e coerente com os requisitos? 4.4.1. (Verificar a descrição dos principais casos e uso no apêndice) 5. AVALIAÇÃO GERAL (Organização e apresentação gráfica / linguagem usada) 5.1. A exposição do assunto é ordenada, isto é, as idéias estão bem encadeadas e a linguagem utilizada é clara? 5.2. As informações retiradas de outros autores estão devidamente referenciadas e constam nas referências bibliográficas? 5.3. As referências bibliográficas citadas contemplam adequadamente os assuntos abordados na proposta (São utilizadas obras atualizadas e/ou as mais importantes da área)? A Proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: qualquer um dos itens tiver avaliação “NÃO ATENDE”; se 4 (quatro) ou mais itens tiverem avaliações “ATENDE PARCIALMENTE”. PARECER: ( ) APROVADA Assinatura do(a) Avaliador(a): ( ) NECESSITA DE COMPLEMENTAÇÃO Local/Data: Atende Parcialmente Não Atende Atende Avaliador(a): TCC-I- APLICADO - AVALIAÇÃO METODOLÓGICA (PROFESSOR DE TCC-I) Acadêmico(a): 1. Os elementos pré-textuais (capa e folha de rosto) estão adequadamente formatados? 2. Os elementos textuais (capítulos, seções, formatação) estão corretamente definidos e formatados? 3. Os parágrafos (fonte, alinhamento, margem, espaçamento) estão corretos? 4. As siglas estão todas devidamente apresentadas? 5. As citações obedecem às normas da ABNT? 6. Os textos de citação (direta – citar página, quantidade de linhas, espaçamento, aspas - e indireta) estão adequadamente apresentados? 7. As listas estão adequadamente formatadas (numeração, alinhamento, uso do “;”e início com letra minúscula)? 8. As ilustrações e tabelas estão adequadamente formatadas (legenda, fonte, borda)? 9. As referências bibliográficas obedecem às normas da ABNT? 10. Os elementos pós-textuais (descrição casos de uso e outros) estão adequadamente apresentados? A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: qualquer um dos itens tiver resposta “NÃO ATENDE”; se 4 (quatro) ou mais itens tiverem avaliação “ATENDE PARCIALMENTE”. PARECER: ( ) APROVADA Assinatura do(a) avaliador(a): ( ) NECESSITA DE COMPLEMENTAÇÃO Local/Data: Não Atende ASPECTOS AVALIADOS Atende Parcialmente Prof. Sérgio Stringari Atende Avaliador(a): UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO ALAN FILIPE MATTIOLLO SISTEMA PARA AUDITORIA DE SEGURANÇA DE BANCO DE DADOS ORACLE Proposta de Trabalho de Conclusão de Curso submetida à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso I do curso de Sistemas de Informação — Bacharelado. Prof. Cláudio Ratke - Orientador BLUMENAU 2012 / I 2 1 INTRODUÇÃO Organizações têm objetivos de negócio. Para realizar esses objetivos de negócio, muitas decisões precisam ser tomadas diariamente. Tipicamente, uma grande quantidade de informações é necessária para que sejam tomadas as decisões corretas. Entretanto, estas informações não estão sempre disponíveis em um formato adequado. As organizações precisam de sistemas formais que permitam que sejam produzidas as informações necessárias, no formato certo, no tempo certo. Estes sistemas são chamados de sistemas de informação. Um sistema de informação é um modelo simplificado do mundo real de uma organização (Hann, 2005). Segundo Elmasri e Navathe (2003), um banco de dados é uma coleção de dados relacionados, e é justo dizer que bancos de dados desempenham um papel importante em quase todas as áreas aonde computadores são utilizados, incluindo negócios, comércio eletrônico, engenharia, medicina, direito, educação, entre outros. Segundo Date (2004), um banco de dados é basicamente um sistema computadorizado que mantém registros. O banco de dados pode ser considerado uma espécie de armário eletrônico de arquivamento, isto é, ele é um repositório ou contêiner para uma coleção computadorizada de arquivos de dados. Usuários do sistema podem realizar uma variedade de operações envolvendo estes arquivos de dados. Existe uma grande quantidade de sistemas de banco de dados, as soluções mais conhecidas e que requerem licença são Oracle Database, SQL Server e DB2. Há também soluções gratuitas, como o MySQL e o PostgreSQL. O banco de dados Oracle é líder no mercado mundial, em um estudo do Gartner DataGuest de 2011, baseado no revenda total dos softwares, o banco de dados Oracle possui 48,8% do mercado, detendo maior receita do que seus sete concorrentes mais próximos combinados (Oracle University, 2009). O Oracle é o banco de dados número um em uso hoje. O fato de ser escolhido por organizações militares e agências ao redor do mundo é um legado do projeto que deu origem ao banco de dados. O Oracle tem uma vasta quantidade de funções, produtos e ferramentas relacionadas à segurança. Infelizmente, o fato de estes recursos existirem não significa que são utilizados corretamente ou mesmo que são utilizados. Em fato, a maioria dos usuários está familiarizada com menos de 20% dos mecanismos de segurança do Oracle (Natan, 2009). Proteger a privacidade dos dados está cada vez mais difícil. Em um relatório do Identity Theft Resource Center, 414 violações de segurança foram descobertas nos Estados 3 Unidos em 2011. Isto representa mais de 22 milhões de registros com informações sensíveis de identidade ou de cartão de crédito comprometidas. O IT Policy Compliance Group concluiu que 90% das companhias não atendem as regras regulatórias dos Estados Unidos. Uma violação de dados financeiros pode custar 35 milhões de dólares para ser remediado, um custo de 239 dólares por registro (Oracle University, 2009). Com o intuito de tentar melhorar a segurança, companhias criam inúmeras regras e controles. Essas regras devem ser distribuídas por toda a área de infraestrutura de TI, e normalmente o local aonde os dados residem não recebe a devida atenção. O principal responsável pela segurança de um banco de dados é o administrador de banco de dados (DBA), porém, todos os usuários que possuem acesso ao banco de dados precisam estar conscientes de seus privilégios e seguir cartilhas de segurança, como não compartilhar suas senhas. Proteger os dados é algo complexo porque o banco de dados Oracle em si é complexo e extremamente configurável, também porque as aplicações, a necessidade de dados e seu uso são diferentes em cada organização (Natan, 2009). O presente trabalho propõe a verificação do nível de segurança do banco de dados Oracle e deve informar as alterações necessárias para se adequar ao modelo padrão ou customizado de segurança. 1.1 PROBLEMA A instalação do banco de dados acompanha uma configuração padrão que funciona, mas que não atende a todas as necessidades de segurança. A grande quantidade de ferramentas e recursos que o Oracle disponibiliza não é simples de serem configurados, assim, muitas vezes os próprios administradores de bancos de dados acabam mantendo a configuração padrão, fazendo com que o ambiente se torne inseguro. Essa grande quantidade de ferramentas e recursos leva a possibilidade de serem escolhidas as ferramentas erradas para desenvolver soluções de segurança em um determinado ambiente, o que pode significar tempo de trabalho desperdiçado e esforço contínuo para manter a solução ao longo do tempo. 1.2 JUSTIFICATIVA 4 Informações financeiras, de clientes, de empregados, de cartão de crédito, usualmente todas elas estão armazenadas no banco de dados. Como quase todos os ativos de informação considerados valiosos residem em um banco de dados, é preciso assegurar que estejam bem protegidos. No final de 2011, um cliente internacional da Teclógica submeteu a empresa local a um processo de auditoria. Os auditores desta empresa possuíam uma extensa lista de configurações que deveriam ser seguidas nos ambientes da empresa nacional. Como fornecedor, coube a Teclógica verificar se as configurações presentes nas bases de dados afetadas pela auditoria estavam em concordância. A necessidade de verificar cada configuração nos diversos recursos de segurança que o banco de dados Oracle oferece é bastante trabalhoso. As configurações que não estivessem de acordo deveriam ser ajustadas. Cada recurso que necessitava de ajuste demandava certa quantidade de pesquisa e verificações para viabilizar ou não sua alteração no ambiente, levando sempre em consideração todos os recursos que os sistemas do cliente utilizavam e os possíveis impactos se houvessem alterações. 1.3 OBJETIVOS O objetivo geral do trabalho proposto é o desenvolvimento de um sistema que verifique o nível de segurança de um banco de dados Oracle. Os objetivos específicos do trabalho proposto são: a) aprofundar-se no estudo de segurança da informação em banco de dados Oracle; b) pesquisar como funciona o processo de auditoria de segurança e porque ele é necessário; c) desenvolver módulos que permitam o cadastro de valores para os diversos parâmetros e recursos de segurança para posterior verificação; d) desenvolver um relatório que informe o nível de segurança da base de dados e as alterações necessárias para se adequar ao modelo de segurança escolhido. 5 2 FUNDAMENTAÇÃO TEÓRICA Este capítulo aborda assuntos a serem apresentados nas seções a seguir, tais como arquitetura do Oracle, segurança de banco de dados Oracle, autenticação de banco de dados, autorização, auditoria, criptografia, common criteria, sistema atual além de trabalhos correlatos. 2.1 CENÁRIO ATUAL O sistema proposto neste trabalho será implantando na área de infraestrutura da empresa Teclógica. A Teclógica é uma empresa que desenvolve softwares e oferece serviços de consultoria e suporte a sistemas e a infraestrutura. A área de infraestrutura está subdividida em outras duas áreas, a de projetos e a de suporte. Na área de projetos são desenvolvidas e implantadas novas soluções. A área de suporte é responsável por manter os diversos itens de configuração da Teclógica e de seus clientes, buscando atingir as metas descritas nos contratos, como nível de serviço estabelecido em um contrato de acordo de nível de serviço (SLA) e o tempo de disponibilidade dos itens de configuração. Na área de suporte de infraestrutura há uma equipe que trabalha com banco de dados e é responsável por monitora-los, mantê-los atualizados e disponíveis. Essa equipe deve atender a todas as demandas que estejam relacionadas a banco de dados, tais como: corrigir erros, aplicar melhorias, analisar o desempenho e gerar relatórios de tudo que ocorre nos ambientes. A necessidade de verificar as configurações relacionadas à segurança é uma demanda anual de um cliente da Teclógica, que passa por uma auditoria por parte de sua detentora, uma empresa internacional. Todas as verificações que precisam ser feitas para certificar-se que a configuração de um banco de dados atende a todos os requisitos do modelo de segurança são realizadas manualmente. É preciso avaliar a configuração de determinado parâmetro no ambiente e compará-lo com a configuração presente no documento modelo da empresa. A grande quantidade de configurações e produtos que precisam ser checados torna essa tarefa bastante demorada. O processo também é repetitivo, visto que há sempre mais de um banco de dados a ser verificado e quando o ambiente está configurado em Real Application Clusters (RAC), é preciso verificar cada nó, também tornando o trabalho suscetível a erros. 6 2.2 ARQUITETURA DO ORACLE Segundo Bryla e Loney (2009), enquanto o banco de dados Oracle é armazenado em um disco do servidor, uma instância Oracle existe na memória do servidor. Uma instância Oracle é composta de um grande bloco de memória alocado em uma área denominada System Global Area (SGA), junto com vários processos em segundo plano que interagem com a SGA e os arquivos de banco de dados no disco. Segundo Watson (2010), os processos em segundo plano da instância são os processos iniciados quando a instância é iniciada e executados até que ela termine. Uma sessão de usuário é um processo de usuário que é conectado a um processo de servidor. O processo de servidor é iniciado quando a sessão é criada e destruída quando a sessão termina. De acordo com Watson (2010), existem três tipos de arquivo que compõem um banco de dados Oracle, mais alguns que existem externamente ao banco de dados e são, estritamente falando, opcionais. Os arquivos obrigatórios são o arquivo de controle (controlfile), os arquivos de redo log online e os arquivos de dados. Os arquivos externos que normalmente estarão presentes são o arquivo de parâmetros de inicialização, o arquivo de senha e os arquivos de redo log arquivados, além dos arquivos de log e rastreamento. Em um ambiente Oracle RAC, um mesmo banco de dados será utilizado por mais de uma instância, cada instância fica em um servidor diferente e há uma interconexão de alta velocidade entre eles. O banco de dados residirá em um subsistema de disco especializado. Os arquivos de dados em um banco de dados Oracle são agrupados em uma ou mais tablespaces. Os objetos em uma tablespace são armazenados em segmentos, um segmento é um grupo de extensões que abrange um objeto de banco de dados tratado pelo Oracle como uma unidade, por exemplo, uma tabela ou índice. Uma extensão consiste de um ou mais blocos no banco de dados. Quando um objeto é expandido, o espaço adicionado ao objeto é alocado como uma extensão. Todas as estruturas lógicas em um banco de dados Oracle precisam ser armazenadas em algum lugar no banco de dados. O Oracle mantém um dicionário de dados que grava metadados sobre cada objeto – o dono do objeto, sua definição, privilégios relacionados, entre outros. Para objetos que requerem espaço para armazenamento físico, o Oracle irá alocar espaço dentro de um tablespace (Loney, 2009). Segundo Watson (2010), o dicionário de dados é um conjunto de metadados: dados sobre dados. Ele descreve o banco de dados, tanto física quanto logicamente, e seu conteúdo. 7 As definições de usuários, informações de segurança, restrições de integridade e informações de monitoramento de desempenho fazem parte do dicionário de dados. O banco de dados Oracle fornece várias ferramentas e mecanismos para proteger os dados corporativos, essas ferramentas dividem-se em três categorias abrangentes: autenticação, autorização e auditoria. 2.3 SEGURANÇA DE BANCO DADOS ORACLE Na área financeira, médica, de telecomunicação, infraestrutural, governamental, e até militar, os bancos de dados e os dados dentro dele são o negócio. Nos últimos anos, bancos de dados tem se tornado frequentes alvos de ataques cibernéticos. No inicio, os ataques tinham por objetivo causar perdas no negócio e notoriedade na comunidade hacker. Isto mudou drasticamente com foco em extrair informações sensíveis e valiosas na tentativa de ganho monetário por parte do agressor (Shaul; Ingram, 2007). Segurança de dados tem se tornado a área de maior foco para regulamentações, tanto governamental quando industrial. Regulamentações com sérias consequências por não cumprimento. A maior parte dos dados sensíveis passa mais de 95% do seu tempo em um banco de dados, mais geralmente em um banco de dados Oracle (Shaul; Ingram, 2007). A segurança é uma questão de preocupação vital para todas as instalações. As empresas devem ter um manual de segurança documentando todas as regras e procedimentos. Em segurança, não há certo ou errado; há somente conformidade e não conformidade com os procedimentos acordados. O conjunto de produtos Oracle fornece muitos recursos para impor a segurança até e além dos padrões mais altos especificados por qualquer legislação (Watson, 2010). Segundo Watson (2010), o princípio mais seguro a seguir quando determinar o acesso aos sistemas de computador é aquele do menor privilégio: ninguém deve ter acesso a qualquer coisa que esteja além do mínimo absolutamente necessário para executar seu trabalho, e qualquer coisa não especificamente permitida é proibida. O banco de dados Oracle está de acordo com essas regras, com isso, por padrão, ninguém pode fazer nada, com exceção dos usuários SYS e SYSTEM. Nenhum outro usuário pode se conectar, nem mesmo aqueles criados pelas rotinas de criação de banco de dados padrão. O fortalecimento do sistema é o processo pelo qual se configura de forma segura um sistema para protegê-lo de acessos não autorizados. O fortalecimento do sistema é necessário em qualquer sistema que tenha uma grande quantidade de opções de configuração e é viável 8 em qualquer sistema que tenha medidas de segurança para fazer com que este seja utilizado em ambientes orientados por segurança. O banco de dados Oracle se encaixa nas duas categorias (Natan, 2009). O propósito de fortalecer a segurança de um banco de dados é eliminar a maior quantidade de riscos de segurança possíveis. Isto pode ser feito removendo todos os elementos não essenciais do banco de dados e selecionando opções que limitem os acessos e diminuam os riscos. Quanto maior é o sistema e as capacidades que ele utiliza, mais riscos de segurança estarão presentes. Entretanto, quanto maior a base de dados e a quantidade de funcionalidades que esta utiliza, mais importante se torna seu fortalecimento (Natan, 2009). Com a evolução do banco de dados Oracle mais e mais opções podem ser utilizadas para garantir a segurança dos dados. O aumento do nível de segurança em um banco Oracle passa por uma grande quantidade de atividades e envolvem muitas opções de configuração, a mais importante é: se tem algo que não seja utilizado, remova (Natan, 2009). Segundo Natan (2009), quanto menor for a quantidade de opções e recursos utilizados por um sistema, mais seguro ele será, de fato se algo não é utilizado pelo sistema não significa que não possa ser utilizado por algum invasor. Exemplos de configurações que podem ser alteradas ou removidas se não utilizadas: a) remover ou bloquear contas pré-definidas e alterar suas senhas. b) remover grupos de privilégios. c) remover componentes de software. d) remover opções não utilizadas, como EXPROC se o sistema não utilizar procedimentos externos. e) remover privilégios públicos. O banco de dados Oracle possui uma grande quantidade de parâmetros. A maior parte das configurações de um banco de dados Oracle é realizada através de parâmetros de instância, esses parâmetros são armazenados em um arquivo de texto ou em um arquivo binário, sendo este último modo o recomendado pela Oracle. Alguns parâmetros controlam configurações relacionadas a opções de segurança. Um componente muito importante na arquitetura do banco de dados Oracle é o listener, responsável por ouvir em uma porta e receber as solicitações de autenticação dos usuários. Por se tratar de um processo que se comunica diretamente com a rede, o arquivo de configurações do listener precisa ser configurado corretamente. 9 Em termos Oracle, segurança de rede significa proteção de confidencialidade e integridade. A parte de confidencialidade assegura que ninguém pode ler os dados enquanto estes passem pela rede, e a parte de integridade assegura que ninguém pode alterar os dados enquanto estes se movem (Shaul; Ingram, 2007). As ferramentas e mecanismos de segurança fornecidos pelo banco de dados Oracle dividem-se em três categorias abrangentes: autenticação, autorização e auditoria. 2.4 AUTENTICAÇÃO DE BANCO DE DADOS Autenticação é o processo no qual o Oracle tenta identificar sua identidade quando você faz logon no banco de dados e decide se o permitirá. Autenticação é o primeiro passo em qualquer acesso para o banco de dados – é o portão da frente do seu castelo. Se não existir uma forma de identificar uma parte da conexão ou houver uma forma de atacar o esquema de autenticação e fingir uma identidade, nada mais importa (Natan, 2009). O Oracle disponibiliza vários métodos para autenticar usuários. Todas as opções disponíveis permitem que se escolha a método mais apropriado para um determinado ambiente. Em um ambiente onde a rede é protegida do ambiente externo com firewalls e o tráfego da rede entre usuário e o servidor de banco de dados usa algum método de criptografia, a autenticação pelo banco de dados é o método mais fácil de autenticar o seu usuário. Muitas operações especiais do banco de dados requerem uma forma diferente e mais segura de autenticação, seja a feita pelo sistema operacional ou usando arquivo de senhas (Bryla; Loney, 2009). A autenticação da rede conta com serviços de terceiros, como Distributed Computing Environment (DCE), Kerberos, Public Key Infrastructure (PKI) e Remote Authentication Dial-in User Service (RADIUS). A autenticação de três camadas autentica o usuário enquanto mantém a identidade do cliente no servidor. Além disso, a camada intermediária fornece serviços de pool de conexão e implementa a lógica de negócio para o cliente. 2.5 AUTORIZAÇÃO De acordo com Bryla e Loney (2009), a autorização fornece acesso a vários objetos nos banco de dados, uma vez que tenha sido autenticado nele. Alguns usuários podem ser autorizados para executar um relatório em relação à tabela de vendas diárias, alguns podem 10 ser desenvolvedores e, portanto, precisam criar tabelas e relatórios. Alguns usuários podem nunca se conectar, mas seus esquemas podem possuir uma quantidade de tabelas para uma aplicação especifica, como folha de pagamento ou contas a receber. A autorização vai além do simples acesso a objetos de bancos de dados, acesso a uma tabela ou relatório. A autorização também inclui os direitos de uso de recursos do sistema, como privilégios para executar determinadas ações, tempo de uso de processamento, tempo máximo que a sessão poderá ficar ociosa, entre outros. Após o usuário estar autenticado no banco de dados, a próxima etapa é determinar que tipos de objetos, privilégios e recursos o usuário tem permissão para acessar ou usar. Os perfis podem controlar como as senhas são gerenciadas e colocar limites em vários tipos de recursos do sistema. No Oracle, existem dois tipos de privilégios, os de sistema e os de objeto. Esses privilégios podem ser atribuídos diretamente a uma conta de usuário, ou por meio de atribuições (roles). Um privilégio de sistema é um direito para executar uma ação em qualquer objeto no banco e dados, assim como outros privilégios que não envolvem nenhum objeto, mas sim procedimentos como executar jobs em lote, alterar os parâmetros do sistema, criar atribuições e até mesmo conectar-se ao banco de dados (Bryla; Loney, 2009). Ao contrário de um privilégio de sistema, um privilégio de objeto é um direito para executar um tipo de ação em um objeto especifico, como uma tabela ou uma sequência que não está no esquema do usuário (Bryla; Loney, 2009). Uma atribuição (role) é um grupo nomeado de privilégios, seja de sistema ou de objeto, ou uma combinação dos dois, que ajuda a facilitar a sua administração. Os privilégios são concedidos a uma atribuição, que por sua vez é concedida a uma conta de usuário, diminuindo drasticamente o overhead administrativo envolvido na manutenção de privilégios para usuários. A utilização de atribuições aumenta a segurança, visto que é possível especificar uma senha para que o usuário que possua determinada atribuição possa ativa-la. 2.6 AUDITORIA Auditoria é um exame metódico ou revisão de um ambiente com o objetivo de garantir complacência com regulamentos e para detectar anormalidades e acessos não autorizados. Segurar ambientes de tecnologia da informação (TI) depende fortemente do processo de auditoria (Stewart; Tittel; Chapple, 2005). 11 Independentemente da qualidade das suas diretivas de segurança, existem ocasiões em que uma diretiva não é suficiente. Será preciso aceitar que os usuários possuem privilégios que podem ser perigosos. Tudo que pode ser feito é monitorar o uso destes privilégios e controlar oque os usuários estão fazendo com ele. A auditoria precisa ser utilizada de forma criteriosa. Habilitar auditoria em muitos componentes do banco de dados, de forma contínua pode causar um número excessivo de registros e um gargalo no sistema. A auditoria tem por objetivo ajudar a proteger os bens da empresa monitorando como, por quem e quando os recursos estão sendo utilizados. O DBA deve utilizar a auditoria com frequência para monitorar a saúde do banco de dados. Segundo Bryla (2009), a auditoria em um banco de dados Oracle abrange vários níveis diferentes de monitoramento. Em um nível alto, ela pode registrar tanto as tentativas bemsucedidas quanto as malsucedidas de login, acesso a objetos, ou execução de determinadas ações. Existem três técnicas de auditoria em banco de dados Oracle: A auditoria de banco de dados pode rastrear o uso de certos privilégios, a execução de certos comandos, o acesso a certas tabelas ou tentativas de logon. A auditoria baseada em valor utiliza triggers de banco de dados. Quando uma linha é inserida, atualizada ou excluída, um bloco de código será executado para que possa registrar os detalhes completos do evento. O Oracle Fine Grained Auditing (FGA) permite controlar o acesso a tabelas de acordo com quais linhas ou colunas foram acessadas. É muito mais precisa que a auditoria de banco de dados e a auditoria baseada e valor. 2.7 CRIPTOGRAFIA A criptografia pode melhorar a segurança tanto dentro quanto fora do banco de dados. A Oracle fornece um recurso chamado Transparent Data Encryption (TDE) que provê o beneficio de criptografia sem overhead adicional no armazenamento de dados em disco. Segundo Bryla (2009), um usuário pode ter uma necessidade legítima de acessar a maioria das colunas de uma tabela, mas se uma das colunas estiver criptografada e ele não conhecer a chave de criptografia, as informações não serão utilizáveis. A mesma preocupação é verdadeira para informações que precisam ser transmitidas através de uma rede. As técnicas de autenticação, autorização e auditoria garantem acesso legítimo aos dados a partir de um 12 usuário de banco de dados, mas não impedem o acesso de um usuário do sistema operacional que tenha acesso aos arquivos desse sistema que compõem o próprio banco de dados. Pode-se utilizar o TDE para garantir ainda mais a integridade dos dados. O TDE criptografa os dados nos arquivos de dados, undo logs, redo logs, e no buffer cache da system global area (SGA) na memória. Usar o TDE provê um nível avançado de segurança para dados sensíveis sem que seja preciso alterar as aplicações que usam esses dados. Usuários e desenvolvedores continuaram acessando e armazenando as linhas do mesmo modo que sempre o fizeram; a única alteração será na forma com que as linhas serão armazenadas fisicamente no nível do sistema operacional (Loney, 2009). Quando finalizada a instalação padrão de um banco de dados Oracle e Oracle client, suas comunicações serão transmitidas em texto claro na infraestrutura de rede. Se dados sensíveis forem transmitidos em texto claro há um potencial ponto de vulnerabilidade bem como de confidencialidade de dados. Para criptografar o tráfego de rede entre o cliente Oracle e o servidor Oracle pode-se utilizar o recurso de criptografia de dados que vem no pacote Oracle Advanced Security Options (Natan, 2009). 2.8 COMMON CRITERIA O modelo de avaliação de segurança a partir de boas práticas do mercado (auditoria externa) assume que existem “melhores práticas” disponíveis sobre como proteger um determinado tipo de ambiente ou produto. Este modelo mede a segurança ao comparar o nível de controle gerencial sobre o ambiente do sistema. O resultado final é uma lista de fragilidades de segurança, ou defeitos, que devem ser corrigidos para que os sistemas operem em um nível aceitável de riscos de segurança (Batista, 2007). O marco inicial da avaliação de segurança ocorreu quando o governo norte-americano publicou a norma intitulada Trusted Computing System Evaluation Criteria (TCSEC), também conhecido como Orange Book, para avaliação de segurança (criptografia, firewalls, etc.). Em 1991 uma comissão europeia publicou uma norma de certificação de segurança intitulada Information Technology Security Evaluation Criteria (ITSEC) baseada no TCSEC, posteriormente tornando-se o padrão europeu para avaliação de produtos e sistemas (Batista, 2007). Segundo Albuquerque e Ribeiro (2002), outros padrões surgiram na década de 1990, como o Canadian Trusted Computer Product Evaluation (CTCPEC) que é a junção das normas TCSEC e ITSEC, o Minimum Security Functionality Requirements for Muiti-user 13 Operating Systems (MSFR), desenvolvido pelo National Institute of Standards and Technology (NIST), e o Federal Criteria (FC) desenvolvida pelos EUA. Com tantas normas de certificação, as empresas multinacionais acabaram tendo problemas ao ter que certificar seus produtos perante cada órgão de governo, gerando enormes custos de certificação. Para resolver este problema os países envolvidos encaminharam para a International Organization for Standardization (ISO) uma proposta de consolidação de todos os critérios para avaliação de segurança em um único critério. A ISO acatou a ideia e posteriormente apresentou a normal ISO 15.408:1999, nomeando-a Common Criteria (Batista, 2007). 2.9 TRABALHOS CORRELATOS O sistema proposto permitirá a customização de um modelo de segurança, funcionalidade não presente no software correlato Oracle Configuration Management, que possui um pacote que pode ser adquirido separadamente, chamado Enterprise Monitoring for Security & Compliance. Estão embutidas neste software as práticas de segurança padrões da Oracle. Também possui funções avançadas, como: a) ações corretivas automatizadas e criação de chamados para rápida solução. b) comparação de configurações baseado em padrões reconhecidos. c) mantém histórico das alterações. Foram consultados os trabalhos de Bruno Castellani Gucowski e Dayana Fernanda Trapp para conclusão do curso de Ciências da Computação na Universidade Regional de Blumenau. O trabalho de Gucowski (2011) foi desenvolver um middleware para garantir a segurança da informação e abstração dos aspectos e conceitos dos requisitos da ISSO/IEC 15.408 para os desenvolvedores de software. O trabalho de Trapp (2010) foi desenvolver um software para analisar um sistema e verificar se o mesmo implementa requisitos de segurança estabelecidos pela norma ISO/IEC 15.408. 14 3 DESENVOLVIMENTO Neste capítulo estão descritos as particularidades técnicas do sistema proposto tais como a descrição do mesmo e a apresentação dos requisitos funcionais e não funcionais, diagrama de casos de uso e suas descrições e principais softwares a serem utilizados. 3.1 SISTEMA PROPOSTO Propõem-se o desenvolvimento de uma aplicação web para auditoria de segurança em banco de dados Oracle. O sistema possuirá telas para configuração de um modelo, que será utilizado na verificação do banco de dados alvo. O sistema deverá trazer um modelo padrão baseado nas configurações e nas melhores praticas recomendadas pela Oracle. Após a customização do modelo de segurança, a principal função do sistema será a verificação do nível de segurança, que irá comparar o valor dos parâmetros no banco de dados alvo, bem como o valor dos parâmetros nos arquivos de configuração no sistema operacional com os valores presentes no modelo de segurança escolhido. Alguns parâmetros são mais críticos e pesarão mais na avaliação. A quantidade de parâmetros verificados e o resultado de cada um de acordo com sua criticidade resultarão no nível de segurança do banco de dados como um todo. Um relatório deverá apontar todas as configurações que estão em concordância em relação ao modelo e todas aquelas que requerem atenção. Para as configurações que não estiverem de acordo, será informada a configuração correta e as possíveis causas se forem alteradas. Se aplicável, o relatório deverá alertar possíveis necessidades de configuração e a relação entre elas. Após a análise, um administrador de banco de dados usará o relatório para informar ao cliente todos os pontos que precisam ser alterados. Para implantar o sistema, será preciso instalar o Oracle Applications Express (APEX) no banco de dados alvo. Esta instalação fará parte da instalação do próprio sistema. O Oracle APEX é um ambiente de rápido desenvolvimento de aplicações web baseado no banco de dados Oracle. A implantação do novo sistema irá acelerar a verificação das configurações de segurança de um banco de dados. O usuário do sistema não precisará verificar as configurações, bastará informar qual modelo de segurança deve ser utilizado. Para construção deste sistema, serão utilizadas as seguintes ferramentas: 15 3.2 Oracle Database 11g; Oracle Aplication Express (APEX). ESPECIFICAÇÃO DE REQUISITOS O Quadro 1 apresenta os requisitos funcionais previstos para o sistema e sua rastreabilidade, ou seja, vinculação com os casos de uso associados. Requisitos Funcionais RF01: O sistema deverá permitir o cadastro de configurações para um Caso de Uso UC01 modelo de segurança customizado. RF02: O sistema deverá possibilitar o uso de um modelo de segurança UC02 baseado nas recomendações da Oracle RF03: O sistema deverá permitir o cadastro de exceções de configurações. UC03 RF04: O sistema deverá permitir o usuário efetuar login no sistema. UC04 RF05: O sistema deverá permitir o usuário alterar a senha de login. UC05 RF06: O sistema deverá possibilitar a verificação das configurações de UC06 segurança. RF07: O sistema deverá emitir um relatório com o resultado da análise de UC07 segurança. Quadro 1: Requisitos funcionais O Quadro 2 lista os requisitos não funcionais previstos para o sistema. Requisitos Não Funcionais RNF01: O sistema deverá utilizar banco de dados Oracle 11g. RNF02: O sistema será desenvolvido em PL/SQL. RNF03: As telas e relatórios serão desenvolvidos com o Oracle APEX. RNF04: O sistema poderá ser acessado através de qualquer navegador. RNF05: Os status das configurações são: ATENDE: Configuração está de acordo com o modelo de segurança. ALERTA: Configuração não está de acordo e não é tão critica ou está parcialmente de acordo. CRITICO: Configuração não está de acordo e é importante. Quadro 2: Requisitos não funcionais 16 3.3 MODELAGEM Esta seção apresenta o diagrama que será necessário para o entendimento do sistema proposto. 3.3.1 DIAGRAMA DE CASOS DE USO Esta seção apresenta o diagrama de casos de uso preliminar do sistema proposto, sendo que os detalhamentos dos casos de uso estão disponíveis no Apêndice A. uc Use Case Model UC04 - Efetuar login UC02 - Selecionar modelo de segurança UC05 - Alterar senha «precedes» UC03 - Cadastrar exceções UC06 - Executar v erificação DBA «precedes» UC01 - Cadastrar configurações UC07 - Emitir relatório com resultado da análise Figura 1: Diagrama de casos de uso 17 4 REFERÊNCIAS BIBLIOGRÁFICAS ALBUQUERQUE, Ricardo; RIBEIRO, Bruno. Segurança no desenvolvimento de software. Rio de Janeiro: Campus, 2002. BATISTA, Carlos F. A. Métricas de segurança de software. 2007. 103 f. Dissertação (Mestrado em Informática) - Programa de Pós-Graduação em Informática, Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro. Disponível em: < http://www.dominiopublico.gov.br/download/texto/cp040026.pdf >. Acesso em: 26 mai. 2012. BRYLA, Bob. OCP oracle database 11g administração II. Tradução Teresa Cristina Felix de Souza. Porto Alegre: Bookman, 2010. BRYLA, Bob; LONEY, Kevin. Oracle database 11g manual do dba. Tradução Altair Caldas Dias de Moraes. Porto Alegre: Bookman, 2009. DATE, C. J. An introduction to database systems, 8th edition. Boston: Pearson Education, 2004. ELMASRI, Ramez; NAVATHE, Shamkant B. Fundamentals of database systems fourth edition. Boston: Pearson Education, 2003. HAN, Lex De. Mastering oracle sql and sql*plus. Berkeley, CA: Apress, 2005. LONEY, Kevin. Oracle database 11g the complete reference. New York: McGraw-Hill, 2009. NATAN, Ron Ben. HOWTO secure and audit oracle 10g and 11g. Boca Raton: CRC Press, 2009. SHAUL, Josh; INGRAM, Aaron. Practical oracle security. Rockland: Syngress, 2007. STEWART, James Michael; TITTEL Ed; CHAPPLE Mike. CISSP: certified information systems security professional study guide 3rd edition. Alameda, CA: Sybex, 2005. ORACLE UNIVERSITY. Addresing data privacy, regulatory compliance, and insider threats. Oracle University, 2009. WATSON, John. OCA oracle database 11g administração I. Tradução Altair Caldas Dias de Moraes. Porto Alegre: Bookman, 2010. 18 APÊNDICE A – Detalhamento dos casos de uso Esta seção da proposta apresenta a descrição dos casos de uso conforme previstos no diagrama apresentado na seção 3.3.1. UC01 Cadastrar configurações Permite ao DBA cadastrar e alterar o valor de parâmetros. UC02 Selecionar modelo de Segurança Permite ao DBA selecionar o modelo de segurança que será utilizado para posterior verificação do banco de dados alvo. UC03 Cadastrar exceções Permite ao DBA cadastrar algumas configurações que devem ser desconsideradas no momento da verificação do banco de dados alvo. UC04 Efetuar login Permite ao DBA realizar login no aplicativo. UC05 Alterar senha Permite ao DBA alterar a senha de login do aplicativo. UC06 Executar verificação Permite ao DBA executar a verificação de segurança no banco de dados alvo. A execução irá disparar um job que irá comparar as configurações do modelo de segurança com aquelas presentes no banco de dados alvo. Constraints Pré-condição . O DBA deve selecionar um modelo de segurança. Caso não tenha sido selecionado será utilizado o modelo padrão recomendado pela Oracle. Pós-condição . O relatório com o resultado da verificação poderá ser visualizado. UC07 Emitir relatório com resultado da análise Permite ao DBA visualizar o relatório com o resultado da verificação de segurança. Constraints Pré-condição . O DBA deve ter executado a verificação, gerando os resultados para o relatório. Pós-condição . O resultado de segurança no banco de dados alvo poderá ser visualizado. 19 Verificação não realizada {Exceção} Se a verificação de segurança não foi executada será apresentada a mensagem “Verificação de segurança não foi executada”.