Race condition - vulnerabilidades em suids

Neste simples artigo vou tentar passar o conceito básico de race condition, a condição de corrida com arquivos temporários e "leaks" da memória de SUIDs. Vamos ver como obter privilégios explorando estes suids e como se proteger deles.

[ Hits: 26.861 ]

Por: Anderson L Tamborim em 15/04/2004 | Blog: http://y2h4ck.wordpress.com


Como proteger seu sistema



Hoje em dia existem muitos patches para kernel que previnem contra diversos tipos de ataque, porém o problema do race condition não está no seu sistema e sim no programa que é vulnerável à ele. Portanto a melhor maneira de deixar seu sistema protegido contra esse tipo de ataque é ficar de olho nos advisories que sempre saem na net e manter seus softwares sempre bem atualizados.

Porém, aplicando o patch do PaX (http://pax.grsecurity.net), você se previne contra execução de código arbitrário em seu sistema.

Para maiores informações sobre ataques race condition tenho alguns links abaixo:

Bibliografia



Aos programadores interessados em melhorar seus códigos para evitar problemas com race condition, seguem alguns títulos recomendados:

 

Disponíveis nas melhores livrarias da internet :)

Cordial abraço à todos da comunidade.

Spawn Locoust

Página anterior    

Páginas do artigo
   1. O que são os race conditions
   2. Como proteger seu sistema
Outros artigos deste autor

Análise passiva (parte 2)

Carnivore e Altivore: Os predadores do FBI

Análise Forense - Aspectos de perícia criminal

PortSentry: Melhorando a segurança do seu Linux

Segurança no SSH via plugins da PAM

Leitura recomendada

Autenticação via hardware: o módulo pam_usb

Vulnerabilidade em mais de 6 milhões de sites com flash

Os 5 princípios básicos de segurança para empresas

Seguraça extrema com LIDS

Instalando e configurando o BackupPC

  
Comentários
[1] Comentário enviado por fcc em 15/04/2004 - 17:21h

Muito bom artigo....acho q o pessoal tem q saber um pouco mais sobre a seguranca q o LInux nos oferece...

Valeu!!!

[2] Comentário enviado por jllucca em 15/04/2004 - 23:43h

Excelente artigo!

Não conhecia a função access(), sempre testava se o arquivo existe com duas linhas(fopen e fclose) e sobre trecho ali, open precisa de no minimo dois parametros pra ser compilado. Fora o que já esta la(o PATH) precisa ainda de uma flag que indica o que estamos fazendo(Lendo, gravando...).

[]'s :)

[3] Comentário enviado por cvs em 17/04/2004 - 09:57h

o negocio eh so nao deixar ninguem acessar seu pc... hehehe ou seja.. killall sshd
userdel -r (os outros usuarios que nao seja vc)

passwd root (mudar a senha de root de 3 em 3 dias)
passwd seu_user (mudar sua senha todo dia)

pronto... E agora? hahahahah :P

Meo, seguranca eh algo bem nervoso hein... hehehe

[4] Comentário enviado por y2h4ck em 17/04/2004 - 11:41h

cvs o problema e que um provedor nao pode fazer isso =] um provedor um servidor em producao roda muitos servidos com acesso remoto =]
um deles pode estar vulneravel e dar o acesso suficiente ao bash no sistema ehehe :)


[5] Comentário enviado por ph0enix em 04/12/2004 - 20:24h

cvs, você se considera seguro apenas removendo todos os usuários do sistema, alterando sua senha para algo absurdo, que mais parece um MD5/SHA ?
Abra o google, digite o nome do seu navegador, do seu programa de emails, do seu firewall, ou até mesmo do seu provedor de internet, e veja as vulnerabilidades que os mesmo apresentam.
Seu provedor de internet provavelmente já foi invadido, você utiliza criptografia em seus emails ? quando loga aqui no VOL, é com HTTPS ? você utiliza pops ?

Suas informações podem estar sendo capturadas (sniffing) por algum intruso no seu provedor neste exato momento.

Abraços.


Contribuir com comentário