ataque Race Conditions

Publicado: maio 15, 2009 em ataques
Tags:, ,

Race condition(Condições de raça) -> Condições de raça é quando varios processos do sistema acessando e manipulando ao mesmo tempo a mesma informaçao de maneira concorrente e o resultado da execuçao depende da ordem particular em que o acesso ocorre.
Condições de raça nao é uma ataque trivial de ser realizado porque necessita de muitas tentativas até  que o atacante consiga algum retorno efetivamente útil. porem, se conseguir que o programa suid que utiliza esse arquivo no /tmp execute (access()) em sua instruçao, sua chance de obter uid=0 será grande.
uso inapropriado de funções como access(), chown(), chgrp(), chmod(), mktemp(), tempnam(), tmpfile(), e tmpnam() são as principais causas de races conditions.

Race condition é muito interessante para invasores que querem elevar seu nivel dentro de um sistema comprometido (obter uid=0(root)).
Vamos ver um pequeno pedaço de código em C que ilustra um race condition:

if(access(“/tmp/arquivo-info”,R_OK)==0) {
fd=open(“/tmp/arquivo-info”);
process(fd);
close(fd);
}

O codigo acima cria o arquivo temporário “arquivo-info” e depois abre-o. A vulnerabilidade em potencial ocorre entre as chamadas das funçoes access()  e a chamada open().

Se um atacante consegue manipular o conteudo do “arquivo.info” entre as funçoes access() e open(), ele pode muito bem manipular qual vai ser a açao que o programa que utiliza esse arquivo vai realizar, isso que chamamos de “Race”.

comentários
  1. […] Race conditions: acesso (), chown (), chgrp (), chmod (), o mktemp (), tempnam (), tmpfile (), tmpnam () […]

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s