Você está na página 1de 5

Invaso de Website

Voc provavelmente j ouviu falar que um determinado grupo de 'crackers' pichou o website de uma instituio. Esse tipo de notcia chama a ateno da mdia e, infelizmente, cada vez mais frequente.

O prprio site do HackerTeen j foi pichado por crackers, assim como o securityfocus.com, mcafee.com (na verdade o site de servios de segurana do sites deles), hackinthebox.org e zone-h.org. Todos apresentaram ulnerabilidades e devem ter evoludo sua segurana aps a pichao, mas ainda assim no podem garantir que esto 100% seguros e nunca mais sero pichados.

Sites famosos esto mais sujeitos a ataques, pois conferem notoriedade e fama ao pichador. Alis, nem todo cracker est interessado em dinheiro e fraudes. A maioria est interessada em ganhar notoriedade entre seus pares, outros crackers.

Identificando vulnerabilidades...
Uma classe de vulnerabilidades que permitem execuo de cdigo malicioso so os ataques de Injeo de Cdigo, ou como so conhecidos na Internet, os famosos "injections". Eles permitem que um atacante insira um determinado cdigo ou mesmo reescreva todo o contedo de um website. Para que isso ocorra, o site deve estar vulnervel a este tipo de ataque.

Principais tcnicas...

Dentre as tcnicas de injection disponveis, as mais famosas so as tcnicas de SQL Injection. Estas tcnicas aproveitam falhas na aplicao ou prticas ruins de desenvolvimento para explorar o servidor remoto.

Na prtica...
Para termos uma idia de como isso ocorre, vamos fazer uma busca simples no Google. Vamos procurar pelo meu nome, e ento, observe sua barra de endereo:

http://www.google.com.br/search?hl=pt-BR&q=yago+&btnG=Pesquisar&meta=

Note que este endereo composto de uma seqncia de variveis, cada uma com um valor diferente. A varivel q (q=yago) a varivel utilizada pela aplicao do Google que faz a busca em um banco de dados, e ento apresenta o resultado ao usurio.

Vamos

fazer

outra

busca.

Vamos

procurar

pelo

nome

Yago

hackerteen:

http://www.google.com.br/search?hl=pt-BR&q=yago+%2B+hackerteen&btnG=Pesq...

A varivel q agora possui os valores yago+%2B+hackerteen, indicando agora ao software para buscar pelas palavras "Yago" e "Hackerteen" no banco de dados.

Faa voc este teste...


Copie o endereo acima, e cole no seu navegador, substitua a palavra 'Yago' por 'segurana', e ento aperte 'Enter'. Note que tanto o resultado da busca quanto as palavras na caixa de pesquisa foram alteradas, ou seja, colocamos um valor na URL e ela afetou o comportamento e a visualizao da pgina da aplicao Google, o mesmo prncipio utilizado no SQL injection.

Claro que isso no uma invaso, e no foi usada nenhuma tcnica especial alm da observao.

Sabendo que este comportamento possvel em websites e aplicaes web, os crackers passam a observar e testar o site do alvo em busca de alguma informao que possa levar a uma falha, como por exemplo, uma consulta que retorna erro ou uma pgina inexistente, ou seja, ele busca um indicio que possvel realizar SQL Injection na pgina.

Como pensa o cracker...


Um cracker pode fazer uma consulta incluindo operadores especiais no Google com a seguinte string: allinurl: produto.asp?id=

A busca acima poderia indicar a existncia de listagens de produtos em um site de comrcio eletrnico. Em pouco tempo, o cracker consegue uma lista de sites que correspondem a essa busca. De posse desta lista, o cracker comea a procurar por vulnerabilidades.

Vamos imaginar que o seguinte site foi encontrado: www.sitealvo.com.br/produtos.asp?id=666

Para testar o site, o atacante simplesmente acrescenta um ' ao final da URL, digitando assim o seguinte endereo: www.sitealvo.com.br/produtos.asp?id=666'

Um site programado com possveis problemas de segurana, retornar um erro semelhante a este: Microsoft Line OLE 1: DB Provider Incorrect for SQL syntax Server error near '80040e14' ''.

/produto.asp, line 12

Ao contrrio, se a programao do site estiver mais cuidadosa, ele retornar algo como a seguinte frase: "Caracteres Invlidos no campo id"

Conhecimento em programao...
ai que entra o conhecimento em programao do cracker. A partir da localizao deste erro e do conhecimento de que existem prticas descuidadas de programao, ele poder inserir comandos e scripts que sero executados pelo site da vtima, levando pichao e mesmo fraude, como alterao de preo de produtos, negao de servios, implementao de backdoors e outras atividades ilictas.

Exemplo: www.sitealvo.com.br/produtos.asp?id=666 and

'SELECT

password

FROM

costumers'

Com este comando, o cracker traria as senhas dos clientes cadastrados no site, por exemplo

Reforce a segurana do seu website...


Para se proteger desses ataques, necessrio utilizar boas praticas de programao aliadas a uma poltica de segurana local dos servidores web, ou "hardening". Para prevenir alguns problemas recomendado que alguns parmetros de PHP sejam configurados no php.ini:

allow_url_fopen = Off safe_mode = On magic_quotes_gpc = On display_errors = Off

Voc estar protegendo...


Este conjunto de instrues impedem que URLS externas sejam interpretadas pelo PHP, obrigam as aplicaes a rodarem com UID/GID definidas, protegem caracteres especiais utilizadas em SQL Injection, como o ' (aspas) do exemplo acima e a ltima impede que mensagens de erros sejam mostradas no browser, dificultando a anlise do atacante.

Para os servidores de banco de dados...

Utilize criptografia nas senhas, utilize privilgios distintos para o dono do banco e para os objetos do banco. O programador deve sempre fazer tratamentos das querys e sempre checar os dados antes de enviar para o sistema gerenciador de bancos de dados. Por exemplo, se voc espera que o usurio digite um nmero, tenha certeza de que o dado realmente um nmero vlido, antes de realizar a consulta.

Para a servidor web...



Tenha cuidado com as permisses do diretrio do servidor web, permisses incorretas de gravao em um arquivo php, por exemplo; Fique atento s permisses especiais para diretrios; Esconda as assinaturas que exibem a verso do servidor e mdulos utilizados: Para o Apache, habilite a opo "server signature off" no arquivo de configurao; Mantenha os servios sempre atualizados, e no mantenha instalado aquilo que voc no pretende utilizar, por exemplo, NFS em um servidor Web; Tenha cuidado com as permisses dos executveis em servidores web. Um atacante pode usar ferramentas simples como clientes FTP e clientes web (o wget, por exemplo) para iniciar o download de cdigo malicioso ou kits de invaso para o servidor em ataque;

Tenha cuidado com os parametros de montagem de dispositivos; A partio /tmp o alvo preferido de crackers porque possui permisso de escrita, leitura e execuo para todos. O uso de tcnicas simples, como configurar a partio com parmetros noexec impede que o cracker execute alguma ferramenta a partir do /tmp;

Observe as permisses especiais...


Existem permisses especiais, como o SUID BIT, que permitem que qualquer aplicao seja executada com permisses de root, o que pode comprometer a segurana. Faa testes peridicos e elimine arquivos com permisso SUID.

Uma maneira simples de efetuar esta busca executar o comando: # find / -perm -4000

Sempre analise o contedo das pastas que podem ser escritas pelo usurio que executam os servios web; Sempre cheque a integridade dos arquivos disponibilizados no seu servidor web. A instalao de uma aplicao automatizada para isso, como o AIDE, facilita bastante a criao das somas de checagem e sua conferncia; Analise constantemente os registros de atividades (logs) do seu servidor; Analise constantemente as informaes vitais do seu servidor: consumo de disco, banda e memria. Alteraes significativas podem ser sinal de algo errado; Elimine servios no usados; Mantenha uma poltica de atualizao de software; Saiba quem acessa e o que faz em seu servidor. Uma poltica de acesso controlada com uso de sudo e registro de operaes fundamental; Documente: A inexistncia de documentao pode levar a soluoes de contorno que podem expor a segurana; Comunique: Modificaes no comunicadas e no analisadas podem levar a problemas de segurana;

Mantenha-se

antenado:

Busque informaes

sobre

problemas

de segurana enfrentados

por outros

administradores ou nos boletins de segurana. Observe as permisses especiais... Utilize prticas de desenvolvimento seguras; Faa tratamento de erros nas mensagens; Nunca acredite nos dados que foram digitados, sempre efetue validaes. Tanto no lado cliente como no lado servidor; Crackers so criativos, sua defesa tambm a criatividade. Passe um bom tempo imaginando o que faria se fosse um cracker.; No acredite que algo seguro. Ele pode estar seguro, mas mentes criativas esto tentando encontrar formas de torna-lo inseguro.

Teste as aplicaes antes que algum faa isso por voc!

Apesar dessas medidas serem interessantes, elas no garantem segurana 100%. Nenhuma medida ter 100% de garantias. A insegurana estar sempre frente da segurana, basta assistir ao filme "Prenda-me se for capaz"

Para saber mais: http://www.owasp.org