Superficie de ataque: ¿Open Source es inmune a los Virus Informáticos?

Desde el mes pasado, en un programa de entrenamiento que llevo a profesionales de Segunda Carrera en el tema de Redes y Sistemas Operativos, todos ellos licenciados y profesionales que buscan especializarse mas y mejor en el tema de Tecnologias de la Informacion, ha resultado ser una experiencia satisfactoria, primero por el tema de ser un entrenamiento super acelerado que esta programado para un total de 7 semanas de lunes a sábado, segundo que la interacción es muy abierta y amena, con ellos puedo charlar de todo… hasta de tecnologia :). Esto no pasaria de ser una anécdota sino fuera por el detalle que, en mi segundo grupo, tengo como alumno a un muy hábil y presto bachiller en ingenieria de sistemas (pronto a ser ingeniero, si es que en estos momentos ya lo es) amante del Open Source, es muy buena persona y a la primera cae muy bien,  en estas dos últimas semanas se ha abierto mas al grupo y ya podemos oirlo hablar del Open Source en plena clase de Sistemas Operativos (con prácticas de laboratorio de Software Propietario), todos lo escuchan atentamente y luego dirigen las miradas hacia mi… como buscando confrontacion, con aquellas miradas que dicen sin palabras: «queremos ver sangre!»

 

Parece que mi estimado alumno se siente incómodo de NO ver en mi persona una reacción de corte religioso, defendiendo a capa y espada al Software Propietaro, ni mucho menos una actitud retadora, lo sé porque ya no es tan atento como antes, sus comentarios se ha vuelto ácidos y razón no le falta: el grupo esta encantado con el curso y estan aprendiendo a valorar los modelos de negocio y ya saben que el Software Libre tiene su contrapartida en el Soporte (que SI cuesta) y el Software Propietario tiene un costo inicial y su contrapartida es que NO cuesta, ademas que ya aprendieron a evaluar a las plataformas y software de base en función a su TCO (Costo Total de Propiedad – Total Cost of Ownnership) todo esto de manera práctica y sin influencias de ningun lado.

 

Lo rescatable del asunto es que en estos dias he aprendido indirectamente de los mensajes que nos da mi estimado alumno, como por ejemplo, el tema de los virus informáticos. Segun mi querido alumno,  Linux no necesita de antivirus, ya que, simplemente es inmune a los virus, lo que lo hace mas seguro frente a Windows…  aqui me detengo y voy a dar algunos alcances al respecto, siempre con la imparcialidad del caso, ya que, tuve la experiencia de capacitarme en un Centro Especializado en RedHat y conozco al bicho desde la version 6.0.

 

Linux posee un kernel monolítico con módulos y utilidades (en nuestro idioma Ejecutables) tipo ELF o scripts de Shell o Perl, que, porsupueto es una buena alternativa frente a productos como MS o Sun. Bien, todos sabemos que el kernel y el codigo de sus aplicaciones (Linux) es abierto, esto ha creado el hábito en los usuarios avanzados de Linux a examinar el codigo fuente de cualquier programa (Free Software) que llegue a sus manos, por lo que, en un eventual caso, podrian identificar si existe codigo malicioso o algo peor, no todos los usuarios de Linux lo pueden hacer, solo quienes tienen alta experticia en el manejo del Kernel de Linux, que hasta el momento pueden ser contados con los dedos de una mano.

 

Hasta aqui, Linux parece un candidato poco atractivo para los virus informáticos y el ganador absoluto de la seguridad frente a Virus, ahora veamos el tema de la difusión del producto, y lo pongo con un ejemplo:

 

Si pudieramos tener la capacidad de construir un edificio moderno y lleno de puertas, paredes y ventanas de vidrio en dos lugares al mismo tiempo: uno en una zona de muy alto tráfico (zona céntrica, comercial, etc) y otra réplica en un lugar muy poco frecuentado (casa de campo, de playa o de retiro en un bosque lejano y aislado del mundanal ruido) y en un eventual caso que se genere violencia ciudadana o algun caso fortuito de saqueo total por cualquier razon que no viene al caso… la pregunta sería: ¿Cuál de los dos edificios estaria mas propenso a ser atacado y destruido?… la respuesta es obvia: el edificio en la zona centrica. La siguiente pregunta sería : ¿Entonces es el edificio de la casa de campo o playa mas seguro que el de la zona centrica? la respuesta es NO. –

 

Pues, lo mismo sucede con el software de MS y el Software Libre, haciendo analogias podriamos decir que el Sw de MS seria el edificio en la zona comercial y el Software libre seria el edificio en la casa de campo, hasta aqui nadie ha dicho cual es mejor o peor, solo que en todo  el mundo, el Sistema Operativo mas usado es Windows, por lo tanto su superficie de ataque es mas grande respecto a la del Software Libre, que, al menos por el momento no tiene una superficie de ataque tan grande como la de Windows (Software libre).

 

Vayamos al campo meramente técnico y lo sigo explicando, aplicando Scripts SH y Shell podemos programar a manera de juego de niños un virus que fastidie al sistema Linux:

 

#!/bin/sh

for ARCHIVO in *

do

    tail -4 $0 >> $ARCHIVO

done

 

Explicando: se copian las últimas 4 lineas (tail -4 $0) al archivo en un directorio, es un programa muy tonto, pero puede echar a perder las carpetas y particiones que contienen datos dejandolos inutiles, y si agregamos unas cuentas decenas de lineas mas, esto ya toma otras dimensiones de poder destructivo. Estas lineas de codigo son faciles de programar, y tambien fáciles de detectar a simple vista, pero un usuario normal no podria identificarlo en linux.

 


Premisa: EN LINUX NO HAY VIRUS… ¿entonces porque se fabrican antivirus para Linux?

Lista de antivirus (FOR LINUX) disponibles para descarga: http://www.softonic.com/s/antivirus-linux:linux

 

Infectando un ejecutable ELF

Al tener un origen «similar» a UNIX, se puede programar en lenguaje C un método que use lo siguiente:

Modificar la cabecera del ELF (p_shoff) para poder insertar de manera casi indirecta un sh_offset y asi incrementar el tamaño dela cabecera y desde ahi insertar el virus en ese archivo, lo que haria que el codigo quedara «invisible» y pudiera quedarse en el sistema, infectando a todo lo que encuentre a su paso. Es asi que tenemos virus sueltos por la red (Internet) esclusivamente para Linux, y hasta tienen sus nombres (al mejor estilo de Windows) Wintermute presento hace un tiempo atras u virus llamado Lotek que hacia lo mismo que el ejemplo descrito lineas arriba.

  

Infectando Archivos Fuente

Paquetes .deb .rpm .mdk

Los usuarios Windows usan EXE para sus instaladores, en Linux se usan los .deb .rpm o .mdk dependiendo de la distribucion de Linux que tengamos en las manos, tambien en Windows tenemos ADMINISTRADOR su homólogo en Linux es ROOT, lo que me gusta de Linux es que no te permite usar ROOT de forma nativa, y si deseas hacer cambios importantes con una cuenta limitada debes poseer las credenciales de ROOT (esto ya es posible en Windows Vista con UAC User Account Control, pero reconozco que Linux lo tenia hace mucho tiempo atras), bien… entonces cualquier usuario Linux puede descargar software de Internet, pero solo ROOT puede instalar, el truco es el mismo que en Windows, se infecta el archivo fuente .deb  .rpm o .mdk y al ejecutarse con ROOT ya estamos contaminando de virus porque ya podemos acceder a todo el sistema, esto, debido a las comprobaciones MD5 que posee Linux, que es un punto flaco que espero corrijan (si ya lo corrigieron bien por Linux) y que esta presente en muchas distribuciones Linux.

 

 

De los VXers para Linux

Un VXser es un escritor de virus, sucede que uno de estos pudiera tener en su PC un arranque dual Win-Linux y pudo haber realizado bastantes pruebas sobre el sistema pero nada serio como para afectar de manera dramática los sistemas Linux, esto porque los VXsers aun no tienen el conocimiento que SI poseen con Windows y DOS despues de haber trabajado muchos años sobre ellos.

 

Esto se supone que va a cambiar con el paso de los años, y pronto los VXsers usaran Linux en sus sistemas y entonces habra una gran avalancha de Virus para Linux, es ahi donde podemos medir con la misma vara a ambos sistemas y ver quien sale mejor parado de todo esto. Ahora es injusto hablar de esto si las condiciones no son iguales, sean estas para bien o para mal.

 

Mi resumen: por el momento Linux es mas seguro que Windows frente a los virus, pero NO es inmune.

 

Esto de hacer comparativas sobre Sw libre y Sw propietario me va gustando, de pronto me animo a poner mas cosillas, sobre todo con el tema de software no Libre dentro del mundo de software Libre… lo puedes creer? pues si… es un tema llamado universe y  multiverse y los copyright que SI existen en linux… pero esa… ya es otra historia…

 

 

4 comentarios sobre “Superficie de ataque: ¿Open Source es inmune a los Virus Informáticos?”

  1. Solo me gustaría remarcar ciertas cosas que mencionas…

    «…uienes tienen alta experticia en el manejo del Kernel de Linux, que hasta el momento pueden ser contados con los dedos de una mano.»

    con los dedos de una mano, te refieres a que a lo mas 5 personas tienen alta experiencia en el manejo del Kernel de Linux, solo invitarte a que mires el movimiento que tiene la lista de correo del kernel, basta con eso como contra argumento.

    «…Premisa: EN LINUX NO HAY VIRUS… ¿entonces porque se fabrican antivirus para Linux?
    Lista de antivirus (FOR LINUX) disponibles para descarga: http://www.softonic.com/s/antivirus-linux:linux…»

    chequeando el enlace que entregaste podemos ver lo siguiente…

    «…Infectando Archivos Fuente
    Paquetes .deb .rpm .mdk..»

    solo mencionar que los repositorios con paquetes están usando sistemas como GPG para autenticar su origen, por tanto argumento no valido.

    Softonic : …El objetivo principal de Panda Antivirus para Linux es realizar a análisis y desinfecciones en las estaciones Windows y DOS conectadas a un servidor Linux, así como del propio servidor Linux.

    Nota deje ese solo por ser el mas resumido pero puedes ver los demás siguen el mismo concepto.

    el punto el cual deseo llegar es me parece excelente hacer comparativas, pero estas deben ser basadas en «buena» información, quizás un usuario de Gnu/Linux podría generar una comparativa de la misma forma que planteas con resultados completamente dispares, quizás por no conocer, comprender o tan solo no documentarse correctamente respecto a su contra parte utilizando información sesgada, lo cual creo que puede ser el caso.

  2. Estoy de acuerdo con el primer comentario.

    De igual forma que tu script parece muy facil también si pones del *.* en un fichero .bat y lo ejecutas te puede montar una buena.

    A mi que conste que estas comparativas nunca me han gustado porque SIEMPRE, repito SIEMPRE son sesgadas y no creo que aporten nada.

    Un saludo.

  3. Pues yo creo que el post es bastante válido, y en el fondo lo que se puede deducir de todo ello es que más o menos seguro, más o menos vulnerable, lo que sí queda claro es que por la forma en que un sistema GNU/Linux está concebido no es un sistema que hoy por hoy pueda suplantar en un entorno doméstico a un sistema Windows, para un usuario «promedio».

    Esto no quiere decir que el gestor de actualizaciones que utilicemos sea más o menos seguro, llamémoslo apt-get o aptitude en un entorno Debian, Ubuntu o similar… o cualquier otro entorno basado en RPM. Pero lo que sí está claro es que a un usuario no iniciado no podemos exigirle que haga ciertas tareas como recompilar un kernel para incluir más o menos módulos en él, o que juegue con la configuración de las X para cambiar ciertos parámetros que al pasar de una versión a otra pueden causar conflictos…

    Resumiendo, es aún largo el camino que se debe recorrer para que este tipo de SO irrumpa de manera significativa en el mercado doméstico. Y, por la propia filosofía de la mantenibilidad y actualización del sistema, no se está caminando en una dirección que apunte a este destino.

    Todo esto dicho con la mayor imparcialidad posible y tratando de ponerme en la piel de un usuario no experto en la administración de un SO, punto de vista que a veces se nos olvida tanto a unos como a otros, pero en el que Microsoft hace especial hincapié.

    Os recomiendo el libro «Why Software sucks?», de David Platt

    Un saludo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *