Luego de una larga temporada de estar ocupado en varios temas por fin me puedo dar un tiempo para escribir este artÃculo que responde de alguna manera los largos bytes invertidos en sendas discusiones por mucha gente en la red, pero empezaremos por lo más simple, respondiendo algunas preguntas:
¿Existe virus en Gnu/Linux?
De momento no esta probado que existan o que no existan, de hecho las más vagas referencias a un "virus" son gusanos que atacan servicios que usan Internet y que "corren encima" de Gnu/Linux, pero el gusano en si no ataca al kernel Linux o al sistema Gnu (las 2 piedras fundamentales de todas las distribuciones de Gnu/Linux) y por último un gusano no es un virus.
¿Existieron alguna vez virus en Gnu/Linux?
Si, en la época dle kernel 2.2 puede leer algunos artÃculos técnicos de gente que habÃa logrado escribir algunos virus de muy poca peligrosidad y que requerÃan de algunas acciones muy forzadas para funcionar, en épocas del kernel 3.0 que es lo que usamos actualmente esto ya no lo he vuelto a ver y es una alegrÃa máxima para mi al menos, sin embargo encontrarán mucha gente que dice que puede vulnerar permisos y seguridad de Gnu/Linux, pero ¿saben que?, nuevamente bajo condiciones muy forzadas que detallaré un poco más adelante y tampoco son virus.
Entonces, ¿porque existen antivirus en Gnu/Linux?
Simple, para limpiar archivos que son traspasados de y hacia Microsoft Windows (c) del tÃo Bill, pero no son antivirus que realmente estén protegiendo tu Gnu/Linux
Bueno ahora si a lo nuestro, Porque no Hay Virus en Gnu/Linux.
Empecemos por 3 motivos por los cuales yo creo que no existen, y que será muy difÃcil que existan (pero obviamente no imposible) virus para Gnu/Linux
Arquitectura del Sistema Operativo
Bueno esta es la parte más técnica y complicada de explicar, deberÃamos ver a Gnu/Linux desde este momento como un sistema tipo Unix, construido y pensado para funcionar en diversas capas que se comunican entre si para llevar a cabo sus funciones más básicas, esas capas requieren entre una y otra niveles de acceso y tienen que pasar por asignación de recursos aislados para sus propios propósitos (ram especialmente), esto genera una especie de gran campo dividido en muchos cientos de pequeños trozos de tierra donde para pasar de uno a otro tienes que autenticarte y usar un estándar de comunicación o protocolo, piensa en este gran campo como la ram de tu computador, al final la ram es donde reside todo el software que usamos, escucharon alguna vez la frase, no tan real, de "Gnu/Linux no se cuelga", pues se debe básicamente a su arquitectura, cada servicio corre aislado en su propio trozo de tierra, y si este comienza a incendiarse el resto no se ve afectado gracias a los muros que la separan.
Bueno en Windows el tema es algo diferente, todo el gran campo es compartido por todo el mundo sin mayor problema, esto genera que cuando un servicio que esta usando porciones del campo empiece a incendiarse haga que al final todo el campo se queme, el resultado final, el sistema se cuelga.
Tener acceso a todo el campo es fundamental para el virus, los virus aprovechan direcciones de memoria especifica para ejecutar sus maldades y clonarse, tanto el software de aplicación como el sistema operativo comparten la ram (el gran campo) y si un virus logra atacar un programa ejecutable será mucho más sencillo que logre su objetivo si es que puede moverse por todo el campo sin que nada lo detenga, ahora para que un virus tenga posibilidad de infectar todo el sistema requiere tener un nivel de acceso de super-administrador del sistema operativo que ejecutamos, en Windows lastimosamente eso es un saludo a la bandera, cualquier usuario puede acceder hasta lo más interno del sistema operativo sin mayor problemas, mientras que en Gnu/Linux necesitar tener nivel de "root" para poder acceder a las partes más internas y privadas del sistema operativo, si eres nuevo en Gnu/Linux entenderás porque se usa "sudo" o porque se recomienda no ejecutar programas o servicios (fuera de los del sistema operativo propio) como root, si usas root y tuvieras un programa infectado entonces este podrÃa diseminarse por todo el sistema operativo sin problemas, si lo haces como un usuario normal entonces lo peor que podrÃas hacer un virus es infectar todo a lo que tenga privilegios de escritura tu usuario, en este caso seguramente tu directorio "home".
Suponiendo que tu usuario este infectado y todos sus archivos lo estén entonces lo único que necesitarÃas para limpiar el sistema es borrar su "home" con todos los archivos sobre los que tiene privilegios y adiós problema, no necesitas antivirus para limpiar el sistema o formatear la máquina para volverlo a instalar, lo siento señores programadores de antivirus aquà no hay negocio.
Esquema de licenciamiento
Probablemente han escuchado que si un software es libre pero no se publica su código fuente (como ciertos proyectos nacionales) entonces no sirve de nada, pues es cierto, la licencia GPL obliga a que para publicar un software como software libre se adjunte su código fuente, el tener acceso al código fuente hace que sea mucho más probable que se escriban mejoras sobre el software para tapar brechas de seguridad más rápido, estás brechas son las que siempre intentan aprovechar los virus.
Mucho desarrolladores teme que accedan a su código fuente, de hecho las más grandes empresas lo guardan mucho más seguro que la formula de la Coca Cola (que tiene asparmato que es veneno por cierto) y lo hacen por temor a que se exploten vulnerabilidades en sus programas, esto se llama "seguridad por oscuridad" y es la peor forma de autoengañarse suponiendo que tu sistema es "seguro", en software libre si un software está mal programado, con demasiados errores te enterarás al toque y simplemente lo parchas o lo dejas de usar, con software de código cerrado eso es imposible, debes confiar en la palabra del proveedor, ¿les cuento cuantas grandes empresas tienen problemas por vulnerabilidades en su software?, todas, y si nos vamos a remitir al sistema operativo pues ya se pueden imaginar de quien es el desarrollador con un producto con más problemas de programación.
El ecosistema del software libre
Vamos a suponer que tu máquina se infecta, vamos a suponer que usas Microsoft Windows (esta suponsión para un usuario de Ms-Windows es la realidad de todos los dÃas), ¿que haces? bueno seguro primero que nada tendrás que comprar un antivirus, instalarlo (si es que la máquina aún ejecuta sin problemas), ejecutar el antivirus, tratar de entender las instrucciones cuando lo encuentre, perder información por la infección (en el peor de los casos borrar todo y reinstalar todo el software en la pc, en resumen perdida total de todo lo que tenÃas en tu pc) y convivir luego en tu pc con software adicional al que ya usabas para protegerte y que consume muchos recursos del sistema, pero, ¿y el problema desapareció?, pues te cuento que no, ya pasaste la experiencia de 1 virus pero existen decenas de miles de tipos y variaciones de virus todos deseosos de fregarte la pc (y la vida de paso), ¿a quien le reportas esto? ¿quien te da el soporte? ¿has intentado mandar una queja al proveedor del sistema operativo? ¿te dió soporte el proveedor cuando tuviste el problema ocasionado por el pobre diseño de su producto?.
Ahora vamos a suponer que usas Gnu/Linux y tu pc se infecta, primero que nada te vas a volver famoso, si claro no miento, serás el primer usuario certificado de haber sido infectado por un virus en Gnu/Linux, la comunidad tendrá tu nombre bien memorizado para el resto de tu vida te lo aseguro, pero fuera de bromas ¿que haces? en primer lugar y suponiendo que no eres tan tonto como para correr los programas de aplicación de tu sistema como root sino como usuario deberÃas hacer lo siguiente:
1. tratar de detectar que programa es el que está dando la lata, generalmente esto podrÃa traducirte en caÃdas del programa cuando intentas ejecutarlo (o saturación del sistema si es muy grave) o archivos de almacenamiento de datos corruptos que no se pueden abrir.
2. detectado el problema ingresar a la página web del proyecto, ahà encontrarán hasta 3 formas de reportar el problema, estos pueden ser: describir el problema por un sistema de gestión de bug (respuesta muy lenta), escribir a una lista de correos de los desarrolladores (respuesta media) ó ingresar al canal de irc y explicar el problema (respuesta media a rápida dependiendo el proyecto)
3. como parte del diagnostico te pedirán mucha información, caracterÃsticas de tu sistema, que envÃes archivos de log o pantallas de los mensajes de error si hubieran, etc etc.
4. recibirás una respuesta, generalmente esta puede ser "confirmamos el problema" o "el problema no es reproducible", en caso de ser la primera respuesta y si fuera que el problema es muy severo trabajaran inmediatamente en la solución.
5. finalmente deberás esperar el reparto mundial de la solución, cuando el proyecto tenga el programa "curado" por decirlo de alguna manera todas las distribuciones empezarán a trabajar en añadirlo a su paqueterÃa oficial, esto tomará algunos dÃas por cierto, pero gracias a los sistemas de reparto distribuido mundialmente una corrección demora casi nada en ser desplegada a nivel mundial, incluso hubieron casos en donde en menos de 24horas este tipo de problemas estaban resueltos en todo el mundo, como el caso que mencioné del virus para el kernel 2.2., por eso es buena idea mantener tu sistema actualizado diariamente, especialmente cuando veas que hay actualizaciones de seguridad.
Quizás tu estuviste fregado, esa diapo para tu trabajo se perdió, tuviste que dejar de usar Sodipodi y tuviste que pasar a Inkscape mientras solucionan el problema, etc. etc. pero, ¿sabes que?, la colectividad en general habrá sido inmunizada gracias a tu reporte de problema, y el maldito virus no podrá hacerles nada cuando el proyecto haya solucionado el problema, finalmente el virus desaparece por no encontrar donde ejecutarse, es por ello que el ecosistema funciona como el mejor antivirus mundial que existirá jamas, y es libre

.
Espero que esto explique de alguna manera simple porque los virus y Gnu/Linux no van de la mano, ahora no podrÃa asegurar que esto no pase en sistema que usan Linux de kernel y no son tan abiertos, si puedes aportar o mejorar el artÃculo encantado de recibir tus comentarios.
Saludos