Descargar

Segurança em servidores de bancos de dados, técnicas de invasão e proteção


Partes: 1, 2, 3

  1. Resumo
  2. Introduç
  3. Informaç?o e conhecimento
  4. Armazenamento e acesso a dados
  5. Incidentes em bancos de dados
  6. Métodos de ataques a bancos de dados
  7. Configuraç?o de um banco de dados seguro
  8. Conclus
  9. Glossário
  10. Refer?ncias bibliográficas
  11. Lista de abrevitauras e siglas
  12. Agradecimentos

Monografia apresentada ao Programa de Pós- Graduação Lato Sensu da Universidade Nove de Julho – UNINOVE, para a obtenção do título de Especialista em Segurança de Informação.

Para Vanessa, Que sempre me ap6ia e me acompanha nas minhas maluquices, "Subi talvez às máximas alturas, Mas, se hoje volto assim, com a alma às escuras, É necessário que inda eu suba mais!" Augusto dos Anjos, "Solilóquio de um visionário" Do livro Eu e Outros Poemas – 1912

Resumo

É inquestionável a importância dos sistemas informatizados nas organizações contemporâneas, presentes em praticamente todos os processos desde o chão de fábrica, vendas, faturamento, recursos humanos, controles financeiros, logísticos, sistemas via Internet, incluindo sistemas de apoio a tomada de decisões baseados em históricos armazenados. A geração da inteligência competitiva se baseia na correta utilização dos diversos recursos de informação disponíveis. E na base da maioria dos sistemas informatizados estão os Bancos de Dados e seus sistemas gerenciadores que devido à importância estratégica de suas funções devem estar devidamente protegidos na sua integridade e disponibilidade. As organizações são inteiramente responsáveis pelos dados e informações armazenados em seus bancos, as conseqüências de uma falha na segurança dos dados podem acarretar em perdas financeiras e conseqüências indiretas como desqualificação de sua imagem perante a sociedade e seus clientes, a preocupação com a segurança dos dados deve ser responsabilidade de todos os profissionais envolvidos no desenvolvimento e manutenção dos sistemas. Falhas de segurança sempre existirão, e também pessoas dispostas a se utilizar delas para invadir ou atacar os sistemas vulneráveis. Os profissionais devem ter o conhecimento e habilidades para enfrentar o desafio de prover a segurança dos ativos de informação, assim como o domínio dos meios de armazenamento de dados, recuperação, linguagens e estruturas de sistemas, os tipos de falhas e incidentes, os métodos de invasão e ataques e seus personagens, e uma especial atenção a forma de evitá-los. Mesmo tendo a consciência que um sistema inteiramente a prova de falhas e invasões é praticamente impossível de ser implementado, deve-se evitar ao máximo as ocorrências, conhecendo a maioria da falhas e vulnerabilidades, prevendo ações e assumir práticas voltadas à total segurança dos sistemas, e na impossibilidade de evitar uma quebra de segurança, quando esta ocorrer, que os danos aos dados e tempo de indisponibilidade sejam os mínimos possíveis. Este estudo visa oferecer aos administradores uma visão geral sobre os aspectos da segurança da informação, falhas e vulnerabilidades, metodologias de ataque utilizadas por "hackers" e "crackers", além de uma demonstração dos passos para uma instalação, configuração e manutenção de um ambiente de máxima segurança em um sistema de banco de dados. Uma pesquisa bibliográfica e eletrônica foi executada para a obtenção dos dados necessários a sua elaboração, foram seguidas as recomendações de segurança publicadas pelos fabricantes de sistemas. As práticas de segurança propostas, quando conhecidas e corretamente aplicadas, podem minimizar os riscos de segurança em um sistema, dificultando e por vezes neutralizando as possibilidades de ataques e invasões, além das falhas humanas, mecânica e fatores ambientais. A garantia de um ambiente seguro inclui a atualização tecnológica dos sistemas e membros das equipes de desenvolvimento e manutenção, incluindo a conscientização dos gestores dos investimentos aplicados a segurança, que tem como foco a continuidade dos negócios, o apoio tecnológico e operacional, gerando o suporte necessário aos gestores a tomadas de decisões estratégicas, que delinearão o planejamento da organização no caminho do diferencial perante o mercado e sociedade e que atua. O processo de prover a segurança dos dados e sistemas deve ser uma rotina cíclica, de contínuos testes e novas funcionalidades, na busca das melhores práticas de desenvolvimento e proteção a informação, a cada nova tecnologia agregada à estrutura acarreta em novos estudos de segurança, esse processo de retroalimentação assegurará à organização a confiança na continuidade de seus negócios, e conseqüentemente na vantagem competitiva objetivada pelos seus gestores.

Palavras-chave: Informática, Bancos de Dados, Dados, Informação, Conhecimento, Segurança, falhas, invasão, vulnerabilidades, continuidade dos negócios, hackers, crackers.

SEGURANÇA EM SERVIDORES DE BANCOS DE DADOS, TÉCNICAS DE INVASÃO E PROTEÇÃO Autor: Munari, Luiz Marcelo Fernandes Orientadora: Profª Daniela Luchesi Abstract Is unquestionable the importance of the systems computerized in the contemporary organizations, presents in practically all of the processes from the factory ground, sales, revenue, human resources, financial controls, logistics, Internet systems, including support systems the jack of decisions based on stored reports. The generation of the competitive intelligence is based on the correct use of the several available information resources. And in the base of most of the computerized systems are the Databases and your managers systems that due to the strategic importance of your functions should be properly protected in your integrity and availability. The organizations are entirely responsible for the data and information stored in your banks, the consequences of a fault in the security of the data can cart in financial losses and indirect consequences as disqualification of your image before the society and your clients, the concern with the security of the data should be the professionals" responsibility involved in the development and maintenance of the systems. Security holes always exist, and also people willing to use them to invade or attack vulnerable systems. The professionals should have the knowledge and abilities to face the challenge of providing the security of the assets of information, as well as the domain of the data storages, recovery, languages and structures of systems, the types of faults and incidents, the invasion methods and attacks and your actors, and a special attention the way of avoiding them. Even with the conscience that a system entirely the proof of faults and invasions are practically impossible of being implemented, it should be avoided to the maximum the occurrences, learning most of the faults and vulnerabilities, foreseeing actions and to assume practices to apply total security of the systems, and in the impossibility of avoiding a break of security, when this happens, that the damages at the data and time of unavailability be the minimal possible. This study seeks to offer to the administrators a general view on the aspects of the security of the information, faults and vulnerabilities, attack methodologies used by "hackers" and "crackers", besides a demonstration of the steps for an installation, configuration and maintenance of an environment of maxim security in a database system. A bibliographical search and electronics was run for the obtaining of the necessary data for your elaboration, and security"s recommendations published by the manufacturers of systems. Security's practices proposals, when known and correctly applied, they can minimize security's risks in a system, hindering and sometimes neutralizing the possibilities of attacks and invasions, besides the human faults, mechanics and environmental factors. The guarantee of a safe environment includes the technological upgrade of the systems and members of the development and maintenance teams, including the awareness of managers of investment applied to security, that you has as focus the continuity of the businesses, the technological and operational support, generating the necessary support to managers in strategic decision- making, that will delineate the planning of the organization in the path of the differential to the market and society. The process of providing the security of the data and systems should be a cyclical routine, of continuous tests and new functionalities, in the intention of the best practices of development and protection the information, to each new technology joined to the structure induce in new studies of security, this feedback process will assure to the organization the trust in the continuity of your businesses, and consequently in the competitive advantage aimed at by your managers.

Word-key: Informatics, Databases, Data, Information, Knowledge, Security, faults, invasion, vulnerabilities, continuity of the businesses, hackers, crackers.

CAPÍTULO 1

Introdução

Os Servidores de Bancos de Dados são responsáveis pelo armazenamento, otimização e distribuição dos dados utilizados pela grande maioria dos sistemas informatizados, estes devem estar protegidos de perdas, roubos, desvios e exposições indevidas. O profissional de Sistemas de Informação tem a obrigação de conhecer as técnicas de ataque e defesa e prover a integridade das informações sob sua responsabilidade.

1.1 Objetivo Este trabalho tem como proposta a demonstração dos riscos de segurança presentes em sistemas de bancos de dados, os meios de invasão e suas técnicas de defesa, além de configurações de segurança propostas em um ambiente SQL Server 2000, instalado em um servidor Windows 2000 Server.

1.2 Justificativa Os bancos de dados armazenam informações vitais as organizações, por esse motivo devemos proteger os dados neles armazenados de perdas, roubos, mantê-los disponíveis e íntegros. A proteção aplicada especificamente no servidor de banco de dados visa proteger a estrutura de ataques e falhas de segurança que o atinjam, neutralizando ou minimizando os problemas que possam ocorrer.

O ambiente SQL Server 2000, hospedado em um Servidor Windows 2000 Server, apesar do tempo decorrido de sua implementação, ainda é muito utilizado nas organizações, devido a sua robustez, estabilidade e facilidade de configuração, mas é um sistema com muitas falhas de segurança nativas, que foram solucionadas no decorrer do tempo, e hoje se encontra em um nível de estabilidade e confiabilidade aceitáveis. Uma instalação padrão desse ambiente sem os devidos cuidados com a segurança se apresentaria como um sistema bastante vulnerável e potencialmente instável.

A utilização dos métodos propostos nesse trabalho proporcionará um sistema com a estabilidade e confiabilidade atualmente aceitáveis.

1.3 Metodologia Para a confecção desse trabalho, foi efetuada uma pesquisa bibliográfica, abrangendo as áreas Administrativas, Direito e principalmente Tecnologia de Informação, especialmente focados em segurança de informação e bancos de dados, periódicos como revistas técnicas e artigos publicados na Internet, fóruns de discussão, recomendações de segurança obtidas no site do fabricante dos aplicativos utilizados, aliado aos conhecimentos obtidos pela prática adquirida em anos de trabalho no ambiente proposto.

1.4 Estrutura do trabalho Capítulo 1 – Introdução.

o Demonstra os objetivos, justificativa, metodologia e estrutura do presente trabalho.

Capítulo 2 – A informação.

o Faz uma compilação de como é gerado o conhecimento a partir das informações e dados armazenados. Discorre sobre a preocupação com segurança de informação, Capítulo 3 – Armazenamento e acesso a dados.

o Demonstra meios de armazenamentos de dados, conceitua Bancos de Dados, Sistemas Gerenciadores de Bancos de Dados, seu funcionamento, linguagens utilizadas e formas de acessos a dados.

Capítulo 4 – Incidentes em bancos de dados.

o Demonstra os incidentes que podem ocorrer em Banco de Dados, danos, falhas, invasões, ataques e atacantes.

Capítulo 5 – Métodos de ataques a bancos de dados.

o Demonstra explorações, invasões, e métodos de ataques a Sistemas e Bancos de Dados.

Capítulo 6 – Configuração de um banco de dados seguro.

o Passo a passo para uma configuração segura de um sistema Gerenciador de Bancos de Dados. Capítulo 7 – Conclusão.

o Conclus5es e considera96es finais.

• Anexo 1- "Check list""de seguran9a para o SQL Server 2000.

• Anexo 2- Lista das atualiza96es disponiveis para o SQL Server 2000.

CAPÍTULO 2

Informação e conhecimento

Segundo Davenport e Prusak (1998) o conhecimento é a única fonte capaz de gerar vantagem competitiva sustentável, e que a forma como elas utilizam o que sabem e como adquirem novos conhecimentos é o que garante seu diferencial no mercado. Cabe aos profissionais de Tecnologia de Informação a tarefa de zelar pela integridade da informação armazenada, oferecendo o suporte necessário aos gestores na geração do conhecimento necessário a tomadas de decisões estratégicas.

2.1 Dados, Informação e Conhecimento Para o entendimento dos conceitos apresentados devemos discriminar a diferença de dado, informação e conhecimento, que devido às semelhanças de suas atribuições freqüentemente se confundem.

Dado, do Latin Datu – "aquilo que se conhece e a partir do que se inicia uma solução de um problema, a formação de juízo, o desenvolvimento de um raciocínio. Elemento inicial de qualquer ato de conhecimento. Informação capaz de ser processada por um computador" (HOUAISS, 2001).

Dados podem ser entendidos como elementos não interpretados ou conjunto simples de registros, resultado da experiência, observação ou atividades. Os dados podem consistir em números, palavras ou imagens, as medições e observações de um conjunto de variáveis. O dado em seu sentido mais puro, não tem utilidade prática, pois necessitam de um conceito, de um escopo para serem interpretados.

De acordo com o Dicionário Houaiss da Língua Portuguesa (2001), informação vem do latim informatio,onis, ("delinear, conceber idéia"), interpretação ou significado dos dados.

"Informação é uma abstração informal (isto é, não pode ser formalizada através de uma teoria lógica ou matemática), que está na mente de alguém, representando algo significativo para essa pessoa." (Setzer, 2002) Os dados corretamente agrupados, organizados e coerentes ao contexto que se destina, são a base ou uma fonte de absorção de informações. Então, informação seria aquilo que se tem através da decodificação desses dados.

"Conhecimento é uma abstração interior, pessoal, de alguma coisa que foi experimentada por alguém" (SETZER, 2002), corresponde a união das informações catalogadas, agregadas as experiências do seu utilizador, que guia as decisões estratégicas embasados em aspectos diretos e indiretos do conhecimento empresarial acumulado.

2.2 O conhecimento como vantagem competitiva Nonaka (1997) afirma que "numa economia onde a única certeza é a incerteza, a única fonte garantida de vantagem competitiva duradoura é o conhecimento", vemos também que são extremamente delicados os detalhes que refletem nesta vantagem, as organizações necessitam aprimorar o conhecimento através das informações armazenadas durante sua própria existência. A formação deste capital intelectual é um processo cíclico e interminável, que norteia as ações estratégicas dessas organizações, e a tecnologia da informação vem sendo utilizada como elemento agregador dessas informações, através de criação de diversos sistemas informatizados que oferecem o devido suporte aos gestores nas tomadas de decisões.

O progresso de uma organização estará diretamente ligado a capacidade da utilização dessas informações para ações inovadoras e a criação do conhecimento empresarial.

2.3 Segurança da informação Mesmo antes da popularização da informática, desde que dados começaram a ser armazenados, existe a preocupação com a segurança das informações. Segundo a NBR ISO/IEC 17799 o conceito de segurança de informação na capacidade de preservação de cinco aspectos fundamentais: Confidencialidade, Integridade, Disponibilidade, Autenticidade e Não repúdio, Confidencialidade – "Garantia de que o acesso à informação seja obtido somente por pessoas autorizadas."; Integridade – "Salvaguarda da exatidão e completeza da informação e dos métodos de processamento."; Disponibilidade – "Garantia de que os usuários autorizados obtenham acesso à informação e aos ativos correspondentes sempre que necessário."; Autenticidade – "Verificar se a comunicação, transação ou acesso a algum serviço é legítimo."; Não repúdio – "No envio de uma mensagem o remetente não poderá negar o envio da mesma.".

Devemos agora dividir os problemas de segurança em dois cenários, a segurança física e lógica:

Segurança física: Ameaças como acidentes, incêndios, desabamentos, alagamento, acesso indevido, defeitos de hardware.

Segurança lógica: vírus, acessos remotos, backups desatualizados, violação de senhas, invasões, ataques etc.

2.3.1 Preocupações com a segurança dos dados.

Engana-se o administrador de um sistema quando acredita que instalando robustos sistemas de segurança, antivírus, anti-spyware, equipamentos de redes como firewalls e detectores de intrusão estará totalmente protegido de uma invasão ou perda de dados. Falhas de segurança vêm sendo reportadas diariamente e os administradores de sistemas e bancos de dados devem manter-se atualizados e adotar práticas seguras de desenvolvimento e custódia de dados, onde diversos aspectos devem ser ciclicamente revistos.

edu.red

Figura 1 – Corrente – Cadeado Fazendo uma analogia a um sistema de corrente com cadeado, para que consigamos invadi-lo podemos abrir o cadeado com uma chave roubada, arrombar o cadeado, quebrar qualquer elo da corrente, ou convencer que alguém o abra, em qualquer caso, a segurança já está comprometida.

Perceba como é fácil ter uma visão distorcida de segurança, no exemplo, se colocar um cadeado absolutamente inviolável, uma corrente de material indestrutível, treinar os funcionários para que nunca o abra a ninguém, sempre haverá a possibilidade de alguém esquecer a chave sobre uma mesa e um invasor copiar o segredo e lá se foi todo o investimento com a segurança.

Acompanhamos na atualidade uma disseminação da necessidade da informação, num passado não muito distante, os dados corporativos eram confinados a organização e a poucas pessoas. Hoje contamos com aplicativos via Internet, em que o próprio consumidor é o operador do sistema da empresa, ele pessoalmente escolhe os produtos, verifica estoque, disponibilidades de cores, voltagem, seleciona formas de entrega e pagamento.

O faturamento das compras é efetuado sistemicamente pelas instituições bancárias, que informam à loja que os pagamentos processados, os sistemas de logística calculam autonomamente os valores de frete e prazos de entrega, selecionam as melhores rotas de entrega, as mais rápidas ou mais baratas.

Sistemas de compras e cotação de preços com fornecedores são automatizados, há um crescimento dessa modalidade de negócios baseados em B2C, onde clientes e fornecedores interligam seus sistemas para o melhor e mais eficiente fluxo de informações.

Em uma rápida descrição de uma compra feita on-line, verificamos diversas possibilidades de quebra de segurança, imaginamos o quanto seria complicado analisar milhares de transações por minuto, verificando manualmente a autenticidade a cada passo do processo.

Os administradores de redes, sistemas e bancos de dados atualmente não focam suas ações e investimentos em sistemas absolutamente invioláveis, devendo ponderar os gastos inerentes a aquisição, manutenção, treinamento em sistemas especiais de segurança, não devendo deixar de mensurar o custo operacional, pois um sistema "seguro" pode se mostrar com um desempenho inferior devido a diversas trocas de chaves, algoritmos de criptografia e o consumo da banda de rede.

Um sistema com muitos requisitos de segurança, excesso de senhas e gargalos de autenticação pode gerar um aumento nos pedidos de suporte dos usuários, que normalmente esquecem senhas, já um sistema de troca constante de chaves pode acarretar na cultura dos empregados em criar senhas fáceis ou anotá-las em papel, já que não podem confiar na memória, gerando assim novas brechas na segurança.

Novos desafios são agregados constantemente aos negócios, e sempre que novas tecnologias são incorporadas, novas vulnerabilidades as acompanham, assim como possíveis problemas na integração aos sistemas legados.

Construir uma infra-estrutura totalmente a prova de falhas, como vimos é praticamente impossível, partiremos para o paradigma de que problemas de segurança mais cedo ou mais tarde irão acontecer, então tentaremos prevê-los, contra-atacá-los, e na impossibilidade de defesa, quando este acontecer o impacto à integridade das informações e a continuidade dos negócios deverão ser a mínima possível.

Limites não faltam para as conseqüências de uma perda de dados em uma empresa, desde uma queda de produtividade momentânea, neste caso, poucas ações conduzem ao retorno da condição inicial da informação, até a paralisação total de sua atividade produtiva, no caso de uma pane em um sistema vital a organização.

A preocupação com a segurança dos dados e informações armazenadas nos diversos sistemas de uma empresa ultrapassa os limites da mesma, uma falha de segurança pode impactar diretamente na imagem da organização perante a sociedade e o mercado em que atua. Reflexos podem acontecer a clientes, fornecedores, investidores, órgão regulamentadores, fiscais, jurídicos. E empresa poderá ser acionada criminalmente pela exposição de informações sensíveis publicamente, e em casos extremos, poderá ter sua atividade inviabilizada por tempo indeterminados até que as falhas sejam revertidas.

Segundo a Professora Diniz (1986) "responsabilidade civil como a aplicação de medidas que obriguem alguém a reparar dano moral ou patrimonial causado a terceiros em razão de ato do próprio imputado, de pessoa por quem ele responde." Assim sendo, quem pratica um ato ilícito deverá indenizar a parte que sofreu o prejuízo, sendo este financeiro ou moral.

A empresa que tenha seu banco de dados de clientes invadido responderá civilmente a estes possíveis danos causados pela utilização indevida de seus dados, como documentos, informações confidenciais, hábitos de consumo, histórico de transações. Assim como os danos morais com a exposição publica dessas informações.

Alguns dados, nas mãos de pessoas desonestas, poderão ser utilizados na abertura de contas bancárias fantasmas, habilitação de serviços públicos como energia e telefones, até mesmo como base para atos ainda mais complexos como seqüestro e lavagem de dinheiro. As conseqüências de falhas de sistemas de informações levam a infinitas possibilidades de fraude, o que força os administradores a estudarem investimentos mais pesados em segurança, na tentativa de neutralizar as possíveis ações advindas de perdas de informações.

CAPÍTULO 3

Armazenamento e acesso a dados

Segundo STAIR (1996), "a informação é o conhecimento derivado de dados, que por sua vez, são representações de fatos quaisquer registrados independentes do meio". Os meios de armazenamento devem ser dimensionados a quantidade de informações que serão guardadas, a facilidade de recuperação desses dados e a confiabilidade que se espera do arquivamento.

3.1 Armazenamento físico de dados Antes da massificação da utilização dos sistemas informatizados, os dados das empresas eram armazenados de várias maneiras, contávamos com livros, atas, fichários, o papel era o meio de armazenamento mais utilizado, e em muitos casos o único, os problemas de segurança nessa época eram o roubo desses papéis. Era necessária uma invasão física ao local dos arquivos, uma cópia poderia ser inviável devido ao tempo e poucos recursos apresentados (Quem tinha uma foto copiadora disponível no escritório?), ou os danos físicos, como incêndios, alagamentos e outros acidentes naturais.

Num momento as organizações perceberam, umas mais rapidamente que outras, que se continuassem guardando esses papéis logo seus arquivos se tornariam maiores que seus escritórios. Algumas empresas antes da informatização de seus ativos de informação, ainda passaram pela era da microfilmagem, processo que consistia em copiar os dados em filmes fotográficos que eram lidos através de equipamentos próprios, nesse momento organizações mais atentas já iniciaram a preocupação com a divulgação de suas informações confidencias, lembrando que na grande maioria dos casos os microfilmes eram revelados em empresas terceirizadas, que poderiam não tomar o devido cuidado com informações alheias.

Ainda hoje os microfilmes são utilizados, porém em situações muito específicas, e existem empresas especializadas nessas mídias.

edu.red

Figura 2 – Microfilme de 1988

edu.red

Figura 3 – Equipamento leitor de Microfilme

edu.red

Figura 4 – Operador de Equipamento de Microfilme 3.2 Bancos de dados Podemos armazenar dados e informações em computadores de diversas maneiras, em arquivos texto, planilhas e organizá-los de maneira que possamos encontra uma informação facilmente, mas quando a quantidade de dados cresce pode se tornar difícil ou impossível localizar informações específicas rapidamente. Sistemas baseados em Bancos de Dados executam o papel da manipulação desses dados de forma rápida, segura e eficaz.

Segundo DATE (2000) um banco de dados é em essência apenas um sistema computadorizado de armazenamento de registros. O banco de dados pode, ele próprio, ser visto como o equivalente eletrônico de um armário de arquivamento. Em outras palavras, é um repositório ou recipiente para uma coleção de arquivos de dados computadorizados.

Uma característica inerente dos bancos de dados são as operações que podemos executar nos dados armazenados, podemos:

Acrescentar novos arquivos no banco de dados; Inserir novas dados em tabelas existentes; Localizar facilmente dados armazenados; Alterar dados; Apagar dados; Remover arquivos do banco de dados.

E todas essas ações são executadas em poucos passos e aplicadas aos arquivos do banco de dados instantaneamente. O preço que pagamos pela facilidade que essa ferramenta nos oferece é proporcional ao problema que podemos ter, pois um usuário desatento (ou mal intencionado) com dois ou três cliques consegue facilmente apagar todos os dados armazenados por anos. Se essa possibilidade existir, isso é uma falha gravíssima de segurança.

Existem vários fabricantes de sistemas de bancos de dados, e uma característica obrigatória é que sempre será criado um ou vários arquivos na estação servidora, esses arquivos compões fisicamente a informação armazenada que deve estar protegida e será somente manipulada por aplicativos especializados.

3.2 Sistemas Gerenciadores de Bancos de Dados SGBDs (Sistemas Gerenciadores de Bancos de Dados) são aplicativos especialmente construídos para executar operações nos bancos de dados, normalmente apresentados por um aplicativo principal (SGBD propriamente) e conjunto de programas que executam tarefas específicas, como gerador de aplicativos, relatórios, utilitários para a criação e testes de consultas, monitores de desempenho, agendador de eventos, backups, entre outros. Os termos banco de dados e SGBD são facilmente confundidos em seu significado, é comum referenciar-se a banco de dados do fabricante x ou y quando o termo correto seria SGBD.

Encontramos disponíveis no mercado diversos sistemas gerenciadores de bancos de dados, praticamente todos os grandes fabricantes de software do mercado têm sua versão de SGBD, e cada produto se diferencia em desempenho, capacidade de armazenamento, facilidade de uso, aprendizado e principalmente preço. A defesa que os administradores de bancos de dados atribuem os produtos que utilizam são comparados a torcidas de futebol, é comum encontrar nos fóruns de discussão na internet defensores ferrenhos de determinada tecnologia, tecendo longas teses de defesa de seu afeto, e rebatendo as críticas aos adversários, embates estes que tendem a terminar em empate técnico, mas que sempre se aquecem no lançamento de novas versões dos sistemas (Wikipédia, 2008).

Alguns SGBDs disponíveis no mercado: PostgreSQL; Desenvolvedor: PostgreSQL Global Development Group; Licença Open Source; Multiplataforma.

Web Site: http://www.postgresql.org.br Firebird; Desenvolvedor: Fundação FirebirdSQL; Licença Open Source; Multiplataforma.

Web Site: http://www.firebirdsql.org/ HSQLDB; "Hyperthreaded Structured Query Language Database"; Licença Open Source; Construído inteiramente em Java. Web Site: http://hsqldb.org/ IBM DB2; Desenvolvedor: IBM Licença comercial; Multiplataforma.

Web Site: http://www-142.ibm.com/ software/dre/ecatalog/list. wss?locale=pt_BR&category=G107029V41003M10 mSQL; Mini SQL; Desenvolvedor: Hughes Technologies Pty Ltda; Licença comercial.

Web Site: http://www.hughes.com.au/products/msql/ MySQL; Desenvolvedor: Sun Microsystems; Licença GLP e Comercial.

Web Site: http://www.mysql.com/ Oracle; Desenvolvedor: Oracle Corporation; Licença Comercial.

Web Site: http://www.oracle.com/global/br/index.html SQL-Server; Desenvolvedor: Microsoft; Licença Comercial Web Site: http://www.microsoft.com/sqlserver/2008/en/ us/ default.aspx TinySQL; Desenvolvedores: Brian Jepson e Davis Swan; Licença LGPL (Lesser General Public License). Web Site: http://www.jepstone.net/tinySQL/ JADE; Desenvolvedor: Jade Software Corporation; Licença Comercial.

Web Site: http://www.jadeworld.com ZODB; Zope Object Data Base; Banco de dados transacional orientado a objetos usado pelo servidor de aplicação Zope.

Web Site: http://wiki.zope.org/ZODB/FrontPage SASE.

Sybase Adaptive Server Enterprise; Desenvolvedor: Sybase; Licença Comercial.

Web Site: http://www.sybase.com/products/databasemanageme nt/adaptiveserverenterprise No mercado podemos encontrar também Sistemas de pequeno porte, normalmente utilizados como aplicativos pessoais, ou aplicações distribuídas com poucos acessos (no máximo 10 usuários simultâneos), o comum desses SGBDs é que os dados são distribuídos por compartilhamento de arquivos, não sendo na realidade servidores de dados e sim um arquivo compartilhado. Existe uma tendência de esses aplicativos serem migrados para servidores mais robustos quando os limites de desempenho são alcançados, ou necessita- se de maiores recursos.

Alguns exemplos MSAccess Desenvolvedor: Microsoft Integrante do Pacote Microsoft Office; É na realidade uma união do Microsoft Jet Database Engine, a uma interface gráfica Paradox; Desenvolvedor: Borland Software Corporation; Parte integrante do pacote de programação Delphi.

3.3 Funcionamento básico de um banco de dados O profissional especialista em banco de dados é conhecido pela sigla DBA, que significa Database Administrator, ou em português, Administrador de Base de Dados, existe no mercado certificações as mais diversas em diferentes tecnologias. As carreiras da Microsoft certificam seus especialistas no programa MCPs – Microsoft Certified Professional, e a certificação máxima para o SQL Server 2000 será o MCDBA Microsoft Certified Database Administrator (MICROSOFT, 2008). O Programa Oracle Certification Program da Oracle, certifica seus profissionais em OCA – Oracle Certificate Associate, OCP – Oracle Certificate Professional e OCM – Oracle Certificate Máster (ORACLE, 2008), A este profissional é designada a tarefa de construir e manter em perfeito funcionamento os bancos de dados a ele confiado, zelando pela sua confiabilidade, integridade e disponibilidade Alguns objetos presentes em bancos de dados:

Tabelas – aqui os dados estão armazenados em seu estado bruto, existem padrões e práticas que devem ser seguidas em sua construção, que visam garantir a integridade dos dados e a facilidade (e até mesmo a possibilidade) de recuperação correta dos dados armazenados, uma concepção incorreta na criação das tabelas pode gerar erros futuros em sua integridade e desempenho que podem, dependendo da gravidade do problema, até mesmo inviabilizar a aplicação.

Consultas (Querys) – São visões dos dados, abstraídas conforme as necessidades das aplicações, utilizados para recuperar dados diversos, como um conjunto específico de dados filtrados, efetuar cálculos, agrupamentos, transformar tipos de dados, podendo inclusive recuperar dados de diversas tabelas relacionadas, efetuar comparações e filtros avançados. A Linguagem de comunicação utilizada na maioria dos sistemas é a SQL – "Structured Query Language". Stored Procedures – São procedimentos armazenados no servidor, rotinas que executam funções específicas especialmente programadas pelos DBAs, que podem executar desde consultas simples a complexos conjuntos de ações, As Stored Procedures como são pré-compiladas no servidor, tem um excelente desempenho, é considerada uma arma poderosa na proteção a ataques a banco de dados.

Triggers – São "gatilhos", funções que se executam arbitrariamente sempre que uma ação é executada no banco de dados, é muito utilizada na validação de dados, auditorias e verificações de integridade.

Transações – São funções programadas quando há a necessidade da integridade de diversas ações em macro, se alguma das funções atribuídas à transação não puder ser executada por qualquer que seja o motivo, os dados não serão alterados, caso contrário, somente após a validação da transação que as ações são atribuídas ao banco de dados, em exemplo de utilização seria em uma operação de transferência de fundos entre contas, a transação poderá verificar se há fundos suficientes na conta devedora, se na conta credora não há nenhum impedimento, conforme o resultado das consultas a operação é concretizada. As transações também previnem problemas de integridade por problemas físicos, como quedas de energia, indisponibilidades de comunicação.

Existem inúmeras funções em SGBDs, mais específicas, como gerenciador de transações distribuídas, agendamento de tarefas, backups, analisadores de desempenho, entre outras.

3.4 Linguagem SQL O nome "SQL" significa "Structured Query Language" – Linguagem Estruturada de Pesquisa foi desenvolvida originalmente na IBM Research no início da década de 1970 e é hoje a linguagem padrão para o tratamento com os bancos de dados relacionais, está presente em praticamente todos os produtos existentes (WIKIPEDIA, 2008).

A SQL é formada por um conjunto de sentenças em Inglês estruturado e tem como característica predominante a facilidade de compreensão mesmo para um iniciante. Sua curva de aprendizagem é bem acentuada, reduzindo-se os custos com treinamentos.

As instruções SQL executam praticamente todas as funções em um Banco de dados, como por exemplo:

Criar, alterar e apagar bancos de dados; Criar objetos nos bancos de dados, como tabelas, consultas, procedimentos; Criar índices, constantes; Funções do usuário; Criar usuários, conceder e revogar acessos; Incluir, alterar e apagar dados em tabelas; Recupera informações das tabelas; Executar consultas diversas, efetuando cálculos, agrupamentos, transformações; Veremos alguns exemplos de sentenças SQL que efetuam ações em um banco de dados de exemplo:

edu.red

Figura 5 – Sentença SQL simples

edu.red

Figura 6 – Sentença SQL – Inclusão de dados

edu.red

Figura 7 – Sentença SQL complexa 3.5 Estruturas cliente-servidor (desktop) São estruturas de aplicativos onde há uma divisão das atribuições das funções, tendo como estrutura básica a separação de clientes e servidores, há um aplicativo residente na estação do cliente, que acessa os dados armazenados nos bancos de dados, as vantagens desta arquitetura são inúmeras, e visam à disponibilidade dos dados (WIKIPEDIA, 2008).

edu.red

edu.red

Figura 8 – Arquitetura Cliente-Servidor A evolução do modelo cliente x servidor, será o modelo "N" camadas, onde caracterizaremos o modelo em três camadas, onde é retirada a camada de negócios do lado do cliente, dividindo a aplicação em partes como se segue:

1ª camada – Camada de apresentação: É a chamada GUI (Graphical User Interface), ou simplesmente interface. O objetivo dessa camada é a interação com o usuário, onde são feitas as requisições e consultas.

2ª camada – Camada de negócios, Lógica de negócios, Regras de negócio ou Funcionalidade. É nessa camada que ficam as funções e regras de todo o aplicativo.

3ª camada – Camada de dados: É definida como o repositório dos dados. Esta camada recebe as requisições da camada de negócios e seus métodos executam essas requisições em um banco de dados.

A vantagem dessa arquitetura está na facilidade de efetuar alterações no aplicativo, sem afetar sua disponibilidade, que é executada na 2ª camada, numa arquitetura em duas camadas, uma alteração na lógica dos negócios pode implicar na reinstalação da aplicação, podendo gerar gastos com suporte e indisponibilidade das informações, assim como a possibilidade da existência de aplicativos desatualizados na planta

edu.red

edu.red

Figura 9 – Aplicação em três camadas 3.6 Integrações entre Sistemas Sistemas legados são aplicativos existentes na organização, que devido a diversos motivos não acompanharam os avanços tecnológicos, mas continuam úteis (PRADO, 2007). O desafio da segurança nesse caso é a sua integração com novas tecnologias, sem que novas brechas de segurança sejam criadas na operação.

3.7 Sistemas Web As aplicações que mais cresceram nos últimos anos são as aplicações via Web, que são evoluções naturais das páginas web estáticas existentes. O funcionamento básico de uma página web estática se baseia em um servidor web, que disponibiliza na internet o conteúdo elaborado por um profissional comumente chamado de "webdesign" ou simplesmente programador web.

edu.red

edu.red

edu.red

Figura 10 – Estrutura Web simples (Estático) Aplicações web atuais são ativas, executam operações nos servidores de bancos de dados, podemos ler e-mails, executar compras, transações bancárias e inúmeras aplicações disponíveis. O funcionamento é análogo ao sistema web estático, com a inclusão de uma camada de dados no final do processo, e a implementação de uma linguagem de programação intercalada ao código da página web acessada.

As páginas web são acessadas pela internet a partir de um servidor web, os servidores mais utilizados na atualidade são o Apache, de código aberto, conhecido pela estabilidade e confiabilidade, nativo do sistema Linux. A Microsoft disponibiliza o servidor IIS – Internet Information Service, sistema pago, nativo dos servidores Windows, este famoso pelas falhas de segurança constantemente reportadas.

edu.red

edu.red

edu.rededu.red

Figura 11 – Sistema Web ativo No servidor web, está armazenado o código das paginas disponibilizadas, no seu contexto mais básico a linguagem utilizada é a HTML – Hipertext Markup Language, uma linguagem de marcação, que é interpretada pelos navegadores clientes, os códigos HTML apresentam somente páginas estáticas.

Mas as necessidades de uma utilização mais eficiente das páginas web forçaram a evolução para a apresentação de paginas com conteúdos ativos, baseados em bancos de dados. Nesse momento surgiram as linguagens "interpretadas", os servidores se tornaram capazes de interpretar scripts de programação, executando ações diversas, podendo inclusive efetuar todas as operações nos bancos de dados, antes disponíveis apenas aos aplicativos desktop. Existem atualmente diversas linguagens de programação para WEB, a Microsoft popularizou a linguagem ASP – "Active Server Pages", que permite ao programador intercalar scripts construídos em VBScript ou Javascript. Já a iniciativa Linux disponibiliza a plataforma PHP – "PHP: Hypertext Preprocessor", de código aberto, muito poderosa e de fácil aprendizado (PHP.NET, 2008).

Partes: 1, 2, 3
Página siguiente