Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Race Condition
Linux user
luizvieira
04/05/2009
Explicação do que é uma race condition e de que forma ela está vinculada à falha de DNS, recentemente descoberta por Dan Kaminsky.
Por: Luiz Vieira | Blog: http://hackproofing.blogspot.com/
[ Hits: 10115 ]
Conceito: 10.0   3 voto(s)3 voto(s)3 voto(s)3 voto(s)3 voto(s) + quero dar nota ao artigo

Race Condition

Em todos os sistemas que funcionam em rede, normalmente há um servidor que processa informações, permite o acesso e utilização de determinados serviços e responde a requisições.

Obviamente que, numa rede com um servidor, há mais de uma máquina cliente realizando requisições ao primeiro num mesmo período de tempo. Isso faz com que o servidor, em algum momento, tenha que realizar mais de uma operação simultaneamente, podendo em determinado ponto de seu processamento, ocorrer um conflite entre as operações simultâneas, já que para que tudo ocorra corretamente, as operações precisam ser processadas em determinada ordem.

Esse tipo de conflito não ocorre apenas em um sistema computacional, mas em todos os sistemas eletrônicos, onde uma operação para ocorrer depende de várias outras. Mas vamos nos ater ao escopo de TIC.

Em um computador, uma race condition pode ocorrer se requisições para ler ou alterar uma grande quantidade de dados são recebidas quase ao mesmo tempo, e o computador tenta sobrescrever parte ou todos os dados enquanto os dados antigos ainda estão sendo lidos. Os resultados podem ser os seguintes: travamento do sistema, "operação ilegal", encerramento do programa, erros de leitura dos dados antigos ou erros na alteração dos novos dados.

Numa rede de computadores, uma race condition pode ocorrer se dois usuários tentam acessar a mesma linha de tráfego ao mesmo tempo e nenhum dos computadores recebem o sinal de que aquele canal está ocupado antes do sistema permitir o acesso.

Um atacante pode tirar vantagem desse tipo de falha - vulnerabilidade de race condition - e ganhar acesso não autorizado ao sistema. Esse tipo de vulnerabilidade também permite um atacante explorar o ataque conhecido como ARP Poisoning (pharming ou ARP Spoofing), onde o mesmo infecta o cache DNS do servidor redirecionando as requisições de determinado IP para um IP especificado pelo primeiro.

Até um tempo atrás, para realizar esse tipo de ataque o atacante precisaria realizar muitas tentativas para vencer a race condition e fazer com que sua requisição fosse processada ao mesmo tempo que uma requisição feita para o IP que seria redirecionado.

No entanto, Dan Kaminsky, um conhecido expert em DNS, descobriu uma falha nesse ano de 2008 que através de uma simples requisição, o atacante faria com que uma série de transações fossem realizadas pelo DNS para buscar o domínio requisitado, o que abriria uma janela de tempo que permitira que o atacante infectasse o cache DNS e redirecionasse o domínio requisitado para o IP de sua escolha. O atacante simplesmente venceu a corrida e infectou o servidor DNS.

Uma falha como essa é muito séria, razoavelmente fácil de explorar através da técnica de Man-In-The-Middle e só agora foi descoberta. Isso quer dizer que tem muito administrador por aí que ainda vai levar um tempo para instalar os devidos patches de segurança.

Resumindo, podemos dizer que uma race condition nada mais é do que uma corrida para ver qual a requisição chega primeiro no servidor e é processada. Sendo assim, é uma condição que pode ser explorada de diversas formas por um atacante habilidoso.

Próxima página >>




Páginas do artigo

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por ctrlc em 05/05/2009 - 09:55h:

Estou gostando do nivel dos temas discutidos nos Artigos. Abraços!!!


[2] Comentário enviado por grandmaster em 05/05/2009 - 21:19h:

Realmente, estão muito bons. Trazendo alguns aspectos de segurança para conhecimento da galera.


Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br


[3] Comentário enviado por AprendizPinguim em 12/05/2009 - 10:10h:

Excelente artigo meu caro amigo!

Abraço!


[4] Comentário enviado por marcrock em 14/05/2009 - 03:51h:

Realmente um artigo excelente !
Esse tema é muito interessante , gostaria de saber se essas condições de race tem relação direta com o modo como o núcleo dos So's gerenciam os atendimentos aos descritores de arquivos e sockets nos diversos subsistemas ( open(), select() , ppoll(), etc ... ), ou diz respeito apenas a implementação do protocolo DNS ou do BIND ???

Parabéns pelo artigo .

Até +.



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.