• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Mitos y realidades: Linux y los virus
 

Mitos y realidades: Linux y los virus

on

  • 2,265 views

 

Statistics

Views

Total Views
2,265
Views on SlideShare
2,194
Embed Views
71

Actions

Likes
1
Downloads
41
Comments
0

6 Embeds 71

http://www.eltermometretic.com 32
http://mitosrealidadestecnologia.blogspot.com 23
http://mitosrealidadestecnologia.blogspot.mx 10
http://feeds.feedburner.com 4
http://mitosrealidadestecnologia.blogspot.com.ar 1
http://mitosrealidadestecnologia.blogspot.com.es 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Mitos y realidades: Linux y los virus Mitos y realidades: Linux y los virus Document Transcript

    • reportaje ] Mitos y realidades: Linux y los virus DAVID SANTO ORCERO orcero@iberprensa.com E LA TRANSMISIÓN DE LOS VIRUS EN l debate sobre Linux y los vi- solo, sin el permiso o conocimiento del LINUX rus no es algo nuevo. Cada usuario. si no se instala solo, no es un cierto tiempo vemos un co- virus: podría ser un ser un rootkit, o un El mecanismo de transmisión de un virus, rreo en alguna lista preguntando si troyano. por lo tanto, es lo que realmente lo define existen virus para Linux; y automá- un rootkit es un parche al kernel que como tal, y es la base de la existencia de ticamente alguien responde afirma- permite ocultar determinados procesos a los mismos. un sistema operativo es más tivamente y alega que si no son las utilidades de área de usuario. Dicho de sensible a los virus cuanto más fácil sea más populares es porque Linux no otra forma, es una modificación del código desarrollar un mecanismo eficiente y au- está tan extendido como Windows. fuente del kernel que tiene como objeto tomatizado de transmisión de estos. También son frecuentes las notas que las utilidades que permiten ver qué supongamos que tenemos un virus de prensa de desarrolladores de se está ejecutando en cada momento no que quiere transmitirse solo. supongamos antivirus diciendo que sacan ver- visualicen un determinado proceso, o un que ha sido lanzado por un usuario nor- siones contra los virus de Linux. determinado usuario. mal, de forma inocente, al lanzar un pro- Personalmente he tenido alguna que un troyano es análogo: es una mo- grama. Dicho virus tiene exclusivamente otra discusión con distintas personas por dificación al código fuente de un servicio dos mecanismos de transmisión:  replicarse tocando la memoria de otros correo, o por lista de distribución, respec- concreto para ocultar determinada ac- to al tema de si existen o no los virus en tividad fraudulenta. En ambos casos es procesos, anclándose a ellos en tiempo Linux. se trata de un mito, pero es com- necesario obtener el código fuente de la de ejecución.  Abriendo los ejecutables del sistema plejo derribar un mito o, mejor dicho, un versión exacta instalada en la máquina bulo, especialmente si está causado por Linux, parchear el código, recompilarlo, de ficheros, y añadiendo su código interés económico. A alguien le interesa obtener privilegios de administrador, insta- –payload– al ejecutable. transmitir la idea de que si Linux no tiene lar el ejecutable parcheado, e inicializar el Todos los virus que podemos consi- este tipo de problemas, es porque muy servicio –en el caso del troyano– o el sis- derar como tales tienen al menos uno de poca gente lo utiliza. tema operativo completo –en el caso del estos dos mecanismos de transmisión. o A la hora de publicar este reportaje me rootkit–. El proceso, como vemos, no es los dos. no hay más mecanismos. hubiese gustado elaborar un texto defini- trivial, y nadie puede hacer todo esto “por respecto al primer mecanismo, re- tivo sobre la existencia de virus en Linux. error”. Tanto unos como otros exigen en cordemos la arquitectura de memoria Desgraciadamente, cuando la supersti- su instalación que alguien con privilegios virtual de Linux y cómo funcionan los ción y el interés económico campan a sus de administrador, de forma consciente, procesadores intel. Estos poseen cuatro anchas, es difícil construir algo definitivo. ejecute una serie de pasos tomando deci- anillos, numerados de 0 a 3; a menor nú- no obstante, intentaremos hacer aquí un siones de índole técnica. mero, mayores los privilegios que tiene argumentario razonablemente completo Lo cual no es un matiz semántico sin el código que se ejecute en dicho anillo. para desarmar los ataques de cualquiera importancia: para que un virus se instale, Estos anillos corresponden con estados que quiera discutirlo. basta con que ejecutemos un programa del procesador, y, por lo tanto, con lo que infectado como usuario común. Por otro se puede hacer con un sistema estando QUÉ ES UN VIRUS lado, para la instalación de un rootkit o en un anillo concreto. Linux hace uso del Lo primero, vamos a comenzar definiendo de un troyano es imprescindible que un anillo 0 para el kernel, y del anillo 3 para qué es un virus. se trata de un programa humano malicioso entre personalmente los procesos. no hay código de proceso que se copia y se ejecuta automática- en la cuenta de root de una máquina, y que se ejecute en anillo 0, y no hay có- mente, y que tiene por objeto alterar el de forma no automatizada realice una digo de kernel que se ejecute en anillo normal funcionamiento de un ordenador, serie de pasos que son potencialmente 3. solo hay un único punto de entrada sin el permiso o el conocimiento del usua- detectables. un virus se propaga con ra- al kernel desde el anillo 3: la interrupción rio. Para ello, los virus reemplazan archivos pidez y eficiencia; un rootkit o un troyano 80h, que permite saltar del área donde ejecutables por otros infectados con su necesitan que vayan específicamente a está el código de usuario al área donde código. La definición es estándar, y es un por nosotros. está el código de kernel. resumen de una línea de la entrada sobre virus que aparece en la Wikipedia. La arquitectura de Unix en general y de Linux en La parte más importante de esta defi- nición, y la que diferencia el virus del resto particular no Sumario Par hace factible la dispersión de un virus del malware, es que un virus se instala 26 www.studiopress.es número 90
    • REPORTAJE Linux y Los virus El kernel mediante el uso de la memo- es posible –siempre puede quedar una ternativa sería descargar el código fuente ria virtual hace creer a cada proceso que llamada olvidada mal implementada sobre de internet, parchearlo, configurarlo para tiene toda la memoria para él solo. un pro- la que se pueda desarrollar una trampa–, el hardware apropiado, compilarlo, ins- ceso –que trabaja en anillo 3– solo puede pero en caso de un sistema operativo con talarlo y reiniciar la máquina. Todo esto lo ver la memoria virtual que le han confi- un mecanismo de paso tan simple, no lo debería hacer un programa, de forma au- gurado, por el anillo en el que opera. no es. tomática. Todo un reto para el campo de es que la memoria de los otros procesos Por ello, la arquitectura de memoria la inteligencia Artificial. esté protegida; es que para un proceso virtual impide este mecanismo de trans- Como vemos, ni siquiera un virus la memoria de los otros está fuera del es- misión; ningún proceso –ni siquiera los como root puede saltar esta barrera. La pacio de direcciones. si un proceso diese que tienen privilegios de root– tienen única solución que queda es la transmi- una batida a todas las direcciones de me- forma de acceder a la memoria de otros. sión entre ficheros ejecutables. Lo que moria, no sería capaz ni de referenciar una Podríamos argumentar que un proceso tampoco funciona como veremos a con- dirección de memoria de otro proceso. puede ver el kernel; lo tiene mapeado a tinuación. ¿Por qué esto no se puede trampear? partir de su dirección de memoria lógica INFECTANDO EJECUTABLES EN LINUX Para modificar lo comentado –por ejem- 0xC0000000. Pero, por el anillo del pro- plo, generar puntos de entrada en anillo 0, cesador en el que se ejecuta, no puede En Linux, un proceso puede hacer sim- modificar los vectores de interrupciones, modificarlo; generaría un trap, ya que son plemente lo que le permita su usuario modificar la memoria virtual, modificar la zonas de memoria que pertenecen a otro efectivo y su grupo efectivo. Es cierto que LGDT...– solo es posible desde el anillo 0. anillo. existen mecanismos para intercambiar Es decir, para que un proceso pudiese La “solución” sería un programa que el usuario real con el efectivo, pero poco tocar la memoria de otros procesos o del modificara el código del kernel cuando es más. si nos fijamos donde están los ejecu- kernel, debería ser el propio kernel. y el un fichero. Pero el hecho de que estos se tables, veremos que solamente root tiene hecho de que haya un único punto de en- recompilen, lo hace imposible. no se pue- privilegios de escritura tanto en dichos trada y que los parámetros se pasen por de parchear el binario, ya que hay millones directorios, como en los ficheros conteni- registros complica la trampa –de hecho, de kernels binarios distintos en el mundo. dos. Dicho de otro modo, solamente root se pasa por registro hasta lo que se debe simplemente con que al recompilarlo le puede modificar dichos archivos. Esto es hacer, que se implementa luego como un hubiesen puesto o quitado algo al ejecu- así en unix desde los 70, en Linux desde case en la rutina de atención a la interrup- table del kernel, o le hubiesen cambiado sus orígenes, y en un sistema de ficheros ción 80h–. el tamaño de alguna de las etiquetas que que soporte privilegios, aún no ha apare- otro escenario es el caso de sistemas identifican la versión de compilación –algo cido ningún error que permita otro com- operativos con cientos de llamadas no que se hace incluso involuntariamente– el portamiento. La estructura de los ficheros documentadas al anillo 0, donde esto sí parche binario no se podría aplicar. La al- ejecutables ELF es conocida y está bien documentada, por lo que es técnica- mente posible que un fichero de este tipo Mi experiencia como administrador  cargue el payload en otro fichero ELF... En más de diez años que llevo administrando Linux, con instalaciones en siempre que el usuario efectivo del prime- cientos de máquinas de centros de cálculo, laboratorios de alumnos, em- ro o el grupo efectivo del primero tengan presas, etc. privilegios de lectura, escritura y ejecución  Nunca me ha quot;entradoquot; un virus sobre el segundo fichero. ¿Cuántos eje-  Nunca he conocido a alguien que le haya ocurrido cutables del sistema de ficheros podría  Nunca he conocido a alguien que haya conocido a alguien que le haya infectar como usuario común? ocurrido Esta pregunta tiene una respuesta Conozco a más gente que ha visto al monstruo del Lago Ness a que haya simple, si queremos saber a cuántos fi- visto virus para Linux. cheros podríamos “infectar”, lanzamos el Personalmente, reconozco que he sido un temerario, y he lanzado varios comando: programas que los autoprocramados “especialistas” denominan “virus pa- ra Linux” -en adelante, los denominaré virus, para no hacer pedante el tex- $ find / -type f -perm -o=rwx -o to-, desde mi cuenta habitual contra mi máquina, para ver si es posible un ( -perm -g=rwx -group `id -g` virus: tanto el virus bash que circula por ahí -y que, por cierto, no me infectó ) -o ( -perm -u=rwx -user `id ningún fichero-, como un virus que se hizo muy famoso, y salió en la pren- -u` ) -print 2> /dev/null | sa. Intenté instalarmelo; y después de veinte minutos de trabajo, me rendí grep -v /proc cuando vi que entre sus exigencias estaba tener el directorio tmp en una partición del tipo MSDOS. Personalmente, no conozco a nadie que cree Excluimos el directorio /proc porque una partición específica para tmp y la formatee en FAT. es un sistema de ficheros virtual que De hecho, algunos supuestos virus que he probado para Linux necesi- muestra información sobre cómo funciona tan un nivel de conocimientos altos y la clave de root para ser instalados. el sistema operativo. Los archivos de tipo Podríamos calificar, cuanto menos, de “cutre” un virus si necesita nuestra fichero y con privilegios de ejecución que intervención activa para que nos infecte la máquina. Además, en algún ca- encontraremos no suponen un problema, so requieren amplios conocimientos de UNIX y la clave de root; lo que está ya que con frecuencia son enlaces virtua- bastante lejos de la instalación automática que se le supone. les que constan como que pueden leerse, escribirse y ejecutarse, y si un usuario lo intenta, nunca funciona. También descar- 27 www.studiopress.es número 90
    • REPORTAJE Linux y Los virus tamos los errores, abundantes –ya que, ma de que estos troyanos puedan afectar Slapper un gusano que explotando una especialmente en /proc y en /home, hay algo del sistema es ejecutándolo como vulnerabilidad en el ssL de Apache (los muchos directorios donde un usuario co- root y con lo privilegios necesarios. si so- certificados que permiten comunicación mún no puede entrar–. lemos emplear la máquina como usuarios segura), creó su propia red de máquinas Este script tarda bastante. En nuestro de a pie, no es posible que un proceso zombie en septiembre de 2002”. caso particular, en una máquina donde lanzado por un usuario común infecte al n Respuesta: trabajamos cuatro personas, la respuesta sistema. fue: Ese ejemplo no alude a un virus, sino un MITOS Y MENTIRAS gusano. La diferencia es muy importante: Encontramos una gran cantidad de mitos, un gusano es un programa que explota /tmp/.ICE-unix/dcop5265 bulos y simplemente mentiras sobre los un servicio de cara a internet para trans- -1205225188 virus en Linux. Hagamos una relación de mitirse. no afecta a programas locales. /tmp/.ICE-unix/5279 los mismos basándonos en una discusión Por ello, solamente afecta a los servido- /home/irbis/kradview-1.2/src acontecida hace ya tiempo con un re- res; no a máquinas particulares. /kradview presentante de un fabricante de antivirus Los gusanos han sido siempre muy La salida muestra tres ficheros que para Linux que se ofendió mucho por un pocos y de incidencia ínfima. Los tres podrían infectarse si se ejecutase un artículo publicado en esta misma revista. realmente importantes nacieron en los 80, hipotético virus. Los dos primeros son Aquella discusión es un buen ejemplo una época en la que internet era inocente, ficheros de tipo unix socket que se bo- de referencia, ya que toca todos los as- y todo el mundo se fiaba de todo el mun- rran en arranque –y que no pueden verse pectos sobre los virus en Linux. vamos a do. recordemos que eran los que afecta- afectados por un virus–, y el tercero es un repasar todos estos mitos uno a uno se- ban a sendmail, fingerd y rexec. fichero de un programa en desarrollo, que gún se comentaron en aquella discusión Hoy en día la cosa es más complicada. cada vez que se recompila se borra. El concreta, pero que tantas veces se ha Aunque no podemos negar que sigue virus, desde el punto de vista práctico, no repetido en otros foros. habiéndolos y que, si no se controlan, son se propagaría. extremadamente peligrosos. Pero ahora, n Mito 1: Por lo que vemos, la única forma de los tiempos de reacción ante los gusanos propagar el payload es siendo root. En “no todos los programas malignos, parti- son muy cortos. Es el caso del Slapper: un ese caso para que un virus funcione es cularmente los virus, necesitan privilegios gusano creado sobre una vulnerabilidad necesario que los usuarios tengan siem- de root para infectar, sobre todo en el ca- descubierta –y parcheada– dos meses pre privilegios de administrador. En ese so particular de los virus ejecutables (for- antes de la aparición del propio gusano. caso sí puede infectar archivos. Pero mato ELF) que infectan otros ejecutables”. Aun suponiendo que todo el mundo que aquí viene la trampa: para transmitir la usara Linux tuviese Apache instalado y n Respuesta: infección, necesita tomar otro ejecutable, funcionando siempre, simplemente con mandarlo por correo a otro usuario que Quien realice semejante afirmación des- actualizar mensualmente los paquetes solamente emplee la máquina como root, conoce cómo funciona el sistema de hubiese sido más que suficiente para que y que repita el proceso. privilegios de unix. Para poder afectar a nunca se corriera ningún riesgo. En sistemas operativos donde es ne- un fichero, un virus necesita el privilegio Es cierto que el fallo de ssL que origi- cesario ser administrador para tareas co- de lectura –hay que leerlo para modificar- nó Slapper era crítico –de hecho, el mayor munes o para ejecutar muchas aplicacio- lo–, y de escritura –hay que escribirlo para fallo encontrado en toda la historia de nes diarias, esto sí se puede dar. Pero en que la modificación sea válida– sobre el ssL2 y ssL3–, y como tal fue solucionado unix es necesario ser administrador para fichero del ejecutable que quiere ejecutar. en pocas horas. Que dos meses más tar- configurar la máquina y modificar los archi- Esto es así siempre, sin excepciones. y de de que se encontrara y se solucionara vos de configuración, así que es escaso en todas y cada una de las distribuciones, dicho problema, alguien hiciera un gusano el número de usuarios que emplea como los usuarios que no son root no disponen sobre un error ya corregido, y que ese cuenta diaria la de root. Es más; algunas de estos privilegios. Luego simplemente distribuciones de Linux ni siquiera tienen con no ser root, la infección no es po- Antivirus para Linux  habilitada la cuenta de root. En casi todas, sible. Prueba empírica: En la sección Es cierto que existen antivirus pa- si accedes como tal al entorno gráfico, el anterior vimos un simple script para com- ra Linux buenos. El problema es fondo se cambia a rojo intenso, y se repi- probar el rango de ficheros que pueden que no hacen lo que los defenso- ten mensajes constantes que recuerdan ser afectados por una infección. si lo res de los antivirus argumentan. que no se debe emplear esta cuenta. lanzamos en nuestra máquina, veremos Su función es filtrar el correo que Finalmente, todo lo que se debe hacer como es ínfimo, y respecto a ficheros de pasa de malware y virus para como root es posible hacerlo mediante un sistema, nulo. Además, a diferencia de Windows, así como verificar la comando sudo sin riesgo. operativos como Windows, no es nece- existencia de virus de Windows Por ello, en Linux un ejecutable no sario tener privilegios de administrador en carpetas exportadas vía puede infectar a otros siempre que no para realizar tareas comunes con progra- SAMBA; con lo que si empleamos estemos usando la cuenta de root como mas que emplean comúnmente usuarios nuestra máquina como gateway cuenta de uso común; y aunque las com- normales. de correo o como NAS para má- pañías antivirus se empeñan en decir que n Mito 2: quinas Windows, podemos prote- hay virus para Linux, realmente lo más pa- gerlas. recido que se puede crear en Linux es un “Tampoco necesitan ser root para entrar troyano en área de usuario. La única for- en el sistema por vía remota, es el caso de 28 www.studiopress.es número 90
    • REPORTAJE Linux y Los virus sea el ejemplo más potente que se puede Los pasos (5) y (6) necesitan privile- El virus debe saltar varias dificultades dar como vulnerabilidad, cuando menos gios de root. Es algo complicado que los más que siempre se han puesto como tranquiliza. pasos (4) y (6) no sean detectados por un defecto/problema de Linux por los Como regla general, la solución a los el infectado. Pero lo divertido es que haya defensores de Windows, y que complican gusanos no es comprar un antivirus, ins- alguien que crea que existe un programa la existencia de virus reales –kernels que talarlo y desperdiciar tiempo de cómputo que puede hacer el paso (2) y (3) automá- se recompilan, muchas versiones de mu- manteniéndolo residente. La solución es ticamente. chas aplicaciones, muchas distribuciones, hacer uso del sistema de actualizaciones Como colofón, si nos encontramos cosas que no pasan automáticamente de de seguridad de nuestra distribución: con alguien que nos dice “cuando haya forma transparente al usuario, etc.–. Los teniendo la distribución actualizada, no más máquinas con Linux habrá más virus”, teóricos “virus” actuales hay que instalar- habrá problemas. Ejecutar solamente los y nos recomienda “disponer de un antivi- los a mano desde la cuenta de root. Pero servicios que necesitamos es también rus instalado y actualizarlo constantemen- eso no puede ser considerado un virus. una buena idea por dos razones: mejo- te”, posiblemente esté relacionado con la Como siempre digo a mis alumnos: no ramos el aprovechamiento de recursos, empresa que comercializa el antivirus y las me creáis, por favor. Descargad e instala- y evitamos problemas de seguridad. actualizaciones. Desconfía, posiblemente ros un rootkit en la máquina. y si queréis sea el mismo dueño. más, leed el código fuente de los “virus” n Mito 3: que hay en el mercado. La verdad está CONCLUSIÓN “no creo que el núcleo sea invulnerable. en el código fuente. Es difícil a un “auto- De hecho existe un grupo de programas A la pregunta ¿Existen vulnerabilidades proclamado” virus seguir nombrándolo de malignos denominados con las siglas LrK en sistemas Linux? la respuesta es cierta- esa forma después de leer su código. (Linux rootkits Kernel), que se basan pre- mente sí. y si no sabéis leer código, una única cisamente en que explotan vulnerabilida- nadie en su sano juicio lo duda; Linux medida de seguridad sencilla que os re- des de módulos del kernel y sustituyen los no es openBsD. otra cosa es la ventana comiendo: usad la cuenta de root solo binarios del sistema”. de vulnerabilidad que tiene un sistema para administrar la máquina, y mantener Linux que sea actualizado adecuadamen- al día las actualizaciones de seguridad. n Respuesta: te. si nos preguntamos ¿existen herra- solamente con eso es imposible que os un rootkit es básicamente un parche al mientas para aprovechar estos agujeros entren virus y muy poco probable que kernel que permite ocultar la existencia de de seguridad, y explotarlos? Pues tam- lo hagan gusanos o que alguien ataque determinados usuarios y procesos ante bién sí, pero eso no son virus, son exploits. vuestra máquina con éxito. n las herramientas habituales, gracias a que no aparecerán en el directorio /proc. Lo ClamAv  normal es que lo utilicen al final de un ata- No terminaremos nuestro re- que, en primer lugar, van a explotar una portaje sin hablar del principal vulnerabilidad remota para tener acceso a antivirus existente para GNU/ nuestra máquina. Después emprenderán Linux: ClamAV. una secuencia de ataques, para hacer ClamAV es un potentísimo an- escalado de privilegios hasta llegar a tener tivirus bajo GPL que compila la cuenta de root. El problema cuando lo para la mayor parte de los Unix consiguen es cómo instalar un servicio en disponibles del mercado. Está nuestra máquina sin ser detectados: ahí diseñado para analizar los ad- entra el rootkit. se crea un usuario que juntos a los mensajes de co- será el usuario efectivo del servicio que rreo que pasen por la estación queremos que se oculte, instalan el root- y filtrarlos de virus. kit, y ocultan tanto dicho usuario como to- Esta aplicación se integra per- dos los procesos pertenecientes a dicho fectamente con sendmail para usuario. permitir el filtrado de los virus De cómo ocultar la existencia de un que puedan almacenarse en usuario es útil a un virus es algo que po- los servidores Linux que pro- dríamos discutir largamente, pero un virus ClamAV es un antivirus de correo efectivo. veen de correo a las empresas; que emplee un rootkit para instalarse pa- disponiendo de una base de datos de virus que se actualiza diariamente, rece divertido. imaginemos la mecánica con soporte a forma digital. La base de datos se actualiza varias veces al del virus (en pseudocódigo):  1) El virus entra en el sistema. día, y es un proyecto vivo y muy interesante.  2) Localiza el código fuente del ker- Este potente programa es capaz de analizar virus incluso en adjuntos en formatos más complejos de abrir, como pueda ser RAR (2.0), ZIP, GZIP, nel. si no está lo instala él mismo.  3) Configura el kernel para las op- BZIP2, TAR, MS OLE2, MS Cabinet files, MS CHM (HTML COmprimido), y MS SZDD. ciones de hardware que procedan ClamAV soporta también mbox, Maildir, y archivos de correo en formato para la máquina en cuestión.  4) Compila el kernel. RAW, y ficheros Portable Executable comprimidos con UPX, FSG, y Petite.  5) instala el nuevo kernel; modifi- La pareja Clam AV y spamassassin son la pareja perfecta para proteger a nuestros clientes Windows desde los servidores de correo Unix. cando LiLo o GruB si es preciso.  6) reinicia la máquina. 29 www.studiopress.es número 90