[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: [Ayuda] Virus en Linux (era Re: {Offtopic}¡MozParty v2! La version 1.0 se acerca...)



Cristian Othon Martinez Vera wrote:

El jue, 14-10-2004 a las 13:07, Iván Caballero Cano escribió:
Técnicamente, es posible hacer virus en Linux. Los virus al fin y al
cabo son simplemente programas, que se pueden escribir en cualquier
plataforma. Y no, afortunadamente no son pocas las personas que pueden
analizar un programa para ver si contiene código malicioso o no.

Por otra parte, el entorno donde se desarrolla Linux no facilita mucho
que digamos la propagación de un virus.

Supongamos que escribes un virus para Linux. ¿Pero para cuál versión?
Un binario para kernel 2.4 ligado estático.

¿Vas a atacar a una distribución en particular, o a todas?

Es más fácil atacar a una en particular, Red Hat, pero si quieres ser más genérico piensa que no necesitas tener un éxito del 100%, con que tengas un 20% tu propagación será muy buena.....

Si planeas
atacar a todas, el virus va a ser algo grande, porque necesita
compilarse estáticamente, para no depender de las bibliotecas de cada
distribución;
Aunque los métodos del virus generalmente son muy específicos y no necesitan mucho código, además de que puedes usar librerías más pequeñas para ligar estáticamente como la dietlibc o usar ensamblador para optimizar todavía más el tamaño....

por lo tanto, su distribución se dificulta. ¿Para qué
arquitectura de hardware?

El virus multiarquitectura si está más cabrón, pero con que ataques a loa i386 tienes para divertirte bastante rato.

El conjunto de instrucciones para cada
procesador soportado por Linux es bastante diferente entre sí. ¿Te vas a
dedicar a atacar x86/x86_64? ¿PPC32/64? ¿ARM?

¿O .....
... no te gustaría atacar Perl, PHP, Python....? ... ¿XMLRPC? (no, ahí si ya me la jalé)

Y por último, quién va a
ejecutar tu virus para que lleve a cabo sus malévolos planes de
destrucción?
Hay muchas alternativas, le puedes pedir a un PHPNuke que te lo ejecute por medio de inyección de código PHP o por medio de inyección de SQL o ya si te quieres sentir muy 31337 entonces te vas a tu sitio de advisories favorito y te buscas el buffer overflow de moda y reemplazas el shellcode del exploit por tu virus.

En Linux no hay llamadas secretas a APIs no reveladas para
ejecutarse tras bambalinas, por lo cual tiene que hacer mucho esfuerzo
para ocultarse.

Depende dónde lo escondas; lo puedes meter dentro de un módulo del kernel y nadie tiene por qué darse cuenta o lo puedes encapsular dentro de un rootkit. Y, además, si se trata de un virus que nadie sabe de dónde llegó ni por dónde llegó, ¿para qué necesitas ocultarlo? Mejor que dedique sus líneas de código a hacer su chamba lo más eficiente posible antes de ser detectado para que en el momento en que alguien lo detecte y lo saque pase poco tiempo antes de que se vuelva a meter.

Y para que un virus tenga realmente el efecto deseado,
necesita ejecutarse con privilegios de root, lo cual no es trivial.
Lo mismo, te vas a tu sitio de advisories favorito y buscas la técnica de moda para escalar privilegios; hay unas recientes para kerneles 2.4.

Además, un usuario de Linux responsable NO entra a su máquina y trabaja
diariamente como root, ¿verdad?

Resumiendo, nuestro virus tiene estas características:
- Un binario grande, compilado estáticamente
- Con soporte para más de una distribución y/o plataforma de hardware
- Requiere de algo de esfuerzo del usuario para su
ejecución/propagación.
- Con las suficientes rutinas para evitar ser detectado por las
utilidades del sistema operativo. Como quien dice, ocultarse de /proc,
ocultarse de ps, ocultarse de lsof, ocultarse de netstat, ocultarse de
<agregue su herramienta de detección de intrusos predilecta>
- Con rutinas para tratar de ejecutarse con privilegios de root.

Y con las últimas versiones de Linux, además debe evitar las
protecciones a la pila de instrucciones/datos y/o que el bit NX no le
meta una zancadilla. ¡Es de flojera hacer un virus así! Y más para la
escasa propagación que va a tener, ¿no lo crees?
Eso si está más cabrón, pero la protección de stack no ejecutable no es exclusiva de Linux (además de que son muy pocos los linux que lo tienen); OpenBSD tiene su (no tan buena) versión, Windows 2003 también tiene algunas medidas similares....

Por lo tanto, no le temo a Bush (en ese aspecto). En esta cuestión,
creo que es más temible un adolescente antisocial y desvelado, con mucho
tiempo en sus manos, y conocimiento mal empleado.

					Saludos


--
Sandino Araico Sánchez
-- ... there's no spoon ...





[Hilos de Discusión] [Fecha] [Tema] [Autor]