Você está na página 1de 9

SEGeT Simpsio de Excelncia em Gesto e Tecnologia

Segurana em Servidores com Banco de Dados Microsoft SQL Server: Meios de Proteo contra invases
Edison de Azevedo Filho Uniandrade PR edison_filho@hotmail.com Maria Claudia Lara da Costa Faculdades OPET PR mclaudialara@gmail.com

RESUMO
Este artigo aborda a questo da segurana em Banco de Dados Microsoft SQL Server, no intuito de contribuir academicamente para o registro terico do tema, enfatizando a diferena entre segurana e integridade de banco de dados e as principais vulnerabilidades de um SGBD, apontando ainda as medidas bsicas de segurana a se tomar com relao a tais ameaas. Palavras-chave: banco de dados, SQL, segurana, integridade

1. INTRODUO A figura do administrador de dados no incio dos anos 70 era uma das mais importantes dentro de uma empresa (CASH,1992). Diante da relevncia e credibilidade de seu trabalho, todo processo decisrio passou a ser submetido sua verificao e aprovao antes de se chegar a um veredicto final. Se houvesse uma reunio da alta cpula para tratar de metas para o prximo ano, por exemplo, seguramente o administrador de dados estaria presente para melhor planejar a organizao dos dados para desta forma auxiliar a gesto do negcio, como grande conhecedor do negcio da organizao. O que ocorreu foi a adoo da TI1 como suporte de negcios, de modo que sua efetiva utilizao tornou-se imperativa para a estratgia e at mesmo para a sobrevivncia das organizaes (PORTER, 1999). Conforme ressalta Marcovitch (1999) estratgias empresariais, tecnolgicas e de informao tornaram-se sistemas indissociveis e interdependentes. Instaurava-se uma tendncia de valorizao crescente de bases de dados bem organizadas e administradas, reforada pela informatizao das empresas em geral, dando incio a uma busca pela estruturao centralizada de informaes que requeria uma robustez no gerenciamento dos dados. A Era da Informao (CASTELLS,1999) elegia um de seus profissionais-cones, e lhe impunha um desafio instigador: encontrar modos seguros do trato de Bancos de Dados. Se vivemos hoje uma poca onde o armazenamento e transmisso de dados valem ouro, ainda mais importante que eles a capacidade de mant-los protegidos, de modo que a questo da segurana em SGBDs2 tornou-se o centro das preocupaes do mercado da TI uma tendncia ainda com poucas repercusses no meio acadmico. Diante disso, pretende-se

1 2

TI Tecnologia da Informao. SGBD Sistema de Gerenciamento de Banco de Dados.

SEGeT Simpsio de Excelncia em Gesto e Tecnologia

aqui elencar as principais ameaas da atualidade a banco de dados SQL3 bem como tcnicas bsicas de defesa, de modo a contribuir para os registros tericos deste importante tema que a segurana em BD4. 2. INTEGRIDADE E SEGURANA EM SISTEMAS DE BANCOS DE DADOS Sabe-se que sistemas de gerenciamento de bancos de dados so caracterizados por sua habilidade de admitir o acesso eficiente a grandes quantidades de dados, garantindo-lhe durabilidade (GARCIA-MOLINA, 2000). Porm, mais do que sua organizao, outros aspectos passaram a ser determinantes para a perenidade de um sistema. Como j dito por Tarandach5 questes como segurana e integridade comearam a ter destaque, pois com o crescimento dos bancos de dados, seus esquemas de integrao ficaram mais complexos e a tendncia falhas e erros tambm cresceu progressivamente. Para o pleno entendimento da questo, importante ressaltar a diferena entre os conceitos de segurana e integridade de dados. Date (2000) associa a noo de Segurana proteo de dados contra revelao, alterao ou destruio no autorizada enquanto Integridade se refere exatido ou validade desses dados. Ambos esto ligados idia de proteger o BD, mas especificamente no caso da integridade, o foco no est em invasores externos, e sim em restringir o acesso a usurios internos, ou seja, garantir que os critrios de permisso de acesso sejam plenamente respeitados segundo aquilo que foi programado pelo DBA6.
As regras de integridade fornecem a garantia de que mudanas feitas no banco de dados por usurios autorizados no resultem em perda da consistncia dos dados. Assim, as regras de integridade protegem o banco de dados de danos acidentais(SILBERSCHATZ,1999:191).

J a segurana, de modo geral, refere-se s regras impostas pelo subsistema de segurana do SGBD, que verifica todas as solicitaes de acesso, comparando-as com as restries de segurana armazenadas no catlogo do sistema. Entretanto h vrias vulnerabilidades do sistema e ameaas externas a ele que podem resultar em um servidor de banco de dados comprometido ou na possibilidade de destruio ou no roubo de dados confidenciais. As diversas brechas de um SGBD (figura 1) apontam para a realidade de que um servidor de BD, por sua complexidade e importncia, deve ser muito bem configurado e administrado segundo preocupaes especficas. Para melhor entendimento da questo, na figura a seguir simula-se uma rotina de uso de uma Aplicao e um Banco de Dados apontando os principais ataques a que o sistema est sujeito para discusso detalhada de cada item.

SQL (Structured Query Language) refere-se a uma linguagem para ambiente relacional, utilizvel em numerosas aplicaes, podendo manipular objetos de diferentes classes entre as funes de um Sistema de Gerenciamento de Banco de Dados (SGBD). Consagrada atravs da IBM, tornou-se uma das linguagens mais populares e amplamente utilizadas em Bancos de Dados principalmente por sua facilidade de manipulao e entendimento (MACHADO, 2004:315-317) sendo a linguagem mais utilizada do mercado (SILBERSCHATZ,1999:109). 4 BD Banco de Dados. 5 IZAR TARANDACH (2007) especialista em segurana de banco de dados e diretor de engenharia de sistemas da Guardium Inc. e est terminando seu programa de mestrado em segurana da informao na Boston University. 6 DBA Data Base Administrator, termo utilizado para a funo de Administrador de Banco de Dados na rea de tecnologia, inclusive no Brasil.

SEGeT Simpsio de Excelncia em Gesto e Tecnologia

Figura1. Principais ameaas ao servidor de BD segundo a Microsoft (www.microsoft.com).

2.1 INCLUSO DE CDIGO SQL Como Date menciona (DATE,2000:77), a maioria dos produtos de SQL permite que as instrues SQL sejam executadas diretamente ou seja, interativamente de um terminal on-line. Com um ataque de incluso de cdigo SQL, o invasor explora as vulnerabilidades do cdigo de acesso a dados e da validao da entrada do aplicativo para executar comandos arbitrrios no banco de dados que usa o contexto de segurana do aplicativo da Web7. Nesse nvel de ataque, explora-se principalmente a validao da entrada ineficaz nos aplicativos da Web; comandos SQL construdos de forma dinmica e sem segurana; logons8 de aplicativo com muitos privilgios ou permisses de baixa segurana que falham ao restringir o logon do aplicativo no banco de dados. Para combater tentativas de ataques desta natureza, a primeira medida a se tomar restringir e corrigir os dados de entrada no aplicativo antes de uslos em consultas SQL. Somente parmetros SQL de tipo seguro devem ser usados para acesso aos dados, priorizando procedimentos armazenados ou seqncias de caracteres de comando SQL construdas de forma dinmica. O uso de parmetros SQL garante que os dados de entrada sejam submetidos a verificaes de tipo e comprimento e que o cdigo injetado seja tratado como dado literal, e no como instruo executvel no banco de dados. Um modo de garantir tal proteo fazer uso de SQL-DDL9. Esta linguagem proporciona comandos para a definio de esquemas de relaes, excluso de relaes, criao de ndices e modificao nos esquemas de relaes, segundo especificao de regras de integridade que os dados armazenados no banco de dados devem satisfazer. Com isso, atualizaes que tentem violar as regras de integridade so desprezadas (SILBERSCHATZ,1999:110). Outra medida usar o logon do SQL Server com permisses restritas no banco de dados. Preferencialmente, deve-se conceder permisses de execuo somente aos

WEB - Sistemas de documentos em hipermdia que so interligados e executados na Internet. Logon um conjunto de caracteres solicitado para os usurios que por algum motivo necessitam acessar algum sistema computacional. 9 DDL: Data Definition Language (Linguagem de Definio de Dados).
8

SEGeT Simpsio de Excelncia em Gesto e Tecnologia

procedimentos armazenados e selecionados no banco de dados e no fornecer acesso direto tabela. 2.2 ESPIONAGEM NA REDE A arquitetura de implantao da maioria dos aplicativos inclui uma separao fsica entre o cdigo de acesso a dados e o servidor de banco de dados. Conseqentemente, os dados confidenciais, como dados especficos do aplicativo ou credenciais de logon de banco de dados, devem ser protegidos contra a espionagem na rede. As principais brechas que permitem ataques deste nvel referem-se a canais de comunicao desprotegidos e transmisso de credenciais em texto no criptografado para o banco de dados, como por exemplo, quando do uso da autenticao do SQL em vez da autenticao do Windows10 ou da autenticao do SQL sem um certificado de servidor. Para combater tais ameaas, deve-se utilizar a autenticao prpria do Windows para estabelecer conexo com o servidor de banco de dados e impedir o envio de credenciais por meio da rede e instalar um certificado de segurana no servidor de banco de dados. Isso resultar na criptografia automtica das credenciais SQL na rede. Para isso, fundamental manter uma conexo SSL11 entre o servidor Web e o servidor de banco de dados para proteger os dados confidenciais do aplicativo. 2.3 ACESSO NO AUTORIZADO AO SERVIDOR Todo acesso direto ao servidor de banco de dados deve ser restrito a computadores cliente especficos para impedir conexes no autorizadas.
Para que o dado fique protegido do uso indevido de qualquer usurio, a linguagem SQL permite a definio dos privilgios que cada um pode ter em relao s tabelas criadas no banco de dados. Os privilgios garantem a segurana e a integridade dos dados, bem como a responsabilidade de cada usurio sobre seus dados especficos (MACHADO, 2004:378).

Ao determinar os privilgios de acesso dos clientes, deve-se evitar falhas na configurao das portas do SQL Server no firewall12 e atentar para as diretivas de filtragem IPSec. Segundo Kent e Atkinson (1998), o IPsec um protocolo de tunelamento que cria uma conexo especial entre dois pontos, assemelhando-se a um tnel. Nele, a extremidade iniciadora encapsula os pacotes da rede privada para o trnsito atravs da Internet, utilizandose do protocolo TCP/IP (Transmition Control Protocol / Internet Protocol). Este refere-se a um conjunto de protocolos de comunicao entre computadores em rede. Os filtros que devem ser aplicados no IPsec podem ser a autorizao de um endereo IP ou uma range de IPs de origem/destino especficos, assim como portas especficas de origem/destino. Quando se trata de acesso ao servidor, toda cautela necessria, uma vez que tanto usurios autenticados como usurios sem nome e sem senha esto sujeitos a ataques de conexo direta. A exemplo disso, um invasor pode estabelecer uma conexo direta com o SQL Server e tentar obter resultados (informaes) utilizando-se de ferramentas como o
Windows: Sistema Operacional desenvolvido pela Microsoft. SSL: Secure Sockets Layer, so protocolos criptogrficos que provem comunicao segura na Internet para servios como e-mail, navegao por pginas e outros tipos de transferncia de dados. 12 Firewall: Segundo (Chapman e Zwicky, 1995) firewall definido como um componente ou conjunto de componentes que restringem o acesso entre uma rede protegida e a Internet, ou entre outros conjuntos de redes.
11 10

SEGeT Simpsio de Excelncia em Gesto e Tecnologia

Analisador de Consultas (Isqlw.exe), ou o equivalente da linha de comando (Osql.exe), ou ainda, enviar pacotes construdos cuidadosamente para portas de escuta para obter informaes do servidor, como sua verso de software. Para combater esses ataques preciso que as portas do SQL Server no sejam vistas de fora da rede de permetro, e que dentro do permetro o acesso direto de hosts no autorizados seja restrito, por exemplo, atravs de filtros IPSec ou TCP/IP. 2.4 QUEBRA DE SENHA Uma primeira linha de ataque comum tentar quebrar as senhas de nomes de conta conhecidos, como sa (a conta do administrador do SQL Server). Neste quesito, as vulnerabilidades comuns que levam a quebras de senha so geralmente o uso de senhas de baixa segurana (ou em branco) e senhas que contm palavras comuns. H programas (cracks) que usam dicionrios como mtodo de ataque relacionado a tentativas repetitivas de seleo de palavras existentes para descobrir senhas. Aplicam, inclusive, regras combinatrias de forma a prever alteraes em palavras que visem a tornar as senhas mais difceis, como: shifts, uso de maisculas, acrscimo de caracteres no alfanumricos e substituio de letras por algarismos. Os ataques mais comuns de quebra de senha baseiam-se neste tipo de ataque de dicionrio ou na deteco manual de senha. Para combater tais tentativas, fundamental criar senhas para as contas de logon do SQL Server que atendam a requisitos de complexidade mnima e evitar o uso de senhas que contenham palavras comuns encontradas no dicionrio. Ao utilizar a autenticao do Windows, a complexidade da senha poder ser aplicada pela diretiva de segurana do sistema operacional. 3. CHECKLIST DE PROTEO DO SQL SERVER Pode ser difcil proteger bancos de dados, especialmente quando encontram-se online (Internet), uma vez que ficam permanentemente expostos a exame pblico. Uma "soluo" interessante a introduo erros deliberados em sua programao. A colocao de erros deliberados e omisses em um programa conhecida como uma espcie de colocao de "sementes" dentro do banco de dados. uma medida til em casos de cpia ilegal para comprovao de autoria e originalidade, mas paliativa somente para casos de cpia. Como a preocupao com a proteo de dados vai alm da questo de duplicao do BD, torna-se fundamental o estabelecimento de um checklist bsico para conferncia dos principais elementos do servidor. Nesse sentido, h algumas categorias de configurao (figura 2) recomendadas obtidas em experincias reais, na validao de clientes e em estudos de implantaes de segurana, que devem ser verificadas.

SEGeT Simpsio de Excelncia em Gesto e Tecnologia

Figura 2. Categorias de segurana do servidor de banco de dados segundo a Microsoft (www.microsoft.com).

3.1 SQL SERVER Usurios (e aplicativos) obtm acesso ao SQL Server por meio do logon do servidor SQL. O logon est associado a um usurio do banco de dados e uma ou mais funes so atribudas a esse usurio. As permisses concedidas funo determinam as tabelas que o logon pode acessar e os tipos de operaes que o logon pode efetuar. Essa abordagem usada para criar contas de bancos de dados com menos privilgios que tenham o conjunto mnimo de permisses necessrias para permitir uma funcionalidade legtima e contribuir para a segurana do BD no nvel do SQL Server. A auditoria uma ajuda vital para a identificao de intrusos e de ataques em andamento, bem como para o diagnstico de sinais de ataque. possvel configurar um nvel mnimo de auditoria para o servidor e elaborar uma combinao de recursos de auditoria do Windows e do SQL Server por exemplo, atravs do Enterprise Manager. Isso inclui o modo de autenticao, o nvel de auditoria e as contas usadas para executar o servio do SQL Server. Para isso, deve-se ativar a auditoria de logon do SQL Server e certificar-se de que o servio do SQL Server executado utilizando uma conta com menos privilgios. Finalmente, a capacidade de acessar objetos de banco de dados do SQL Server, como procedimentos armazenados internos, procedimentos armazenados estendidos e tarefas cmdExec, deve ser revisada. Alm disso, os bancos de dados de exemplo devem ser excludos. 3.2 SISTEMAS OPERACIONAIS Muitas ameaas de segurana existem devido a vulnerabilidades de sistemas operacionais, servios e aplicativos que so amplamente publicados e conhecidos. Geralmente, quando novas vulnerabilidades so descobertas, o cdigo de ataque publicado nos BBSs da Internet poucas horas aps o primeiro ataque. O patch e a atualizao do software do servidor compem a primeira etapa para a proteo do servidor de banco de dados. Pode haver casos em que a vulnerabilidade exista e no haja patches disponveis. Nesses casos, deve-se redobrar a ateno aos detalhes de vulnerabilidade para avaliar o risco de ataques e tomar as medidas necessrias.

SEGeT Simpsio de Excelncia em Gesto e Tecnologia

Os servios so os pontos de vulnerabilidade preferenciais dos invasores que exploram seus privilgios e recursos para acessar o servidor e, possivelmente, outros computadores. Alguns servios foram criados para funcionar usando contas com privilgios. Se esses servios estiverem comprometidos, o invasor poder efetuar operaes privilegiadas. Por padro, os servidores de banco de dados no precisam de todos os servios ativados. Ao desativar servios desnecessrios e no utilizados, possvel reduzir de maneira rpida e fcil a rea de superfcie de ataque. Uma boa administrao das contas de acesso fundamental para a segurana do BD. Recomenda-se restringir o nmero de contas do Windows acessveis pelo servidor ao conjunto necessrio de contas de usurio e de servio, usando contas com menos privilgios e com senhas de alta segurana em todos os casos. Uma conta com menos privilgios, usada para executar o SQL Server, limita os recursos de invaso que compromete o SQL Server e sua capacidade de execuo de comandos no sistema operacional. possivel utilizar as permisses do sistema de arquivos NTFS para proteger programas, bancos de dados e arquivos de log contra o acesso no autorizado. A combinao de ACLs (Listas de Controle de Acesso) junto com a auditoria do Windows, permite a deteco de atividades suspeitas ou no autorizadas. Outro item de checagem so os compartilhamentos. Recomenda-se remover todos os compartilhamentos de arquivos desnecessrios, incluindo os de administrao padro caso sejam dispensveis. Proteja quaisquer compartilhamentos restantes com permisses NTFS restritas. Apesar deles no estarem diretamente expostos Internet, uma estratgia de defesa em camadas com compartilhamentos limitados e seguros reduzir os riscos se um servidor for comprometido. Outro tem de segurana o modo de autenticao configurado no Registro. Restringir e controlar o acesso ao Registro impede a atualizao no autorizada de configuraes para, por exemplo, reduzir a segurana no servidor de banco de dados. 3.3 REDE A nvel de Redes, basicamente so dois os aspectos mais relevantes a se observar para a segurana do BD: portas e protocolos. No que se refere s portas, mesmo quando no utilizadas situao em que ficam fechadas no firewall necessrio que os servidores subjacentes ao firewall tambm as bloqueiem ou as restrinjam com base no uso. Para um SQL Server dedicado, basta manter aberta a porta do SQL Server principal e as portas necessrias para autenticao. Quanto aos protocolos, convm limitar o intervalo de protocolos utilizados pelos computadores clientes para estabelecer conexo com o servidor de banco de dados e verificar se possvel proteger esses protocolos. 4. CONSIDERAES FINAIS Durante muito tempo se teve a impresso que uma base de dados era um sistema fechado, dentro de si mesmo, e por conseqncia, seguro. Porm com a difuso de bases de dados, sua popularizao e integrao de bases diversas, comearam a surgir problemas relativos a erros, integridade e segurana. Com isto as organizaes tm cada vez mais gastos com sistemas que acabam por no gerar informaes claras nem concisas, mas que pelo contrrio, apresentam falhas de integridade e vulnerabilidades de segurana, resumindo o trabalho dos desenvolvedores e DBAs a bombeiros sempre correndo para apagar os constantes incndios. Essa

SEGeT Simpsio de Excelncia em Gesto e Tecnologia

perspectiva, alm de carregar implicitamente a idia errnea de que a T.I. se mantm por emergncias e sem planejamento, leva ao risco de que a rea seja vista apenas como fonte geradora de gastos e complicaes dentro da organizao. Por isso mesmo, fundamental que o profissional de TI chame para si a responsabilidade e adote um posicionamento pr-ativo no que se refere ao tratamento com Bancos de Dados, conferindo periodicamente seus pontos frgeis e buscando aperfeioamento de suas tcnicas de proteo. No s para ter condies de acompanhar as tendncias (de linguagens e integrao) de tecnologia para manter as empresas atualizadas, mas principalmente para faz-lo de forma planejada e segura, garantindo s organizaes garantias mnimas de sigilo e segurana no arquivamento e troca de dados.

SEGeT Simpsio de Excelncia em Gesto e Tecnologia

REFERNCIAS CASH JR., J. et al. Corporate information systems management: text and cases. Irwin. USA. 1992. CASTELLS, M. A Sociedade em Rede: a Era da Informao. So Paulo: Paz e Terra. 1999. CHAPMAN, D.B.; ZWICKY, E.D, Building Internet Firewalls, OReilly & Associates.1995. DATE, C.J. Introduo a Sistemas de Bancos de Dados. Rio de Janeiro- RJ. Editora Campus. 2000. GARCIA-MOLINA, H. Implementao de Sistemas de Bancos de Dados. Rio de Janeiro: Campus. 2001. KENT ,S.; ATKINSON, R. IP Authentication Header, RFC 2402, IETF, Novembro 1998. MACHADO, F. N. R. Banco de Dados: projeto e implementao. So Paulo: Erica. 2004. MARCOVICTH, J. (Org). Tecnologia da Informao e estratgia empresarial. So Paulo: USP/Futura. 1999. PORTER, M. Competio = on competition: estratgias competitivas essenciais. Rio de Janeiro: Campus. 1999. SILBERSCHATZ, A. Sistema de Banco de Dados. 3 ed. So Paulo: Makron Books. 1999. TARANDACH, I. http://www.securityradio.org, dezembro de 2007.

Você também pode gostar