Injeção de SQL - Detecção de evasão



Documentos relacionados
Política de privacidade do Norton Community Watch

FIREWALL. Prof. Fabio de Jesus Souza. Professor Fabio Souza

Kaspersky Anti-Virus 2013 Kaspersky Internet Security 2013 Lista de novos recursos

Ameaças, riscos e vulnerabilidades Cont. Objetivos

RELATÓRIO SOBRE AS TENDÊNCIAS DO ATAQUE DISTRIBUÍDO DE NEGAÇÃO DE SERVIÇO DA VERISIGN 1A EDIÇÃO - 1O TRIMESTRE DE 2014

PROJETO INTEGRADOR. 5º PERÍODO Gestão da Tecnologia da Informação Noturno

Boas Práticas de Desenvolvimento Seguro

Algumas Leis da Segurança

Um White Paper da Websense Web Security Gateway: A Web 2.0 Protegida e Simplificada

PROJETO RUMOS DA INDÚSTRIA PAULISTA

UNIVERSIDADE FEDERAL DE PELOTAS

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Firewall. Alunos: Hélio Cândido Andersson Sales

Componentes de um sistema de firewall - II. Segurança de redes

Enterprise Security. Palestrante: Rafael Santos da Rosa

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Tarefa Orientada 16 Vistas

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

VISÃO GERAL DAS SOLUÇÕES WEBSENSE SECURITY

Transferindo a carga da autenticação remota dos servidores

CA Protection Suites Proteção Total de Dados

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

Políticas de Segurança de Sistemas

A SAÚDE NÃO É NEGOCIÁVEL

Gerenciamento de Níveis de Serviço

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

COMO FUNCIONA UM ANTIVÍRUS E QUAIS SUAS PRINCIPAIS FALHAS

ISO/IEC 12207: Gerência de Configuração

Manual QuotServ Todos os direitos reservados 2006/2007

Detecção e investigação de ameaças avançadas. INFRAESTRUTURA

Segurança na Rede Local Redes de Computadores

agility made possible

Você pode dizer isso de novo! Compressão de Texto

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

terceiros ou usar um aplicativo desenvolvido por terceiros, um cookie poderá ser colocado por essa página ou aplicativo).

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Desenvolvendo Websites com PHP

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Gerenciamento de Problemas

1. NÍVEL CONVENCIONAL DE MÁQUINA

Profa. Gislaine Stachissini. Unidade III GOVERNANÇA DE TI

Superioridade do Linux sobre Windows no quesito segurança

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

automatizar a criação de embalagens

Orientação a Objetos

1. Quem somos nós? A AGI Soluções nasceu em Belo Horizonte (BH), com a simples missão de entregar serviços de TI de forma rápida e com alta qualidade.

Módulo 4: Gerenciamento de Dados

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Introdução aos critérios de consulta. Um critério é semelhante a uma fórmula é uma cadeia de caracteres que pode consistir em

Gestão da Segurança da Informação

NOKIA. Em destaque LEE FEINBERG

DDoS: como funciona um ataque distribuído por negação de serviço

Firewall. Qual a utilidade em instalar um firewall pessoal?

PLANO DE CONTINGÊNCIA DE BANCO DE DADOS

Principais Benefícios. ESET Endpoint Security

Conceitos básicos da linguagem C

Auditoria e Segurança de Sistemas Segurança de Redes de Computadores Adriano J. Holanda

Gerenciando Sua Reputação Online Parte 1

ENGENHARIA DE SOFTWARE

Componentes de um sistema de firewall - I

Sistemas ERP. Profa. Reane Franco Goulart

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Eficiência operacional no setor público. Dez recomendações para cortar custos

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Capítulo 9. Gerenciamento de rede

As doze maiores ameaças do mercado intermediário: evitando ataques maliciosos comuns em nível de aplicativo.

Forefront Server Security Management Console: Gerenciamento Simplificado da Segurança para Mensagens e Colaboração White Paper

Fábrica de Software 29/04/2015

Firewalls. Firewalls

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

NUVEM HÍBRIDA: DEIXE AS PREOCUPAÇÕES COM SEGURANÇA NO PASSADO.

Ameaças e Contramedidas de Host

Como impedir que o pen drive seja invadido por vírus

Hackers. Seus dados podem ser inúteis, mas seu computador em si pode ainda ser um recurso valioso.

DIFERENCIAÇÃO. João Bosco M. Sobral

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Capítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento. Associação dos Instrutores NetAcademy - Julho de Página

Fale com seus clientes quando seja mais conveniente para eles com o Genesys Web Callback

Cinco principais qualidades dos melhores professores de Escolas de Negócios

GARANTIA DA QUALIDADE DE SOFTWARE

AULA APLICAÇÕES PARA WEB SESSÕES E LOGIN E SENHA

Internet - A rede Mundial

Políticas de segurança e informações

Transcrição:

Injeção de SQL - Detecção de evasão Resumo A detecção dos ataques de injeção de SQL era feita inicialmente com o uso de técnicas de reconhecimento de padrões, verificados contra assinaturas e palavraschave reconhecidamente maliciosas. Até pouco tempo, essa técnica foi bemsucedida. Agora, os agressores escondem suas intenções malignas de várias formas, para evitar a detecção. Essas tentativas de burlar a detecção exigem novas técnicas e tecnologias a fim de que sejam descobertas e neutralizadas antes que alcancem sistemas críticos e causem a exposição ou destruição de dados corporativos. Os sistemas de detecção de evasão são uma nova forma de proteção contra tais ataques. Esses sistemas reconhecem as tentativas de disfarçar o código malicioso, que poderiam resultar em um ataque de injeção de SQL bem-sucedido, resultando na detecção e eliminação de ataques de injeção de SQL disfarçados. O cavalo de Tróia Historicamente, os ataques de injeção de SQL foram impedidos com o uso de técnicas de reconhecimento de padrões, armazenados em assinaturas em listas de palavras-chave para identificar solicitações potencialmente maliciosas. Como o cavalo de Tróia da lenda grega, o código perigoso está escondido em solicitações válidas e somente se torna aparente depois de aceito dentro dos muros do data center. Os sistemas de prevenção contra ameaças, como o IPS e firewalls de software, podem lidar com essa técnica de invasão e são capazes de detectar esses ataques ocultos antes que eles sejam aceitos no data center e passem pela infra-estrutura de aplicativos, causando danos. Ao longo dos anos, foram compiladas listas enormes das combinações possíveis de palavras-chave e caracteres que podem resultar em um ataque de injeção de SQL, levando à criação de bases de dados de assinaturas. Como cada base de dados tem sua própria implementação do SQL, a linguagem de pesquisa de bases de dados padronizada do setor, essas assinaturas freqüentemente incluem ataques específicos contra certas bases de dados para garantir a detecção do maior número possível de ataques de injeção de SQL. Além das assinaturas, o reconhecimento de palavras-chave normalmente é usado para impedir a penetração nas defesas de aplicativo. Certas palavras-chave como DROP e UNION são freqüentemente usadas em ataques e, portanto, recusadas quando descobertas em solicitações destinadas a qualquer implementação de base de dados. Os agressores descobriram que o "Cavalo de Tróia" é facilmente reconhecido pelos firewalls, e é impedido de penetrar na infra-estrutura de aplicativos. Eles tiveram de descobrir uma nova maneira de introduzir seus ataques nos data centers, e então nasceu a "Zebra de Tróia". A zebra de Tróia A zebra de Tróia é muito parecida com o cavalo de Tróia, usado antigamente para executar ataques, mas suas cores e padrões são diferentes. Os sistemas de prevenção contra ameaças, procurando por padrões específicos, são confundidos pela aparência da zebra de Tróia e permitem-lhe penetrar no data center, onde o seu ataque oculto é facilmente executado contra as bases de dados corporativas. F5 Network, Inc - 1 -

Os ataques de injeção de SQL são bem-sucedidos porque a zebra se parece muito com um cavalo, mas está disfarçada em vários padrões de listras que não estão presentes nas bases de dados de assinaturas de hoje. Pior ainda, os padrões mudam de zebra para zebra, tornando as técnicas de comparação de padrões virtualmente inúteis. Os ataques de injeção de SQL hoje são como as listras na Zebra de Tróia - o perigo está lá, mas está escondido por uma variedade de padrões de listas, e virtualmente indetectável. Os agressores usam a flexibilidade de parâmetros de linha e a variedade de linguagens para ocultar ataques tradicionais contra os sistemas de prevenção contra ameaças. Assim como o padrão de listras da zebra é único, cada ataque de injeção de SQL executado com o uso de novas técnicas para disfarçar sua verdadeira intenção também é único. Ataque tradicional de injeção de SQL 71985 OR 1 = 1 &id=111 UNION /**/ SELECT * 1 UNION SELECT ALL FROM WHERE 71985 OR 1 = 1 Técnica de evasão Manipulação de espaços em branco Comentário - sintaxe C Codificação: Hexadecimal Codificação: BASE 64 Codificação: DECIMAL Variações de um tema Ataque oculto de injeção de SQL 71985 OR 1 = 1 &id=111/*este é um comentário */UN/*Você consegue */IO/*encontrálo*/N/**/S/**/E/**/LE/*Outro comentário para*/ct/*encontrar. se você for*//*capaz*/* 1 UNIO&#x 4E; SELEC T ALL &#x 46;ROM WH ERE MSBVTklPTiBTRUxFQ1QgQUxMIEZST00gV0 hfuku= &#49&#32&#85&#78&#73&#79&#78&#32&#8 3&#69&#76&#69&#67&#84&#32&#65&#76&# 76&#32&#70&#82&#79&#77&#32&#87&#72& #69&#82&#69 71985 OR cidade = muzambinho Essencialmente, hoje há quatro categorias de técnicas de evasão em uso. Manipulação de espaços em branco Quase todos os sistemas modernos de detecção de injeção baseados em assinaturas são capazes de detectar ataques que variam o número e a codificação de espaços em branco em torno do código SQL malicioso. O que esses sistemas não podem perceber é a falta de espaços em branco em torno do mesmo código. Como os métodos de verificação de padrões e assinaturas procuram por padrões de texto que incluem um ou mais espaços, não conseguem detectar o mesmo padrão de texto quando nenhum espaço é incluído. Note também que, embora a manipulação de espaços em branco normalmente envolva a remoção de espaços em branco de uma pesquisa em potencial, os seguintes caracteres também podem ser usadas para confundir os sistemas de detecção baseados em análise de padrões e assinaturas: Tabulação Retorno de carro Nova linha F5 Network, Inc - 2 -

Essa evasão funciona porque o sistema de análise de SQL da maioria das bases de dados não leva em conta os espaços em branco e os caracteres de formação, e na verdade são escritos para atender a uma quantidade variável desses caracteres em torno de palavras-chave. Exploração de comentários No passado, os agressores usavam a sintaxe de comentário de hífen duplo, por exemplo, --, para mascarar suas intenções. Muitos sistemas hoje podem detectar essa tentativa e por isso os atacantes mudaram de tática, usando a sintaxe de comentário da linguagem C, por exemplo, /* */, para evitar a detecção. Os atacantes usam os comentários no estilo C no lugar de espaços, para separar comandos que são normalmente usados juntos em ataques, mas são facilmente detectados mediante a verificação nas assinaturas. Em alguns casos, são usados para separar palavras-chave. Por exemplo, UNION é uma palavra-chave comum usada em ataques de injeção de SQL. Embora os sistemas de detecção baseados em assinatura nem sempre marquem a palavra-chave UNION como um ataque potencial, quando não acompanhada de um espaço ou outra palavra-chave conhecida, uma verificação de palavras-chave irá marcar UNION como um ataque em potencial. Para evitar essa detecção, os atacantes podem tentar usar os marcadores de comentário no estilo C para dividir a palavra-chave, por exemplo, UN/**/ION, dessa forma derrotando não somente a verificação de assinaturas, mas também a de palavras-chave. Esse ataque funciona porque a maioria dos sistemas de análise SQL das bases de dados modernas removem todos os comentários das pesquisas antes de processar o pedido SQL (tudo entre /* e */), e o que resta então é uma declaração SQL perfeitamente válida. Técnicas de codificação As técnicas de codificação provavelmente são o método mais fácil de derrotar os sistemas de detecção de padrões e assinaturas. Isso acontece porque a codificação tem o efeito de mudar completamente o texto, da mesma forma que a criptografia muda o texto para escondê-lo das pessoas que não devem lê-lo. As codificações mais comuns usadas para invadir a detecção são: Codificação de URL Unicode/UTF-8 Codificação hexadecimal Função char() As técnicas de codificação funcionam em função da natureza heterogênea da web, da necessidade de suportar inúmeros idiomas e conjuntos de caracteres e da incapacidade das soluções de prevenção contra ameaças de decodificar adequadamente ou oferecer suporte a múltiplas páginas de código para solicitações de entradas, antes da aplicação de métodos de detecção de ameaças. F5 Network, Inc - 3 -

Variações de um tema Há múltiplas variações de disfarce de ataques que usam as capacidades originais da linguagem SQL, conforme definidas no padrão SQL99. Concatenação A concatenação divide palavras-chave identificáveis e evita a detecção explorando a capacidade original do SQL de construir uma linha única a partir de várias partes. A sintaxe da concatenação varia de acordo com a base de dados, mas, de maneira geral, usa os caracteres mais (+) e a barra vertical ( ) para indicar a concatenação ao sistema SQL. EXEC( SEL + ECT US + ER ) EXEC( SEL ECT US ER ) Conversão As técnicas de conversão fazem uso da capacidade origianal do sistema SQL de converter tipos de dados. Isso permite ao agressor evitar a detecção introduzindo funções SQL válidas que mudam a assinatura de uma declaração. OR username = char(37) /* 37 equivale ao caractere curinga do SQL, %*/ Variáveis Muitos sistemas permitem a declaração de variáveis, que podem então ser usadas não apenas para contornar a detecção pelo software do firewall, mas também a validação adicional de entrada baseada em código. ; declare @myvar nvarchar(80); set @myvar = N UNI + N ON SEL + N ECT U + N SER ); EXEC(@myvar) A zebra de Tróia consegue executar ataques porque essas técnicas de evasão resultam em um número impossivelmente alto de combinações em assinaturas. Em muitos casos, elas podem ser usadas em conjunto. Por exemplo, uma delas pode manipular espaços em branco na solicitação original e então codificar completamente toda a solicitação, exigindo não só uma, mas duas detenções bemsucedidas para impedir o ataque. Esse súbito aumento nas assinaturas de ataque possíveis não pode ser combatido com o uso de técnicas tradicionais de análise de padrões ou bases de dados de assinaturas. Uma nova técnica é necessária para detectar não somente o ataque, mas a tentativa de evitar a detecção. O sistema de políticas de detecção de evasão Para detectar com sucesso tanto o ataque de injeção de SQL quanto uma tentativa de detecção, é necessário incorporar tecnologias de detecção de invasão nas soluções de prevenção contra as ameaças existentes, como o BIG-IP Application Security Manager (ASM). O ASM agora inclui uma tecnologia sofisticada contra evasão, criada para detectar e neutralizar ataques evasivos de injeção de SQL. Essa tecnologia, chamada de Policy Evasion Detection Engine (impede), é capaz de reconhecer vários métodos de evasão, impedindo-os de alcançar o alvo. F5 Network, Inc - 4 -

O impede do ASM cumpre essa tarefa normalizando os dados que passariam pelos sistemas tradicionais de prevenção contra ameaças, os quais dependem de sistemas de verificação de padrões e assinaturas. Normalizando os dados, independentemente do formato em que eles chegam, o impede consegue remover o impacto das tentativas de evasão na verificação de bases de dados de assinaturas e palavras-chave. As técnicas de normalização do impede funcionam porque os ataques de injeção de SQL, em si, não mudaram, mas as maneiras com que eles são embutidos nas solicitações. Ao detectar as tentativas de evitar a detecção pelo sistema subjacente, o impede permite que os métodos comprovados do ASM de prevenção contra a injeção de SQL continuem protegendo os aplicativos e os dados armazenados nas bases de dados corporativas. O impede aumenta ainda mais a segurança sem afetar o desempenho - uma preocupação constante na implementação de sistemas de prevenção contra ameaças e firewalls de aplicativos web em geral - por meio do emprego da detecção baseada em políticas. O impede permite, por meio de políticas, a determinação de quais URLs devem ser examinadas e quais devem ser consideradas como livres de ameaças. Normalmente, as políticas são aplicadas às URLs de envio de dados, mas não necessariamente àquelas que apenas recuperam e exibem dados, visto que essas últimas têm menor probabilidade de conter ameaças em potencial enviadas por agressores. A abordagem flexível do impede, baseada em políticas, permite ao administrador determinar o que deve ou não ser protegido, e pode ser melhorada ainda mais com a capacidade do ASM de monitorar e relatar as mudanças no site, que incluem novas URLs ou mudanças no comportamento das existentes. Isso permite aos administradores tomar decisões, independentemente do nível de segurança necessário, para cada URL, conforme o site muda, tornando a exploração baseada em sites muito mais fácil e simples. Conclusão Um sistema comum de prevenção contra ameaças, baseado em assinaturas ou padrões, como o IPS, não pode lidar corretamente com os ataques evasivos. Embora essas técnicas sejam uma boa base para impedir as ameaças conhecidas de alcançarem os aplicativos, elas constituem um método estático de detecção de ameaças, que não poderá acompanhar a evolução dinâmica dos ataques da web, particularmente o de injeção de SQL. Tecnologias avançadas como o impede do ASM são necessárias para deter as técnicas de evasão usadas para invadir alvos por meio das soluções de prevenção contra ameaças existentes. Essas soluções, como o IPS ou firewalls independentes de aplicativos web, oferecem proteção principalmente na camada de aplicação da web, e não podem lidar com o problema maior da segurança na distribuição de aplicativos. O ASM, combinado com a segurança nas camadas de rede e de transporte de aplicativos em uma plataforma de distribuição de aplicativos, e integrado a uma rede de distribuição de aplicativos, oferece uma solução holística para garantir a distribuição segura, rápida e disponível dos aplicativos. F5 Network, Inc - 5 -