Gente vi todo el debate sobre los virus y bueno como no estaba informada del
tema me puse a indagar aqui les dejo un articulo que si bien es larguito esta
muy bueno ... ademas esta puesto como pa tontos (por eso lo entendi jajaja) ...
bueno espero que les guste ... les paso el link asi ven el informe completito
porque solo saque lo de linux ...
http://www.e-ghost.deusto.es/docs/articulo.virus.html
En Linux no hay virus... ¡Falso! Objetivos y técnicas:
Scripts: sh, Perl
Los lenguajes interpretados han sido una constante en todo sistema UNIX.
Actualmente los
más utilizados son los scripts de shell y Perl. Programar un virus en estos
lenguajes es
un juego de niños, aquí tenemos un ejemplo de un virus de shell sencillo:
#!/bin/sh
for FICHERO in *
do
tail -4 $0 >> $FICHERO
done
¿Qué hace? Va copiando sus 4 últimas líneas (tail -4 $0) al final de cada
fichero en
este directorio (">>" es append, o añadir al final). Como podemos ver, es un
virus bastante
tonto, infecta tanto ejecutables como ficheros de datos, y puede dejarlos
inutilizados, pero
con unas pocas decenas de líneas más, podría hacerse algo más presentable.
La sencillez de estos virus es su ventaja para sus programadores, pero también
su debilidad:
son tremendamente fáciles de detectar a simple vista, engordan el tamaño del
fichero infectado
considerablemente y realentizan su ejecución más allá de lo inperceptible por
un usuario
normal.
Binarios
a.out
Es un formato realmente simple, casi tanto como los COM de DOS. Actualmente
este tipo de
ejecutables está en desuso, pero todavía quedan sistemas con a.out's (a pesar
de que el
compilador genere un fichero llamado "a.out", eso no implica que tenga este
formato, casi
con seguridad se tratará de un ELF).
Infeccion de ejecutables a.out:
Se puede optar por aumentar el tamaño de la sección de código (.text) y
desplazar el
resto del archivo, o tratar de encontrar una cavidad (cavity) para instalar el
virus
allí. El virus, además, deberá modificar la cabecera para reflejar los cambios
(diferente
tamaño de secciones, diferente entry point...).
ELF
El formato ELF es el más utilizado hoy en día en los ejecutables para UNIX. Es
un
formato muy flexible y bastante bien diseñado.
Infeccion de ejecutables ELF:
Las investigaciones más serias en este campo vienen de la mano de Silvio Cesare.
Ha publicado ya numerosos artículos acerca de este tema, y todos sus virus han
sido programados en C, para poder ser compilados en cualquier sistema UNIX. El
método que utiliza es el siguiente:
Incrementar un campo en la cabecera del ELF (p_shoff) que indica el
desplazamiento u offset donde se encuentra la tabla de cabecera de secciones
(Section header table).
Hallar la cabecera de programa del segmento de codigo y:
Incrementar la variable que indica el tamaño que ocupa el código
físicamente (p_filesz).
Incrementar la variable que indica el tamaño que ocupa el código
cuando se carga en memoria (p_memsz).
Para cada cabecera de programa cuyo segmento esta despues del de
codigo (que es donde hemos introducido el virus):
Incrementar el offset del segmento en el fichero (p_offset).
Para cada cabecera de seccion cuya seccion este despues de nuestra
insercion:
Incrementar sh_offset, para tener en cuenta el nuevo codigo
Insertar el virus en si en el fichero
Esto puede parecer un lío para más de uno, en simples palabras lo que
se trata es de hacer el tamaño del segmento de código más grande para
hacer espacio para el virus. Luego hay que actualizar todos los valores
para que el código nuevo se cargue, y cambiar el entry point para que
apunte al virus.
Este método de infección funciona perfectamente, pero no es el único.
Wintermute presento en el hackmeeting de 2000 un nuevo virus para Linux,
el Lotek, que realizaba una infección aprovechando una cavidad (cavity)
en la sección ".note".
Recientemente el ex-VXer Bumblebee ha publicado un virus para Linux con
residencia per-process en RING-3 y unas cuantas técnicas aprendidas en
entornos win32. Muchas de las estructuras de win32 tienen su paralelismo
en Linux, por lo que gran cantidad de técnicas pueden portarse fácilmente
a los virus de Linux.
Ficheros de fuentes
Hay algunos intentos de infectar ficheros fuente en lugar de binarios. Se puede
realizar
un enfoque desde el punto de vista de ensamblador "inline" o embebido dentro
del código,
o bien un ejecutable que genere fuente como salida.
Packages: .deb, .rpm, .mdk
Un punto todavía poco explotado es el de los paquetes de software de las
diferentes
distribuciones de Linux. Mucha gente utiliza paquetes para instalar programas
de manera
sencilla y ordenada, y en ocasiones esos paquetes son descargados por un
usuario sin
privilegios desde un navegador, para ser instalados posteriormente por "root".
En ese
intervalo de tiempo en el que permanecen en el directorio del usuario sin
privilegios
podrían ser infectados y luego, al ser instalados por "root", acceder a todo el
sistema.
Un paquete generalmente tiene comprobaciones mediante MD5, pero pueden
recalcularse, por
lo que este puede ser un punto flaco importante en nuestras distribuciones
Linux.
Ya, pero Linux es seguro, ¿no?
Linux es seguro
Sí, Linux es bastante seguro. De hecho un virus deberá utilizar algun despiste
de
configuración en el sistema para poder colarse hasta tener acceso a todas sus
partes.
Está claro que actualmente usar Linux es el mejor antivirus que existe. No he
visto
a nadie que haya sufrido un virus en Linux y eso que conozco a mucha gente que
usa
Linux masivamente. Es posible que con el tiempo esta situación vaya cambiando y
Linux sea otro escenario donde se libren las batallas entre programadores de
virus
y de antivirus. Por el momento, salvo experimentos de laboratorio, estamos a
salvo.
¿Cómo podemos hacer una escalada de privilegios?
Exploits
Un exploit es un programa que aprovecha un fallo en el sistema para conseguir
algo no
permitido de él. Si un virus incluye ese código dentro del suyo, podría
conseguir
acceder a zonas no permitidas y hacerse con el control del sistema.
Este enfoque ha sido utilizado en varios virus para Linux, como el staog por
Quantum/VLAD,
pero implica la extinción del virus en cuanto el fallo que explota el exploit
sea
subsanado. Algunos virus intentan aprovecharse del exploit, y si no tiene
éxito, eliminan
el código del exploit del resto de infecciones.
Este enfoque es más propio de entornos menos dinámicos en cuanto a correcciones
de
fallos en programas, como Windows (poca gente actualiza periódicamente su
navegador
o su editor de textos). En entornos de desarrollo open source los fallos suelen
ser
detectados y subsanados más dinámicamente.
LKMs (Loadable Kernel Modules)
Hemos dicho en la introducción que el núcleo de Linux es monolítico, pero tiene
un
sistema de carga y descarga de módulos que permiten un uso más eficiente de los
controladores de dispositivos (drivers).
Un módulo del kernel (o LKM) se ejecuta en RING-0, dentro del espacio reservado
para
el kernel, es decir, tiene un poder total sobre la máquina. Es posible
programar LKMs
que tengan mas poder o que engañen a "root", por lo que si un virus lograse
cargar
un módulo dentro del módulo, podría ser una pesadilla para el administrador de
la
máquina, y el único límite de acción serían las limitaciones físicas de los
dispositivos.
Con un LKM se puede hacer de todo: ocultar procesos, modificar tamaños de
archivos,
etc. por lo que puede que los futuros virus de Linux incluyan LKMs para sus
propósitos.
Windows/Linux
Muchos de los ordenadores personales que utilizan los usuarios de Linux, aunque
a veces
cueste reconocerlo, tienen una partición con Windows. Existen varias
herramientas para
acceder a particiones Linux desde Windows, explore2fs quizá sea la más conocida.
Si un virus atacase un sistema Windows, consiguiese los privilegios suficientes
como para
acceder al disco duro y buscar un fichero clave dentro de la partición Linux,
como pueda
ser "init" (el proceso inicial del que se crean todos los demás procesos) o la
shell que
use "root", todas las protecciones de Linux como tal habrían sido inútiles.
Aunque suene
un poco fuerte: la inseguridad inherente de Windows actuaría como "Caballo de
Troya" contra
el sistema Linux.
Existe otra herramienta bastante utilizada, VMWare, que permite tener varias
máquinas
virtuales corriendo Sistemas Operativos diferentes. Es también muy común tener
Windows
y Linux funcionando al mismo tiempo con VMWare. En lugar de tener que esperar a
que el
sistema rearranque con Linux como en el caso anterior, la infección podría
hacerse
directamente, ya que VMWare es fácilmente detectable (utiliza un RING que no es
ni 0
ni 3).
fork() y crack
Un virus desde una cuenta de usuario podría armarse de paciencia y crear un
proceso
con muy baja prioridad (para no interferir en el rendimiento normal del
sistema) que
intentase crackear las contraseñas por fuerza bruta.
Imaginemos un sistema automatizado, en el que el administrador entra sólo cada
semana
a retocar 4 cosas, pero no hay una supervisión real. Un virus podría colarse
desde
una cuenta sin privilegios, y estar un par de semanas intentando crackear las
contraseñas. Una vez conseguido esto, sólo queda dar el salto a "root" y de ahí
a donde quiera (kernel, otros ordenadores...).
Entonces... ¿por qué no hay (casi) virus para Linux?
Perfil del usuario medio
Actualmente el usuario medio de Linux tiene poco que ver con el usuario medio de
Windows o Macintosh. Quizá mucha gente cayó con lo de "Enanito si, pero que
pedazo
de coj...", pero esto tendría poco éxito en un entorno de usuarios de Linux.
La gente acostumbra a conocer el origen de sus programas, y examina su código
fuente. No quiero decir que todos los usuarios de Linux lo hagan, pero hay un
grupo importante de gente que lo hace y lo comenta al resto.
Las llamadas "técnicas de ingeniería social", es decir, hacer uso de la candidez
del usuario que recibe un virus o gusano, tienen muchas más dificultades
con usuarios de Linux.
Filosofía del software
Como acabo de comentar, que Linux sea de código abierto y haya una mentalidad
clara en cuanto a ese tema, dificulta ocultar código en los programas.
Ken Thompson dijo que ningún software creado por otro podía ser confiable,
especialmente si había creado por él. Tal y como explicó en una conferencia
en mitad de la década de los 80, Thompson había introducido un sistema de
autoreplicación y "troyanización" en todo compilador C para UNIX que le
permitió hasta entonces poder entrar como "root" en todo sistema hasta la
fecha. Si alguien quiere saber cómo se las ingenió el bueno de Thompson,
lo explicaré por email gustosamente, o bien esperáis al turno de preguntas
O:-)
Pocos VXers linuxeros
Todavía hay pocos escritores de virus que usan Linux habitualmente. Algunos
han instalado Linux en una partición para hacer sus pruebas y conocen bastantes
cosas de él, pero no tienen en absoluto la soltura que han conseguido durante
años de uso de DOS y Windows.
Supongo que esto cambiará con el tiempo, y pronto los VXers usarán Linux a
diario. Cuando esto ocurra, yo creo que habrá una nueva hornada de virus
para Linux programados desde la experiencia, no como un experimento de
laboratorio.
¿Y qué puede pasar en el futuro?
+ Usuarios novatos+ Empresas usan Linux -> - Open Source+ Configuraciones
"click&play" -> - Robustez del sistema+ VXers linuxeros
Conclusión
Solución: una buena "salud" informática
Es decir:
actualizar las versiones de nuestros programas para evitar bugs.conseguir los
programas de fuentes fidedignas.utilizar siempre que sea posible la versión en
código fuente de los programas.no ejecutar todo lo que nos llegue por
Internet...
Todo ese tipo de cosas que, como espero que haya quedado claro ;-),
utilizan los virus para colarse en nuestros sistemas
Yo y solo io ... La mas genia ... Del mundo mundial ...
Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/_________________________________
Lista de correo - L U G Tucumán
http://www.lugtucuman.org.ar